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