Prologue
Kilauea is an active shield volcano in the Hawaiian Islands. It has been the most active of the five volcanoes that together form the island of Hawaii and its current eruption began on 20 December 2020.
In 23 December 2020, Tom Patterson announced on Twitter the release of the Kilauea 1m DEM on the Sample Elevation Models webpage. Fascinated as I was, I couldn’t (and why should I?) resist the temptation to grab it and produce a shaded relief out of it.
The first step I always take before start designing anything, is to understand the nature of the area I am about to map. I have a bachelor in geology with specialization in geodiversity and geoheritage, hence I have learned that understanding the geomorphology of my study area and all the specific earth procedures that shape it, is key to adjust my design to reveal its unique characteristics.
Eventually, I spent some time on the internet reading and learning things about Hawaiian volcanic islands and Kilauea volcano in particular. I found out that they are far different than the volcanoes I have visited so far in Greece, like Santorini for instance. I also spent sufficient time examining the DEM of Kilauea itself. I realised that the relief of that area does not include large slopes, mountain tops, long canyons etc.
I performed classic hillshade techniques in both ArcGIS Pro and QGIS/GRASS which provided satisfactory results, but I was feeling that they were not capable of depicting 100% realistically that specific relief. I also tried texture shading in QGIS which again was impressive, but I thought it was losing information on the vast flat areas.
I then thought about trying something completely different and irrelevant with common hillshading techniques and I started flirting with the Edge Detection approach. After all, what’s the point of not experimenting and exploring new ways? Uncle Albert once said (or maybe not!): “Insanity is doing the same thing over and over again and expecting different results”.
Edge Detection in ArcGIS Pro
Edge detection in digital image processing is a classic convolution filter based on a kernel. It actually detects for discontinuities, the so called edges, on the adjacent pixel values (or digital numbers) of an image. The kernel edge detector scans the whole image and it recalculates each pixel’s value, producing a new raster out of these recalculated values.
Let’s put this on practise! I start a new project in ArcGIS Pro and I load the DEM of Kilauea volcano on my map (Picture 1).

The Raster Functions in ArcGIS Pro include the precious Convolution function which comes with ready-to-use kernels, as well as with the option to introduce my own kernel.
So, I open the Function Editor, available at the Imagery contextual tab, and I create a new Raster function template, which will hold all the necessary edge detection functions and their weighted combination.
I then drag and drop eight different convolution functions (Picture 2). Six of them are already included at the Type drop-down list of the Convolution Properties pane, which are the:
- Gradient North (N),
- Gradient North-East (NE),
- Gradient East (E),
- Gradient South (S),
- Gradient West (W) and
- Gradient North-West (NW).

The Gradient South-East (SE) and Gradient South-East (SW) are not included in the Type drop-down list, so I calculate them manually by selecting the User Defined kernel, available at the end of the same list. The kernels of each one of the eight edge detectors are:
Gradient North
- -1
- 0
- 1
- -2
- 0
- 2
- -1
- 0
- 1
Gradient NorthEast
- 0
- 1
- 2
- -1
- 0
- 1
- -2
- -1
- 0
Gradient East
- 1
- 2
- 1
- 0
- 0
- 0
- -1
- -2
- -1
Gradient SouthEast
- 2
- 1
- 0
- 1
- 0
- -1
- 0
- -1
- -2
Gradient South
- 1
- 0
- -1
- 2
- 0
- -2
- 1
- 0
- -1
Gradient SouthWest
- 0
- -1
- -2
- 1
- 0
- -1
- 1
- 2
- 0
Gradient West
- -1
- -2
- -1
- 0
- 0
- 0
- 1
- 2
- 1
Gradient NorthWest
- -2
- -1
- 0
- -1
- 0
- 1
- 0
- 1
- 2
I then drag the Calculator function, I drop it in the Function Editor and I connect it with the eight Convolution functions. At the Calculator Properties pane I define each kernel as variable and at the Expression window I write the following formula:
( N * 0.1 ) +
( NE * 0.05 ) +
( E * 0.3 ) +
( SE * 0 ) +
( S * 0.2 ) +
( SW * 0 ) +
( W * 0.3 ) +
( NW * 0.3 )
What I actually do is that I sum up all the edge detection kernels, but at the same time I decrease each one of them with a weight, so not all of them have the same influence at the combined detector (Picture 3).

I name the new function I just created as “EdgeDetection” and I save it in my current project. Then I hit the magic Create new layer button (Picture 4)!

The whole function chain is starting to run, it applies all eight kernels upon the DEM and then it calculates their weighted sum based on my formula. The result is as follows (Picture 5).

The value of each weight is subjective. I determine the weights with a little trial and error and by running the process as many times as necessary to end up with a desired result.
Note that the formula proposed above may not be suitable for another region. Edge detection may not provide a good result in a more mountainous area or when derived from a DEM with low resolution.
Filtering in Adobe Photoshop
Next step is to export the EdgeDetection raster for further filtering in Adobe Photoshop. In order to have it working properly in Photoshop I have to make sure that the Use Rendered and Force RGB options are both checked at the Renderer Settings (Picture 6).

A very well explained and detailed step-by-step process of filtering terrain rasters in Adobe Photoshop is described in a previous blog post I wrote, named Shadowplay.
For the Kilauea edge detection raster I only apply two filters. Firstly, I apply a subtle Median filter with 1 pixel radius, only to generalize it a little (Picture 7).

I also apply a light Oil Paint filter to slightly smooth the edges and to generalize a little more the raster (Picture 8).

