Mapping Data from SlaveVoyages.org
In this tutorial, we’ll go through what it takes to download data from the SlaveVoyages.org database and prepare that data for mapping in the software QGIS. This is essentially a three-step process. First, we need to utilize SlaveVoyages.org website interface to filter out the dataset we want to work with and then download that dataset. The next step is to modify and expand two aspects of that data—port locations and the year of the journey. Finally, we’ll load this data into QGIS and apply a simple data visualization.
Here’s what you’ll need to complete this tutorial:
Our first step is fairly straightforward, especially if you’re already familiar with the characteristics of the slave voyages database and the website’s basic layout. For the purpose of this tutorial, we’ll do a very basic filtering of the data based on a year range, but there are many other filters you could apply depending on your research question.
The data you can download from SlaveVoyages.org is rich, but it does not yet have all the necessary information to easily map it in software like QGIS. It only has a single column of information for locations, and that information can vary from a city name, to a country name, to a general area of ports. Normally, we would ask a program like QGIS to geocode our locations in order to map them. Geocoding is when a program takes a place name, searches for a match in its locational database, and returns latitude and longitude coordinates to plot that place as a point on the map. This process works best when you have at least city and country information, presented in separate columns.
But, as we’ve just noted, SlaveVoyages data does not come with all that information. The main reason is that this historical data, in many cases, does not easily correspond to modern day city, state, and country names. Sometimes the historical record itself is unclear. For that reason, we need to take another approach.
Thankfully, the SlaveVoyages project team has created a separate spreadsheet that lists the latitude and longitude coordinates for the most common ports in their database. It’s the “slave-voyages-ports.csv” file you opened or downloaded at the beginning of the tutorial, but in case you forgot you can access the file here.
We can use this ports spreadsheet in conjunction with the data we’ve downloaded to autofill the locational data we need. We will do this all in a spreadsheet, before we ever load it into QGIS, using a relatively simple formula called VLOOKUP. You can use either Excel or Google Sheets.
Before we use VLOOKUP, however, we’ll do a quick transformation of the Year column in our sv-1750-1808.xls spreadsheet. This will help us down the line when we want to apply a timeline animation feature. The timeline plugin in QGIS requires a full date rather than just a year, so we’ll simply add a January 1st to each year. Although this is not the precise month and day, it will make the timeline work and we’ll be able to just display the year.
To get started, open the sv-1750-1808.xls spreadsheet in either Excel or Google Sheets. Then follow these steps:
Before we proceed to loading data into QGIS, a quick note about why we needed to create three separate CSV files rather than simply adding more columns to the original spreadsheet. A GIS program assigns a single geographical representation (a point, a line, or a polygon) to each row in a given spreadsheet. That means that we have to create a new spreadsheet for each set of points we want to show on the map. In our case, we have the locations of where captives were purchased (embark) and where they were sold (disembark). Now that we have separated those locations, loading them into QGIS is a fairly simple process.
Seeing clusters of points on a map can be useful, but when we get a larger number of points that overlap and that spread over large geographic areas, it can be helpful to have other ways of representing those locations. More than that, there may be additional data attributes for those points—in our case, the number of captives that arrived at the first port, as a proxy for the overall size of that particular voyage—that would be meaningful to show.
One approach to show that additional data is through graduated symbols. Basically, what this does is take the particular column of data you want to focus on, calculate an appropriate set of number ranges, sort your points into those ranges, and then represent each range with a set size of circle symbol. In action, this means that your points on the map will be resized in proportion to the number of captives transported to that particular stop.
You’ll note that many of your points are still overlapping, so in a sort of bullseye formation. This is due to the fact that ports received multiple stops, and because each of those stops is represented by exactly the same lat-long, and because we are visualizing data over a range of years. There are a few ways of dealing with this issue that will go over the next tutorial. For now, you can zoom in to particular locations (i.e. the Caribbean) to see the difference between sites.
Be sure to save your project and take a screenshot to upload on Canvas. If you would like to save your map as an image, in the top menu select Project > Import/Export > Export map to image.