0
我想保存數據集的二維數組作爲屬性1D,因爲這樣的:xarray:2D轉換屬性通過to_netcdf
attrs = {'objects': np.array([(46.5, -42.5),(4.5, 44),(-69, -69),(-66.5, 73.5)])}
ds = xr.Dataset(data_vars, coords, attrs)
ds.to_netcdf('dataset.nc', engine='netcdf4', format='netCDF4')
但加載該文件備份表明屬性發生變化到一維數組:
data = xr.open_dataset('dataset.nc')
print(data.objects)
# array([ 46.5, -42.5, 4.5, 44. , -69. , -69. , -66.5, 73.5])
這可能是什麼原因造成的?我嘗試傳遞一個元組列表,但結果是一樣的。
您鏈接的頁面還說:「這比HDF5更具限制性,其中屬性可以是多維的」。然而,使用'engine ='h5netcdf''會給我帶來一個錯誤,'NetCDF:無法打開HDF5屬性'。我想我會看到有關將這些信息併入'data_vars'或'coords'的信息。 – Marein
我看了一下將這些信息合併到'data_vars'或'coords'中,但它不太合適,因爲我的'objects'數據的維數與其餘數據無關。一個更好的選擇可能是爲這個數據創建一個完全獨立的數據集或其他存儲,但是我不得不跟蹤這兩個變量,這是一個恥辱。 – Marein
明白了,除了'to_netcdf'之外,我必須明確地將'engine ='h5netcdf''傳遞給'open_dataset'。謝謝! – Marein