假设有两个 netCDF 文件(在我的例子中是 nc4),每个变量都有 3 个维度:纬度、经度和时间(年)。它们具有不同的时间跨度(例如 1700-2005 和 2005-2100 - 它们在 2005 年重叠)。如何连接它们以获得一个跨越 1700-2100 的 nc4 文件?
简单地尝试 NCO 运算符
ncrcat file1.cn4 file2.nc4 result.nc4
会给出一个跨越 [1700-2005, 1700-1795] 的文件。运行该行时会发出警告:nco_cln_clc_dff<><> failed to initialize UDUnits2 library
. 根据这篇文章,我不应该担心。
我还使用了NCO 手册 中描述的附加功能ncrcat --rec_apn file2.nc4 file1.cn4
。我得到一个结果时间跨度 [2005-2310,2005-2100] 和一个警告:(ncrcat: WARNING Intra-file non-monotonicity. Record coordinate “time” does not monotonically decrease between input file file2.nc4 record indices: 94,95 output file1.nc4 record indices 400,401 ...
索引在这里不太重要,因为我收到了每个索引的警告)
请注意,我可以在没有时间跨度问题的情况下与Linux上的CDOcdo mergetime file1.cn4 file2.nc4 result.nc4
连接:(或cdo -z zip_3 mergetime file1.cn4 file2.nc4 result.nc4
获得 3 级压缩)。另请注意,为了处理重叠的 2005 年,我必须export SKIP_SAME_TIME=1
在调用之前使用(仅第一次出现)。cdo mergetime
使用 RI 尝试了以下方法:
library(ncdf4)
library(ncdf.tools)
ncFile1 <- nc_open("C://file1.nc4")
nc1 <-ncvar_get(ncFile1)
ncFile2 <- nc_open("C://file2.nc4")
nc2 <-ncvar_get(ncFile2)
transNcdfMerge(c(nc1, nc2), target.name = "my_test.nc4")
我让它运行了将近 2 个小时,然后我停止了运行。由于我必须为数百个 nc4 文件执行此操作,所以我不能等那么久。运行时没有大喊任何错误,但我不确定代码是否正确。
我使用 Windows 7、64 位、8Gb RAM。对于 R -“R 版本 3.3.0 (2016-05-03)”
更新:用 R 打印这两个文件的一些元数据
1)文件1.nc4
ncdf4::print(file1.nc4)
1 variables (excluding dimension variables):
float prop_crop[lon,lat,time] (Chunking: [720,360,1]) (Compression: shuffle,level 3)
units: percent
_FillValue: -9999
long_name: Proportion of landcover in crops
missing_value: -9999
3 dimensions:
lat Size:360
units: degrees_north
long_name: Latitude
standard_name: latitude
lon Size:720
units: degrees_east
long_name: Longitude
standard_name: longitude
time Size:306 *** is unlimited ***
long_name: Time
standard_name: time
calendar: proleptic_gregorian
units: years since 1700-01-01 00:00:00
2)文件2.nc4
ncdf4::print(file2.nc4)
1 variables (excluding dimension variables):
float prop_crop[lon,lat,time] (Chunking: [720,360,1]) (Compression: shuffle,level 3)
units: percent
_FillValue: -9999
long_name: Proportion of landcover in crops
missing_value: -9999
3 dimensions:
lat Size:360
units: degrees_north
long_name: Latitude
standard_name: latitude
lon Size:720
units: degrees_east
long_name: Longitude
standard_name: longitude
time Size:96 *** is unlimited ***
units: years since 2005-01-01 00:00:00
long_name: Time
standard_name: time
calendar: proleptic_gregorian
希望能帮助到你