BCL Thumb

We recently received this question on Ask a Cartographer:

"I am using a bar chart with 2 data fields to display data on my map. In the legend, I have my 2 data fields displayed, and there is a random number (not sure if it is a mean or median of one of my data columns) which is also displayed in the legend, and I cannot remove it. I'd like to remove this random number from the legend. Can anyone help?"

In this blog post, we'll go into a little more detail about charts and their legends since this seems to be a question that has been raised before (http://forums.esri.com/Thread.asp?c=93&f=989&t=273493 and http://forums.esri.com/Thread.asp?c=93&f=1730&t=262441).

There is a bit of online help about the charts and their legends. In this blog, we’ll focus on bar charts and their legends. First, let’s see what it is composed of.

BCL All

By default, when you insert a bar chart legend, you will get a title, a chart symbol and a number, as well as the legend patches and their labels. The titles and the legend patches/labels are commonly used in other ArcGIS legends so we won’t focus on them here. The chart symbol and number, however, are unique to chart legends, so let’s look at them in a bit more detail here.

The chart symbol is composed of bars that represent each of your classes as well as a label. The number next to the chart symbol relates value that the longest bar in the chart represents. The shorter bar in the chart symbol represents half that value. The chart symbol is scaled to equal half the size of the largest value for the attribute that relates to the longest bar. For example, on my map, the highest value for a state’s 2007 population is 37,483,448 – half that is 18,741,724. The chart symbol is scaled to the nearest whole million (19,000,000).

The chart symbol and value in the legend also appear in the table of contents.

In the process of writing this blog, I learned that there are only a few things you can do to alter the look of a chart legend if you want to keep it "live-linked" (that is, it updates automatically when you make changes to your symbology). I’ll explain them here, and then towards the end of this blog entry, I’ll tell you have you can enhance the legend even more if you convert it to graphics and lose the live link.

If you do not want to display the number next to the chart symbol, you should probably also eliminate the chart symbol from your legend -- otherwise people will wonder what it means, and it won't have a label to describe it.

BCL Patches

Here is how you can do modify the legend to delete the chart symbol and its label:

  1. After you have inserted the legend, right click it to see its properties.
  2. Then on the Items tab, in the Legend Items right pane at the top right, right click they legend item used to make this legend, click Properties and click the General tab.
  3. At the bottom is a drop down arrow next to "Only show classes from this heading". You will probably see three options: "All" and two "all other values". The first "all other values" relates to the legend patches and their labels (population for the years 2000 and 2007, on my map), and the second "all other values" relates to the chart symbol and its label (19,000,000, on my map). Click the second "all other values" and click OK to accept all the changes.

You can follow similar steps to eliminate the patches and their labels from your legend – simply repeat all the steps above, but select the first "all other values” instead".

BCL Patches

Now, if you want to further modify the legend, you will have to convert it to graphics. When you do this, you lose the live link to your map data but you have much more control over the appearance of the legend. To convert to graphics, simply right click the legend and select "Convert to graphics".

BCL Convert to Graphics

While it is selected, right click again and select Ungroup.

BCL Ungroup

This ungroups the legend elements.

BCL Ungroup 1

Notice that some of the elements are still grouped, like the legend patches and their labels. While the elements are still selected, right click again and select Ungroup one more time.

BCL Ungroup 2

Now nearly all the legend elements are ungrouped. Notice, however, chart symbol is still grouped. If the legend symbol is not scaled to a number that you like – for example, I would rather that mine were scaled to 20,000,000 than 19,000,000 – then select that legend element and perform one last Ungroup.

BCL Ungroup 3

You will find that there is an un-symbolized background element that you can simple delete at this point – it is highlighted with the green box in the example above. When you select the remaining legend element – the part that contains the bars – you will notice that you can not ungroup it and you cannot do much to alter its appearance. However, you CAN use it as a template to make the kind of legend you want to make.

The first thing you might want to do is to resize it to a number that makes more sense. Once you do that, you can also add segments to the bar to indicate intermediate values. Here’s how you do that. First, draw a rectangle that is the same size as the largest bar and symbolize it the same way that the bar is symbolized (you can always review the settings you used in the layer properties – this is especially important if you changed the layer symbology after converting the legend to graphics.)

The next thing to do is to figure out how high you really want the bar to be – relative to a number that you want to show. For example, for my map, I would rather show what the bar looks like for a value of 20,0000,000 (and increments thereof), than for 19,000,000. So simply use this formula:

The ratio between the value you want the bar to show to the value currently shown by the bar, times 100. For example, (20,000,000 / 19,000,000) * 100 = 1.05.

Alternatively, maybe I want to show a value of 10,000,000, in which case the formula would be (10,000,000 / 19,000,000) * 100 = 52.63.

These are the percentage values you will input for the Height value to rescale the bar. In the example below, I used the formula above to scale the bar to 20,000,000.

BCL Rescale

Now copy and paste the bar and use the Height value to divide that in half (input a value of 50) to get a bar that represents 10,000,000. If I place this on top of my 20,000,000 bar and use guides to make sure they align along the bottom and left, then I am assured that I have an exact increment of my bar. I can do this again to get values for 5,000,000 and even 1,000,000 (rescale a copy of the 5,000,000 bar to 20% of its height.)

BCL 20-1M

Now all you have to do is add the legend text. Note that a good rule of thumb is to avoid any extra ink on the page – you can do this in part by eliminating the many zeros in the numbers and adding “in millions” to the legend title. If you want to show the legend patches and their labels, you cans imply modify the legend elements that you ungrouped earlier. Note that you should ALWAYS show legend elements exactly as they appear on the map, so do not change the width of the bars in the chart symbol or their colors. For consistency, I used the same width for my legend patches below though you could also use the more standard landscape orientation.

Also note my extensive use of guides – I find these really help when I am working with graphic elements. You may find they help you work with more accuracy and speed as well.

BCL Example

Here's how the legend looked on my final map.BCL Final Map

Thanks to David Barnes, ArcGIS Product Engineer (with a specialization in Page Layout), for his help with this blog entry!

Raster Clip thumb

I have been working on an online, multi-scale map of Yosemite National Park. This map will be incorporated into the World Topographic Map at map scales of approximately 1:9,000, 1:4,500, 1:2,000, and 1:1,000. From Yosemite National Park, we received elevation data at two grid cell resolutions: ten meter data for the entire park and 1 meter LiDAR data for seven or eight smaller areas within the park.

Figure 1 shows examples of these two data sets. The hillshade symbolized with the black to white color ramp was generated using the 10 meter DEM data, and the smaller extent symbolized with red tones was created using the LiDAR data.

Two Resolutions

Figure 1: Examples of the two sets of elevation data that were used to produce hillshades for the Yosemite National Park area.

For this map, I am applying a transparency to my hillshade data rather than the vegetation because when I display the other layers under the hillshade, I can better enhance the depiction of elevation. (See Figure 2.)

Varying the Order

Figure 2: Comparison of the vegetation and contour data displayed on top of the hillshade (left), and the hillshaded layer displayed on top of the vegetation and contour data (right)

As you can imagine, if I have two sets of hillshade data that I am displaying transparently with other layers of information displayed underneath, the transparency becomes too opaque in areas where I have both hillshade data sets. The layers I am displaying under the hillshades become obscured and, from a map reader’s viewpoint, difficult to read. Also, as seen in Figure 3, the color of the features change significantly when there are two hillshades being drawn on top of them. This causes the symbology across the map to vary when I really want it to be consistent.

Compare Colors

Figure 3: Comparison of vegetation and contour data displayed underneath the two hillshades (left), and vegetation and contour data displayed underneath only the LiDAR hillshade (right).

The solution to this problem is to clip the 10 meter hillshade where there is LiDAR data. The result is that the more detailed hillshade is displayed where the LiDAR data are available, and the coarser resolution DEM hillshade is displayed in all other areas.

The challenge with my data sets is two-fold: 1) The extents for the LIDAR data are irregular so I cannot just clip out regularly shaped rectangles, and 2) the raster data are at two different levels of resolution. Here's how you, too, can overcome these challenges to clip out rasters of varying resolutions and irregular extents.

Step 1: Enable Spatial Analyst

