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.
neatnet
with other algorithms (Source: Fleischmann et al., 2025 (CC-BY-NC-SA))If this interests you, there is:
- a short blog post by Martin Fleischmann
- a pre-print of a scientific publication
- and, of course, the Python package itself and the documentation