Stealing John Nelson’s Imhof-Inspired Style

Recently, because I like cartography stuff, I have been seeing a blogpost by John Nelson at ESRI about a very pretty style that he developed. It is inspired by the style of Eduard Imhof. John’s style is developed for ArcGIS Pro. I, on the other hand, use QGIS.

At its heart, the style is pretty simple: satellite imagery, under a regular hillshade, under a multi-directional hillshade, under a “mist” linked to elevation.

Here is how I made my own version in QGIS.

You need a base image to use. I found that using the Quick Map Services plugin you can get some good imagery using the EOX::Maps - Sentinel-2 cloudless layer. You might have other imagery that you prefer.

Then, you need a digital elevation map for your area. If you have one, great. If not, then the SRTM data is probably your best bet, since that has 30m accuracy for most of the globe. You will need to export this into a projected coordinate system, like the UTM zone best suited for your area of interest, or the hillshading will go a bit squiffy. Apparently the hillshade uses the units it is projected in, so working with a DEM in decimal degrees throws things off; you want it to be in metres.

You then need two hillshades:

  • One is just a standard hillshade.
  • The other is a multidirectional weighted hillshade, which uses more than one lightsource to soften hard edges. A description of the method can be found here. In QGIS, this can be created in two ways with slightly, but not dramatically, different results. Just see which one you prefer.
    • by ticking the Multidirectional Shading checkbox in the Raster > Analysis > Hillshade, or
    • by using the Analytical Hillshading tool from SAGA in the Processing Toolbox. The shading method needs to be changed to [2] Combined Shading.

Then you can arrange your layers from bottom to top: Base image, Regular Hillshade, Multidirectional Hillshade, DEM.

Both hillshades use the same style, while the DEM uses its own. These are my own styles made using John’s images of his colour ramp. (Just change the file-type back to .xml if you need it as such; WordPress does not like me uploading .xml files.) These can be imported into QGIS by going to Settings > Style Manager and selecting Import/export > Import Symbols. Point it at the downloaded file or use this URL:

Both hillshades, logically enough, use the imhof_hillshade_dark colour palette, while the DEM uses imhof_mist. (John’s post has a great explanation of what these actually are, so I am not going into any details.) You may need to invert the colour ramp; whether to do so should be pretty obvious.

That should be that, and after applying the gradients to your layers, you end up going from (click to embiggen in a new window)

... to this
… to this

If you are feeling ambitious, you can use the 3D to viewer in QGIS3 to get something like


Have fun making lovely shaded relief maps!