Occasionally, I like to go through the QGIS plugins and see what’s new. There are all sorts of handy tools in there, but one in particular caught my eye this time. The Historical Map plugin, by Nicolas Karasiak & Antoine Lomellini, takes on a specific challenge: extracting data from old maps. Of course, you can always digitize this data, but it can be quite time consuming. The plugin leverages image classification techniques to speed up the process. The nice thing about historical maps (such as USGS topos) is that there are usually fairly discrete color codings. Discrete colors takes a lot of the guesswork out of the image classification process, but the techniques can be pretty intimidating if you haven’t done them before.
The Historical Map plugin divides the process into three, fairly easy steps:
- Simplify the data (they call it filtering)
- Train a classifier with some basic training data
- Generate a classified shapefile
The steps are laid out in easy-to-follow tabs, with a visually-oriented interface (below). There’s even a link to their wiki for help, and the help is actually pretty helpful.
The result is a highly approachable tool, that still gives the user room to fine tune and assess the accuracy of the results. To test the tool, I downloaded a topographic map from 1956 (above) from the USGS. The nice thing about these USGS topos is that they are usually available as geopdfs, so you can bring them straight in to QGIS and not worry about georeferencing. I ran the tool on the topographic map, mostly using the default settings. The result of the filtering (Step 1) was this:
Note how the edges of patches are smoothed and the colors are more homogenous within patches. Next, I trained the data using about 8 training samples (simply polygon features with a class assigned) for each of four categories: forest, water, urban, and other. Once the classifier was trained, I moved to Step 3, where the plugin automatically classified the simplified map and generated a vector output for the “forest” category.
Considering the process took about 20 minutes (including the one error message I ran into), and that I didn’t go back and refine anything, this looks pretty darn good. There are a few obvious omissions and commissions, but the at-a-glance accuracy is pretty impressive. With a few attempts and some tweaking, I’m confident that I could get this more than close enough for uses such as change detection and historical research.
This is a great little plugin, and I tip my hat to the authors. Image classification is a powerful but intimidating tool, and this plugin makes it much more approachable for certain situations. If you’ve got a stack of historical maps that you are behind on digitizing, give the Historical Map plugin a try.