Как удалить края на основе растровой маскировки? - PullRequest
0 голосов
/ 13 июля 2020

Я новичок в геопространственном наборе инструментов Python, поэтому мой вопрос может звучать как c и не имеет отношения к пакету OSMNX. Я пытаюсь определить и удалить участки дороги (то есть ребра на графике), поврежденные, скажем, наводнением. После этого я могу провести анализ сети.

Я использовал OSMNX, чтобы загрузить дорожный график и фрейм данных геопанды для интересующей меня области, и у меня есть растровый файл, который показывает глубину воды в той же области. Я знаю, какая глубина воды делает дорогу непригодной (скажем, более 50 см). Я хотел бы знать, как я могу использовать растровый файл, чтобы пересечь его с дорожным графом и определить сегменты дороги, которые мне нужно удалить? Любое предложение было бы очень полезным, поскольку в настоящее время я застрял на этом.

Ответы [ 2 ]

0 голосов
/ 14 июля 2020

Я пока не могу оставить комментарий, поэтому добавляю его в качестве ответа. В дополнение к ответу @gboeing вы должны иметь возможность полигонизировать растр для желаемого уровня воды. (Используйте модуль rasterio.feature)

Вы можете использовать многоугольники (из растра) и ребра (из графика), чтобы исключить ребра, которые превышают критерии с помощью функции geo pandas 'sjoin или overlay.

Наконец, снова постройте график с помощью OSMnx graph_from_gdfs.

0 голосов
/ 13 июля 2020

Это немного расплывчатый вопрос, поэтому я боюсь, что лучшее, что я могу сделать, - это немного расплывчатый ответ. Я бы порекомендовал вам изучить:

  1. rasterio для python обработки растров
  2. OSMnx graph_to_gdfs функцию для преобразования вашего графика в ( вектор) GeoDataFrames
  3. Работа с растровыми + векторными данными в python ( учебник )
...