[英]save dataset as netCDF and also save attributes in Python (xarray)
我生成了新数据并首先保存为数据集 (.to_dataset)。
U_reg = U_reg.to_dataset(name = 'U')
V_reg = V_reg.to_dataset(name = 'V')
T_reg = T_reg.to_dataset(name = 'T')
然后我为每个变量创建了属性
U_reg.attrs['long_name'] = 'eastward_wind'
V_reg.attrs['long_name'] = 'northward_wind'
T_reg.attrs['long_name'] = 'Air Temperature'
然后将数据合并为:
new_data= xr.merge([U_reg,V_reg,T_reg])
最后另存为.netCDF:
new_data.to_netCDF('new_data.netcdf')
然而,当我打开并查看每个变量时,属性不可用。
有没有其他方法可以分配新属性并让它们生成 new.netCDF?
提前致谢。
在您的示例中,您将long_name
属性添加到数据集属性,而不是单个 arrays 的属性。如果在转换为数据集(或直接转换为数据集变量)之前添加属性,您应该得到预期的 output :
U_reg = xr.DataArray(np.random.random((5, 6, 7)), dims=("lon", "lat", "time"))
V_reg = xr.DataArray(np.random.random((5, 6, 7)), dims=("lon", "lat", "time"))
T_reg = xr.DataArray(np.random.random((5, 6, 7)), dims=("lon", "lat", "time"))
U_reg.attrs['long_name'] = 'eastward_wind'
V_reg.attrs['long_name'] = 'northward_wind'
T_reg.attrs['long_name'] = 'Air Temperature'
ds = xr.Dataset({
"U": U_reg,
"V": V_reg,
"T": T_reg
})
ds.info()
xarray.Dataset {
dimensions:
lon = 5 ;
lat = 6 ;
time = 7 ;
variables:
float64 U(lon, lat, time) ;
U:long_name = eastward_wind ;
float64 V(lon, lat, time) ;
V:long_name = northward_wind ;
float64 T(lon, lat, time) ;
T:long_name = Air Temperature ;
// global attributes:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.