Digital Mapping Techniques '99 -- Workshop Proceedings
U.S. Geological Survey Open-File Report 99-386

Quaternary Landforms in Wisconsin - How Hillshading Can Be Used To Accentuate Topographic Features

By Chip Hankley

Wisconsin Geological and Natural History Survey
3817 Mineral Point Road
Madison, WI 53705-5100
Telephone: (608) 262-2320
Fax: (608) 262-8086

The topography of the land surface is a direct result of the type of geologic materials that underlie the surface and the geologic events and processes that acted on them. Therefore, the shape of the land surface can provide important clues to many aspects of the Earth's history.

In contrast to the dominant landforms in the mountainous regions of North America, where topographic relief can exceed 5,000 ft over relatively short distances, the central lowlands of the United States are characterized by relatively low relief topography. Elevations in Wisconsin vary by only 1,500 ft across the entire state, and so Wisconsin landforms tend to be smaller in scale and more difficult to view from a regional or statewide perspective. Glaciated and unglaciated regions dominate Wisconsin's topography, and there are topographic features that are unique to each region.

Throughout the past two million years, continental glaciers repeatedly flowed across much of what is now the northern United States. All but the southwestern quarter of Wisconsin has been covered by ice at different times; most of the glaciated part of the state was glaciated during the Wisconsin Glaciation (Clayton and others, 1991). As the ice sheets advanced and receded, features such as drumlins, eskers, and moraines were formed. Glacial activity was recent enough in many parts of the state to be the dominant influence on the modern landscape.

The effects of stream incision dominate the topography of southwestern Wisconsin, which was never glaciated. Years of drainage have worn down the surface into a highly dendritic network of water channels (Clayton and Attig, 1997).

When evaluating geologic history, a map that effectively displays the way in which topography differs from area to area is usually essential. Topography can be portrayed a number of ways: contour lines, oblique or stereo aerial photography, and shaded relief. Shaded relief maps provide a means of viewing topography that requires little or no interpretation. As an analytical tool, these maps can provide the geologist with a unique regional perspective of topography. The ease with which a shaded relief map can be interpreted also makes it an effective teaching tool. The advent of digital geographic information systems, along with readily available digital elevation data, has made the creation of shaded relief maps fairly straightforward, not the highly interpretive and onerous task it once was. The subtle nature of Wisconsin's topographic variations, especially in the glaciated regions, necessitates the use of a highly detailed elevation model to derive an effective shaded relief map.

Figure 1

Figure 1. HSV color model (reprinted with permission from ³Specifying Color,² ESRI ArcDoc 7.2.1).

Until recently, statewide digital elevation data were available only in 500-meter and 75-meter raster format; these data were too coarse to show the fine topographic detail that dominates the landscape in the glaciated parts of the state. Complete 30-meter USGS DEM coverage of the state recently became available. The Wisconsin Department of Natural Resources (DNR) compiled the approximately 1,200 30-meter DEMs that make up the state into a seamless grid in Arc/Info.

To derive the hillshading on this map, I used the techniques described by Haugerud and Greenberg (1998). Their methods involve the use of the GRIDCOMPOSITE command with the HSV option in ARCPLOT. This command makes use of the HSV color model, where hue ranges from 0 to 360, saturation from 0 to 100, and value from 0 to 100, as shown in Figure 1. Essentially, GRIDCOMPOSITE combines three grids representing HUE, SATURATION, and VALUE into a composite image. The combination of the analytical power of GRID with the multi-band imaging flexibility of the HSV model results in an effective visual technique.

For this map I wanted the color to be dependent upon elevation. I decided to use a range from green at the lowest elevations to orange at the highest elevations.

I created a HUE grid where the HUE values stretched linearly from green at the lowest elevations to orange at the highest elevation. I had to do the same with the SATURATION grid, only using the SATURATION values that represented my colors. I used the following formulas in GRID:





[HLOW] is the Hue component of the HSV color representing the lowest elevations;

[HHIGH] is the Hue component of the HSV color representing the highest elevations;

[SLOW] is the Saturation component of the HSV color representing the lowest elevations;

[SHIGH] is the Saturation component of the HSV color representing the highest elevations;

DEMMIN is the minimum elevation; and

DEMMAX is the maximum elevation.

In the HSV color model, color is mainly dependent upon the H and the S values (just as in CMYK, color is mainly a function of C, M, and Y). In this technique, the VALUE grid controls the hillshade effect. Consider that for any pixel of color specified by HUE and SATURATION, the VALUE component sets the amount of black. For instance, a HUE of 120 and a SATURATION of 50 will specify a medium light green. If the VALUE is 0, the resultant HSV color will be black. Similarly, if the VALUE is 100, the resultant color will be the medium light green with no black as a part of the color. This is the effect of shading - shaded areas are blacker than illuminated areas.

Haugerud and Greenberg (1998) note that the contrast of most images produced by the HILLSHADE command in Arc/Info is not suitable for use in this process. They suggest modifying the standard hillshade via the following technique:

&describe <hill_shade_grid>
xxg1 = (<hill_shade_grid> - [Value GRD$MEAN]) * 15 / [value GRD$STDV] + 95)

