我有一個 netcdf 檔案,其中包含 1990-2001 年期間的全球溫度(tas,degC)資料,在 1x1deg lat-lon 網格中的每日時間步長。
我只對 tas days > 10degC 感興趣。
有沒有一種方法可以使用 CDO 對 netcdf 檔案進行子集化并創建一個只有 tas days > 10degC 的新檔案?
運算子可能與我的gtc問題有關,但它只創建一個帶有 0 和 1 的掩碼,而我需要>10degC 的真實值。
uj5u.com熱心網友回復:
我同意 Adrian Tompkins 的觀點,即提出的作業流程并不過分明智,因為任何子集都會丟棄網格資訊,并從根本上否定首先使用 netCDF 資料的目的。建議的作業流程使用 R 中的資料幀或 Python 中的 pandas 會更有意義。
但是,如果您必須在 CDO 中執行此操作,您可以使用 reducegrid 運算子,它將 netCDF 檔案減少為網格單元而不會丟失值,如下所示(改編自 Adrian Tompkins 的回答):
cdo gtc,10 tas.nc mask1.nc
# set zeros to missing
cdo setctomiss,0 mask1.nc mask2.nc
cdo reducegrid,mask2.nc tas.nc tas_subsetted.nc
uj5u.com熱心網友回復:
我不太確定你想要什么......如果你想將所有 T<10C 的值設定為缺失,那么你可以按如下方式進行:
cdo gtc,10 tas.nc mask1.nc
# set zeros to missing
cdo setctomiss,0 mask1.nc mask2.nc
cdo mul tas.nc mask2.nc tas_masked.nc
這種技術與用于陸海面具的技術相同 - 請參閱我的有關掩蔽和創建陸海面具的視頻以了解更多詳細資訊。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/435613.html
下一篇:獲取組合兩個字串的變數值
