【问题标题】:Interpolate gridded climate data to different resolutions in R将网格化气候数据插值到 R 中的不同分辨率
【发布时间】:2020-07-20 05:02:46
【问题描述】:

我有分辨率为 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)

【问题讨论】:

  • 这应该可以让您在分辨率上下分辨率raster::aggregate 中到达那里,具有多种方法和光栅细微皱纹,HTH
  • 请通过包含一些示例数据(不是文件;除非它与 R 一起提供)来进行重现,您可以使用 raster()。请使用小面积。使用冰岛,而不是加拿大。
  • @RobertHijmans 谢谢你,罗伯特。完成!
  • 谢谢。分辨率为 0.5 度。你想要它是什么?
  • @RobertHijmans 0.125 度和 1 度。

标签: r interpolation raster


【解决方案1】:

示例数据

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")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-09-10
    • 2017-01-18
    • 1970-01-01
    • 2017-09-04
    • 2011-01-02
    • 2014-02-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多