By Jeffery S. Nighbert, Senior Technical Specialist for GIS, Bureau of Land Management
Hi, folks— I have never blogged before so forgive me if I ramble on too much. I have been working with Esri to convert ideas and snippets of code from my past work presented at the Esri International User Conferences into a usable set of tools for all to use. This is a great honor indeed, and I thank them for the opportunity. My ideas on landscape presentation have now taken on a life of their own as a set of tools in an ArcToolbox that you can download from Mapping Center. I hope others will find them easy and fun to use. To learn more about them you can read two blog entries that were posted earlier: Introducing the ArcGIS Bump Map Tools and Symbolizing the Bump Map.
Using the documentation and example data that is provided with the ArcGIS bump map scripts and models, you should be able to easily create your own bump maps! Then you can use the results as part of a beautiful cartographic presentation. In this blog, I give you some idea of where all this work started and how we came to start building the tools.
So where did the idea of bump mapping for cartography come from?
As an artist, I love to look at landscapes and maps of landscapes. I think landscapes are captivating. One day, as I was driving through the woods checking out the beautiful forested scenery, I became shocked at the number of clear cuts in the forest and other human-created blemishes on the land. Back at the office, I began to look closely at the shaded relief backdrops I had created for several maps. “Hey, that shaded relief sure makes the landscape look so smooth and flawless,” I thought. “I wonder if there is a way to express what is really going on out there?” So the idea hit me that I could slightly alter the elevations of the DEM with information derived from satellite imagery before I created shaded relief grid, then subtly color those areas lighter where the clear cuts and other disturbances exist. Figure 1 shows you how I had previously been representing the landscape as “painted” relief, and Figure 2 shows how it looked when I modified the elevation values to add a bit of “texture” to the landscape.
Figure 1: Traditional “painted” relief.
Figure 2: “Modified” painted relief.
“Texturizing” land cover…
To me, this was an improvement, but I thought I could go further. I realized you could apply that same technique to visually distinguish roads, streams, boundaries, and other features in the landscape. But you would have to use different patterns and heights for the different land cover types and then color them differently in order for it to look realistic. So crops would get a small dense random bump pattern, and forests would get taller, less random bumps. I figured out how to program all this using the Arc Macro Language (AML) and the ArcGrid package for raster data.
Below is a matrix I used to plan out a map of the Three Sisters Peaks in the Cascade Range in Oregon – this gives you an idea of how the bumps could be varied for different land cover classes:
In the table, Material, Color, Texture and Light Reaction are characteristics that can be abstracted from land cover types. The first three items are self-evident, but the fourth item, Light Reaction, needs a little explanation. “Light reaction” refers to how light reacts to each surface material. Depending on the reaction, you can apply a post process micro-bump upon the bump mapped surface which can enhance the realism of the texture. For example, water and snow are very reflective, so the surface should be very smooth and would get no post process micro-bumping, whereas shrublands would receive a slight randomization of the bumped surface. Lava causes a very diffuse reaction to light, so you would apply a larger random bump pattern. Incorporating light reaction isn’t that important, but it was part of my process back then so I wanted to explain it now.
Here is an example extracted from the map I made. At this point, I had created the bumps, added them to the DEM, hillshaded the result, and then used transparent overlay to color the classified satellite of land cover:
Figure 3: “Texturized” land cover combined with hillshade and “painted” with classified satellite imagery.
Invention of landscape texture objects…
So, bump mapping techniques evolved from bumps for one (or collectively all) vegetation classes to different types of bumps for different vegetation classes. Although “texturizing” different landscape classes was a great idea, it had map scale limits. At large map scales, the textures because unrealistic and un-attractive. That’s when I thought it would be good to create impressions of individual trees or objects. There were limitations to developing this kind of landscape representation due to my own programming abilities and the grid data structure in which I was working (it only allowed for top-down viewing). But at the same time, conceptually I could create objects using simple trigonometry applied to a random pixel map. The objects I designed are shown below — a conifer, a hardwood, and rocks or buildings:
Figure 4: Landscape objects.
By this time, I was working in ArcGIS using the Spatial Analyst extension. With Raster Calculator, I could generate cones (as a random point pattern that was then “extruded” using the Euclidean Distance function).
Figure 5. A raster calculator statement used in Spatial Analyst to create cones.
I then added them to the elevation grid and created a hillshaded surface to make a cool map that was good-looking at a large scale and captured the impression of the land cover pretty well. This is different from the original technique which simply added or subtracted values to the elevation surface according to the land cover class they fell in. By using domes and cones to represent surface textures landscape patterns are more distinct and can be viewed at a larger map scale. Some people called it “Faux-DAR” because it reminded them of LiDAR (Light Detection And Ranging) images. Below is the final image with landscape objects:
Figure 6. Results obtained from bump mapping.
I felt this was a really neat way to think about portraying landscapes. You could use bump mapping to add a more realistic representation of the land cover to the terrain through texturization and coloration. The cartographer had control over the whole picture! Unfortunately, not everyone is totally into calculations and formulas, and these were needed to implement the early bump mapping methods I developed. I took many help calls from folks around the country asking for guidance and help. In addition, I had an error in the slide show presentation that contained my calculation statement, so that also caused problems. Soooooo, the idea was good, but the implementation was bad!
When Esri’s Mapping Center Team approached me about assisting them in making my work into a tool, I was all in favor of it. Once again—they honor a user by highlighting their work!
Now introducing the Bump Map Toolbox…
The new Bump Map toolbox can be downloaded from the Mapping Center – ArcGIS Resources – Models & Scripts page. The Bump Map model creates a raster that represents the combination of multiple “bumped” surfaces, each relating to a different type of vegetation. It also allows users to specify the parameters for each type of vegetation, including cones (for coniferous vegetation) or domes (for deciduous vegetation), as well as vegetation density (spacing), radius, and height. The model was built using two scripts that were written in the open source Python scripting language so they can be modified with ease. With this model, you can easily and quickly create more realistic hillshaded surfaces for vegetated areas.
Rajinder Nagi, developer of the toolbox, wrote a blog entry describing the suite of bump map resources. And I plan to give a talk this summer at the 2010 User Conference highlighting products and applications I have made using the new Bump Map Toolbox. So more information will be coming soon!