如何基于光栅蒙版去除边缘?

How to remove edges based on raster masking?

我是 Python 地理空间工具箱的新手,所以我的问题听起来很基础,与 OSMNX 包无关。 我正在尝试识别和移除被洪水损坏的路段(即图中的边缘)。之后我可以做我的网络分析。

我使用 OSMNX 下载了我感兴趣的区域的路线图和 geopanda 数据框,并且我有一个显示同一区域水深的光栅文件。我知道使道路无法使用的水深是多少(比如超过 50 厘米)。我想知道如何使用光栅文件将其与道路图相交并确定我必须删除的道路段?任何建议都会非常有帮助,因为我目前坚持这个。

这是一个有点模糊的问题,所以恐怕我能做的最好的就是给出一个有点模糊的答案。我建议您查看:

  1. rasterio 用于 python 光栅处理
  2. OSMnx 的 graph_to_gdfs 函数,用于将图形转换为(矢量)GeoDataFrames
  3. 在 python (tutorial)
  4. 中使用光栅 + 矢量数据

我还不能发表评论,所以我将其添加为答案。除了@gboeing 的回答之外,您应该能够为所需的水位对栅格进行多边形处理。 (使用 rasterio.feature 模块)

您可以使用多边形(来自栅格)和边(来自图形)来使用 geopandas 的连接或叠加功能排除超出标准的边。

最后通过OSMnx的graph_from_gdfs再次构建图。