Author: cchurchill

Vintage Shaded Relief in Photoshop Pt. 2 • Naturalistic Coloring

As much as the Swiss Style defines antique cartography, it also is not a monolith – nor is it representative of the many other schools of cartography in the 18th – 20th century. As I have continued to experiment with recreating vintage styles in digital maps, I have increasingly become more interested in naturalistic coloring. Capturing where vegetation is, where rock is, different types of vegetation, etc.

1876 Map of Mont Blanc – photo shared by Travis White (@visualvariable)

I decided to try out a map that would more accurately capture land cover than just hint at it, like my Imhof-style map did. No disservice to Imhof either, many of his maps incorporate stylings hinting at land cover, but for that particular style it was really all elevation and angle of landscape, not what that landscape actually was in reality. This tutorial then, is a sequel of the first, with many of the same ideas but pursued for a slightly different aesthetic.

Because this map will be in many ways the same style as the Imhof map from the last tutorial, I will save detail for places where I am applying different techniques. That is either new techniques just to achieve a different style, or refinements of practices I developed for the last map. I am going to keep the same layout for this tutorial to make reading easier, but many sections will be shorter.


Unlike the last map, I want to evoke a different style of landscape. Where I am paying attention to land cover as well as elevation, slope, and angle. Like the last map, I want to ‘pass off’ a digital, automated construction for the sort of intricate hand-made designs of a manual map. Practically this means I will be making the same map again, but then changing up my techniques for color and detail.

I also want to refine some of the most manually intensive parts of my map creation workflow, especially labelling. Anything that you can do to cut down on time without equally compromising quality is always a good move. As much as there is a romanticism to laboring over a work, finding ways to achieve the same results more efficiently not only gives you more time for, well, more projects, but also forces creative solutions. Like I have said before, if you can automate the production of a image that once required manual labor, than you understand the fundamental patterns that make that manually produced image so desirable. 


ArcGIS Pro and Photoshop. For this map, I will end up using Pro for more than I did last time.


Like the last map, I wanted to find a mountainous area. This time, I was on a kick of learning about New Zealand and, surprise surprise, New Zealand has some gorgeous mountains. This map will be of Aoraki, or Mount Cook, which is New Zealands tallest mountain. It is perched right along the Southern Alps, which besides being some of the most beautiful mountains on earth, also were a filming site for much of Lord of the Rings. My only regret is not hiding a balrog somewhere in my final map (or did I).

For this map I could pull everything I needed from the NZ LINZ Data Service (linked at the bottom of this tutorial). I did experiment with OpenStreetMap (OSM) for this map, but it never matched LINZ for accuracy.

For elevation I used a 8 meter DEM from the same service.


Lets get some basic details out of the way. I put everything into the same folder I had my ArcGIS Pro project in, checked my projections (everything came in New Zealand Transverse Mercator which was convenientally already perfectly fine for my needs), and then clipped the data to my project area. I always clip a more generous area than I actually intend to map. That way, if I need to adjust the layout a bit later I can without worrying about running out of prepared data along the edges.

I generated the same list of .tif greyscale files, but I also exported some land cover data. With other maps that show land cover, I prefer raster data because it is usually much finer resolution, which lets me pull more naturalistic shapes out of the data. A important caveat of land-cover data is however, that land-cover changes much more than say, the shape of a mountain. A area that is farmland now might have been forest last year. When trying to make a map that captures how a area looked like in the past land cover data is risky business because it will rarely reflect that. However, in this case I was dealing with a remote, inaccessible area where there is not much human presence to begin with, and I also was not trying to capture any specific period. So, it was not a issue here.

The data I could find for land cover was vector format, but luckily it was still fine enough that I could easily pull natural-looking shapes out of it. I exported this data with unnatural, wildly contrasting colors so I could more easily pick out individual ones in Photoshop later. I could have extracted different land covers in ArcGIS Pro, but that is a good step more tedious than just using the Photoshop color selector.

