Python 重命名xarray dataarray中的uuu xarray_uDataArray_u变量

Python 重命名xarray dataarray中的uuu xarray_uDataArray_u变量,python,numpy,xarray,Python,Numpy,Xarray,我已经使用xarray concat命令创建了一个xarray数据数组。这导致了一个名为\uuuuxarray\udataarray\uvariable\uuuuu的数据数组。但是,我似乎无法使用rename命令重命名它。有没有其他方法来重命名它 我试过这个: da.rename({'__xarray_dataarray_variable__': 'new'}) 但是我得到了这个错误:***ValueError:无法重命名“\uuuuxarray\udataarray\uvariable\uu

我已经使用xarray concat命令创建了一个xarray数据数组。这导致了一个名为
\uuuuxarray\udataarray\uvariable\uuuuu
的数据数组。但是,我似乎无法使用
rename
命令重命名它。有没有其他方法来重命名它

我试过这个:

da.rename({'__xarray_dataarray_variable__': 'new'})
但是我得到了这个错误:
***ValueError:无法重命名“\uuuuxarray\udataarray\uvariable\uuuu”,因为它不是此数据集中的变量或维度

这就是dataarray的外观:

<xarray.DataArray (time: 2, band: 1, y: 2334, x: 4258)>
dask.array<shape=(2, 1, 2334, 4258), dtype=float32, chunksize=(1, 1, 2334, 4258)>
Coordinates:
  * band     (band) int32 1
  * y        (y) float64 4.406e+06 4.406e+06 4.406e+06 4.406e+06 4.406e+06 ...
  * x        (x) float64 1.125e+05 1.126e+05 1.127e+05 1.128e+05 1.129e+05 ...
  * time     (time) datetime64[ns] 2005-12-31 2006-12-31
Attributes:
    transform:   (90.0, 0.0, 112500.0, 0.0, -90.0, 4406400.0, 0.0, 0.0, 1.0)
    crs:         +ellps=GRS80 +no_defs +proj=utm +towgs84=0,0,0,0,0,0,0 +unit...
    res:         (90.0, 90.0)
    is_tiled:    1
    nodatavals:  (-9999.0,)

dask阵列
协调:
*波段(波段)int32 1
*y(y)浮动64 4.406e+06 4.406e+06 4.406e+06 4.406e+06 4.406e+06 4.406e+06 4.406e+06。。。
*x(x)浮动64 1.125e+05 1.126e+05 1.127e+05 1.128e+05 1.129e+05。。。
*时间日期时间64[ns]2005-12-31 2006-12-31
属性:
变换:(90.0,0.0,112500.0,0.0,-90.0,4406400.0,0.0,0.0,1.0)
crs:+ellps=GRS80+no_defs+proj=utm+towgs84=0,0,0,0,0,0+单位。。。
res:(90.0,90.0)
分为:1
节点数:(-9999.0,)

从中,只能将xarray.Dataset对象写入netCDF文件,因此xarray.DataArray将转换为包含单个变量的xarray.Dataset对象。如果DataArray没有名称,或者名称与坐标名称相同,那么它将被命名为“xarray\u DataArray\u variable”。

我认为您正在寻找
to\u dataset
方法:

ds = da.to_dataset(name='new')

da.name='new'
是否能起作用?DataArray中的坐标/维度都没有
\uuuuuxarray\uDataArray\uVariable\uuuuuu
名称。感谢@jhamman,我在执行
da.name='new'
***属性错误:无法在“DataArray”对象上设置属性“\uxarray\uDataArray\uVariable”。使用uuu setitem uuuuu样式赋值(例如,ds['name']=…
)来分配变量。
@jhamman,如果有帮助,我在这里使用您的代码:从一堆光栅文件创建一个netCDF文件好的,我明白了。我最初的建议被否决了。您能否将数据数组转换为数据集:
da.to_Dataset(name='new')
?谢谢@jhamman,这很有效!你能加上这个作为答案,这样我就可以接受了吗?