gpt4 book ai didi

r - 是否可以叠加 SpatialLinesDataFrame 和 SpatialPolygonsDataFrame

转载 作者:行者123 更新时间:2023-12-01 21:28:18 25 4
gpt4 key购买 nike

我想知道是否可以做到这一点 R 。

我有一个数据作为SpatialLinesDataFrame,另一个数据作为spatialPolygonDataFrame。是否可以叠加这两个数据?

当我尝试覆盖这些时,出现以下错误:

  jd <- overlay(res,hello) 
Error in function (classes, fdef, mtable) : unable to find an inherited method for function
‘overlay’ for signature ‘"SpatialLinesDataFrame", "SpatialPolygonsDataFrame"’

在上面的代码中,res 是 SpatialLinesDataFrame,hello 是 SpatialPolygonDataFrame。

我有一个 shapefile,然后我有带有 x、y 和 z 的数据点坐标。我想在 shapefile 上显示轮廓线。

我使用的程序是使用 akima 包进行插值。这我用来插值的代码是

fld <- interp(x,y,z)

然后我使用以下代码将其更改为空间对象:

res <-ContourLines2SLDF(contourLines(fld))

上述命令会将等高线存储为空间数据。

然后我读取 shapefile 并绘制 shapefile 和 res,如下所示:

p1 <-
spplot(hello,sp.layout=list(list("sp.lines",res)),col="blue",lwd=0,fill="grey",colorkey=F)
p1

“hello”是我的形状文件,“res”是我创建的对象,如上所示。

问题是存储在“res”中的轮廓超出了形状文件。所以我想要用 shapefile 剪切该轮廓并仅显示轮廓在 shapefile 区域内。

所以我正在寻找一种用多边形层剪辑轮廓层的方法。

我已附上通过代码获得的图像。 enter image description here

在图像中,您可以看到 shapefile 中的线条。我也想知道如何在 map 上显示等高线级别。

非常感谢。

吉巴巴

我也想知道overlay到底是做什么的。它是否与两个数据的区域相交?

谢谢。

最佳答案

听起来您正在尝试将线条剪裁到多边形范围。使用 rgeos 包中的 gIntersection 。这是一个可重现的示例:

library(rgeos)
xx <- SpatialPoints(coords=matrix(data=c(0,0), nrow=1))
xx <- gBuffer(spgeom=xx, width=1)
yy <- SpatialLines(list(Lines(Line(matrix(c(-1,1,-1,1), nrow=2)), ID=1)))
zz <- gIntersection(yy, xx)

您可以像这样覆盖绘图:

plot(xx)
plot(zz, add = TRUE, col = "blue")

关于r - 是否可以叠加 SpatialLinesDataFrame 和 SpatialPolygonsDataFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14411296/

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