Methods and tools for automated production of origin-destination flow maps
Origin-destination flow maps represent movement between locations using lines of optionally varying width connecting points or areas. When flow lines intersect or overlap, legibility can be improved by curving flows to avoid each other, which is a time-consuming process to do by hand when there are many flows.We present a tool for ArcGIS Pro that implements a force-directed method developed by Jenny et al. (2017) for curving flows. This method reduces overlaps and intersections by curving flows away from nodes, other flows, and arrowheads, taking flow map design principles into account (Jenny et al., 2018). Users provide node coordinates and ids, and a table describing the volume of movement between the nodes. The tool produces two map layers, one containing curved flow lines, and another containing points that includes data about the total quantity of movement to and from each point. The new line and point layers are then added to a map in ArcGIS Pro. The width of each line represents the relative quantity of movement represented, and the diameter of each node represents the total movement in and out of that location. Users can opt to produce either net flows (the difference in movement between points) or total flows (the sum of movement between points in both directions). In the case of net flows, arrowheads are added to flows to indicate flow direction, and the ends of flows are clipped to prevent arrowheads from overlapping destination points. Arrowheads of smaller flows are made slightly larger to improve visibility. Users have several options to help reduce map clutter, including modifying the maximum width of flows and nodes, creating additional space between flows and their endpoints, and displaying only a selected number of the largest flows.We also introduce more advanced experimental features that we implemented in standalone prototype software. Our prototype can create parallel flow lines for bidirectional flows. This avoids inconsistently spaced opposing flow lines between a pair of origin and destination nodes. The prototype can shorten flow lines to reduce overlaps with other flows, nodes and arrowheads, and keep a minimum distance between flow lines. We will also discuss placing flow lines between areas instead of nodes and demonstrate an algorithmic implementation for creating flows between areas. Our prototype provides an easy-to-use graphical user interface and will be released as free and open-source software.