Designing basemaps for remote areas

Basemaps are essential for plotting and annotating your own data while in the field. The old-school way to do this was to write directly on 1:24,000 scale topographic maps, most commonly with a pencil. Nowadays, high resolution imagery is available, but it’s not always the best choice for a basemap. In fact, basemaps need to satisfy some unique requirements:

  • Highly interactive - You should be able to write on them easily with a #2 pencil.

  • Key information - Show what you need in the field. This usually includes elevation contours, roads, rivers, lakes, and some depiction of land cover.

  • A clean canvas - Minimize ink in favor of white space. Too much information makes it difficult to plot your data on top. Your pencil marks could get lost in the noise. Even worse, some inks are “slippery” and difficult to write on at all.

  • Just as useful in grayscale as in color - We don’t usually want to print lots of pages in color, and grayscale will often do the job. It’s quite useful to be able to fill in a grayscale map with colors of your choosing, according to your observations, using colored pencils. On the other hand, full-color maps can be useful for viewing on screens (field laptops or iPads, for example).

Basically, basemaps need to display all necessary information while still providing a good canvas for your annotations. When working in remote locations, it can be a challenge to compile this information. Rather that it being provided for you from a trusted source (such as USGS), you often have to piece it together yourself. What follows is a scheme for constructing basemaps using widely available data. I used QGIS, but you could do this with any GIS software. This post is structured as a discussion about my chosen layers and methods, followed by a step-by-step recipe for reproducing my map. It’s complicated, which is why I thought it would be good to create this writeup.

Map layers

A map is made by overlaying many different types of spatial data ontop of each other. The data can grouped into different categories. For basemaps, a useful way to think about the main categories is the following: base image, elevation, and other data. At the bottom, “base image” layers overlap to provide the canvas that all other data, including yours, will be laid on; this canvas can be made by overlapping raster and vector layers to create a subdued image suitable for your mapping needs. Elevation layers are basically elevation contours and all that goes with them. Data layers can include roads, trails, hydrography, and any other vector data you would need in the field, such as sampling or instrument locations.

Base image

My map’s base image is composed of 3 main layers. At the very bottom of this stack sits the digitial elevation model (DEM), which also provides data for many of the layers above. The purpose of the DEM at the bottom is to set which areas of the map will be light or dark. As will be described, other images are overlaid on the DEM using the “Overlay” blending mode. Thus, anything that is pure white in the DEM will be pure white in the final map. Likewise for pure black. Mid-grays do not affect overlying images, allowing them to peek through. In my case, I wanted the canvas to be relatively clean for lower elevations, where I would mainly be working. I wasn’t concerned much with mapping data on mountain peaks. A volcanologist, for example, may be more concerned with high elevations, and so would prefer a different setup. For me, I made the lowest elevations in my map pure white, because they were largely featureless salt flats. The highest elevations I made dark gray, to give the map a sense of verticality. As a result, the middle elevations map to mid-grays, and overlaid layers are able to show through to varying degrees. So what layers did I overlay?

Screen Shot 2018-11-12 at 5.23.47 PM.png

The next layer above the DEM is aerial or satellite imagery. In my case, I used Bing aerial imagery. It’s the highest resolution, most widely accessible imagery I could find with near-global coverage. The detail provided by these images is amazing, especially in areas without much vegetation. But there’s a conundrum. Aerial imagery is often too detailed, and too saturated, for our purposes. It would put too much ink on the page, making it difficult to write on. Although we are interested in some of these details, especially the boundaries between different types of land cover, we don’t really care about most of them. Here’s a solution: crank up the brightness and saturation of the imagery, and set it to 75% opacity. Finally, set its blending mode to overlay. Bright areas become nearly white, but we can still make out color contrasts, thanks to the increased saturation. The images also decrease in contrast, thanks to the big increase in brightness. When overlaid on the DEM described above, the result is that the colors of the imagery peeks through at mid to high elevations. The low elevations, where I will be mostly writing on the map, still allow major contrasts to shine through, giving me a nice, clean canvas. There are drawbacks to this setup, mainly that this map is not very detailed at all anymore. You can make out the major features, such as volcanic peaks and steep slopes, but it would be nice to have more information about the topography.

The next layer above the imagery is a high-resolution hillshade. The hillshade is created directly from the DEM, and depicts the topography in an intuitive way, as if an early morning sun were shining across the landscape. Most importantly, the light shading doesn’t get in the way of your annotations, but really gives you a sense for which parts of the topography are steep or flat, rough or smooth. The landscape starts to look more 3D. In order to keep the canvas clean, I gave the hillshade layer a low opacity (25%).

Screen Shot 2018-11-12 at 4.41.02 PM.png

The hillshade completes our base image. Note that I made the light direction of the hillshade roughly opposite to the lighting of the aerial imagery. I like this because it makes a nice 3-D effect, and steep slopes stand out no matter what orientation they’re in. If you want to, you can add other data below the hillshade layer, even vector data. Below, I’ve added a layer outlining the salt flats in the area, which are a major component of the landscape and useful for navigation. Other types of data you could add here would be land cover, geology, or large water bodies. By adding it below the hillshade layer, it melds with your base image and becomes part of the canvas on which the layers above are painted.


