Shadowplay in Bryce Canyon

Prologue

This is my second attempt to produce a custom multi-directional shaded relief, by manually combining different illumination sources. I recently introduced my approach in a previous blog post, Shadowplay, which I strongly encourage you to read before proceeding with this one here.

Briefly, the steps I follow are:

  • Understand the geography and geomorphology of the study area,
  • Determine real-World’s illumination sources, specifically for the study area, with the aid of the SunCalc app,
  • Model a raster function chain in ArcGIS Pro, where I add some traditional hillshade functions, one for each individual illumination source,
  • Combine the traditional hillshades by multiplying each one of them with a weight, to produce the custom multi-directional hillshade,
  • Introduce the multi-directional hillshade to Adobe Photoshop for further filtering.

These steps are described in great detail in Shadowplay, applied on the island of Tutuila in American Samoa.

This blog post is about the Bryce Canyon, Utah, USA. I saw Tom Patterson’s tweet on 16 December 2020, challenging shaded relief enthusiasts to render the 1m DEM of Bryce Canyon available on the Sample Elevation Models webpage, and I thought why not give it a try!

Physical illumination

Bryce Canyon is located at the Northern hemisphere of the Earth, at about 38 degrees of latitude, thus I expect the Summer Solstice to be the longest and brightest day for that area.

In ArcGIS Pro I load the 1m DEM of Bryce Canyon and I calculate the coordinates of the center of its spatial extent in decimal degrees, which are latitude 37.6145 and longitude -112.1557 (Picture 1).

Picture 1: Understanding the Geography of Bryce Canyon.
Picture 1: Understanding the Geography of Bryce Canyon in ArcGIS Pro.

I open the SunCalc web application and I use these coordinates to center the map to Bryce Canyon (actually to the extent of my data). For date I select 21 June 2020, which is when the Summer Solstice happens.

I then select specific times of that day with the aid of the horizontal timeline at the very top of the app. For each time of that day the app returns a number of information at the left panel, which include the Azimuth/Altitude values of the Sun position (Picture 2).

Picture 2: Calculating the Sun position (Azimuth/Altitude) in SunCalc.
Picture 2: Calculating the Sun position (Azimuth/Altitude) in SunCalc.

I calculate the Sun position for five extreme times of the day, like dawn (Sun shines from Northeast), morning (Sun shines from Southeast), noun (Sun shines from South), afternoon (Sun shines from Southwest) and early evening (Sun shines from Northwest).

I then collect the equivalent pairs of Azimuth/Altitude that SunCalc returns for each time of the day. These pairs are presented at the following table (Table 1).

NameAzimuthAltitudeWeight
NW284200.5
NE76200.1
SE120660.1
S180760.4
SW240660.25
Table 1: Five different positions of the Sun in Bryce Canyon.

Artificial illumination

In ArcGIS Pro I produce five different traditional hillshades, one for each Sun position. I am doing this by introducing five different Hillshade functions in a new Raster function template that I create with the Function Editor (Picture 3).

Then, for each Hillshade function I type the correspondent Azimuth/Altitude values that I calculated at the previous step and I also exaggerate a little by typing 2 for the Z Factor.

Picture 3: Producing five different traditional hillshades, one for each Sun position.
Picture 3: Producing five different traditional hillshades, one for each Sun position.

The magic happens when synthesizing these five traditional hillshades to one sole multi-directional hillshade. I am doing this with the Calculator function in the Function Editor (Picture 4).

I actually sum all five traditional hillshades, but I also multiply each one of them with a weight (see Table 1). This weight represents the intensity of each Sun position that I believe the final multi-directional hillshade should illustrate.

Picture 4: Synthesizing five traditional hillshades to one multi-directional hillshade.
Picture 4: Synthesizing five traditional hillshades to one multi-directional hillshade.

The selection of the weights is not that easy. It demands a lot of trial and error and running many times the function chain until I finally end up with a satisfactory result.

For the case of Bryce Canyon I took into account the geomorphology of the area. It is actually a relief depression, which means that I need a strong light right above of it (the Southern light source) to illuminate as many details as possible on the steep slopes. It mainly has slopes with Eastern aspect, thus I want a dimmer light coming from Northeast and Southeast to not overexpose the details on the slopes and at the same time I need a stronger light from Northwest and Southwest to prevent any relief inversion effect.

In my mind I imagine that I am at a professional photography studio, I have placed on the table an actual three dimensional diorama of my area of study and I position the lighting equipment above it to adjust illumination before photoshooting!

The formula I ended up for Bryce Canyon is as follows:

( NW * 0.5 ) +
    ( NE * 0.1 ) +
        ( SE * 0.1 ) +
            ( S * 0.4 ) +
                ( SW * 0.25 )

