将栅格中的值检索到具有不同范围和分辨率的另一个栅格中
Posted
技术标签:
【中文标题】将栅格中的值检索到具有不同范围和分辨率的另一个栅格中【英文标题】:Retrieving values from raster into another raster with different extent and resolution 【发布时间】:2014-05-28 19:14:43 【问题描述】:我得到了一个气候值的栅格图层“w_wgs”。另一方面,我创建了一个空的栅格“网格”。 我想将存储在“w_wgs”中的值分配到我的空栅格网格中。我尝试了 merge()、overlay()、over(),但这些都不起作用。
我该怎么做?假设这两个栅格没有相同的范围和分辨率(显然也没有相同数量的像元)......但两者都具有相同的 CRS (WGS84)。
在这里,我的 2 个对象的描述:
> extent(w_wgs)
class : Extent
xmin : -64.50344
xmax : 74.07016
ymin : 12.93039
ymax : 72.72534
> res(w_wgs)
[1] 0.01320 0.00895
> res(grid)
[1] 0.08 0.08
> extent(grid)
class : Extent
xmin : 5
xmax : 17.96
ymin : 40
ymax : 50
【问题讨论】:
extract
函数在这种情况下对您有用吗?
我想过,但似乎这个函数不能作为参数使用 2 'RasterLayer' 对象。我得到的结果是:> extract(w_wgs,grid) (function (classes, fdef, mtable) 中的错误:无法为签名“RasterLayer”、“RasterLayer”的函数“extract”找到继承的方法
你能把你想要的所有点值放到一个 SpatialPoints 数据框对象中,然后使用extract
函数吗?我能问一下你为什么要这样做吗?
【参考方案1】:
我认为你需要使用resample
grid <- resample(w_wgs, grid)
一个应该和你的情况类似的小例子:
x <- matrix(1:100, nr = 10, nc = 10)
a <- raster(x)
x2 <- matrix(NA, nr = 3, nc = 3)
b <- raster(x2)
# Manually changing the extent and resolution of b
b@extent@xmax <- 0.5
b@extent@ymin <- 0.3
b <- resample(a, b)
par(mfrow = c(2, 1))
plot(a)
plot(extent(b), add = T)
plot(b)
【讨论】:
以上是关于将栅格中的值检索到具有不同范围和分辨率的另一个栅格中的主要内容,如果未能解决你的问题,请参考以下文章