首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python-xarray重命名数据变量

python-xarray重命名数据变量
EN

Stack Overflow用户
提问于 2017-05-12 18:04:51
回答 4查看 9.2K关注 0票数 1

我创建了一个xarray.DataArray,并使用xarray.DataArray.to_netcdf保存它。

我创建它的方法是:

代码语言:javascript
复制
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'])

也就是说,我没有指定一个名称,例如:

代码语言:javascript
复制
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

代码语言:javascript
复制
<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

看上去像是:

代码语言:javascript
复制
<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的函数,因此我没有指定一个数据变量名,但是,我想在绘图之前重命名它。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2017-05-12 20:44:05

代码语言:javascript
复制
DataArray.rename

是我要找的

票数 5
EN

Stack Overflow用户

发布于 2019-02-07 15:06:08

数据集ds的另一种可能是:

代码语言:javascript
复制
    ds['new_var_name'] = ds['__xarray_dataarray_variable__']
    ds = ds.drop(['__xarray_dataarray_variable__'])
票数 4
EN

Stack Overflow用户

发布于 2017-05-12 18:27:03

这个文件看起来像DataArray.to_netcdf()在未命名的DataArray上创建的文件。解决这个问题的一个简单方法是在调用DataArray之前在to_netcdf()上设置一个名称。

否则,如果您很高兴得到一个未命名的DataArray,请尝试用xarray.open_dataarray()加载它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43943969

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档