Skip to content

Repository files navigation

simplification

Continuous Integration

State-of-the-Art simplification of street network geometry with Python

Contents

./core/

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)

./notebooks/

Parameterized notebooks.

  • /preprocessing/: workflows used to preprocess raw data (clipping and removing degree 2 nodes)
  • /methods/: exploration of different simplification methods, including the new method proposed here, neatnet
  • /evaluation/: comparative evaluation of each simplification method
  • /usecases/: collection of use cases
  • /typology/: exploration of different types of face artifacts, foundational to the neatnet algorithm
  • /archive/: archived notebooks

./data/

Curated data in parquet format for 6 example urban areas

FUACity
1133Aleppo, Syria, Middle East / Asia
869Auckland, New Zealand, Oceania / Asia
809Douala, Cameroon, Africa
1656Liège, Belgium, Europe
4617Bucaramanga, Colombia, S. America
4881Salt Lake City, Utah, USA, N. America
8989Wuhan, China, Far East / Asia

Each FUA directory contains (or will contain) the following items housing bespoke data:

  • manual/
  • no_degree_2/
  • original/
  • parenx/
  • polygons/

./notes/

Observations & hightlights from each package.

  • osmnx.md
  • cityseer.md

./protocol_images/

Demonstration plots generated through simplification_protocol.ipynb.

This directory only exists once that notebook has been run locally.

./resources/

Additional resources and previous related research.

./usecases/

Demonstration visualizations on specific types of urban form.

  • 809 (Douala)
    • cityseer (from notebooks/cityseer_overview_gaboardi.ipynb)
      • examples as douala_{1-5}.png
  • 869 (Auckland)
    • averagedegree (from notebooks/evaluate_h3cells.ipynb)
    • totallength (from notebooks/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

Reproducible environment

This project uses reproducible multi-platform environments using Pixi. To create an environment able to run all the code in the repository, clone the repository and install the locked environment using:

pixi install

Development

To install the development environment allowing testing:

pixi install -e tests

If you would like to run the tests, use the tests Pixi environment:

pixi run -e tests pytest

Installing pre-commit hook to the env:

pixi run pre-commit install

Funding

The work has been supported by the Charles University’s Primus program through the project "Influence of Socioeconomic and Cultural Factors on Urban Structure in Central Europe", project reference PRIMUS/24/SCI/023.

About

Simplification of street network geometry

Resources

Stars

35 stars

Watchers

3 watching

Forks

Releases

Packages

Used by

Contributors

Languages