用 R 计算多个多边形之间的最小距离

Pat*_*hin 5 r distance polygon spatial r-sf

我对 R 和 sf 包还是有点陌生​​......

我有两组要分析的多面数据。我的第一组多边形(火)包含数百个野火边界。第二组(城镇)包含数百个市区边界。

对于每场火灾,我想计算到最近城镇的距离(火灾多边形边缘到最近城镇多边形边缘),并将其作为字段添加到每场火灾中。

到目前为止,我主要使用 sf 包来处理空间数据。在我的搜索中,我只能找到多边形到点、点到点、线到点等的最小距离方法,但似乎无法找到多边形到多边形的示例。任何帮助我朝正确方向发送的帮助将不胜感激!谢谢你。

Pat*_*hin 6

@TimSalabim 谢谢你把我送到正确的方向。我能够完成我所追求的。也许不是最优雅的解决方案,但它奏效了。

# create an index of the nearest feature
index <- st_nearest_feature(x = poly1, y = poly2)

# slice based on the index
poly2 <- poly2 %>% slice(index)

# calculate distance between polygons
poly_dist <- st_distance(x = poly1, y= poly2, by_element = TRUE)

# add the distance calculations to the fire polygons
poly1$distance <- poly_dist
Run Code Online (Sandbox Code Playgroud)