我在Python中有一個netCDF文件,其中時間變量的單位是days_since_Jan11900包無法讀取的xarray。它拋出錯誤unable to decode time units 'days_since_Jan11900' with 'the default calendar'. Try opening your dataset with decode_times=False or installing cftime if it is not installed.我不想使用decode_times,只是將其更改為days_since_0. 這是自 0000 年 1 月 1 日以來的天數。如何將 netCDF 中的單位更改為可讀的單位?<class 'netCDF4._netCDF4.Variable'>float64 days(time) units: days_since_Jan11900 long_name: calendar_daysunlimited dimensions: current shape = (87600,)filling on, default _FillValue of 9.969209968386869e+36 used
2 回答

明月笑刀無情
TA貢獻1828條經驗 獲得超4個贊
按照我的要求,我自己用 Python 解決了這個問題,而不是通過 cdo。這是我的做法,非常簡單:
ds['days'] = ds.days - 730966
ds.days.attrs['units'] = 'days since 1860-01-01'
ds.to_netcdf(path + 'name_of_file.nc')
這730966是我在數組中的起始值days,因此我減去了它并將我的單位更改為適當的單位,在我的例子中days since 1860-01-01。

汪汪一只貓
TA貢獻1898條經驗 獲得超8個贊
如果您使用的是 Unix,您可以嘗試使用 CDO 更改日歷。以下內容應該可以解決您的問題:
cdo -L -setreftime,0001-01-01 -settaxis,0001-01-01,0:00:00,1day -setcalendar,standard infile.nc outfile.nc
我已將時間設置為第 1 年,因為我認為任何有效日歷中都不存在第 0 年。
添加回答
舉報
0/150
提交
取消