Route network simplification for transport planning
Abstract
Route network datasets are central to transport models as key inputs and outputs. The complexity of route network inputs from sources such as OpenStreetMap has increased over time, enabling more precise modelling of sustainable modes such as walking and cycling. However, this complexity can affect the visualisation of model results. A common issue is the presence of multiple parallel ways on the same corridor, which can lead to visual artefacts and misinterpretation of model outputs. To address this challenges, we present and compare two methods for simplifying route network datasets: 1) image skeletonization and 2) Voronoi diagram-centreline identification. These methods have real-world applications, as illustrated in the “Simplified network” layer in the Transport for Scotland funded Network Planning Tool, which is publicly available at www.npt.scot. Based on open access data and the open source parenx
Python package, available on the Python Package Index, these methods are not only reproducible but also adaptable, enbabling their use in new contexts.
1 Introduction
Datasets representing route networks are important in every stage of transport planning. Transport network datasets are spatial networks composed of nodes and edges, in which each edge has an associated edge cost (its weighted or unweighted length) (Barthélemy 2011). Nodes (points connecting edges) and the edges that connect them (lines between nodes representing ways) are located in space, with the edges representing the physical infrastructure of the transport network, often with attributes such as the type of way, its physical characteristics, and usage data, e.g. daily traffic for each way. Route network simplification can be applied to both the input and output networks of transport models, with the aim of reducing complexity while preserving the spatial structure of the network and relevant attributes.
Growing availability of high resolution geographic datasets and performant hardware and software has enabled people (e.g. via OpenStreetMap) and mapping agencies to generate increasingly detailed maps, a trend that is set to continue. Sustainable transport planning benefits from this trend, but the complexity and intricacy of street network geometries can create problems. A clear and intuitive visual representation is crucial for identifying issues such as bottlenecks, congestion hotspots, and areas of poor accessibility. Consequently, the necessity for network simplification becomes evident, aligning with wider ‘map generalization’ methods for pre-processing datasets depending on the scale of analysis (Sutton 1998). 25 years since Sutton’s paper on the topic, simplification of networks for transport planning and other applications remains an unsolved challenge. –>
Vector geometry simplification methods include Douglas-Peucker and Visvalingam-Whyatt algorithms (Liu et al. 2020; Magalhaes et al. 2014). While preserving the overall shape and geographical accuracy, this method struggles to reduce network complexity. Vector smoothing approaches, including the use of Bezier curves (Pradhan and Pradhan 2023) and Kernel-based smoothing (Duong 2022), can create more visually appealing lines or polygons, but do not reduce the number of vertices.
A common approach is simplification through converstion to an intermediate polygon (buffer) layer. Numerous algorithms for such ‘medial axis’ calculationsjave been published open source software repositories (e.g. Smogavec and Žalik 2012; “Centerline - Crates.io: Rust Package Registry” 2023). Recent implementations of network simplification methods include the under-development neatnet
Python package (Fleischmann, Vybornova, and Gaboardi 2024), and the parenx
package which is available on the Python Package Index (Deakin 2024). The latter is used in this paper.
Other network simplification methods for transport planning include automatic detection of ‘face artifacts’ (M. Fleischmann and Vybornova, n.d.) and removal of ‘slivers’ to generate simplified representations of ‘street blocks’ (Grippa et al. 2018). However, these methods tend to be ‘all or nothing’ and do not provide flexibility in terms of the level of simplification or which features are removed.
Network simplification can be useful for a wide range of applications. Riverine research and flood mapping applications, for example, require estimates of many river characteristics, including simplified centerlines derived from datasets representing river banks, as implemented in software including the R package cmgo
(Golly and Turowski 2017) and an approach implemented in Google Earth Engine called RivWidthCloud (Yang et al. 2020). The riverdist
R package, to provide another example, provides functionality for checking whether datasets representing river channels are braided and for removing braids by returning only the shortest paths along the lengths of river centerlines, for example (Tyers 2016).
The aim of this paper is to articulate the problem of complex route networks, present solutions with implementations in open source software for reproducible research, and describe applications of the methods to support more effective transport planning. Section 2 outlines the problem of complex route networks. Section 3 presents methods for route network simplification alongside results based on the example datasets. Section 4 demonstrates the methods applied to a real transport network (Edinburgh, Scotland) and Section 5 concludes with a discussion of the results and future work.
2 Problem definition
The problem tackled in this paper is the simplification of complex route networks. This can be illustrated with reference to the Propensity to Cycle Tool for England (PCT) (Lovelace et al. 2017), the route networks of which are on methods for aggregating multiple overlapping routes into a route network with non-overlapping linestrings Morgan and Lovelace (2020). Implemented in the function overline()
in the stplanr
R package (Lovelace et al. 2017), the methods enable visualization of large transport networks and inform investment decisions in transport planning internationally (Lovelace et al. 2024; Félix, Moura, and Lovelace 2025). However, this ‘overline’ approach, without further processing, has limitations:
- Functionally redundant vertices are kept, leading to large file sizes and slow rendering.
- Parallel ways that are not merged.
The latter issue is particularly problematic for visualisation of transport networks, as shown in Figure 1. The left panel shows Otley Road with a flow value of 818 (Figure 1 (a)). The right panel, by contrast, shows three parallel ways parallel to Armley Road with flow values of 515 (shown), 288 and 47 (values not shown) (Figure 1 (b)). Although this section of Armley road has a higher cycling potential than the section of Otley Road shown (515 + 288 + 47 > 818), this is not clear from the visualisation.
3 Data and Methods
In this paper we use the two street networks discussed in the previous section to illustrate the methods. See the ‘parenex
cookbook’ and Methods appendices for further details on the methods used in this paper and their application to alternative (railway based) datasets.
There are two main challenges that need to be overcome to simplify transport networks, in a way that preserves their value:
- Simplifying the geometry
- Assigning attributes to the simplified network
The key contributions of the paper are the novel methods of image skeletonization, presented in Section 3.1, and simplification with Voronoi diagrams to identify central lines, covered in Section 3.2.
3.1 Simplification via skeletonization
The skeletonization approach generates a simplified network by buffering the network, applying an image skeletonization algorithm, and extracting lines segements from a raster of this buffer.
In both the skeletonization and Voronoi approaches, the network simplification process starts by applying a buffer to linear geometry in a projected, rather than coordinate system. We use a buffer size of 8 meters in this paper.
In skeletonization, overlapping lines are identified, buffered, transformed into a raster image, the image processed through a thinning algorithm, and a skeletal representation of the original network produced (see Methods appendix for details). This skeletal structure preserves the overall extent and connectivity of the network, with a central line that follows the centre-line of the combined buffered area.
In detail, skeletonization is only applied where more than line-segment buffer overlaps. To identify overlapping line-segments, the buffer is split at the end of each line-segment. The overlapping line-segments are then buffered while retaining the remaining disjoint lines.
As detail is lost in transforming of the geometry to an image buffer or raster, more detail can be retained by using an affine transformation to increase the number of points in the buffer prior to skeletonization and reducing scale when creating the simplified linear geometric representation. This transformation is scaled to ensure that the projected coordinate geometry of the network aligns accurately with the corresponding dimensions of the scaled raster image. The raster image also requires pre-processing to eliminate small holes that appear where buffered lines run parallel or intersect at shallow angles. The skeltonisation algorithm is then appled to the raster image yielding a skeletal raster image and converted back into a linear vector geometry, completing the vector-to-raster-to-vector geometry transformation (see Methods appendix for details).
Adjacent points are identifed, typically within a 1x1 pixel square, based on proximity within the raster image coordinate system. Line segments are then created by connecting these adjacent points. These points are combined, giving a continuous line geometry representing the simplified network. Finally, a reverse scaling affine transformation is applied to return to the original coordinate system.
Noting that creating a line geometry from the set of points in the raster buffer is arguable the most complex step.
3.2 Simplification via Voronoi polygons
Voronoi simplification takes the buffered network segments and converts them into a set of points. The edges of these buffers are then segmented into sequences of points. From these sequences, a centre-line is derived based on a set of Voronoi polygons that cover these points. This approach facilitates the creation of a simplified network representation by focusing on the central alignment of the buffered lines.
Voronoi lines that are completely enclosed within the buffer geometry and are situated at a distance of less than half the buffer’s width from the buffer edge are selected. This selective visualization of Voronoi lines effectively demonstrates the method precision in capturing and representing the central alignment of the transport network within its buffered confines. The final center-line network is created through a clean up process that involves the removal of knot-like features from the simplified network. While knots common to both skeletonization and Voronoi simplification, these artefacts are more prevalent on Voronoi simplified networks.
3.3 Post-Processing
Both skeletonization and Voronoi simplified networks require post-processing to remove unwanted knots, short segments at intersections, resembling tangled knots. To remove these features, short segments are clustered together, and a central point for each cluster is determined. The end-points of longer lines that connect to these segment clusters are then realigned to the cluster’s central point, as illustrated in the Methods appendix.
An additional optional stage is to simplify the network further by removing vertices that are not essential for the network’s connectivity, resulting in a primal network that captures the essential connectivity and layout of transport routes. The primal network is thus composed of direct lines connecting start and end points, representing a high level of simplification that prioritises the network’s structure and compression.
See Section 4 in Methods appendix for details.
3.4 Joining route networks
After generating a simplified network using the methods, it is often useful to translate attributes from the original network to the simplified network. In the context of network planning tools, the purpose of the joining stage is to join traffic estimates from the source network onto the geometrically simplified target network (Sutton 1998).
In this case there is no definitive key, meaning that network joining can be regarded as a ‘fuzzy’ or ‘keyless’ join process (Suri et al., n.d.; Wachowicz and Mrozek 2019): as with the network simplification steps outlined above, the user must select joining parameters to maximise the accuracy of the join. There are at least a couple of implementations of network joining methods in open source software: the rnet_merge()
function in the stplanr
R package (Lovelace, Ellison, and Morgan 2019), and the rnetmatch
Rust crate for which has bindings to R and Python are planned. The details of network joining methods, algorithms and implementations are outside the scope of this paper, see the documentation associated with the projects mentioned above for more information.
4 Application to Edinburgh City Centre
Figure 3 illustrates the methods presented in this paper, providing a comparative view of the impact of our methodology. The skeletonized network (top right) is a simplified version of the input dataset, with the Voronoi diagram (bottom left) providing an alternative simplification. Finally, the primal network (bottom right) is the most simplified version of the input dataset, with only the most essential connections retained.
5 Discussion and Conclusion
The two main methods developed in this paper are implemented in the open source software for reproducible research (see the reproducible source code of this paper at github.com/nptscot). Both Skeletonization and Voronoi-based methods result in geometries that are substantially simpler and less resource-intensive for subsequent network analysis steps, while preserving the essential connectivity and spatial characteristics of the original network. Which to use, and the appropriate balance between simplification and preservation of network geometries will vary depending on the specific requirements of the analysis. An advantage of the implementations we have developed, in the Python package parenx
, is that they are adaptable to the requirements of the user, from low levels of simplification to the aggressive simplification of a ‘primal network’ (see the parenx
cookbook).
There are several potential directions of travel building on this work. One is to explore alternative algorithms for thinning buffered networks, recursively, for example the grassfire algorithm (Leymarie and Levine 1992), or with medial axis algorithms (e.g. Smogavec and Žalik 2012). Another is to speed up the process, with options including parallelisation, implementation in lower-level languages, and optimisation of the algorithms themselves.
We developed the methods to support the Network Planning Tool for Scotland, which provides a strong evidence base enabling more data-driven prioritisation of investment in active travel infrastructure. However, we believe it has applications beyond this use case, for example in strategic rail network modelling and transport network redesign to support more sustainable transport systems.
6 Data Availability
All data and code used to generate the results presented in this paper are available in the GitHub repository associated with the paper, to be made available upon acceptance. To ensure that the paper is fully reproducible, we use GitHub actions to rebuild the paper whenever changes are made to the repository.