Using Ezmap


Previous Chapter          Tutorial Home          Next Chapter

Table of contents

Using Ezmap

Mp 1. What is Ezmap?
Mp 1.1 Table of Ezmap user entry points
Single-call entry point
Map initialization routines
Latitude, longitude, and limb line drawing routines
Labeling routine
Map drawing and control routines
Positioning routines
Point and line routines
Color function
Inverse transformation routine
Parameter routines
Mp 1.2 Table of Ezmap parameters
Mp 1.3 Table of Ezmap map projections
Mp 1.4 Description of projections: Conic
Mp 1.5 Description of projections: Azimuthal
Mp 1.6 Description of projections: Cylindrical
Mp 1.7 Producing a quick and dirty plot
Mp 1.8 What calls do I need to get my Ezmap plot?
Mp 1.9 Ezmap parameters: What they do and how to use them
Mp 2. Getting set up
Mp 2.1 Positioning the plot in the frame
Mp 2.2 Choosing your map projection
Mp 2.3 Choosing your map projection: Satellite view
Mp 2.4 Choosing map outlines to be drawn
Mp 2.5 Setting limits for the projection
Mp 2.6 Setting map line colors
Mp 2.7 Controlling Ezmap lines
Mp 2.8 Controlling geographic and political outlines
Mp 2.9 Rectangular and elliptical perimeters
Mp 2.10 Saving and retrieving Ezmap parameters
Mp 3. Simple maps
Mp 3.1 Initializing Ezmap
Mp 3.2 Grids: Drawing latitude and longitude lines
Mp 3.3 Grids: Dash patterns
Mp 3.4 Labeling
Mp 3.5 Drawing political and geographic outlines
Mp 3.6 A shortcut
Mp 4. Producing maps with masking or filled areas
Mp 4.1 Color and area identifiers in Ezmap
Mp 4.2 Ezmap group identifiers
Mp 4.3 Initialize Ezmap with Areas
Mp 4.4 Labeling
Mp 4.5 Grid lines with masking
Mp 4.6 Grid lines with masking: Writing a masking routine
Mp 4.7 Filling areas
Mp 4.8 Filling areas: Writing a fill routine
Mp 5. Points, lines, and inverse transformations
Mp 5.1 Projecting a point onto the map
Mp 5.2 Inverse transformations
Mp 5.3 Drawing lines on a simple map
Mp 5.4 Drawing a great circle between two points
Mp 5.5 Adding lines to an area map
Mp 5.6 Drawing lines masked by an area map
Mp 6. Table of Ezmap area identifiers
Mp 7. Ezmap parameter descriptions

Mp 1. What is Ezmap?

Ezmap is a color mapping toolkit you can use to generate ten different projections of the globe with various continental outlines, political boundaries, and optional latitude and longitude lines. Ezmap was previously two utilities, Ezmap and Ezmapa.

Examples of Ezmap

Mp 1.1 Table of Ezmap user entry points

The Ezmap utility uses more than one routine to draw maps. The routines listed here cover all Ezmap tasks you may need to perform. This module organizes the routines according to their functions.

Single-call entry point

SUPMAP
Single-call map-drawing routine. See module Mp 1.7.

Map initialization routines

MAPINT
Initializes Ezmap. See modules Mp 3.1 and Mp 4.3.
MAPBLA
Adds the geographical map to an area map. See module Mp 4.3.

Latitude, longitude, and limb line drawing routines

MAPGRD
Draws latitude/longitude grid. See module Mp 3.2.
MAPGRM
Draws latitude/longitude grid with masking. See module Mp 4.5.

Labeling routine

MAPLBL
Labels map. See modules Mp 3.4 and Mp 4.4.

Map drawing and control routines

MAPLOT
Draws geographical and political outlines. See module Mp 3.5.
MAPDRW
Draws a complete map after user sets basic parameters. See module Mp 3.6.
MAPUSR
Changes line attributes for various parts of the map. See module Mp 2.7.

Positioning routines

MAPPOS
Positions map in frame. See module Mp 2.1.
MAPROJ
Sets global map projection. See module Mp 2.2.
MAPSET
Specifies rectangular portion of the u/v plane to draw. See module Mp 2.5.
MAPRS
Re-executes a call to SET. See module Mp 2.10.

Point and line routines

MAPTRA
Projects points onto a geographic map, returns a special value for points that are unprojectable and for points outside the perimeter. See module Mp 5.1.
MAPTRN
Projects points onto a geographic map, returns a special value for points that are unprojectable, but not for points outside the perimeter.
MAPEOD
Examines each outline-dataset segment. See module Mp 2.8.
MAPIT
Draws a line on a map, omitting nonvisible portions. See module Mp 5.3 .
MAPIQ
Terminates a line drawn by MAPIT. See module Mp 5.3.
MAPITA
Used to insert a line in an area map. See module Mp 5.5.
MAPIQA
Used to terminate insertion of a line in an area map. See module Mp 5.5.
MAPITM
Used to draw a masked line. See module Mp 5.6.
MAPIQM
Used to terminate drawing of a masked line. See module Mp 5.6 .
MAPGCI
Returns points interpolated on a great circle between two points. See module Mp 5.4.

Color function

MAPACI
Obtains a color index for a given area such that no two adjacent areas have the same color index. See module Mp 4.1.

Inverse transformation routine

MAPTRI
Computes the latitude and longitude of a point from its u/v coordinates. See module Mp 5.2.

Parameter routines

MAPSAV
Saves current state. See modules Mp 1.9 and Mp 2.10.
MAPRST
Restores state saved by MAPSAV. See modules Mp 1.9 and Mp 2.10.
MPSETC
Sets character parameters. See module Mp 1.9.
MPSETI
Sets integer parameters. See module Mp 1.9.
MPSETR
Sets real parameters. See module Mp 1.9.
MPGETC
Gets character parameters. See module Mp 1.9.
MPGETI
Gets integer parameters. See module Mp 1.9.
MPGETR
Gets real parameters. See module Mp 1.9.

Mp 1.2 Table of Ezmap parameters

This table is a quick reference guide to the examples in which Ezmap parameters are used and the modules in which Ezmap parameters are described. More complete descriptions appear in section "Mp 7. Ezmap parameter descriptions."

The behavior of a typical routine in an NCAR Graphics utility is sometimes determined entirely by the routine's arguments, but frequently it is also affected by the value of one or more of the utility's parameters. A "parameter" is a variable that controls the behavior of a utility; parameters are accessed via parameter-access routines that can set or retrieve the parameter value.

Instructions for setting and retrieving Ezmap parameters are provided in module "Mp 1.9 Ezmap parameters: What they do and how to use them."

----------------------------------------------------------------------------------------
Parameter  Brief description                        Fortran type  Examples  Module        
----------------------------------------------------------------------------------------
AR         ARea                                     Character     ---       Mp 7.         
C1         Color index 1 (for perimeter)            Integer       cmpclr    Mp 2.6        
C2         Color index 2 (for grid)                 Integer       cmpclr    Mp 2.6        
C3         Color index 3 (for labels)               Integer       cmpclr    Mp 2.6        
C4         Color index 4 (for limb line)            Integer       cmpclr    Mp 2.6        
C5         Color index 5 (for continents)           Integer       cmpclr    Mp 2.6        
C6         Color index 6 (for US states)            Integer       cmpclr    Mp 2.6        
C7         Color index 7 (for countries)            Integer       cmpclr    Mp 2.6        
DA         grid DAshline pattern                    Integer       cmpdd     Mp 3.3        
DD         Distance between Dots                    Real          cmplot    Mp 3.5        
DL         Dotted Line flag                         Integer       ---       Mp 7.         
DO         Dotted Outline flag                      Integer       cmplot    Mp 3.5        
EL         ELliptical perimeter flag                Integer       cmpel     Mp 2.9        
ER         ERror                                    Integer       ---       Mp 7.         
G1         Group 1 (group identifier for geo        Integer       cmpgrp    Mp 4.2        
           graphic entities and perimeter)                                                
G2         Group 2 (group identifier for vertical   Integer       cmpgrp    Mp 4.2        
           strips)                                                                        
GD         Grid Drawing resolution                  Real          cmpgrd    Mp 3.2        
GR         GRid spacing                             Real          cmpgrd    Mp 3.2        
IN         INitialization flag                      Integer       ---       Mp 7.         
LA         meridian/pole LAbel flag                 Integer       cmplbl,   Mp 3.4,       
                                                                  cmplab    Mp 4.4        
LS         Label Size                               Integer       cmplbl,   Mp 3.4,       
                                                                  cmplab    Mp 4.4         
MV         Minimum Vector length                    Real          cmplot    Mp 3.5        
OU         OUtline data flag                        Character     cmpou     Mp 2.4        
P1         PLM1(1) value                            Real          ---       Mp 7.         
P2         PLM2(1) value                            Real          ---       Mp 7.         
P3         PLM3(1) value                            Real          ---       Mp 7.         
P4         PLM4(1) value                            Real          ---       Mp 7.         
P5         PLM1(2) value                            Real          ---       Mp 7.         
P6         PLM2(2) value                            Real          ---       Mp 7.         
P7         PLM3(2) value                            Real          ---       Mp 7.         
P8         PLM4(2) value                            Real          ---       Mp 7.         
PE         PErimeter flag                           Integer       cmpel     Mp 2.9        
PN         PLON value                               Real          ---       Mp 7.         
PR         PRojection specifier value               Character     ---       Mp 7.         
PT         PLAT value                               Real          ---       Mp 7.         
RE         REsolution                               Integer       cmplot    Mp 3.5        
RO         ROtation                                 Real          ---       Mp 7.         
SA         SAtellite view distance                  Real          cmpsat    Mp 2.3        
S1         Satellite viewing angle                  Real          cmpsat    Mp 2.3        
S2         Satellite view projection                Real          cmpsat    Mp 2.3        
SR         lat/lon Search Radius                    Real          ---       Mp 7.         
VS         Vertical-Stripping parameter             Integer       cmpgrp    Mp 4.2        
XL         XLOW value                               Real          ---       Mp 7.         
XR         XROW value                               Real          ---       Mp 7.         
YB         YBOW value                               Real          ---       Mp 7.         
YT         YTOW value                               Real          ---       Mp 7.         
----------------------------------------------------------------------------------------

Mp 1.3 Table of Ezmap map projections

--------------------------------------------------
Abbreviation  Projection               Type         
--------------------------------------------------
LC            Lambert Conformal        Conic        
ST            STereographic            Azimuthal    
OR            ORthographic             Azimuthal    
LE            Lambert Equal-area       Azimuthal    
GN            GNomonic                 Azimuthal    
AE            Azimuthal Equidistant    Azimuthal    
SV            Satellite View           Azimuthal    
CE            Cylindrical Equidistant  Cylindrical  
ME            MErcator                 Cylindrical  
MO            MOllweide-type           Cylindrical  
--------------------------------------------------

Mp 1.4 Description of projections: Conic

This module provides background information; it is not required for using or understanding the Ezmap utility.

Ezmap uses three different kinds of projections to project maps of the Earth onto a two-dimensional surface: conic, azimuthal, and cylindrical. Conic projections map the surface of the earth onto a cone which is either tangent to the earth along a single circle or intersects it along two different circles. The cone is then cut from point to mouth, and spread out flat.

Illustration of a conic projection

Discussion

The only conic projection offered by Ezmap is the Lambert Conformal projection. In this projection, the cone passes through the earth at two user-specified latitudes, usually both in the same hemisphere. The cone is cut on the opposite side of the globe from a user-specified meridian (longitude). The cone is then laid flat on the plotter plane with either the north pole or the south pole (depending on your specified latitudes) at the origin.

Mathematically, if LAT1 and LAT2 are the latitudes where the cone passes through the globe, and LAT1<>LAT2, then the "cone constant" is given by:

           LOG (COS(LAT1)) - LOG (COS(LAT2))
    CONE = -------------------------------------------------
           LOG (TAN (45-S*LAT1/2)) - LOG (TAN (45-S*LAT2/2))
where S=1 in the northern hemisphere, and S=-1 in the southern hemisphere.

CONE*360 is the angular separation between the edges of the cut after the cone is opened onto the plane, as measured across the surface of the flattened cone. If (RLAT, RLON) is a point to be projected, then the following formulas give the coordinates of the projected point in the plotter plane.

    R = (TAN (45-S * RLAT/2)) ** CONE
    U = R * SIN (CONE * (RLON-CLON))
    V = -S * R * COS (CONE * (RLON-CLON))
where CLON is the longitude of the central meridian.

If LAT1=LAT2, then the cone is tangent to the globe along the single standard parallel and

    CONE = COS (90 - S * LAT1)
The vertex of the cone is at a distance from the plane of the equator given by D=R/SIN(LAT1), where R is the radius of the earth and LAT1 is the latitude of the single standard parallel. Note that as LAT1 approaches zero, D approaches infinity, and, as LAT1 approaches 90 degrees, D approaches R, the radius of the earth.

The entire globe projects onto the u/v plane minus a wedge with its apex at the origin. This projection is best used to depict midlatitude regions of limited extent, where it is relatively free of distortion. The Lambert Conformal projection preserves angles. A portion of the u/v plane determined by the MAPSET call is the user coordinate system for drawing.

Mp 1.5 Description of projections: Azimuthal

This module provides background information; it is not required for using or understanding the Ezmap utility.

The second kind of projection that Ezmap uses to project a map of the earth onto the plotter frame is the azimuthal projection. Azimuthal projections map the globe onto a plane whose origin touches the earth at the user-specified point (PLAT, PLON). The image may be rotated by the user-specified angle ROTA.

Illustration of an azimuthal projection

Discussion

Ezmap generates azimuthal projections as follows:

  1. Touch a plane (called the u/v plane here) to the earth at latitude 0 and longitude 0 (where the Greenwich parallel meets the equator); the earth is oriented with the North Pole at the top and the South Pole at the bottom.
  2. Rotate the earth about its polar axis until the v axis is tangent to the meridian identified by PLON.
  3. Rotate the earth, tilting one of the poles towards the plane until the point (PLAT, PLON) is touching the plane at its origin.
  4. Rotate the earth clockwise through the angle ROTA about a line perpendicular to the u/v plane passing through the origin.
  5. Use lines emanating from a central point within or behind the earth (depending on the projection) to project the globe onto the u/v plane.
  6. Set up scales along the u/v axes.
  7. Draw a rectangular or elliptical portion of the resulting map. This portion of the u/v plane is the user coordinate system.
If A is the angular separation, in degrees, of the point P to be projected from the point (PLAT, PLON), and if R is the linear distance of the projected point P' from the u/v origin, then the azimuthal projections can be described as relationships between A and R:

Stereographic
    R = TAN(A/2) = (1-COS(A)) / SIN(A)
As A approaches 180 degrees, R approaches infinity. The entire globe is projected onto the entire u/v plane. In practice, distortion becomes great when A is approximately 127 degrees or more. The center of the projection is the point on the earth's surface opposite the point of tangency with the projection plane.
Orthographic
    R = SIN(A)
