我有一个xarray数据集ds
<xarray.Dataset>
Dimensions: (elevation_band: 4, latitude: 1, longitude: 1)
Coordinates:
* longitude (longitude) float64 -111.4
* latitude (latitude) float64 44.51
* elevation_band (elevation_band) int32 1 2 3 4
Data variables:
area_frac (elevation_band, latitude, longitude) float64 0.005109 ...
mean_elev (elevation_band, latitude, longitude) float64 2.45e+03 ...
prec_frac (elevation_band, latitude, longitude) float64 0.005109 ...
我希望将mean_elev
的值替换为这些值[0.1,0.2,0.3,0.4]
,从而导致了这个错误:
第一次尝试
ds['mean_elev'].values = np.atleast_3d([0.1, 0.5, 0.3, 0.6]).reshape((4, 1, 1))
错误2
缺失尺寸错误:不能使用没有明确维度名称的三维数据设置变量 'mean_elev'。请传递一个 (dims, data) 元组。
尝试2
到目前为止,我已经尝试创建一个独立的 dataArray 进行合并:
lat = ds['latitude'].values
long = ds['longitude'].values
elevation_band = ds['elevation_band'].values
mean_elev = np.array([0.1, 0.5, 0.3, 0.6]).reshape((4, 1, 1))
xr.DataArray(mean_elev, coords={'latitude': lat, 'longitude': long,
'elevation_band': elevation_band},
dims=['latitude', 'longitude', 'elevation_band'])
错误 2
值错误:'latitude' 维度的大小存在冲突:数据长度为4,但坐标 'latitude' 的长度为1
欢迎考虑其他解决方案或尝试让其中一个解决方案可行。