我有一个看起来有点"pixel-y"的光栅,我想创建一个更平滑的版本来生成一个漂亮的地图。下面是一个示例数据集:
library(raster)
r <- raster(ncol=10, nrow=10)
values(r) <- runif(ncell(r))
我试过了:
plot(r,interpolate=TRUE)
但我不喜欢它的样子。然后我尝试了:
rr <- disaggregate(r, 3, method='bilinear')
这看起来好多了,但它改变了我的值的上限。我需要通过平滑创建的新值来保持旧数据的限制(即0到1(你知道我该怎么做吗?
一个简单的方法是在对重新采样后对值进行箝位
library(raster)
r <- raster(nrow=10, ncol=10, xmn=0, xmx=10, ymn=0, ymx=10, vals=(1:100)/100)
rr <- disaggregate(r, 3, method='bilinear')
rr <- clamp(rr, 0, 1)
这可能已经足够好了,因为你应该只得到边缘观察范围之外的(几个(值。
另一种方法是使用focal。
x <- disaggregate(r, 3)
f <- focal(x, matrix(1,3,3))