Making the Relief

One thing that immediately pops out about the Aoraki / Mount Cook landscape is the glaciers. Glaciers are fantastic for relief maps because they break up dense, rugged areas. They are a touch hard to color, but that will be discussed later. For now, the landscape practically makes itself. With terrain this beautiful, it does not take much to make a good relief. That said, lets go through the steps. The basics remain the same as my last tutorial.

I have uploaded all the tutorial images at full size, so you can zoom in to see a lot of the smaller details if you wish.

Step 1. Base Relief

I start with a hillshade with the contrast lowered using the level tool. For this map I experimented with using Daniel Huffmans relief technique using Blender, which provides more realistic shadows than one made in ArcGIS Pro. You can read it here.

Step 2. Blurring Hillshade

A second, blurred hillshade with the median filter added a bit of emphasis to larger landscape features.

Step 3. MDOW Hillshade

In the last map I used both a MDOW (where the light is shaded from multiple directions) and a Sky Model (based on a simulated atmosphere) hillshade. These are both part of the Terrain Tools add-on for ArcGIS Pro. You can find it here.

This map, I unfortunately ran into so many technical issues generating a Sky Model hillshade I just used the MDOW. The great thing about MDOW hillshades is that they add more detail to a map than a conventional hillshade could ever give, mimicking traditional shading techniques (artists often changed lighting angle for troublesome areas).

Step 4. Curvature

I simplified my curvature process from the last map. Looking back, all the extra work in masking and overlaying three curvature rasters did not correspond to a equal increase in quality, so I dropped to just two. For the base curvature, I did not mask it at all and just blended it in. I apply the profile curvature farther down after a few more touch-ups. You can read more about what curvature rasters are and what they do in my last blog post.

Step 5. Enhancing Bare Rocks

This map had a lot of areas of bare rock. Since I was using land cover data, I could isolate them and give a bit of special treatment. I extracted the rock cover out of the land cover data and used that to copy the curvature raster to double it up. Then, I used a slope raster to mask it.

Selecting bare rock from land cover polygons (left) and then copying the underlying curvature raster with that selection. Layer via copy duplicates the input, layer via cut slices the input based on the selection.

The slope raster blurs the hard edges of the original land cover vector and emphasizes this extra layer in steeper places while blurring it in smoothly into flatter areas, where bare rock often gives way to ice or vegetation.

Step 6. Inverted Slope

Slope rasters are also good to add detail by themselves. I always invert slope rasters before overlaying them. By default a slope raster is overwhelmingly dark and tends to bury flat areas in shadow. Flipping it adds much-needed light to these areas while giving some equally needed depth to rugged slopes.

The steps to find the Invert tool in Photoshop CC (2015)

Step 7. Profile Curvature

I add back in the profile curvature here. The exact steps on when to apply different overlays can make a difference in the final image, though it is never significant in my experience. In this case, I was moving along and decided I wanted to add a bit of emphasis to flat areas that the base curvature was not doing enough for. So, I masked the profile curvature with a inverted slope, blending it with hard light instead of the usual soft light option to make it stand out more.

Step 8. DEM Enhancement

Using a DEM can be tricky. Like a slope raster you run the risk of burying flat areas (because often flat = lower) in darkness. So, for my current maps I always heavily lower the DEM contrast before I overlay it. This gives the sense of elevation without drowning any of the map out.

Step 9. Hillshade Summit Highlighting

A extra hillshade masked to just the mountaintops does wonders for popping out the highest parts of the map. Like the last map, I use a intentionally ultra-high contrast hillshade for this. Just as a map is always trying to imitate the realism of the curved (not flat) earth, shaded relief is trying to capture the depth of real terrain in a flat medium.

Step 10. Low Elevation Lightening

A final touch: adding a inverted DEM to do a slight fog effect. I was turned onto this idea by John Nelson (read his tips on doing this in ArcGIS Pro here) and just copied it in Photoshop.


