Monovariate Symbolization
As with point symbolization, the AMLs discussed in this chapter start out relatively simply, and the output could be accomplished almost as readily by hand. Like the monovariate point AMLs, these AMLs are primarily background for the bi- and multivariate AMLs of later sections.
ARC/INFO provides a default set of lines in the lineset file, PLOTTER.LIN; there are several other available linesets: 50.LIN, BW.LIN, CALCOMP2.LIN, CARTO.LIN, COLOR.LIN, HP.LIN, and OILGAS.LIN. These are displayed in the Map Display and Query guide's Appendix A, and the ability to create new symbols sets is discussed in chapter three of Map Display and Query.
Nominal Data--Hue
Figure 4.1a: LH.aml Nominal data in an arc coverage distiguished by hue with the color.lin lineset.
Hue is best used for nominal data, and the COLOR.LIN lineset provides fifteen symbols of the same shape, but each with a different color. All of the other linesets, except BW.LIN, have the same symbol in black, red, green and blue. This AML (LH.aml) uses the COLOR.LIN lineset for generating a display for arcs--see the next section for display of routes, and Figure 4.1a.
LH <cover> <data_item>
<lookup_table> <lineset>
<cover>- the arc coverage to be displayed
<data_item>- the data item in <cover> referenced by <lookup_table>
<lookup_table>- an info table that relates <data_item> to <lineset>
<lineset>- a lineset.
Nominal Data--Shape or Texture
Figure 4.1b: LS.aml A nominal data set in a route system distinguised by shape using symbols from plotter.lin.
Shape should be used for nominal data, and a line's shape can be changed in several ways in ARC/INFO. The linesets PLOTTER.LIN, TEMPLATE.LIN and OILGAS.LIN have symbols that change in shape. LINESET can be used to select one of these, and LINESYMBOL can be used to change the shape of the current line type, as well as change the line color and width (although the selection is limited). This allows the selecting of several different shapes; the LINETYPE command allows the generation of nine other types of shapes.
Texture is best used for nominal data, and the CARTO.LIN lineset provides many ready-to-use symbols that vary in texture (such as lines 106, 110, 114 and 118). These symbols can be selected by using LINESET to select this symbol set, and LINESYMBOL to select the individual symbols. A line's texture can also be directly varied; LINEINTERVAL and LINETEMPLATE can be used to control texture. LINEINTERVAL determines the space between successive parts of a line symbol; it defaults to 0 (no space). LINETEMPLATE requires that a lineinterval be set. The LINETEMPLATE command then allows control over both the length of the mark and the length of the space between marks. The <template> digits are used to scale the lineinterval, with the first digit used for a line length, the second for a space size, the third for a line, etc. For example, if the lineinterval is set to 0.25 inches and linetemplate is set to 2122, a line pattern of: a line 0.5 inches long, followed by a space 0.25 inches long, followed by a line 0.5 inches long, followed by a 0.5 inches long space is used to draw new lines. LS.aml uses a preset lookup table to select line symbols for routes (see Figure 4.1b).
LS <cover> <route> <data_item>
<lookup_table> <lineset>
<cover>- the route coverage to be displayed
<data_item>- the data item in <cover> referenced by <lookup_table>
<lookup_table>- an info table that relates <data_item> to <lineset>
<lineset>- a lineset.
Ordinal Data--Value
Figure 4.1c: LV.aml Classed ratio (ordinal) data displayed with color value by using a lookup table.
Color value is best used for ordinal data, and the application of lookup tables to a ratio data set, provides this data level. This AML (LV.aml) requires an ordinal or ratio lookup table that specifies HLS color value (0 to 80) in its symbol column. So the AML can control line value, any LINETYPE except hardware can be used. The AML uses LINETYPE WIDE; this allows control of the width of a solid line, which should be wide enough that dithering will not cause the line to appear broken (a line width of at least 0.02 inches on a 300 dpi printer). See Figure 4.1c.
LV <value_lookup> {size} {hue}
{intensity}
<value_lookup>- a lookup table generated by SETMAN or JENKS
{size}- a line width--the default is 0.1 inches
{hue} {intensity}- specify a color that will be value shaded.
Ratio Data--Size
Figure 4.1d: LZ.aml Ratio data displayed with size; sizes are calculated by scaling the data in the coverage Arc Attribute Table.
Size can be used for ordinal data, and the PLOTTER.LIN, CARTO.LIN and OILGAS.LIN linesets provide symbols that vary in size. An appropriate lineset can be selected with the LINESET command, and used with a lookup table that relates changes in data values to changes in size. For interval/ratio level data, the LINESIZE command allows direct control of a line's width. Prior to using the LINESIZE command however, the LINETYPE command must be given with a type not equal to HARDWARE. A LINETYPE such as WIDE can be used. Once this is done, the line's width can be controlled to represent data. This AML uses the interval/ratio method to control width (see Figure 4.1d and LZ.aml).
LZ <cover> <size_item> {size_exponent}
{size_factor} {minimum_size} {linetype}
<cover>- the arc coverage to be displayed
<size_item>- an interval/ratio data item in the Arc Attribute Table of <cover>
{size_exponent} {size_factor} {minimum_size}- define the scaling of sizes,
defaults: size_exponent = 1; size_factor = 0.15; minimum_size = 0.02 inches
All of the size symbolization AMLs use the formula:
size = size_factor (normalized_data_value
size_exponent) + minimum_size
This is just a formula for a line in x (normalized_data) and y (symbol size) space (with size_exponent set to one), with the ability to create non-linear progressions (with size_exponent not equal to one). The slope of the line is determined by size_factor, and the y-intercept of the line is minimum_size. The data is normalized prior to calculating the size in order to set the minimum data value to minimum_size; data values are normalized by:
normalized_data_value = (actual - minimum) /
(maximum - minimum)