Создание новых узлов с помощью redistribute_vertices - PullRequest
1 голос
/ 13 июля 2020

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

В настоящее время я использую get_nearest_node для сопоставления датчика с узлом. Однако это не оптимально, так как я во власти картографа - на прямых дорогах будет меньше узлов, поэтому среднее смещение (и, следовательно, ошибка) будет выше, даже при работе с неупрощенными графиками. Я рассматривал возможность использования get_nearest_edge, но мне все равно нужно было бы отредактировать график, чтобы вставить новый узел в положение датчика.

Вместо этого я подумал, что разумным способом достижения этого будет повышение дискретизации граф (возможно, используя redistribute_vertices), применяя get_nearest_node, а затем повторно упрощая график, но каким-то образом добавляя в белый список узел, который теперь связан с датчиком, чтобы предотвратить его удаление.

Однако, мне не ясно, как преобразовать go из вывода redistribute_vertices в график - он возвращает LineString или MultiLineString, а не новый график.

Я видел этот вопрос, опубликованный на проект osmnx GitHub: https://github.com/gboeing/osmnx/issues/304, в котором создается GeoDataFrame, с новым столбцом, содержащим перераспределенный путь как (Multi) LineString. Однако я не уверен, как я могу сопоставить этот новый gdf с графиком - соответствующий node фрейм данных не был обновлен, а значения u и v остаются такими же в новой таблице краев.

Любые указатели (включая сообщение о том, что я иду по неправильному пути и должен использовать функцию XYZ) были бы очень признательны.

...