This is where the map takes a left turn from the Imhof style. First, I am not using the color mask property as much, instead mixing in some more conventional layering. I also am pulling in that land cover data from before to add natural colors to convey ice, forest, grass, bare rock, etc. Because the land cover data is flat shapes, I want to blend it with the colors of the relief while still preserving the way light is hitting the terrain.

Step 1. Relief Enhancements

Between each seperate map document, I like to revisit the last step and any quick tweaks that strike me in the moment. Maps always look different in the next morning than 2 AM.

Here I doubled up the MDOW hillshade with the base hillshade to pop some of the shadows a bit more.

Step 2. Base Coloring

Coloring this map was a great challenge. I eventually settled on using a gradient applied to a DEM instead of flat masked panes of color like the last map. I was going for a different visual style after all, one that was more painterly. The gradient itself is simple:

However, I immediately ran into the issue of ice. Ice is hard to map, because it needs to be very bright but not overpowering, and without losing depth. If done right though, it can add a lot of visual complexity to a map while still being soothing on the eyes.

I took land cover data on ice and snow, and used that to mask out the DEM gradient to areas outside the ice. This let the original grey relief shine through with a nice sharp cut to vegetation on the edges. This also meant I could modify the colors of the gradient without accidentially moving the sliders and coloring over a glacier.

Step 3. Waterbodies

Glaciers move. Many of the glaciers in the Aoraki / Mount Cook area are shrinking, and these leave glacial pools at their bases that often are not updated in the GIS data covering these regions. Data will never perfectly reflect reality – Alfred Korzybski, The word is not the thing. A map is a picture that is attempting to represent something else. For this map I included the best data avaliable, and when data conflicted (some land cover classified as ice overlapped with waterbody polygons), I made my best judgement.

One thing worth mentioning with waterbodies is that they can be tricky to blend into a relief. You can get this impression of blue lines cutting over a dark slope or a bright, sunny, valley with no change in color. Areas in shadow, should be darker, and this goes also for features over the actual terrain.

To deal with this, I copied a hillshade layer, blended it with the multiply option over my relief, and then masked it so it only appeared where water was. This gave a effect where water was darker where the hillshade showed shadow – and vice-versa. I also made sure to mask out the water from my DEM base color gradient, so I did not get any ugly unexpected color blending. Just shades of blue.

I ran into a second problem with waterbodies however. The data was excellent, it had dozens of small streams dotting the landscape, but those streams can be a pain to blend in. Many were coming down from steep slopes and then draining into the flat valleys. So, to mimic the idea of water gathering in larger and larger gulleys I masked the entire folder containing the previous two waterbody layers with a inverted slope layer, so water only appears most on flat valleys and seems to blend into steeper areas.

Step 4. Rock Masking

Like I did with my greyscale relief, I highlighted bare rock specifically. This time, with a second curvature raster, colored grey, and then masked with a DEM. This made the grey fizzle out as the terrain went lower, and became strongest at the highest alpine peaks. The contrast between a bare, almost blue, grey and stark white gives a relief the actual sense of mountains, not just bumps on the landscape.

Step 5. Relief Enhancements

I dropped in a few layers on top of all the colors, giving lighting consistently over everything to make sure it all blended together. No element should look like it just ‘sits’ over everything else.

Features and Labelling

Unlike my last map, I wanted to try out using ArcGIS Pro to label for me. Between that map and this one I gained more experience with labelling and felt confident enough in my abilities with Pro to give it a shot. This area also had less labels to begin with, so there was more room for error.

Step 1. Features

Aoraki / Mount Cook is almost completely undeveloped. It has one town (of the same name), and less than a handful of roads. Adding features was easy. I took roads and buildings from NZ LINZ, and kept the buildings red as my last map, but colored roads black to avoid confusion with the ice dotted all over (which my last map fortunately lacked).

Aoraki / Mount Cook Village

Step 3. Labelling