First, enable the Spatial Analyst extension (from the top bar menu, click Tools, then Extensions, then turn on Spatial Analyst.

Step 2: Add the data to your ArcMap document

Next, add the two hillshade datasets to your ArcMap document.

Step 3: Set the raster analysis environment settings

Before you go any further, you should check some important settings that relate to raster processing. On the top bar menu, click Tools, then Options. On the Geoprocessing tab, click the Environments… button to access the geoprocessing environment settings (Figure 4).

Environments Dialog

Figure 4: Accessing the geoprocessing environment settings.

Under General Settings, set the Extent to the coarser resolution 10 meter hillshade. Also set the Snap Raster to the 10 meter hillshade. Scroll down to find the options for Raster Analysis settings. Set the Cell Size to be the same as the coarser resolution DEM. Accept all these changes.

Step 4. Create a raster that represents the extent of the LiDAR data

In the Spatial Analyst toolbox, in the Math toolset, expand the Logical tools. The first tool you want to use is Is Null. What this tool does is to create a new output raster in which a value of 1 is assigned to cells whose value in the input raster is NoData and a value of 0 is assigned to cells that do have data.

The input raster for the IsNull tool is the LiDAR hillshade, and the output is whatever you want to call it – we called ours "IsNull_hd".

IsNull Dialog

Figure 5: The input parameters for the isNull tool.

Recall that we set the analysis extent earlier in the Environment Settings. The result will be 0 where there is LiDAR data and 1 where there is 10 meter data, and the extent will be the same as the coarser resolution hillshade data (Figure 6).

IsNull Results

Figure 6: The output from the IsNull operation.

Step 5. Shrink the raster that represents the extent of the LiDAR data

Using the IsNull output, we now have to use the Shrink tool (this is in the Spatial Analyst Toolbox in the Generalization toolset).

Note: The reason that to use the Shrink tool is because we are working with dataset that have two different resolution and we want to avoid an edge matching problem in the final output. We tested several methods and found that the Shrink tool provides the best solution.

The Input Raster for the Shrink tool is the IsNull output created in the previous step. The number of cells to shrink by is 1 – the same resolution as the coarser resolution hillshade (remember that we set the analysis cells size in the Raster Analysis settings). The zone value is 0 – this is the area where there is LiDAR data (Figure 7). The reason we are shrinking zone 0 is to make it a little smaller before the final step so we do not have gaps at the edges where the LiDAR data ends and the 10 meter data begins.

Shrink Dialog

Figure 7: The input parameters for the Shrink tool.

The result will appear similar to the original IsNull output, but if you look closely, the extent of the LiDAR area (black) is slightly smaller than the original IsNull raster (pink), as seen in Figure 8.

Shrink Results

Figure 8: Cells with a value 0 in the IsNull raster are displayed in pink. The output from the Shrink tool is displayed in black. Predictably, there is a difference in size of one cell (at the resolution of the coarser raster) along the edges of the LiDAR extent.

Step 6. "Clip" the shrunken LiDAR extent from the coarser resolution DEM

The next step is to use the Con (conditional statement) tool (this is in the Spatial Analyst toolbox in the Conditional toolset) to create a new coarser resolution DEM that does NOT include the extent of the LiDAR data. In essence, what this tool will do is to create a new raster that has a value of NoData in areas where there is LiDAR data and has the original DEM values in areas where there is no LiDAR data. The conditional statement is, "If the cell in the shrunken LiDAR raster is not 0 (that is, it does not contain elevation data), then assign the cell in the output raster the same value as in the original DEM; otherwise, assign it a value of NoData".

The input conditional raster is the output from the Shrink operation. The Expression is "Value > 0", and the Input true raster or constant value is the 10 meter hillshade (Figure 9).

Con Dialog

Figure 9 input parameters for the Con tool

The result is the 10 meter hillshade with a "hole" in it where the LiDAR data will be displayed instead (Figure 10).

Con Results

Figure 10: The output from the Con operation.

Step 7: Symbolize the output

The symbolized hillshades for the Yosemite National Park map are shown in Figure 11.

Symbolized Results

Figure 11: The final result in which the two hillshades are displayed with the same color ramp and the same level of transparency.

You can see a slight edge effect but this is a better alternative to a gap, which would happen if we did not shrink the output from the IsNull operation. Consider that we are displaying data UNDER the hillshade. If there were a gap, the colors of the underlying data would make the edge much more apparent. Our result mitigates that effect because although the one-pixel edge is darker, it has a transparency applied and the tonal variation will be softened by the color of the underlying data.

Since I am designing this map to be displayed at larger map scales, the overlap is preferred to white space. But, if you are using this approach for a map that will be displayed at a smaller map scale, the subtle difference may not be noticeable. If you decide the white space is not that apparent at the scale you are mapping, then you can skip Step 6 and go directly to Step 7.

Thanks to Nawajish Noman, Lead Product Engineer, and Aileen Buckley, Mapping Center Lead, for their help with this blog entry!

SWW Africa Thumb.png

I am working on a small scale map of the world that shows political boundaries over time from about 2000BC to the present. For this map, I want to show the world's water with a bit of variation along the coasts. This is desirable for a couple of reasons: 1) to better indicate where the islands are, and 2) to provide better figure-ground by separating the land areas visually from the ocean areas.

And easy way to do this is with a coastal vignette, as we have discussed previously (Symbolizing Shorelines). In this blog entry, I demonstrate an easy way to achieve this effect for the ocean waters of the world. There are a couple of things you have to do to "clean things up" if you are working at a global extent -- specifically, the vignettes will extend beyond the "edge of the world"!

To demonstrate how you can avoid this, I will use two feature classes that can be found in the data set that you can opt to load when you install the software – cntry92 and world30. Cntry92 has country boundaries and world30 is the graticule in 30 degree increments.

Please note that the map examples in this blog use the native projection of the data sets – WGS84. This is because I want you to be able to recognize the data sets off the DVD and I want you to clearly see the "edge of the world" problem. For our final map, we will instead be using a Robinson projection, and you should use an appropriate projection for your map as well.

SWW World30 and Cntry92

The first thing you need to do is to dissolve each of these feature classes. You will use the dissolved cntry92 to determine which areas are land and which are water for your coastal vignettes. You will use the dissolved world30 to determine the global extent.

SWW Dissolve Results

The next thing to do is create the coastal vignette – you can use the Buffer Tool for this step if you want to create uniform width buffers quickly and easily (you can add this tool to your ArcMap interface by clicking Tools off the top bar menu -> Customize -> Commands tab -> Tools category -> then drag the Buffer Wizard tool to any existing toolbar in your interface). Use cntry92 as the input. Set the number of buffers and the distance relative to your map scale. I am working at a scale of 1:150,000,000 to make a map of the world that will fit on a letter sized (8.5" x 11") page, so I used 10 buffers of 50 kilometers to create a 500 kilometer vignette along the coasts.

You should be able to determine the number of buffers by considering how smoothly you want the colors to vary on your map – the more buffers, the smoother the color gradation, but also the slower the processing and drawing time.  You can determine the distance in part by evaluating how much more easily you can see the islands.

Tip: You can use the Measure tool (use the sixth button to the right on the toolbar to choose the units you want to measure in) to get an idea of how far out to have the buffers extend.

Set the Buffer Wizard tool to create buffers so they are outside the polygons and include the inside.

SWW Buffer Type

Now use the Union tool in ArcToolbox (Analysis Tools -> Overlay) to combine the buffers with the extent of the dissolved world30 – the inputs are world30_Dissolve and the buffer tool output. Notice in your results that the buffers extend beyond the "edge of the world".

SWW Union Results

To take care of this problem, use the Clip tool (Analysis Tools -> Extract) to clip the union tool results to the extent of the dissolved world30 feature class.

SWW Clip Results

In an edit session, change the ToBufDist value from 0 to 1000 so that it is a larger number than the value for the last buffer. This will make applying the color ramp in the symbology easier.

To symbolize the results use the Categories – Unique Values renderer with ToBufDist as the value field.

SWW Symbology Tab

Use a blue to white color ramp with light blue for the smaller numbers.

SWW Colors

Right click a symbol to set the properties for all symbols and change the outline to No Color.

If you want, one last step would be to erase the land areas from the water with the vignettes because the each buffer actually includes all the land area that it buffers. To do this, use the Erase tool with the clipped buffer feature class as the input features and cntry92_Dissolve feature class as the erase featrues. If you intend to use any transparency with this layer, you will probably want to complete this last step.

Now you have a world water feature class that is ready to be used to symbolize your water whenever you need it!

SWW Water

This is what the results look like without cntry92 displayed.

SWW Results

This is what the results look like with cntry92 displayed.

SWW CloseUp

 This is a close up of an area with islands.

Bump Map thumb

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.

Bump Map Figure 1

Figure 1: Traditional "painted" relief.

Bump Map Figure 2

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:

Bump Map Table 1

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:

Bump Map Figure 3

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: 

Bump Map Figure 4

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).

