簡體   English   中英

如何在 netcdf 強制氣候文件中使時間變量連續?

[英]How to make time variable continuous in a netcdf forcing climatology file?

我有一個強制的 NetCDF 氣候文件,它有 4 個維度,即時間、緯度、經度和 lev。 我正在使用 GFDL 的靈活建模系統 (FMS) 閱讀此文件。 我想保持時間連續,或者像周期性邊界條件一樣。 例如,我應該只提供一年的月度文件,model 應該直接從我的文件中提取相應的月份,而不需要精確檢查具體的年份。 我正在進行一些實驗,其中一些強制保持固定,而另一些則在變化(以提供我想要這樣做的背景)。

您可以使用以下 nco 命令將模屬性添加到您的時間維度

ncatted -a modulo,time,c,c," " filename.nc

您可以創建一個 netcdf 文件,其中同一年份重復多次並覆蓋時間戳以使用 cdo 給出“虛擬”年份。 假設您的示例 netcdf 文件“ oneyear.nc ”具有2002 年的時間,而您的其他“變化”文件涵蓋 1980 年至 2010 年(如果我理解您的問題,一些變量會逐年變化,它只是您要保持不變的一個特定文件)。

然后你可以用這種方式創建一組帶有虛擬時間戳的年份文件

for offset in $(seq -22 8) ; do 
    cdo shifttime,${offset}years oneyear.nc year${offset}.nc
done

然后您可以使用 mergetime 將它們合並到一個文件中:

cdo mergetime year*.nc mydriverfile.nc

mydriverfile.nc 現在應該包含重復 30 年的相同月度數據,其中包含虛擬的“假”年,然后以與其他驅動程序文件相同的方式易於閱讀。

編輯:關於上面關於閏年的討論,顯然對於月度數據這不是問題,但是如果您想使用每日數據執行此任務,那么使用此解決方案您應該 select 是閏年的樣本年,或插入2 月 29 日的虛擬日。我還懷疑上述模數解決方案在應用於日常輸入時會遇到閏年問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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