Making maps


Research materials on this site include a map displaying the political geography of medieval Aquitaine. While a useful resource in its own right, the map is difficult to overlay directly onto a user interface for various reasons:

* It is based on IGN maps, which use the Lambert projection, while in general (as previously discussed), we tend to use WGS-84. This leads to variations that are individually quite small, but visible in aggregate.
* It is a raster image (even though it is stored inside a PDF). If it were a vector image, the lines that make up the map would look smooth at any zoom level. Raster images start to look 'jagged' as the user zooms in.
* We do not know the exact correspondence between points on the raster map and WGS-84 coordinates.

Fortunately, this is quite a common problem in GIS and one for which there are several solutions. In this post, we talk through the use of the freeware software application QGiS to help solve each of these problems.

Step 1: Load some reference data into QGIS

Before we try to match the map, we ideally need something to match it to. For this purpose, we download a set of shapefiles of France and load them into QGIS. This gives us an idea of the overall outline of the country's shoreline, which has not changed significantly. We also load a detailed set of outlines of current local geographical boundaries - 'communes'. 

Step 2: Georeferencing

Georeferencing in general refers to the assignment of physical coordinates to objects such as elements on a map. In this case, we will use the georeferencing tool from the Raster menu to estimate the correct placement and projection/distortion to apply to our medieval map, in order that it is correctly overlaid on our reference map of France. 

First we load our raster file. Once loaded, we choose a number of reference points that we know have not changed greatly, such as city centres mentioned on the map or geographical features. Working in WGS-84, we enter each point, along with the known coordinates of that reference point. When we have enough reference points spread across the map, we ask QGiS to estimate the best fit, to enable us to merge the maps.

Once we have identified our preferred means of fitting the two maps together (which is to say, we would like to ensure that all the points of reference chosen are in approximately the same place; if that results in a slightly misshapen coastline, then so be it), we accept this solution and move on to Step 3. Essentially, we are seeking a best fit allowing us to minimise error.

Step 3: Drawing (or adapting) regions to represent the map data

On a new layer, we now draw around the boundaries represented in the raster map to create polygons representing the areas in the map. In so doing, we will retain the existing French shapefiles, using them as a target to 'snap to' in the event that they happen to be close to our boundary. This can be justified on the grounds that the boundaries are often geographic in nature. Given that the raster map is not very precise, these boundaries may sometimes offer a better estimate of the 'right' position for the boundary to fall.

Step 4: Validation

We now load all the point data for the major and minor cities represented in the original map. If one of these cities falls in the wrong location, particularly on the wrong side of a boundary, it is a sign that our map is not quite correct. Because the allegiance of cities is likely to be validated against historical sources, we prefer to ensure that the cities fall in the correct administrative zone. In the event, we identify one city on the wrong side of a boundary. There are also a couple of small locations that do not appear quite where they are expected to be on the map, in particular Lourdes. A few such issues are not unexpected, given that we are working from a hand-sketched map.

Step 5: Use

Now that we have a set of polygons representing regions in medieval Gascony, we can use these support various activities. Polygons can be used in search and retrieval ('find all points that lie within this polygon' - that is, 'find all events that occurred within a given seneschalcy'). They can also be used for display purposes.

Currently unrated

comments powered by Disqus