【问题标题】:How to merge multiple nc files in linux using cdo如何在linux中使用cdo合并多个nc文件
【发布时间】:2020-09-22 15:42:20
【问题描述】:

我正在使用 Linux,我想将 nc 文件合并为一个。我已经下载了这个website。有很多 netcdf 文件(超过 1000 个)如果手动合并需要很长时间才能合并,一个一个复制粘贴。我考虑使用 vi 命令,它会自动合并并创建 .sh 文件,但不知道该怎么做。

任何人都可以帮助合并比手动花费更少时间的 nc 文件吗?

非常感谢。

这是用于下载文件的文本(第一次使用,文本从 imns 开始):

imns="01 02 03 04 05 06 07 08 09 10 11 12"  

for iyr in {2000..2019};do

    for imn in $imns;do
        for idy in {1..31}; do
            if [ $idy < 10 ]; then
                idy="0"$idy
            fi
            file="https://podaac-opendap.jpl.nasa.gov/opendap/allData/merged_alt/L4/cdr_grid/ssh_grids_v1812_"$iyr$imn$idy"12.nc"
        echo $file
        wget $file
        done
    done
done

【问题讨论】:

  • 如果要及时拼接,使用cdo mergetime * merged.nc,其中*代表输入文件列表。您还可以查看 Adrian Tomkins 或 Charlie Zender 的答案。例如:stackoverflow.com/questions/58167605/….
  • 我试过了,但它不起作用,可能是由于所有文件的大小太大(超过 20GB),我想将所有文件合并为一个。所以无论如何我可以吗?
  • 你试过ncrcat(来自NCO Utilities)吗?我看到文件的 Time 维度设置为 UNLIMITED,所以 ncrcat 应该可以工作。

标签: python linux cdo-climate


【解决方案1】:

正如之前的响应者所说,来自 cdo 的 mergetime 可能会这样做。需要注意的是,由于您要合并的文件数量,您可能会遇到操作系统的限制。

尝试运行:

ulimit -n

这将告诉您可以打开的最大文件数。如果它比您尝试合并的要多,我建议先合并数据的子集,然后再合并它们。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-23
    • 1970-01-01
    • 2022-08-16
    • 1970-01-01
    • 2019-02-28
    • 2018-10-11
    相关资源
    最近更新 更多