Network simplification in Python

neatnet: A new #Python package from Martin Fleischmann, Anastassia Vybornova, and James Gaboardi offers promising functionality for #network simplification.
Author
Published

April 29, 2025

If you have worked with GIS in transportation, you have almost inevitably come across the problem of network simplification. Maybe you wanted to do map-matching1 between different street networks2 where one of the networks was much more detailled than the other. Over the years, various algorithms and tools have been developed for network simplification, but none seemed to quite be able to tackle the problem.

Now, an interesting approach comes from Martin Fleischmann, Anastassia Vybornova and James Gaboardi (with support from Anna Brázdová and Daniela Dančejová) in the form of the Python package neatnet. The results look promising, also compared to earlier algorithms. Besides the simplification itself, neatnet also handles potentially important pre-processing steps such as repair of dangling nodes and removal of pseudo-nodes.

Comparison of neatnet with other algorithms (Source: Fleischmann et al., 2025 (CC-BY-NC-SA))

If this interests you, there is:

Footnotes

  1. One of the harder problems in GIS, if you ask me.↩︎

  2. I have gained my share of experiences with the networks underlying the NPVM/MNTP, MISTRA BS, data from STRAVA (a “massaged” version of OpenStreetMap), and data from HERE, for example.↩︎