State-of-the-Art simplification of street network geometry with Python
The curated & tested code base for the project & publication, including:
- The novel algorithm(s) developed and demonstrated; and
- Utility and plotting functionality to support the publication and algorithm(s)
- core
|-- __init__.py
|-- geometry.py
|-- protocol.py
|-- stats.py
|-- utils.py
|-- algorithms
| |-- __init__.py
| |-- common.py
| |-- triangles.py
|-- viz
| |-- __init__.py
| |-- context.py
| |-- h3_hex.py
| |-- protocol.py
|-- tests
| |-- __init__.py
| |-- conftest.py
| |-- test_geometry.py
| |-- test_protocol.py
| |-- test_stats.py
| |-- test_utils.py
| |-- test_viz_context.py
| |-- test_viz_h3_hex.py
| |-- test_viz_protocol.py
| |-- baseline_images
| | | -- *controls from image comparison*
| |-- data
| | | -- test_data_liege.gpkg
Parameterized notebooks.
_addartifacts_8989.ipynb
– ...cityseer_*.ipynb
– explorations of thecityseer
package_clip_networks.ipynb
– ...clustering.ipynb
– deadend_convert.ipynb
– ...evaluate_h3cells.ipynb
– evaluation of Uber's H3 data and demonstrationmomepy.ipynb
– exploration of themomepy
packageosmnx.ipynb
– exploration of theosmnx.simplification
moduleparenx.ipynb
&parenx-run.sh
- exploration of theparenx
package (skeletonization & line voronoi diagrams)remove_degree_2_nodes.ipynb
- removing degree 2 nodes from FUA road networkssimplification_protocol.ipynb
– demonstration of the manual simplification protocoltriangles.ipynb
– ...usecases.ipynb
– interesting example case locations; add more as desired
Curated data in parquet
format for 6 example urban areas
FUA | City |
---|---|
1133 | Aleppo, Syria, Middle East / Asia |
869 | Auckland, New Zealand, Oceania / Asia |
809 | Douala, Cameroon, Africa |
1656 | Liège, Belgium, Europe |
4617 | Bucaramanga, Colombia, S. America |
4881 | Salt Lake City, Utah, USA, N. America |
8989 | Wuhan, China, Far East / Asia |
Each FUA directory contains (or will contain) the following items housing bespoke data:
manual/
no_degree_2/
original/
parenex/
polygons/
Install and activate the conda
(or mamba) environment, which creates an environment name simplification
:
conda env create -f environment.yml
conda activate simplification
Observations & hightlights from each package.
osmnx.md
cityseer.md
Demonstration plots generated through simplification_protocol.ipynb
.
This directory only exists once that notebook has been run locally.
Additional resources and previous related research.
Demonstration visualizations on specific types of urban form.
- 809 (Douala)
cityseer
(fromnotebooks/cityseer_overview_gaboardi.ipynb
)- examples as
douala_{1-5}.png
- examples as
- 869 (Auckland)
averagedegree
(fromnotebooks/evaluate_h3cells.ipynb
)totallength
(fromnotebooks/evaluate_h3cells.ipynb
)
- 1656 (Liège)
cityseer
parallel_edges_1_midline_False.mp4
parallel_edges_1_midline_True.mp4
parallel_edges_2_midline_False.mp4
parallel_edges_2_midline_True.mp4
parallel_edges_3_midline_False.mp4
parallel_edges_3_midline_True.mp4
osmnx
highway.mp4
intersection.mp4
parkinglot.mp4
roandabout.mp4
points.json
- use case locations