Bump Map Figure 5

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:

Bump Map Figure 6

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!

Bump Map Symbology thumbnail

In our previous blog post, we introduced the ArcGIS Bump Map tools and described the structure of the model and how to run it. Now we want to talk about how you can symbolize the results and use additional tools to create stunning bump maps!  The Bump Map Tools can be downloaded from the ArcGIS Resources-Model & Scripts page of Mapping Center. Symbolizing the results of bump mapping involves three steps – 1) symbolizing the hillshade, 2) symbolizing the elevation with a hypsometric tint, and 3) symbolizing the vegetation overlay with a layer tint or other color. Symbolizing the hillshade is fairly straightforward and we have discussed many options for how you can do this in previous blog entries, so we won't go into that here. To symbolize the bumped surface, you have a number of options, so we do want to explore that in more detail. You have the potential to create a very realistic looking surface fairly easily!

In addition to the bump map surface, shown in Figure 1 below...

Bump Map bumps

Figure 1. The bump mapped hillshaded surface that is ready to be symbolized.

...the ArcGIS Bump Map model also produces rasters that you can use to symbolize the output. The rasters represent the areas that were bumped for each type of vegetation. So you can use them to symbolize the bumps by using different colors for the different types of vegetation.

The rasters are created automatically by the Bump Map model and written to the ToolData directory. Look in there after you run the model and you will see rasters called vegpat0, vegpat1, etc..., where vegpat0 corresponds to the first set of parameters for the vegetation input, vegpat1 corresponds to the second, and so on. There is one vegpat raster for every input vegetation pattern that you specified.

In the example below, each vegetation pattern is symbolized using a single hue. Conifers (vegpat0) are green and sedge (vegpat1) is brown.

Bump Map Symbology Unique Colors

Figure 2. Unique colors can be used to symbolize the different vegetation patterns.

Alternatively, you can use color ramps to symbolize the vegetation, as in the example below. Here the conifer pattern is symbolized using a green color ramp, and the sedge pattern is symbolized using a brown color ramp. Using the lighter color in the ramp for the higher values gives the impression that the tops of the bumps are illuminated and the lower areas are in more shadow.

Bump Map Symbology Color Ramps

Figure 3. Color ramps can also be used to symbolize the different types of vegetation.

At this point you can display the hillshaded bump map along with the elevation surface using a hypsometric layer tint, and then overlay the vegetation pattern rasters with transparency to color the bumps.

Bump Map Color Ramps with Bump Map

Figure 4. The colored vegetation rasters can be overlaid on the hypsometrically tinted elevation raster and the hillshaded bump map raster.

The No Bumps Script

You can use the "No Bumps" script to create a raster that represents the elevation of the surface where there are no bumps. You can use this raster to apply the hypsometric tint for elevation values in the "unbumped" areas. This will complement the colors you choose for the various vegetation classes. Both will then overlay the hillshaded bump map surface.  The No Bumps script is included in the Bump Map Tools toolbox.

Bump Map Symbology No Bumps

Figure 5. The output from the No Bumps script can be used with a hypsometric tint to represent the elevation of the surface.

As we mentioned in our previous blog post, a ToolData directory and a Scratch directory are automatically created for you when you unzip the Bump Map Tools download from the ArcGIS Resources-Model & Scripts page of Mapping Center.

Bump Map Directory Structure

You will need to use these workspaces for the No Bumps script. Note -- you must set the current workspace to the ToolData directory and the scratch workspace to the Scratch directory. Just make sure you navigate to or input these directory locations these when you run the script.

Once you run the No Bumps script, you can display all the rasters together to create a map of the elevation and the vegetation. In the example below,

  • the bump map raster is displayed on the bottom with no transparency,
  • the no bumps script output is displayed on top of that using a hypsometric layer tint with 40% transparency,
  • the conifer vegetation pattern is displayed on top of that using a single green color with 60% transparency,
  • and the sedge vegetation pattern is displayed on top of that using a single brown color also with 60% transparency.

Bump Map Symbology Unique Colors

Figure 6. The vegetation rasters symbolized with single colors are then overlaid on the hypsometrically tinted No Bumps raster and the hillshaded bump map raster.

You can see in the example below, which uses color ramps rather than single colors to symbolize the vegetation rasters, that the result is truer to yoru input colors than if you did not use the output from the No Bumps script for the hypsometric tint (as in Figure 4). This is because the bumped area would also be displayed with the underlying layer tint for elevation.

Bump Map Symbology Color Ramps

Figure 7. The vegetation rasters symbolized with color ramps are then overlaid on the hypsometrically tinted elevation No Bumps raster and the hillshaded bump map raster.

Note that you can download some really great looking hypsometric layer tints from Mapping Center on the ArcGIS Resources page under the Styles tab: Mapping Center: ArcGIS Resources - Styles.

One last note, in order to improve the display performance in ArcMap, you might want to consider "flattening the rasters". When you do this, you create one raster from all the rasters in the display. Then you can add that to your ArcMap document and remove all the others so you only have to display one raster image. Instructions for how to flatten the rasters are on the Mapping Center web site under the Flattening Overlaid Images description for the Crater Lake map.

Bump Map thumbnail

We are pleased to announce the release of the new ArcGIS Bump Map Tools! This new toolbox contains tools to help you create and symbolize "bump maps" which are used by cartographers to add texture to a hillshaded surface. This technique is most often used to give the illusion of a realistic vegetated surface, though Jeff Nighbert has also talked in some of his papers and presentations about using it to represent rocky outcrops and other surfaces as well. Jeff introduced the technique to ArcInfo users at the 2003 ESRI User Conference (see links to his papers and presentations on the Mapping Center – Other Resources page).

Bump mapping is done by first creating a random point pattern, using that pattern to create bumps as a raster surface, adding the bumped surface to the underlying DEM, hillshading the DEM, and then symbolizing the results.

Symbolizing the results includes two steps – 1) symbolizing the hillshade, and 2) symbolizing the vegetation overlay with a layer tint or other color. We will talk about this on our next blog post.

The bump map model that ESRI developed creates an output raster that represents the combination of multiple "bumped" surfaces, each relating to a different type of vegetation. It 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. You can use other outputs from the model to symbolize the bumped areas that were created by the model. In addition, we build a No Bumps script that you can use to symbolize the areas where there are no bumps in the texturized surface. We will talk more about symbolizing the bump map in our next blog entry.

With these resources, you can easily and quickly create and symbolize data that gives a more realistic impression of hillshaded vegetated surfaces.

Let's look the Bump Map model in a little more detail.

How the model is structured

The model was built using two scripts "Bump Map Script - Part 1" and "Bump Map Script - Part 2", where Part 1 creates the random point pattern(s) based on user defined inputs about how the bumps for the vegetation should appear, and Part 2 creates the bumps. Each vegetation type is represented by "bumps" that are defined by type (cones for coniferous vegetation or domes for deciduous vegetation), density (spacing), radius, and height. The vegetation pattern or patterns are then added to the DEM and hillshaded to create the final output. If necessary, the DEM is resampled, so the smaller the "bumps" (i.e., the user-defined radius), the longer the DEM will take to resample.

Bump Map Model Structure

Figure 1. The structure of the Bump Map model.

Users should not run the scripts (Parts 1 and 2) individually as these are embedded in the Bump Map Model for seamless functionality.

Using the Bump Map model

First unzip the Bump Map Tools download from the ArcGIS Resources-Model & Scripts page of Mapping Center. Take a moment to review the contents of the file once you unzip it. You will see the following:

Bump Map Directory Structure

Take a minute to read the readme.txt file for some detailed information on the contents of the download. Note that there is a ToolData directory and a Scratch directory. If you look in the ToolData directory, you will find some DEM and vegetation data that you can use to try out these tools. Intermediate data will be written to and deleted from the Scratch directory automatically when you run the tools.

One preparatory step is to make sure that the DEM and vegetation mask rasters you want to use are in the same coordinate system, and that they are projected so that the linear units are in either meters or feet.

