How to produce tint bands for boundaries

By Charlie Frye, Esri Chief Cartographer

Tint Bands - Thumbnail

Not long ago we were asked how to create tint bands for boundaries like the ones on National Geographic’s and other national atlas political maps. We didn’t have an immediate answer, but promised to look into it.

Tint Bands - Figure 1

Tint bands effectively look like a wide line symbol that is drawn just inside the boundary of a country or state. Some atlases use a wide pastel tint band with a narrower brighter or heavier shade tint band on top of the wide tint band. Tint bands have been used in cartography for centuries, for example this image came from an 18th century map that is available on the U.S. Library of Congress’s American Memory Web site. The tint band is light red and was actually hand-painted onto this map as part of an assembly-line production process.

The tint bands on these types of atlas political maps work well, so it’s easy to think of them as simple and elegant. We soon found these tint bands are, in reality, quite challenging to produce given the array of geometric circumstances (i.e., variations in boundaries) they must accommodate. Using buffers or offset line symbols didn’t work because we got unwanted rounded corners and spikes in unexpected locations; even the representations symbol options available in ArcGIS 9.2, which were better, but still didn’t handle all of the geometric cases necessary for this effect to be achieved the way a professional cartographer would like to see it.

Tint Bands - Figure 2

Tint Bands - Figure 3

Examples of strategies that didn’t work: spikes and overshoots from offset line symbols and buffers that do not fill all the nooks and niches in the geometry’s perimeter.

Basically we were only thinking of boundaries as vectors and were therefore making no progress. So we started asking around for alternative solutions, and we ended up asked one of the programmers on the Geoprocessing Development Team at Esri. The first thing he asked was whether we were using raster or vector data as the input. From that moment on the solution was obvious; we knew Spatial Analyst has a Shrink tool, which would produce a polygon that could be used by the Erase tool to create a tint band. The only catch was the need to convert the boundary polygons to rasters and then convert the Shrink tool’s results back to polygons.

To do that, and to automate much of the work, we created a Script tool, written in Python, that automated the conversion of the polygons to rasters, the shinking, and the conversion of the result back to polygons. From that point, creating tint bands was an easy 4-step process—two steps for the wide bands, and the same two steps for the narrow bands. Here are the two steps:

  1. With your boundary polygons as the input, run the Expand or Shrink Polygons tool to create a shrunken version of each polygon.
  2. Use the Erase tool, with your boundary polygons as the input, and the shrunken polygons as the erase features to produce tint bands.

It’s up to you to decide what colors to use; you can add an attribute and calculate the colors you want, or use the Identity tool to assign the attributes from the original polygons to the tint bands. Here is an example of tint bands produce using this method:

Tint Bands - Figure 4

This entry was posted in Mapping and tagged . Bookmark the permalink.

Leave a Reply


  1. MappingCenterTeam says:

    I don’t know if this method is sufficient for all needs, but for polygon data I’ve been using a gradient fill with the type set to “buffer.” For example, I tweak the percentage of fill and adjust the color ramp from light blue to white and create a border with a thick dark blue border. Problem is you need to perform this process for all of your polygons displayed with unique values. However, you can determine the best buffer gradient settings, apply them to all polys, and then customize each one. Time-consuming perhaps, but an alternative solution to those of us that don’t have Spatial Analyst.

    Posted by Matthew Malone on June 05, 2007 at 07:27 AM PDT
    One auxiliary benefit to this technique is that it may prove to save a few pints of ink on our print jobs… much to the chagrin of the Ink Cartridge cartel
    Posted by James Graham on June 08, 2007 at 07:35 AM PDT
    I tried the shrink method of doing this but ran into some difficulty due to my lack of experience. I really liked Matt’s solution using a buffer style gradient fill, and this will probably work for what I want to do right now – and it was less time-consuming. (Also, I am still in 9.1, so this was the best solution.) However, I did notice that the buffer widths depend on the polygon size and are therefore not consistent. I turned off the outlines, and I really like the effect. Thanks for all the suggestions!

  2. spardo2 says:

    Fast forward a few years and there still does not appear to be a simple, user-friendly way to produce tint bands/inset buffers. This makes me scratch my head because it would be super easy to just include “inside only” for polygons, just as the buffer tool currently has “outside only”.

    Anyhow, my main comment is that I’m using 10.0 and the tool loaded fine but did not give me an option for expanding or shrinking the input polygon, it simply expanded and that of course is the opposite of what I need to produce an inset border.

  3. lyndy says:

    This looks like a great tool; however, it may be helpful provide some guidelines to users about cell specifications when inputting parameters for the expand or shrink polygon tools, including cell size of raster and number of cells to shrink and expand by. I understand it will vary depending on the data but it would be helpful to provide some rough guidelines, especially considering that we are inputting a vector polygon, correct?

    I cannot get tool to run without an error.