如果您能在这方面提供帮助,我将不胜感激。我有一个xarray,它是使用.toxarray()方法从pandas数据帧创建的,其形式如下:
<xarray.Dataset>
Dimensions: (lat: 556, lon: 1438, time: 96)
Coordinates:
* time (time) datetime64[ns] 2005-01-01 2006-01-01 ... 2100-01-01
* lat (lat) float64 -55.38 -55.12 -54.88 -54.62 ... 82.88 83.12 83.38
* lon (lon) float64 -69.88 -69.62 -69.38 -69.12 ... -26.12 -24.38 -24.12
Data variables:
1.0 (lat, lon, time) float32 nan nan nan nan nan ... nan nan nan nan
2.0 (lat, lon, time) float32 nan nan nan nan nan ... nan nan nan nan
3.0 (lat, lon, time) float32 nan nan nan nan nan ... nan nan nan nan
4.0 (lat, lon, time) float32 nan nan nan nan nan ... nan nan nan nan
5.0 (lat, lon, time) float32 nan nan nan nan nan ... nan nan nan nan
6.0 (lat, lon, time) float32 nan nan nan nan nan ... nan nan nan nan
7.0 (lat, lon, time) float32 nan nan nan nan nan ... nan nan nan nan
当我尝试使用.to_netcdf()保存它时,出现以下错误:
TypeError: DataArray.name or Dataset key must be either a string or None for serialization to netCDF files
我试图通过ds_land[1.0]更改变量的名称。名称='class_1'等,但这也会产生相同的错误。有什么想法吗
在序列化之前,需要使用^{} 将变量重命名为字符串,而不是在DataArray上设置
name
属性。这是因为variables names in netCDF must be strings因此,将变量重命名为
'1.0'
也可以做到这一点:另一方面,考虑到变量的命名方式,似乎它们最好作为另一个维度,因此您有一个新变量,其维度为
lat
、lon
、time
、<new dim with levels 1..7>
相关问题 更多 >
编程相关推荐