Now you are ready to use the model. In ArcMap, right click in the ArcToolbox window and select "Add a Toolbox". Navigate to the location of your download and select the BumpMapTools toolbox. Open the toolbox and double click the Bump Map Model. The user interface will look like this:

Bump Map Model Interface

Figure 2. The user interface for the Bump Map model.

The input parameters include:

  1. Input Raster(s) (Vegetation Mask): The vegetation mask raster is a binary raster with the same value for cells in which the vegetation is present and NoData for all other cells. Here are two examples:
  2. Bump Map Model User ConiferAn input raster for vegetation that is only conifers.

    Bump Map Model SedgeAn input raster for vegetation that is only sedge.

  3. Cones or Domes: This is a drop down menu option where the user can select cones (to create a surface that represents coniferous vegetation) or domes (to create a surface that represents deciduous vegetation).
  4. Bump Map Cones and Domes

  5. Vegetation Density: This parameter will dictate how dense or sparse the cones/domes will be. Input a lower value to create a pattern that is denser and a higher value to create a pattern that is sparser. In essence, what happens is that a point will be placed randomly within each quadrilateral of an array that is defined by the value you input. If you input a value of 10, one point will be randomly placed within each quadrilateral of an array that is comprised of quadrilaterals that are 10 units by 10 units in size. The units for the value that you input to define the size of the quadrilaterals in the array is derived from the coordinate system for the input vegetation mask raster (usually either meters or feet).
  6. Vegetation Radius: Input a value that relates to how wide you want the bumps to appear. The value is the radius of each bump. The unit for the value that you input is derived from the coordinate system for the input vegetation mask raster. This value could have an impact on the amount of time it takes for this tool to run. If you input multiple vegetation masks, the LOWEST value for this parameter will be used to dictate the resampling for the DEM, if necessary, to which the bumps will be added. The new cell size will be the lowest radius value divided by 11 so that the bumps will appears to be nice and smooth. This means that if you input a 10 meter DEM and set a radius of 10, the output cell size for the final bump map and all the vegetation bump rasters will be less than one meter (i.e., 10/11).
  7. Vegetation Height (optional): Input a value that relates to how high you want the bumps to appear. This is a required value for creating cones, but not for domes. The unit for the value that you input is derived from the coordinate system for the input vegetation mask raster.
  8. Input Raster (DEM): This is the input DEM (not the hillshade!)
  9. Output Raster (Bump Map): This is the output raster that includes bumps for all the vegetation classes as well as the hillshade for the underlying DEM.

The model was developed to work in batch mode so that you can input parameters for multiple vegetation types. As with any other ArcGIS geoprocessing tool that runs in batch mode, each row represents a process and within each row, each cell represents one of the tool's parameter.

Bump Map Model Batch Mode

Figure 3. Typical interface for batch mode processing.

Tip: Before running the model, please make sure the DEM and vegetation mask raster's are in the same coordinate system and are projected so that the linear units are in either meters or feet.

Model output

This model creates a hillshaded raster that represents the combination of multiple "bumped" surfaces atop with the underlying DEM, where each type of bumped surface relates to a different type of vegetation, as shown below:

Bump Map Model Bumps

Figure 4. The output from the Bump Map model -- in this example, the taller cones represent conifers and the lower domes represent sedge.

In our next blog entry, we will talk about how you can symbolize the output from the model to create a stunning looking bump map!

Bump Map Model Colored Results

Additional Resources

Presentations:

Buckley, A. and R. Nagi. 2009. “ArcGIS Bump Map Model”, presentation at NACIS PCD 2009 – Sacramento, http://mappingcenter.esri.com/index.cfm?fa=resources.gateway#ArcGISBumpMap

Nighbert, J. 2007. “Making Noise with ArcGIS”, presentation at the 27th ESRI UC, http://mappingcenter.esri.com/index.cfm?fa=resources.gateway#MakingNoiseWith.

Nighbert, J. 2003. “Characterizing Landscapes for Visualization through Bump Mapping and ESRI's Spatial Analyst”, presentation at the 23rd ESRI UC, http://mappingcenter.esri.com/index.cfm?fa=resources.gateway#CharacterizingLandscapesFor

Nighbert, J. 2002. “Using ArcGIS to Apply Textures and Materials to Relief Backdrops in Cartographic Presentations”, presentation at the 22nd, ESRI UC, http://mappingcenter.esri.com/index.cfm?fa=resources.gateway#UsingArcGIS

Papers:

Nighbert, Jeffrey. 2003. "Characterizing Landscapes for Visualization Using ArcView Spatial Analyst." Proceedings of the 23rd Annual ESRI User Conference, July 7-11, San Diego, CA.

Nighbert, Jeffrey. 2002. "Using ArcGIS to Apply Textures and Materials to Relief Backdrops in Cartographic Presentations." Proceedings of the 22nd Annual ESRI User Conference, July 8-12, San Diego, CA.

Nighbert, Jeffrey. 2002. "Using Remote Sensing Imagery to Texturize Layer Tinted Relief." Cartographic Perspectives, Number 36, Spring 2000, pp. 94-96.

Tables thumb

We recently received a request for some help on tables on Ask a Cartographer. We thought we could pass along some of the tips in a blog entry as well, especially as there is currently limited info in our online help about tables (but we are working on changing that!) Here are a dozen elementary but critical "how to's" for working with tables in a page layout.

1. What are the basic concepts that relate to tables in a layout view?

A table is a display of attribute information in a tabular format. The information displayed in a table comes directly from the attribute information stored with your geographic data. The table contents will update if you make a change to the attribute table.

Tables are different from reports, which are derived from a table in your map and then stored in the format of a graphic element (so they are not "live-linked", so to speak). Once you've created a report, you can place it on your map layout or save it as a file for distributions.

2. How do you add a table to a page layout?

Open the attribute table that you want to create the report from, click the Options button on the bottom of the Attribute table window, and select the option to "Add Table to Layout".

If the Options menu button is hidden due to the width of the table window, a small down arrow appears at the bottom right corner of the window. You can click this to access the Options menu. You can also right-click any of the empty gray space at the bottom or to the right of the table to access the Options menu.

3. How do you change the appearance of the table?

The appearance of the table in the table window defines how it will look on the layout. Once added, any additional formatting to the table window won't affect its display on the layout. Thus, you'll want to do things like set the text font and size before you add the table to the layout. There are three ways to change the appearance of a table: 1) interactively from the Attribute table window, 2) using the options on the Fields tab of the Layer Properties dialog, and 3) using the Tools > Options > Tables settings.

It is important to note that the first two options change the appearance of a single table and the third option changes the appearance of all tables. Settings applied to the Options dialog box accessed from the Tools menu will apply to all tables you work with in all ArcGIS Desktop applications. Changes in these settings affect all the applications. Any changes apply to new table windows you open, but not to table windows you have already opened. To change the setting for a table window you have already opened, make your changes in the Attribute table window.

You can add several table frames from a single table to a layout, but once you've added a table frame to a layout, you can't change its appearance. Instead, delete the table frame, make adjustments to the appearance of the table window, then add the table to the layout again.

3.a. Changing the appearance of a table in the Attribute table window

You have limited options for changing the appearance of the table in the Attribute table window. These are described in the online help (see "About setting field properties and aliases"). To change the appearance of the table, click the Options button on the bottom of the Attribute Table window, and select the "Appearance…" option.

Tables Figure 1

Some of the display options you can set include:

  • Changing the color or font that is used to display attributes in tables
  • Choosing whether to show the values or the descriptions for fields with subtypes or domains

Tables Figure 2

In addition you can change the appearance of the table by right clicking it and using the options to sort the values in fields as well as turn fields on or off.

Tables Figure 3

Note that once you turn a field or fields off, you can turn them back on by clicking the Options button on the bottom of the Attribute Table widow and select the option to "Turn All Fields On".

Tables Figure 5

On the Attribute table window, you can also resize the column widths by simply dragging the column edges to the left or right. And a little known fact (at least to me!) is that you can change the order of the fields by first clicking on the field you want to move, then clicking, holding and dragging it to its new location. The red line between the field names indicates the new starting position of the field.

3.b. Changing the appearance of a table using the options on the Fields tab of the Layer Properties dialog

Another way to change the appearance of the table is to change its properties using the Layer Properties dialog. On the Fields tab, you can check the visibility of the fields on and off and change the field aliases.

Tables Figure 6

