[英]How can you add a variable from one netcdf file to another netcdf file in python?
我正在使用來自 ECMWF 的 ERA-Interim 數據,其中我需要的變量分布在多個文件中。 如何將一個文件中的變量添加到現有文件中,以便最終擁有一個包含我需要的所有變量的文件?
到目前為止,我已經嘗試了 append()、concatenate() 和 merge 函數,但沒有任何效果。
p_data = anapath1+'/'+yyyy+'/'+mm+'/'+'P'+date
b_data = anapath1+'/'+yyyy+'/'+mm+'/'+'B'+date
g_data = anapath1+'/'+yyyy+'/'+mm+'/'+'G'+date
#Open/Read netCDF files
inpcst = xr.open_dataset(cstfile)
inp1 = xr.open_dataset(p_data)
inp2 = xr.open_dataset(b_data)
inp3 = xr.open_dataset(g_data)
這些是我正在使用的一些數據文件。 我將它們加載到 python 中。
cdo merge inp1 inp2 inp
我嘗試使用此方法合並兩個數據文件,但出現以下錯誤:
File "<ipython-input-12-667af80d1ae4>", line 49
cdo merge inp1 inp2 inp
^
SyntaxError: invalid syntax
我以前在這里看到過和這里完全一樣的代碼,所以我不知道為什么會出現語法錯誤。 在 Matlab 中這很容易,因為您可以這樣做:
inp = inp1
inp.a = inp2.a
inp.b = inp3.b
其中 a 和 b 是我要添加到 inp 的 inp2 和 inp3 的變量
我只是想將某些變量從一個文件復制到另一個
歡迎來到 SO,如果您是 NETCDF 處理的新手,我強烈建議您使用 CDO 和 NCO 的命令行運算符來執行此類任務...例如,您可以 select 從文件中獲取特定變量並將其放入自己的像這樣的文件:
cdo selvar,varname in.nc out.nc
然后您可以將文件組合在一起以創建一個組合文件,如下所示:
cdo cat file1.nc file2.nc cat_file.nc
然后在這兩個包中都有一大堆運算符來執行時間平均值、平均值、最大值、百分位數等......
在此處查看文檔: https://code.mpimet.mpg.de/projects/cdo/wiki/Cdo#Documentation
如果您使用的是 linux ubuntu 或 mint,您可以簡單地安裝它:
cdo apt-get install cdo
ncrcat 還可以將 netcdf 文件合並在一起,詳見此處: https://linux.die.net/man/1/ncrcat
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.