我创建了一个xarray.DataArray,并使用xarray.DataArray.to_netcdf保存它。
我创建它的方法是:
datatmp = np.full([nens, len(modanom.coords['time'].values), len(modanom.coords['latitude'].values), len(modanom.coords['longitude'].values)], np.nan)
b = xr.DataArray(datatmp, coords=[range(1,nens + 1), modanom.coords['time'], modanom.coords['latitude'], modanom.coords['longitude']], dims=['ensemble', 'time', 'latitude', 'longitude'])也就是说,我没有指定一个名称,例如:
b = xr.DataArray({'windspeed': (('ensemble', 'time', 'latitude', 'longitude'), datatmp)}, coords=[range(1,nens + 1), modanom.coords['time'], modanom.coords['latitude'], modanom.coords['longitude']], dims=['ensemble', 'time', 'latitude', 'longitude'])我对这个文件做了一些操作,得到了均方根误差,得到的xarray.Dataset是
<xarray.DataArray (latitude: 81, longitude: 131, time: 1)>
array([[[ nan],
[ nan],
...,
[ nan],
[ nan]],
[[ nan],
[ nan],
...,
[ nan],
[ nan]],
...,
[[ nan],
[ 0.843295],
...,
[ 0.794338],
[ nan]],
[[ nan],
[ nan],
...,
[ nan],
[ nan]]])
Coordinates:
* latitude (latitude) float64 0.0 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 ...
* longitude (longitude) float64 260.0 261.0 262.0 263.0 264.0 265.0 266.0 ..
* time (time) datetime64[ns] 1983-01-15T12:00:00在读取netCDF文件时,我有一个xarray.Dataset
看上去像是:
<xarray.Dataset>
Dimensions: (latitude: 81, longitude: 131, time: 1)
Coordinates:
* latitude (latitude) float64 0.0 1.0 2.0 3.0 4.0 ...
* longitude (longitude) float64 260.0 261.0 262.0 ...
* time (time) datetime64[ns] 1983-01-15T12:00:00
Data variables:
__xarray_dataarray_variable__ (latitude, longitude, time) float64 nan ...
Attributes:
_NCProperties: version=1|netcdflibversion=4.4.1|hdf5libversion=1.8.18我可以重命名__xarray_dataarray_variable__吗?
我之所以问这个问题,是因为我有创建xarray.Dataset的函数,因此我没有指定一个数据变量名,但是,我想在绘图之前重命名它。
发布于 2017-05-12 20:44:05
DataArray.rename是我要找的
发布于 2019-02-07 15:06:08
数据集ds的另一种可能是:
ds['new_var_name'] = ds['__xarray_dataarray_variable__']
ds = ds.drop(['__xarray_dataarray_variable__'])发布于 2017-05-12 18:27:03
这个文件看起来像DataArray.to_netcdf()在未命名的DataArray上创建的文件。解决这个问题的一个简单方法是在调用DataArray之前在to_netcdf()上设置一个名称。
否则,如果您很高兴得到一个未命名的DataArray,请尝试用xarray.open_dataarray()加载它。
https://stackoverflow.com/questions/43943969
复制相似问题