2017-01-04 76 views
0

我有兩個netcdf文件:名爲rsds.nc的下陷輻射和名爲rsns.nc的受限輻射。 rsds.nc包含一個名爲rsds的變量,而rsns.nc包含一個名爲rsns的變量。現在我想通過分別減去rsds.ncrsns.nc內的變量來得到上升輻射rsus.nc減去兩個不同的netcdf文件中的變量

我嘗試以下方法:

ncdiff rsds.nc rsns.nc rsus.nc 
ncbo op_typ=diff rsds.nc rsns.nc rsus.nc 

他們都產生了rsus.nc但是變量路側單元,在該文件丟失。任何想法爲什麼這是如此?

回答

2

作爲替代@ RichSignell的回答,您可以變量組合成一個單一的文件,並使用ncap2到不重命名變量進行減法。

ncks -A rsns.nc rsds.nc 
ncap2 -s 'rsus=(rsds-rsns)' rsds.nc rsus.nc 
+0

不錯,謝謝! –

2

只有當您的ncdiff兩個文件操作時,纔會對同名變量進行操作。因此,一種解決方案是簡單地重命名其中一個文件中的變量,使其相同。例如,試試這個:

ncrename -v rsds,rsns rsds.nc 
ncdiff rsds.nc rsns.nc rsus.nc 
+0

是的,我同意這一點。但我的希望是,有人知道如何在不改變變量名的情況下做到這一點。 謝謝!豐富! –

2

另一種CDO解決方案。

的CDO子命令一行可以做到這一點:

cdo sub rsds.nc rsns.nc rsus.nc 

您將得到警告

CDO分(警告):輸入流有不同的參數!

但你可以忽略它。請注意,您可能希望將變量名稱更改爲更合適的名稱,以便您可以在一行上執行此操作:

cdo setname,rsus -sub rsds.nc rsns.nc rsus.nc