【问题标题】:merging of Netcdf files合并 Netcdf 文件
【发布时间】:2013-06-28 19:36:42
【问题描述】:

我有大约 500 个 netcdf(.nc) 文件。我需要将所有这些文件合并到一个文件中。我是编程新手,我没有足够的知识来合并这些文件。谁能解释一下我们如何可以合并这些文件并提取到 csv 文件或 excel 表。我们可以使用哪个函数来合并文件。任何帮助将不胜感激。

【问题讨论】:

  • 您可以组合 netCDF 文件中的变量(如果它们具有相同的维度)。如果变量具有无限维度,则最好这样做,您可以使用它来附加所有文件。但是您也可以添加一个新维度并在那里加入文件。无论如何,结果将取决于您的数据结构,因此不可能有通用的答案。

标签: csv metadata netcdf


【解决方案1】:

试试这个 shell 脚本来合并你拥有的 500 个 netcdf 文件。这是您可以做什么的粗略想法:

  i=1
  for X in `ls -1 *nc`
  do
       cdo merge $X temp.nc out.nc
       i=`expr $i+1`
       if [i!=500];  #This is the run so you want to keep out as your final output
       then 
           mv out.nc temp.nc ##### for use in future merges.  This will build up as $X nc files get merged to it.
  done

【讨论】:

    【解决方案2】:

    NCO 的 ncecat 可以将任意数量的 netCDF 文件组合在一起

    ncecat in1.nc in2.nc ... inN.nc out.nc
    ncecat in*.nc out.nc
    

    documentation 中描述了开关和其他选项。

    【讨论】:

      【解决方案3】:

      您可以使用

      合并具有不同变量的文件
      cdo merge in1.nc in2.nc ... inN.nc out.nc
      

      或者如果它们是不同时间段的相同变量,则可以沿时间轴合并

      cdo mergetime in1.nc in2.nc ... inN.nc out.nc
      

      但请注意,要执行此 CDO 必须同时打开所有输入文件,并且在某些系统上,打开文件的数量限制为 256。因此,要合并 500 个文件,您需要分 2 个或更多步骤完成。

      【讨论】:

        猜你喜欢
        • 2015-05-11
        • 2018-10-10
        • 2017-12-19
        • 1970-01-01
        • 2022-01-08
        • 2018-09-06
        • 2018-04-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多