创建多部分栅格的矢量轮廓线 [R].



我已经使用以下代码将栅格读取到我的 R 会话中:

raster <- stack("raster.tif")

现在我想制作一个简单的要素 (sf( 对象来表示该栅格的轮廓。我无法使用边界框,因为栅格是多部分的,因此边界框将比栅格大得多。因此,覆盖区还需要是多部分要素(sf 多面(。

我将不胜感激对此的任何帮助。谢谢!

马克

如果想要堆栈中的每个栅格,则需要使用lapply遍历每个栅格。这将返回面图层的列表。然后,您需要将列表的每个组件转换为 sf 多多边形。最后,您需要连接这些特征(请注意,c 是 c(( 函数(。shp应该是您的多多边形。您可能不想溶解多边形,您并没有真正明确您想要什么。

a <- lapply(as.list(raster), rasterToPolygons, dissolve=TRUE)
b <- lapply(a, st_as_sf) # convert to sf multipolygon
shp <- Reduce(c, b) # combine all polygons to one

作为旁注,使用栅格作为变量名称可能不是很好,因为栅格包具有一个名为栅格的函数。

相关内容

  • 没有找到相关文章

最新更新