Points for which A>90 degrees are treated as invisible. Thus, a hemisphere is projected inside a circle of radius 1. The center of the projection is at infinity. All projection lines are parallel to each other and perpendicular to the u/v plane.
Lambert equal-area
    R = 2 * SIN(A) / SQRT(2*(1+COS(A))
As A approaches 180 degrees, R approaches 2. The globe is projected into a circle of radius 2.
Gnomonic
    R = TAN(A)
Points for which A>90 degrees are invisible. Thus, a hemisphere is projected to the entire u/v plane. In practice, distortion becomes great when A is approximately 65 degrees or more. The center of this projection is the center of the earth.
Azimuthal equidistant
    R = A * ¶ / 180.0
As A approaches 180 degrees, R approaches ¶. The globe is projected into a circle of radius ¶.
Basic satellite view
This formula applies only when S1=0, the basic view.
    R = SQRT(SA*SA-1)*SIN(A)/(SA-COS(A))
where SA is the distance, in earth radii, from the center of the earth to a satellite above the point (PLAT, PLON). Points for which COS(A) < 1 / SA are invisible. The portion of the earth's surface that would be visible from the satellite is projected inside a circle of radius 1. The center of the projection is at the satellite's position. As the satellite moves further out, the satellite view projection approaches the orthographic projection. Two parameters, S1 and S2, may be used to modify the basic satellite view projection; they can be used to show the earth as it would look to a simple pinhole camera pointed in a specified direction.

Mp 1.6 Description of projections: Cylindrical

This module provides background information; it is not required for using or understanding the Ezmap utility.

The third kind of projection Ezmap uses to project a map of the earth onto the plotter frame is the cylindrical projection. Cylindrical projections map the earth onto a cylinder that is tangent to the earth along a great circle passing through the user-specified point (PLAT, PLON) and tilted at the user-specified angle ROTA.

Illustration of a cylindrical projection

Discussion

The process of creating a cylindrical projection can be described geometrically in ten steps:

  1. Imagine that the earth is placed behind the u/v (projection) plane so that the point at latitude 0 and longitude 0 just touches the plane at latitude 0 and longitude 0. The north pole is at the top, and the south pole is at the bottom.
  2. Rotate the earth about its polar axis until the v axis is tangent to the meridian identified by PLON.
  3. Rotate the earth by tilting one of the poles directly toward you and the other pole directly away from you until the point (PLAT, PLON) is at the origin of the u/v plane.
  4. Rotate the earth clockwise through the angle ROTA about a line perpendicular to the u/v plane passing through the point at latitude 0 and longitude 0.
  5. Wrap the u/v plane around the globe to form a cylinder with the u axis touching the earth along a great circle.
  6. Using the technique specific to the projection type, project geographical outlines, parallels, and meridians outward from the earth's surface onto the cylinder.
  7. Cut the cylinder along a line parallel to its axis and opposite the origin.
  8. Unwrap the cylinder.
  9. Set up linear scales along the u and v axes.
  10. Draw a rectangular or elliptical portion of the resulting map. This portion of the u/v plane is the user coordinate system.
The technique used in step 6 above is described in the following three paragraphs for each of Ezmap's three types of cylindrical projections in the simple case where PLAT=PLON=ROTA=0. Let RLAT and RLON be the latitude and longitude, in degrees, of a point to be projected. 180<=RLON<=180. (If PLAT, PLON, and/or ROTA are nonzero, you must substitute for RLAT and RLON a pseudo-latitude and a pseudo-longitude computed from the real latitude and longitude.) The cylindrical projections may then be described as follows:

Cylindrical equidistant
    U = RLAT
    V = RLON
where the entire globe is projected into a rectangle in the u/v plane. 180<=U<=180, and 90<=V<=90.
Mercator
    U = RLON * ¶/180.0
    V = ALOG (COT (45 - RLAT/2))
The entire globe is projected onto an infinite rectangle in the u/v plane. -¶<=U<=¶. There are no limits on V. In practice, distortion becomes high for latitudes within 5 degrees of either pole.
Mollweide type
(This is not a true Mollweide projection.)
    U = RLON/90
    V = COS (90-RLAT)
The entire surface of the globe is projected into an ellipse. -2<=U<=2, -1<=V<=1.

References

Hershey, A.V, "The plotting of Maps on a CRT Printer," NWL Report 1844, 1963.

Lee, Tso-Hwa, "Students' Summary Reports, Work-Study Program in Scientific Computing," NCAR, 1968.

Parker, R.L., "2UCSD SUPERMAP: World Plotting Package."

Steers, J.A., An Introduction to the Study of Map Projections, University of London Press, 1962.

Mp 1.7 Producing a quick and dirty plot

SUPMAP creates a map of a desired portion of the globe by using your specifications for the projection, outlines, and latitude/longitude line intervals. An appropriate call to the routine SET is performed, and the routine MAPTRN is initialized so that you may map points of known latitude and longitude to points on the u/v plane and use the u/v coordinates to draw objects on the map.

A quick and dirty map

Code segment from cmpsup.f

1       REAL PLIM1(2), PLIM2(2), PLIM3(2), PLIM4(2)
2       DATA PLIM1 /0.0, 0.0/
3       DATA PLIM2 /0.0, 0.0/
4       DATA PLIM3 /0.0, 0.0/
5       DATA PLIM4 /0.0, 0.0/
6       CALL SUPMAP (7, 0., 0., 0., PLIM1, PLIM2, PLIM3, PLIM4, 1, 5, 0, 0,IERR)

Synopsis

      CALL SUPMAP (JPRJ, PLAT, PLON, ROTA, PLIM1, PLIM2, PLIM3, PLIM4, 
     +             JLTS, JGRD, IOUT, IDOT, IERR)

Arguments

JPRJ
Integer, Input---Defines the projection type with the following values (values less than 1 are treated as 1, and values greater than 10 are treated as 10):
1 Stereographic
2 Orthographic
3 Lambert conformal conic
4 Lambert equal-area
5 Gnomonic
6 Azimuthal equidistant
7 Satellite view
8 Cylindrical equidistant
9 Mercator
10 Mollweide-type
Using the value 2 causes the Ezmap parameter SA to be zeroed. (If SA is greater than 1., a satellite-view projection is used rather than an orthographic projection; it specifies the distance of the satellite from the center of the earth in units of earth radii.) Using the value 7 causes SA to be examined. If it has a nonzero value, the value is left alone. If it has a zero value, its value is reset to 6.631, which is about right for a satellite in a geosynchronous equatorial orbit.
The sign of JPRJ, when IOUT is -1, 0, or +1, indicates whether the continental outlines are to be plotted or not. See the description of IOUT below.
PLAT, PLON, ROTA
Real, Input---Define the origin of the projection and its rotation angle. These arguments are used in the same way as they would be in a call to the routine MAPROJ. See module "Mp 2.2 Choosing your map projection" for a complete description.
JLTS
Integer, Input---Specifies how to choose the rectangular limits of the map to be drawn. JLTS also determines the meaning of PLIM1, PLIM2, PLIM3, and PLIM4, which take real numbers as values. JLTS takes one of the following values:
1 The maximum useful area produced by the projection is plotted. PLIM1, PLIM2, PLIM3, and PLIM4 are not used.
2 The points (PLIM1, PLIM2) and (PLIM3, PLIM4) represent opposite corners of the map. PLIM1 and PLIM3 are latitudes, in degrees. PLIM2 and PLIM4 are longitudes, in degrees. If a cylindrical projection is being used, the first point is assumed to be on the left edge of the map and the second point is on the right edge. The order makes no difference for other map projections. You cannot use JLTS=2 if any two adjacent corners of the desired map are outside the limb of projection.
3 PLIM1, PLIM2, PLIM3, and PLIM4 specify the minimum value of U, the maximum value of U, the minimum value of V, and the maximum value of V, respectively. Knowledge of the projection equations is necessary for using this option correctly.
Note: PLIM1, PLIM2, PLIM3, and PLIM4 are two-element real arrays. If 1<=JLTS<=4, then only the first element of each array is used.
4 PLIM1, PLIM2, PLIM3, and PLIM4 are positive angles, in degrees, representing angular distances from a point on the map to the left, right, bottom, and top edges of the map, respectively. For most projections, these angles are measured with the center of the earth at the vertex and represent angular distances from the point that projects to the origin of the u/v plane. For a satellite view projection, these angles are measured with the satellite at the vertex and represent angular deviations from the line of sight. Angular limits are particularly useful for polar projections and for the satellite view projection; they are not appropriate for the Lambert conformal conic projection and an error results if you attempt to use JLTS=4 with JPRJ=3.
5 PLIM1, PLIM2, PLIM3, and PLIM4 are two-element arrays giving the latitudes and longitudes, in degrees, of four points that are to be on the edges of the rectangular map. If a cylindrical projection is being used, the first point is assumed to be on the left edge and the second point is on the right edge. The order makes no difference for other map projections. You cannot use JLTS=5 if an entire side of the desired map is outside the limb of projection.
Note: PLIM1, PLIM2, PLIM3, and PLIM4 are two-element real arrays. If 1<=JLTS<=4, then only the first element of each array is used.
MOD (IABS(JGRD), 1000)
Integer, Input---The value, in degrees, of the interval at which lines of latitude and longitude are to be plotted. If the given interval is zero, grid lines and labels are not plotted. If JGRD is less than zero, the perimeter is not plotted. Set JGRD to -1000 to suppress both grid lines and perimeter; set JGRD to +1000 to suppress the grid lines, but leave the perimeter. The value -0 may have a meaning on some computers, but should be avoided; use -1000 instead.
IOUT
Integer, Input---The outline flag determines which geopolitical boundaries are drawn:
0 Suppress US state outlines
-1 Plot US state outlines, but not continental outlines
+1 Plot US state outlines and continental outlines
<=-2 Do not plot any outlines
+2 Plot continental outlines, no US outlines
3 Plot US state outlines, no others
4 Plot continental outlines, international outlines, and US state outlines
>4 Plot continental outlines and international outlines, but no US outlines
In past versions of this software, the sign of IOUT specified whether or not a line of text was to be written on the print output. This usage is no longer valid.
IDOT
Integer, Input---The dotted outline flag takes the following values:
0 Continuous outlines
1 Dotted outlines
IERR
Integer, Output---A nonzero value on return indicates that an error has occurred.

Exercises

  1. Given that Boulder, Colorado has a latitude of 40.00 and a longitude of 105.15, draw a satellite projection centered above Boulder.

Mp 1.8 What calls do I need to get my Ezmap plot?

There are essentially two ways to use Ezmap. First, you can use Ezmap to draw a simple black-and-white map, often for use as a background, or you can use Ezmap with the Areas utility to do color-fill or pattern-fill areas, masking, or to act as a background for another color utility like Conpack.

Ezmap functional outline

--------------------------------------------------------------
 *  **  1.  Open GKS                                             
        2.  Define position on plotter frame                     
 *  **  3.  Define map projection                                
 *  **  4.  Choose map limits                                    
 *  **  5.  Choose desired political boundaries                  
 *      6.  Initialize Areas                                     
 *  **  7.  Initialize Ezmap                                     
 *      8.  Add geographic boundaries (or outlines) to area map  
        9.  Draw geographic labels                               
        10.  Draw points and lines on your map                   
        11.  Draw desired latitude and longitude lines           
 *      12.  Fill desired areas                                  
    **  13.  Draw geographic outlines                            
 *  **  14.  Call FRAME                                          
 *  **  15.  Close GKS                                           
--------------------------------------------------------------
* Steps needed for maps that have masking or filling.

** Steps needed for a simple black-and-white map.

Mp 1.9 Ezmap parameters: What they do and how to use them

Ezmap relies heavily on parameters to produce the map options you specify (such as which projection, the map limits, the perimeter, and so on). The first argument in a call to MPGETx or MPSETx is the parameter name. The second argument is either a variable in which the value of the named parameter is to be returned (via MPGETx) or an expression specifying the desired new value of the parameter (via MPSETx).

Synopsis

      CALL MPGETC (PNAM, CVAL)
      CALL MPGETI (PNAM, IVAL)
      CALL MPGETR (PNAM, RVAL)
      CALL MPSETC (PNAM, CVAL)
      CALL MPSETI (PNAM, IVAL)
      CALL MPSETR (PNAM, RVAL)
      CALL MAPSAV (INFO)
      CALL MAPRST (INFO)

Routines

MPGETC
Retrieves character parameter information.
MPGETI
Retrieves integer parameter information.
MPGETR
Retrieves real parameter information.
MPSETC
Sets character parameter information.
MPSETI
Sets integer parameter information.
MPSETR
Sets real parameter information.
MAPSAV
Saves all user-settable Ezmap parameter information to a file.
MAPRST
Retrieves all user-settable Ezmap parameter information from a file in which MAPSAV has saved the information.

Arguments

PNAM
Character expression, Input or Output---The name of the parameter that you want to set or retrieve. Two-character parameter names appear in examples and discussions in place of PNAM. The parameter names and their meanings are enclosed in single quotation marks in the Fortran code to ensure that they are treated as character expressions rather than real or integer variables. Only the first two characters within the quotation marks are examined.
CVAL
Character expression, Input or Output---A character value to be set or retrieved.
IVAL
Integer, Input or Output---An integer value to be set or retrieved.
RVAL
Real, Input or Output---A real value to be set or retrieved.
INFO
Integer, Input or Output---A unit number for a single unformatted record.

Discussion

Module "Mp 1.2 Table of Ezmap parameters" is a quick reference guide to all Ezmap parameters; it also gives references to modules in which parameter-setting examples appear. Section "Mp 7. Ezmap parameter descriptions" provides more thorough descriptions of the Ezmap parameters.

Mp 2. Getting set up

Before you can draw a map, you need to set Ezmap parameters and call several Ezmap setup routines; these steps define how much of which projection you want to view. Because the Ezmap initialization routine MAPINT uses these parameters to do some of the initialization process, it is best to completely define your map before calling MAPINT.

Ezmap functional outline

------------------------------------------------------------
      1.  Open GKS                                             
   *  2.  Define position on plotter frame                     
   *  3.  Define map projection                                
   *  4.  Choose map limits                                    
   *  5.  Choose desired political boundaries                  
      6.  Initialize Areas                                     
   *  7.  Initialize Ezmap                                     
      8.  Add geographic boundaries (or outlines) to area map  
      9.  Draw geographic labels                               
      10.  Draw points and lines on your map                   
      11.  Draw desired latitude and longitude lines           
      12.  Fill desired areas                                  
      13.  Draw geographic outlines                            
      14.  Call FRAME                                          
      15.  Close GKS                                           
------------------------------------------------------------
* Steps discussed in this section.

Mp 2.1 Positioning the plot in the frame

In most NCAR Graphics utilities, you can use the SPPS routine SET to position your plot in the plotter frame or viewport. In Ezmap, however, the special routine MAPPOS helps you position your plot.

Positioning your plot on the plotter frame

Code segment from cmppos.f

1       CALL MAPPOS (0.5, 1.0, 0.0, 0.5)
2       CALL MAPDRW

Synopsis

      CALL MAPPOS (XVPL, XVPR, YVPB, YVPT)

Arguments

XVPL
Real, Input---The position of the left edge of the area in which the viewport is to be positioned, in Normalized Device Coordinates (NDCs). 0.0<=XVPL<=1.0. The default is .05.
XVPR
Real, Input---The position of the right edge of the area in which the viewport is to be positioned, in NDCs. 0.0<=XVPR<=1.0. The default is .95.
YVPB
Real, Input---The position of the bottom edge of the area in which the viewport is to be positioned, in NDCs. 0.0<=YVPB<=1.0. The default is .05.
YVPT
Real, Input---The position of the top edge of the area in which the viewport is to be positioned, in NDCs. 0.0<=YVPT<=1.0. The default is .95.

Discussion

By using the MAPPOS routine, you can squeeze more than one Ezmap plot onto the same frame. MAPPOS centers the viewport and makes it as large as possible within the specified area, and if possible, maintains the proper aspect ratio.

Line 1 of the cmppos.f code segment sets the left, right, bottom, and top of the viewport so that it is located in the lower left corner of the plotter frame.

Exercises

  1. Using the cmppos example, move the plot to the center of the plotter frame, but keep it the same size.

Mp 2.2 Choosing your map projection

There are ten different map projections available with Ezmap.

To specify the projection you want, call the MAPROJ routine.

Examples of different map projections

Code segment from mpex05.f

1       CALL MAPPOS (.5125, .73125, .63125, .85)
2       CALL MAPROJ ('OR', 0., 0., 0.)
3       CALL MAPDRW

Synopsis

      CALL MAPROJ (JPRJ, PLAT, PLON, ROTA)

Arguments

JPRJ
Character expression, Input---Specifies the desired projection type, as follows:
LC
Lambert conformal conic with two standard parallels
ST
Stereographic
OR
Orthographic. The Ezmap parameter SA will be zeroed. See the next module.
LE
Lambert equal-area
GN
Gnomonic
AE
Azimuthal equidistant
SV
Satellite view. If Ezmap parameter SA<=1., it will be reset to 6.631 (the value for a satellite in a geosynchronous orbit).
CE
Cylindrical equidistant
ME
Mercator
MO
Mollweide-type
PLAT, PLON, and ROTA
Real, Input---Angular quantities, in degrees; their usage depends on the value of JPRJ:
JPRJ<>LC
PLAT and PLON define the latitude and longitude of the point on the globe that projects to the origin of the u/v plane. This is the center of the projection, not the center of the map. 90.<=PLAT<=+90., with positive values in the northern hemisphere and negative values in the southern. 180.<=PLON<=+180., with positive values to the east of Greenwich, England, and negative values to the west. ROTA is the angle between the v axis and north at the origin. It is taken to be positive if the angular movement from north to the v axis is counterclockwise, otherwise ROTA is negative. If the origin is at the north pole, "north" is taken to be in the direction of PLON+180. If the origin is at the south pole, "north" is taken to be in the direction of PLON. For cylindrical projections, the axis of the projection is parallel to the v axis.
JPRJ=LC
PLON defines the central meridian of the projection, and PLAT and ROTA define the two standard parallels. If PLAT=ROTA, the simpler conic projection, with one standard parallel, is used. For more information, refer to the drawing in module "Mp 1.4 Description of projections: Conic."

Discussion

The MAPROJ routine requires you to choose the projection you want to use as well as the center of the projection and the angle of rotation. To minimize distortion, it is usually best to center your projection over the area of interest, and limit the map projection to the minimally necessary area. If you are using Mercator or cylindrical equidistant projections, use PLAT=0 to avoid curved grid lines.

Line 1 of the mpex05.f code segment sets the viewport so that the map is drawn in the upper center of the screen. Line 2 chooses an orthographic projection and centers it on latitude 0 and longitude 0, which is just off the west coast of North Africa. Line 3 draws the map projection.

Exercises

  1. Using the cezmap1 example, draw a cylindrical equidistant map with straight grid lines.
  2. Copy cezmap1.f to your own file, and name it cezmap.f. You will use this file in subsequent exercises to build a customized simple map-drawing routine.

Mp 2.3 Choosing your map projection: Satellite view

Two of the projections, the orthographic and satellite view projections, have the same internal identifier. To get a satellite projection, it is necessary to set one or more of the three satellite view parameters, SA, S1, and S2.

The satellite projection

Code segment from cmpsat.f

1       CALL MAPROJ ('SV', 40., 10., 0.)
2       CALL MPSETR ('SA - SATELLITE VIEW DISTANCE', 2.)
3       CALL MPSETR ('S1 - SATELLITE ANGLE 1', 10.)
4       CALL MPSETR ('S2 - SATELLITE ANGLE 2', 15.)
5       CALL MAPDRW

Synopsis

      CALL MPSETR ('SA', sa)
      CALL MPSETR ('S1', s1)
      CALL MPSETR ('S2', s2)

Arguments

SA
Real---Produces a SAtellite view if SA>1.0, otherwise, you get an orthographic projection. SA is the distance of the satellite from the center of the earth, measured in earth radii. If S1=0 as SA approaches infinity, the satellite view projection approaches the orthographic projection. SA=0.0 by default.
S1
Real---Satellite angle 1 measures the angle, in degrees, between the line from the satellite to the center of the earth and the line of sight of the satellite. Used only when SA is greater than 1. S1=0.0 by default.
S2
Real---Satellite angle 2. Let the case where S1=S2=0 be called the basic satellite view. If S1<>0.0, then S2 specifies the angle, in degrees, from the positive u axis of the basic satellite view counterclockwise to the line OP, where O is the origin of the basic view, and P is the projection on the basic view, of the desired line of sight from the satellite. When S1 and S2 are not equal to zero, the portion of the earth projected remains the same, but the edge of the part of the u/v plane covered by the projection is an ellipse, a parabola, or a hyperbola with an axis at an angle S2 to the u axis. Used only when SA>1. S2=0.0 by default.

Discussion

The illustration shows a two-dimensional view of a plane passing through the center of the earth (marked E) and a satellite. The surface of the earth appears as a circle. The radius of the earth is defined to be r, or in this case, one unit. The distance of the satellite from the center of the earth is SA. Two planes of projection for the satellite view are shown: the basic satellite view (S1=0.) and another satellite view (S1<>0.). Note that something less than a full hemisphere is projected. Also, as S1 increases, the visible portion of the earth that is projected becomes elliptical, then parabolic, then hyperbolic.

If the basic satellite view is desired, it is not necessary for the user to set either S1 or S2. However, to get a satellite view instead of an orthographic projection, it is necessary to set SA>1.0.

Line 1 of the cmpsat.f code segment sets up the projection to give us a reasonably undistorted view of the Mediterranean. Line 2 sets the satellite at two earth radii distant (roughly 4000 miles out). Lines 3 and 4 set the viewing angle to be slightly off of straight down, and line 5 draws our map.

Exercises

  1. Beijing, China is at roughly latitude 39 and longitude 116. Draw a satellite view from right over the city, assuming that the satellite is 2.5, 5, and 20 earth radii away. Also for each of these distances, set S1=30.0 and 60.0, and S2=40.0.

Mp 2.4 Choosing map outlines to be drawn

Ezmap offers you several different options for outlining your map. You can use the OU parameter to select continental outlines, international outlines, and state outlines for the US.

Political outlines over Europe

Code segment from cmpou.f

1       DATA PLIM1 /30., 0./
2       DATA PLIM2 /-15., 0./
3       DATA PLIM3 /60., 0./
4       DATA PLIM4 /30., 0./
5       CALL MPSETC ('OU - OUTLINE DATA FLAG', 'PO')
6       CALL MAPROJ ('ME', 0., 0., 0.)
7       CALL MAPSET ('CO', PLIM1, PLIM2, PLIM3, PLIM4)
8       CALL MAPINT
9       CALL MAPLOT

Synopsis

      CALL MPSETC ('OU', string)

Arguments

OU
Character expression---the OUtline parameter tells which set of outline data to use:
NO
No outlines
CO
Continental outlines (the default)
US
US state outlines
PO
Continental and political (by country) outlines
PS
US state outlines, country outlines, and continental outlines

Discussion

Line 5 of the cmpou.f code segment sets the outline dataset for political, or country outlines. Line 6 sets up the map projection. Lines 1 through 4 and 7 define and choose the corners of the map. Lines 8 and 9 initialize Ezmap and draw the map.

Although state outlines for the US are available, major geographic features like rivers and mountains, and political features like the provinces in other countries are not available with NCAR Graphics at this time. We hope to incorporate this information into one of the future releases of the software.

Exercises

  1. Using the cmpou example, try drawing no political boundaries.
  2. Using your version of cezmap.f (see Mp 2.2 exercises), add a parameter to the cezmap subroutine calling sequence so that you can choose your outline dataset outside cezmap. Compare your results to cezmap2.f.

Mp 2.5 Setting limits for the projection

The MAPSET routine provides several methods you can use to set limits for the map to be drawn.

Setting limits on your map projection

Figure 1  Figure 2
  
Figure 3

Code segment from cmpou.f

1       DATA PLIM1 /30., 0./
2       DATA PLIM2 /-15., 0./
3       DATA PLIM3 /60., 0./
4       DATA PLIM4 /30., 0./
5       CALL MAPROJ ('ME', 0., 0., 0.)
6       CALL MAPSET ('CO', PLIM1, PLIM2, PLIM3, PLIM4)
7       CALL MAPINT
8       CALL MAPLOT

Synopsis

       CALL MAPSET (JLIM, PLIM1, PLIM2, PLIM3, PLIM4)

Arguments

JLIM
Character expression, Input---Specifies how to choose the rectangular limits of the map to be drawn. JLIM also determines the meaning of PLIM1, PLIM2, PLIM3, and PLIM4, which are two-element real arrays. JLIM takes one of the following values:
MA
The maximum useful area produced by the projection is plotted. PLIM1, PLIM2, PLIM3, and PLIM4 are not used.
CO
The points (PLIM1(1), PLIM2(1)) and (PLIM3(1), PLIM4(1)) represent opposite corners of the map. PLIM1 and PLIM3 are latitudes, in degrees. PLIM2 and PLIM4 are longitudes, in degrees. If a cylindrical projection is being used, the first point is assumed to be on the left edge of the map and the second point is on the right edge. The order makes no difference for other map projections. CO cannot be used if any two adjacent corners of the desired map are outside the limb of projection, hence CO can only be used in cases similar to Figure 1 in the illustration.
LI
PLIM1(1), PLIM2(1), PLIM3(1), and PLIM4(1) specify the minimum value of u, the maximum value of u, the minimum value of v, and the maximum value of v, respectively. Knowledge of the projection equations (see modules Mp 1.4 through Mp 1.6) is necessary for using this option correctly. LI is the only option that can be used in Figure 3 of the illustration "Setting limits on your map projection."
AN
PLIM1(1), PLIM2(1), PLIM3(1), and PLIM4(1) are positive angles, in degrees, representing angular distances from a point on the map to the left, right, bottom, and top edges of the map, respectively. For most projections, these angles are measured with the center of the earth at the vertex and represent angular distances from the point that projects to the origin of the u/v plane. For a satellite view projection, these angles are measured with the satellite at the vertex and represent angular deviations from the line of sight. Angular limits are particularly useful for polar projections and for the satellite view projection; they are not appropriate for the Lambert conformal conic projection and an error results if you attempt to use JLIM=AN with JPRJ=LC.
PO
PLIM1, PLIM2, PLIM3, and PLIM4 are two-element real arrays giving the latitudes and longitudes, in degrees, of four points that are to be on the edges of the rectangular map. If a cylindrical projection is being used, the first point is assumed to be on the left edge and the second point is on the right edge. The order makes no difference for other map projections. PO cannot be used if an entire side of the desired map is outside the limb of projection, as in Figure 3 in the illustration; it can be used in cases like Figure 2.

Discussion

Lines 1 through 4 of the cmpou.f code segment set the limits of the projection. Line 6 uses these limits as corners of the projection, so only the first elements of the arrays PLIM1, PLIM2, PLIM3, and PLIM4 are used. Line 5 sets the map projection; lines 7 and 8 initialize and draw the map.

In Figure 1 of the cmpou example, JLIM can be set to CO, PO, or LI. However, CO won't work in Figure 2 because one of the necessary corners of specification is outside the projected map area. In Figure 3, only LI works as an option because both a necessary corner and the entire side of the desired map is outside the limb of projection.

Note: Most compilers allow us to treat PLIM1 through PLIM4 as if they were reals, so we can pass in reals in the code when JLIM=MA, CO, LI, or AN.

Exercises

  1. Using the cmpou example, set JLIM to draw the complete globe.
  2. The continental US is approximately bounded by latitudes of 22 and 47 and longitudes of -120 and -65. Draw a map of the continental US.
  3. Using your version of cezmap.f (from the Mp 2.2 exercises), modify it so that you can pass in the limits of your map projection. Test these limits by producing a maximal area satellite view projection. Compare your results with the cezmap3 example.

Mp 2.6 Setting map line colors

There are seven parameters controlling the line color of various portions of the map. These parameters are most frequently used in simple line maps; they cannot be used to color-fill regions in the map.

Coloring your map

Code segment from cmpclr.f

1       CALL COLOR
2       CALL MPSETC ('OU - OUTLINE DATA FLAG', 'PS')
3       CALL MPSETI ('C1 - COLOR INDEX 1 - PERIMETER', 1)
4       CALL MPSETI ('C2 - COLOR INDEX 2 - GRID', 2)
5       CALL MPSETI ('C3 - COLOR INDEX 3 - LABELS', 3)
6       CALL MPSETI ('C4 - COLOR INDEX 4 - LIMB LINE', 4)
7       CALL MPSETI ('C5 - COLOR INDEX 5 - CONTINENTAL OUTLINES', 5)
8       CALL MPSETI ('C6 - COLOR INDEX 6 - US STATE OUTLINES', 6)
9       CALL MPSETI ('C7 - COLOR INDEX 7 - COUNTRY OUTLINES', 7)
10      CALL MAPROJ ('SV', 40., -50., 0.)
11      CALL MPSETR ('SA - SATELLITE VIEW DISTANCE', 5.)
12      CALL MAPSET ('MA', PLIM1, PLIM2, PLIM3, PLIM4)
13      CALL MAPINT

Synopsis

      CALL MPSETI ('C1', ic1)
      CALL MPSETI ('C2', ic2)
      CALL MPSETI ('C3', ic3)
      CALL MPSETI ('C4', ic4)
      CALL MPSETI ('C5', ic5)
      CALL MPSETI ('C6', ic6)
      CALL MPSETI ('C7', ic7)

Arguments

Each color index parameter specifies the color index of some part of the map, as indicated below. The default values for all color index parameters are negative; this specifies that no color index change is to be made between parts of the map.

--------------------------------
Parameter  Type     Area of       
                    effect        
--------------------------------
C1         Integer  Perimeter     
C2         Integer  Grid (lat/    
                    lon lines)    
C3         Integer  Labels        
C4         Integer  Limb line     
C5         Integer  Continental   
                    outlines      
C6         Integer  US state      
                    outlines      
C7         Integer  Country       
                    outlines      
--------------------------------

Discussion

Line 1 of the cmpclr.f code segment sets up the color table by calling the user-supplied routine COLOR, which calls the GKS routine GSCR. Line 2 chooses the "draw everything" option for this map. Lines 3 through 9 set each color index parameter to a color index chosen from the color table. This shows each of the different colors on the map: the perimeter is red, the grid is green, the labels are orange, the limb line is blue, the continents are outlined in magenta, the US states are outlined in aqua, and other countries are outlined in black. Lines 10 and 11 choose a satellite projection from 5 earth radii, and set a maximal viewport to show as much as possible.

If you wanted to make the entire map the same color, you could set the polyline and text colors using the GKS calls GSPLCI and GSTXCI, and not set Ezmap parameters C1 through C7.

Exercises

  1. Using the cmpclr example, change the grid lines to aqua and the continent lines to yellow.
  2. Using your version of cezmap.f (from the Mp 2.2 exercises), change line colors to values you select.

Mp 2.7 Controlling Ezmap lines

Ezmap supplies a default version of MAPUSR that does nothing. By modifying this default version of MAPUSR, you gain complete control over how each line in Ezmap is drawn. You can use it to change colors of lines, dash patterns of lines, or even to eliminate the drawing of certain lines.

Setting each Ezmap line pattern

Code segment from cmpusr.f

1       CALL MAPROJ ('SV', 40., 10., 0.)
2       CALL MPSETR ('SA - SATELLITE VIEW DISTANCE', 5.)
3       CALL MPSETC ('OU - OUTLINE DATA FLAG', 'PO')
4       CALL MAPDRW
5
6       SUBROUTINE MAPUSR (IPRT)
7 C 1110000011100000
8       IF (IPRT .EQ. 1) CALL DASHDB (57568)
9 C 1111111100000000
10      IF (IPRT .EQ. 2) CALL DASHDB (65280)
11C 0100110001110000
12      IF (IPRT .EQ. 4) CALL DASHDB (19568)
13C 1111000011110000
14      IF (IPRT .EQ. 5) CALL DASHDB (61680)
15C 1110010011100100
16      IF (IPRT .EQ. 6) CALL DASHDB (58596)
17C 010101010101010101
18      IF (IPRT .EQ. 7) CALL DASHDB (21845)
19      RETURN
20      END

Synopsis

      SUBROUTINE MAPUSR (IPRT)

Arguments

MAPUSR
Subroutine---This Ezmap subroutine is called just before and just after each portion of the map is drawn. The default version of MAPUSR does nothing, but you can modify it to control how Ezmap draws lines.
IPRT
Integer, Input---If positive, this variable specifies which part of the map is about to be drawn with these values:
1 Perimeter
2 Grid
3 Labels
4 Limb line
5 Continental outlines
6 US state outlines
7 International outlines
A negative value for IPRT indicates that part of the map has been drawn.

Discussion

Lines 1 through 4 of the cmpusr.f code segment define and draw a satellite view map projection as usual. In this case, a custom version of MAPUSR must be written and either added to the end of your program or loaded before the NCAR Graphics libraries are loaded. The MAPUSR shown here checks to see which portion of the map is being drawn, and then sets a binary dash pattern using the DASHDB call. Each line of MAPUSR is preceded by a comment line that shows the binary dash pattern converted to base 10 in the call to DASHDB. In each binary dash pattern, 0 represents a space and 1 represents a dash.

Because characters are drawn using the GKS routine GTX, not the Dashline utility, do not attempt to set a dashed line for them in MAPUSR.

This version of MAPUSR uses the dash pattern option to draw the various parts of the map. However, if you set the dotted outline flag DO nonzero to specify dotted outlines, this version of MAPUSR would have no effect.

Exercises

  1. Modify MAPUSR to change the line colors in the cmpusr example.

Mp 2.8 Controlling geographic and political outlines

You can write your own MAPEOD routine to control how Ezmap draws outlines. For example, you may want to use MAPEOD to reduce visual clutter by eliminating lake and island outlines.

Removing visual clutter

Code segment from mpex03.f

1       SUBROUTINE MAPEOD (NOUT, NSEG, IDLS, IDRS, NPTS, PNTS)
2       DIMENSION PNTS (*)
3       IF (IDLS .NE. 2 .AND. IDRS .NE. 2) NPTS=0
4       IF (IDLS .NE. 1 .AND. IDRS .NE. 1 .AND.
       + IDLS .NE. 3 .AND. IDRS .NE. 3 .AND.
       + IDLS .NE. 11 .AND. IDRS .NE. 11 .AND.
       + IDLS .NE. 79 .AND. IDRS .NE. 79 .AND.
       + IDLS .NE. 99 .AND. IDRS .NE. 99 .AND.
       + IDLS .NE. 104 .AND. IDRS .NE. 104 .AND.
       + IDLS .NE. 107 .AND. IDRS .NE. 107 .AND.
       + IDLS .NE. 163 .AND. IDRS .NE. 163)      NPTS=0
5       RETURN
6       END

Synopsis

      CALL MAPEOD (NOUT, NSEG, IDLS, IDRS, NPTS, PNTS)

Arguments

NOUT
Integer, Input---The number of the outline dataset from which the segment is taken. The following table shows the numbers specifying the NOUT dataset and gives the outline type and outline name:
----------------------------------------
Number  Name  Contents                    
----------------------------------------
1       CO    Continental outlines only   
2       US    US state outlines only      
3       PS    Continental, US state,      
              and international outlines  
4       PO    Continental and interna     
              tional outlines             
----------------------------------------
NSEG
Integer, Input---The number of the segment within the outline dataset. The maps in the mpex09 example show segment numbers for the outline dataset CO; you may modify this program to produce maps showing segment numbers for any outline dataset.
IDLS, IDRS
Integer, Input---Identifiers for the areas to the left and right, respectively, of the segment. (Left and right are defined from the standpoint of a viewer standing at point 1 of the segment and looking toward point 2.) For a complete list of area identifiers, see section "Mp 6. Table of Ezmap area identifiers."
NPTS
Integer, Input---The number of points defining the outline segment, when entering subroutine MAPEOD. NPTS may be zeroed by MAPEOD to suppress plotting of the segment on the map.
PNTS(NPTS)
Real array, Input---PNTS(1) and PNTS(2) are the latitude and longitude of the first point, PNTS(3) and PNTS(4) are the latitude and longitude of the second point, . . . and PNTS(2*NPTS1) and PNTS(2*NPTS) are the latitude and longitude of the last point. All values are in degrees. Longitudes are all between 180 and +180, and no segment crosses the meridian at 180 (+180) degrees.

Discussion

This version of MAPEOD uses area identifiers for the outline dataset CO to suppress all but the major global land masses and the British Isles. Line 3 of the mpex03.f code segment culls the segment if there is no ocean on either side of it. Line 4 checks to see if this is a continental outline or an outline of British Isles, and if not, then removes the outline.

MAPEOD is called by Ezmap to examine each segment in an outline dataset just before it is plotted. The default version does nothing. The mpex03, mpex05, and mpex09 examples all contain versions of MAPEOD that you might find useful.

Mp 2.9 Rectangular and elliptical perimeters

The Ezmap perimeter is controlled by two parameters. PE determines if a perimeter is drawn, and EL determines if the perimeter is an ellipse or a rectangle.

Map without perimeter

Code segment from cmpel.f

1       CALL MAPROJ ('SV', 40., 10., 0.)
2       CALL MPSETR ('SA - SATELLITE VIEW DISTANCE', 5.)
3       CALL MPSETC ('OU - OUTLINE DATA FLAG', 'PO')
4       CALL MPSETI ('PE - PERIMETER FLAG', 0)
5       CALL MPSETI ('EL - ELLIPTICAL PERIMETER FLAG', 1)

Synopsis

      CALL MPSETI ('PE', ipe)
      CALL MPSETI ('EL', iel)

Arguments

PE
Integer---Draws a PErimeter if nonzero. PE<>0 by default.
EL
Integer---If nonzero, draw only that part of the map inside an ELlipse inscribed within the normal rectangular perimeter. This is particularly appropriate for use with azimuthal projections and angular limits specifying a square, in which case the ellipse becomes a circle. This parameter works for any map. EL=0 by default.

Discussion

In Ezmap, a "perimeter" is the boundary of a map produced by a call to Ezmap routines. The perimeter may either be a rectangle in the projection plane or an ellipse inscribed in that rectangle.

An "ellipse" is a particular kind of closed curve as defined by any plane geometry text.

A "limb line" is that line in the Ezmap projection plane separating points into which some point on the globe projects from points into which no point on the globe projects. For example, when you are using an orthographic projection, the visible side of the globe maps into the interior of a circle of radius 1 and centered at the origin; the "limb" of an orthographic projection is therefore that circle. Depending on the projection being used, the "limb lines" may be straight lines, circles, ellipses, parabolas, or hyperbolas. Limb lines can also be complicated curves (sometimes defined by means of a function and sometimes defined by means of a table of X/Y coordinates defining a polygon) for projections not offered by Ezmap.

Lines 1 through 3 of the cmpel.f code segment set up the satellite map projection. Lines 4 and 5 turn off perimeter drawing. Examine the plot to see the places where Ezmap has not drawn a dividing line between a geographical outline and the background; this occurs because PE has been turned off.

Exercises

  1. Using the cmpel example, draw a perimeter around the map.
  2. Using the cmpitm example, turn on the EL option before the call to cmpmsk, and notice the difference it makes in the plot.
  3. Using your own version of cezmap.f (from the Mp 2.2 exercises), set the perimeter and ellipse options.

Mp 2.10 Saving and retrieving Ezmap parameters

Three Ezmap routines allow you to save and retrieve various aspects of Ezmap's state. MAPRS allows you to redo the SET call that was used in the last call to MAPINT. MAPSAV allows you to save your map transformation and parameter information to a file. MAPRST allows you to retrieve the information saved by MAPSAV so you can use it for another plot.

Synopsis

      CALL MAPRS
      CALL MAPSAV (IUNIT)
      CALL MAPRST (IUNIT)

Arguments

MAPRS
Occasionally, you may want to re-execute the call to SET that was done for you by your last call to MAPINT. MAPRS does this. You might use this when you plot user lines over a map generated in a different overlay (such as when using a Gflash buffer), and when the system plot package does not reside in an outer overlay.
MAPSAV(IUNIT)
Saves current state of Ezmap to a file by writing, on the Fortran unit specified by IUNIT, the current values of all the user-settable parameters. IUNIT is the number of a Fortran unit to which a single unformatted record is to be written. You must position this unit; MAPSAV does not rewind it, either before or after writing the record.
MAPRST(IUNIT)
Restores a previous state of Ezmap saved by an earlier call to MAPSAV by reading, from the Fortran unit specified by IUNIT, values of all user-settable parameters, and then executing MAPINT. IUNIT is the number of a Fortran unit from which a single unformatted record is to be read. You must position this unit; MAPRST does not rewind it, either before or after reading the record.

Mp 3. Simple maps

For our purposes, we define a "simple map" as a map that is essentially a line drawing. Simple maps do not have color-filled or pattern-filled regions.

You need fewer steps to produce simple black-and-white maps than you do when you use the Areas utility for maps that require masking and filling.

Simple map functional outline

-----------------------------------------------
   1.  Open GKS                                   
   2.  Define position on plotter frame           
   3.  Define map projection                      
   4.  Choose map limits                          
   5.  Choose desired political boundaries        
   6.  Initialize Ezmap                           
   7.  Draw geographic labels                     
   8.  Draw points and lines on your map          
   9.  Draw desired latitude and longitude lines  
   10.  Draw geographic outlines                  
   11.  Call FRAME                                
   12.  Close GKS                                 
-----------------------------------------------

Mp 3.1 Initializing Ezmap

Before using the Ezmap utility, you must initialize it with the MAPINT routine. Also, after calling MAPPOS, MAPROJ, or MAPSET, you must call MAPINT again to re-initialize Ezmap.

Initializing a map

Code segment from cmpgrd.f

1       CALL COLOR
2       CALL MPSETC ('OU - OUTLINE DATA FLAG', 'PO')
3       CALL MAPROJ ('SV', 40., -50., 0.)
4       CALL MPSETR ('SA - SATELLITE VIEW DISTANCE', 5.)
5       CALL MAPSET ('MA', PLIM1, PLIM2, PLIM3, PLIM4)
6       CALL MAPINT

Synopsis

      CALL MAPINT

Discussion

Line 1 of the cmpgrd.f code segment sets up the color table. Line 2 turns on drawing of the continental and political outlines. Lines 3 through 5 set the projection for a satellite view over the Atlantic Ocean. Line 6 initializes Ezmap. Notice that the call to MAPINT follows calls to MAPROJ and MAPSET, since both these routines set values that MAPINT needs.

You must call MAPINT to initialize the Ezmap utility after calling MAPPOS, MAPROJ, or MAPSET.

Currently, it is okay to call MAPINT many times. You can check the flag IN (which may be retrieved by a call to MPGETI) to determine whether or not a call to MAPINT is required at a given time. You can change internal parameters such as C1, OU, LA, and so on either before or after a call to MAPINT, but for consistency with Conpack, we set Ezmap parameters before initialization.

Mp 3.2 Grids: Drawing latitude and longitude lines

MAPGRD is the routine that Ezmap uses to draw the limb line and the latitude/longitude (grid) lines. There are also several Ezmap parameters associated with changing grid dashline patterns and accuracy. The grid-spacing parameter GR controls how many degrees apart the latitude and longitude lines are drawn. The grid-drawing parameter GD changes the accuracy used for drawing the latitude and longitude lines. The latitude and longitude line spacings cannot be set individually.

Grid spacing

Code segment from cmpgrd.f

1       CALL COLOR
2       CALL MPSETC ('OU - OUTLINE DATA FLAG', 'PO')
3       CALL MPSETI ('C2 - COLOR INDEX 2 - GRID', 2)
4       CALL MPSETI ('C4 - COLOR INDEX 4 - LIMB LINE', 2)
5       CALL MAPROJ ('SV', 40., -50., 0.)
6       CALL MPSETR ('SA - SATELLITE VIEW DISTANCE', 5.)
7       CALL MAPSET ('MA', PLIM1, PLIM2, PLIM3, PLIM4)
8       CALL MPSETR ('GR - GRID SPACING', 10.)
9       CALL MPSETR ('GD - GRID DRAWING RESOLUTION', 10.)
10      CALL MAPINT
11      CALL MAPGRD

Synopsis

      CALL MPSETR ('GR', gr)
      CALL MPSETR ('GD', gd)
      CALL MAPGRD

Arguments

GR
Real---The GRid spacing parameter chooses the desired spacing, in degrees, of latitude and longitude lines on the globe. GR=10.0 by default.
GD
Real---The Grid Drawing resolution parameter controls how accurately the latitude and longitude lines are mapped onto the globe. GD specifies the distance in degrees between points defining a grid line. 0.001<=GD<=10. By default, GD=1.0.

Discussion

Line 1 of the cmpgrd.f code segment sets up the color table. Line 2 turns on drawing of the continental and political outlines. Lines 3 and 4 set the color parameters so that everything drawn by MAPGRD is drawn in green (color index 2). Lines 5 through 7 set up the projection for a satellite view over the Atlantic Ocean.

Line 8 sets the grid lines to be drawn at intervals of 10 degrees. Line 9 sets the accuracy parameter to 10 so that the map requires a minimum of CPU and plotting time.

GD sets the distance between points on each latitude and longitude curve. By setting GD=10 degrees, we are setting the grid lines so that they may not be extremely accurate between calculated points. However, the first exercise below shows that the resulting difference in the curves is reasonably small (knowing that CPU time and CGM size both increase rapidly as GD gets smaller). Line 10 initializes Ezmap, and line 11 draws the grid lines and the limb line (the line around the globe).

If you plan to use idt to zoom in on an area one degree across, then you may want to draw the grid lines using points that are closer together on the globe; this increases the accuracy with which those lines are projected on the map.

Exercises

  1. Using the UNIX command time, run the cmpgd example with GD=.001, and again with GD=1.0. What is the difference in CPU time on your machine? Plot the two plots on paper and compare their differences.
  2. Using cmpgd.f, change the grid spacing to 20 degrees.
  3. Using your own version of cezmap.f (from the Mp 2.2 exercises), add grid spacing to your subroutine call so that you can change it from your main program.

Mp 3.3 Grids: Dash patterns

By default, the Ezmap utility draws grid lines using the Dashline utility. The default gridline pattern is a very short dash followed by a space of the same size. This pattern can be changed using the grid Dashline pattern parameter DA.

Dash patterns in Ezmap

Code segment from cmpdd.f

1       CALL MPSETR ('GR - GRID SPACING', 10.)
2       CALL MPSETR ('GD - GRID DRAWING RESOLUTION', 10.)
3       CALL MPSETI ('DA - GRID DASHLINE PATTERN', 64764)
4       CALL MAPINT
5       CALL MAPGRD

Synopsis

      CALL MPSETI ('DA', ida)

Arguments

DA
Integer---The grid DAshline parameter sets a dashed line pattern using the same interface as DASHDB. Construct a 16-bit binary number using 0s to represent blanks and 1s to represent dots or dashes, then convert to base 10. (For example, 0101010101010101 becomes 21845, which produces the dashed line used as the default grid pattern.)

Discussion

Lines 1 and 2 of the cmpdd.f code segment set the grid spacing and accuracy just as in the previous module. Line 3 uses the DA parameter to change the grid pattern to one with long lines and small gaps. Line 4 initializes Ezmap, and line 5 draws the grid lines.

Exercises

  1. Using the cmpdd example, make dash patterns use the following two sequences (parentheses enclose the spaces, they are not part of the dash pattern):
    (- - -   - - -   )
    (---  ---  )
    

Mp 3.4 Labeling

There are two parameters and a routine that affect labeling in Ezmap. The routine MAPLBL is called to draw the perimeter as well as labels at the north and south poles, the Greenwich meridian, and the international date line. The LA parameter turns labeling on and off, and LS controls label size.

A labeled map

Code segment from cmplbl.f

1       CALL COLOR
2       CALL MPSETC ('OU - OUTLINE DATA FLAG', 'PO')
3       CALL MPSETI ('C2 - COLOR INDEX 2 - GRID', 2)
4       CALL MPSETI ('C4 - COLOR INDEX 4 - LIMB LINE', 2)
5       CALL MPSETI ('C1 - COLOR INDEX 1 - PERIMETER', 1)
6       CALL MPSETI ('C3 - COLOR INDEX 3 - LABELS', 1)
7       CALL MAPROJ ('SV', 40., -50., 0.)
8       CALL MPSETR ('SA - SATELLITE VIEW DISTANCE', 5.)
9       CALL MAPSET ('MA', PLIM1, PLIM2, PLIM3, PLIM4)
10      CALL MPSETI ('LA - MERIDIAN/POLE LABEL FLAG', 1)
11      CALL MPSETI ('LS - LABEL SIZE', 40)
12      CALL MAPINT
13      CALL MAPGRD
14      CALL MAPLBL

Synopsis

      CALL MPSETI ('LA', ila)
      CALL MPSETI ('LS', ils)
      CALL MAPLBL

Arguments

LA
Integer---The meridian/pole LAbel flag directs MAPLBL to draw labels at the prime meridian, international dateline, poles, and equator when LA<>0. When LA=0, no labels are drawn. The default is for labels to be drawn.
LS
Integer---The Label Size parameter controls label size using the formula NDC=LS/1024, where NDC is the size in NDCs, and LS is the value given to the LS parameter. The special values 0, 1, 2, and 3 produce labels sized at 0.008, 0.012, 0.016, and 0.024 NDCs, respectively. By default, LS=1 (0.012 NDCs).

Discussion

Line 1 of the cmplbl.f code segment sets up the color table. Line 2 turns on drawing of continental and political outlines. Lines 3 through 6 set the color parameters so that everything drawn by MAPGRD is drawn in green (color index 2), and everything drawn by MAPLBL is drawn in orange (color index 1). Lines 7 through 9 set up the projection for a satellite view over the Atlantic Ocean.

Line 10 ensures that labels are drawn, and line 11 sets labels to be about 0.040 NDCs in size. Line 12 initializes Ezmap, line 13 draws the grid and limb lines, and line 14 draws the label and perimeter.

If LA is turned off, MAPLBL won't draw any labels. MAPLBL is also responsible for drawing the perimeter, if desired (when PE<>0). The cmplbl example uses white to show things drawn by MAPLBL, and green to show things drawn by MAPGRD.

Exercises

  1. Using the cmplbl example, turn off drawing of the perimeter.
  2. Using the cmplbl example, set the size of the labels to the default value, but don't set LS=1.
  3. Using your own version of cezmap.f (from the Mp 2.2 exercises), set up your favorite label options.

Mp 3.5 Drawing political and geographic outlines

The MAPLOT routine draws political and continental outlines. You can control how MAPLOT draws these outlines by using the parameters DO, DD, MV, and RE.

Drawing continental outlines

Code segment from cmplot.f

1       CALL COLOR
2       CALL MPSETC ('OU - OUTLINE DATA FLAG', 'PO')
3       CALL MPSETI ('C5 - COLOR INDEX 5 - CONTINENTAL OUTLINES', 5)
4       CALL MPSETI ('C7 - COLOR INDEX 7 - COUNTRY OUTLINES', 5)
5       CALL MPSETI ('C2 - COLOR INDEX 2 - GRID', 2)
6       CALL MPSETI ('C4 - COLOR INDEX 4 - LIMB LINE', 2)
7       CALL MPSETI ('C1 - COLOR INDEX 1 - PERIMETER', 1)
8       CALL MPSETI ('C3 - COLOR INDEX 3 - LABELS', 1)
9       CALL MAPROJ ('SV', 40., -50., 0.)
10      CALL MPSETR ('SA - SATELLITE VIEW DISTANCE', 5.)
11      CALL MAPSET ('MA', PLIM1, PLIM2, PLIM3, PLIM4)
12      CALL MPSETI ('DO - DOTTED OUTLINE FLAG', 1)
13      CALL MPSETI ('DD - DISTANCE BETWEEN DOTS', 7)
14      CALL MAPINT
15      CALL MAPGRD
16      CALL MAPLBL
17      CALL MAPLOT

Synopsis

      CALL MPSETI ('DO', ido)
      CALL MPSETI ('DD', idd)
      CALL MAPLOT

Arguments

DO
Integer---The Dotted Outline flag determines whether or not political and continental outlines are solid or dotted. By default DO=0, denoting solid outlines. When DO<>0, dotted outlines are drawn.
DD
Integer---The Distance between Dots parameter determines the space between dots in the dotted line pattern. By default, DD=12 out of 4096, or .003 NDCs. To calculate DD in NDCs, DD=INT(NDC*RE), where NDC is the distance in Normalized Device Coordinates, and RE is the resolution as set by the RE parameter.
MV
Integer---The Minimum Vector length for MAPIT parameter controls the minimum line segment length between two points. Points closer than MV to the previous point are omitted. By default, MV=4, or roughly .001 NDCs.
RE
Integer---The REsolution parameter determines the value DD is divided by to get NDCs. RE=4096 by default.

Discussion

Line 1 of the cmplot.f code segment sets up the color table. Line 2 turns on drawing of the continental and political outlines. Lines 3 through 8 set the color parameters so that everything drawn by MAPGRD is drawn in green (color index 2), everything drawn by MAPLBL is drawn in orange (color index 1), and everything drawn by MAPLOT is drawn in magenta (color index 5). Lines 9 through 11 set up the projection for a satellite view over the Atlantic Ocean.

Line 12 turns on dotted line drawing of political and continental outlines, and line 13 spaces these outline dots closer together than the dots that form the grid lines. Line 14 initializes Ezmap, and line 15 draws the grid and limb lines. Line 16 draws the labels and perimeter, and line 17 draws the magenta outlines.

By default, continental outlines are drawn using solid lines from the Dashline utility. If you set DO nonzero, the continental outlines drawn as dots by Ezmap; Dashline is not used. DD controls the distance between dots.

Note: Most users don't need the RE parameter.

Exercises

  1. Using the cmplot example, set the dots to be 0.005 NDCs apart.
  2. Using the cmplot example, draw solid continental outlines.

Mp 3.6 A shortcut

If all you are doing is calling MAPINT, MAPGRD, MAPLBL, and MAPLOT without any calls between, there is a shortcut that you can take to draw your map. MAPDRW calls MAPINT, MAPGRD, MAPLBL, and MAPLOT in that order, making it possible to combine four calls into one.

Plot using MAPDRW

Code segment from cmpdrw.f

1       CALL COLOR
2       CALL MPSETC ('OU - OUTLINE DATA FLAG', 'PO')
3       CALL MPSETI ('C5 - COLOR INDEX 5 - CONTINENTAL OUTLINES', 5)
4       CALL MPSETI ('C7 - COLOR INDEX 7 - COUNTRY OUTLINES', 5)
5       CALL MPSETI ('C2 - COLOR INDEX 2 - GRID', 2)
6       CALL MPSETI ('C4 - COLOR INDEX 4 - LIMB LINE', 2)
7       CALL MPSETI ('C1 - COLOR INDEX 1 - PERIMETER', 1)
8       CALL MPSETI ('C3 - COLOR INDEX 3 - LABELS', 1)
9       CALL MAPROJ ('SV', 40., -50., 0.)
10      CALL MPSETR ('SA - SATELLITE VIEW DISTANCE', 5.)
11      CALL MAPSET ('MA', PLIM1, PLIM2, PLIM3, PLIM4)
12      CALL MPSETR ('GR - GRID SPACING', 10.)
13      CALL MPSETR ('GD - GRID DRAWING RESOLUTION', 10.)
14      CALL MPSETI ('LA - MERIDIAN/POLE LABEL FLAG', 1)
15      CALL MPSETI ('LS - LABEL SIZE', 40)
16      CALL MPSETI ('DO - DOTTED OUTLINE FLAG', 1)
17      CALL MPSETI ('DD - DISTANCE BETWEEN DOTS', 7)
18      CALL MAPDRW

Synopsis

      CALL MAPDRW

Discussion

Lines 1 through 11 of the cmpdrw.f code segment match lines 1 through 11 of the cmplot.f code segment in the preceding module. Line 1 sets up the color table. Line 2 turns on drawing of the continental and political outlines. Lines 3 through 8 set the color parameters so that everything drawn by MAPGRD is drawn in green (color index 2), everything drawn by MAPLBL is drawn in orange (color index 1), and everything drawn by MAPLOT is drawn in magenta (color index 5). Lines 9 through 11 set up the projection for a satellite view over the Atlantic Ocean.

Lines 12 and 13 of the cmpdrw.f code segment set grid parameters discussed in module "Mp 3.2 Grids: Drawing latitude and longitude lines." Lines 14 and 15 set label parameters discussed in the preceding module. Line 16 turns on dotted line drawing of political and continental outlines, and line 17 sets the dots closer together than gridline dots.

The shortcut occurs as line 18 calls MAPDRW. Notice that since MAPDRW calls MAPINT, calls to MAPROJ, MAPSET, and MAPPOS must be made before calling MAPDRW. Also, since MAPDRW calls MAPINT, MAPGRD, MAPLBL, and MAPLOT, parameters that affect those routines must be set before calling MAPDRW.

You can probably use MAPDRW in almost any simple map drawing. However, as shown in Ezmap section "Mp 4. Producing maps with masking or filled areas," it is often desirable to be able to call MAPINT and MAPLOT separately.

Exercises

  1. Examine your own version of cezmap.f (from the Mp 2.2 exercises) to see if it can use MAPDRW.

Mp 4. Producing maps with masking or filled areas

Drawing maps with masking or filled areas is very much like drawing simple maps. However, it takes a few extra steps and uses a slightly different set of routines.

Ezmap functional outline

----------------------------------------------------------
    1.  Open GKS                                             
    2.  Define position on plotter frame                     
    3.  Define map projection                                
    4.  Choose map limits                                    
    5.  Choose desired political boundaries                  
 *  6.  Initialize Areas                                     
 *  7.  Initialize Ezmap                                     
 *  8.  Add geographic boundaries (or outlines) to area map  
 *  9.  Draw geographic labels                               
    10.  Draw points and lines on your map                   
 *  11.  Draw desired latitude and longitude lines           
 *  12.  Fill desired areas                                  
    13.  Draw geographic outlines                            
    14.  Call FRAME                                          
    15.  Close GKS                                           
----------------------------------------------------------
* Steps discussed in this section.

Mp 4.1 Color and area identifiers in Ezmap

Section "Mp 6. Table of Ezmap area identifiers" and the MAPACI function can be used as tools for choosing a particular geographic area or set of areas for filling, shading, or masking.

Sample Ezmap area identifier table

Code segment from cmpmsk.f

1       SUBROUTINE MASK (XC, YC, MCS, AREAID, GRPID, IDSIZE)
2
3       INTEGER AREAID(IDSIZE), GRPID(IDSIZE), ID
4       REAL XC(MCS), YC(MCS)
5       DO 10, I=1, IDSIZE
6          IF (GRPID(I) .EQ. 1) ID = AREAID(I)
7   10  CONTINUE
8       IF ((MAPACI(ID) .EQ. 1) .AND. (MCS .GE. 2)) THEN
9          CALL CURVED (XC, YC, MCS)
10      ENDIF
11      RETURN
12      END

Synopsis

      MAPACI (IDAREA)

Function

MAPACI
Integer, Function---Obtains, for a given area, a suggested color index appropriate for use in creating a color map having adjacent areas of different colors. Returns an integer between 1 and 7 inclusive.

Arguments

IDAREA
Integer, Input---Area identifier for an area defined by an area map created by MAPBLA.

Discussion

The "Sample Ezmap area identifier table" illustration shows part of the table printed in section "Mp 6. Table of Ezmap area identifiers." The first column of this table contains the abbreviated name of the dataset in which the areas are defined. (PO stands for Political Outlines, US stands for US state outlines, CO is for Continental Outlines, and PS is for all of the above.)

The second column contains the area identifier for the area so you can uniquely address any area in the map database. The third column shows the suggested color index for the area. These color indices are carefully chosen so that no country or state has the same color as any of its neighbors. Also note that all bodies of water like oceans and lakes have a color index of 1. This makes it easy for your program to pick out the oceans for masking purposes or to choose an appropriate color for the oceans.

In line 8 of the cmpmsk.f code segment, note that MAPACI is called as a function rather than as a subroutine. MAPACI returns an integer value that can be used to detect ocean or land masses, to set color-fill values, and for many other purposes. A complete discussion of this code segment appears in module "Mp 4.6 Grid lines with masking: Writing a masking routine."

Mp 4.2 Ezmap group identifiers

The Ezmap routine MAPBLA puts two groups of edges into an area map. Group 1 holds all the outline information for the maps; group 2 holds vertical strip outlines. This module discusses how to change which group identifiers are used, and how to set the number of vertical strips.

Plot drawn with vertical strips

Code segment from cmpgrp.f

1       CALL MPSETI ('VS - VERTICAL STRIPS', 9)
2       CALL MPSETC ('OU - OUTLINE DATA FLAG', OUTLN)
3       CALL MPSETR ('GR - GRID SPACING', GRD)
4       CALL MAPROJ (PROJ, PLAT, PLON, ROTA)
5       IF (PROJ .EQ. 'SV') CALL MPSETR ('SA - SATELLITE VIEW DISTANCE', 5.)
6       CALL MAPSET (JLIM, PLIM1, PLIM2, PLIM3, PLIM4)
7       CALL MAPINT

Synopsis

      CALL MPSETI ('VS', ivs)
      CALL MPSETI ('G1', ig1)
      CALL MPSETI ('G2', ig2)

Arguments

VS
Integer---The Vertical Stripping parameter specifies the number of strips into which a plot is to be divided. Vertical strips can be created to minimize the number of points that define an area to be filled so that the plot can be drawn on limited hardware. By default, VS=1.
G1
Integer---The Group 1 parameter is the group identifier for the perimeter and the set of projected boundary lines implied by your map projection and limits.
G2
Integer---The Group 2 parameter is the group identifier for the perimeter and the boundary lines for vertical strips.

Discussion

Currently, there are four groups of edges defined by default in NCAR Graphics:

Most people will never need to change any of these group identifiers. However, using Ezmap parameters G1 and G2, you can change the defaults of the first two groups. In most cases, you probably do not want to use the same values for Ezmap edge groups and Conpack edge groups.

The cmpgrp.f code segment creates a plot using nine vertical strips; this has the effect of making the areas created both smaller and simpler. Line 1 sets the number of vertical strips by giving VS the value of 9. Lines 2 through 9 then set up map drawing normally.

Exercises

  1. Change the value of VS in cmpgrp.f, and watch how it is plotted to the screen.

Mp 4.3 Initialize Ezmap with Areas

Initializing Ezmap with Areas requires three routines. ARINAM initializes the area map, MAPINT initializes Ezmap, and MAPBLA is used to add the geographic outlines to the area map after both ARINAM and MAPINT have been called.

Initializing Ezmap with Areas

Code segment from cmpmsk.f

1       EXTERNAL MASK
2       CALL MAPINT
3       CALL ARINAM (MAP, LMAP)
4       CALL MAPBLA (MAP)
5       CALL MAPGRM (MAP, XWRK, YWRK, NWRK, IAREA, IGRP, ISIZ, MASK)

Synopsis

      CALL MAPINT
      CALL ARINAM (MAP, LMAP)
      CALL MAPBLA (MAP)

Arguments

MAP(LMAP)
Integer array, Workspace---An integer array in which an area map of the globe is to be constructed.
LMAP
Integer, Input---Length of the MAP array. LMAP is unchanged by the call.

Discussion

Line 1 of the cmpmsk.f code segment declares the masking routine to be external so that the compiler knows that MASK is a subroutine rather than a variable. Line 2 initializes Ezmap and sets up our projection and map limits. Line 3 initializes the area map using the Areas routine ARINAM, and line 4 adds the projections of the geographic outlines to the area map.

Although MAPINT and ARINAM have been discussed previously, they are included in the synopsis because both routines are critical to using Ezmap with Areas. As shown before, MAPINT sets up the map limits and projection, defining a set of lines that divide up the plane. ARINAM initializes the area map array. MAPBLA takes the lines defined by MAPINT and adds them to the area map, using the default of edge group 1 for geographical map outlines and the default of edge group 2 for creating a set of vertical strips. Please see the previous module for further information on setting and using Ezmap group identifiers and vertical strips.

If you set the area map too small, the error message:

ERROR 5 IN AREDAM - AREA-MAP ARRAY OVERFLOW
occurs when MAPBLA is called. There is no good way to predict exactly how large the area map should be before adding edges to it. Try setting LMAP=50000 and increasing it as necessary. It is not unusual to need LMAP=250000 in maps with lots of tiny regions.

Exercises

  1. Copy cmpmsk.f into your own directory and name it cmapa.f. Set it up so that you can change parameters (such as label size, grid options, and so on) at any time. You will use cmapa.f in subsequent exercises.

Mp 4.4 Labeling

Just as we used MAPLBL to add labels to our simple map, we use it to write labels on a map with masked or filled areas. As before, the LA parameter turns labeling on and off, and the LS parameter controls label size for labels drawn by MAPLBL.

A labeled masked map

Code segment from cmplab.f

1       EXTERNAL MASK
2       CALL MPSETI ('LS - LABEL SIZE', 20)
3       CALL MAPINT
4       CALL ARINAM (MAP, LMAP)
5       CALL MAPBLA (MAP)
6       CALL MAPGRM (MAP, XWRK, YWRK, NWRK, IAREA, IGRP, ISIZ, MASK)
7       CALL MPSETI ('EL - ELLIPTICAL PERIMETER FLAG', 1)
8       CALL MAPLBL
9       CALL MAPLOT

Synopsis

      CALL MAPLBL
      CALL MPSETI ('LA', ila)
      CALL MPSETI ('LS', ils)

Arguments

LA
Integer---The meridian/pole LAbel flag directs MAPLBL to draw labels at the prime meridian, international dateline, poles, and equator when LA<>0. When LA=0, no labels are drawn. The default is for labels to be drawn.
LS
Integer---The Label Size parameter controls label size using the formula NDC=LS/1024 where NDC is the size in NDCs, and LS is the value given to the LS parameter. The special values 0, 1, 2, and 3 produce labels sized at 0.008, 0.012, 0.016, and 0.023 NDCs, respectively. By default, LS=1 (0.012 NDCs).

Discussion

Line 1 of the cmplab.f code segment declares the masking routine to be external so that MAPGRM doesn't core dump. Line 2 sets the label size to be a bit larger than normal. Lines 3 and 4 initialize Ezmap and Areas respectively. Line 5 adds geographic and political outlines to the area map. Line 6 draws grid lines over water and uses the area map to mask them over land. Line 7 draws the ellipse that provides the limb line for this plot. Line 8 draws the labels.

If LA is turned off, MAPLBL does not draw any labels. MAPLBL also draws the perimeter if one is specified. The perimeter parameter PE<>0 by default.

Exercises

  1. Change the cmplbl example so no perimeter is drawn.
  2. Using the cmplbl example, set the size of the labels to the default value but don't set LS=1.
  3. Using your own version of cmapa.f, set up your favorite label options.

Mp 4.5 Grid lines with masking

The Ezmap routine MAPGRM allows you to draw grid lines and mask them over any geographic area such as oceans, land, or specific countries or continents.

A masked map

Code segment from cmplab.f

1       EXTERNAL MASK
2       CALL MAPINT
3       CALL ARINAM (MAP, LMAP)
4       CALL MAPBLA (MAP)
5       CALL MAPGRM (MAP, XWRK, YWRK, NWRK, IAREA, IGRP, ISIZ, MASK)
6       CALL MAPLBL
7       CALL MAPLOT

Synopsis

      CALL MAPGRM (MAP, XCS, YCS, MCS, IAREA, IGRP, ISIZ, LPR)

Arguments

MAP
Integer array, Workspace---Area map initialized in ARINAM and constructed by MAPBLA.
XCS(MCS), YCS(MCS)
Real arrays, Workspace---Workspace used by MAPGRM in calls to the user-supplied routine LPR.
MCS
Integer, Input---Dimension of the arrays XCS and YCS. MCS must be greater than or equal to 2; the value 100 is suggested.
IAREA(ISIZ), IGRP(ISIZ)
Integer arrays, Workspace---To be used by MAPGRM in calls to the user-supplied routine LPR.
ISIZ
Integer, Input---Dimension of the arrays IAREA and IGRP. ISIZ must be greater than or equal to 2. If other groups of boundary lines are added to the area map (by calling MAPITA and MAPIQA or by calling AREDAM), then ISIZ must be increased by the number of such groups.
LPR
Subroutine---A user-supplied line-processing subroutine that is called once for each piece of the masked grid. Each such piece is contained in exactly one area defined by the area map. LPR must be declared external in the routine that calls MAPGRM. This subroutine is discussed in detail in the next module.

Discussion

Line 1 declares MASK as external so that MAPGRM knows that MASK is a subroutine and not an integer variable. Lines 2 through 4 of the cmplab.f code segment initialize Ezmap with Areas, as discussed in module "Mp 4.3 Initialize Ezmap with Areas." Line 5 calls MAPGRM with the area map and the user-supplied masking subroutine MASK. MASK is discussed in the next module.

ISIZ, the size of the group and area identifier arrays (IAREA and IGRP), is determined by how many groups of lines you have added to the area map. Remember that the first group is the geographical outline set. Other groups might include vertical stripping if you are using it, contour lines, or lines that you may want to add to the area map using the Ezmap line-drawing routines.

Lines 6 and 7 label the globe and draw continental outlines.

Mp 4.6 Grid lines with masking: Writing a masking routine

Just as Areas doesn't really do any filling or masking, MAPGRD doesn't actually draw masked grid lines. MAPGRD calls a routine that you must write to correctly mask the grid lines. This makes it possible for you to precisely control which portions of the lines are masked.

Masking grid lines

Code segment from cmpmsk.f

1       SUBROUTINE MASK (XC, YC, MCS, AREAID, GRPID, IDSIZE)
2       INTEGER AREAID(IDSIZE), GRPID(IDSIZE), ID
3       REAL XC(MCS), YC(MCS)
4       DO 10, I=1, IDSIZE
5          IF (GRPID(I) .EQ. 1) ID = AREAID(I)
6   10  CONTINUE
7       IF ((MAPACI(ID) .EQ. 1) .AND. (MCS .GE. 2)) THEN
8          CALL CURVED (XC, YC, MCS)
9       ENDIF
10      RETURN
11      END

Synopsis

      SUBROUTINE LPR (XCS, YCS, NCS, IAREA, IGRP, ISIZ)
      DIMENSION XCS(*), YCS(*), IAREA(*), IGRP(*)

Arguments

LPR
Subroutine---A user-supplied line-processing subroutine that is called once for each piece of the masked grid. Each such piece is contained in exactly one area defined by the area map. LPR must be declared external in the routine that calls MAPGRM. You must use the following structure when you write subroutine LPR:
 SUBROUTINE LPR (XCS, YCS, NCS,
+ IAREA, IGRP, ISIZ)
 DIMENSION XCS(*), YCS(*), IAREA(*),
+ IGRP(*)
(code to process polyline defined by XCS, YCS, IAREA, and IGRP)
RETURN
END
XCS(NCS), YCS(NCS)
Real arrays, Input---Hold the X and Y coordinates, in the fractional coordinate system, of NCS points defining a piece of the grid. These are input arrays for the subroutine LPR.
NCS
Integer, Input---Number of X and Y coordinates in the arrays XCS and YCS.
IAREA(ISIZ), IGRP(ISIZ)
Integer arrays, Input---Hold ISIZ pairs of identifiers for the area within which the piece of the polyline lies. For each value of I from 1 to ISIZ, IAREA(I) is the area identifier for the area with respect to the group of edges specified by the group identifier IGRP(I).
ISIZ
Integer, Input---Number of values in IAREA and IGRP. ISIZ is equal to the number of groups of edges that you put in the area map.
You can assume that MAPGRM has made this call:
      CALL SET (VPL, VPR, VPB, VPT, VPL, VPR, VPB, VPT, 1)
This call ensures correct results if the normalized device coordinates in XCS and YCS are used in calls to such routines as the GKS line-drawing routine GPL or the Dashline routine CURVED. LPR may make its own SET call to achieve some other effect.

Discussion

In this code segment, the line processing routine (shown as LPR in the synopsis) is named MASK. Lines 4 through 6 set up a do loop to extract the geographic area identifier of the region passed into MASK. Line 7 checks to see if the region is over land or water, and it checks to see if the line has at least two points in it. If both conditions are true, then the line is drawn with the Dashline routine CURVED in line 8. Otherwise, no line is drawn.

By using the color identifier to pick out land values, you could draw grid lines only over land. Similarly, by looking up the area identifiers for a given country in section "Mp 6. Table of Ezmap area identifiers," you could draw grid lines either only over a given country, or over everything except a given country.

Exercises

  1. Using cmpmsk.f, modify MASK so that it draws grid lines only over land masses.
  2. Modify your own version of cmapa.f (from the Mp 4.3 exercises) so it draws only the grid lines that you want.

Mp 4.7 Filling areas

In this module, we use the Areas routine ARSCAM to fill areas, just as we did in the Areas chapter of this tutorial. The biggest difference is in the way we choose the areas to be filled.

A color-filled globe

Code segment from cmpfil.f

1       CALL COLOR
2       CALL MAPINT
3       CALL ARINAM (MAP, LMAP)
4       CALL MAPBLA (MAP)
5       CALL GSFAIS (1)
6       CALL ARSCAM (MAP, XWRK, YWRK, NWRK, IAREA, IGRP, ISIZ, FILL)
7       CALL MAPGRM (MAP, XWRK, YWRK, NWRK, IAREA, IGRP, ISIZ, MASK)
8       CALL MAPLOT

Synopsis

      CALL ARSCAM (MAP, XWRK, YWRK, NWRK, IAREA, IGRP, ISIZ, FILL)

Arguments

MAP
Integer array, Workspace---The area map that has been initialized by a call to ARINAM and to which edges have been added by calls to AREDAM. If you did not preprocess the area map by calling ARPRAM, ARSCAM calls it before doing anything else.
XWRK(NWRK), YWRK(NWRK)
Real arrays, Workspace---The X and Y coordinates defining the edge of a given area, for use by ARSCAM in calls to the area-processing routine APR.
NWRK
Integer, Input---Dimension of each of the arrays XWRK and YWRK. A nice size for NWRK is 1000.
IAREA(ISIZ), IGRP(ISIZ)
Integer arrays, Workspace---Each dimensioned NGRPS, for use by ARSCAM in calls to the area-processing routine APR.
ISIZ
Integer, Input---Dimension of each of the arrays IAREA and IGRP. ISIZ>=n, where n is the number of groups in the area map.
FILL
Subroutine---A user-supplied area-processing routine that is called by ARSCAM and that must be declared external in the routine that calls ARSCAM. The FILL subroutine is described in full detail in the next module.

Discussion

Line 1 of the cmpfil.f code segment sets up the color table. Lines 2, 3, and 4 initialize Ezmap and Areas, then add the geographic map to the area map.

Line 5 sets the GKS interior fill style to "solid" to produce solid fill. Line 6 calls the Areas scan area map routine with user-supplied fill routine so that each country is filled. Line 7 draws the grid lines over water, and line 8 draws the continental and political boundaries. The order of the overlaying done by these calls is critical to produce proper results. You must call detail-drawing routines after filling, since color-fill draws over anything that might have been there previously.

Exercises

  1. Using your own version of cmapa.f (from the Mp 4.3 exercises), set it up to fill the regions of your choice. You may also want to choose a different color table for your routine.

Mp 4.8 Filling areas: Writing a fill routine

The fill routine you write to work with Ezmap is nearly identical to one you would use to fill any type of area. Because there are so many area identifiers in Ezmap, Ezmap provides a tool that allows you to fill water with one color or fill pattern, then fill adjacent countries or states with different colors or fill patterns. This tool is a function named MAPACI.

A color-filled globe

Code segment from cmpfil.f

1       SUBROUTINE FILL (XWRK, YWRK, NWRK, IAREA, IGRP, IDSIZ)
2       DIMENSION XWRK(*), YWRK(*), IAREA(*), IGRP(*)
3       ID=0
4       DO 10, I=1, IDSIZ
5              IF (IGRP(I) .EQ. 1) ID = IAREA(I)
6   10  CONTINUE
7       IF (ID .GE. 1) THEN
8              CALL GSFACI (MAPACI(ID) + 1)
9              CALL GFA (NWRK, XWRK, YWRK)
10      ENDIF
11      RETURN
12      END

Synopsis

      SUBROUTINE FILL (XWRK, YWRK, NWRK, IAREA, IGRP, NGRPS)
      DIMENSION XWRK(*), YWRK(*), IAREA(*), IGRP(*)

Arguments

FILL
Subroutine---A user-supplied area-processing routine that is called by ARSCAM and that must be declared external in the routine that calls ARSCAM. The FILL subroutine must have the following form:
      SUBROUTINE FILL (XWRK, YWRK, NWRK, IAREA, IGRP, NGRPS)
      DIMENSION XWRK(*), YWRK(*), IAREA(*), IGRP(*)
(code to process the area defined by XWRK, YWRK, IAREA, and IGRP)
      RETURN
      END
XWRK(NWRK), YWRK(NWRK)
Real arrays, Input---The X and Y coordinates, in the fractional coordinate system, of NWRK points defining a polygonal area. The last of these points is a duplicate of the first. Holes in an area are traced in such a way as to maximize the probability of hardware fill working properly by using vertical lines to get to and from the holes and tracing them in the proper direction.
NWRK
Integer, Input---Number of X and Y coordinates in the arrays XWRK and YWRK. A nice starting value for NWRK is 1000.
IAREA(NGRPS), IGRP(NGRPS)
Integer arrays, Input---Hold NGRPS pairs of identifiers for the area defined by XWRK and YWRK. For each value of I from 1 to NGRPS, IAREA(I) is the area identifier for the area with respect to the group of edges specified by the group identifier IGRP(I).
NGRPS
Integer, Input---Number of values in IAREA and IGRP. NGRPS is equal to the number of groups of edges that you put in the area map.

Discussion

As discussed in module "Mp 4.1 Color and area identifiers in Ezmap," you can either isolate an area by looking up its area identifiers in section "Mp 6. Table of Ezmap area identifiers," or you can isolate the desired area using the color index. In this case, we want to ensure that oceans having an Ezmap color index of 1 are colored aquamarine, which has a GKS color index of 2.

Lines 4 through 6 of the cmpfil.f code segment retrieve the area identifier for the geographic region by checking each element of the group array for group identifier 1, and assigning its associated area id to ID. Line 7 checks to see if the area is over the map, and if so, line 8 chooses a color index by retrieving the suggested Ezmap color using MAPACI. Line 9 fills the area.

Exercises

  1. Use section "Mp 6. Table of Ezmap area identifiers" or the ngfile utility to determine the correct area identifier, then use the cmpfil example to change the color of Canada to be different than either the US or Russia.
  2. Using your own version of cmapa.f (from the Mp 4.3 exercises), modify it to do color fill.

Mp 5. Points, lines, and inverse transformations

Ezmap has two routines that project points onto a map, two sets of routines for adding lines to a map, and one routine that finds the latitude and longitude of a point whose projection on the u/v plane is known. The first set of routines deals strictly with adding lines to geographic or "simple" maps (drawing the lines), and the second set of routines adds lines to an area map (subdividing areas, but no lines are drawn). This section discusses each of these types of routines in detail.

Ezmap functional outline

----------------------------------------------------------
    1.  Open GKS                                             
    2.  Define position on plotter frame                     
    3.  Define map projection                                
    4.  Choose map limits                                    
    5.  Choose desired political boundaries                  
    6.  Initialize Areas                                     
    7.  Initialize Ezmap                                     
    8.  Add geographic boundaries (or outlines) to area map  
    9.  Draw geographic labels                               
 *  10.  Draw points and lines on your map                   
    11.  Draw desired latitude and longitude lines           
    12.  Fill desired areas                                  
    13.  Draw geographic outlines                            
    14.  Call FRAME                                          
    15.  Close GKS                                           
----------------------------------------------------------
* Steps discussed in this section.

Mp 5.1 Projecting a point onto the map

Ezmap offers two routines that project points onto a geographic map: MAPTRA and MAPTRN. Given the latitude and longitude of a point on the globe, both routines return the u/v coordinates of that point's projection. You can then take this information and do nearly anything with it, like draw a label or a polymarker. Conpack uses MAPTRA to project and draw contour lines.

Marking up a map

Code segment from cmptra.f

1       CALL MAPDRW
3       CALL MAPTRA (40., -105.15, X, Y)
4       IF (X .NE. 1.E12) CALL POINTS (X, Y, 1, -3, 0)

Synopsis

      CALL MAPTRA (RLAT, RLON, UVAL, VVAL)

Arguments

RLAT
Real, Input---The latitude of a point on the globe. RLAT must be between -90.0 and +90.0 inclusive.
RLON
Real, Input---The longitude of a point on the the globe. RLON must be between -540.0 and +540.0 inclusive. Positive longitudes are measured eastward from the Greenwich meridian, and negative longitudes are measured westward from the Greenwich meridian.
UVAL, VVAL
Real, Output---The point (UVAL, VVAL) is the point on the u/v plane into which the point with latitude RLAT and longitude RLON projects. The units of UVAL and VVAL depend on the projection.

Discussion

MAPTRA is identical to MAPTRN, with one exception: if the point is outside the boundary of the map, MAPTRA returns UVAL equal to 1.E12 and MAPTRN returns the u/v coordinates for the point. If you use MAPTRN, you may need to check to determine if the point is within limits.

If the point is not projectable on the map, both routines return UVAL equal to 1.E12.

Line 1 of the cmptra.f code segment draws the map as a reminder that the map projection and limits have been set up and that the map has been drawn. Line 3 calls MAPTRA to get the user coordinates of the point. If the coordinates are on the projection, then an asterisk is drawn over Boulder, Colorado, USA. MAPTRN or MAPTRA can be called any time after MAPINT is called.

Exercises

  1. Using a full-globe mercator projection, draw a red circle over Lhasa, Tibet (29., 91.)
  2. Using the preceding exercise, write the city names over Beijing, China (39., 116.) and Machu Picchu, Peru (-13., -72.).

Mp 5.2 Inverse transformations

Sometimes it is necessary to find the latitude and longitude values of a point, knowing only the user coordinates set up by the map transformation. MAPTRI allows you to do this for all Ezmap plots.

A cell array drawn with MAPTRI

Code segment from mpex10.f

1        DO 103, I=1, NCLS
2          X = CFUX (.05 + .90 * (REAL (I-1) + .5) / REAL (NCLS))
3          DO 102, J=1, NCLS
4            Y = CFUY (.05 + .90 * (REAL (J-1) + .5) / REAL (NCLS))
5            CALL MAPTRI (X, Y, RLAT, RLON)
6            IF (RLAT .NE. 1.E12) THEN
7                DVAL = .25 * (1. + COS (DTOR * 10. * RLAT)) +
        +         .25 * (1. + SIN (DTOR * 10. * RLON)) * COS (DTOR * RLAT)
8                ICRA (I,J) = MAX (2, MIN (NCLR+1, 2+INT (DVAL * REAL (NCLR))))
9            ELSE
10               ICRA (I,J) = 0
11           ENDIF
12 102     CONTINUE
13 103   CONTINUE
14       CALL GCA (CFUX(.05), CFUY(.05), CFUX(.95), CFUY(.95), 1000, 1000,
        + 1, 1, NCLS, NCLS, ICRA)
15       CALL MAPDRW

Synopsis

      CALL MAPTRI (X, Y, RLAT, RLON)

Arguments

X, Y
Real, Input---The X and Y user coordinates of the point for which you want latitude and longitude values.
RLAT, RLON
Real, Output---The latitude and longitude values for a point specified in user coordinates. If RLAT=1.E12, then the point is outside the map projection.

Discussion

The mpex10 example uses MAPTRI to create a cell array representing a data field on a projected globe.

Lines 1 through 13 of the mpex10.f code segment pick values to fill a cell array that will be used to color the globe. In line 2, CFUX takes an X coordinate in NDCs and returns an X coordinate in user coordinates. Similarly, CFUY in line 4 takes a Y coordinate of a point in NDCs and returns a Y value in user coordinates.

Line 5 uses MAPTRI to retrieve the coordinates of the point in latitude and longitude. Since MAPTRI returns a value of RLAT=1.E12 if the point is not over a plotted portion of the globe, line 6 checks to see if the point maps onto the portion of the globe that will be plotted. If it does, then a value for the cell array is specified there. Otherwise, line 10 sets the cell array element to black. Line 14 fills the cell array, and line 15 draws the map over it.

Exercises

  1. Modify mpex10.f to put a cell array only over the United States.

Mp 5.3 Drawing lines on a simple map

There are two routines to help you add lines to geographic maps. MAPIT draws line segments and omits nonvisible portions. MAPIQ terminates line segments drawn by MAPIT.

Drawing lines on your map

Code segment from cmptra.f

1       CALL MAPDRW
2       CALL MAPIT (37., -109., 0)
3       CALL MAPIT (41., -109., 1)
4       CALL MAPIT (41., -102., 1)
5       CALL MAPIT (37., -102., 1)
6       CALL MAPIT (37., -109., 1)
7       CALL MAPIQ

Synopsis

      CALL MAPIT (RLAT, RLON, IFST)
      CALL MAPIQ

Arguments

RLAT
Real, Input---The latitude, in degrees, of a point to which the "pen" is to be moved. RLAT must be between -90. and +90., inclusive.
RLON
Real, Input---The longitude, in degrees, of a point to which the "pen" is to be moved. RLON must be between -540. and +540., inclusive.
IFST
Integer, Input---The first point flag allows you to control whether or not line segments are drawn.
0 Do a "pen-up" move. IFST should be zero for the first point in each curve.
1 Do a "pen-down" move only if the distance from the last point to the new point is greater than MV/RE. IFST should be positive for any point after the first point in a curve.
>1 Do a "pen-down" move regardless of the distance from the last point to the new one. IFST should be positive for any point after the first point in a curve.

Discussion

MAPIT draws lines on the map. It is called by Ezmap and, if desired, it can be called by the user. MAPIT attempts to omit nonvisible portions of lines and to handle "crossover"---the jump from one side of the map to the other caused by the projection's having slit the globe along some half of a great circle and laid it open with the two sides of the slit at opposite ends of the map. Crossover can occur on cylindrical and conical projections; MAPIT handles it gracefully on the former and not so well on the latter.

The Ezmap parameter DL determines whether MAPIT draws solid lines or dotted lines. Dotted lines are drawn using calls to POINTS. Solid lines are drawn using calls to DASHD, FRSTD, and VECTD. The parameters DD and MV also affect the behavior of MAPIT. For more information on these parameters, see the descriptions in module "Mp 3.5 Drawing political and geographic outlines."

A sequence of calls to MAPIT should be followed by a call to MAPIQ to flush its buffers before a STOP, a CALL FRAME, or a call to change the color index. Points in two contiguous pen-down calls to MAPIT should not be far apart on the globe.

It doesn't matter whether you call MAPIT and MAPIQ before or after calling the map-drawing routines. However, MAPIT and MAPIQ must be called after Ezmap is initialized. In line 1 of the cmptra.f code segment, the call to MAPDRW initializes Ezmap.

Line 2 tells MAPIT to start drawing at the lower left corner of Colorado. Lines 3 through 6 draw the four sides of the state, and line 7 quits drawing.

Another application of MAPIT appears in the next module.

Exercises

  1. Using the cmpsup example, draw an X across the face of the globe.

Mp 5.4 Drawing a great circle between two points

The routine MAPGCI returns a set of points defining a great circle between two user-specified points. Great circles describe the shortest distance between two points over the surface of the globe. MAPGCI can be handy when doing things like trying to figure out the shortest route between Washington D.C. and London, for example.

Drawing a great circle between Washington D.C. and London

Code segment from cmpgci.f

1       CALL SUPMAP (8, 0., -50., 0., 0., -80., 90., 10., 2, 0., 0, 0, IERR)
2       CALL MAPGCI (38., -77., 51., 0., 100, RLAT, RLON)
3       CALL MAPIT (38., -77., 0)
4       DO 10, I=1, 100
5              CALL MAPIT (RLAT(I), RLON(I), 1)
6   10  CONTINUE
7       CALL MAPIT (51., 0., 1)
8       CALL MAPIQ

Synopsis

      CALL MAPGCI (ALAT, ALON, BLAT, BLON, NOPI, RLTI, RLNI)

Arguments

ALAT, ALON
Real, Input---The latitude and longitude of the first point to define a great circle.
BLAT, BLON
Real, Input---The latitude and longitude of the second point to define a great circle.
NOPI
Integer, Input---The number of points to be interpolated.
RLTI(NOPI), RLNI(NOPI)
Real arrays, Output---Arrays containing the latitudes and longitudes of each point interpolated along the great circle, excluding the points (ALAT, ALON) and (BLAT, BLON).

Discussion

Line 1 of the cmpgci.f code segment draws a cylindrical equidistant projection of the globe, showing the Atlantic and some portion of the land on either side. Line 2 gives MAPGCI the coordinates for Washington D.C. and London. Line 3 tells MAPIT that the first point is Washington D.C. Lines 4 through 6 draw line segments along the great circle, and line 7 draws the last segment to London. Line 8 quits drawing.

Exercises

  1. Given that Lhasa, Tibet is at (29., 91.), and Boulder, Colorado, USA is at (40., -105.15), draw a great circle between the two.

Mp 5.5 Adding lines to an area map

Just as we used MAPIT and MAPIQ to draw lines over a geographic map, we can use MAPITA and MAPIQA to add lines to an area map. MAPITA and MAPIQA do not draw lines, they simply add them to the area map, so if you want to draw the lines as well as see their effects, you must use both MAPIT with MAPIQ and MAPITA with MAPIQA.

Color array over land masses

Code segment 1 from cmpita.f

1       EXTERNAL FILL
2       COMMON /DAT1/ ZDAT(M,N)
3       CALL ARINAM (MAP, IMAP)
4       CALL MAPINT
5       CALL MAPBLA (MAP)
6       DO 1, I = -90, 90, IGRD
7          DO 2, J = -180, 180 - IGRD, IGRD
8             LEFT = (J + 181) * 1000 + (I + 91)
9             CALL MAPITA (REAL(I), REAL(J),      0, MAP, 5, LEFT, 0)
10            CALL MAPITA (REAL(I), REAL(J+IGRD), 1, MAP, 5, LEFT, 0)
11            CALL MAPIQA (MAP, 5, LEFT, 0)
12   2     CONTINUE
13   1  CONTINUE
14      DO 3, I = -180, 180, IGRD
15         DO 4, J = -90, 90 - IGRD, IGRD
16            CALL MAPITA (REAL(J),      REAL(I), 0, MAP, 5, 0, 0)
17            CALL MAPITA (REAL(J+IGRD), REAL(I), 1, MAP, 5, 0, 0)
18            CALL MAPIQA (MAP, 5, 0, 0)
19   4     CONTINUE
20   3  CONTINUE
21      CALL GSFAIS(1)
22      CALL ARSCAM (MAP, XWRK, YWRK, NWRK, IAREA, IGRP, 5, FILL)

Synopsis

      CALL MAPITA (RLAT, RLON, IFST, MAP, IDGRP, IDLEFT, IDRIT)
      CALL MAPIQA (MAP, IDGRP, IDLEFT, IDRIT)

Arguments

RLAT
Real, Input---Latitude of a point along the line.
RLON
Real, Input---Longitude of a point along the line.
IFST
Integer, Input---A flag that is set to zero for the first point of a line and nonzero for all other points of the line.
MAP
Integer array, Workspace---An integer array containing an area map.
IDGRP
Integer, Input---Group identifier for the line.
IDLEFT
Integer, Input---Area identifier for the area to the left of the line.
IDRIT
Integer, Input---Area identifier for the area to the right of the line.

Discussion

Line 1 of the cmpita.f code segment declares FILL to be external so it can be passed into ARSCAM. Line 2 sets up a common block so that we can pass the data array into the color-fill routine, FILL. Lines 3 through 5 initialize Ezmap and Areas together. The two loops from lines 6 through 13 add the latitude lines to the area map in 15-degree segments. In each case, the area to the left of each segment is defined to have an area identifier based on its latitude and longitude.

Area identifiers used for an entire curve are not necessarily the ones used for each call to MAPITA or MAPIQA. Inside the two routines is a 100-point buffer. Whenever the buffer fills or MAPIQA is called, the buffer is dumped, and the current values of IDGRP, IDLEFT, and IDRIT are used. To set group and area identifiers, make sure to call MAPIQA after every call to MAPITA where you change group or area identifiers.

Lines 14 through 20 add the longitude lines to the area map, giving each area identifiers of zero. The effect of these four loops is to give each 15-degree square on the map a single nonzero area identifier. When the area map is processed, each 15-degree square is then assigned its only nonzero area identifier. This is a shortcut that could possibly leave zeros as area identifiers for squares that run into the limb of a globe projection. Line 21 sets color fill to solid, and each square is filled by calling ARSCAM in line 22.

Ideally, you would want to assign the same area identifier to all four lines that form each boxed area, and it may be necessary to do this with some projections. Line 22 calls ARSCAM to fill each square over land with a color based on a Z data value. The FILL routine is discussed on the next page.

Mp 5.5 Adding lines to an area map

This tutorial shows numerous examples of the FILL routine for ARSCAM. The example in this module differs only because it relies on a Z data array to choose a fill option for a specific area. The code segment below is a continuation of the cmpita.f code shown in part 1 of this module.

Color array over land masses

Code segment 2 from cmpita.f

30      SUBROUTINE FILL (XWRK, YWRK, NWRK, IAREA, IGRP, NSIZE)
31      COMMON /DAT1/ ZDAT(M,N)
32
33      IAREA1 = -1
34      IAREA5 = -1
35      IF (NWRK .LE. 3) RETURN
36      DO 10, I=1, NSIZE
37         IF (IGRP(I) .EQ. 1) IAREA1 = IAREA(I)
38         IF (IGRP(I) .EQ. 5) IAREA5 = IAREA(I)
39  10  CONTINUE
40      IF (IAREA1 .GT. 0) THEN
41         IF (MAPACI (IAREA1) .NE. 1 .AND. IAREA5 .GT. 0) THEN
42            LAT = MOD (IAREA5, 1000)
43            I = LAT / IGRD + 1
44            LON = IAREA5 / 1000
45            J = LON / IGRD + 1
46            ICLR = INT (ZDAT (I, J)) + 1
47            CALL GSFACI (ICLR)
48            CALL GFA (NWRK-1, XWRK, YWRK)
49         ENDIF
50      ENDIF
51      RETURN
52      END

Discussion

Line 31 of the cmpita.f code segment uses a common block to retrieve a Z data array so specific latitude and longitude areas can be filled with colors based on a given data value. Line 35 checks to see if an area is well-defined; in other words, if an area is defined by less than three points, we return to ARSCAM.

Lines 37 and 38 check our group identifiers and retrieve the area identifiers for areas defined by the geographic map and for areas defined by our two-degree grid over the globe. Line 40 checks to see if the area is over the geographic map. Line 41 checks to see if the area is over land (it has a color index not equal to 1), and if it has a nonzero grid area identifier. If the area is over land, then lines 42 and 44 retrieve the latitude and longitude values for the area, and lines 43 and 45 retrieve the Z array indices.

Line 46 sets the color index to be the Z data value plus 1 (since the data ranges between 1 and 15 and we want to use colors 2 through 16 in our color table). You could just as easily use a different function to translate Z data values into color here. Lines 47 through 49 fill the region with the desired color.

Notice how long this program takes to execute. It is much faster to create a cell array and use MAPTRA to overlay it on a globe. For an example of this, see module "Mp 5.2 Inverse transformations."

Mp 5.6 Drawing lines masked by an area map

You can draw lines and mask them over specific parts of the globe by using MAPITM and MAPIQM. Ezmap also uses these same routines to draw masked grid lines.

Masking a curve

Code segment from cmpitm.f

1       EXTERNAL MASK1
2       CALL CMPMSK ('ME', 0., -75., 0., 'PS', 'CO', PLIM1, PLIM2, PLIM3, PLIM4,
       + 2., MAP, LMAP)
3       CALL CIRCLE (25., -80., 3.5, CLAT, CLON, NPTS)
4       CALL MAPITM (CLAT(1), CLON(1), 0, MAP, XWRK, YWRK, NWRK,
       + IAREA, IGRP, NGRPS, MASK1)
5       DO 102, ICIR=2, NPTS
6             CALL MAPITM (CLAT(ICIR), CLON(ICIR), 1, MAP, XWRK, YWRK, NWRK,
       +    IAREA, IGRP, NGRPS, MASK1)
7  102  CONTINUE
8       CALL MAPIQM (MAP, XWRK, YWRK, NWRK, IAREA, IGRP, NGRPS, MASK1)

Synopsis

      CALL MAPITM (RLAT, RLON, IFST, MAP, XWRK, YWRK, NWRK, IAREA, IGRP,
     +             ISIZ, MASK)
      CALL MAPIQM (MAP, XWRK, YWRK, NWRK, IAREA, ISIZ, MASK)

Arguments

RLAT
Real, Input---Latitude of a point along the line.
RLON
Real, Input---Longitude of a point along the line.
IFST
Integer, Input---A flag that is set to zero for the first point of a line and nonzero for all other points of the line.
MAP
Integer array, Workspace---An area map that has been constructed by calls to ARINAM and MAPBLA.
XWRK(NWRK), YWRK(NWRK)
Real arrays, Workspace---Real arrays dimensioned MCS, to be used by MAPITM in calls to the user-supplied routine MASK.
NWRK
Integer, Input---Dimension of the arrays XCS and YCS. MCS must be greater than or equal to 2; the value 100 is suggested.
IAREA(ISIZ), IGRP(ISIZ)
Integer arrays, Workspace---Integer arrays to be used by MAPITM in calls to the user-supplied routine MASK.
ISIZ
Integer, Input---Dimension of the arrays IAREA and IGRP. ISIZ>=n, where n is the number of groups in the area map.
MASK
Subroutine---A user-supplied line-processing routine that is called once for each piece of the masked line. Each such piece is contained in exactly one area defined by the area map. MASK must appear in an EXTERNAL statement in the routine that calls MAPITM. Details on how to write a masking routine are discussed in module "Mp 4.6 Grid lines with masking: Writing a masking routine," and in module "Ar 3.3 Writing a masking or line-drawing routine."

Discussion

You must call MAPITM once for each point along the line. After the last call to MAPITM for a given line, you must call MAPIQM to signal the end of the line.

The projection of the line segment joining two points on the globe is considered to be the straight-line segment joining the projections of the points. No attempt is made to project it as if it were a portion of a great circle, so it is a good idea to place points defining each segment closely together.

Only the visible portions of the line are drawn in the area map.

There are two types of boundaries between visible and invisible regions:

Line 1 declares MASK1 to be external so the compiler recognizes MASK1 as a subroutine and not an integer.

Line 2 of the cmpitm.f code segment calls CMPMSK to draw a map with grid lines masked over land. This code has been slightly modified from the code used in cmpmsk.f. In cmpitm.f, lines 4 through 8 use a single area map both for the grid line masking and for masking the circle that is drawn by using MAPITM and MAPIQM.

Line 3 calls a routine that generates a circle on any part of the globe. Because the globe is not flat, CIRCLE generates a circle of radius RADIUS---3.5 in this case---and rotates that circle to (RLAT, RLON)---25N, 80W in this case. CIRCLE returns CLAT and CLON, two arrays that contain NPTS latitude and longitude coordinates for the desired circle.

In line 4, MAPITM calls MASK1 to determine whether or not to draw the first point in the circle. In lines 5 through 7, MAPITM again calls MASK1 to draw line segments connecting each succeeding point in the circle if those segments are not over land. Line 8 calls MAPIQM to finish the circle.

Exercises

  1. Using the cmpitm example, draw the grid lines only over land and the circle only over water.

Mp 6. Table of Ezmap area identifiers

Ezmap has four outline datasets that are identified by the index numbers and two-character names shown:

-----------------------------------------
Number  Name  Contents                     
-----------------------------------------
1       CO    Continental outlines only    
2       US    US state outlines only       
3       PS    Continental, US state, and   
              international outlines       
4       PO    Continental and interna      
              tional outlines              
-----------------------------------------
This table shows the association between area identifiers and the names of the areas they identify. The first column gives the outline dataset name, the second column shows an area identifier, the third column shows a suggested color index for the area (to ensure that adjacent areas have different colors), and the name of the area appears in the fourth column.

This table is sorted by area name to help you find the area identifiers you need. A copy of this table is also available online via the ncargfile command.

----------------------------------------------
Data  Area id  Color   Area name                
 set           index                            
----------------------------------------------
PO    1264     3       Afghanistan              
PS    906      3       Afghanistan              
CO    3        2       Africa/Eurasia           
CO    99       2       Africa/Eurasia           
US    310      5       Alabama                  
PO    1014     3       Alaska                   
PS    450      3       Alaska                   
CO    5        2       Alaska---Atka Is.        
PO    1008     3       Alaska---Atka Is.        
PS    444      3       Alaska---Atka Is.        
CO    218      2       Alaska---Attu Is.        
PO    1356     3       Alaska---Attu Is.        
PS    998      3       Alaska---Attu Is.        
CO    20       2       Alaska---Kodiak Is.      
PO    1023     3       Alaska---Kodiak Is.      
PS    459      3       Alaska---Kodiak Is.      
CO    13       2       Alaska---Nunivak Is.     
PO    1016     3       Alaska---Nunivak Is.     
PS    452      3       Alaska---Nunivak Is.     
CO    9        2       Alaska---Saint           
                       Lawrence Is.             
PO    1012     3       Alaska---Saint           
                       Lawrence Is.             
PS    448      3       Alaska---Saint           
                       Lawrence Is.             
CO    10       2       Alaska---Umnak Is.       
PO    1013     3       Alaska---Umnak Is.       
PS    449      3       Alaska---Umnak Is.       
CO    12       2       Alaska---Unalaska Is.    
PO    1015     3       Alaska---Unalaska Is.    
PS    451      3       Alaska---Unalaska Is.    
PO    1200     3       Albania                  
PS    842      3       Albania                  
PO    1144     2       Algeria                  
PS    786      2       Algeria                  
PO    1158     4       Andorra                  
PS    800      4       Andorra                  
PO    1188     4       Angola                   
PS    830      4       Angola                   
PO    1187     4       Angola---exclave         
                       called Cabinda           
PS    829      4       Angola---exclave         
                       called Cabinda           
CO    1        2       Antarctica               
PO    1004     7       Antarctica               
PS    440      7       Antarctica               
CO    72       2       Antarctica---Alex        
                       ander Is.                
PO    1088     7       Antarctica---Alex        
                       ander Is.                
PS    666      7       Antarctica---Alex        
                       ander Is.                
CO    83       2       Antarctica---Anvers Is.  
PO    1106     7       Antarctica---Anvers Is.  
PS    748      7       Antarctica---Anvers Is.  
CO    36       2       Antarctica---Bear Is.    
PO    1042     7       Antarctica---Bear Is.    
PS    503      6       Antarctica---Bear Is.    
CO    85       2       Antarctica---Brabant     
                       Is.                      
PO    1108     7       Antarctica---Brabant     
                       Is.                      
PS    750      7       Antarctica---Brabant     
                       Is.                      
CO    73       2       Antarctica---Charcot     
                       Is.                      
PO    1089     7       Antarctica---Charcot     
                       Is.                      
PS    669      7       Antarctica---Charcot     
                       Is.                      
CO    95       2       Antarctica---Corona      
                       tion Is.                 
PO    1123     7       Antarctica---Corona      
                       tion Is.                 
PS    765      7       Antarctica---Corona      
                       tion Is.                 
CO    21       2       Antarctica---Guest Is.   
PO    1024     7       Antarctica---Guest Is.   
PS    460      7       Antarctica---Guest Is.   
CO    94       2       Antarctica---Joinvile    
                       Is.                      
PO    1121     7       Antarctica---Joinvile    
                       Is.                      
PS    763      7       Antarctica---Joinvile    
                       Is.                      
CO    92       2       Antarctica---King        
                       George Is.               
PO    1117     7       Antarctica---King        
                       George Is.               
PS    759      7       Antarctica---King        
                       George Is.               
CO    91       2       Antarctica---Living      
                       ston Is.                 
PO    1116     7       Antarctica---Living      
                       ston Is.                 
PS    758      7       Antarctica---Living      
                       ston Is.                 
CO    14       2       Antarctica---            
                       Roosevelt Is.            
PO    1017     7       Antarctica---            
                       Roosevelt Is.            
PS    453      7       Antarctica---            
                       Roosevelt Is.            
CO    213      2       Antarctica---Ross Is.    
PO    1351     7       Antarctica---Ross Is.    
PS    993      7       Antarctica---Ross Is.    
PO    1098     3       Argentina                
PS    713      3       Argentina                
PO    1103     3       Argentina---Tierra del   
                       Fuego                    
PS    739      3       Argentina---Tierra del   
                       Fuego                    
US    245      2       Arizona                  
US    270      5       Arkansas                 
CO    163      2       Australia                
PO    1297     3       Australia                
PS    939      3       Australia                
CO    193      2       Australia---Kangaroo     
                       Is.                      
PO    1330     3       Australia---Kangaroo     
                       Is.                      
PS    972      3       Australia---Kangaroo     
                       Is.                      
CO    185      2       Australia---Melville     
                       and Bathurst Is.         
PO    1322     3       Australia---Melville     
                       and Bathurst Is.         
PS    964      3       Australia---Melville     
                       and Bathurst Is.         
CO    200      2       Australia---Tasmania     
PO    1338     3       Australia---Tasmania     
PS    980      3       Australia---Tasmania     
PO    1178     3       Austria                  
PS    820      3       Austria                  
CO    67       2       Bahamas                  
CO    68       2       Bahamas                  
CO    70       2       Bahamas                  
PO    1083     6       Bahamas                  
PO    1084     6       Bahamas                  
PO    1086     6       Bahamas                  
US    360      4       Bahamas---Andros         
US    362      4       Bahamas---Andros         
US    363      4       Bahamas---Andros         
US    365      4       Bahamas---Andros         
US    368      4       Bahamas---Andros         
US    394      4       Bahamas---Cat Is.        
US    372      4       Bahamas---Eleuthera      
                       Is.                      
US    373      4       Bahamas---Eleuthera      
                       Is.                      
US    374      4       Bahamas---Eleuthera      
                       Is.                      
US    359      4       Bahamas---Grand          
                       Bahama                   
US    366      4       Bahamas---Grand          
                       Bahama                   
US    367      4       Bahamas---Grand          
                       Bahama                   
US    364      4       Bahamas---Great          
                       Abaco and Little         
                       Abaco                    
US    369      4       Bahamas---Mores Is.      
US    370      4       Bahamas---New Provi      
                       dence Is.                
PO    1276     4       Bangladesh               
PS    918      4       Bangladesh               
PO    1160     6       Belgium                  
PS    802      6       Belgium                  
PO    1064     2       Belize                   
PS    582      2       Belize                   
PO    1157     3       Benin                    
PS    799      3       Benin                    
PO    1277     3       Bhutan                   
PS    919      3       Bhutan                   
CO    203      2       Bismarck Archipel        
                       ago---New Britain        
PO    1341     3       Bismarck Archipel        
                       ago---New Britain        
PS    983      3       Bismarck Archipel        
                       ago---New Britain        
CO    205      2       Bismarck Archipel        
                       ago---New Hanover        
PO    1343     3       Bismarck Archipel        
                       ago---New Hanover        
PS    985      3       Bismarck Archipel        
                       ago---New Hanover        
CO    206      2       Bismarck Archipel        
                       ago---New Ireland        
PO    1344     3       Bismarck Archipel        
                       ago---New Ireland        
PS    986      3       Bismarck Archipel        
                       ago---New Ireland        
CO    123      1       Black Sea                
PO    1217     1       Black Sea                
PS    859      1       Black Sea                
PO    1101     4       Bolivia                  
PS    734      4       Bolivia                  
US    223      7       Border                   
CO    160      2       Borneo                   
PO    1298     3       Borneo---Brunei          
PS    940      3       Borneo---Brunei          
PO    1203     6       Botswana                 
PS    845      6       Botswana                 
PO    1094     6       Brazil                   
PS    705      6       Brazil                   
PO    1211     5       Bulgaria                 
PS    853      5       Bulgaria                 
PO    1279     3       Burma                    
PS    921      3       Burma                    
PO    1221     4       Burundi                  
PS    863      4       Burundi                  
US    226      4       California               
US    240      4       California---San Clem    
                       ente Is.                 
US    234      4       California---San         
                       Miguel Is.(island)       
US    239      4       California---San         
                       Nicholas Is.             
US    241      4       California---Santa Cat   
                       alina Is.                
US    238      4       California---Santa       
                       Cruz Is.                 
US    235      4       California---Santa       
                       Rosa Is.                 
PO    1286     2       Cambodia                 
PS    928      2       Cambodia                 
PO    1171     3       Cameroon                 
PS    813      3       Cameroon                 
PO    1026     6       Canada                   
PS    462      6       Canada                   
CO    62       2       Canada---Akimiski Is.    
PO    1075     6       Canada---Akimiski Is.    
PS    624      6       Canada---Akimiski Is.    
CO    82       2       Canada---Anticosti Is.   
PO    1105     6       Canada---Anticosti Is.   
PS    747      6       Canada---Anticosti Is.   
CO    50       2       Canada---Axel            
                       Heiberg Is.              
PO    1056     6       Canada---Axel            
                       Heiberg Is.              
PS    535      6       Canada---Axel            
                       Heiberg Is.              
CO    54       2       Canada---Baffin Is.      
PO    1062     6       Canada---Baffin Is.      
PS    568      6       Canada---Baffin Is.      
CO    25       2       Canada---Banks Is.       
PO    1029     6       Canada---Banks Is.       
PS    465      6       Canada---Banks Is.       
CO    39       2       Canada---Bathurst Is.    
PO    1045     6       Canada---Bathurst Is.    
PS    509      6       Canada---Bathurst Is.    
CO    65       2       Canada---Belcher Is.     
PO    1080     6       Canada---Belcher Is.     
PS    643      6       Canada---Belcher Is.     
CO    33       2       Canada---Borden Is.      
PO    1039     6       Canada---Borden Is.      
PS    498      6       Canada---Borden Is.      
CO    32       2       Canada---Brock Is.       
PO    1038     6       Canada---Brock Is.       
PS    493      6       Canada---Brock Is.       
CO    40       2       Canada---Byam Martin     
                       Is.                      
PO    1046     6       Canada---Byam Martin     
                       Is.                      
PS    510      6       Canada---Byam Martin     
                       Is.                      
CO    63       2       Canada---Bylot Is.       
PO    1078     6       Canada---Bylot Is.       
PS    634      6       Canada---Bylot Is.       
CO    58       2       Canada---Coats Is.       
PO    1070     6       Canada---Coats Is.       
PS    610      6       Canada---Coats Is.       
CO    47       2       Canada---Cornwall Is.    
PO    1053     6       Canada---Cornwall Is.    
PS    525      6       Canada---Cornwall Is.    
CO    48       2       Canada---Cornwallis      
                       Is.                      
PO    1054     6       Canada---Cornwallis      
                       Is.                      
PS    528      6       Canada---Cornwallis      
                       Is.                      
CO    49       2       Canada---Devon Is.       
PO    1055     6       Canada---Devon Is.       
PS    529      6       Canada---Devon Is.       
CO    28       2       Canada---Eglinton Is.    
PO    1033     6       Canada---Eglinton Is.    
PS    484      6       Canada---Eglinton Is.    
CO    37       2       Canada---Ellef           
                       Ringnes and Amund        
                       Ringnes Is.              
PO    1043     6       Canada---Ellef           
                       Ringnes and Amund        
                       Ringnes Is.              
PS    507      6       Canada---Ellef           
                       Ringnes and Amund        
                       Ringnes Is.              
CO    53       2       Canada---Ellesmere Is.   
PO    1060     6       Canada---Ellesmere Is.   
PS    562      6       Canada---Ellesmere Is.   
CO    26       1       Canada---Great Bear      
                       Lake                     
PO    1030     1       Canada---Great Bear      
                       Lake                     
PS    466      1       Canada---Great Bear      
                       Lake                     
CO    31       1       Canada---Great Slave     
                       Lake                     
PO    1036     1       Canada---Great Slave     
                       Lake                     
PS    490      1       Canada---Great Slave     
                       Lake                     
PS    716      1       Canada---lake            
US    415      1       Canada---lake            
CO    35       1       Canada---Lake Atha       
                       basca                    
PO    1041     1       Canada---Lake Atha       
                       basca                    
PS    501      1       Canada---Lake Atha       
                       basca                    
CO    44       1       Canada---Lake Mani       
                       toba                     
PO    1050     1       Canada---Lake Mani       
                       toba                     
PS    519      1       Canada---Lake Mani       
                       toba                     
CO    46       1       Canada---Lake Win        
                       nipeg                    
PO    1052     1       Canada---Lake Win        
                       nipeg                    
PS    521      1       Canada---Lake Win        
                       nipeg                    
CO    43       1       Canada---Lake Win        
                       nipegosis                
PO    1049     1       Canada---Lake Win        
                       nipegosis                
PS    518      1       Canada---Lake Win        
                       nipegosis                
CO    38       2       Canada---Lougheed Is.    
PO    1044     6       Canada---Lougheed Is.    
PS    508      6       Canada---Lougheed Is.    
CO    34       2       Canada---Mackenzie       
                       King Is.                 
PO    1040     6       Canada---Mackenzie       
                       King Is.                 
PS    499      6       Canada---Mackenzie       
                       King Is.                 
CO    60       2       Canada---Manitoulin      
                       Is.                      
PO    1072     6       Canada---Manitoulin      
                       Is.                      
CO    64       2       Canada---Mansel Is.      
PO    1079     6       Canada---Mansel Is.      
PS    642      6       Canada---Mansel Is.      
CO    45       2       Canada---Meighen Is.     
PO    1051     6       Canada---Meighen Is.     
PS    520      6       Canada---Meighen Is.     
CO    30       2       Canada---Melville Is.    
PO    1035     6       Canada---Melville Is.    
PS    488      6       Canada---Melville Is.    
PO    1118     6       Canada---Newfound        
                       land                     
PS    760      6       Canada---Newfound        
                       land                     
CO    71       2       Canada---Prince          
                       Charles Is.              
PO    1087     6       Canada---Prince          
                       Charles Is.              
PS    661      6       Canada---Prince          
                       Charles Is.              
CO    84       2       Canada---Prince          
                       Edward Is.               
PO    1107     6       Canada---Prince          
                       Edward Is.               
PS    749      6       Canada---Prince          
                       Edward Is.               
CO    42       2       Canada---Prince of       
                       Wales Is.                
PO    1048     6       Canada---Prince of       
                       Wales Is.                
PS    516      6       Canada---Prince of       
                       Wales Is.                
CO    27       2       Canada---Prince          
                       Patrick Is.              
PO    1032     6       Canada---Prince          
                       Patrick Is.              
PS    470      6       Canada---Prince          
                       Patrick Is.              
CO    23       2       Canada---Queen Char      
                       lotte Is.                
PO    1027     6       Canada---Queen Char      
                       lotte Is.                
PS    463      6       Canada---Queen Char      
                       lotte Is.                
CO    41       1       Canada---Reindeer        
                       Lake                     
PO    1047     1       Canada---Reindeer        
                       Lake                     
PS    514      1       Canada---Reindeer        
                       Lake                     
CO    56       2       Canada---Southamp        
                       ton Is.                  
PO    1067     6       Canada---Southamp        
                       ton Is.                  
PS    590      6       Canada---Southamp        
                       ton Is.                  
CO    24       2       Canada---Vancouver       
                       Is.                      
PO    1028     6       Canada---Vancouver       
                       Is.                      
PS    464      6       Canada---Vancouver       
                       Is.                      
CO    29       2       Canada---Victoria Is.    
PO    1034     6       Canada---Victoria Is.    
PS    485      6       Canada---Victoria Is.    
CO    100      2       Canary Is.               
CO    101      2       Canary Is.               
CO    102      2       Canary Is.               
CO    103      2       Canary Is.               
PO    1130     2       Canary Is.               
PO    1133     2       Canary Is.               
PO    1135     2       Canary Is.               
PO    1136     2       Canary Is.               
PS    772      2       Canary Is.               
PS    775      2       Canary Is.               
PS    777      2       Canary Is.               
PS    778      2       Canary Is.               
CO    134      1       Caspian Sea              
PO    1249     1       Caspian Sea              
PS    891      1       Caspian Sea              
PO    1196     5       Central African          
                       Republic                 
PS    838      5       Central African          
                       Republic                 
PO    1194     2       Chad                     
PS    836      2       Chad                     
PO    1090     2       Chile                    
PS    693      2       Chile                    
PS    702      2       Chile---Is.la de Chiloe  
PO    1093     2       Chile---Isla de Chiloe   
PO    1091     2       Chile---Tierra del       
                       Fuego                    
PS    699      2       Chile---Tierra del       
                       Fuego                    
PO    1270     5       China                    
PS    912      5       China                    
CO    159      2       China---Hainan Dao       
PO    1292     5       China---Hainan Dao       
                       (island)                 
PS    934      5       China---Hainan Dao       
                       (island)                 
US    339      1       Clark Hill Reservoir     
PO    1082     2       Colombia                 
PS    647      2       Colombia                 
US    251      6       Colorado                 
PO    1185     2       Congo                    
PS    827      2       Congo                    
US    409      5       Connecticut              
CO    111      2       Corsica                  
PO    1173     3       Corsica                  
PS    815      3       Corsica                  
PO    1068     2       Costa Rica               
PS    596      2       Costa Rica               
CO    122      2       Crete                    
PO    1212     2       Crete                    
PS    854      2       Crete                    
CO    57       2       Cuba                     
PO    1069     4       Cuba                     
PS    602      4       Cuba                     
CO    61       2       Cuba---Isla de Pinos     
PO    1073     4       Cuba---Isla de Pinos     
PS    616      4       Cuba---Isla de Pinos     
CO    80       2       Curacao                  
PO    1102     3       Curacao                  
PS    735      3       Curacao                  
CO    128      2       Cyprus                   
PO    1228     3       Cyprus                   
PS    870      3       Cyprus                   
PO    1189     2       Czechoslovakia           
PS    831      2       Czechoslovakia           
US    393      5       Delaware                 
US    402      1       Delaware---bay           
CO    112      2       Denmark---Fyn            
PO    1179     2       Denmark---Fyn            
PS    821      2       Denmark---Fyn            
PO    1169     2       Denmark---Jutland        
PS    811      2       Denmark---Jutland        
CO    113      2       Denmark---Lolland        
PO    1181     2       Denmark---Lolland        
PS    823      2       Denmark---Lolland        
CO    115      2       Denmark---Sjaelland      
PO    1183     2       Denmark---Sjaelland      
PS    825      2       Denmark---Sjaelland      
PO    1272     4       Disputed area between    
                       India and China          
PS    914      4       Disputed area between    
                       India and China          
PO    1242     3       Djibouti                 
PS    884      3       Djibouti                 
PO    1100     3       Dominican Republic       
PS    724      3       Dominican Republic       
PO    1180     3       East Germany             
PS    822      3       East Germany             
PO    1077     3       Ecuador                  
PS    632      3       Ecuador                  
PO    1213     6       Egypt                    
PS    855      6       Egypt                    
PO    1061     4       El Salvador              
PS    567      4       El Salvador              
PO    1150     5       England                  
PS    792      5       England                  
PO    1175     6       Equatorial Guinea        
PS    817      6       Equatorial Guinea        
PO    1230     4       Ethiopia                 
PS    872      4       Ethiopia                 
CO    105      2       Faeroe Is.               
PO    1147     2       Faeroe Is.               
PS    789      2       Faeroe Is.               
CO    89       2       Faulkland Is.            
PO    1114     5       Faulkland Is.            
PS    756      5       Faulkland Is.            
CO    222      2       Fiji---Vanua Levu        
PO    1360     3       Fiji---Vanua Levu        
PS    1002     3       Fiji---Vanua Levu        
CO    221      2       Fiji---Viti Levu         
PO    1359     3       Fiji---Viti Levu         
PS    1001     3       Fiji---Viti Levu         
PO    1205     3       Finland                  
PS    847      3       Finland                  
US    313      4       Florida                  
US    322      4       Florida---island         
US    348      4       Florida---island         
US    349      4       Florida---island         
US    350      4       Florida---island         
US    351      4       Florida---island         
US    353      4       Florida---island         
US    343      4       Florida---Keys           
US    344      4       Florida---Keys           
US    345      4       Florida---Keys           
US    346      4       Florida---Keys           
US    319      1       Florida---lake           
US    347      1       Florida---Lake           
                       Okeechobee               
US    341      4       Florida---Pine Is.       
US    340      4       Florida---Sanibel Is.    
PO    1153     3       France                   
PS    795      3       France                   
PO    1122     3       French Guiana            
PS    764      3       French Guiana            
PO    1174     5       Gabon                    
PS    816      5       Gabon                    
CO    52       2       Galapagos Is.            
PO    1059     3       Galapagos Is.            
PS    553      3       Galapagos Is.            
PO    1132     2       Gambia                   
PS    774      2       Gambia                   
US    320      6       Georgia                  
PO    1154     5       Ghana                    
PS    796      5       Ghana                    
CO    118      2       Gotland                  
PO    1199     2       Gotland                  
PS    841      2       Gotland                  
US    248      1       Great Salt Lake          
CO    119      2       Greece                   
PO    1202     2       Greece                   
PO    1206     2       Greece                   
PS    844      2       Greece                   
PS    848      2       Greece                   
CO    79       2       Green                    
PO    1099     2       Greenland                
PS    718      2       Greenland                
CO    98       2       Greenland---off-shore    
                       island                   
PO    1126     2       Greenland---off-shore    
                       island                   
PS    768      2       Greenland---off-shore    
                       island                   
CO    88       2       Guadeloupe---east        
PO    1112     3       Guadeloupe---east        
PS    754      3       Guadeloupe---east        
CO    87       2       Guadeloupe---west        
PO    1111     3       Guadeloupe---west        
PS    753      3       Guadeloupe---west        
PO    1057     3       Guatemala                
PS    549      3       Guatemala                
PO    1134     5       Guinea                   
PS    776      5       Guinea                   
PO    1131     4       Guinea-Bissau            
PS    773      4       Guinea-Bissau            
PO    1113     4       Guyana                   
PS    755      4       Guyana                   
PO    1092     6       Haiti                    
PS    700      6       Haiti                    
CO    75       2       Haiti and the Domini     
                       can Republic             
CO    19       2       Hawaiian Is.---Hawaii    
PO    1022     3       Hawaiian Is.---Hawaii    
PS    458      3       Hawaiian Is.---Hawaii    
CO    16       2       Hawaiian Is.---Kauai     
PO    1019     3       Hawaiian Is.---Kauai     
PS    455      3       Hawaiian Is.---Kauai     
CO    18       2       Hawaiian Is.---Maui      
PO    1021     3       Hawaiian Is.---Maui      
PS    457      3       Hawaiian Is.---Maui      
CO    15       2       Hawaiian Is.---Niihau    
PO    1018     3       Hawaiian Is.---Niihau    
PS    454      3       Hawaiian Is.---Niihau    
CO    17       2       Hawaiian Is.---Oahu      
PO    1020     3       Hawaiian Is.---Oahu      
PS    456      3       Hawaiian Is.---Oahu      
PO    1063     5       Honduras                 
PS    572      5       Honduras                 
PO    1197     5       Hungary                  
PS    839      5       Hungary                  
CO    97       2       Iceland                  
PO    1125     7       Iceland                  
PS    767      7       Iceland                  
US    242      6       Idaho                    
CO    146      2       Ile Kerguelen            
PO    1268     3       Ile Kerguelen            
PS    910      3       Ile Kerguelen            
US    284      4       Illinois                 
PO    1267     2       India                    
PS    909      2       India                    
US    311      5       Indiana                  
CO    177      2       Indonesia---Alor         
PO    1312     5       Indonesia---Alor         
PS    954      5       Indonesia---Alor         
CO    164      2       Indonesia---Bali         
PO    1299     5       Indonesia---Bali         
PS    941      5       Indonesia---Bali         
CO    156      2       Indonesia---Bangka       
PO    1289     5       Indonesia---Bangka       
PS    931      5       Indonesia---Bangka       
CO    162      2       Indonesia---Bawean       
PO    1296     5       Indonesia---Bawean       
PS    938      5       Indonesia---Bawean       
CO    158      2       Indonesia---Belitung     
PO    1291     5       Indonesia---Belitung     
PS    933      5       Indonesia---Belitung     
CO    192      2       Indonesia---Biak and     
                       Kepulauan Schouten       
PO    1329     5       Indonesia---Biak and     
                       Kepulauan Schouten       
PS    971      5       Indonesia---Biak and     
                       Kepulauan Schouten       
PO    1293     5       Indonesia---Borneo---    
                       Kalimantan               
PS    935      5       Indonesia---Borneo---    
                       Kalimantan               
CO    180      2       Indonesia---Buru         
PO    1316     5       Indonesia---Buru         
PS    958      5       Indonesia---Buru         
CO    183      2       Indonesia---Ceram        
PO    1320     5       Indonesia---Ceram        
PS    962      5       Indonesia---Ceram        
CO    169      2       Indonesia---Flores       
PO    1304     5       Indonesia---Flores       
PS    946      5       Indonesia---Flores       
CO    182      2       Indonesia---Halmahera    
PO    1319     5       Indonesia---Halmahera    
PS    961      5       Indonesia---Halmahera    
CO    175      2       Indonesia---island       
PO    1310     5       Indonesia---island       
PS    952      5       Indonesia---island       
CO    157      2       Indonesia---Java         
PO    1290     5       Indonesia---Java         
PS    932      5       Indonesia---Java         
CO    191      2       Indonesia---Kepu         
                       lauan Aru                
PO    1328     5       Indonesia---Kepu         
                       lauan Aru                
PS    970      5       Indonesia---Kepu         
                       lauan Aru                
CO    189      2       Indonesia---Kepu         
                       lauan Tanimbar           
PO    1326     5       Indonesia---Kepu         
                       lauan Tanimbar           
PS    968      5       Indonesia---Kepu         
                       lauan Tanimbar           
PO    1324     5       Indonesia---New          
                       Guinea---Irian Jaya      
PS    966      5       Indonesia---New          
                       Guinea---Irian Jaya      
CO    152      2       Indonesia---Nias         
PO    1281     5       Indonesia---Nias         
PS    923      5       Indonesia---Nias         
CO    181      2       Indonesia---Obi          
PO    1318     5       Indonesia---Obi          
PS    960      5       Indonesia---Obi          
CO    153      2       Indonesia---Siberut      
PO    1283     5       Indonesia---Siberut      
PS    925      5       Indonesia---Siberut      
CO    167      2       Indonesia---Sulawesi     
                       (Celebes)                
PO    1302     5       Indonesia---Sulawesi     
                       (Celebes)                
PS    944      5       Indonesia---Sulawesi     
                       (Celebes)                
CO    151      2       Indonesia---Sumatra      
PO    1280     5       Indonesia---Sumatra      
PS    922      5       Indonesia---Sumatra      
CO    168      2       Indonesia---Sumba        
PO    1303     5       Indonesia---Sumba        
PS    945      5       Indonesia---Sumba        
PS    942      5       Indonesia---Sumbawa      
                       & Lombok             
CO    165      2       Indonesia---Sumbawa      
                       and Lombok               
PO    1300     5       Indonesia---Sumbawa      
                       and Lombok               
CO    176      2       Indonesia---Timor        
PO    1311     5       Indonesia---Timor        
PS    953      5       Indonesia---Timor        
CO    186      2       Indonesia---Waigeo       
PO    1323     5       Indonesia---Waigeo       
PS    965      5       Indonesia---Waigeo       
CO    179      2       Indonesia---Wetar        
PO    1315     5       Indonesia---Wetar        
PS    957      5       Indonesia---Wetar        
US    262      6       Iowa                     
PO    1246     5       Iran                     
PS    888      5       Iran                     
PO    1240     6       Iraq                     
PS    882      6       Iraq                     
CO    104      2       Ireland                  
PO    1141     4       Ireland                  
PS    783      4       Ireland                  
CO    76       2       Isla de Chiloe           
PO    1233     2       Israel                   
PS    875      2       Israel                   
PO    1167     6       Italy                    
PS    809      6       Italy                    
PO    1145     4       Ivory Coast              
PS    787      4       Ivory Coast              
CO    69       2       Jamaica                  
PO    1085     5       Jamaica                  
PS    650      5       Jamaica                  
CO    196      2       Japan---Hokkaido         
PO    1333     3       Japan---Hokkaido         
PS    975      3       Japan---Hokkaido         
CO    188      2       Japan---Honshu           
PO    1325     3       Japan---Honshu           
PS    967      3       Japan---Honshu           
CO    184      2       Japan---Kyushu           
PO    1321     3       Japan---Kyushu           
PS    963      3       Japan---Kyushu           
CO    190      2       Japan---Shikoku          
PO    1327     3       Japan---Shikoku          
PS    969      3       Japan---Shikoku          
PO    1237     5       Jordan                   
PS    879      5       Jordan                   
US    257      4       Kansas                   
US    299      6       Kentucky                 
PO    1231     5       Kenya                    
PS    873      5       Kenya                    
PO    1361     2       Kuwait                   
PS    1003     2       Kuwait                   
CO    117      1       Lake Chad                
PO    1192     1       Lake Chad                
PS    834      1       Lake Chad                
US    411      1       Lake Champlain           
US    413      2       Lake Champlain---        
                       Grand Isle               
CO    59       1       Lake Erie                
PO    1071     1       Lake Erie                
US    333      1       Lake Erie                
US    354      2       Lake Erie---Long Point   
                       (land)                   
US    329      1       Lake George              
US    337      2       Lake Huron---Barrie      
                       Is.                      
US    325      2       Lake Huron---Bois        
                       Blanc Is.                
US    355      2       Lake Huron---Chris       
                       tian Is.                 
US    332      2       Lake Huron---Cock        
                       burn Is.                 
US    330      2       Lake Huron---Drum        
                       mond Is.                 
US    342      2       Lake Huron---Fitzwill    
                       iam Is.                  
US    335      2       Lake Huron---Mani        
                       toulin Is.               
US    246      1       Lake Mead (east)         
US    244      1       Lake Mead (west)         
US    321      2       Lake Michigan---Bea      
                       ver Is.                  
US    317      2       Lake Michigan---Man      
                       itou Is.                 
US    314      2       Lake Michigan---         
                       Washington Is.           
CO    129      1       Lake Nyasa               
PO    1232     1       Lake Nyasa               
PS    874      1       Lake Nyasa               
CO    66       1       Lake Ontario             
PO    1081     1       Lake Ontario             
US    357      1       Lake Ontario             
US    371      2       Lake Ontario---island    
US    375      2       Lake Ontario---island    
US    377      2       Lake Ontario---island    
US    323      1       Lake Seminole            
US    336      1       Lake St. Clair           
CO    51       1       Lake Superior            
PO    1058     1       Lake Superior            
US    281      1       Lake Superior            
US    316      2       Lake Superior---         
                       Grand Is.                
US    326      2       Lake Superior---island   
US    307      2       Lake Superior---Isle     
                       Royale                   
US    286      2       Lake Superior---Made     
                       line Is.                 
US    318      2       Lake Superior---Mich     
                       ipicoten Is.             
US    288      2       Lake Superior---Oak      
                       Is.                      
US    292      2       Lake Superior---Outer    
                       Is.                      
US    308      2       Lake Superior---Pie Is.  
US    289      2       Lake Superior---Stock    
                       ton Is.                  
US    236      1       Lake Tahoe               
CO    125      1       Lake Tanganyika          
PO    1220     1       Lake Tanganyika          
PS    862      1       Lake Tanganyika          
US    261      1       Lake Texoma              
CO    127      1       Lake Victoria            
PO    1227     1       Lake Victoria            
PS    869      1       Lake Victoria            
CO    55       1       Lakes Michigan and       
                       Huron                    
PO    1065     1       Lakes Michigan and       
                       Huron                    
US    312      1       Lakes Michigan and       
                       Huron                    
PO    1285     6       Laos                     
PS    927      6       Laos                     
PO    1238     3       Lebanon                  
PS    880      3       Lebanon                  
PO    1216     6       Lesotho                  
PS    858      6       Lesotho                  
PO    1140     3       Liberia                  
PS    782      3       Liberia                  
PO    1176     4       Libya                    
PS    818      4       Libya                    
PO    1177     4       Liechtenstein            
PS    819      4       Liechtenstein            
CO    77       2       Long Is.                 
PO    1095     3       Long Is.                 
US    417      1       Long Is.---Great South   
                       Bay                      
US    272      4       Louisiana                
US    275      1       Louisiana---Calcasieu    
                       Lake                     
US    309      4       Louisiana---Cat Is.      
US    278      1       Louisiana---Grand        
                       Lake                     
US    285      4       Louisiana---island       
US    287      4       Louisiana---island       
US    296      4       Louisiana---island       
US    297      4       Louisiana---island       
US    298      4       Louisiana---island       
US    300      4       Louisiana---island       
US    301      4       Louisiana---island       
US    302      4       Louisiana---island       
US    303      4       Louisiana---island       
US    304      4       Louisiana---island       
US    305      4       Louisiana---island       
US    306      4       Louisiana---island       
US    290      1       Louisiana---Lake Mau     
                       repas                    
US    294      1       Louisiana---Lake Pont    
                       chartrain                
US    282      4       Louisiana---Marsh Is.    
US    273      1       Louisiana---Sabine       
                       Lake                     
US    291      4       Louisiana---Timbalier    
                       Is.                      
US    280      1       Louisiana---White        
                       Lake                     
PO    1164     5       Luxembourg               
PS    806      5       Luxembourg               
CO    110      2       "Macias Nguema           
                       Biyogo (African          
                       island, Fernando Po)"    
PO    1172     3       "Macias Nguema           
                       Biyogo (African          
                       island, Fernando Po)"    
PS    814      3       "Macias Nguema           
                       Biyogo (African          
                       island, Fernando Po)"    
CO    132      2       Madagascar               
PO    1244     3       Madagascar               
PS    886      3       Madagascar               
US    427      5       Maine                    
US    431      5       Maine---island           
US    432      5       Maine---island           
US    433      5       Maine---island           
US    434      5       Maine---island           
US    435      5       Maine---island           
US    436      5       Maine---island           
US    437      5       Maine---island           
US    438      5       Maine---island           
US    439      5       Maine---island           
PO    1229     2       Malawi                   
PS    871      2       Malawi                   
PO    1294     6       Malaysia---Borneo---     
                       Malaysia Timor           
PS    936      6       Malaysia---Borneo---     
                       Malaysia Timor           
PO    1201     6       Malaysia---Malay Pen     
                       insula                   
PS    843      6       Malaysia---Malay Pen     
                       insula                   
PO    1139     6       Mali                     
PS    781      6       Mali                     
CO    108      2       Mallorca                 
PO    1159     2       Mallorca                 
PS    801      2       Mallorca                 
CO    90       2       Martinique               
PO    1115     3       Martinique               
PS    757      3       Martinique               
US    358      4       Maryland                 
US    403      4       Maryland                 
US    404      4       Maryland                 
US    386      1       Maryland---inlet         
US    376      4       Maryland---island        
US    378      4       Maryland---island        
US    380      4       Maryland---island        
US    381      4       Maryland---island        
US    410      4       Massachusetts            
US    426      1       Massachusetts---bay      
US    430      1       Massachusetts---inlet    
US    428      4       Massachusetts---Mar      
                       thas Vineyard            
US    429      4       Massachusetts---Nan      
                       tucket Is.               
PO    1129     4       Mauritania               
PS    771      4       Mauritania               
CO    142      2       Mauritius                
PO    1261     3       Mauritius                
PS    903      3       Mauritius                
PO    1037     6       Mexico                   
PS    491      6       Mexico                   
US    315      2       Michigan (lower)         
US    293      2       Michigan (upper)         
US    260      4       Minnesota                
US    264      1       Minnesota---Lake of      
                       the Woods                
US    268      4       Minnesota---Lake of      
                       the Woods---island       
US    269      4       Minnesota---Lake of      
                       the Woods---island       
US    271      4       Minnesota---Lake of      
                       the Woods---island       
US    266      4       Minnesota---Lake of      
                       the Woods---land west    
                       of lake                  
US    279      4       Minnesota---little       
                       piece                    
US    276      1       Minnesota---Namakan      
                       Lake                     
US    274      1       Minnesota---Rainy        
                       Lake                     
US    265      1       Minnesota---Shoal        
                       Lake                     
US    283      2       Mississippi              
US    263      2       Missouri                 
PO    1275     3       Mongolia                 
PS    917      3       Mongolia                 
US    243      5       Montana                  
PO    1138     5       Morocco                  
PS    780      5       Morocco                  
PO    1225     4       Mozambique               
PS    867      4       Mozambique               
PO    1186     2       Namibia                  
PS    828      2       Namibia                  
US    253      5       Nebraska                 
PO    1274     3       Nepal                    
PS    916      3       Nepal                    
PO    1162     3       Netherlands              
PS    804      3       Netherlands              
US    237      5       Nevada                   
CO    212      2       New Caledonia            
                       (island)                 
PO    1350     3       New Caledonia            
                       (island)                 
PS    992      3       New Caledonia            
                       (island)                 
CO    187      2       New Guinea               
PO    1336     3       New Guinea---Papua       
PS    978      3       New Guinea---Papua       
US    418      6       New Hampshire            
US    414      1       New Hampshire---lake     
US    416      1       New Hampshire---lake     
CO    215      2       New Hebrides---Espir     
                       itu Santo                
PO    1353     3       New Hebrides---Espir     
                       itu Santo                
PS    995      3       New Hebrides---Espir     
                       itu Santo                
CO    216      2       New Hebrides---Male      
                       kula                     
PO    1354     3       New Hebrides---Male      
                       kula                     
PS    996      3       New Hebrides---Male      
                       kula                     
US    400      2       New Jersey               
US    405      2       New Jersey---island      
US    407      1       New Jersey---Newark      
                       Bay                      
US    250      5       New Mexico               
US    356      3       New York                 
US    420      3       New York---Fishers Is.   
US    408      3       New York---Long Is.      
US    419      3       New York---Shelter Is.   
CO    6        2       New Zealand---           
                       Chatham Is.              
PO    1009     6       New Zealand---           
                       Chatham Is.              
PS    445      6       New Zealand---           
                       Chatham Is.              
CO    219      2       New Zealand---North      
                       Is.                      
CO    220      2       New Zealand---North      
                       Is.                      
PO    1357     6       New Zealand---North      
                       Is.                      
PO    1358     6       New Zealand---North      
                       Is.                      
PS    999      6       New Zealand---North      
                       Is.                      
PS    1000     6       New Zealand---North      
                       Is.                      
CO    214      2       New Zealand---South      
                       Is.                      
PO    1352     6       New Zealand---South      
                       Is.                      
PS    994      6       New Zealand---South      
                       Is.                      
CO    217      2       New Zealand---Stew       
                       art Is.                  
PO    1355     6       New Zealand---Stew       
                       art Is.                  
PS    997      6       New Zealand---Stew       
                       art Is.                  
CO    93       2       Newfoundland             
PO    1066     6       Nicaragua                
PS    588      6       Nicaragua                
PO    1156     5       Niger                    
PS    798      5       Niger                    
PO    1161     4       Nigeria                  
PS    803      4       Nigeria                  
CO    11       2       North and South          
                       America                  
US    328      4       North Carolina           
US    361      4       North Carolina---Cape    
                       Fear                     
US    383      4       North Carolina---        
                       island                   
US    384      4       North Carolina---        
                       island                   
US    388      4       North Carolina---        
                       island                   
US    391      4       North Carolina---        
                       island                   
US    392      4       North Carolina---        
                       island                   
US    395      4       North Carolina---        
                       island                   
US    396      4       North Carolina---        
                       island                   
US    397      4       North Carolina---        
                       island                   
US    398      4       North Carolina---        
                       island                   
US    399      4       North Carolina---        
                       island                   
US    255      3       North Dakota             
PO    1314     2       North Korea              
PS    956      2       North Korea              
PO    1146     5       Northern Ireland         
PS    788      5       Northern Ireland         
PO    1163     4       Norway                   
PS    805      4       Norway                   
CO    2        1       Oceans                   
PO    1005     1       Oceans                   
PS    441      1       Oceans                   
US    324      4       Ohio                     
US    256      3       Oklahoma                 
PO    1254     4       Oman---northern sec      
                       tion                     
PS    896      4       Oman---northern sec      
                       tion                     
PO    1260     4       Oman---southern sec      
                       tion                     
PS    902      4       Oman---southern sec      
                       tion                     
US    225      3       Oregon                   
CO    106      2       Outer Hebrides           
PO    1148     2       Outer Hebrides           
PS    790      2       Outer Hebrides           
PO    1265     4       Pakistan                 
PS    907      4       Pakistan                 
PO    1074     5       Panama                   
PS    617      5       Panama                   
PO    1109     5       Paraguay                 
PS    751      5       Paraguay                 
US    352      6       Pennsylvania             
PO    1076     5       Peru                     
PS    630      5       Peru                     
CO    170      2       Philippines---Luzon      
PO    1305     4       Philippines---Luzon      
PS    947      4       Philippines---Luzon      
CO    174      2       Philippines---Mind       
                       anao                     
PO    1309     4       Philippines---Mind       
                       anao                     
PS    951      4       Philippines---Mind       
                       anao                     
CO    172      2       Philippines---Mindoro    
PO    1307     4       Philippines---Mindoro    
PS    949      4       Philippines---Mindoro    
CO    166      2       Philippines---Palawan    
PO    1301     4       Philippines---Palawan    
PS    943      4       Philippines---Palawan    
CO    173      2       "Philippines---Panay,    
                       Negros, and Bohol"       
PO    1308     4       "Philippines---Panay,    
                       Negros, and Bohol"       
PS    950      4       "Philippines---Panay,    
                       Negros, and Bohol"       
CO    178      2       Philippines---Samar      
PO    1313     4       Philippines---Samar      
PS    955      4       Philippines---Samar      
PO    1195     5       Poland                   
PS    837      5       Poland                   
PO    1142     4       Portugal                 
PS    784      4       Portugal                 
CO    81       2       Puerto Rico              
PO    1104     3       Puerto Rico              
PS    746      3       Puerto Rico              
PO    1252     4       Qatar                    
PS    894      4       Qatar                    
CO    140      2       Reunion Is.              
PO    1258     3       Reunion Is.              
PS    900      3       Reunion Is.              
US    421      6       Rhode Is.                
US    422      6       Rhode Is.---Block Is.    
US    423      6       Rhode Is.---island       
US    424      6       Rhode Is.---island       
US    425      6       Rhode Is.---island       
CO    124      2       Rhodes                   
PO    1218     2       Rhodes                   
PS    860      2       Rhodes                   
PO    1204     3       Romania                  
PS    846      3       Romania                  
PO    1219     5       Rwanda                   
PS    861      5       Rwanda                   
CO    7        2       Samoa---Savaii           
PO    1010     3       Samoa---Savaii           
PS    446      3       Samoa---Savaii           
CO    8        2       Samoa---Upolu            
PO    1011     3       Samoa---Upolu            
PS    447      3       Samoa---Upolu            
CO    109      2       Sardinia                 
PO    1170     6       Sardinia                 
PS    812      6       Sardinia                 
PO    1236     3       Saudi Arabia             
PS    878      3       Saudi Arabia             
US    327      1       Sault Ste. Marie         
PO    1149     2       Scotland                 
PS    791      2       Scotland                 
CO    107      2       Scotland/England/Wal     
                       es                       
PO    1127     3       Senegal                  
PS    769      3       Senegal                  
CO    116      2       Sicily                   
PO    1191     6       Sicily                   
PS    833      6       Sicily                   
PO    1137     6       Sierra Leone             
PS    779      6       Sierra Leone             
CO    207      2       Solomon Is.---Bouga      
                       inville                  
PO    1345     3       Solomon Is.---Bouga      
                       inville                  
PS    987      3       Solomon Is.---Bouga      
                       inville                  
CO    209      2       Solomon Is.---Guadal     
                       canal                    
PO    1347     3       Solomon Is.---Guadal     
                       canal                    
PS    989      3       Solomon Is.---Guadal     
                       canal                    
CO    210      2       Solomon Is.---San        
                       Cristobal                
PO    1348     3       Solomon Is.---San        
                       Cristobal                
PS    990      3       Solomon Is.---San        
                       Cristobal                
PO    1241     2       Somalia                  
PS    883      2       Somalia                  
PO    1198     5       South Africa             
PS    840      5       South Africa             
US    334      2       South Carolina           
US    254      2       South Dakota             
CO    96       2       South Georgia Is.        
PO    1124     5       South Georgia Is.        
PS    766      5       South Georgia Is.        
PO    1317     4       South Korea              
PS    959      4       South Korea              
PO    1143     2       Spain                    
PS    785      2       Spain                    
CO    149      2       Sri Lanka (Ceylon)       
PO    1273     5       Sri Lanka (Ceylon)       
PS    915      5       Sri Lanka (Ceylon)       
US    406      3       Staten Is.               
PO    1208     3       Sudan                    
PS    850      3       Sudan                    
PO    1120     5       Surinam                  
PS    762      5       Surinam                  
CO    114      2       Svalbard                 
PO    1182     4       Svalbard                 
PS    824      4       Svalbard                 
PO    1226     6       Swaziland                
PS    868      6       Swaziland                
PO    1184     5       Sweden                   
PS    826      5       Sweden                   
PO    1165     5       Switzerland              
PS    807      5       Switzerland              
PO    1239     4       Syria                    
PS    881      4       Syria                    
CO    22       2       Tahiti                   
PO    1025     3       Tahiti                   
PS    461      3       Tahiti                   
CO    171      2       Taiwan                   
PO    1306     2       Taiwan                   
PS    948      2       Taiwan                   
PO    1223     3       Tanzania                 
PS    865      3       Tanzania                 
US    295      3       Tennessee                
US    252      2       Texas                    
US    258      2       Texas---island           
US    267      2       Texas---island           
US    259      2       Texas---Padre Is.        
PO    1282     5       Thailand                 
PS    924      5       Thailand                 
CO    74       2       Tierra del Fuego         
PO    1155     6       Togo                     
PS    797      6       Togo                     
CO    86       2       Trinidad and Tobago      
PO    1110     6       Trinidad and Tobago      
PS    752      6       Trinidad and Tobago      
PO    1168     5       Tunisia                  
PS    810      5       Tunisia                  
PO    1215     3       Turkey                   
PS    857      3       Turkey                   
CO    78       2       Turks and Caicos Is.     
PO    1096     4       Turks and Caicos Is.     
PS    708      4       Turks and Caicos Is.     
PO    1222     2       Uganda                   
PS    864      2       Uganda                   
PO    1251     2       United Arab Emirates     
PS    893      2       United Arab Emirates     
PO    1248     4       Unnamed neutral zone     
                       between Iraq and Saudi   
                       Arabia                   
PS    890      4       Unnamed neutral zone     
                       between Iraq and Saudi   
                       Arabia                   
PO    1151     2       Upper Volta              
PS    793      2       Upper Volta              
PO    1119     2       Uruguay                  
PS    761      2       Uruguay                  
PO    1031     3       US                       
PO    1006     6       USSR                     
PS    442      6       USSR                     
CO    143      1       USSR---Aral Sea          
PO    1262     1       USSR---Aral Sea          
PS    904      1       USSR---Aral Sea          
CO    130      1       USSR---Azov Sea          
PO    1234     1       USSR---Azov Sea          
PS    876      1       USSR---Azov Sea          
CO    133      2       USSR---Franz Josef       
                       Land                     
CO    137      2       USSR---Franz Josef       
                       Land                     
CO    139      2       USSR---Franz Josef       
                       Land                     
CO    141      2       USSR---Franz Josef       
                       Land                     
CO    144      2       USSR---Franz Josef       
                       Land                     
CO    145      2       USSR---Franz Josef       
                       Land                     
PO    1247     6       USSR---Franz Josef       
                       Land                     
PO    1255     6       USSR---Franz Josef       
                       Land                     
PO    1257     6       USSR---Franz Josef       
                       Land                     
PO    1259     6       USSR---Franz Josef       
                       Land                     
PO    1263     6       USSR---Franz Josef       
                       Land                     
PO    1266     6       USSR---Franz Josef       
                       Land                     
PS    889      6       USSR---Franz Josef       
                       Land                     
PS    897      6       USSR---Franz Josef       
                       Land                     
PS    899      6       USSR---Franz Josef       
                       Land                     
PS    901      6       USSR---Franz Josef       
                       Land                     
PS    905      6       USSR---Franz Josef       
                       Land                     
PS    908      6       USSR---Franz Josef       
                       Land                     
CO    155      1       USSR---Lake Baikal       
PO    1288     1       USSR---Lake Baikal       
PS    930      1       USSR---Lake Baikal       
CO    148      1       USSR---Lake              
                       Balkhash (east)          
PO    1271     1       USSR---Lake              
                       Balkhash (east)          
PS    913      1       USSR---Lake              
                       Balkhash (east)          
CO    147      1       USSR---Lake              
                       Balkhash (west)          
PO    1269     1       USSR---Lake              
                       Balkhash (west)          
PS    911      1       USSR---Lake              
                       Balkhash (west)          
CO    136      2       USSR---Novaya Zem        
                       lya                      
PO    1253     6       USSR---Novaya Zem        
                       lya                      
PS    895      6       USSR---Novaya Zem        
                       lya                      
CO    131      1       USSR---Onazhskoye        
                       Ozero                    
PO    1235     1       USSR---Onazhskoye        
                       Ozero                    
PS    877      1       USSR---Onazhskoye        
                       Ozero                    
CO    154      2       USSR---Ostrov Bol'       
                       shevik                   
PO    1284     6       USSR---Ostrov Bol'       
                       shevik                   
PS    926      6       USSR---Ostrov Bol'       
                       shevik                   
CO    161      2       USSR---Ostrov            
                       Bol'shoy Begichev        
PO    1295     6       USSR---Ostrov            
                       Bol'shoy Begichev        
PS    937      6       USSR---Ostrov            
                       Bol'shoy Begichev        
CO    198      2       USSR---Ostrov B          
                       ol'shoy Lyakhovskiy      
PO    1335     6       USSR---Ostrov            
                       Bol'shoy Lyakhovskiy     
PS    977      6       USSR---Ostrov            
                       Bol'shoy Lyakhovskiy     
CO    121      2       USSR---Ostrov Hiiu       
                       maa                      
PO    1210     6       USSR---Ostrov Hiiu       
                       maa                      
PS    852      6       USSR---Ostrov Hiiu       
                       maa                      
CO    202      2       USSR---Ostrov Iturup     
PO    1340     6       USSR---Ostrov Iturup     
PS    982      6       USSR---Ostrov Iturup     
CO    211      2       USSR---Ostrov Kara       
                       ginskiy                  
PO    1349     6       USSR---Ostrov Kara       
                       ginskiy                  
PS    991      6       USSR---Ostrov Kara       
                       ginskiy                  
CO    135      2       USSR---Ostrov            
                       Kolguyev                 
PO    1250     6       USSR---Ostrov            
                       Kolguyev                 
PS    892      6       USSR---Ostrov            
                       Kolguyev                 
CO    194      2       USSR---Ostrov Kotel'     
                       nyy and Ostrov Fad       
                       deyevskiy                
PO    1331     6       USSR---Ostrov Kotel'     
                       nyy and Ostrov Fad       
                       deyevskiy                
PS    973      6       USSR---Ostrov Kotel'     
                       nyy and Ostrov Fad       
                       deyevskiy                
CO    197      2       USSR---Ostrov Malyy      
                       Lyakhovskiy              
PO    1334     6       USSR---Ostrov Malyy      
                       Lyakhovskiy              
PS    976      6       USSR---Ostrov Malyy      
                       Lyakhovskiy              
CO    201      2       USSR---Ostrov            
                       Novaya Sibir'            
PO    1339     6       USSR---Ostrov            
                       Novaya Sibir'            
PS    981      6       USSR---Ostrov            
                       Novaya Sibir'            
CO    150      2       "USSR---Ostrov Okty      
                       abr'skoy Revolyutsii,    
                       Komsomolets, Pioner"     
PO    1278     6       "USSR---Ostrov Okty      
                       abr'skoy Revolyutsii,    
                       Komsomolets, Pioner"     
PS    920      6       "USSR---Ostrov Okty      
                       abr'skoy Revolyutsii,    
                       Komsomolets, Pioner"     
CO    208      2       USSR---Ostrov Para       
                       mushir                   
PO    1346     6       USSR---Ostrov Para       
                       mushir                   
PS    988      6       USSR---Ostrov Para       
                       mushir                   
CO    120      2       USSR---Ostrov Saare      
                       maa                      
PO    1207     6       USSR---Ostrov Saare      
                       maa                      
PS    849      6       USSR---Ostrov Saare      
                       maa                      
CO    199      2       USSR---Ostrov Sakha      
                       lin                      
PO    1337     6       USSR---Ostrov Sakha      
                       lin                      
PS    979      6       USSR---Ostrov Sakha      
                       lin                      
CO    204      2       USSR---Ostrov Urup       
PO    1342     6       USSR---Ostrov Urup       
PS    984      6       USSR---Ostrov Urup       
CO    126      1       USSR---Ozero             
                       Ladozhskoye (Lake        
                       Ladoga)                  
PO    1224     1       USSR---Ozero             
                       Ladozhskoye (Lake        
                       Ladoga)                  
PS    866      1       USSR---Ozero             
                       Ladozhskoye (Lake        
                       Ladoga)                  
CO    195      2       USSR---Shantarskiye      
                       Ostrova                  
PO    1332     6       USSR---Shantarskiye      
                       Ostrova                  
PS    974      6       USSR---Shantarskiye      
                       Ostrova                  
CO    4        2       USSR---Wrangel Is.       
PO    1007     6       USSR---Wrangel Is.       
PS    443      6       USSR---Wrangel Is.       
PS    585      5       US---Alabama             
PS    495      2       US---Arizona             
PS    538      5       US---Arkansas            
PS    649      4       US---Bahamas---          
                       Andros                   
PS    652      4       US---Bahamas---          
                       Andros                   
PS    653      4       US---Bahamas---          
                       Andros                   
PS    655      4       US---Bahamas---          
                       Andros                   
PS    658      4       US---Bahamas---          
                       Andros                   
PS    687      4       US---Bahamas---Cat       
                       Is.                      
PS    663      4       US---Bahamas---          
                       Eleuthera Is.            
PS    664      4       US---Bahamas---          
                       Eleuthera Is.            
PS    665      4       US---Bahamas---          
                       Eleuthera Is.            
PS    648      4       US---Bahamas---          
                       Grand Bahama             
PS    656      4       US---Bahamas---          
                       Grand Bahama             
PS    657      4       US---Bahamas---          
                       Grand Bahama             
PS    654      4       US---Bahamas---          
                       Great Abaco and Little   
                       Abaco                    
PS    659      4       US---Bahamas---          
                       Mores Is.                
PS    660      4       US---Bahamas---New       
                       Providence Is.           
PS    469      4       US---California          
PS    486      4       US---California---San    
                       Clemente Is.             
PS    478      4       US---California---San    
                       Miguel Is.               
PS    483      4       US---California---San    
                       Nicholas Is.             
PS    487      4       US---California---       
                       Santa Catalina Is.       
PS    482      4       US---California---       
                       Santa Cruz Is.           
PS    479      4       US---California---       
                       Santa Rosa Is.           
PS    621      1       US---Clark Hill Reser    
                       voir                     
PS    505      6       US---Colorado            
PS    707      5       US---Connecticut         
PS    686      5       US---Delaware            
PS    696      1       US---Delaware---bay      
PS    589      4       US---Florida             
PS    600      4       US---Florida---island    
PS    633      4       US---Florida---island    
PS    635      4       US---Florida---island    
PS    636      4       US---Florida---island    
PS    637      4       US---Florida---island    
PS    639      4       US---Florida---island    
PS    626      4       US---Florida---Keys      
PS    627      4       US---Florida---Keys      
PS    628      4       US---Florida---Keys      
PS    629      4       US---Florida---Keys      
PS    597      1       US---Florida---lake      
PS    631      1       US---Florida---Lake      
                       Okeechobee               
PS    623      4       US---Florida---Pine Is.  
PS    622      4       US---Florida---Sani      
                       bel Is.                  
PS    598      6       US---Georgia             
PS    500      1       US---Great Salt Lake     
PS    489      6       US---Idaho               
PS    554      4       US---Illinois            
PS    586      5       US---Indiana             
PS    527      6       US---Iowa                
PS    517      4       US---Kansas              
PS    573      6       US---Kentucky            
PS    711      1       US---Lake Champlain      
PS    714      2       US---Lake Cham           
                       plain---Grand Isle       
PS    613      1       US---Lake Erie           
PS    640      2       US---Lake Erie---        
                       Long Point (land)        
PS    608      1       US---Lake George         
PS    619      2       US---Lake Huron---       
                       Barrie Is.               
PS    604      2       US---Lake Huron---       
                       Bois Blanc Is.           
PS    641      2       US---Lake Huron---       
                       Christian Is.            
PS    612      2       US---Lake Huron---       
                       Cockburn Is.             
PS    609      2       US---Lake Huron---       
                       Drummond Is.             
PS    625      2       US---Lake Huron---       
                       Fitzwilliam Is.          
PS    615      2       US---Lake Huron---       
                       Manitoulin Is.           
PS    496      1       US---Lake Mead (east)    
PS    494      1       US---Lake Mead           
                       (west)                   
PS    599      2       US---Lake Michigan---    
                       Beaver Is.               
PS    594      2       US---Lake Michigan---    
                       Manitou Is.              
PS    591      2       US---Lake Michigan---    
                       Washington Is.           
PS    645      1       US---Lake Ontario        
PS    662      2       US---Lake Ontario---     
                       island                   
PS    667      2       US---Lake Ontario---     
                       island                   
PS    670      2       US---Lake Ontario---     
                       island                   
PS    601      1       US---Lake Seminole       
PS    618      1       US---Lake St. Clair      
PS    550      1       US---Lake Superior       
PS    593      2       US---Lake Superior---    
                       Grand Is.                
PS    605      2       US---Lake Superior---    
                       island                   
PS    581      2       US---Lake Superior---    
                       Isle Royale              
PS    556      2       US---Lake Superior---    
                       Madeline Is.             
PS    595      2       US---Lake Superior---    
                       Michipicoten Is.         
PS    558      2       US---Lake Superior---    
                       Oak Is.                  
PS    563      2       US---Lake Superior---    
                       Outer Is.                
PS    583      2       US---Lake Superior---    
                       Pie Is.                  
PS    559      2       US---Lake Superior---    
                       Stockton Is.             
PS    480      1       US---Lake Tahoe          
PS    526      1       US---Lake Texoma         
PS    587      1       US---Lakes Michigan      
                       and Huron                
PS    719      1       US---Long Is.---Great    
                       South Bay                
PS    540      4       US---Louisiana           
PS    543      1       US---Louisiana---Cal     
                       casieu Lake              
PS    584      4       US---Louisiana---Cat     
                       Is.                      
PS    546      1       US---Louisiana---        
                       Grand Lake               
PS    555      4       US---Louisiana---        
                       island                   
PS    557      4       US---Louisiana---        
                       island                   
PS    569      4       US---Louisiana---        
                       island                   
PS    570      4       US---Louisiana---        
                       island                   
PS    571      4       US---Louisiana---        
                       island                   
PS    574      4       US---Louisiana---        
                       island                   
PS    575      4       US---Louisiana---        
                       island                   
PS    576      4       US---Louisiana---        
                       island                   
PS    577      4       US---Louisiana---        
                       island                   
PS    578      4       US---Louisiana---        
                       island                   
PS    579      4       US---Louisiana---        
                       island                   
PS    580      4       US---Louisiana---        
                       island                   
PS    560      1       US---Louisiana---        
                       Lake Maurepas            
PS    565      1       US---Louisiana---        
                       Lake Pontchartrain       
PS    551      4       US---Louisiana---        
                       Marsh Is.                
PS    541      1       US---Louisiana---Sab     
                       ine Lake                 
PS    561      4       US---Louisiana---Tim     
                       balier Is.               
PS    548      1       US---Louisiana---        
                       White Lake               
PS    730      5       US---Maine               
PS    736      5       US---Maine---island      
PS    737      5       US---Maine---island      
PS    738      5       US---Maine---island      
PS    740      5       US---Maine---island      
PS    741      5       US---Maine---island      
PS    742      5       US---Maine---island      
PS    743      5       US---Maine---island      
PS    744      5       US---Maine---island      
PS    745      5       US---Maine---island      
PS    646      4       US---Maryland            
PS    697      4       US---Maryland            
PS    698      4       US---Maryland            
PS    679      1       US---Maryland---inlet    
PS    668      4       US---Maryland---         
                       island                   
PS    671      4       US---Maryland---         
                       island                   
PS    673      4       US---Maryland---         
                       island                   
PS    674      4       US---Maryland---         
                       island                   
PS    709      4       US---Massachusetts       
PS    729      1       US---Massachusetts---    
                       bay                      
PS    733      1       US---Massachusetts---    
                       inlet                    
PS    731      4       US---Massachusetts---    
                       Marthas Vineyard         
PS    732      4       US---Massachusetts---    
                       Nantucket Is.            
PS    592      2       US---Michigan (lower)    
PS    564      2       US---Michigan (upper)    
PS    524      4       US---Minnesota           
PS    531      1       US---Minnesota---        
                       Lake of the Woods        
PS    536      4       US---Minnesota---        
                       Lake of the Woods---     
                       island                   
PS    537      4       US---Minnesota---        
                       Lake of the Woods---     
                       island                   
PS    539      4       US---Minnesota---        
                       Lake of the Woods---     
                       island                   
PS    533      4       US---Minnesota---        
                       Lake of the Woods---     
                       land west of lake        
PS    547      4       US---Minnesota---lit     
                       tle piece                
PS    544      1       US---Minnesota---        
                       Namakan Lake             
PS    542      1       US---Minnesota---        
                       Rainy Lake               
PS    532      1       US---Minnesota---        
                       Shoal Lake               
PS    552      2       US---Mississippi         
PS    530      2       US---Missouri            
PS    492      5       US---Montana             
PS    511      5       US---Nebraska            
PS    481      5       US---Nevada              
PS    720      3       US---New Hampshire       
PS    715      1       US---New Hamp            
                       shire---lake             
PS    717      1       US---New Hamp            
                       shire---lake             
PS    694      2       US---New Jersey          
PS    701      2       US---New Jersey---       
                       island                   
PS    704      1       US---New Jersey---       
                       Newark Bay               
PS    504      5       US---New Mexico          
PS    644      3       US---New York            
PS    722      3       US---New York---         
                       Fishers Is.              
PS    706      3       US---New York---         
                       Long Is.                 
PS    721      3       US---New York---         
                       Shelter Is.              
PS    607      4       US---North Carolina      
PS    651      4       US---North Carolina---   
                       Cape Fear                
PS    676      4       US---North Carolina---   
                       island                   
PS    677      4       US---North Carolina---   
                       island                   
PS    681      4       US---North Carolina---   
                       island                   
PS    684      4       US---North Carolina---   
                       island                   
PS    685      4       US---North Carolina---   
                       island                   
PS    688      4       US---North Carolina---   
                       island                   
PS    689      4       US---North Carolina---   
                       island                   
PS    690      4       US---North Carolina---   
                       island                   
PS    691      4       US---North Carolina---   
                       island                   
PS    692      4       US---North Carolina---   
                       island                   
PS    513      3       US---North Dakota        
PS    603      4       US---Ohio                
PS    515      3       US---Oklahoma            
PS    468      3       US---Oregon              
PS    638      6       US---Pennsylvania        
PS    723      6       US---Rhode Is.           
PS    725      6       US---Rhode Is.---        
                       Block Is.                
PS    726      6       US---Rhode Is.---        
                       island                   
PS    727      6       US---Rhode Is.---        
                       island                   
PS    728      6       US---Rhode Is.---        
                       island                   
PS    606      1       US---Sault Ste. Marie    
PS    614      2       US---South Carolina      
PS    512      2       US---South Dakota        
PS    703      3       US---Staten Is.          
PS    566      3       US---Tennessee           
PS    506      2       US---Texas               
PS    522      2       US---Texas---island      
PS    534      2       US---Texas---island      
PS    523      2       US---Texas---Padre Is.   
PS    497      3       US---Utah                
PS    712      2       US---Vermont             
PS    611      2       US---Virginia            
PS    675      2       US---Virginia            
PS    682      2       US---Virginia            
PS    683      2       US---Virginia            
PS    672      2       US---Virginia---island   
PS    678      2       US---Virginia---island   
PS    680      2       US---Virginia---island   
PS    695      2       US---Virginia---island   
PS    467      2       US---Washington          
PS    471      2       US---Washington---       
                       island                   
PS    472      2       US---Washington---       
                       island                   
PS    473      2       US---Washington---       
                       island                   
PS    474      2       US---Washington---       
                       island                   
PS    475      2       US---Washington---       
                       island                   
PS    476      2       US---Washington---       
                       island                   
PS    477      2       US---Washington---       
                       island                   
PS    620      3       US---West Virginia       
PS    545      3       US---Wisconsin           
PS    502      4       US---Wyoming             
US    247      3       Utah                     
PO    1097     3       Venezuela                
PS    710      3       Venezuela                
US    412      2       Vermont                  
PO    1287     4       Vietnam                  
PS    929      4       Vietnam                  
US    331      2       Virginia                 
US    382      2       Virginia                 
US    389      2       Virginia                 
US    390      2       Virginia                 
US    379      2       Virginia---island        
US    385      2       Virginia---island        
US    387      2       Virginia---island        
US    401      2       Virginia---island        
PO    1152     3       Wales                    
PS    794      3       Wales                    
US    224      2       Washington               
US    227      2       Washington---island      
US    228      2       Washington---island      
US    229      2       Washington---island      
US    230      2       Washington---island      
US    231      2       Washington---island      
US    232      2       Washington---island      
US    233      2       Washington---island      
PO    1166     4       West Germany             
PS    808      4       West Germany             
US    338      3       West Virginia            
PO    1128     6       Western Sahara           
PS    770      6       Western Sahara           
US    277      3       Wisconsin                
US    249      4       Wyoming                  
PO    1245     6       Yemen (Aden)             
PS    887      6       Yemen (Aden)             
CO    138      2       Yemen (Aden)---          
                       Socotra (island)         
PO    1256     6       Yemen (Aden)---          
                       Socotra (island)         
PS    898      6       Yemen (Aden)---          
                       Socotra (island)         
PO    1243     5       Yemen (Sana)             
PS    885      5       Yemen (Sana)             
PO    1193     4       Yugoslavia               
PS    835      4       Yugoslavia               
PO    1190     6       Zaire                    
PS    832      6       Zaire                    
PO    1209     5       Zambia                   
PS    851      5       Zambia                   
PO    1214     3       Zimbabwe                 
PS    856      3       Zimbabwe                 
----------------------------------------------

Mp 7. Ezmap parameter descriptions

Ezmap uses the following parameters; they are listed in alphabetical order.

AR
Character---ARea. For retrieval only. The value of the map limits specifier JLTS from the last call to MAPSET.
Default: MA
C1
Integer---Color index 1 (for map perimeter).
>=0 Specifies the color index of the map's perimeter. The user must do the calls to GKS routines to define the color indices.
<0 No change in color index from one part of the map to another.
Default: -1
C2
Integer---Color index 2 (for map grid).
>=0 Specifies the color index of the map's grid lines. The user must do the calls to GKS routines to define the color indices.
<0 No change in color index from one part of the map to another.
Default: -1
C3
Integer---Color index 3 (for map labels).
>=0 Specifies the color index of the map's labels. The user must do the calls to GKS routines to define the color indices.
<0 No change in color index from one part of the map to another.
Default: -1
C4
Integer---Color index 4 (for map limb line).
>=0 Specifies the color index of the map's limb line. The user must do the calls to GKS routines to define the color indices.
<0 No change in color index from one part of the map to another.
Default: -1
C5
Integer---Color index 5 (for continental outlines).
>=0 Specifies the color index of continental outlines on the map. The user must do the calls to GKS routines to define the color indices.
<0 No change in color index from one part of the map to another.
Default: -1
C6
Integer---Color index 6 (for US state outlines).
>=0 Specifies the color index of US state outlines on the map. The user must do the calls to GKS routines to define the color indices.
<0 No change in color index from one part of the map to another.
Default: -1
C7
Integer---Color index 7 (for countries).
>=0 Specifies the color index of country outlines (political boundaries) on the map. The user must do the calls to GKS routines to define the color indices.
<0 No change in color index from one part of the map to another.
Default: -1
DA
Integer---Grid DAshline pattern. A 16-bit quantity that defines a dashed-line pattern. The value of DA is converted to a 16-bit binary number where 0 represents a blank and 1 represents a dot or dash.
Default: 21845 (binary 0101010101010101)
DD
Real---Distance between Dots. The distance between dots along a dotted line drawn by MAPIT.
Default: 12. (out of 4096. See the description for the RE parameter.)
DL
Integer---Dotted Line flag.
<>0 User calls to MAPIT draw dotted lines.
0 Lines drawn by MAPIT are solid or dashed, depending on the current state of the Dashline package.
Default: 0
DL may be reset by a user version of MAPUSR to change the way in which the perimeter, the grid, the limb lines, and the outlines are drawn.
DO
Integer---Dotted Outline flag.
<>0 Outlines are dotted.
0 Outlines are solid.
Default: 0
EL
Integer---ELliptical perimeter flag.
<>0 Only that part of the map which falls inside an ellipse inscribed within the normal rectangular perimeter is drawn. This is particularly appropriate for use with azimuthal projections and angular limits specifying a square (in which case the ellipse becomes a circle), but it will work for any map.
0 That part of the map that falls within the rectangular perimeter is drawn.
Default: 0
ER
Integer---ERror. The current value of the error flag. For retrieval only.
Default: 0 (no error)
G1
Integer---Group 1 (group identifier for geographic entities and perimeter). The group identifier to be used by MAPBLA when putting into the area map the group of edges that define the division of the plotter frame into the projected images of geographic entities.
Default: 1
G2
Integer---Group 2 (group identifier for vertical strips). The group identifier to be used by MAPBLA when putting into the area map the group of edges that define the division of the plotter frame into vertical strips.
Default: 2
GD
Real---Grid Drawing resolution. The distance between points used to draw the grid, in degrees. User values must fall between .001 and 10.
Default: 1.
GR
Real---GRid spacing. The desired grid spacing, in degrees.
0 Grid drawing is suppressed.
Default: 10.
IN
Integer---INitialization flag. For retrieval only.
<>0 Ezmap needs to be initialized (by a CALL MAPINT).
0 Ezmap does not need to be initialized.
Default: 0
LA
Integer---meridian/pole LAbel flag.
<>0 Label the meridians and the poles.
0 Do not label the meridians and poles.
Default: 1
LS
Integer---Label Size. Controls label size by specifying a character width, to be used in a call to PWRIT.
Default: 1 (gives a character width of 12 plotter units)
MV
Real---Minimum Vector length. To be used by MAPIT. Any point closer to the previous point than this is omitted.
Default: 4. (out of 4096; see the description for RE)
OU
Character---OUtline data flag. Says which set of outline data to use:
NO No outlines.
CO Continental outlines.
PO Continental outlines plus international
political outlines.
US US state outlines.
PS Continental outlines plus international
political outlines plus U.S. state outlines.
Default: CO
PE
Integer---PErimeter flag. Draws the perimeter around the map.
<>0 Draw the perimeter.
0 No perimeter is drawn.
Default: 1
PN
Real---PLON value. The value of PLON from the last call to MAPROJ. For retrieval only.
Default: 0.
PR
Character---PRojection specifier value. The value of the projection specifier JPRJ from the last call to MAPROJ. For retrieval only.
Default: CE
PT
Real---PLAT value. The value of PLAT from the last call to MAPROJ. For retrieval only.
Default: 0.
P1
Real---PLM1(1) value. Retrieves the PLM1(1) value from the call to MAPSET. For retrieval only.
Default: 0.
P2
Real---PLM2(1) value. Retrieves the PLM2(1) value from the call to MAPSET. For retrieval only.
Default: 0.
P3
Real---PLM3(1) value. Retrieves the PLM3(1) value from the call to MAPSET. For retrieval only.
Default: 0.
P4
Real---PLM4(1) value. Retrieves the PLM4(1) value from the call to MAPSET. For retrieval only.
Default: 0.
P5
Real---PLM1(2) value. Retrieves the PLM1(2) value from the call to MAPSET. For retrieval only.
Default: 0.
P6
Real---PLM2(2) value. Retrieves the PLM2(2) value from the call to MAPSET. For retrieval only.
Default: 0.
P7
Real---PLM3(2) value. Retrieves the PLM3(2) value from the call to MAPSET. For retrieval only.
Default: 0.
P8
Real---PLM4(2) value. Retrieves the PLM4(2) value from the call to MAPSET. For retrieval only.
Default: 0.
RE
Integer---REsolution. The width of the target plotter, in plotter units.
Default: 4096
RO
Integer---ROtation. The value of ROTA from the last call to MAPROJ. For retrieval only.
Default: 0
SA
Real---SAtellite view distance. The value is the distance of the satellite from the center of the earth, in multiples of the earth's radius. See also S1 and S2.
>1. A satellite-view projection replaces the orthographic projection.
0. The orthographic projection is used.
Default: 0.
S1
Real---Satellite angle 1. Measures the angle, in degrees, between the line from the satellite to the center of the earth and the line of sight of the satellite. Used only when SA>1.
Default: 0.
S2
Real---Satellite angle 2. Used only when SA>1.
Let the case where S1=S2=0 be called the basic satellite view. If S1<>0.0, then S2 specifies the angle, in degrees, from the positive u axis of the basic satellite view counterclockwise to the line OP, where O is the origin of the basic view, and P is the projection on the basic view, of the desired line of sight from the satellite. When S1 and S2 are not equal to zero, the portion of the earth projected remains the same, but the edge of the part of the u/v plane covered by the projection is an ellipse, a parabola, or a hyperbola with an axis at an angle S2 to the u axis.
Default: 0.
SR
Real---Latitude/longitude Search Radius. A search radius, in degrees, used by MAPINT in finding the latitude/longitude range of a map. User values must be between .001 and 10. This value should only be changed on the advice of an NCAR consultant.
Default: 1.
VS
Integer---Vertical-Stripping parameter. Determines whether MAPBLA puts edge group G2 into the area map to define a set of more than one vertical strip.
<=0 MAPBLA is prevented from putting edge group G2 into the area map.
>0 Requests that MAPBLA put edge group G2 into the area map and specifies the number of vertical strips.
Default: 1 (A single vertical strip is defined to encompass the entire plot.)
XL
Real---XLOW value. The value of XLOW from the last call to MAPPOS. For retrieval only.
Default: 0.05
XR
Real---XROW value. The value of XROW from the last call to MAPPOS. For retrieval only.
Default: 0.95
YB
Real---YBOW value. The value of YBOW from the last call to MAPPOS. For retrieval only.
Default: 0.05
YT
Real---YTOW value. The value of YTOW from the last call to MAPPOS. For retrieval only.
Default: 0.95
Previous Chapter          Tutorial Home          Next Chapter