将网格气候数据插值到 R 中的不同分辨率
Interpolate gridded climate data to different resolutions in R
我有分辨率为 0.5 度的光栅数据。我想
使用最近邻插值法将这些值插值到 0.125 和 1 度
这如何在 R 中实现?下面是一些示例数据:
library(raster)
ras <- raster(res=0.5)
#get polygons for Iceland
iceland <- getData('GADM', country="Iceland", level=1)
cr <- crop(ras, iceland, snap="out")
values(cr) <- 1:ncell(cr)
fr <- mask(cr, iceland)
plot(fr)
lines(iceland)
示例数据
library(raster)
ras <- raster(res=0.5)
#get polygons for Iceland
iceland <- getData('GADM', country="Iceland", level=1)
cr <- crop(ras, iceland, snap="out")
values(cr) <- 1:ncell(cr)
fr <- mask(cr, iceland)
1度
a <- aggregate(fr, 2, mean, na.rm=TRUE)
0.125度
d <- disaggregate(fr, 4)
像这样分解数据可能可行,但可能不合适。这显然不是改变气候数据分辨率的好方法(但你问 如何 去做,这就是这个网站的目的)
如果不能通过整数乘除得到新分辨率,则有resample
target <- raster(fr)
res(target) <- 1/13
r <- resample(fr, target, "ngb")
#or alternatively
rb <- resample(fr, target, "bilinear")
我有分辨率为 0.5 度的光栅数据。我想 使用最近邻插值法将这些值插值到 0.125 和 1 度
这如何在 R 中实现?下面是一些示例数据:
library(raster)
ras <- raster(res=0.5)
#get polygons for Iceland
iceland <- getData('GADM', country="Iceland", level=1)
cr <- crop(ras, iceland, snap="out")
values(cr) <- 1:ncell(cr)
fr <- mask(cr, iceland)
plot(fr)
lines(iceland)
示例数据
library(raster)
ras <- raster(res=0.5)
#get polygons for Iceland
iceland <- getData('GADM', country="Iceland", level=1)
cr <- crop(ras, iceland, snap="out")
values(cr) <- 1:ncell(cr)
fr <- mask(cr, iceland)
1度
a <- aggregate(fr, 2, mean, na.rm=TRUE)
0.125度
d <- disaggregate(fr, 4)
像这样分解数据可能可行,但可能不合适。这显然不是改变气候数据分辨率的好方法(但你问 如何 去做,这就是这个网站的目的)
如果不能通过整数乘除得到新分辨率,则有resample
target <- raster(fr)
res(target) <- 1/13
r <- resample(fr, target, "ngb")
#or alternatively
rb <- resample(fr, target, "bilinear")