xarray_beam.replace_template_dims

xarray_beam.replace_template_dims(template, **dim_replacements)[source]

Replaces dimension(s) in a template with updates coordinates and/or sizes.

This is convenient for creating templates from evaluated results for a single chunk.

Example usage:

import numpy as np
import pandas as pd
import xarray
import xarray_beam as xbeam

times = pd.date_range('1940-01-01', '2025-04-21', freq='1h')
dataset = xarray.Dataset(
    {'foo': (('time', 'longitude', 'latitude'), np.zeros((1, 360, 180)))},
    coords={
        'time': times[:1],
        'longitude': np.arange(0.0, 360.0),
        'latitude': 0.5 + np.arange(-90, 90),
    },
)
template = xbeam.make_template(dataset)
print(template)
# <xarray.Dataset> Size: 8MB
# Dimensions:    (time: 1, longitude: 1440, latitude: 721)
# Coordinates:
#   * time       (time) datetime64[ns] 8B 1940-01-01
#   * longitude  (longitude) float64 12kB 0.0 0.25 0.5 0.75 ... 359.2 359.5 359.8
#   * latitude   (latitude) float64 6kB -90.0 -89.75 -89.5 ... 89.5 89.75 90.0
# Data variables:
#     foo        (time, longitude, latitude) float64 8MB dask.array<chunksize=(1, 1440, 721), meta=np.ndarray>

template = xbeam.replace_template_dims(template, time=times)
print(template)
# <xarray.Dataset> Size: 6TB
# Dimensions:    (time: 747769, longitude: 1440, latitude: 721)
# Coordinates:
#   * longitude  (longitude) float64 12kB 0.0 0.25 0.5 0.75 ... 359.2 359.5 359.8
#   * latitude   (latitude) float64 6kB -90.0 -89.75 -89.5 ... 89.5 89.75 90.0
#   * time       (time) datetime64[ns] 6MB 1940-01-01 ... 2025-04-21
# Data variables:
#     foo        (time, longitude, latitude) float64 6TB dask.array<chunksize=(747769, 1440, 721), meta=np.ndarray>
Parameters:
  • template (Dataset) – The template to replace dimensions in.

  • **dim_replacements (int | ndarray | Index | DataArray) – A mapping from dimension name to the new dimension values. Values may be given as either integers (indicating new sizes) or arrays (indicating new coordinate values).

Returns:

Template with the replaced dimensions.

Return type:

Dataset