将 NetCDF 文件中的时间维度单位从月更改为月

Change units of time dimension in NetCDF file from months to months since

我目前有多个具有 4 个维度(纬度、经度、时间和深度)的 NetCDF 文件。每个代表一年的月度数据。时间单位是 "month", 1-12,因此如果我想跨年合并这些文件以给我一个时间维度为月 * 年的单个 NetCDF 文件,那将毫无用处。

单个文件的时间维度属性:

time  Size:12   *** is unlimited ***
            long_nime: time
            units: month

我用的是nco的ncrcat来合并

ncrcat soda3.3.1*sst.nc -O soda3.3.1_1980_2015_sst.nc

除合并时读取时间值外,此方法有效

#in R
soda.info$var$temp$dim[[3]]$vals
  [1]  1  2  3  4  5  6  7  8  9 10 11 12  1  2  3  4  5  6  7  8  9 10 11 12  1
 [26]  2  3  4  5  6  7  8  9 10 11 12  1  2  3  4  5  6  7  8  9 10 11 12  1  2
 [51]  3  4  5  6  7  8  9 10 11 12  1  2  3  4  5  6  7  8  9 10 11 12  1  2  3
 [76]  4  5  6  7  8  9 10 11 12  1  2  3  4  5  6  7  8  9 10 11 12  1  2  3  4
[101]  5  6  7  8  9 10 11 12  1  2  3  4  5  6  7  8  9 10 11 12  1  2  3  4  5
[126]  6  7  8  9 10 11 12  1  2  3  4  5  6  7  8  9 10 11 12  1  2  3  4  5  6
[151]  7  8  9 10 11 12  1  2  3  4  5  6  7  8  9 10 11 12  1  2  3  4  5  6  7
[176]  8  9 10 11 12  1  2  3  4  5  6  7  8  9 10 11 12  1  2  3  4  5  6  7  8
[201]  9 10 11 12  1  2  3  4  5  6  7  8  9 10 11 12  1  2  3  4  5  6  7  8  9
[226] 10 11 12  1  2  3  4  5  6  7  8  9 10 11 12  1  2  3  4  5  6  7  8  9 10
[251] 11 12  1  2  3  4  5  6  7  8  9 10 11 12  1  2  3  4  5  6  7  8  9 10 11
[276] 12  1  2  3  4  5  6  7  8  9 10 11 12  1  2  3  4  5  6  7  8  9 10 11 12
[301]  1  2  3  4  5  6  7  8  9 10 11 12  1  2  3  4  5  6  7  8  9 10 11 12  1
[326]  2  3  4  5  6  7  8  9 10 11 12  1  2  3  4  5  6  7  8  9 10 11 12  1  2
[351]  3  4  5  6  7  8  9 10 11 12  1  2  3  4  5  6  7  8  9 10 11 12  1  2  3
[376]  4  5  6  7  8  9 10 11 12  1  2  3  4  5  6  7  8  9 10 11 12  1  2  3  4
[401]  5  6  7  8  9 10 11 12  1  2  3  4  5  6  7  8  9 10 11 12  1  2  3  4  5
[426]  6  7  8  9 10 11 12

...如果我想跟踪时间,这显然没有多大帮助。

过去我只使用具有 "months since..." 单位的 NetCDF 文件。有没有办法把这些毫无根据的'month'单位改成'months since...'?

按顺序枚举月份是否足够?

ncap2 -s 'time=array(0,1,$time)' soda3.3.1_1980_2015_sst.nc out.nc

您还可以按照 Chelmy and/or 在 NCO manual 中的评论中所述向时间添加 "months since ..." 单位。我把它留给你作为练习,温柔 reader.