我有一个名为obs(62824,)的熊猫系列,其温度值如下
0 16.9
1 11.0
2 5.9
3 9.4
4 15.4
...
我想使用以下代码将我的numpy数组基本转换为xr。DataArray
lat = 35.93679
lon = 14.45663
obs_data = xr.DataArray(obs_tas, dims=['time','lat','lon'],
coords=[pd.date_range('1979-01-01', '2021-12-31', freq='D'), lat, lon])
我的问题是我得到以下错误
ValueError: dimensions ('lat',) must have the same length as the number of data dimensions, ndim=0
从我的理解是因为numpy数组只有一个维度。我尝试了以下命令
obs = obs[..., np.newaxis, np.newaxis]
然而,没有工作,我仍然得到相同的错误。我怎样才能解决这个问题呢?
您对obs
添加尺寸是正确的。
在创建DataArray和API引用中提到,坐标本身应该是类似数组的。
你的lat
和lon
是浮子。我相信你所要做的就是把它们包装在一个列表中,像这样:
lat = [35.93679] # <- list
lon = [14.45663] # <- list
obs_data = xr.DataArray(
obs[:, None, None],
dims=['time', 'lat', 'lon'],
coords=[
pd.date_range('1979-01-01', '2021-12-31', freq='D'), lat, lon
]
)