我有一个由 lon、lat 和覆盖 1961 年至 1970 年的月平均变量(例如温度或降水)组成的数据集。该数据集的分辨率为 0.5 x 0.5 度 lon/lat,覆盖全球,并以 . NC 文件,我使用以下方法提取了 R 中的数据:
library(ncdf)
f <- open.ncdf("D:/CRU/cru_ts3.21.1961.1970.tmp.dat.nc")
A <- get.var.ncdf(nc=f,varid="tmp")
B <- get.var.ncdf(nc=f,varid="lon")
C <- get.var.ncdf(nc=f,varid="lat")
D <- cbind(expand.grid(B, C))
E <- expand.grid(A)
扩展网格 (E) 是包含 31,104,000 行变量的数据表,扩展网格 (D) 是包含 259,200 行 lon/lat 的数据表。如果你乘以 259,200 * 10 年 * 12 个月,你会得到 31,104,000。因此,可以使用以下方法将表 E 拆分为月值:
Month <- 1
Start <- (Month-1)*(259200)+1
Finish <- (Month*259200)
G <- E[Start:Finish,]
H <- expand.grid(G)
I <- cbind(D,H)
因此,我现在是第一个月(即 1961 年 1 月)的数据表,由 lon、lat 和变量组成。数据示例如下:
lon lat tmp
49184 -68.25 -55.75 7.5
49185 -67.75 -55.75 7.6
49186 -67.25 -55.75 7.6
49899 -70.75 -55.25 6.8
49900 -70.25 -55.25 7.0
49901 -69.75 -55.25 6.9
49902 -69.25 -55.25 7.1
49903 -68.75 -55.25 6.8
49904 -68.25 -55.25 7.6
49905 -67.75 -55.25 8.2
现在我的问题。网格的当前分辨率为 0.5 * 0.5 度,我想“重新网格化”数据,因此分辨率为 0.25 * 0.25 度。我不想对数据做任何特别聪明的事情,所以我只想让 0.25 网格取其所在的 0.5 网格的值,即每个 0.5*0.5 网格包含 4 个 0.25*0.25 网格,我只想要4 个 0.25*0.25 网格与 0.5*0.5 网格具有相同的值。
我看过 raster 但似乎无能为力。