如何使用lat-lon对R中的netcdf CRU V4.00数据进行子集化?

时间:2017-05-21 08:33:24

标签: r netcdf

我想从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

2 个答案:

答案 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,可以使用

轻松安装cdo
cdo timmean in.nc out.nc 

在Windows下,您可以在CYGWIN下安装它。