Sunday, 2 March 2014

Tanaka Contours in ArcMap 10.2

Create Tanaka Contours in ArcMap 


Background


As part of some development work I've been doing for an advanced Geovisualization course I'm teaching, I had to come up with a simple way of creating Illuminated contours (a.k.a Tanaka Contours) in ArcMap. There are a few methods out there that use more sophisticated math for computing the shade values on the contours.

There is an ArcNews Article by Patrick J. Kennelly, and A. Jon Kimerling, that outlines several advanced cartographic methods (but does not provide detailed steps). Also, a blog post by Josh Ryan shows detailed steps for computing Tanaka Contours, but involves some robust raster algebra which probably produces 'truer' results.  I wanted as simple a method as possible, so have forgone the advanced math on hillshades in favour of simply using aspect.

Before diving in, it's important to note results will be dependent on data. Contour interval, DEM resolution and final display scale all factor in to your results. Experiment on a small data subset first. Interestingly, you'll get better results with a more generalized DEM and a higher contour interval. Smooth contours also work best.

This blog outlines some basic steps that can be done in ArcMap to generate Tanaka Contours. While I developed this in 10.2, I see no reason why it wouldn't work in earlier versions - nothing fancy here. These steps are only a guideline - users may want to refine the steps, and perform further data refinements, generalizations and also explore other symbolization options. You'll need either the Spatial Analyst or 3D Analyst extension for some of these steps.

Of course, if someone was keen, all this could be strung together in a Model Builder Model, but I wanted my students to go through the steps.

Steps


Start with a Raster DEM. Here's one you can use for Mt St. Helens. If desired contour lines already exist, skip to step #3

1. Generate contours in Spatial or 3D using "Contour" GP tool. Select desired interval…

2. (Optional but recommended) Smooth the generated contours using the “Smooth Lines” GP tool. You may want to test the smoothing tolerance..

3. Generate aspect surface using the "Aspect" GP tool. Results will be added as classified raster.


4. Export aspect surface - right click on layer, and choose Data > Export Data. Be sure to check "Use Renderer" (Note: you could also use the Spatial Analyst "Reclassify" GP tool, but since the data is already reclassified in the TOC, I just use Data > Export). 


5. Convert new raster to polygons using "Raster to Polygon" GP tool. Caution, this can take a long time for large areas and/or fine resolution DEMs.


6. Perform a spatial intersect between the contours and the aspect polygons using the “Intersect” GP tool. This will create new contours, with the classified aspect as an attribute of each new segment. Be sure to select “LINE” for the Output Type…



7. Symbolize the final line feature class. You will have an attribute called “gridcode” which you need to symbolize by.  It contains values from 1 to 9.  Use the table below to set the symbolized values for a grayscale map.  You can modify these to use other colours or even use line widths

“gridcode” value
Direction (reference)
Colour (gray)
Line width
(any colour)
1
N (0+)
10% Gray
0.50 pt
2
NE
30% Gray
1.00 pt
3
E
50% Gray
2.00 pt
4
SE
70% Gray
3.00 pt
5
S
50% Gray
2.00 pt
6
SW
30% Gray
1.00 pt
7
W
10% Gray
0.50 pt
8
NW
White
0.10 pt
9
N (360-)
10% Gray
0.50 pt

Your "Symbology" tab for the "Layer Properties" should look something like the examples below. These were done using a DEM for Mt St. Helens.

Using the gray shading method, you'll have symbology that looks like this...
And will give a map that looks something like this when placed on top of the symbolized original DEM (try setting the layer transparency to 40%)...

If you choose to vary the contours by line thickness, you'll have symbology that looks like this. I'm using a brown line colour here, and varying the thickness as per the table above.  The shade of brown here is Esri's "Leather Brown" (R:137 G:112 B:68)...
This gives you a map that looks something like this when placed on top of the symbolized original DEM (try setting the layer transparency to 40%)...

To reiterate, Contour interval, DEM resolution and final display scale all factor in to your results. Experiment!