我有一个数据集,包含经度、纬度和月均变量(如温度或降水量),涵盖了1961年至1970年。该数据集的分辨率为0.5度经/纬度,覆盖全球,并以.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个经度/纬度行组成的数据表。如果你将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 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网格相同的值。
我已经研究过栅格,但似乎无法进行任何操作。