ArcGIS Pro is a powerful labelling software. I have frankly underestimated it. So much of its power is directly related to what sort of data it is working with. I was fortunate to be working with great data.

New Zealand provides a full gazeteer with points, lines, and polygons specifically to hold labels. It was as simple as tweaking formatting a bit, it practically mapped itself. It is rarely this easy. I still firmly stand behind manual labelling, because having automated labels this good is the exception – not the norm.

The only hard question then, was font. Font can itself make or break a map. There is a degree of snobbery to it, because on its face it is so minor. Font adds to the character of a map, makes it useful, makes it artistic. I always try to choose fonts that correspond first to the theme of the map, and then decide how to break them up to capture different types of features (water, terrain, settlements etc.). This map uses the excellent DM Serif font. It gives a old-fashioned, but still crisp look. You can download it (free) here.

To make sure fonts did not overlap with any other features that might make them hard to read, once I was finished with all font movement I copied it to a new layer, added a thick outline, and then masked that over a heavily blurred version of the rest of the map itself. I was inspired by Daniel Huffmans post here.

To break this down, what you are doing is copying your entire map without labels, heavily blurring it, and then only showing that blurred map in the areas just adjacent to your fonts. By adding a outline, you ensure that the mask includes a fuzzy area around the font rather than just underneath the letters themselves.

Step 4. Contours and Scree

Contours are appealing and useful. I like to have both unlabelled contours and elevation points. The simple shape of contours gives a impression of the lands contours while elevation points give good quick references for actual elevation. In this case, I generated my own contours from a smoothed DEM and then applied NZ LINZ provided elevation points over it.

I wanted to add something more experimental to this map. To further highlight bare rock, I decided to try with generating scree. Scree is artifical lines and dots to simulate rockfaces. Digital scree generation can get very complicated, but for my purpose a few dots in the right places was good enough. Terrain Tools includes a tool called Historic Dots that is for this exact purpose. It takes a DEM and places contours that have a automatic dot symbology applied. I just clipped those with the bare rock values extracted from my land cover data, exported it to Photoshop and blended it in.

Final Touches

Once I was satisfied with everything I dropped it onto a simple light-yellow background, added in my legend and text and called it a day. The only thing I have to say here is when writing the descriptive text I tried to be as conscious as possible of the duel Māori and English names for the mountain.

There are also duel histories. I wanted to mention both the Māori beliefs around the mountain and the root of its English name, and the mountains relevancy in the modern nation of New Zealand. As geographers, we have to remember that the same places can mean completely different things to different groups, and that those groups can have sometimes deep pain attached to those places. As part of recognizing the meaning of place in human cultures, we have to consider every culture in that place, not just the most recent one.

Check out the finished map here:

Aoraki / Mount Cook

Data Sources


Land Cover




Vintage Shaded Relief in Photoshop

In cartography, the Swiss reign supreme. Swiss-style cartography is recognized globally as the standard to match for detail, beauty, and pedigree. Of course, this means everyone else wants to figure out what makes this style work. One of the first Swiss masters was Eduard Imhof ( 25 January 1895 – 27 April 1986 ) , a former surveyor who produced some of the finest maps of the 20th century.

One of Imhofs maps – this of the area of Laufen, Switzerland.

Nowadays, it is easier than ever to make a shaded relief. Detailed DEMs (Digital Elevation Models) exist for thousands of miles of the earths surface. However, what sets older reliefs apart is that lack of detail. The human eye sees a landscape very differently from how it actually appears, and a computer-generated DEM will capture how it actually appears, and not necessarily for the better. This will become clearer deeper into the tutorial.

This tutorial showcases a quick, 1 week test, I made of some terrain digitally to try out some different techniques. I believe, that if you can automate the production of a image that once required manual labor, than you understand the fundamental patterns that make that manually produced image so desirable. So, lets begin.


