【问题标题】:Create a vector footprint of a multi-part raster [R]创建多部分栅格的矢量足迹 [R]
【发布时间】:2020-09-16 09:26:37
【问题描述】:

我已使用以下代码将光栅读入我的 R 会话:

raster <- stack("raster.tif")

现在我想制作一个简单的特征 (sf) 对象来表示该栅格的轮廓。我不能使用边界框,因为栅格是多部分的,所以边界框会比栅格大得多。所以足迹也需要是一个多部分的特征(sf multipolygon)。

如果能提供任何帮助,我将不胜感激。谢谢!

标记

【问题讨论】:

    标签: r raster sf footprint


    【解决方案1】:

    如果您想要堆栈中的每个栅格,您需要使用 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
    

    附带说明一下,使用 raster 作为变量名可能不太好,因为 raster 包有一个名为 raster 的函数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-22
      • 2015-09-13
      • 2021-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多