Because GRIDS in Arc/Info are always rectangular, I had to manipulate the NODATA cells so that they would not print black. I found that the easiest way to do this was to convert the NODATA areas of the HUE, SATURATION, and VALUE grids into a white color. In HSV, white is any H value, S = 0, and V = 100. Using conditional statements in GRID, I converted the values of the HUE, SATURATION, and VALUE grids to their white equivalent wherever the original DEM was NODATA.

The final step in this process was to convert the three grids into a geo-referenced TIF image. The geo-referenced TIF draws faster than the three grid composite and can be displayed in ArcView. To create the image from my HUE, SATURATION, and VALUE grids, I first created RED, BLUE, and GREEN grids using the HSV2RED, HSV2BLUE, and HSV2GREEN commands. I then combined the three grids into a stack using the MAKESTACK command using the LIST option. Finally, I used the GRIDIMAGE command to convert the STACK into a TIF image.

I have attached the AML I used for this process in the appendix.


Arc/Info 7.2.1- ARCDOC, 1997 [Computer Program], available from: Environmental Systems Research Institute, Redlands, CA.

Clayton, Lee, and Attig, J.W., 1997, Pleistocene Geology of Dane County, Wisconsin: Wisconsin Geological and Natural History Survey Bulletin 95, 64 p.

Clayton, Lee, Attig J.W., Mickelson, D.M., and Johnson, M.D., 1991, Glaciation of Wisconsin: Wisconsin Geological and Natural History Survey Educational Series 36, (revised 1992), 4 p.

Haugerud, Ralph, and Greenberg, H.M., 1998, Recipes for Digital Cartography: Cooking with DEMs, in Soller, D.R., ed., Digital Mapping Techniques '98--Workshop Proceedings: U.S. Geological Survey Open File Report 98-487, p. 119-126,








/* Use this program to generate a colored shaded relief

/* image. Color will be a function of elevation.

/* The user is required to supply the HSV color equivalents

/* of a LOW elevation color and a HIGH elevation color




/* Primary Developers: Chip Hankley - GIS Specialist

/* Wisconsin Geological and

/* Natural History Survey


/* Derived from work by Ralph A. Haugerud(1) and

/* Harvey Greenberg(2)


/* (1) U.S. Geological Survey at University of Washington, Box

/* 351310, Seattle, WA 98195,

/* (2) Dept. of Geological Sciences, University of Washington,

/* Box 351310, Seattle, WA 98195,




/* Date of Initial Coding: 8/17/98

/* Date of Last Edit: 3/25/99

/* Combined several different AMLs into one coherent module

/* using routines. This should run on all platforms.





/* Available from: ARC

/* Arguments: ZGrid, Hue_l, Sat_l, Hue_h, Sat_h


/* ZGrid: the DEM !!!NOTE!!! The DEM must be FLOATING POINT

/* Hue_l: Hue of the LOW elevation color

/* Sat_l: Saturation of the LOW elevation color

/* Hue_h: Hue of the HIGH elevation color

/* Sat_h: Saturation of the HIGH elevation color




/* Program Setup

&args ZGrid Hue_l Sat_l Hue_h Sat_h

&severity &error &routine bailout

&term 9999

display 9999


GRID /* start GRID

&describe %ZGrid%

&sv cell = %grd$dx%


&call v

&call h

&call s

&call draw

&call image

&call exit





&routine v

&sv azim = 315

&sv inclin = 45

initial = hillshade(%ZGrid%,%azim%, %inclin%, shade)

&describe initial

xxg1 = (initial - [Value GRD$MEAN]) * 15 / [value GRD$STDV] + 95

v = con(xxg1 <= 70, 70, xxg1 <= 99, int(xxg1), isnull(xxg1), 99, 99)

kill (!xxg1 initial!) all

v1 = con(isnull(v), 100, v)

kill v all

rename v1 v

setwindow v



&routine h

&describe %ZGrid%

h = %hue_l% - (%hue_l% - %hue_h%) * ((%ZGrid% - %grd$zmin%)/(%grd$zmax% - %grd$zmin%))

h1 = con(isnull(h), 0, h)

kill h

rename h1 h



&routine s

&describe %ZGrid%

s = %sat_l% - (%sat_l% - %sat_h%) * ((%ZGrid% - %grd$zmin%)/(%grd$zmax% - %grd$zmin%))

s1 = con(isnull(s), 0, s)

kill s

rename s1 s



&routine draw

mape v

gridcomposite hsv h s v



&routine image

&sv nm = dem_hill

r = hsv2red(h, s, v)

g = hsv2green(h, s, v)

b = hsv2blue(h, s, v)

makestack stack1 list r g b

arc gridimage stack1 # %nm% tiff

kill stack1 all



&routine exit

&if [show program] ne ARC &then q

&if [EXISTS h -GRID] &then

kill h all

&if [EXISTS s -GRID] &then

kill s all

&if [EXISTS v -GRID] &then

kill v all



/* Perform Cleanup actions if Program Fails

&routine bailout

&severity &error &fail

&call exit

&return &error Bailing out of HSV.aml

Return to Table of Contents

This site is
Maintained by the Eastern Publications Group Web Team
Last revised 11-2-99