Changing the appearance of a table using Table settings As noted above, changes to these settings will affect the appearance of all tables you work with in all ArcGIS Desktop applications. (Think of these as the default setting for all tables.) Settings applied from the Appearance command in the Options menu on a table window will apply to the current table you are working with. To change the appearance of a table using Table settings, click the Tools menu, click Options, and click the Tables tab.

Tables Figure 7

Here you can set:

  • the text font, size, and color
  • the column header height at the top of the table and the height of rows in the table (as a percentage of font size). You should normally leave the default column header height at 125% and the default cell height at 115%, so all the new tables you create use this standard setting. If you want a particular table to have taller rows so long text fields wrap, specify the setting through the table window's Options > Appearance dialog box.
  • subtype and domain options by checking "Display coded value domain and subtype descriptions".

4. How do you delete unwanted rows?

You can do this by selecting the rows you want to show in the table. To show just the selected rows in the table frame, click the selected button on the table before adding it to the layout. Selections made afterward do not affect the data in the table frame. If the All button is selected when the table is added, the selection is ignored.

Tables Figure 8

5. Is the table "live linked" to the data?

Any edits you make to the table will automatically be reflected in the table on the layout.

6. How do you delete unwanted fields such as ObjectID, etc…?

Change the field visibility from the Layer Properties > Fields Tab; these properties are respected for Table elements as well.

Optionally, you can also change the visibility in the table view. Right click the name of the field that you want to "hide" and select the option to "Turn Field Off".

Tables Figure 10

7. How do you sum one of the fields on the bottom line?

There is no out-of-the-box functionality to sum the values in a field to create a new value. However, you can easily sum the values in a numeric field by just right clicking on the attribute name and selecting the Statistics… option.

Tables Statistics

Tables Statistics Results

Another option is to use the Summary Statistics tool in ArcToolbox. This tool calculates statistics for field(s) in a table.  You can add the output table to ArcMap and optionally add that table to the page layout.

You could group multiple tables together using the graphic tools so that they can be easily managed and positioned.

You could also use a custom report (in 9.3.1, under Tools > Reports > Create Report) and use one of the summary functions. To calculate summary statistics in a custom report:

  1. Click the Summary tab on the Report Properties dialog box.
  2. Click the Available Sections drop-down arrow and click the section where you want the statistics to appear.
  3. Check the box that corresponds to the statistic you want to display for each numeric field.
  4. Repeat steps 2 and 3 to display statistics in each available section.

8. How do you set the size and position of the table in the layout?

There are some limited options for changing the appearance of the table once it has been added to the layout. Right click the table and select the Properties option. You can change the size and position of the table by typing in values in page units.

Tables Figure 17

9. How do you set how much of the table is displayed in the layout?

The row and column that appear in the upper-left corner of the table window define what appears in the upper-left corner of the table on the layout. As you enlarge the table frame on the layout, you'll see more rows and columns; however, the data displayed in the upper-left corner will not change. ArcMap will only display an entire row or column so a row or column will not appear until the table frame is large enough.

10. How do you delete the empty space to the right and bottom of the inserted table?

This needs to be manually adjusted. To manually adjust this, simply use the green handles to resize the extent of the table. Note that if you make the table size smaller than required for the rows or columns, the table will truncate, as described above.

11. How do I change the frame and background of the table after I have added it to the layout?

Right click the table and select the Properties option. You can change the border and the background of the table, and you can also add a drop shadow.

Tables Figure 18

12. How do you drag a corner of the table to increase its overall size in the layout?

Turn on the option to "Preserve Aspect Ratio" from the Element Properties > Size and Position tab.

Tables Figure 19

Thanks for Kent Marten, our Tables Product Engineer, for his help with the content of this blog!

UPS North thumb

We received this very interesting question the other day on Ask a Cartographer: "What is common practice for map orientation and the use of north arrows for maps using the UPS projection? Do you keep grid north up and turn the north arrow accordingly, or do you rotate the map so true north is up and so the UPS grid is tilted like with the UTM projection? With UPS the rotation could be very large, up to 180 degrees."

For those of you not quite familiar with the terms, "grid north" is the positive northing direction of a grid coordinate system used on a map. The Y or northing values of the projected coordinate system increase in the direction of grid north. "True north" is a fixed location on the earth—the north pole. The meridians of the graticule (the arrangement of parallels and meridians) converge at true north. In a cylindrical projection like Miller Cylindrical projection (Figure 1) which has straight up-and-down meridians, the direction of true north is the same as grid north.

Miller Cylindrical Projection

Figure 1. The Miller Cylindrical projection.

Universal Polar Stereographic (UPS) is a grid system used for the north and south polar areas. It corresponds to using a UTM zone elsewhere in the world. There can be a variation between true and grid north of up to 180 for the UPS system. In Figure 2 (from page 66 of Map Use: Reading and Analysis, Sixth Edition), the grid coordinate system is symbolized with black lines and the graticule is symbolized with gray lines. Following standard cartographic convention, grid north is aligned to the top of the page. True north, which varies across the entire map, is indicated by the graticule.

UPS North Zone

Figure 2. The north zone of the UPS grid system.

You can see that the 2,000,000 meter easting line aligns with the 0 and 180 meridians, and that grid north is equal to true north only on the 0 meridian. In fact, on the 180 meridian, grid north is exactly opposite from true north! This is also documented on page 3-3 (PDF page 23) in the NGA (previously DMA) publication, "Universal Grids: Universal Transverse Mercator (UTM) and Universal Polar Stereographic (UPS)" available at https://www1.nga.mil/ProductsServices/GeodesyGeophysics/Related%20Documents/TM8358_2.pdf:

Documetation on grid orientation

On page 3-3 of the NGA publication, you will find the same graphic as in Figure 3. You can see that one way to indicate this using map marginalia is to include an arrow labeled "Grid North".

UPS Grids

Figure 3. The UPS North and South Zones.

Although we haven't seen any large scale topographic maps of these areas, it seems that either aligning the map to true north or grid north is done for specific applications. A declination diagram, as shown in Figure 4, should show the difference between the two in either case, but the map user should be aware that there will be a significant variation in the orientation of meridians across the map for all but large scale maps.

ADeclination Diagramthumb

Figure 4. Declination diagram showing relations among true, grid, and magnetic north reference lines on the Madison West, Wisconsin, USGS 1:24,000 quadrangle.

Thanks for help with this blog entry go to Jon Kimerling, Professor Emeritus at Oregon State University and primary author of Map Use, Sixth Edition; Melita Kennedy, Senior Product Engineer for Map Projections and Transformations; and Andrew Skinner, fellow Mapping Center Team member.

Alaska thumb

At the recent Northwest GIS User Conference, Dorothy Mortenson commented on the location of Alaska on U.S. maps. Dorothy works for the Oregon Water Resources Department and is often tasked with mapping the Pacific Northwest, including Alaska. She made some very good points about why we should try to change the standard practice of placing the state of Alaska in the lower left corner of the page. We agreed with her when she made a case for changing the map layouts and we wanted to share our thoughts with you.  But first, here are a few of the points Dorothy made:

  1. Alaska's been a state for over 50 years. It's time to acknowledge it as a U.S. state on maps of the U.S.A.
  2. With the mapping and publishing capabilities now available to us, there's plenty of room for all of the U.S. states.
  3. "No data" is just as important as some data. We wouldn't feel compelled to eliminate an interior state, like Illinois, from the contiguous U.S. if there weren't any data for that state.
  4. If you don't want to map Alaska, Hawaii and the territories, then call the map what it is – the conterminous or contiguous 48 states.

Dorothy is right to point out one of the injustices of cartographic standard practice, and it is timely to question it. The logic behind the traditional depiction of the USA with Alaska and Hawaii rescaled and tucked into (usually) the bottom left corner, at least in the commercial world, has been economic, market-driven, historical, and in some part the result of inertia.

Alaska Traditional

A traditional USA map layout, with Alaska and Hawaii rescaled and tucked into the bottom left corner.

Alaska

A revised layout, with all maps at the same scale. The major Hawaiian islands are placed at the bottom left to imply the correct geographical relationship with the other states, but this inset map could be moved to the top left if preferred.

Hawaii

A revised layout with all maps at the same scale, showing the full Hawaiian Island chain. At this scale, the smaller islands are almost invisible, and some degree of exaggeration would need to be considered. On a larger layout they could remain untouched. Alternatively or additionally, a coastal vignette could be used to emphasize the location of the smaller islands.

