By Charlie Frye, Esri Chief Cartographer
We’ve received a few requests this week asking how to use ArcMap to show flow from place to place. The requests ranged from, “What might the data look like?” to “How do I make the flow arrows?” One thing to note, this isn’t a topic that I have much first-hand experience with, but I can certainly get things started with the hopes that others will add their experiences and perhaps, together, we can build a body of knowledge to benefit us all.
The example to the right comes from a map I did a few years ago depicting the Battle of Bunker (Breeds) Hill that occurred early in the American Revolutionary War. The arrows show the lines of approach taken by the British troops in attacking the American positions. I created the arrows manually with the Editor. I mention that because much of the process of making flow maps is not fully automated. So, if you were expecting an “Easy Button”, I’m sorry to report that I have not found it yet.
Flow is based on knowing an origin, destination, and magnitude over a duration of time. The data needs to be designed to store those characteristics, attributes are a good way to store this information. Maps showing flow are typically designed to show notable or significant trends, so data are often summarized by higher order places, like states or countries, so having attributes for that information is also helpful.
Migration, for example, is based on individuals moving from place to place. Many individual moves can be summarized at the city-to-city level, state-to-state level, or country-to-country level. Assigning a time frame for such summarizations is perhaps the most challenging aspect of this problem. Maps that show flow may have different purposes, for example, show the overall trends or show the deviation from the overall trend. Once I had summarized my data to the state, province, or region level, I would sort my data table by destinations to see which are popular, then sort my origins to see where people are leaving.
Others have thought a good deal more about this. One place to learn more is at the Center for Spatially Integrated Social Science (CSISS), where you will find a helpful tool called Tobler’s Flow Mapper.
Another tool in ArcGIS that can help you find the trends from place to place is the Linear Directional Mean tool which uses lines as inputs. The tool analyzes the directions of each line’s endpoints, so two-point lines are the best inputs. You can optionally specify a Case Field, which might represent date ranges, and whether the to-from direction of the line should be analyzed.
Quite a few people have asked how to make complex or expressive arrows for maps. I created the example above in ArcMap using the Editor. That means I’m using a polygon feature class for my arrows and, in this case, I am setting that feature class to use a transparency of 65% (Layer Properties, Display tab) so I can see the features behind the arrows on the map. On other maps, I have also used an attribute to denote whether an arrow was in the foreground or is a drop-shadow of a foreground arrow. The drop-shadows are transparent gray and offset, while the foreground arrows are typically more brightly colored. Here’s how I make these arrows:
- To construct curves, use the End Point Arc Tool.
- To construct straight line segments, use the Sketch Tool
- Have snapping on, set to just the vertexes of the arrows feature class.
Here is a step-by-step example:
- Construct the butt-end of the arrow line using the End Point Arc Tool.
- Stay with the End Point Arc Tool and add the vertex that will define the end of one of the arrow’s sides. (Given how I started the example, this will be the bottom side.)
- Now add a point that defines the curvature for this side.
- Construct the segments of the arrowhead using the Sketch Tool. It usually takes me several attempts before getting the point and orientation to look graphically balanced—easily the hardest part of this task for me.
- Once the last straight segment is completed, switch to the End Point Arc Tool and click exactly on the first point you added—you will see your polygon’s completion line match up when your cursor is in precisely the right place (shown in pink below).
- Add the curvature for the second side and finish the sketch.