Rendering in ArcGIS Pro
When finished with filtering in Adobe Photoshop, I load the filtered EdgeDetection raster to ArcGIS Pro. Provided I didn’t delete the World file of my initial EdgeDetection raster, it will be placed exactly at its proper extent. In the Shadowplay blog post I very meticulously describe the procedure from ArcGIS Pro to Adobe Photoshop and back!
At the Appearence contextual tab for raster layers I adjust the Enhancement parameters (Brightness -4 and Gamma 1.4) and for Symbology I choose Stretch. For Stretch Type I select None and for Resampling Type I select Cubic. I then create a dark Continuous Color Scheme at the Color Scheme Editor (Picture 9).

The Color Scheme is simple, as shown at the following table (Table 1).
Color (CMYK) | Transparency | Position |
---|---|---|
95, 100, 90, 2 | 0 | 0 |
95, 100, 90, 2 | 100 | 100 |
And the EdgeDetection raster layer is all set up (Picture 10)!

Enhance the Shadows
So far edge detection has done a very good job on the 1m DEM (I think). The resulting raster has managed to capture all the details of this peculiar landscape. Still for a more realistic outcome I will enhance somehow the natural shadows.
At the formula of the weighted sum of the eight different edge detectors, I intentionally assigned larger weight values at those with NorthWest and West kernels. This resulted with an overall Southwest – Northeast orientation of the highlights of the final raster, implying a light source from Northwest (Picture 10). Therefore, I need to produce a hillshade with a light source from that direction.
I start a new Hillshade function to produce the hillshade, which will be used for the shadows. I select Traditional for Hillshade Type and I assign 284 degrees for Azimuth and 40 degrees for Altitude. I also assign the value 2 for the Z Factor to produce more robust shadows (Picture 11).

Now, where did I find these values?
Well, I never assign random Azimuth/Altitude values on any hillshade. I instead use real-World’s Sun position of a given time and place with an incredible app named SunCalc! So, I position the map in SunCalc at the center of the Kilauea DEM (-155.2685, 19.4098) and I select the summer solstice date (21 June 2019) at 4pm for the Sun position. The app returns the values 284/40 which I then use for my hillshade in ArcGIS Pro (Picture 12)!

I follow the same process as before and I export the Hillshade for further filtering in Photoshop, where I apply the exact same filters (Median and Oil Paint), only this time I add one more, the High Pass Filter. This will sharpen a lot the Hillshade and will produce intense contrast, which will be useful later when blended with the EdgeDetection layer. I also alter a little bit the Levels (Picture 13).

I load the filtered Hillshade in ArcGIS Pro and I follow the same steps as before (Picture 14).

I don’t want the Hillshade to prevail, so I style it with a light color scheme (Table 2).
Color (CMYK) | Transparency | Position |
---|---|---|
95, 100, 90, 2 | 60 | 0 |
95, 100, 90, 2 | 100 | 100 |
Now I drag the EdgeDetection raster on top of the Hillshade, at the Contents pane, and I change its blend mode to Multiply at the Layer Blend drop-down list (Picture 15).
Blend modes in ArcGIS Pro, introduced at the 2.7 release, is a very serious advancement and it unlocks infinite new possibilities in cartography.
The EdgeDetection raster did not lose any of its legibility, but at the same time the Hillshade raster slighlty added some shadows to enhance the sense of depth and texture (Picture 15).

Adding Color
Time for some color! I drag the Kilauea DEM layer (the Elevation layer) at the top of the Contents pane, above all layers, and I open its Symbology pane. The colors I am about to add will represent elevation and I want to have the best possible control to the color scheme, to ensure I will capture all altitudes.
To do this I select Classify at the Primary symbology drop-down list, I choose Defined Interval for Method and I write 20 for the Interval size. This will break the color scheme to elevation classes with 20 meters interval (Picture 16).

Since this is a volcano and it has a prominent active crater, I find a good idea to give red-brown hues for lower elevation (thus the crater, supposed to be filled with lava) and yellow-green hues for higher elevation (the ground around the crater, at the slopes of the volcanic edifice). The Color Scheme, I end up with, is visually illustrated on Gradient 1.
The color values in CMYK mode, as well as the Transparency and Position values of the Color Scheme are presented in the following Table 3.
Color (CMYK) | Transparency | Position |
---|---|---|
20, 50, 60, 2 | 0 | 0 |
6, 26, 44, 0 | 0 | 35 |
4, 8, 28, 0 | 0 | 75 |
26, 14, 32, 4 | 0 | 100 |
The actual magic happens when I select Color at the Layer Blend option of the Elevation layer (Picture 17).

Before blend modes (which means only a couple of week ago!) this was impossible. I had to either select another color scheme with serious transparency, or to render Elevation below the EdgeDetection and Hillshade layers. Even other, more cumbersome, techniques, like introducing these layers to Photoshop and perform blending there.
I find the final result really impressive. Blend modes managed to effectively tint the overall terrain without washing-out any detail of the underneath EdgeDetection and Hillshade layers (Picture 18).

Epilogue
Producing this terrain was a great learning experience. Firstly, I applied something I had never tried before, the edge detection kernels on a DEM, which for the occasion of Kilauea volcano did a very good job capturing and depicting all minor and major details of this peculiar landform.
I then investigated and applied some blend modes, for the first time, directly in ArcGIS Pro. I find this to be an enormous benefit for the overall cartographic procedure and it really makes me wonder if I will ever exaust all the possible combinations and results of this great advancement.
At the end of this blog post I include a brief Slideshow focused on a few details. I have also uploaded a very high resolution version of the final terrain 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.
I hope you managed to reach the end of this post and you enjoyed reading it as much as I enjoyed writing it.
Kindest regards from Crete, Greece.
Spiros