It was economic because in the print world, a commercial cartographer is always looking to work within the constraints of the manufacturing process. If a space could be filled with map detail, and as a consequence take up a smaller area, there were savings, and therefore extra profit, to be made. The fact (or perceived fact) is that there were never enough customers with an interest in what happened with Alaska and Hawaii to justify the extra cost of manufacturing a more generous layout.

It was market-driven, because our customers had certain expectations. With a wall map, it was always going to be easier to increase the width of the product rather than the height (it will fit better on the average wall). In a book, where maximizing the scale of the "lower 48" may be considered important by the customer, this was best done in a landscape format, whether it was across two pages (a spread) or turned on the page. On occasion it was and is taken too far. Building a thematic map on two scales, particularly where area is a factor in the data, is a dangerous thing without some very careful explanation.

It was historical, because these constraints informed the development of many such products in the conventional cartography days, when making a layout change could be a long and difficult process. Many later products were derived from these original map elements, so the basic format did not change much. An additional factor on occasion was a lack of map detail (usually Mexico) behind the Alaska and Hawaii insets – bad cartography, but the sort of decision that is made when cost and deadline are important

Inertia I think, at least in this context, is a more recent thing. Despite the fact that layout change is not the issue it once was, traditional layouts have been maintained simply because it is easier not to rebuild a product that works or, more importantly, sells.  As maps move more into electronic media the economic constraints are different, as is the user experience. Shape is less of an issue with a web page where on first viewing the available space is generally square, or on a smart phone where scrolling is part of the experience, and the benefits of interactivity are rewriting most rulebooks anyway. Still, in many cases you will see the same old format, with Alaska tucked into the corner and Hawaii alongside.

So the time may be right for the status quo to be challenged. If a map is showing the whole of the United States, should it not include a same-scale depiction of the whole country? I would add one stipulation (which should have been made all along)… that unless the States are shown in their proper geographical relationship, which is unlikely, there should always be some form of location map included that does. If the map does not include Alaska and Hawaii (and there may be justifiable reasons for this), should it not be called "Contiguous United States" rather than a misleading "United States".

If we subscribe to the view that Alaska should be shown at scale, in its entirety with all of the Aleutian Islands depicted, should we not do the same for the Hawaiian Island chain, out to the Midway Islands? This means that, like Alaska, Hawaii can no longer be tucked into a corner of the traditional map layout.

The Geography of Alaska is so different! The landscape is more extreme, and human impact is less intrusive. It was always easier to treat Alaska as “special” when its depiction was at a significantly different scale (if the final product was a road or a topographic map). With a same-scale depiction, it’s not so easy to justify. Trying to find a balance of data and a level of generalization that works well with the rest of the United States but keeps Alaska detailed enough is a challenge… but that, I hope, is why we have map designers.

Resolution Diagram thumb

If you have used any raster data to make maps you may have at one time or another asked yourself, "What is the appropriate resolution of raster data for the map I am making?" This question is tied closely to a basic principle of map compilation that you may have learned in your beginning cartography course: "Always compile your map from source materials of the same or larger map scales". In our age of digital elevation models and other raster datasets, this basic principle of map compilation can be restated as: "Always create your raster map from data at the same or higher spatial resolution than the ground resolution of your map display grid cells". The ground resolution of your map display grid cells will depend on the scale of your map. An equation you can use that relates map scale (1/x), raster data resolution, and map display resolution is:

1/x = 1 / (pixel ground size [m/pixel] × pixel density [pixels/m]), so that 1 meter on the map represents x meters on the ground

In the simple case of a square cell digital elevation model (DEM), such 30m x 30m UTM grid cells, the optimal ground dimensions of the pixels on the map should be the same (or larger) than the DEM spatial resolution. For example, at a map pixel density of 4000 pixels per meter, the optimal mapping scale would be 1/x = 1 / (30 m/pixel × 4000 pixels/m) = 1:120,000 (or smaller). This recommendation, of course, is for large to medium scale mapping where there is minimal scale distortion across the map projection.

An equal angle DEM grid is more complex because the cell dimensions are equal increments of latitude and longitude. For example, you can see in the figure below that the National Elevation Dataset (NED) 1"× 1" DEM based on the WGS 84 ellipsoid has latitudinal grid cell dimensions that vary slightly from 30.71m at the Equator to 31.02m at 80°N. Let's take 40°N, where the grid cell height is 30.84m, as an example latitude. For the pixels and DEM cells to be of the same spatial resolution, the DEM grid cells would be displayed on a Plate Carree projection of scale 1:100,000 at a pixel density of 100,000/30.84 m/pixel = 3,243 pixels/m or 32.43 pixels/cm, which is at the pixel resolution where individual pixels may just be distinguishable to those with excellent vision.

Resolution Diagram

The longitudinal relationship is slightly more complex because the horizontal DEM grid cell dimension decreases with the cosine of the latitude. For example, a NED 1"× 1" DEM grid cell at 40°N has a horizontal dimension of 30.84m × cos (40°) or 23.62 m, a significant increase in spatial resolution.

Plate Carrée Projection Example

The east-west scale distortion on the Plate Carrée projection ( x = longitude, y = latitude) is given by 1/cos(latitude), so the east-west scale factor at 40° would be 1/cos(40°) or 1.3054. Hence, a map grid cell on the Plate Carrée projection at 40° would have a vertical scale of 1:100,000 and a horizontal scale of 1.3054/100,000 = 1/76,600. This increase in scale horizontally means that the horizontal grid cell dimension is 30.84m/1.3054 = 23.62m, the same as the DEM grid cell horizontal resolution at this latitude. The map projection grid density here will be 76,600/23.62m = 3,243pixels/m or 32.43 pixels/cm, the same as the vertical density, as we see in the square pixels that comprise the Plate Carrée projection.

Mercator Projection Example