Before any project one should consider the end goal. Here, my goal was create digitally a map that could be plausibly passed off as a manual relief. To capture the forms, colors, and composition of a vintage Imhof style piece.


I work exclusively in ESRI ArcGIS Pro and Photoshop. I use Pro to prepare data, and Photoshop to finish. For raster work, I use Photoshop much more because I have more control over combining the various layers to make the end product. The fundamental principles however, would apply in any similar program. (such as GIMP or QGIS).


Make the map to fit the data. For this project I needed to get elevation data for a rugged area somewhat like the Swiss Alps (I have actually spoken to current Swiss cartographers about how Swiss mapping techniques work in say, deserts, and have been told it has not met much success). I am shamelessly a Colorado native, and immediately decided to map Ouray county, the so-called ‘Switzerland of Colorado’.

The best source for elevation data in the US is the USGS 3DEP Program. It provides quality 1/3rd arc second DEMs for the entire country with even higher (1 meter) data for certain areas. This resolution roughly comes out to 10 meters. Its also all free.

The land features (roads, towns etc.) all come from Open Street Map, or OSM. OSM is always being updated and in recent years its coverage of the US has expanded significantly. It is in many ways just as accurate and comprehensive (in many countries, more comprehensive) than official national data. It is not perfect, but the OSM coverage of the area I wanted to map was more than good enough for my purposes. Always check that the data covering your target area is good. Bad data makes a bad map.

Because OSM can have gaps, especially for waterbodies, I pulled those from the USGS National Hydrographic Dataset, or NHD. For some vegetation and urban areas I used the National Land Cover Database (NLCD).

For placenames and feature names, I used the official GNIS gazeeteer, which records all official placenames in the United States. Lastly, I downloaded some census shapefiles for county boundaries and town boundaries (though I ended up not using the latter).


Once everything is downloaded and neatly stowed away in a Pro project (also note the SwissTopo and IMhof folders to stash some convenient reference maps):

First step was some basic housecleaning. I projected everything into NAD 1983 StatePlane Colorado South. The exact projection is not terribly important for this sort of project, but taking the extra five minutes to choose a appropriate one is always worth it, just in case.

Next, I made a temporary polygon and clipped my DEM to a more managable area. I created a layout (30 x 36 inches) and made sure it contained the entire boundary of Ouray county (and a bit of breathing room on the edges). Then I could prepare the raster data.

There are many ways to tell a computer to read a DEM. A DEM is just a value per pixel according to elevation, but it says nothing about how light would interact with those pixels (a hillshade), how much a pixel changes value compared to the ones around it (slope), how the overall surface changes slope (curvature), and then which way those slopes are pointed (aspect). These are all self-explanatory, except for curvature which I confess – I do not fully understand either. Here is a great tutorial to atleast get you started on the concept.

This is also where I want to touch again on the issue of detail. What looks good to your eyes is different from what actually exists. In art, this is called “drawing what you see vs what you know”. For example, look at this drawing:

Fox by Andrea Gerstmann, from here

A fox has thousands upon thousands of individual hairs, but to try and draw each of those would make the image look cluttered. Instead, by just drawing enough to let your mind fill in the rest, hitting highlights and shadows, the picture has room to ‘breath’.

The same principle applies to mapping. Trying to use a unsmoothed DEM will make your map look busy. At the same time, its important to preserve detail. I made two copies of my DEM, one original and one smoothed. I used the Focal Statistics tool in ArcPro to smooth it just enough to cut out the really messy details but not lose the actual topography.

Left: Blurred Hillshade, Right: Unblurred.

Just in case theres some detail I lose when I smooth the DEM, I run all my raster processes for a blurred and unblurred version. This way I can mix them if I want to pull some specific detail out that I wouldn’t otherwise have.

I generate 7 base rasters from my DEM:

Hillshade, aspect, slope, curvature, plan curvature and profile curvature. plan and profile curvature are slight variations in the way curvature is calculated, but for our purposes the main difference is that profile emphasizes terracing in a landscape while plan emphasizes ridges and valleys.

For this project I also decided to go the extra mile and generate some additional hillshades to round out my toolbox. I used the excellent Terrain Tools ArcGIS Pro toolbox, avaliable here, to generate MDOW and Sky Model hillshades. MDOW just means that the software is hitting the DEM with light from multiple angles, unlike a traditional hillshade that only uses one. This emphasizes features that would otherwise be missed. Sky Model essentially does the same process, but uses a simulated real world sky and hits the DEM not just at multiple angles, but with multiple types and intensities of light. All three hillshades work well, but combining them is a great way to add a extra special look to a relief. Also, because cartographers working manually would frequently alter the light angle locally to highlight a particular feature, these two extra hillshades let you get closer to the look they achieved.

I export all of these as 300 dpi .tif greyscale files. I have taken to working exclusively in greyscale when building the base terrain as it forces me to think about the terrain features exclusively. At this stage, I treat color as a crutch. I only introduce color once I am totally satisfied that I have captured the landscape properly in grey.

Everything organized and prepared.

Making the Relief

The shaded relief is the real meat of the project. One needs to be truthful to the subject matter, to accurately capture it, while making a appealing product. In many ways, making terrain is like portraiture. You need to render the subject better than reality, without losing its identity. What this abstract gibberish translate to, is making sure you capture three fundamental aspects of a landscape: Height, Form, and Detail. So, you need to work on each aspect in different ways with your prepared rasters.

I always start with form. The basic contours of the landscape. Where the land is rugged, where it is smooth. I lay down my hillshade in Photoshop and tweak it just slightly with the level tool to reduce the extremes. Its very easy to end up with what I call a ‘burned’ effect, where you have ugly spots of pitch black shadow in a map.

A quick note. When I refer to the location of a tool in Photoshop, I will label it by all the containing folders in italics like this: (Image/Adjustments/Equalize)

One great trick to pull out the major shapes in terrain is to copy the hillshade, and then use the median tool and then the equalize tool (Image/Adjustments/Equalize) with a heavy (heavy) blur.

Hillshade with Median, then Equalize, then blur and if necessary, decreasing contrast.
The equalized hillshade blended into the original one with the soft light blending mode

This trick gives the map a better sense of large-scale form than just using the small-scale hillshade. Next, I lay on the other hillshades I have prepared, the MDOW and Sky Model ones. I tend to use the multiply blending mode for the Sky Model and soft light for MDOW. Because the MDOW hillshade is darker, I use soft light to still grab details but not over-darken the image. Alternatively, the Sky Model hillshade is very light so I can use multiply to grab all that detail and not worry about making the image too dark. Its a balancing act, and I am always making small tweaks to light and contrast at each step.

The 4 hillshade layers: Original, Original blurred, MDOW, and Sky Model, blended together.

Now I move onto detail. For details, I use the curvature rasters. This is also where I introduce layer masks. A mask in Photoshop is a greyscale image attached to a layer that determines that layers transparency per pixel. White is fully opaque, black is fully transparent. Its a great way to modify a layer without actually editing it. You can make a layer mask in photoshop by clicking the small rectangular icon with a circle on it at the bottom of the layer pane.

Because curvature rasters can be heavy on small details, masks let me apply details to areas that need it and hide them for areas that need visual space to breath.

One great trick I learned from reading Tom Pattersons articles was to use the slope raster as a layer mask for a curvature raster. Here, I applied the slope raster to the mask (alt+click to access the mask):

This means dark areas correspond to steep terrain, and the curvature raster is more transparent there. Because steep areas are tight and rugged, adding extra detail would just be overwhelming. Here, I applied the base curvature raster to the whole hillshade but masked out the profile curvature. Because the profile curvature focuses on terracing, masking it to just areas of lower slope lets me emphasize flatter terrain details without obscuring anything else.

Using the soft light blending mode keeps these details light. One principle of Eduard Imhofs maps was in fact, to keep low-lying areas bright to make them easy to see next to high mountains, not dark and obscured like a DEM might make them out to be.

I do the same step again with the plan curvature, but I reverse the mask. Now I have one curvature raster emphasizing steep areas, and a different one hitting flat areas. This makes a great mix of details that all work together without overlapping.

the hillshade zoomed into to show off the curvature details. Notice how the layer masks mirror each other.

Past this point, it is just minor touch ups. I add the slope and aspect rasters, and then the DEM to add a sense of height. I lower the contrast on all three, invert slope and aspect (so I have light flat areas and lighter areas to the north respectively) and blend all three with soft light. I use aspect for this map because I have wide flat foothills facing north. Using the aspect raster lets me hit those areas with a lot of light. Because aspect is so dependent on the topography of a area, it should be used seperately on a case by case basis.

How it all looks put together.

There is only one step left, and it is surprisingly important. Like the DEM this relates to conveying height. We have captured form, we have captured detail, but we still need to make the terrain feel well, like terrain. With ups and downs.

One trick swiss cartographers use to make terrain seem more 3d than it actually is, is to vary the level of contrast according to elevation. High mountain peaks have crisp bright white highlights and deep shadows, while lower valleys have milder shades. To accomplish this, I simply make a new hillshade with a extremely high contrast, and mask it with a DEM for elevation while blending it with the underlying image.

The mountains pop much more nicely here.

I do any final tweaks and save the image as a 300 dps .tif file. One thing to keep in mind is always make the relief lighter than you might think necessary. A light, low-contrast relief helps features show up better than one with more dramatic shadows.


Eduard Imhof developed a unique style of coloring terrain that emphasized blues, greens, and yellows to simulate natural light. He invented a color plate printing process that overlaid six different layers of color masked to different areas that when combined created the final image.

Imhofs color plate printing technique, from Jenny & Hurni 2006

Normally, when I color a map, I use gradients mapped to values in the DEM and blend this into the greyscale relief. That did not work here, so I tried a different approach. By making a layer with a flat single color, and then masking it according to different aspects of the terrain I could mirror Imhofs color plate style and prevent overtly digital looking color blending, like you can see if you use a gradient.

What Imhof is doing here is using blues and greens for the base shades, yellows for sunlight, violets and blues for shadows, and then light pinks and whites for peaks and bright highlights.

how everything looks. Each folder has a different base color, and then 1 – 3 different masks.

This image is a bit intimidating, so lets break it down. Also, I made some color decisions that in retrospect, I would not do again, but I am still proud of the process. I will pay more focus to that than specific color choices.

Step 1. Base tone. I use the multiply blending mode for a nice even shade.

Step 2. A violet tone just in shadows (I used a hillshade as the layer mask).

Step 3. A light, washed out blue to start to differentiate high and low altitude areas. I masked this first with a hillshade, and then with slope (you can apply multiple masks by masking the group a layer is in). This way the light blue only hits sunward slopes at low-mid elevation.

Step 4. I lay down a greenish yellow to mimic sunlight. I use both a hillshade and DEM again, but this time I am masking out shadows so the yellow just hits sunward slopes, and I am masking out low elevation areas so it hits peaks more intensely.

Step 5. I darken high mountain shadows using the exact same layer masking as Step 4, but I reverse the hillshade mask.

Step 6. I use a light pink to just hit the mountain tops. This is a DEM and hillshade mask, with the DEM set to just expose the very highest altitudes.

Step 7. I add a light blue to the lowest altitude areas to prevent them from getting washed out, and add a sense of atmospheric haze, like a morning fog.

Step 8. I thought the map was getting too blue so I added a yellow tone to low altitude, flat areas with a DEM and slope mask.

The only thing I changed past this point was increasing the brightness and upping the contrast just a bit. Otherwise, I was worried the map would be just a bit too washed out. However, ultimately its a matter of taste. Part of the charm of many old maps is how the colors arent perfect. Sometimes the blending is too sharp or too subtle. It gives a sense of being painted, and not generated.

Features and Labelling

I like to automate as much as possible, but I also know when to pick my battles. I have yet to find a satisfactory way to label automatically. There is simply no substitute for doing it yourself. Features are a bit easier.

Land cover is a tricky subject. Many maps like to show which areas are forested and which aren’t, but even unlike modern swiss maps that clearly identify greenery:

Imhof often preferred to allude to it through shading:

I compromised and only used the NLCD forest cover to give texture to densely forested areas. I added noise, blurred it, and overlaid it so it had a speckly feeling to mimic the individual clumps of trees:

I took the chance also to add a bit of white (the Rockmask layer) to bare mountain peaks. Then I added in waterbodies and contours, using them both as masks for the tree cover so trees don’t end up obscuring these features.

Using the OSM data on roads, and the NHD data on rivers, I laid them down and colored them to match some of Imhofs maps. For both, I made a second layer that was darker and washed out, and then masked it with a hillshade to simulate slight shadows being cast over the feature. This blended them better in darker areas while still being easy to see.

Because these files are so large, I regularily move to new ones to prevent any single one from being too bloated. After adding in water, vegetation and contours I moved to a new file and added in major roads and urban areas:

I again used the NLCD to extract urban areas, exported that to Photoshop and used the median tool (Filter/Noise/Median) to smooth out the pixellated edges. I originally was going to map individual buildings, but the map scale is too large, and the data is too patchy.

Now labels. Right now, I create point labels in ArcGIS Pro , and then label everything else manually in Photoshop. The GNIS data provides these as points already, so I don’t have to do anything but select font and size.

I have had no issues using Pro to label points, and then I just move them if I need to. I export the labels alone on a white background so I can easily clip it out:

I have heard ESRI has integration options with Illustrator and Photoshop that could potentially make this process easier, but until I get it sorted out I have to stick with this method.

I decided to label rivers and large land features in addition to points. There were lots of small gulches and canyons in the GNIS but they were often missing from US Topo maps, and it was hard to tell which features they belonged too. In addition, many were very small. In this case, I used my best judgement to label larger canyons and gulches as curves, and for the small ones I left them as points. To add to the vintage feel, I kept all labels black with a serif font.

I labeled contours for a better sense of elevation. Contours are a great way to add meaningful detail to a map and improve it artistically. The main thing to be aware of is to keep them smooth, and know they aren’t going to work great in steep areas.

I also decided not to label certain features, like roads. I also left a lot of small locales (campgrounds for one) off the map. They cluttered it, and felt pointless. Once I was satisfied labelling, I moved onto the QA state.

Final Touches

It is crucial to check your work for mistakes. Even if you don’t catch them all, you will catch something. I developed my own way of checking my maps by breaking them up into a grid and examining each piece at a time:

Once a section is done, I fill it in and continue till the whole map has been checked. I then do a few passes over it without the grid. Looking at it from a large and a small-scale view helps capture different things.

I then export the whole thing, and add a bit of noise and a little blur. This brings all the map elements together with a lovely vintage touch. For this map I even added the slightest overlay of a weathered paper texture. How you do the legend, title and outside canvas is entirely subjective. I wanted to showcase the terrain as if it was a study, so I did not do a involved elaborate layout.

The final product.

In retrospect, I learned a lot. This map is meant as a test for a larger more involved piece. I plan on applying the successes from this to that, and learning from my missteps. Every map is a learning process. Theres something to be gained from everytime you create. I hope this tutorial helps you learn some interesting tricks, and inspires you to try your hand at it yourself.

Data Sources


Land Cover




Jenny, B., & Hurni, L. (2006). Swiss-Style Colour Relief Shading Modulated by Elevationand by Exposure to Illumination. The Cartographic Journal, 43(3), 198-207. doi:10.1179/000870406×158164