Объединение мультиполигонов 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)
Что касается вопроса, я экспериментировал с 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
# 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)
# 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 )
1 ответ
Решение
import osmnx as ox
gdf = ox.gdf_from_places(queries=[{'country':'Mexico'}, 'Guatemala', {'state':'Texas'}])
unified = gdf.unary_union