2017-05-12 93 views
0

我创建了一个xarray.DataArray,并使用xarray.DataArray.to_netcdf将其保存。python-xarray重命名数据变量

我创建它使用:

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的函数,因此我没有指定数据变量名称。不过,我想在绘图之前重命名它。

回答

0
DataArray.rename 

就是我一直在寻找

+0

在[xarray.rename]行为(http://xarray.pydata.org/en/stable/generated/xarray.DataArray.rename.html)是与[pandas.rename](https://pandas.pydata.org/pandas-docs/version/0.18.1/generated/pandas.DataFrame.rename.html)相同。例如请参阅[本示例:](https://stackoverflow.com/a/11354850/2543267) – tsherwen

0

该文件看起来像是在未命名的DataArray上由DataArray.to_netcdf()创建的文件。解决这个问题的一个简单方法是在之前的DataArray 上设置一个名称,调用to_netcdf()。否则,如果您很高兴收到一个未命名的DataArray,请尝试使用xarray.open_dataarray()加载该DataArray。