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