创建一个多部分光栅的矢量足迹[R]。

问题描述 投票:0回答:1

我使用这段代码在我的R会话中读取了一个栅格,现在我想做一个简单的特征(sf)对象来表示这个栅格的轮廓。

raster <- stack("raster.tif")

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

我希望得到任何帮助。谢谢你的帮助

马克

r raster sf footprint
1个回答
0
投票

如果你想要堆栈中的每一个栅格,你需要在每一个栅格上用 涂抹. 这将返回一个多边形层的列表。然后你需要将列表中的每个组件转换为 sf multipolygon。最后,你需要连接这些特征(注意,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

另外,使用光栅作为变量名可能不是很好,因为光栅包有一个叫做光栅的函数。

© www.soinside.com 2019 - 2024. All rights reserved.