簡體   English   中英

將數據集保存為 .netCDF 並將屬性保存在 Python (xarray)

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM