Category: Uncategorized

Revealing Hidden Landscapes Part 1: Enhancing Lowland Terrain in Shaded Relief


In my current work I produce many maps of lowland, riverine regions. As part of producing interesting terrain to support these maps I have developed some tricks to highlight low-lying features that conventional terrain shading might miss. I will share these tricks, along with thoughts I use to guide my cartography, in this series of tutorials. Thank you for reading.


Enhancing Lowland Terrain in Shaded Relief

Mountains dominate the conversation around terrain. The Swiss Alps were the study for the great 19th and 20th century masters of shaded relief while today the Rocky Mountains, Himalayas, or even the desert vistas of the southwestern US are visited again and again by cartographers eager to display their chops. There is nothing inherently wrong with this, but it adds to, and reinforces, a idea that flatter landscapes have less ‘terrain’ than a dramatic mountain vista. Even in pop culture, we joke about how flat a place is as a pejorative term. Americans envy the rugged vistas of Colorado, Alaska, or California, and mock Kansas, Florida, and Illinois as boring, plain, or even simply ’empty’, as if they fundamentally lacked landscapes.

Obviously this is not true. The entire earth has terrain, but why do we in the modern (Western) cartographic community show such a preference for mountains? Its both a technical and psychological problem. Flatter landscapes get short-changed in terrain maps because it is harder to convey that grandeur using the typical (digital) cartographic arsenal. Nor are flat landscapes truly flat. Their contours are just more difficult to see than a dramatic mountain ridge.

Part of this difficulty is because of how we perceive a landscape. Humans are tiny relative to most physical features, and we are looking at those features at a very very low height. Tall mountains are easy to see on the ground, but the larger forms of equally vast but lower-lying landscapes escape unnoticed. A perfect example of this is the so-called ‘Eye of the Sahara’, or the Richat Structure (Guelb er Richât / قلب الريشات ):

ASTER False-color Composite


This collapsed salt dome in Mauritania was little known until aerial imagery captured a different angle of it than any human had ever seen before. It has since fueled all sorts of fascination and speculation. More than once someone has forwarded me a YouTube video claiming it as the ruins of Atlantis, which makes sense if you see it from space. However, here is how it looks on the ground, as a ancient human might have seen it millennia ago:

Credit to Carlos Reis


The true grandeur of the Richat Structure escaped us until very recently, but aerial views only capture it so well because they are showing its color, not the bare terrain contours alone. Here is a conventionally rendered hillshade of the structure and the surrounding Adrar desert, without color:


In monochrome, the Richat Structure appears as a series of low hills in a dull grey expanse. Also, if one needed to take this and use it as the base of a map, the color range is so thin across most of the image (except possibly some of the gulleys to the northwest), that it would barely show up over any other layers. Here is the hillshade from before with a satellite image (Sentinel 2) placed over it:


Yet, even the low eroded hills of the Richat Structure appear in a hillshade. They are still, of course, hills, and taller than a human. A more extreme example of how much terrain data is lost, and one that I have to deal with constantly, is in river deltas.

A river delta is wide, low, and constantly changing. As a river deposits sediments it fills old channels and cuts new ones, fracturing into thousands of tiny undulating streams. This sort of landscape is extremely flat. It is a dynamic, interesting area all trapped between 10 feet of elevation. A conventional hillshade will lose most, if not all, of these channels.

Look at the transition between a satellite image of the Lena Delta in Siberia with a hillshade of the same area:


This is the crux of the problem. We can see the terrain is there, and a DEM can capture these elevation changes, provided it is of sufficient resolution, but having the data  is different from seeing it clearly. A hillshade displays color per pixel according to how that pixel interacts with a light source, but areas 2 feet apart in elevation will seem indistinguishable compared to more dramatic elevation changes say, in a nearby mountain range. These differences do not seem important when mapping more rugged terrain, but they hide lowland areas.


The solution is like climbing a mountain. On paper: easy (go from the bottom to the top), but actually doing it is the entire challenge. Here the solution is to take those subtle elevation changes and make them appear more distinct, but how is this actually accomplished?

Luckily we just have to do some basic math, and even luckier we have software that does this for us. All raster images are grids where each cell (pixel) corresponds to a higher, or lower value. Naturally in a DEM areas with similar elevation will have similar values, and any rasters generated off that DEM (i.e. slope, hillshade) will have similar values as well. We can think of these rasters with a histogram, showing which values are more or less common. To maximize the difference between nearby areas, we can use a tool like Equalize in Photoshop to stretch that histogram like so:


This sets the highest value on the grid as pure white, and the lowest value as pure black. This pulls out every possible detail in a raster. Its a great way to see what information is in the raster in the first place, and then you can blend that information in to highlight otherwise invisible features. The secret is applying it subtly, as equalizing a raster also makes it extremely over-contrasted. (You can also use the levels tool in the same panel (Image / Adjustments / Levels) to make more specific stretches).


Equalizing a raster gives you more information to work with, but blending it is how you actually apply that extra information in a aesthetically appealing way. What sets Photoshop (and QGIS) apart from ArcGIS (for now) is blending modes. These are mathematical equations applied to pixels between different raster layers. Some have self-explanatory names like multiply (which multiples the values between two rasters – resulting in a darker image blending both), while others ex. linear burn are a bit more arcane.


For shaded relief, I only use 4 – 5 regularly. Multiply, Linear Burn, Overlay, Soft light, and Hard light. These all blend terrain effectively but are appropriate in different situations: Multiply and Linear Burn both result in darker images and are useful for early stages when you are just building the relief. Linear Burn has more extreme shadows while Multiply is more muted.

Overlay, Soft light, and Hard light all are good for subtle blending and result in generally lighter images. Hard light also highlights hard edges very crisply, useful for adding in texture. You are encouraged to play around with blending modes and find what works for you.

Making the Map


For this demonstration I am going to showcase a area that I first developed many of these techniques on, the Yukon-Kuskokwim delta.

The Lay of the Land

The delta is a broad coastal plain that extends between the two aforementioned rivers as they empty into the Bering Sea. It is covered in thousands of small lakes and streams that result in erratic terrain that looks like few other places on earth.

It is also massive – about the size of Louisiana. This landscape is overwhelmingly open tundra wetlands, with trees and shrub-land towards the foothills to the south and east. This landscape is the home of the Yup’ik, Cup’ik, and Athabascan peoples.


A USGS topo map of part of the Yukon-Kuskokwim Delta


This tutorial is going to focus on just the Yukon delta proper, a distinctive fan that spreads out at the northern end of the larger plain. This shape speaks to the history of the landscape: as the river dumps sediment ever outwards it spreads the land out, laying slices of new soil almost like tree rings.



If we look at the delta itself with satellite imagery (here as earlier I am using Sentinel 2 images), we can see some similar patterns to other deltas across the world.

Sentinel 2 image, credit to Greg Fiske


The Yukon river breaks into many smaller channels between a low-lying, waterlogged marshland. You also see to the east some more uniquely Arctic features such as the many small round lakes formed by shifting permafrost. Farther eastwards are the foothills of the Nulato Hills, though it is hard to see the elevation change from imagery alone.

If we look at this terrain now with a standard hillshade, all of the gorgeous terrain visible in the imagery seemingly disappears.


In fact, it might be hard to notice that this hillshade is showing anything at all if it weren’t for the slight rise in elevation around the Nulato foothills (bottom right). However, everything we saw earlier in the imagery is still here – its just hidden. 90% of this landscapes terrain is inside such a small elevation range its practically indistinguishable. The first step to making better terrain is to find out what we can work with. This is where the Equalize tool comes in.


Much better, but now there is a new problem. The data is too extreme. Its too contrasted. Theres also some low-level contours we will miss if we just use a hillshade so to stretch the available data we can work with I am going to drop in a curvature raster (profile curvature here), and equalize that as well. I have covered curvature rasters in other tutorials, but basically they capture the second-derivative of a slope. Curvature rasters can be generated in ArcGIS Pro, and are great for capturing dramatic local changes in slope and aspect. I am using a profile curvature raster as that captures horizontal change well and is perfect for picking up subtle changes over a wide flat area.

Note: the lighter grey corner is because of a gap in the terrain data. Luckily it will be covered up by our water layer later so I decided to ignore it.


This shows every tiny channel beautifully, but it is too noisy just as the hillshade was too over-contrasted. Its by combining them that we will get a good end product.

Normally I use a combination of blurring and median filter but recently one of my coworkers experimented with paint filters in Photoshop inspired me to try out some experiments. I settled on using the Reduce Noise filter (Filter / Noise / Reduce Noise), which in my mind accomplishes the same task, but I have more control over the end product. It sums up noise in the image while leaving larger features untouched.


The trick is to apply it very lightly, and to remove any excess ‘painterly’ effects afterwards with blurring. Its always better to have terrain be a little too blurry than a little too crisp.

After applying my Reduce Noise filter and some blurring to both rasters, I then blend them together using the soft light blending mode (you blend them by leaving one as normal and blending the other over it).


Already we are very close to the end product, but I want a bit more definition around some of those hills, so I am going to pull in a slope raster, and increase the contrast a touch with the levels tool, and then blend that in at 30% opacity with a soft light filter. This makes the lowland areas a bit brighter, and adds some good shadows around the steeper slopes.


The terrain is looking good now, but its still too dark. Luckily this is easy to adjust with the levels tool.


I pull the upper two markers to the left to make the highlights and median values lighter without modifying shadows. This leaves me with a bright image that still has good contrasting shadows to identify features. Just as you want hillshade to always err on the blurry side, you also want it to be light. A lighter hillshade makes it easier to overlay other features over it and still be legible.


You can now use this as the base for a map. I applied the same imagery from before and a water layer and the end result turned out quite nicely:


Compared to the conventional hillshade, this terrain highlights the changes in elevation from the delta itself, to the permafrost marshlands, to the foothills, while also enhancing contrast around the subtle channels and sediment fans of the delta itself. This shows the landscape better – and therefore tells the story of the map, better.

For a final comparison, here is the default hillshade and the final relief:


Last Thoughts

I like this look because it comes across as a bit more lo-fi, a bit more physical than a very high-end relief can look, and it also captures more information than just a default  hillshade would either. By enhancing otherwise hidden areas in a conventional hillshade, both with hillshades and curvature rasters one can get a bit closer to a manual look.

The next part of this tutorial series will focus on what happens when you are dealing with flat and rugged areas in the same landscape, and how you can use masking to give each part of the landscape its own attention.

I want to thank Greg Fiske and RJ Andrews for their feedback and advice.


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