[英]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.