作者:把默认珀尔_430_394 | 来源:互联网 | 2022-11-27 10:40
在R中,我们可以将a raster
转换为SpatialLinesDataFrame
具有以下功能rasterToCountour
:
library(raster)
f <- system.file("external/test.grd", package="raster")
r <- raster(f)
x <- rasterToContour(r)
class(x)
[1] "SpatialLinesDataFrame"
attr(,"package")
[1] "sp"
spplot(x)
在R中,有没有办法做相反的事情?有点像contourToRaster
?
我们可以简单地获取与沿着线的每个点相关联的字段值,但是我正在寻找在线之间插值并在定义的域上产生完整栅格的更通用的东西.
1> Robert Hijma..:
library(raster)
f <- system.file("external/test.grd", package="raster")
r <- raster(f)
x <- rasterToContour(r)
您可以栅格化值.在这种情况下,首先从因子标签中提取它们.
x$value <- as.numeric(as.character(x$level))
rr <- rasterize(x, r, "value")
然后提取单元格值并插入这些值
xyz <- rasterToPoints(rr)
(如果你想跳过rasterize和rasterToPoints(正如mikoontz建议的那样)你可以改为
#g <- geom(x)
#xyz = cbind(g[, c("x", "y")], x$value[g[,1]])
以更复杂的模型为代价)
现在插值,例如使用Tps
library(fields)
tps <- Tps(xyz[,1:2], xyz[,3])
p <- raster(r)
p <- interpolate(p, tps)
m <- mask(p, r)
plot(m)