簡體   English   中英

如何將變量從一個 netcdf 文件添加到 python 中的另一個 netcdf 文件?

[英]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.

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