The first thing we need to know about the Mercator projection (x = longitude, y = ln(tan(π/4 + lat./2) is that both its north-south and east-west scale distortion is given by the equation 1/cos(latitude). Let’s say we make a projection with a display resolution of 40 pix/cm or 4,000 pix/m so that the size of a pixel on the ground equals the resolution of a 1"× 1" DEM based on an authalic sphere with circumference 40,030km, or 30.89 meters per second of latitude and longitude at the Equator. For a pixel at this 4,000 pixel/m density to cover a ground area of 30.89 by 30.89 meters at the Equator, the map scale must be 1/x = 1/(30.89 × 4,000) = 1/123,549. At this scale the DEM resolution at the Equator equals the ground dimensions of the pixel -- an ideal mapping situation since the DEM grid cells and map pixels are at the same spatial resolution!

Moving north and south of the Equator on the Mercator projection, both the latitudinal and longitudinal scale distortion increases by 1/cos(latitude). Map projection scales at 10 degree latitude increments from 0 to 80 degrees for a 1:123,549 scale map at the Equator are in the following table, along with the corresponding ground width dimensions of a pixel on the map. The corresponding east-west resolution of a 1" DEM grid cell is shown in the fourth column.

Lat.    Map            Pixel Ground     East-west Resolution 
         Scale           Dimension        of 1" Grid Cell
0       1:123549       30.89 m            30.89 m
10     1:121673       30.41 m            30.41 m
20     1:116099       29.02 m            29.02 m
30     1:106997       26.75 m            26.75 m
40     1:94645         23.66 m            23.66 m
50     1:79416         19.85 m            19.85 m
60     1:61775        15.43 m            15.43 m
70     1:42257        10.56 m            10.56 m
80     1:21454         5.36 m              5.36 m

From these pixel and grid cell ground dimension values, we can see that going moving from the Equator toward the pole, the ground area covered by map pixels systematically decreases according to the cosine of the latitude. This decrease in pixel area on the ground means that progressively coarser DEM grid cells are being used to populate progressively smaller pixel areas on the ground -- an undesirable situation. However, this systematic decrease in pixel ground dimension is identical to the decrease in the east-west extent of 1" grid cells in the DEM, so that the DEM remains optimal for mapping at all latitudes since the pixel and grid cell dimensions are identical in the east-west direction.

Tree size thumb

On large scale maps, you will often see that the symbols used to represent trees are all one size. As we know from our own real-world experience, tree crowns (i.e., the tops of trees formed by their leaves and branches) are different sizes, so a more realistic representation would be to vary the tree symbol size slightly to account for this natural variation.

Although we know that the height, trunk diameter, and crown diameter all vary depending on the amount of sunlight and water a tree gets, what age it is, and where it is planted (to name a few variables), what if none of this information is available to create variation in your tree symbols? What can you do in ArcMap to at least show cartographically varying crown sizes for your symbolized trees? This blog entry describes a method to symbolize trees using point symbols that give the impression of varied tree crown sizes.

Tree size Figure 1

Figure 1: Symbolizing tree data using one symbol size

Tree size Figure 2

Figure 2: Symbolizing tree data using symbols of varying size

Recently, I was given detailed data of the ESRI campus including the locations of trees and bushes. The data were collected from aerial imagery and had very few attributes. I used these data to design an ESRI Campus Basemap (it can be downloaded from the ESRI Resource Center’s Map Templates page.)

I wanted to do two things with the tree data: first, I wanted to symbolize each species of tree using a different tree symbol, and second, I wanted to vary slightly the symbol size of each tree within a species to create a more realistic looking representation of the data.

To learn more about how I accomplished the first goal, you can read the recent blog post on Symbolizing trees in ArcGIS: assigning each species a different symbol. This blog entry describes how I accomplished the second goal.

The first step is to add a field in the attribute table named Size with the field type set to Short Integer. Once the field is added, right click on it in the attribute table and select Field Calculator. In the Field Calculator, check the Advanced box and type in the following:

randomize
Dim i as integer
i = Int((3*Rnd))

Then set Size equal to i. A screenshot of the dialog is shown below.

Tree size Figure 3

Figure 3: The Field Calculator statement used to generate random numbers from 0-2 for each point feature

What this does is assign a random number (in this case, up to 3, rounded off so that it will equal either 0, 1 or 2) to each point feature that represents the location of a tree (if you want more random numbers generated, simply change the number 3 in the example above to your desired value). The Size field can now be used to symbolize the tree data based on the random number generated (as a surrogate for a crown size attribute) using graduated symbols.

To symbolize your data using graduated symbols, right click on the tree layer in the Table of Contents, click Properties, and click on the Symbology tab. In this dialog, opt to show your data using Quantities > Graduated symbols. Change your Value field to Size, leave normalization set to none, and then click on the Template button on the right side to select or create the tree symbol you want to use. Click the down arrow next to Classes in the classification part of the dialog and set the number of classes to three (for the three random numbers that we generated that include 0, 1, or 2). Finally, set a range for your three symbol sizes (this will vary depending on the scale of the map you are designing).

Tree size Figure 4

Figure 4: The symbol properties are assigned using Graduated symbols

When you click Apply, you will see that the symbol sizes now vary slightly in size, giving the trees a more realistic look!

Click to see a the full size versionOne of the things I promised myself that I would do last summer was write about some of the key design solutions used in the World Topographic Base Map. Our symbolization of the hillshade is one of the design characteristics that most distinguishes this map. The design intent was two-fold: 1) show shading similar to how hachures were used on hand-drawn maps [to see what I mean one of my favorite 18th century maps depicting the Battle of Bunker or properly Breeds Hill is a good example], and 2) display the low slope areas in white because this creates a "non-competitive" background for data that is mashed up on this base map.

How default hillshade symbology works

The image at the right shows the default hillshade symbology, which is displayed by default with a black to white color ramp. The darkest part of the ramp is used on the high slope areas that are in shade, while the lightest portion of the ramp is applied to the highest slope areas that are illuminated. The result is that flat areas are in the middle are displayed in gray.

 

 

 

 

The image below shows the distribution of values in a hillshade dataset and how they relate to the colors of the default black to white hillshade. If you look at the shading under the histogram, you can see that colors that relate to the hillsahde values.  0 relates to the highest slope/most shaded areas and the black end of the color ramp while 255 relates to the highest slope/most illuminated areas and the white end of the color ramp. The important thing to note is that the value of 180 is flat, and that these areas are shown in gray if the default color ramp is used.

Creating Distinctive Hillshade Symbology for the World Topographic Base Map

Because most of the cultural information that would be displayed on this basemap would likely occur in flat areas, we modified the hillshade color ramp. We made thia decision based on our assumption that humans tend to build, live and work in areas of flatter terrain. Our goal was therefore to reduce the gray and increase the white in the flat areas.  Here is what the World Topographic Base Map's hillshade layer looks like:


When other geographic content, such as roads, boundaries and buildings, are drawn on this hillshade, the flat white areas do not compete with the cultural feature symbology. Unadorned, you might rightfully criticize it for looking like an overexposed photograph of the default hillshade layer. However, it is not meant to be viewed in isolation, and it is meant to be viewed as a basemap for other and potentially multiple layers of information.

Here is what the histogram looks like for the hillshade symbology of the World Topographic Map:

 

Notice that the white end of the color ramp extends further into the values for the flatter areas. In order to make the color ramp and have it be applied this way, we had to do two things:

  1. We customized the color ramp by turning it into a multi-part color ramp with three ramps.  Middle ramp was our normal warm gray (RGB: 189, 167, 155) to white (RGB: 255, 255, 255) color ramp.  The first color ramp was a single color ramp using the warm gray. The third color ramp was a single color, using white.  (The illustration above uses black instead of warm gray to visually emphasize this technique).
  2. We customized the display histogram as shown below:


The histogram for every hillshade dataset has a slightly different shape, based on the character of the local relief that it represents. The main point is to force the color ramp values that relate to white to the right of the peak that represents the values in the hillshade.  The peak indicates values for the flat areas. To force the white values to the left of the peak, move the topmost point of the line with the vertices just to the left of the peak. Then, using the curved line tools, edit the line to follow the shape of ascending limb of the original histogram.  The curve can be adjusted so that it is closer to the histogram or further away than what is shown here. Moving the line closer will make more pixels lighter, while positioning it further away will result in a darker depiction.

It takes experimentation to achieve the final effect--it took me 20-30 minutes for this example.

Also, note for large hillshade datasets, we converted the hillshades to 8-bit unsigned integer raster datasets because the time required to generate the histogram was prohibitive.  I wrote a post on this and other tips for hillshade datasets earlier this year.

Aitoff thumb

In this blog entry, I discuss using the Buffer Tool in ArcToolbox. I also compare the ArcToolbox Buffer Tool with the Buffer Wizard in ArcMap.  The Buffer Tool, located in ArcToolbox > Analysis Tools > Proximity toolbox uses different methods to calculate buffers. The method used by the tool depends on the type of feature being buffered.

An important thing to understand is that when creating buffers for line and polygon features, the Buffer Tool in ArcToolbox uses the coordinate system of the data being buffered by default. When points are being buffered, another method is used which will be described later in this article.

Buffering Line and Polygon features

By default, the Buffer tool uses the coordinate system of the lines or polygons being buffered. If the data are projected to a Geographic Coordinate System, using angular units like degrees, the results of the buffer operation will not be geometrically correct.

The circumference of the relatively round earth measures 360° around the Equator, as well as from the North Pole to the South Pole, and back again. However, lines of Longitude – the X coordinates for data in a geographic coordinate system, all converge to a point at the North and South poles. The further north or south of the Equator the data lies, the closer together the lines of Longitude will be. The distance across a one degree angle on the ground at the Equator is about 111 km (69 miles). At the North or South Poles, which are points, the same distance across a one degree angle is 0 kilometers (0 miles). Let’s look at a couple of illustrations.

GCS

In this illustration of the entire world, displayed in a Geographic Coordinate System, you can see that the North Pole and South Pole, which are points, are represented as lines as long as the Equator. The further north or south of the Equator data lies, the more the data is "stretched" east to west. The grey boxes are a 15° grid covering the entire earth's surface.

In the next illustration, we examine the same 15° grid, but this time in a projected coordinate system (Aitoff).

Aitoff

In this second illustration, the same data is displayed in the Aitoff projection. Notice that the lines of Longitude converge toward the poles, getting closer and closer together the further north or south of the Equator the data is located. The converging lines of the 15° grid, in this case, more closely represent the actual east-west distance between the lines of Longitude in the grid.

If we buffer lines or polygons, and the buffer distance is in degrees, the east-west distance represented by a degree changes depending on the Latitude of the data. The north-south distance remains the same, but the buffers created with units of degrees will be distorted east to west. The buffers will not represent correct linear distances from the features in the east-west direction.

The Buffer tool does present the option to create a buffer for lines or polygons using a projected coordinate system, that measures distance in linear units like feet or meters instead of angular units (degrees). Using a projected coordinate system when buffering will produce buffers that measure the same distance from the feature in both the east-west and north-south directions.

