相关疑难解决方法(0)

如何更改 R 中的分辨率(或重新网格)数据

我有一个数据集,由 lon、lat 和涵盖 1961 年至 1970 年的月平均变量(例如温度或降水)组成。该数据集的分辨率为 0.5 x 0.5 度经/纬度,覆盖整个地球,并以 .我使用 R 提取数据的 NC 文件:

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)
Run Code Online (Sandbox Code Playgroud)

扩展网格(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) 
Run Code Online (Sandbox Code Playgroud)

因此I现在是第一个月(即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 …
Run Code Online (Sandbox Code Playgroud)

r data-manipulation cdo-climate

5
推荐指数
1
解决办法
6472
查看次数

标签 统计

cdo-climate ×1

data-manipulation ×1

r ×1