From df651521983665056d442603a329a37d966aede1 Mon Sep 17 00:00:00 2001 From: Tom Russell Date: Tue, 15 Aug 2023 12:34:12 +0100 Subject: [PATCH] Update get_test_polygons.py for osmnx 1.6.0 TODO - update `etl/requirements.txt` to reflect osmnx==1.6.0 --- etl/get_test_polygons.py | 53 +++++++++++++++++++++++----------------- 1 file changed, 31 insertions(+), 22 deletions(-) diff --git a/etl/get_test_polygons.py b/etl/get_test_polygons.py index 388b9872..5e990db4 100644 --- a/etl/get_test_polygons.py +++ b/etl/get_test_polygons.py @@ -21,43 +21,52 @@ size = 256 # load buildings from about 1.5kmĀ² around UCL point = (51.524498, -0.133874) dist = 612 -gdf = osmnx.footprints_from_point(point=point, dist=dist) +tags = {"building": True} +gdf = osmnx.features_from_point(point, tags, dist=dist) # preview image -gdf_proj = osmnx.projection.project_gdf(gdf, to_crs={'init': 'epsg:3857'}) -gdf_proj = gdf_proj[gdf_proj.geometry.apply(lambda g: g.geom_type != 'MultiPolygon')] # noqa +gdf_proj = osmnx.projection.project_gdf(gdf, to_crs={"init": "epsg:3857"}) +gdf_proj = gdf_proj[gdf_proj.geometry.type == "Polygon"] -fig, ax = osmnx.plot_footprints(gdf_proj, bgcolor='#333333', - color='w', figsize=(4, 4), - save=True, show=False, close=True, - filename='test_buildings_preview', dpi=600) +fig, ax = osmnx.plot_footprints( + gdf_proj, + bgcolor="#333333", + color="w", + figsize=(4, 4), + save=True, + show=False, + close=True, + filepath="test_buildings_preview.png", + dpi=600, +) # save test_dir = os.path.dirname(__file__) -test_data_geojson = str(os.path.join(test_dir, 'test_buildings.geojson')) +test_data_geojson = str(os.path.join(test_dir, "test_buildings.geojson")) subprocess.run(["rm", test_data_geojson]) - -gdf_to_save = gdf_proj.reset_index( -)[ - ['index', 'geometry'] -] +gdf_to_save = gdf_proj.reset_index()[["osmid", "geometry"]] gdf_to_save.rename( - columns={'index': 'fid'} + columns={"osmid": "fid"} ).to_file( - test_data_geojson, driver='GeoJSON' + test_data_geojson, + driver="GeoJSON" ) # convert to CSV -test_data_csv = str(os.path.join(test_dir, 'test_buildings.3857.csv')) +test_data_csv = str(os.path.join(test_dir, "test_buildings.3857.csv")) subprocess.run(["rm", test_data_csv]) subprocess.run( - ["ogr2ogr", "-f", "CSV", test_data_csv, - test_data_geojson, "-lco", "GEOMETRY=AS_WKT"] + [ + "ogr2ogr", + "-f", + "CSV", + test_data_csv, + test_data_geojson, + "-lco", + "GEOMETRY=AS_WKT", + ] ) # add SRID for ease of loading to PostgreSQL -subprocess.run( - ["sed", "-i", "s/^\"POLYGON/\"SRID=3857;POLYGON/", - test_data_csv] -) +subprocess.run(["sed", "-i", 's/^"POLYGON/"SRID=3857;POLYGON/', test_data_csv])