An algorithm to reduce a river network or other graph-like polygon to a set of lines
Abstract
In many geomorphic applications, it is necessary to reduce a polygon to a set of axial lines. For example, consider a fluvial channel network. On the one hand, this network has a polygonal footprint with reaches of finite width organized into a branching network. On the other hand, measuring the length or sinuosity of these reaches, as examples, requires the reduction of their polygonal footprints to axial lines. Here we present a new algorithm that can objectively reduce a polygon to such a set of axial lines, formally called a skeleton. Across four illustrative test cases, we show that this vector-based algorithm has some advantages over three raster-based algorithms in current geomorphic use because it generates smooth, continuous, well-centered skeletons and supports a useful scale-independent metric for the removal of spurious portions. Skeletons in this algorithm are uniquely constructed using a minimum of two parameters: a sampling interval (similar to a resolution) and a numeric pruning criterion (which determines skeleton complexity). We have implemented the algorithm as a freely available, open-source, GIS-ready Python code package without commercial dependency.
- Publication:
-
Computers and Geosciences
- Pub Date:
- December 2020
- DOI:
- 10.1016/j.cageo.2020.104554
- Bibcode:
- 2020CG....14504554S