Elevation data are often the most important part of a basemap. In fact, if all you had were elevation contours and roads, you would have a very decent basemap. Elevation contours can be readily generated from the DEM. If you just contour a high resolution DEM, however, not only will the contour data take up a huge amount of hard-disk space, it will have lots of tiny wrinkles and blobs that you don’t usually care about. It’s better to contour a smoothed version of the DEM, which gives contours that, while technically not as accurate, look more natural and are easier to follow. Don’t worry about the lost detail. The hillshade layer below provides high-resolution information about the topography.

On the one hand, the contours need to be easy to read, and so relatively dark. On the other hand, they shouldn’t overpower your own pencil annotations that you’ll make in the field. I’ve found that brown is a good color for contours for several reasons: it connotes earth and soil, making it an intuitive color for topographic contours; it turns into gray (not black) when printed grayscale, allowing you to write over it; and it’s still darker than most other data on the map, giving it the prominence and weight it needs.

Major contours, which denote every 5th contour interval, should be labelled and plotted thicker than minor contours. My map uses a 50 meter contour interval, meaning that every 250 meters is labelled and given a bold contour line. To avoid cluttering the map, label the contours in a small font, of the same color, and without the units of elevation (here meters). Instead, make sure you describe the contour interval and units in the map’s legend. Plotted in this way, the contours do a great job of showing the topography without overpowering the canvas.

There is a minor issue with this in QGIS. The contour labels should “knock out” the major contour lines, but instead they just print right on top of the lines. As a result, the numbers can be hard to read and it looks very messy. Although not idea, a workaround that I came up with is described below.

Finally, it will help to label the elevation of the highest points in DEM with an “X”. That way, you can triangulate your location in the field by finding the bearing to the nearby peaks.


Although the basemap is now pretty serviceable, it’s missing key data that can help you get around in the field. This includes roads, hydrography, and any other data you may need. In remote locations, you may have to digitize these data yourself using aerial imagery or Google Earth.

The main choices have to do with the color of these features. The layers below tend to be shades of brown and green, thanks to the aerial imagery and contour lines. These extra data should be other colors. I chose to use a bright pink or magenta for the roads for several reasons: it really pops out in color, giving immediate visual separation from the other layers; it turns to medium gray when printed grayscale; and its denotes that these are not natural features of the landscape. Take a look at this orienteering map. Magenta was chosen to denote some of the most pressing information: the starting and ending locations, out-of-bounds zones, and dangerous areas. Shades of yellow, orange, or purple could be other good choices for roads. I reserved blue specifically for hydrography layers, because that color is the most intuitive.

Screen Shot 2018-11-12 at 5.24.51 PM.png

The final bit of data, essential for any map, is to represent one or more coordinate systems. This allows you to transfer locations from a GPS to your map, and vice-versa. For my maps, I chose to go with a 1 km UTM grid (labelled every 5 km), as well as a one arc-minute frame. The 1 km grid is useful for quickly gauging distances between nearby locations, for example, if you were deciding whether or not to hike up a nearby hill at 3 pm. The geographic coordinates are mainly for cross-referencing with GPS devices. Depending on how you are going to use the map, it may be better to choose different values or coordinate systems here.


Basemap recipe

Putting this all together, here is an outline for how to create maps like this.

  1. Download necessary data

    • DEM - SRTM, 30 m

    • Aerial imagery - Bing, Google Earth, or use a Web Map Service (such as the OpenLayers plugin)

    • Hydrography, roads, other data - Download from your government or digitize yourself

    • Elevations of peaks - digitize the locations by hand, then sample the elevation value of the DEM at those locations.

  2. Process the DEM

    • Create a hillshade

      • Choose the correct Z-factor

      • Optional: Choose a light angle opposite from that of the aerial images

    • Create elevation contours

      • Gaussian blur or otherwise smooth a copy of the DEM

      • Contour the smooth DEM with a 50 m interval

  3. Creating the map, bottom to top

    • DEM

      • White (low) to black (high)

      • Opacity 60%

    • Aerial imagery

      • Contrast +125, Saturation +75, Opacity 75%

      • Overlay blending.

    • Hillshade

      • Opacity 25%.

    • Elevation contours

      • Brown (#6b5c3a), 65% opacity

      • Major if "ELEV"%250 = 0, else minor

      • Major thickness 0.3 mm, minor 0.15 mm

    • Label major contours

      • e.g. if("ELEV"%250 = 0, “ELEV”, ““).

      • To workaround the “knock out” problem, give your label a 60% opaque background of extremely light brown. Most of the time, this knocks out the brown contour while not being too visible on its own. In QGIS, you can reduce the height of the background, so that it only covers the line and not much of the underlying map.

    • Peak elevations

      • Brown “X” and labelled with elevation

    • Hydrography

      • Blue, dot-dot-dash pattern to distinguish from roads

    • Roads

      • Magenta.

      • Solid line if major, dashed if minor or trail.

    • Grid overlays

      • 50% opacity

      • Red, thin lines. They should fade away if you aren’t looking for them.