{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Extracting and processing OpenStreetMap (OSM) vector features\n", "\n", "[GeoHackWeek 2019](https://geohackweek.github.io) -- [vector tutorial](https://geohackweek.github.io/vector/) \n", "[Emilio Mayorga, University of Washington](https://github.com/emiliom/). 2019-9-9" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 1. Introduction" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This notebook will demonstrate the use of the [OSMnx package](https://osmnx.readthedocs.io) to request and access OSM vector data and convert from the source \"graph\" data structure to familiar GeoPandas GeoDataFrames. It will highlight the distinct pathways for accessing building footprints vs. other physical features, focusing on water features. The area of interest is the \"hotosm\" task area used in this GeoHackWeek." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 2. Import packages" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "%matplotlib inline\n", "\n", "import geopandas as gpd\n", "import utm\n", "\n", "import osmnx as ox\n", "ox.config(use_cache=True, log_console=True)" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "('0.5.1', '0.10')" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "gpd.__version__, ox.__version__" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 3. Project area bounding box, from hotosm task 5977\n", "The target area corresponds to [hotosm task 5977, Cyclone Kenneth, Comores: Nzwani Central Buildings 1](https://tasks.hotosm.org/project/5977), which has a **bounding box defined below.**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", " | nodes | \n", "geometry | \n", "building | \n", "name | \n", "amenity | \n", "denomination | \n", "religion | \n", "source | \n", "source_1 | \n", "building:levels | \n", "... | \n", "building:condition | \n", "building:material | \n", "comoros-dgsc:code | \n", "roof:material | \n", "source:geometry | \n", "office | \n", "height | \n", "addr:city | \n", "shop | \n", "addr:street | \n", "
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
369069459 | \n", "[3728944964, 3728944967, 3728944936, 372894495... | \n", "POLYGON ((43.2794523 -11.80665, 43.2795914 -11... | \n", "yes | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "
369069461 | \n", "[3728944944, 3728944958, 3728944961, 372894495... | \n", "POLYGON ((43.2794037 -11.806205, 43.2794912 -1... | \n", "yes | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "
369069462 | \n", "[3728944954, 3728944966, 3728944946, 372894495... | \n", "POLYGON ((43.2796457 -11.8069795, 43.2797118 -... | \n", "yes | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "
369069463 | \n", "[3728944948, 3728944938, 3728944965, 372894496... | \n", "POLYGON ((43.2790613 -11.8066263, 43.2791229 -... | \n", "yes | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "
369069465 | \n", "[3728944942, 3728944962, 3728944963, 372894496... | \n", "POLYGON ((43.2791949 -11.8069023, 43.2792905 -... | \n", "yes | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "
5 rows × 22 columns
\n", "\n", " | u | \n", "v | \n", "key | \n", "osmid | \n", "name | \n", "oneway | \n", "length | \n", "geometry | \n", "
---|---|---|---|---|---|---|---|---|
0 | \n", "1019314269 | \n", "1019932392 | \n", "0 | \n", "87706692 | \n", "Pessini | \n", "False | \n", "110.747 | \n", "LINESTRING (43.2640864 -11.8010712, 43.2650795... | \n", "
1 | \n", "1019932245 | \n", "1019932388 | \n", "0 | \n", "87706693 | \n", "NaN | \n", "False | \n", "47.895 | \n", "LINESTRING (43.2760658 -11.7987359, 43.2756259... | \n", "
2 | \n", "1019932245 | \n", "1019932287 | \n", "0 | \n", "87706693 | \n", "NaN | \n", "False | \n", "88.895 | \n", "LINESTRING (43.2760658 -11.7987359, 43.2768705... | \n", "
3 | \n", "1019932250 | \n", "1019932358 | \n", "0 | \n", "87706692 | \n", "Pessini | \n", "False | \n", "35.509 | \n", "LINESTRING (43.2742955 -11.8005633, 43.2739737... | \n", "
4 | \n", "1019932250 | \n", "1019932309 | \n", "0 | \n", "87706692 | \n", "Pessini | \n", "False | \n", "28.244 | \n", "LINESTRING (43.2742955 -11.8005633, 43.2744243... | \n", "