OSMnx Получить координаты Lat Lon чистых узлов пересечения

1

Я использую OSMnx для получения чистых перекрестков из дорожной сети OpenStreetMaps. Узлы пересечения в настоящее время находятся в координатах (x, y), но я хочу их построить, используя координаты lat lon.

Из примера ноутбука Юпитера, Пример OSMnx # 14 Чистые узлы кластера пересечения, я могу получить уличную сеть и вызвать ox.clean_intersections для создания чистых пересечений.

import osmnx as ox, matplotlib.pyplot as plt, numpy as np
ox.config(use_cache=True, log_console=True)
%matplotlib inline

# get a street network and plot it with all edge intersections
address = '2700 Shattuck Ave, Berkeley, CA'
G = ox.graph_from_address(address, network_type='drive', distance=750)
G_proj = ox.project_graph(G)

# clean up the intersections and extract their xy coords
intersections = ox.clean_intersections(G_proj, tolerance=15, dead_ends=False)
 points = np.array([point.xy for point in intersections])

Я получаю Panda Geoseries пересечений, которые выглядят так:

0       POINT (564152.437121744 4189596.945341664)
1      POINT (564846.6779513165 4189615.534235776)
2      POINT (564571.2116373706 4189601.780093061)

Так как чистые пересечения состоят из центроидов кластеров объединенных узлов, они не соответствуют какому-либо конкретному узлу с osm_id (который имеет координаты полных координат).

Как я могу преобразовать эти (x, y) точки в координаты lat lon?

Теги:
graph
openstreetmap
osmnx

1 ответ

0
Лучший ответ

Вы проецировали график на метры, чтобы очистить пересечения с помощью разумного параметра допуска. Теперь вам просто нужно проецировать очищенные центрифуги пересечения назад на lat-long:

import geopandas as gpd
gdf = gpd.GeoDataFrame(geometry=intersections)
gdf.crs = G_proj.graph['crs']
ox.project_gdf(gdf, to_latlong=True)
  • 0
    Как и в osmnx-примерах, это «не изменяет и не интегрируется с топологией сети». Есть ли способ построить новую очищенную сеть ... не просто получить список точек без ребер?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню