.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "_auto_examples/creating_models/from_osm.py" .. LINE NUMBERS ARE GIVEN BELOW. .. only:: html .. note:: :class: sphx-glr-download-link-note :ref:`Go to the end ` to download the full example code. .. rst-class:: sphx-glr-example-title .. _sphx_glr__auto_examples_creating_models_from_osm.py: .. _plot_from_osm: Project from OpenStreetMap ============================= In this example, we show how to create an empty project and populate it with a network from OpenStreetMap. This time we will use Folium to visualize the network. .. GENERATED FROM PYTHON SOURCE LINES 13-21 .. code-block:: Python # Imports from uuid import uuid4 from tempfile import gettempdir from os.path import join from aequilibrae import Project import folium .. GENERATED FROM PYTHON SOURCE LINES 23-24 We create an empty project on an arbitrary folder .. GENERATED FROM PYTHON SOURCE LINES 26-30 .. code-block:: Python fldr = join(gettempdir(), uuid4().hex) project = Project() project.new(fldr) .. GENERATED FROM PYTHON SOURCE LINES 31-33 Now we can download the network from any place in the world (as long as you have memory for all the download and data wrangling that will be done). .. GENERATED FROM PYTHON SOURCE LINES 35-37 We can create from a bounding box or a named place. For the sake of this example, we will choose the small nation of Nauru. .. GENERATED FROM PYTHON SOURCE LINES 39-41 .. code-block:: Python project.network.create_from_osm(place_name="Nauru") .. GENERATED FROM PYTHON SOURCE LINES 42-44 We can also choose to create a model from a polygon (which must be in EPSG:4326) Or from a Polygon defined by a bounding box, for example. .. GENERATED FROM PYTHON SOURCE LINES 44-47 .. code-block:: Python # project.network.create_from_osm(model_area=box(-112.185, 36.59, -112.179, 36.60)) .. GENERATED FROM PYTHON SOURCE LINES 48-49 We grab all the links data as a Pandas DataFrame so we can process it easier .. GENERATED FROM PYTHON SOURCE LINES 51-53 .. code-block:: Python links = project.network.links.data .. GENERATED FROM PYTHON SOURCE LINES 54-55 We create a Folium layer .. GENERATED FROM PYTHON SOURCE LINES 57-59 .. code-block:: Python network_links = folium.FeatureGroup("links") .. GENERATED FROM PYTHON SOURCE LINES 60-62 We do some Python magic to transform this dataset into the format required by Folium. We are only getting link_id and link_type into the map, but we could get other pieces of info as well. .. GENERATED FROM PYTHON SOURCE LINES 62-72 .. code-block:: Python for i, row in links.iterrows(): points = row.geometry.wkt.replace("LINESTRING ", "").replace("(", "").replace(")", "").split(", ") points = "[[" + "],[".join([p.replace(" ", ", ") for p in points]) + "]]" # we need to take from x/y to lat/long points = [[x[1], x[0]] for x in eval(points)] line = folium.vector_layers.PolyLine( points, popup=f"link_id: {row.link_id}", tooltip=f"{row.link_type}", color="blue", weight=10 ).add_to(network_links) .. GENERATED FROM PYTHON SOURCE LINES 73-74 We get the center of the region we are working with some SQL magic .. GENERATED FROM PYTHON SOURCE LINES 76-80 .. code-block:: Python curr = project.conn.cursor() curr.execute("select avg(xmin), avg(ymin) from idx_links_geometry") long, lat = curr.fetchone() .. GENERATED FROM PYTHON SOURCE LINES 81-86 .. code-block:: Python map_osm = folium.Map(location=[lat, long], zoom_start=14) network_links.add_to(map_osm) folium.LayerControl().add_to(map_osm) map_osm .. GENERATED FROM PYTHON SOURCE LINES 87-88 .. code-block:: Python project.close() .. _sphx_glr_download__auto_examples_creating_models_from_osm.py: .. only:: html .. container:: sphx-glr-footer sphx-glr-footer-example .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: from_osm.ipynb ` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: from_osm.py ` .. container:: sphx-glr-download sphx-glr-download-zip :download:`Download zipped: from_osm.zip ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_