我想从cru全局数据中对一个区域进行子集化。 “cmsaf”包,box_mergetime函数可以对CMIP5和CORDEX .nc数据进行子集化,但在CRU .nc数据中它会产生以下错误。
df$z[!is.na(df$x)] <- c(NA, diff.difftime(df$Date[!is.na(df$x)]))
df
# Date x z
#1 2016-01-20 34 NA
#2 2016-01-21 28 1
#3 2016-01-22 NA NA
#4 2016-01-23 NA NA
#5 2016-01-24 56 3
#6 2016-01-25 NA NA
#7 2016-01-26 28 2
数据文件的链接 - https://drive.google.com/open?id=0B9ACBRSUXCjndlFMV05jLVNBbkk
答案 0 :(得分:1)
此错误消息的原因是缺少CRU NetCDF数据中经度和纬度的标准名称。我修复了这个问题,并且使用cmsaf 1.8.0版它现在应该可以工作了。 cmsaf包提供与cdo类似的功能(例如,包括sellonlatbox,timmean,fldmean)。
答案 1 :(得分:0)
在阅读R
之前,可以通过CDO的命令行轻松完成此操作选择一个框:
10.0.2.2
做一个时间意味着:
localhost
做一个空格意味着:
cdo sellonlatbox,lon1,lon2,lat1,lat2 in.nc out.nc
如果您使用的是Ubuntu,可以使用
轻松安装cdocdo timmean in.nc out.nc
在Windows下,您可以在CYGWIN下安装它。