I save the function chain as a new Raster Fuction in my ArcGIS Pro project and I click on the Create new layer button (Picture 5).

Picture 5: Producing the multi-directional hillshade.
Picture 5: Producing the multi-directional hillshade.

The entire process is running and results in a newly created multi-directional hillshade on the Contents pane (Picture 6).

Picture 6: The multi-directional hillshade.
Picture 6: The multi-directional hillshade.

I just created a custom multi-directional hillshade with full control of the illumination sources. I could cease the process here, but I want to introduce the multi-directional hillshade to Adobe Photoshop for further filtering, so I will export it as a TIFF file with its associated World file (Picture 7).

Picture 7: Exporting the multi-directional hillshade.
Picture 7: Exporting the multi-directional hillshade.

Artistic illumination

Time to apply a couple of image filters to slightly generalize and smooth the hillshade. I open Adobe Photoshop and I load the exported raster as a new layer with smart filters enabled (Picture 8).

Picture 8: Load the multi-directional hillshade in Adobe Photoshop.
Picture 8: Load the multi-directional hillshade in Adobe Photoshop.

I firstly apply a Median filter with a small radius, just 1 pixel, to subltly generalize and remove small discontinuities from the hillshade’s surface (Picture 9).

Picture 9: Median filter, subtly applied.
Picture 9: Median filter, subtly applied.

I then apply an Oil Paint filter, also slightly, to further generalize, while at the same time, maintaining ridges and linear features (Picture 10).

Picture 10: Oil Paint Filter, subtly applied.
Picture 10: Oil Paint Filter, subtly applied.

The Median and Oil Paint filters will do a good job in generalizing the terrain, without provoking any blur effect, but ridgelines or other lines of the terrain might lose some of their sharpness.

To maintain the sharpness I apply a High Pass filter which detects edges and linear features on the image (Picture 11).

Picture 11: High Pass filter, subtly applied.
Picture 11: High Pass filter, subtly applied.

I then select the Overlay blend mode for the High Pass filter to blend with the other two filters below it. Overlay will produce a nice contrast and will accentuate the ridgelines and other lines of the terrain (Picture 12).

For more contrast (after all this is an artistic approach and a matter of personal taste) I could have chosen a Hard Light or even a Linear Light blend mode on the High Pass filter.

Picture 12: Overlay blend mode on the High Pass filter.
Picture 12: Overlay blend mode on the High Pass filter.

Final touch is to adjust the relative illumination of the overall hillshade with a Levels adjustment layer (Picture 13).

Picture 13: Levels adjustment.
Picture 13: Levels adjustment.

The recipe I applied is illustrated at the following tables (Table 2 and 3).

FilterParameters
High PassRadius 2.0 + Blending Mode: Overlay
Oil PaintStylization 1.0, Cleanliness 1.0, Scale 0.1, Bristle Detail 0.0, Lighting: disabled
MedianRadius 1
Table 2: The image filters recipe in Adobe Photoshop.
AdjustmentParameters
LevelsRGB: Black 10, Midtones 1.20, White 250 + Output Levels: Black 10, White 255
Table 3: The Levels adjustment recipe in Adobe Photoshop.

Frame the Artwork

I export the filtered hillshade from Adobe Photoshop in a TIFF format without layers and I save it at the same folder where I had previously saved the unfiltered version and with the same name (Picture 14). That folder also contains the associated World file.

Picture 14: Export the filtered hillshade from Adobe Photoshop.
Picture 14: Export the filtered hillshade from Adobe Photoshop.

I then load it in ArcGIS Pro, where I expect to see it in its correct spatial context, as dictated by the World file (Picture 15).

Picture 15: The filtered hillshade in ArcGIS Pro.
Picture 15: The filtered hillshade in ArcGIS Pro.

In ArcGIS Pro I can further symbolize the filtered hillshade appropriately and combine it with other layers for map production etc.

Epilogue

This is how I produce a custom multi-directional shaded relief with manually combining different illumination sources. A much more detailed description of this approach can be found in my blog post Shadowplay.

Keep in mind that every place in the World is different, hence the recipes and formulas and all other parameters that I used to produce the shaded relief for Bryce Canyon, most probably will not be suitable for another area on the Globe.

I have uploaded a very high resolution version of the final shaded relief of Bryce Canyon on my online directory of resources and maps, from where you may download it and explore it under a CC BY-NC-ND 4.0 licence. The scale of its source resolution is 1:11,339 (calculated in ArcGIS Pro) and its cell size is 1 meter. It may scale up to 1:2,000 before starting to pixelate. Give it a try (and send feedback)!

Thank you for reading!

Kindest regards from Crete, Greece.

Spiros