Объединение мультиполигонов OSMnx

Каковы лучшие практики в создании объединения мультиполигонов, полученных как группа, с помощью gdf_from_places() OSMnx?

В примере gboeing 02-example-osm-to-shapefile.ipynb несколько шейп-файлов загружаются из OSM в геоданные, используя метод gdf_from_places(). Геометрия сохраняется как мультиполигоны в кадре данных Geopanda, где каждая строка представляет место.

# you can pass multiple queries with mixed types (dicts and strings)
mx_gt_tx = ox.gdf_from_places(queries=[{'country':'Mexico'}, 'Guatemala', {'state':'Texas'}])
mx_gt_tx = ox.project_gdf(mx_gt_tx)
fig, ax = ox.plot_shape(mx_gt_tx)

Пример osmnx gdf_from_places

Что касается вопроса, я экспериментировал с GeoPanda GeoSeries.unary_union, но хотел узнать, как другие программно достигают этого в Python.

Текущий процесс 2018

Этот метод использует функцию Shapely unary_union (иначе это будет mx_gt_tx["geometry"]. Unary_union через Geopandas, как указано в комментарии @joris.

queries = [{'country':'Mexico'}, 'Guatemala', {'state':'Texas'}]

# buffer_dist is in meters
mx_gt_tx = ox.gdf_from_places(queries, gdf_name='region_mx_gt_tx')
mx_gt_tx

Imgur

# project the geometry to the appropriate UTM zone then plot it
mx_gt_tx = ox.project_gdf(mx_gt_tx)
fig, ax = ox.plot_shape(mx_gt_tx)

Imgur

# unary union through Geopandas
region_mx_gt_tx = gpd.GeoSeries(unary_union(mx_gt_tx["geometry"]))
region_mx_gt_tx.plot(color = 'blue')
plt.show()
print(region_mx_gt_tx )

Imgur

1 ответ

Решение
import osmnx as ox
gdf = ox.gdf_from_places(queries=[{'country':'Mexico'}, 'Guatemala', {'state':'Texas'}])
unified = gdf.unary_union
Другие вопросы по тегам