Jeffery S. Nighbert
Using ArcInfo to Create Publication Quality Maps
for the Interior Columbia Basin Ecosystem Management Project: Detailed
Responses to Frequently Asked Questions about the 1995 Esri "Best
Cartographic Publication" Map
ArcInfo is a great tool for
creating publication quality maps. The Interior Columbia Basin
Ecosystem Management Project Terrain Map demonstrates just how good.
The spectacular color relief map displayed at the 1995 Esri user
conference and presented on the cover of the 1996 Esri Map Book drew
and overwhelming response, including "Best Cartographic Publication" at
the 1995 conference poster session. Even after answering hundreds of
inquiries over the past two years, we still get questions about the
techniques used in creating this map. In particular, public interest
centers around four questions: What were the requirements for this map
and how were they translated into map features? How was the colorful
terrain backdrop created for the map? What were the sources of the data
for the map? Are the Arc Macro Language (AML) programs used to create
this map available to the public? This presentation provides detailed
responses to these frequently asked questions.
INTRODUCTION
As part of his July 1993 direction for management
of Pacific Northwest Federal Forests, President Clinton directed
development of a scientifically sound, ecosystems based strategy for
Federal Forests east of the Cascade Mountain Range. In January 1994,
the Director of the Bureau of Land Management (BLM) and the Chief of
the Forest Service (FS) outlined their expectations for implementing
this strategy in the charter for the Interior Columbia Basin Ecosystem
Management Project (ICBEMP). The project, headquartered in Walla
Walla, Washington, encompasses the geographic area of eastern Oregon
and Washington, all of Idaho, western Montana and Wyoming, and
northern Utah and Nevada. It covers approximately 144 million acres of
which, about 75 million are managed by the two agencies.
To support the ICBEMP effort the Bureau of Land Management Oregon State
Office was given the task of developing a high quality general location
map for the project. To answer this fundamental requirement, the
ICBEMP terrain map was created. Since then, the map has not only
fulfilled its original mission but it appears to have taken on "a life
of its own" well beyond the bounds of the ICBEMP project. A reduction
of the orignal map has been produced in digital form and shown below:
WHAT WERE THE REQUIREMENTS FOR THIS MAP?
Mapmakers create their work to meet the needs of their customers. These
"needs" or requirements define everything about a map: how the map will
be created, what features will be shown, even what techniques will be
used. The ICBEMP terrain map was no exception. The first and most
important step in creation of a suitable location map for the ICBEMP
was an assessment of the requirements considering needs on a number of
levels. Apart from the primary requirement provided by the ICBEMP
team, consideration was given to the map user audience, integration
with other ICBEMP mapping activities, the existing mapmaking
environment and standards, and new hardware and software capabilities.
Thought was also spent on academic and professional expectations.
Countless meetings and phone conversations were held with the project
team, regional GIS specialists and other concerned parties to refine
and analyze these requirements.
Primary mapping requirements
The primary purpose of the ICBEMP location map was to provide a quick
reference to the geographical features of the Columbia Basin. The map
needed to show in a single glance a "landscape view" of the Columbia
River basin and vicinity, yet at the same time provide enough detail
upon closer inspection for users to locate administrative, political,
cultural, hydrologic, and transportation features as well as a plethora
of small towns, villages and other important places of interest.
Secondarily, the map had to be highly adequate to serve as a reference
map in public meetings, media briefings, court hearings, and
publication in the Environmental Impact Statement document.
The map user audience
The user's audience is a major consideration when developing
requirements for a map. A project the size and breadth of the ICBEMP
brought together a big variety of map users, each with a different
reason for scrutinizing a map and each with a different ability to read
a map. Once a map is created and put into use, it is difficult to tell
exactly who is actually using it. The ICBEMP terrain map has been used
by a wide range of individuals and groups including residents of small
towns and ranches, urban dwellers, environmental and industry special
interest groups; local, state and federal government agency personnel
and possibly even members of Congress and the President of the United
States. The primary audience for the ICBEMP map was the ICBEMP
project team composed of some of the northwest's leading ecological
scientists, land use planners and land managers. This map provided an
excellent locational frame of reference for the many thematic overlays
which the ICBEMP project team used to formulate options and
alternatives. With the rich content of detailed information on the
ICBEMP map, team members could easily determine how different actions
would impact existing activities on the landscape.
Beyond reference
and analytical uses by the ICBEMP project team, the map was intended as
a communication tool with the public at large. The ICBEMP needed to be
able to convey effectively how the plan would benefit different areas
of the Columbia Basin. The ICBEMP terrain map proved to be an
effective tool for facilitating that dialog.
Integration with other project mapping activities
The ICBEMP terrain map development was only one part of the Project's
extensive GIS activities. The project basemap needed to compliment
the other GIS data and programming created by the project team. For
that reason, manual cartographic methods or stand alone incompatible
drafting systems were not considered.
The analytical and GIS activities for the ICBEMP project took place at
many Forest Service and BLM offices in Portland, Boise, Missoula, and
Walla Walla, so extra efforts were taken for the project to effectively
manage data and processes to avoid duplication and maintain continuity.
This allowed the work to be accomplished simultaneously at many
locations. The building of the ICBEMP terrain map database and AML
programming were integrated with these ongoing GIS activities, so that
the ICBEMP team in different locations had access to the map in digital
form.
The ICBEMP location map served as a basemap upon which
numerous overlays were developed and displayed in public meetings. This
was the key to the creation of published maps for the project and to
further integrate the ICBEMP terrain map into the ongoing GIS work of
the project. As each of the different analysis teams complete their
work, new thematic data were developed and refined into a publishable
form for the Environmental Impact Statement (EIS) documents, public
display and other uses. This allowed cartographic products to be
produced and used throughout the entire process, rather than just in
the publication process.
The existing mapmaking environment
The existing mapmaking environment contributes heavily to the
requirements list for a given map. The customer usually provides the
primary statement of need, but is unaware that there is a "standing
set" of requirements or "standards" mapmakers must meet. This "standing
set" of requirements may include items such as map accuracy, agency
citation and logo, map formats, data symbology, scale bars, meta data,
and disclaimers. The ICBEMP terrain map requirements took into account
the existing mapping practices of the agencies participating in the
project as much as possible. But since the terrain map was an entirely
digital product and most agency standards are written for manual
cartography, certain adaptations had to be made.
The hardware and software capabilities
Hardware and software capabilities had a direct influence on some of
the mapping requirements for ICBEMP terrain map. Part of the
requirements definition process for a map is to assess the feasibility
and methods for meeting user needs. In digital cartography, the
mapmaker is always working within the limitations of the hardware and
software. For example, the ICBEMP terrain map had to be less than 36
inches the Y direction because the maximum plotter size available to
the project was 36 inches. On the positive side Arcplot allows raster
and vector data in the same plot meta file, so a terrain backdrop could
be added to the map image. Throughout the creation of the ICBEMP
terrain map, the hardware and software capabilities and limitations
were always in a state of inter-play between limitations and
capabilities. As new hardware and software capabilities became
available or known, they were taken into account in the ICBEMP mapping
process.
Academic and professional expectations
The last of the requirements given consideration were the unwritten
expectations of academic and professional geographers, cartographers,
and other scientists of the ICBEMP team. The mapmakers who created the
ICBEMP terrain map interjected their own requirement. The ICBEMP
terrain map must be of "professional" quality meeting or exceeding
current academic and professional standards. By adding this
requirement, the ICBEMP terrain map team assured the project office
they would receive an excellent product at their disposal.
HOW WERE REQUIREMENTS TRANSLATED TO MAP FEATURES?
Unfortunately, beautiful maps do not spring spontaneously from the
computer whenever the button is pushed, nor does a detailed list of
requirements cause that to happen either. The creation of the ICBEMP
terrain map is the result of months of work. Mapmakers must translate
many user needs into a single visual system where many disparate
tidbits of information live together harmoniously upon the page.
A good deal of thought went into planning the conceptual makeup of the
map. Several weeks were spent analyzing other beautiful location maps.
These maps included products published in the yearly Esri Map Book,
National Geographic Maps, maps in a number of atlases, and maps created
by the BLM and Forest Service. Lengthy discussions were held to
discuss the positive and negative features of these maps and to
determine what features were appropriate for the ICBEMP terrain map.
The process of interpreting user needs against program capabilities and
limitations, existing standards, project continuty concerns and
professional practices is complex and often happens inside the mind of
the mapmaker. These discussions led to the singular conceptual vision
of the ICBEMP terrain map and list of features it should have. This
list is discussed below:
Traditional equilateral design
This overall format was selected because it provides universal appeal
and look to the product. This is characterized by formal borders,
neatline and balanced symmetry and is based on an equilateral triangle
inscribed in a rectangle. The title resides at the apex of the
triangle with the logo, citation, legend, scale bar, locator map along
the base of the triangle. This style includes using the Albers Equal
Area map projection, which reinforces the triangular design. This map
would be presented as a "wall map" since its primary purpose was to be
a display and reference map.
ICBEMP terrain map themes
The ICBEMP team did not specify any particular themes for the project
reference map other than the Columbia River and the ICBEMP study area
boundary. In the analysis of other reference maps and user
requirements, the following themes were identified for inclusion on the
map: Elevation, major water bodies including oceans, bays, major
rivers and lakes, major transportation routes including federal state
and local categories, urban areas, cities and towns, political
boundaries such as county, state and international boundaries. The
ICBEMP boundary was also included in the map.
Elevation based "Painted relief"
Because of the emphasis on ecosystems and landscape management, special
attention was given to establishing a tinted shaded relief theme,
rather than portraying elevations as contours, or spot elevations. Many
traditional atlases use "painted relief" to show elevation and terrain
together to portray landscapes. Painted relief makes understanding
complex geography easier for novice map users. This was deemed
appropriate for the ICBEMP terrain map since mapreading is an onerous
task for the public.
Extensive text entries with all text "parallel with the
parallels"
It is important to provide place names for all important geographic
features. The extent and effect management plans are communicated more
effectively when map users can find features on the map they know, such
as their home town, a mountain range or their favorite fishing lake.
Then a connection is made between the proposed action and the cognitive
mind of the map user. All of the text entries on the map were rotated
to be parallel with lines of latitude to enhance their look and
readability. Rotated text also reinforces subtly the equilateral
design and compatibility with the albers map projection and latitude
and longitude grid. Features annotated included cities and towns,
counties, states, countries, rivers, lakes, and highways.
Double bar scale showing English and metric units
Both English and Metric bar scales are provided to satisfy BLM and
Forest standards and as a convenience to domestic and interational map
users. Map projection information is also provided to satisfy
traditional map meta data concerns.
Latitude longitude reference grid
A latitude/longitude grid provides universal locational information as
well as a traditional cartographic look to the map.
Agency logos, citation and disclaimer
These are important cartographic additions which provide information
about who is responsible for the product. A locator map is also
provided to show on a national basis the location of ICBEMP. These
cartographic decorations are specified in BLM and Forest Service
mapping standards and also appear on most traditional maps.
HOW WAS THE COLORFUL TERRAIN BACKDROP CREATED?
Of all the inquiries made concerning the ICBEMP terrain map, this is
the most asked question. People are impressed by the beautiful
landscape portrayal of the Columbia River Basin and want to know how it
was achieved.
In the world of computers and geographic information systems (GIS),
creation tinted or "painted" relief is not as direct a process as it
once was. In the past, relief maps were created by cartographers used
artistic implements such as pen and pad, water colors, etching tools,
or air brush and ink to directly apply terrain information to the page.
Todays map makers must create "painted relief" by manipulating digital
data with computer programs which in turn command mechanical devices to
paint the screen or paper. Fortunately, ArcInfo provides an abundance
of software tools which can be used for this purpose. There are ample
digital elevation data available so that "painted relief" could be
created for nearly anywhere on Earth.
Color behavior Formula for creating Painted Relief
Creating the colorful terrain backdrop for ICBEMP terrain map was easy,
once the basic relationship between color and shadow was understood.
Color behavior on the landscape appears to be a function of the sun's
relationship to the shape of the land. Changes in a color's value
exhibits a linear relationship to the distribution of highlights and
shadows as they drape across the lands many folds and undulations. This
hypothesis agrees with common sense: a color's values diminishes as
shadows darken (green is green in full light but becomes darker green
in less light and black in no light). This phenomena is the essential
kernal in the processing model for creating "painted relief." A simple
relationship model which resembles these principles is expressed by the
simple formula:
P = A * I
where
P is the shaded color
value
A is the color
I is the landscape
illumination value
The RGB Color Model
Unlike an artist who can buy paint in the desired color, computers
create color through numerical representations of color, and you must
specify those numbers to obtain the desired color. Computer programs
utilize color "models" to organize this process. Three popular color
models in wide use are the RGB (red, green, and blue) model, the HSV
(hue, saturation, and value) model, and the CMY(cyan, magenta, and
yellow) model. There is no particular advantage of one over another.
The color model one chooses to use is based on experiences with
software, hardware, and other intangibles. The ICBEMP terrain backdrop
was created using the RGB color model. In this model any given color
is composed of red, green, and blue values each with a numerical range
of 0 to 255. This model provides a palette of more than sixteen
million colors to choose from, although the number of simultaneous
colors you can display depends on the color capabilities of the device
you are using.
The assignment of color to elevation values
The first step in creating painted relief for ICBEMP terrain map was to
create a new dataset based on assignment of values from a look-up table
which classified elevations by 500 foot increments. The first three
classes are the exception to this: -10000 to 0 represent water, and 0
to 250 and 250 to 500 lowlands which needed extra definition. This
assignment was performed in the Arc/Grid system using the RECLASS
function and a lookup table. This elevation look-up table has a file
name of elev.lut and is shown below: /* file name: elev.lut
/*
elevation range :reclass value
-10000 0000 : 1
0000 0250 :
2
0250 0500 : 3
0500 1000 : 4
1000 1500 : 5
1500
2000 : 6
2000 2500 : 7
2500 3000 : 8
3000 3500 :
9
3500 4000 : 10
4000 4500 : 11
4500 5000 : 12
5000 5500 : 13
5500 6000 : 14
6000 6500 : 15
6500
7000 : 16
7000 7500 : 17
7500 8000 : 18
8000 8500 :
19
8500 9000 : 20
9000 9500 : 21
9500 10000 : 22
10000 20000 : 23
To assign color to the newly
classified data set another lookup table is used to relate the reclass
value shown above to the RGB value for the desired color. These values
are stored in a file called color.lut. That file is shown below:
/* file name: color.lut
/* reclass value red green blue
1
8 129 242
2 113 153
89
3 117 170 101
4 149
190 113
5 178 214 117
6
202 226 149
7 222 238 161
8
242 238 161
9 238 222 153
10
242 206 133
11 234 182 129
12 218 157 121
13 194 141
125
14 214 157 145
15 226
174 165
16 222 186 182
17
238 198 210
18 255 206 226
19
250 218 234
20 255 222 230
21
255 230 242
22 255 242 255
23 255 255 255
Colors are assigned to each reclass value at the time the dataset is
plotted or used in analysis.
The creation of illumination values
The next step in creating the ICBEMP painted relief backdrop was to
create a new dataset where the value for each pixel in the map
represents the hypothetical illumination for that area on the ground.
In traditional cartography, the illusion of terrain was created by
artists rendering the shadowed areas of mountains in picture form. In
the digital world, sophisticated software and widely available
off-the-shelf digital elevation data interact to do this for you. Most
major GIS systems have a special function to create shaded relief. This
capability is available in the Arc/Grid system through the HILLSHADE
function. This function provides a distribution map of hypothetical
illumination values. The values of darks and lights across the
landscape is a function of the sun's angle and the angles of the face
of the land. Based on a user specified sun position, the slope and
aspect of the terrain surface, a numerical index of illumation or shade
value is assigned to each pixel in the map image. When this map is
displayed the illusion of "shaded relief" is created. The ICBEMP
terrain backdrop used an azimuth value of 345 degrees and a solar
altitude of 65 degrees. The vertical exaggeration was set to 3.28089.
The product of the HILLSHADE function is a new data set with values
ranging from 0 to 255. These values utilize an 8-bit gray scale and
needed to be converted to "percent illumination" for use bythe "Color
behavior Formula" mentioned above. This conversion is performed by
dividing values the HILLSHADE dataset by 255. This creates a new
dataset where values range from 0 to 1. These values can be thought
of in "percent illuminated" terms. Fully illuminated terrain has pixel
values of one or 100 percent, half illuminated pixels have a value of
.5 or 50 percent illuminated and totally dark areas have a value of
zero or zero percent illuminated. Thinking in terms of percent
illuminated, is a more natural way of thinking about illumination in
relation to color value.
Creating the painted relief backdrop
The final steps in creating the painted relief backdrop is to run the
Color behavior Formula for creating painted relief using the classified
elevation map and the hillshade illumination map. In the Arc/Grid
system there is no way to run the formula using alpha definitions of
color such as green or blue, instead the capability to do this is
available in the Arc/Grid system through the use of three related
commands: color2red, color2green, and color2blue. The color2(X)
commands allow new datasets to be created based on red, green and blue
value found in the color lookup table. These color2(X) datasets are
then multiplied by the hillshade illumination data and the final red,
green, and blue data sets are created. The actual painted relief is
created by the GRIDCOMSPOSITE RGB command in Arc/Plot where the three
final red, green, and blue data sets are displayed simultaneously.
The above process has been captured in an AML program shown below:
/* relief.aml
/* by
/* jeffery s. nighbert
/* bureau of
land management
/* 1515sw 5th ave
/* portland oregon 97208
/* phone 503-952-6399
/* email: jnighber@or.blm.gov
/*
/*
aml creates "painted relief"
/*
/* assumptions:
/* you're
in grid and your window and mapextent are set
/*
/* needs two
lookup tables
/* elev.lut - classifies elevation every 500 feet -
class 1 is water
/* color.lut - green to brown to white color ramp
23 categories - 1 is
/*
/* to run:
/* &r relief
/*
/* arg definitions
/* elev_map -- an
elevation map with Z values in meters
/*
&echo &on
&args
elev_map
/* kill off some maps
kill red
kill green
kill
blue
kill slice
kill hill
kill illum
/*The assignment
of color to elevation values
/* reclassify elevation using
elev.lut
slice = reclass(%elev_map% * 3.28089,elev.lut)
/* create a hillshade map then divide by 255
hill =
hillshade(%elev_map%,345,65,#,3.28089)
illum = float(hill) /
255
/* use color2(X) commands at the same time use other
functions
/* int reduces the size of final grids
/*
con(isnull(),255 takes care of nulls in the map and assigns them
red = int(con(isnull(color2red(slice,color.lut,nowrap) ~
*
illum),255,(color2red(slice,color.lut,nowrap) ~
* illum)))
green = int(con(isnull(color2green(slice,color.lut,nowrap) ~
*
illum),255,(color2green(slice,color.lut,nowrap) ~
* illum)))
blue = int(con(isnull(color2blue(slice,color.lut,nowrap) ~
*
illum),255,(color2blue(slice,color.lut,nowrap) ~
* illum)))
/* use "gridcomposite rgb red green blue" to display the
results
gridcomposite rgb red green blue
&return
WHAT WERE THE DATA SOURCES FOR THE MAP?
The ICBEMP terrain map was derived entirely from two data sources. The
shaded relief backdrop is based on a digital elevation data created was
by merging 177 separate 3 arc second digital terrain files available
from United State Geological Survey. The elevation data was resampled
to 250 meter resolution before the "painted relief" processing
occurred.
All other data, except for the project boundary, was derived from the
Digital Chart of the World. However, it required extensive update and
editing to make the data reflect current geography. All transportation
lines were edited to reflect the current and true route and highway
type according to several popular sources, including the AAA atlas. All
rivers were recoded to reflect two codes. Code one indicated a major
drainage and received a heavier blue line than Code two which received
a thin blue line. Although important cities were included, their
status and location had to be verified and edited. The position of the
text labels also had to be edited to avoid overwrites and other
conflicts. Yet the use of these data sets save a great deal of time
over generating the data from scratch.
ARE THE AML PROGRAMS USED TO CREATE THIS MAP AVAILABLE
TO THE PUBLIC?
All of the AML programs used to create the ICBEMP map are available to
the public. Some of the have been enclosed in the Appendices.
Questions or copies of other related AML programs may be obtained by
email to:
jnighber@or.blm.gov
CONCLUSIONS
The notariety and success of the ICBEMP terrain map can be attributed
to the careful adherance to user requirements, traditional design, a
painted relief backdrop and extensive text entries. This map will
serve as a model for future mapmakers and an reminder that professional
mapmaking can be done with computers as long as the basic principles of
cartography are followed.
ACKNOWLEGEMENTS:
Mike Moscoe for help in editing this presentation.
APPEDIX 1
/* relief.aml
/* by
/*
jeffery s. nighbert
/* bureau of land management
/* 1515sw 5th
ave
/* portland oregon 97208
/* phone 503-952-6399
/*
/* aml creates "painted relief"
/*
/* assumptions:
/*
you're in grid and your window and mapextent are set
/*
/*
needs two lookup tables
/* elev.lut - classifies elevation every
500 feet - class 1 is water
/* color.lut - green to brown to white
color ramp 23 categories - 1 is
/* very blue
/*
/* to
run:
/* &r relief
/*
/* arg definitions
/*
elev_map -- an elevation map with Z values in meters
/*
&echo
&on
&args elev_map
kill red
kill green
kill blue
kill slice
kill hill
kill illum
slice = reclass(%elev_map%
* 3.28089,elev.lut)
/* you may wish to adjust the altitude and
ve on this one
hill = hillshade(%elev_map%,345,45,#,1.2)
illum
= float(hill) / 255
red =
int(con(isnull(color2red(slice,color.lut,nowrap) * ~
illum),255,(color2red(slice,color.lut,nowrap) ~
* illum)))
green = int(con(isnull(color2green(slice,color.lut,nowrap) * ~
illum),255,(color2green(slice,color.lut,nowrap) ~
* illum)))
blue = int(con(isnull(color2blue(slice,color.lut,nowrap) * ~
illum),255,(color2blue(slice,color.lut,nowrap) ~
* illum)))
/* use "gridcomposite rgb red green blue" to display the
results
&return
elev.lut
-10000 0000 : 1
0000 0250 : 2
0250 0500 : 3
0500 1000 : 4
1000 1500 : 5
1500 2000 : 6
2000 2500 :
7
2500 3000 : 8
3000 3500 : 9
3500 4000 : 10
4000
4500 : 11
4500 5000 : 12
5000 5500 : 13
5500 6000 :
14
6000 6500 : 15
6500 7000 : 16
7000 7500 : 17
7500
8000 : 18
8000 8500 : 19
8500 9000 : 20
9000 9500 :
21
9500 10000 : 22
10000 20000 : 23
color.lut
1 8 129 242
2 113 153 89
3 117 170 101
4 149
190 113
5 178 214 117
6 202 226 149
7 222 238 161
8 242
238 161
9 238 222 153
10 242 206 133
11 234 182 129
12
218 157 121
13 194 141 125
14 214 157 145
15 226 174
165
16 222 186 182
17 238 198 210
18 255 206 226
19 250
218 234
20 255 222 230
21 255 230 242
22 255 242 255
23
255 255 255
APPENDIX 2
/* by jeffery s. nighbert
/* united states dept of
interior
/* bureau of land management
/* 1515 sw 5th ave
/*
portland, oregon 97201
/* phone 503-952-6399
/* fax
503-952-6419
/* main aml program for interior columbia basin
terrain map
/* executed from the arc prompt with map output scale
as an arg
&args scale
&echo &on
&watch terrain.watch
&amlpath /nfs/pdtk/arc/aml
ap
display 1040
eemp_terrain
pageunits inches
pagesize 60 36
mapprojection off
weeddraw off
/* check mape based on actual
min/max of cover or grid
&s cover := ../raster/hill_250
&describe %cover%
&if [exists %cover% -grid ] &then
&do
&s xmin := %grd$xmin%
&s ymin := %grd$ymin%
&s xmax := %grd$xmax%
&s ymax := %grd$ymax%
&end
&else
&if [exists %cover% -cover ] &then
&do
&s xmin := %dsc$xmin%
&s ymin := %dsc$ymin%
&s xmax := %dsc$xmax%
&s ymax := %dsc$ymax%
&end
&else
&return &warning Cover or Grid does not
exist...
mape %xmin% %ymin% %xmax% %ymax%
mapunits meters
&s scale := %scale%
mapscale %scale%
maplimits [show convert map %xmin% %ymin% page ],~
[show convert
map %xmax% %ymax% page ]
/* painted relief
gridcomposite rgb ../raster/red_250 ../raster/green_250
../raster/blue_250
/* contours if you want them or planimetric
map
/* lineset blmoso1.lin
/* linesymbol 101
/* linecolor
goldenrod
/* reselect contours line hylnval = 1000 or hylnval =
3000 or hylnval =
/* 5000 or hylnval = 7000 or hylnval = 9000 or
hylnval = 11000 or hylnval
/* = 13000
/*
/* arcs
contours
/*
/*
/* water features
/*
shadeset
colornames.shd
lineset blmoso1.lin
/* the ocean - used if
planimetric map
/* reselect ocean polys popytype = 2
/*
polygonshade ocean 52
/*
/* lakes
shadeset
colornames.shd
shadecolor rgb 8 129 242
shadeput 45
/*
/* perennial lakes or open water
reselect lakes poly dnpytype eq
1
polygonshade lakes 45
clearselect
/*
/* dry lakes
reselect lakes poly dnpytype eq 2
polygonshade lakes 47
clearselect
/*
/* legend for lakes and water
shadeset
colornames.shd
textset font.txt
/*
/* legend dry lake
/*
shadesymbol 47
patch 8 1.0 8.3 1.1
lineset
blmoso1.lin
linesymbol 1
box 8 1.0 8.3 1.1
move 8.4 1.0
textsymbol 24
textsize .1
textquality kern
text 'Dry Lake'
ll
/*
/* legend oepn water
/*
shadecolor rgb 8 129
242
shadeput 45
patch 8 .8 8.3 .9
box 8 .8 8.3 .9
move
8.4 .8
textsymbol 24
textsize .1
textquality kern
text
'Open Water' ll
/*
/* Urban Area
/*
reselect
eemp_pppoly poly area gt 7500000
polygonshade eemp_pppoly 84
linecolor firebrick
textsymbol 24
linesymbol 101
linecolor
firebrick
polys eemp_pppoly
shadesymbol 84
patch 11.5 .8
11.8 .9
box 11.5 .8 11.8 .9
move 11.9 .8
textsize .1
text 'Urban Area' ll
/*
/* streams
/*
lineset
blmoso1.lin
textset font.txt
textsymbol 24
textsize .1
textquality kern
linesymbol 5
linecolor rgb 0 102 255
clearselect
reselect eemp_str line dnlntype lt 3
reselect
eemp_str line linetype = 1
linesize .015
arcs eemp_str
clearselect
line 8 1.2 8.3 1.2
move 8.4 1.2
text 'Major
River' ll
clearselect
/*
/* dry lakes
/*
reselect
eemp_str line dnlntype lt 3
reselect eemp_str line linetype = 2 or
linetype = 0
linesymbol 5
linecolor rgb 0 102 255
arcs
eemp_str
clearselect
line 8 1.4 8.3 1.4
move 8.4 1.4
text 'River' ll
/*
/* reselect oceans
/*
/*
/*
polys ocean
/*
/*
/* clearselect
/*
/*
/*
water feature labels
/*
textset font.txt
annotext eemp_str
all
/*
/* Interior Columbia Basin Project Area
/*
lineset carto.lin
linesymbol 104
polys crba
clearselect
line 9.5 .825 9.8 .825
textset font.txt
textsymbol 24
textsize .1
textquality kern
move 9.9 .8
text 'Assessment Boundary' ll
/*
/* administrative
features
/*
lineset carto.lin
textset font.txt
arclines cnty lsym
annotext cnty c_name
/*
/* state
names
/*
annotext eemp_ponet state
/*
/* legend for
lines
/*
linesymbol 133
line 9.5 1.4 9.8 1.4
move 9.9
1.4
text 'County Line' ll
linesymbol 122
line 9.5 1.2 9.8
1.2
move 9.9 1.2
text 'State Line' ll
linesymbol 143
line 9.5 1 9.6 1
line 9.65 1 9.7 1
line 9.75 1 9.8 1
move
9.9 1
text 'International Boundary' ll
/*
/*
transportation
/*
weeddraw off
lineset blmoso1.lin
textsymbol 24
textsize .1
textquality kern
/*
/* 5
other road - solid red tiny
/*
reselect eemp_rdline arcs
linetype = 5
linesym 2
linetype wide
linesize .006
/*
/* linehollow .02
/*
linepen .005 butt miter
arcs
eemp_rdline
line 6 1.4 6.3 1.4
move 6.4 1.4
text 'Major
Road' ll
clearsel
/*
/* 4 - Principal Through Highways -
clear red
/*
reselect eemp_rdline arcs linetype = 4
linesym 1
linetype wide
linesize .02
linehollow .02
linepen .005 butt miter
linecolor red
arcs eemp_rdline
line
6 1.2 6.3 1.2
move 6.4 1.2
text 'Principle Through Highway'
ll
clearsel
/*
/* 3 - Other Divided Highways - solid
black
/*
reselect eemp_rdline arcs linetype = 3
linesymbol
102
linetype wide
arcs eemp_rdline
line 6 1.0 6.3 1.0
move 6.4 1.0
text 'Divided Highway' ll
clearsel
/*
/*
2 - Other Divided Highways - solid red
/*
reselect eemp_rdline
arcs linetype = 2
linesymbol 102
linetype wide
linecolor
red
linesize .03
arcs eemp_rdline
clearsel
/*
/* 1
- Controlled Access Highways - fat red
/*
reselect eemp_rdline
arcs linetype = 1
linesymbol 302
linesize .03
line 6 .825
6.3 .825
arcs eemp_rdline
linesym 1
linetype wide
linesize .035
linehollow .035
linepen .003 butt miter
arcs
eemp_rdline
line 6 .825 6.3 .825
move 6.4 .8
text
'Controlled Access Highway' ll
lineset blmoso1.lin
linesymbol
1
arcs eemp_rdline
line 6 .825 6.3 .825
/*
/* highway
symbols
/*
markerset blmoso1.mrk
markersym 1
markersize .1
reselect roadsym points symtype = '1'
/*
/*
points roadsym
/*
textset font.txt
textsym 1
textsize
.08
textcolor white
/*
/* pointtext roadsym hwy # cc
/*
&r markerangle
clearsel
markerset blmoso1.mrk
markersym 2
markersize .1
reselect roadsym points symtype = '2'
and hwy lt 100
/*
/* points roadsym
/*
textset
font.txt
textsym 1
textsize .08
textcolor black
/*
/* pointtext roadsym hwy # cc
/*
&r markerangle
clearsel
reselect roadsym points symtype = '2' and hwy gt 100
/*
/* points roadsym
/*
textset font.txt
textsym
1
textsize .08 .05
textcolor black
/*
/* pointtext
roadsym hwy # cc
/*
&r markerangle
clearsel
markerset
blmoso1.mrk
markersym 3
markersize .08
reselect roadsym
points symtype = '3' and hwy lt 100
/*
/* points roadsym
/*
textset font.txt
textsym 1
textsize .08
textcolor
black
/*
/* pointtext roadsym hwy # cc
/*
&r
markerangle
clearsel
reselect roadsym points symtype = '3' and
hwy gt 100
/*
/* points roadsym
/*
textset
font.txt
textsym 1
textsize .08 .05
textcolor black
/*
/* pointtext roadsym hwy # cc
/*
&r markerangle
clearselect
/*
/* populated places points and text
/*
textset font.txt
textangle 0
units page
textsymbol 24
textoffset 0 0
markerset water.mrk
markersymbol 109
linesymbol 1
markersize .05
linesymbol 1
pensize .001
clearselect
points cities
annotext cities cities
lineset
carto.lin
linesymbol 101
textsize .1
/*
/* collar
info
/*
&s thinx := [calc 1.4 + [extract 1 ~
[show
convert map %xmax% %ymax% page ]
&s thiny := [calc 1.4 + [extract
2 ~
[show convert map %xmax% %ymax% page ]
&s thickx := [calc
1.5 + [extract 1 ~
[show convert map %xmax% %ymax% page ]
&s
thicky := [calc 1.5 + [extract 2 ~
[show convert map %xmax% %ymax%
page ]
box .6 .6 %thinx% %thiny%
linesymbol 104
box .5 .5
%thickx% %thicky%
linesymbol 101
&s xmid := [calc [ calc
%thickx% / 2 ] + .25 ]
&s ymid := [calc [ calc %thicky% / 2 ] +
.25 ]
&s titley := [calc %thicky% - .75 ]
/*
/* inset
map
/*
&s xinsetmin := [calc %thickx% - 2.1 ]
&s yinsetmin
:= .8
&s xinsetmax := [calc %thickx% - .5 ]
&s yinsetmax :=
1.8
plot /usr4/eemp/inset/crba_inset box %xinsetmin% .7 %xinsetmax%
2
/*
/* projection information
/*
move %xmid% .82
textsymbol 24
textsize .12
text 'Albers Equal Area Projection
centered on 117 Degrees West' lc
move %xmid% .7
text 'Standard
Parallels: 43 and 48 Degrees North, Origin: 41 Degrees
North, NAD
1927' lc
/*
/* originator
/*
textsize .08
move .5
.4
text 'February, 1995 - BLM - OR955.2 - JSNIGHBERT' ll
move
%xmid% .3
textsize .12
textcolor red
text 'D R A F T'
lc
move %xmid% %titley%
textset font.txt
textsymbol 23
textsize .75
textspacing 2
textangle 0
text 'Interior
Columbia Basin Ecosystem Management Project' cc
textspacing 1
textsymbol 24
textquality kern
/*
/* barscale aml program
by dave mandel
/*
&r mk2barscale2 %xmid% 1.25 %scale% 5
miles/km
plot eemp_logo1.gra box .7 .7 2 2
/*
/* agency
citation
/*
textset font.txt
textsymbol 23
textsize
.14
textquality kern
move 2.0 1.65
text 'Interior Columbia
Basin' ll
move 2.0 1.5
text 'Ecosystem Management Project'
ll
textsymbol 24
textsize .12
move 2.0 1.35
text '112
East Poplar Street' ll
move 2.0 1.23
text 'Walla Walla, WA
99362' ll
move 2.0 1.10
text 'PH: (509)522-4030 FAX:
(509)522-4025' ll
move 2.0 .95
/*
/* disclaimer
textfile
/*
textsymbol 23
textsize .08
textfile
disclaimer
/*
/* statement of scale
/*
move %xmid%
1.8
textsymbol 24
textsize .12
text 1:%scale% uc
linesymbol 1
textsize .1
/*
/* latlong grid program by
dave mandel
/*
&r mkgeogrid1 1 mapextent mkgeogrid1.prj 1 0 1
0 -1 +1 1 0 1 0 -3 +3
&echo &on
/*
/* north arrow program
by jsnighbert
/*
units page
shadeset colornames.shd
markerset north.mrk
markersymbol 12
markersize .5
markercolor black
p&r northangle -125 41
mapprojection off
units page
/*
/* neatline
/*
box [ show convert map
%xmin% %ymin% page],~
[ show convert map %xmax% %ymax% page
]
box .01 .01 .015 .015
/* done with plotting - on to
postscript and alchemy
quit
rm
/usr6/tmp/eemp_terrain.eps
rm /usr6/tmp/eemp_terrain.rtl
postscript eemp_terrain.gra /usr6/tmp/eemp_terrain.eps 1
normal.prm
alchemy /usr6/tmp/eemp_terrain.eps --r -Zm2 -Ze1
-Zr90 -ds3
/usr6/tmp/eemp_terrain.rtl
lp -d hpplot
/usr6/tmp/eemp_terrain.rtl
&watch &off
&RETURN
APPENDIX 3
/* textangle.aml
/* by
/* jeffery s. nighbert
/* bureau of
land management
/* 1515 sw 5th ave
/* portland, oregon
97208
/* phone 503-952-6399
/*
/* this aml will rotate text
to the angle of latitude
/*
/* assumes running from
arcplot
/*
/* needs two projection parameter files
/*
current_projection to geographic (sample file: eemp_geo.prj)
/*
geographic to current_projection (sample file: geo_eemp.prj)
/*
/* to run:
/* textangle