R-Raster:将空间分辨率从 50 米提高到 30 米

R-Raster: Increase spatial resolution from 50 meter to 30 meter

我有一个 50 米分辨率的光栅。我正在努力达到 30 米。 我尝试使用 raster::disaggregate 功能,但分辨率没有更改为 30 米。

library(raster)

a = raster("file.tif")

b = disaggregate(a, fact=30/50, method='bilinear')

如果您有一些替代解决方案,那将非常有帮助。提前致谢。

disaggregate 函数需要整数作为 fact 参数。您可以改用 resample 函数。我正在使用一些示例数据,因为我没有你的数据,所以你需要根据你的环境修改它。我将 40 x 40 重采样为 5 x 5,以使绘图显示出差异。

library(raster)
rr <- raster(system.file("external/test.grd", package="raster"))
res(rr) # 40 by 40
#[1] 40 40
# Create a raster to aim for - make sure its projection is the same as the original and
# uses metres.
proj4string(rr)
#[1] "+proj=sterea +lat_0=52.1561605555556 +lon_0=5.38763888888889 +k=0.9999079 +x_0=155000 +y_0=463000 +datum=WGS84 +units=m +no_defs"
ss <- raster(resolution=c(5,5), crs=proj4string(rr), ext=extent(rr)) 
res(ss) # 5 by 5
#[1] 5 5
rs <- resample(rr, ss) # This makes a new raster with the 5 by 5 resolution
res(rs) # should be 5 by 5
#[1] 5 5

40 米乘 40 米...

5 米乘 5 米...