gpt4 book ai didi

r - R-将SpatialLines转换为栅格

转载 作者:行者123 更新时间:2023-12-03 14:59:18 26 4
gpt4 key购买 nike

在R中,我们可以使用功能rasterSpatialLinesDataFrame转换为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)


enter image description here

在R中,是否有相反的方法?像 contourToRaster一样?

我们可以简单地获取与直线上每个点关联的字段值,但是我正在寻找更通用的东西,可以在直线之间进行插值并在定义的域上生成完整的栅格。

最佳答案

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)

关于r - R-将SpatialLines转换为栅格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53621069/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com