In the Buffer tool click on Environments > General tab. For the Output Coordinate System click the Browse button > Select > Projected Coordinate Systems.

For information about suitable equidistant projections that will produce the most accurate results when generating buffers, refer to the links below:

http://support.esri.com/index.cfm?fa=knowledgebase.techarticles.articleShow&d=24646

http://support.esri.com/index.cfm?fa=knowledgebase.techarticles.articleShow&d=30583  

Buffering Point Features

If point or multipoint features are being buffered, if the data are projected to a geographic coordinate system, and if a buffer distance is specified in linear units, the Buffer tool will create geodesic buffers. This enhancement to the tool is particularly significant when buffering points with a large buffer distance.

A geodesic distance is calculated across the curved surface of the earth. Standing on a level plain, the horizon is about 2 ½ miles away. When buffering a point with a buffer distance greater than 2 ½ miles (13,200 feet; 4023.37 meters), the curvature of the earth enters into the buffer distance calculation. The distance measured across the curved surface of the earth from the point being buffered to the edge of the buffer is longer than the straight distance from the point to the edge of the buffer.

Examine the illustration below, that shows an edge-on view, comparing the geodesic distance with the straight line distance from the point being buffered to the buffer edge.

Distances

A visual examination of the diagram shows that the geodesic distance is slightly longer than the straight line distance from the buffered point along the radius to the buffer.

ArcMap Tip: When measuring distance in ArcMap with the Measure Tool, the straight line distance will be returned by default. If you hold down the Shift key while measuring distance, the Measure Tool will return the geodesic distance between the features.

Comparing the ArcToolbox Buffer Tool with the ArcMap Buffer Wizard

As discussed in the ArcMap Buffer Wizard blog posting at:

http://blogs.esri.com/Support/blogs/mappingcenter/archive/2009/07/15/The-Buffer-Wizard-in-ArcMap.aspx

the Buffer Wizard can apply four different temporary spatial references as the Buffer Processing Coordinate System (BPCS). Each of these options minimizes distortion in the Buffer Wizard, depending on the BPCS selected in ArcMap Advanced Settings Utility and the coordinate system selected for the output.

Because the ArcToolbox Buffer tool produces output buffer polygons around points at the geodesic distance from the point, the intuitive expectation is that buffers created with the same linear input distance, from points in a Geographic Coordinate System, will all measure the same area, but this is not true. Because the geodetic model of the earth is a spheroid (ellipsoid), the buffers created around widely spaced points will all be the same linear distance from the central point, but the area of the polygon buffers generated will differ. This is based on the relative curvature of the spheroid at the location of the point being buffered.

To satisfy the expectation that the areas of buffers around widely spaced points will be identical, here are the buffer options that will produce this result:

  • In the Buffer tool in ArcToolbox, set the output coordinate system to an Equidistant projection. This may require creating a custom Equidistant projection, tailored to the extent and location of the points being buffered.
  • When using the Buffer Wizard in ArcMap, with an Equidistant projection, select one of the following settings in the ArcMap Advanced Settings Utility dialog:
  • Coordinate system of the data frame (output): Input data can be in any coordinate system, but the ArcMap Data Frame is set to an Equidistant projection.
  • Coordinate system of the feature class (input): Input data is projected to an Equidistant projection.

These options will result in buffers which all have the same area, regardless of the spatial distribution of the buffers.

Buffer Output: Shapefiles vs. Geodatabase Feature Classes

Shapefiles do not support true curves. When a buffer around a point is created as a shapefile, the shapefile will be constructed of short line segments connected by vertices. This will have an effect on the area of the polygon buffer.

The geodatabase supports true curves. Using the Buffer Wizard in ArcMap will produce curve segments on convex corners and end points of the input.

Summary

Both the ArcToolbox Buffer tool, and the ArcMap Buffer Wizard have advantages and drawbacks.

ArcToolbox Buffer tool:

  1. If point data are in a Geographic Coordinate System and the buffer distance is specified in linear units (feet, meters, miles, kilometers, etc.) geodesic buffers will be created by the tool.
  2. This is particularly important for large buffer distances > 2.5 miles, where the curvature of the earth must be taken into consideration.

ArcMap Buffer Wizard:

  1. This tool will not create geodesic buffers. However, if the BPCS is set correctly to access an Equidistant projection, the accuracy of buffers created with the Wizard will be comparable to the Buffer tool, since the Wizard will create true curves when the output data is written to a geodatabase.
  2. Use of this tool requires changing settings in the Advanced ArcMap Settings Utility dialog to maximize accuracy of the buffers being created.

Tree thumb

Tree symbols are a great way to enhance the appearance of a large scale, detailed map. To make attractive point symbols for trees, you need a good place to start from and thankfully all of us ArcGIS users have that. Using multi-layer character marker symbols, the variety of tree symbols you can create is endless. This blog is meant to introduce (or reintroduce) you to the ESRI US Forestry 2 font. It is also meant to give you some tips for creating a variety of tree symbols to use on your maps.

The most important part of the process to understand is the Symbol Property Editor and the capabilities/functionalities that are available to you in this dialog. If you aren’t familiar with the Symbol Property Editor dialog, a good starting point to learn more about it is a previous Mapping Center blog post: Customizing Multi-Layer Symbols. Symbol Property Editor

With the Symbol Property Editor, you can create multi-layer symbols, which are symbols that are composed of multiple layers of graphics within one symbol. In the examples above, you can see how the layers can be combined to create an unlimited number of tree symbols.

Using a multi-layer symbol is an effective way to give the impression of "leafiness" to your tree symbols. Incorporating multiple colors, angle rotations, or other characteristics, such as fruits or flowers, make your tree symbols appear truer to reality.

To create your tree symbols, you’ll work with character marker symbols that use the ESRI US Forestry 2 font (Figure 1).

Symbol Property Editor

Figure 1. The ESRI US Forestry 2 font.

To access this font, first set your symbol type to Character Marker Symbol in the Type dropdown of the Symbol Property Editor. Then, in the Font dropdown, scroll to ESRI US Forestry 2 (Figure 2).

Symbol Property Editor

Figure 2. The Symbol Property Editor is used to create Character Marker Symbols.

In this font you will find the individual components needed to create a variety of tree symbols.

To create the tree symbol in Figure 3, three layers are used. Each layer within the symbol has its own properties. The first and third layers of the symbol both use the same character marker (Unicode 189), while the second layer’s character marker symbol is Unicode 187. Each layer is a different color; the first layer is a lighter shade of green than the third layer which helps promote the effect of leaves on the same tree with different levels of illumination. The second layer is brown and put in between the first and third layers so it looks as though there are branches in the tree. The second and third layers have an angle of 65 assigned to them with an X Offset of 2 points so they are visible underneath the first layer. Finally, the second layer is approximately 5 points smaller than the first and third layers to give the impression of leaves coming from the branches.

Character Marker Symbols

Figure 3. The tree Character Marker Symbols are created as multi-layer symbols.

You can use the sample trees style (.zip file, 0.17MB) associated with this blog post to begin exploring how you can create tree symbols in ArcGIS using the ESRI US Forestry 2 font. Look through the sample symbols and the other character markers in the font, play around with them, and most importantly, have fun!

September and October sure went fast. We on the Mapping Center team have been very busy working on mapping projects, and have not spent as much time here--but we're finding a balance and will be getting more good blogs done soon (several are in the pipeline).

This post's topic is important because many of the questions we get on Ask a Cartographer are about where to get map data. I think a big reason for this is because most ESRI's software users work in larger organizations and thus, don't get much in the way of a hands-on experience with ESRI, so they often do not know about all of what they get with their ArcGIS license.  ESRI's online presence (blogs, resource centers, and ArcGISOnline) are all important ways to connect the day to day users of ArcGIS software to valuable content. 

Some of that content is map data--and ESRI has worked hard to provide progressively better and better map data, free, to licensed users of our software*.  As of a few years ago, the quality of that data was arguably as good as any data out there--and our data continues to improve. Today, for many of our datasets, I don't know of a better source.

Now there is a new blog, the ArcGIS Data Blog, that you should subscribe to in order to keep up on what's new with all that data--this will give you an advantage by being able to produce better maps because you've got better content to use.

* Not all that data may be redistributed or used in for profit commercial uses--so check the help and metadata: here is a help topic that gives an overview of the data and it contains links and information about what your license permits.

More Posts Next page »