I need to add the dimension to DataArrayby filling in the values in the new dimension. Here is the original array.
a_size = 10
a_coords = np.linspace(0, 1, a_size)
b_size = 5
b_coords = np.linspace(0, 1, b_size)
x = xr.DataArray(
np.random.random(a_size),
coords=[('a', a coords)])
I think I could create an empty DataArray with a new dimension and copy the existing data.
y = xr.DataArray(
np.empty((b_size, a_size),
coords=([('b', b_coords), ('a', a_coords)])
y[:] = x
A better idea might be to use concat. It took me a while to figure out how to specify both dull and consonants for the concat measurement, and none of these options seem big. Is there something I'm missing that can make this version cleaner?
y = xr.concat([x for _ in b_coords], 'b')
y['b'] = b_coords
y = xr.concat([x for _ in b_coords], b_coords)
y.rename({'concat_dim': 'b'})
y = xr.concat(
[x for _ in b_coords],
xr.DataArray(b_coords, name='b', dims=['b']))
However, is there a better way to do this than either of the two options above?
source
share