亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

更改 python 中 netcdf 變量的單位

更改 python 中 netcdf 變量的單位

當年話下 2023-12-20 20:05:31
我在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。


查看完整回答
反對 回復 2023-12-20
?
汪汪一只貓

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 年。


查看完整回答
反對 回復 2023-12-20
  • 2 回答
  • 0 關注
  • 297 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號