Map Projection in R
Map Projection in R
Map Projection in R
GEOLOGICAL SURVEY
by
Gerald I. Evenden1
This report is preliminary and has not been reviewed for conformity with U.S.
Geological Survey editorial standards. Use of tradenames is for purposes of identi-
fication only and does not constitute endorsement by the U.S. Geological Survey.
Basic Usage 2
Inputing Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Form of Input Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Data Output 5
Output of error data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Binary Input–Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Cartesian Scaling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Cartographic Parameters 7
Selection of Projection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Specifying the Earth’s Figure . . . . . . . . . . . . . . . . . . . . . . . . . 9
Common Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Projection descriptions 10
Cylindrical Projections 11
Pseudocylindrical Projections 21
Conic Projections 33
Azimuthal Projections 39
Miscellaneous Projections 49
References 61
iii
iv
Cartographic Projection Procedures for the UNIX
Environment—A User’s Manual
Gerald I. Evenden
1st January 2003
Abstract
A tutorial description of the general usage of the cartographic projection program proj
(release 3) along with specific cartographic parameters and illustrations of the ap-
proximately 70 cartographic projections supported by the program is presented. The
program is designed as a standard Unix filter utility to be employed with other pro-
grams in the generation of maps and charts and, in many cases, used in map digitizing
applications. Tables and shell scripts are also provided for conversion of State Plane
Coordinate Systems to and from geographic coordinates.
Introduction
Program proj (release 3) is a standard Unix filter function which converts ge-
ographic longitude and latitude coordinates into cartesian coordinates, (λ, φ) →
(x, y), by means of a wide variety of cartographic projection functions. For many
of the projection functions the inverse conversion, (x, y) → (λ, φ), can also be per-
formed. The principle purpose of this user’s manual is to provide complete details
of the technical usage and execution of program proj, supplemented with exam-
ples and some practical applications. However, cartographic characteristics of the
projections are given minimal coverage in this manual and the reader should refer
to Map Projections—A Working Manual (Snyder, 1987) and An Album of Map
Projections (Snyder and Voxland, 1989) for more complete discussions. Program
proj supplements these publications in terms of computational applications in the
Unix environment.
This manual is divided into three main sections:
• command line parameters controlling proj operation related to input-output
format and file control,
• specification and usage of general cartographic parameters, and
• description of specific projections and control parameter usage.
The style of the first two sections is tutorial and contains many examples of usage.
The first section is also summarized in the Unix man(1) style document available
on the host system or in system documentation. The reader is expected to have
basic familiarity with at least one of the Unix shell programs such as Bourne
(sh(1)), C (csh(1)) or Korn (ksh(1)).
History
The original proj was developed in the early 1980’s as a ratfor (a fortran pre-
processor) program (Evenden, 1983) with much of the code derived from the Geo-
logical Survey’s General Cartographic Transformation Package (gctp) (superceded
1
2 BASIC USAGE
by a more portable Version II by Elassal, 1987). Program proj was recoded in the
C language when the mapgen package (Evenden and Botbol, 1985), of which proj
is an integral part, was transfered to the Unix operating system. Based upon the
formularies in the aforementioned publications many new projections have been
added to the program. Source code for program proj is written in the Kernighan
and Ritchie (k&r) (1978) style and is available from the author.
Typological Conventions
As with mathematics texts, descriptions of computer software execution can use
typology to emphasize or augment the text with various fonts for clarification.
Examples of this usage have already been introduced with the slant font being
employed for program names. In addition to the slant font, references to standard
Unix utility programs will be suffixed with a number in parenthesis refering to the
chapter in standard Unix manuals. File names mentioned in the text will also be
in slant font.
For command line arguments, scripts or file contents a typewriter style font
will be employed (i.e. +proj=poly). The typewriter font is always used for literal
usage and explanations, but if part of the descriptive text is refering to an abstract
value to be completed later, then italics are used. For example, +proj=name is
used when discussing the argument name in the abstract sense and +proj=poly is
used for an exact definition of usage.
To ensure the recognition of the importance of a blank character in text descrip-
tions, the cup character, , is used. For example, the cup character in -f ’%.6f’
emphasizes that there is a blank after the -f and not a spacing operation of the
typesetter.
Basic Usage
In this section the basic execution of proj will be described with empasis on com-
mand line control and the nature of the input and output of the program. Since
previous releases of proj may be installed on the user’s host machine the user
must check and verify that he is using the proper release. This is readily done by
executing:
$ proj
which should result in the following message displayed on the user’s terminal:
usage(3.0): proj [ -bcefiormstwW [args] ] [ +opts[=arg] ] [ files ]
(note: $ is the shell prompt for interactive examples). The critical element of
the response is that 3.x appears. If the release 3 message does not appear or the
message
proj: not found
appears (indicating the program is not in the user’s search path) and consultation
with the host system manager is required.
The .x in the release number represents versions within the release that will
either contain corrections to the previous versions or new features that are compat-
ible with previous versions of the same release. Some of the hyphened command
line parameters of the previous release of proj (implicitly release 2, but never docu-
mented as such) are not compatible with the current version. However, for mapgen
users the current release is fully compatible.
Before the input and output data format and the hyphen-control arguments can
be discussed, a detail from the cartographic parameter section must be mentioned.
Inputing Data 3
Except for the above execution, proj requires the selection of a cartographic projec-
tion which is performed by the +proj=name option where name is the abbreviated
name of one of the supported projections. If a projection is not named, then the
following message will appear:
<proj>: projection not selected
program abnormally terminated
For the following examples +proj=poly (p. 36) will be used.
Inputing Data
There are two ways data are input to program proj: through stdin or files named
on the command line. The usage of stdin means that data can either be piped
from the stdout of a previous process on the runline by means of the | shell control
character, redirected from a file by <filename, or entered directly from the user’s
terminal if nothing is specified. For example:
cat file1 file2 | proj +proj=poly
proj +proj=poly file1 file2
will produce identical results where the files file1 and file2 are read and processed
in left to right order. The difference is that cat(1) is employed to put the data in
a stdout stream to be read by proj’s stdin. Sometimes it is convenient to execute
proj interactively:
$ proj +proj=poly
10 45
786491.58 5033320.60
-4 30
-385874.54 3326668.76
^D
$ ...
where ^D is the control D character for indicating the end of terminal input. The
large numbers are proj’s cartesian results (in meters) to the input values of longi-
tude and latitude values in degrees.
When file names are specified on a proj command line the data are only input
from these files and stdin is never read. Conversely, if there are no files specified
then input is assumed to be only from stdin. It is occasionally useful to process
data from both specified files and stdin. This can be achieved by using a - placed
in the command line where stdin is to be read by proj. For example:
cat file1 file2 | proj +proj=poly fileA - fileB
is equivalent to:
proj +proj=poly fileA file1 file2 fileB
obvious material at the end of the value may be dropped; viz., the positive sign
associated with N and the seconds symbol. If the latitude value is in the southern
hemisphere then either -45d25’15.22 or 45d25’15.22S is acceptable. Either a
prefix sign (+ or -) or suffix letter (upper or lower case N, S, E, W) may be used
and western longitude and southern latitude are always considered negative values.
If the geographic data are in degrees and fractional minutes then typical dms
values might be 33d22.5s and -120d45.666. Note that in this case the apostrophe
or minute mark can be dropped. Similarly, fractional degrees are simply expressed
by 77.5N or -33.33. The d and ’ are only required when respective minute and
second subfields are employed and act as subfield delimiters or when a preceeding
subfield is missing (i.e. 15’33.5 could be used when degrees are zero).
One important element to note is that although the use of suffix letter might
lead to the conclusion that proj would recognize the values as being longitude or
latitude, it does not. The values for forward projection are always in longitude
and latitude order on the record unless the -r command line option is used. For
example, if the input data are in latitude-longitude order then the earlier example
would be:
$ proj +proj=poly -r
45 10
786491.58 5033320.60
30 -4
-385874.54 3326668.76
^D
$ ...
To perform an inverse projection, either execute program invproj (which is just
an alternate name for proj) or use the command line parameter +inv. Conse-
quently,
invproj +proj=poly
proj +proj=poly +inv
are equivalent. Input data are now cartesian data in (x, y) order or, if the -r
command line switch is used, in (y, x) order. Typically, the form of the cartesian
data is in fixed format as shown in the output of the previous example, thus:
$ invproj +proj=poly
786491.58 5033320.60
10dE 45dN
-385874.54 3326668.76
4dW 30dN
^D
$ ...
An important feature of proj is its ability to pass through non-cartographic
information in the data file. If an input record contains a # as the first character
on the line it is simply copied to the output. Also, any information after the data
fields is copied to the output after the converted data. For example, a data file
cities contains:
# coordinates for a few cities
45d15n 71d07w Boston, United States
40d40n 73d58w New York, United States
48d51n 2d20e Paris, France
51d30n 7’w London, England
When proj processes this file the results are:
5
Data Output
The previous sections have already demonstrated default forms of the data output
of proj: fixed format with two decimal digits of precision for forward projected
cartesian output and dms output of inverse projected geographic data. In the
latter case there is an implied default precision of ±0.000500 but trailing zeros and
zero subfields are not output. That is, if the seconds field is zero, it is dropped and
if both the seconds and minutes field are zero, both are dropped.
The output precision of the cartesian data can be controlled by the -f command
line option which provides use of a C language printf (3) floating point format
specification. But a change may be made without C software experience by simply
changing the number 2 in the default format control -f ’%.2f’ to the new, desired
precision. If four digits of precision are desired, then the command line would
appear as:
6 DATA OUTPUT
Binary Input–Output
In many cases, the conversion of input and output ascii data to internal proj binary
values may require up to 50 percent of the process execution time when using
less computationally intensive cartographic projections. Binary data also require
other cooperating programs capable of treating such input-output. In general, the
average user is not going to be involved in using this feature of proj, but should
be aware of it. Respective binary input and output is selected by the -i and -o
command line switches, or the -b switch when both input and output are binary.
One interesting binary operation, left to the user to try, is:
Ancillary data are not passed through in binary operations, and data ordering and
format switches related to binary input or output are ignored.
Cartesian Scaling
The units of cartesian data are determined by the units used to define the Earth’s
radius or ellipsoidal axes which are typically in meters. Thus, previous examples
of cartesian data exhibit large values because of the default Earth parameters
employed by proj. In some applications, especially map making, it may be more
convenient to see the cartesian values in a more comprehendible range. This can
be performed by the command line option -m scale where the value the output
and input cartesian coordinates are respectively multiplied and divided by scale.
In addition, if the first two characters of scale are 1/ or 1: the reciprocal value
of the remaining number is employed as the scaling factor. This is a convenient
feature because most map scales are represented in this manner.
0
For example, the approximate size of a 7 12 quadrangle at a scale of 1:25,000 at
a latitude of 35◦ can be obtain by:
A latitude origin of 35◦ was introduced with +lat_0 to give clearer results. The
results show the map to be about 45 by 56 cm.
Cartographic Parameters
In this section the + prefixed command line parameters employed for controlling the
purely cartographic aspects of proj execution will be discussed. As has been shown
in previous examples they are in the general form of +param=value for specifying
a value to a projection parameter or +param when setting a switch or flag. Value
may be a geographic or angular coordinate in general dms format, a real number,
an integer number or an ascii string. In addition, value will be used in context
with the formularies in the Snyder references.
Two additional aspects of the +params should be noted: a mispelled parameter
name will be completely ignored and if a parameter is entered twice, only the
first occurence will be employed by proj. The former condition usually leads to
8 CARTOGRAPHIC PARAMETERS
erroneous results and the user should always double check the control data. The
second feature is often quite useful: mapgen’s mapdef(1l) program determines the
map’s central meridian automatically and appends a +lon_0 entry to the user’s
proj parameter list so that, if the user specifies +lon_0, it preceeds and is used in
lieu of mapdef ’s value.
The one remaining hyphen command line option, -c confile, permits entry of
all the + parameters in an an ascii file, confile, rather than on the command line.
When cartographic parameters are both on the command line and in a confile, the
contents of confile are processed after the command line arguments. For example,
a file proj.params may contain:
+proj=tmerc +ellps=GRS80
+x_0=500000 +y_0=-4000000
+lon_0=90w
Alternately,
where the +ellps option on the command line preceeds the option in the file
proj.params. The + before the parameters is not required in the confile, but is
recommended to avoid confusion.
Selection of Projection
As noted before, the selection of the cartographic projection by means of the
+proj=name parameter is required by proj. But because projections are con-
tinually being added and capablities of existing projections expanded (i.e. adding
the inverse operation) it is difficult to keep documentation up to date or properly
distributed to all users of a particular version of the program. Conversely, the
user may have documentation of a version not yet installed on a particular host
machine.
To solve partially the problem of current projection availability and status, the
user can get a list of projections from the available version of proj by executing:
An extract of the list that will appear on the user’s terminal is:
list of projections:
The last one to three uppercase characters indicate F for forward (always available),
I for inverse, and E for elliptical projection capability. This also provides a quick
remedy for a memory lapse regarding the name of a particular projection.
Specifying the Earth’s Figure 9
Common Parameters
Three parameters are common to all projections: the central meridian +lon_0=λ0 ,
and the cartesian offsets for the respective x and y axes, +x_0=x0 , +y_0=y0 (of-
ten refered to as false easting and northing). The central meridian is a simple
translation of the longitude axis which is normaly used to center a projection at
a particular longitude. Unless noted, the projection’s x axis origin is at λ0 . The
cartesian offsets are usually used in plane coordinate systems so that cartesian
coordinates will be positive:
x = x0 + x0
y = y 0 + y0
where (x0 , y 0 ) are the internal projection cartesian coordinates and (x, y) are carte-
sian input–output of proj. A fourth parameter, lat_0=φ0 , is used to designate a
central parallel and associated y axis origin for several projections. Unless the user
specifies a value for these parameters, they all assume a zero value.
There has been recent need to employ geocentric latitude, φg , rather than
geographic (or geodetic) latitude where the two latitudes are related by:
tan φg = (1 − e2 ) tan φ
Usage of the switch +geoc will cause proj to treat input or output latitude as geo-
centric. This parameter only applies to ellipsoidal projection usage and is ignored
for spherical usage (e2 = 0).
The normal geographic range for longitude is from 180◦ W to 180◦ E and sim-
ilarly proj reduces, both in forward and inverse mode, the internal value of ∆λ
to this range. Use of the option +over suppresses this range reduction but care
should be taken in applications. Generally, this option is employed in the construc-
tion of world maps.
Projection descriptions
The following description sections of proj’s projection functions are divided into
the catagories of cylindrical, pseudocylindrical, conic, azimuthal and miscellaneous.
Each projection is described as to its classification and subclassification, aliases,
available computational forms (i.e. elliptical, spherical, forward and/or inverse)
and summary of usage options. Most projections will also have an example plot of
the projection with parenthetical entries in the captions specifying options used to
generate the graphic.
In some cases the aliases apply to names given special forms of the projection.
For example, the Werner projection which is a special case of the Bonne projection
is listed as an alias of the Bonne projection. The usage description does not list
the options common to all projections discussed earlier such as the Earth’s figure
parameters and cartesian offsets.
11
Cylindrical Projections
Cylindrical projections are based upon the various methods of projecting the Earth
upon a cylinder that is either tangent to the equator (normal or equatorial form),
a meridian (transverse) or obliquely aligned. Any of these classes are available in
both conformal and equal area form. These projections are best used in mapping
applications involving a zone near the line of tangency.
Mercator Projection
Figure 1: Mercator projection, with shorelines and 30◦ graticule. Central meridian
90◦ W (+proj=merc +lon 0=90w).
The utm projection is a special ellipsoidal form of the general Transverse Mercator
projection where λ − λ0 ≤ ±4◦ and 84◦ S ≤ φ ≤ 80◦ N. The central meridian, λ0 , is
constrained to 6◦ intervals starting at 3◦ and the projection automatically adjusts
to the proper value nearest the user’s entry of λ0 . An even multiple of 6◦ for λ0
should be avoided since the intended zone is indeterminent. One of the 60 zone
numbers may be specified in lieu of λ0 where +zone=1 specifies the region from
180◦ W to 174◦ W (λ0 = 177◦ W) and proceeds easterly until +zone=60 for the
region from 174◦ E to 180◦ E (λ0 = 177◦ E). If both +zone and +lon 0 are used,
+zone takes precedence.
For Southern hemisphere applications the option +south should be used which
adds a false northing of 10,000,000m. In all cases, a false easting of 500,000m is
used. Also see Universal Polar Stereographic (ups), p. 40.
13
The Oblique Mercator (not illustrated) has two methods of specifying its control
information:
1. by means of two points (λ1 , φ1 ) and (λ2 , φ2 ) which will determine a great
circle, central line through each point or
2. by means of a point of origin at (λc , φ0 ) and an azimuth αc , measured clock-
wise from north, of the central line of the projection.
The presence of the +alpha option determines the method to be used. Cartesian
origin of the projection will coincide with φ0 and an internally determined value
of longitude for the first method or λc in the second method (+lon_0=λ0 is not
used and is ignored if specified). The cartesian coordinates are rotated by −αc
(determined internally for the first method) unless the +no_rot options is specified.
Scale factor at the central line can be modified by k0 which is 1. if not specified
with +k.
Initialization of the projection will fail if control parameters nearly define a
transverse or normal (equatorial) Mercator projection.
Figure 3: Central Cylindrical projection, with shorelines and 30◦ graticule. Central
meridian 90◦ W (+proj=cc +lon 0=90w).
Miller Projection
Figure 5: Miller projection, with shorelines and 30◦ graticule. Central meridian
90◦ W (+proj=mill +lon 0=90w).
Figure 6: Lambert Cylindrical Equal Area projection, with shorelines and 30◦
graticule. Central meridian 90◦ W. Standard parallel 0◦ (+proj=cea +lon 0=90w).
Figure 7: Behrmann Equal Area projection, with shorelines and 30◦ gratic-
ule. Central meridian 90◦ W. Standard parallels 30◦ (+proj=cea +lon 0=90w
+lat ts=30).
16 CYLINDRICAL PROJECTIONS
Figure 9: Gall (Stereographic) projection, with shorelines and 30◦ graticule. Cen-
tral meridian 90◦ W (+proj=gall +lon 0=90w).
Figure 10: Transverse Cylindrical Equal Area projection, Western hemisphere with
shorelines and 15◦ graticule. Central meridian 90◦ W (+proj=tcea +lon 0=90w).
The parameter k0 is the scale factor at the central meridian which has a value of
1. when +k is not specified.
18 CYLINDRICAL PROJECTIONS
Figure 11: Equidistant Cylindrical projection, with shorelines and 30◦ graticule.
Central meridian 90◦ W and φs = 45◦ (+proj=eqc +lon 0=90w).
Figure 12: Plate Carée projection, with shorelines and 30◦ graticule. Central
meridian 90◦ W (+proj=eqc +lon 0=90w +lat ts=30).
19
Cassini Projection
Figure 13: Cassini projection, Western hemisphere with shorelines and 15◦ gratic-
ule. Central meridian 90◦ W (+proj=cass +lon 0=90w).
Pseudocylindrical Projections
The defining quality of the pseudocylindrical projections is that the parallels of
latitude are parallel, as with the normal cylindrical projections, but meridians,
other than the central meridian, always converge to the polar ends of the central
meridian. Typically, the convergence of the meridians is a smooth arc but some
novelty projections (Eckert I and II and Collignon) use straight lines. Several of
the pseudocylindical projections equal area but none are conformal.
The principle usage of these projections is for small scale, global maps, and
frequently in an interupted form.
Sinusoidal Projection
Figure 14: Sinusoidal projection, with shorelines and 30◦ graticule. Central Merid-
ian 90◦ W (+proj=sinu +lon 0=90w).
Because this projection is useful for large scale applications it is frequently em-
ployed in transverse and oblique aspects.
22 PSEUDOCYLINDRICAL PROJECTIONS
Mollweide Projection
Figure 15: Mollweide projection, with shorelines and 30◦ graticule. Central Merid-
ian 90◦ W (+proj=moll +lon 0=90w).
Robinson Projection
Figure 16: Robinson projection, with shorelines and 30◦ graticule. Central Merid-
ian 90◦ W (+proj=robin +lon 0=90w).
Eckert I Projection
Figure 17: Eckert I projection, with shorelines and 30◦ graticule. Central Meridian
90◦ W (+proj=eck1 +lon 0=90w).
Eckert II Projection
Figure 18: Eckert II projection, with shorelines and 30◦ graticule. Central Meridian
90◦ W (+proj=eck2 +lon 0=90w).
Figure 19: Eckert III projection, with shorelines and 30◦ graticule. Central Merid-
ian 90◦ W (+proj=eck3 +lon 0=90w).
Eckert IV Projection
Figure 20: Eckert IV projection, with shorelines and 30◦ graticule. Central Merid-
ian 90◦ W (+proj=eck4 +lon 0=90w).
Eckert V Projection
Figure 21: Eckert V projection, with shorelines and 30◦ graticule. Central Meridian
90◦ W (+proj=eck5 +lon 0=90w).
Eckert VI Projection
Figure 22: Eckert VI projection, with shorelines and 30◦ graticule. Central Merid-
ian 90◦ W (+proj=eck6 +lon 0=90w).
Figure 23: Goode Homolosine projection, with shorelines and 30◦ graticule. Cen-
tral Meridian 90◦ W (+proj=goode +lon 0=90w).
Figure 24: Hatano Asymmetrical Equal-Area projection, with shorelines and 30◦
graticule. Central Meridian 90◦ W (+proj=hataea +lon 0=90w).
Loximuthal Projection
Figure 25: Loximuthal projection, with shorelines and 30◦ graticule. Central
Meridian 90◦ W (+proj=loxim +lon 0=90w +lat 1=40n).
Loxodromes (rhumb lines) from the central point, (λ0 , φ1 ), are true to scale from
this point and have proper azimuth at this point.
Figure 29: Putnin.s̆ P02 projection, with shorelines and 30◦ graticule. Central Merid-
ian 90◦ W (+proj=putp2 +lon 0=90w).
Putnin.s̆ P5 Projection
Figure 30: Putnin.s̆ P5 projection, with shorelines and 30◦ graticule. Central Merid-
ian 90◦ W (+proj=putp5 +lon 0=90w).
Figure 31: Quartic Authalic projection, with shorelines and 30◦ graticule. Central
Meridian 90◦ W (+proj=quau +lon 0=90w).
Winkel I Projection
Figure 32: Winkel I projection, with shorelines and 30◦ graticule. Central Meridian
90◦ W (+proj=wink1 +lon 0=90w).
Figure 33: Boggs Eumorphic projection, with shorelines and 30◦ graticule. Central
Meridian 90◦ W (+proj=boggs +lon 0=90w).
Collignon Projection
Figure 34: Collignon projection, with shorelines and 30◦ graticule. Central Merid-
ian 90◦ W (+proj=collg +lon 0=90w).
Figure 36: Craster Parabolic projection, with shorelines and 30◦ graticule. Central
Meridian 90◦ W (+proj=parab +lon 0=90w).
Conic Projections
Basic conic projections involve the transformations to a cone either secant or tan-
gent to the Earth’s surface. Specification of the latitudes of secant intersection are
made with the lat 1=φ1 and lat 2=φ2 parameters (φ1 = φ2 for tangent form).
Cylindrical (φ1 = −φ2 ) or azimuthal (φ1 = φ2 = 90◦ ) limiting forms should not be
performed by these projections.
Figure 37: Lambert Conformal Conic projection, with shorelines and 30◦ graticule.
Central Meridian 90◦ W. and standard parallels at 20◦ N and 60◦ N (+proj=lcc
+lon 0=90w +lat 1=20n +lat 2=60n).
Default values for φ1 and φ2 are respectively 33◦ N and 45◦ N (values normally
used for maps of the conterminous United States). Limiting forms are Polar Stere-
ographic and Mercator.
34 CONIC PROJECTIONS
Figure 38: Equidistant Conic projection, with shorelines and 30◦ graticule. Cen-
tral Meridian 90◦ W. and standard parallels at 20◦ N and 60◦ N (+proj=eqdc
+lon 0=90w +lat 1=20n +lat 2=60n).
Figure 39: Perspective Conic projection, with shorelines and 30◦ graticule. Cen-
tral Meridian 90◦ W and standard parallels at 20◦ N and 60◦ N (+proj=pconic
+lon 0=90w +lat 1=20n +lat 2=60n).
Figure 40: Albers equal area projection, with shorelines and 30◦ graticule. Cen-
tral Meridian 90◦ W. and standard parallels at 20◦ N and 60◦ N (+proj=aea
+lon 0=90w +lat 1=20n +lat 2=60n).
Figure 41: Lambert Equal Area Projection, with shorelines and 30◦ graticule.
Central Meridian 90◦ W and standard parallel at 0◦ (+proj=leac +lon 0=90w).
Default value for φ1 is 0◦ . Select parameter +south for south polar aspect. Limiting
form is Polar Lambert Azimuthal Equal Area (φ1 = ±90◦ ).
36 CONIC PROJECTIONS
Figure 42: Polyconic (American) projection, with shorelines and 30◦ graticule.
Central Meridian 90◦ W (+proj=poly +lon 0=90w).
Figure 43: Rectangular Polyconic projection, with shorelines and 30◦ graticule.
Central Meridian 90◦ W (+proj=rpoly +lon 0=90w).
A latitude of true scale may be specified with lat ts=φs as shown in figure 44 If
not specified, φs = 0 is assumed as shown in figure 43.
Figure 44: Rectangular Polyconic projection, with shorelines and 30◦ graticule.
Central Meridian 90◦ W. North and south latitudes of 45◦ are at true scale.
(+proj=rpoly +lon 0=90w +lat ts=45).
38 CONIC PROJECTIONS
Bonne Projection
Figure 45: Bonne projection, with shorelines and 30◦ graticule. Central Meridian
90◦ W (+proj=bonne +lon 0=90w).
Default value for φ1 is 40◦ N. The Werner projection (figure 46) is a variant of the
Bonne where φ1 = ±90◦ . Parameter +lat 0 is not employed in this projection and
the cartesian origin is at λ0 and φ1 .
Figure 46: Werner projection, with shorelines and 30◦ graticule. Central Meridian
90◦ W (+proj=bonne +lon 0=90w +lat 1=90n).
39
Azimuthal Projections
Azimuthal projections are based upon projections to a plane tangent to the Earth’s
surface at a point specified by lon 0=λ0 and lat 0=φ0 . When φ is ±90◦ or φ is
0◦ the projections are respectively termed polar and equatorial, otherwise they are
termed oblique. In all cases, the x–y origin coincides with λ0 –φ0 .
Stereographic Projection
Figure 47: Polar (lat 0=90), oblique (lat 0=45) and equatorial aspects of the
Stereographic projection, with shorelines and 30◦ graticule. Central Meridian
90◦ W. (+proj=stere +lon 0=90w)
The parameter k0 is the scaling factor at the tangency point of the projection
(λ0 , φ0 ) and is 1. if +k is not specified. For the polar aspects, the latitude of true
scale, φs , may be employed in lieu of k0 when φs 6= ±90◦ (the default value).
40 AZIMUTHAL PROJECTIONS
The ups projection is a special case polar aspect of the Stereographic projection
designed to cover the regions where φ ≥ 84◦ N or φ ≤ 80◦ S. The internal Stereo-
graphic parameters are fixed at k0 = 0.994, λ0 = 0◦ , x0 = y0 = 2, 000, 000m, and
φ0 is either 90◦ N when +south is not specified or 90◦ S when +south is specified.
Elliptical parameters must be used (either proj default or entered as option). Also
see the Universal Transverse Mercator (utm) projection (p. 12).
Gnomonic Projection
Figure 48: Polar (lat 0=90), oblique (lat 0=45) and equatorial aspects of the
Gnomonic projection, with shorelines and 30◦ graticule. Central Meridian 90◦ W.
(+proj=gnom +lon 0=90w)
Orthographic Projection
Figure 49: Polar (lat 0=90), oblique (lat 0=45) and equatorial aspects of the Or-
thographic projection, with shorelines and 30◦ graticule. Central Meridian 90◦ W.
(+proj=ortho +lon 0=90w)
Airy Projection
Figure 50: Polar (+lat 0=90), oblique (+lat 0=45) and equatorial aspects of the
Airy projection, with shorelines and 30◦ graticule. Central Meridian 90◦ W and
φb = 90◦ . (+proj=airy +lon 0=90w)
The Airy projection is an azimuthal minimum error projection for the region within
the small or great circle defined by an angular distance, φb , from the tangency point
of the plane (λ0 , φ0 ). The default value for φb is 90◦ that is suitable for hemi-
spherical maps. Extent of projection is limited to the hemisphere unless +no cut
is specified.
43
Figure 51: Polar (lat 0=90), oblique (lat 0=45) and equatorial aspects of the
Near-Sided Perspective projection, with shorelines and 30◦ graticule. Central
Meridian 90◦ W. (+proj=nsper +lon 0=90w +a=1 +h=8)
Parameter h is the height of the view point above the Earth and must be in the
same units as a.
44 AZIMUTHAL PROJECTIONS
Figure 52: Polar (lat 0=90), oblique (lat 0=45) and equatorial aspects of the
Lambert Azimuthal Equal Area projection, with shorelines and 30◦ graticule. Cen-
tral Meridian 90◦ W. (+proj=laea +lon 0=90w)
Figure 53: Polar (lat 0=90), oblique (lat 0=45) and equatorial aspects of the Az-
imuthal Equidistant projection, with shorelines and 30◦ graticule. Central Merid-
ian 90◦ W. (+proj=aeqd +lon 0=90w)
Hammer Projection
Figure 54: Hammer projection, with shorelines and 30◦ graticule. Central Meridian
90◦ W. (+proj=hammer +lon 0=90w)
The real value n assigned to the +W option determines the normal Hammer pro-
jection, n = 0.5 or +W option omitted, shown in figure 54, the Eckert-Greifendorff,
n = 0.25, projection shown in figure 55. A value of n = 0 is a terminal error.
47
Figure 56: Wagner VII projection, with shorelines and 30◦ graticule. Central
Meridian 90◦ W. (+proj=wag7 +lon 0=90w)
Aitoff Projection
Figure 57: Aitoff projection, with shorelines and 30◦ graticule. Central Meridian
90◦ W. (+proj=aitoff +lon 0=90w)
Figure 58: Winkel Tripel projection, with shorelines and 30◦ graticule. Central
Meridian 90◦ W. (+proj=wintri +lon 0=90w)
Miscellaneous Projections
The miscellaneous classification is employed for projections not mathematically de-
veloped as projections onto a conic surface and which are primarily used for global
or hemispherical small scale maps. Except for certain cases with the Lagrange
projection, the cartesian origin coincides with λ0 and φ = 0◦ , and +lat 0 is not
used with any of the miscellaneous projections.
Figure 59: August Epicycloidal projection, with shorelines and 30◦ graticule. Cen-
tral Meridian 90◦ W (+proj=august +lon 0=90w).
Figure 60: Bacon Globular projection, with shorelines and 30◦ graticule. Central
Meridian 90◦ W (+proj=bacon +lon 0=90w).
Figure 61: Nicolosi Globular projection, with shorelines and 30◦ graticule. Central
Meridian 90◦ W (+proj=nicol +lon 0=90w).
Figure 62: Fournier Globular I projection, with shorelines and 30◦ graticule. Cen-
tral Meridian 90◦ W (+proj=fourn +lon 0=90w).
Figure 63: Apian Globular I projection, with shorelines and 30◦ graticule. Central
Meridian 90◦ W (+proj=apian +lon 0=90w).
Eisenlohr Projection
Figure 64: Eisenlohr projection, with shorelines and 30◦ graticule. Central Merid-
ian 90◦ W (+proj=eisen +lon 0=90w).
Figure 65: Ortelius Oval projection, with shorelines and 30◦ graticule. Central
Meridian 90◦ W (+proj=ortel +lon 0=90w).
Figure 66: Van der Grinten I projection, with shorelines and 30◦ graticule. Central
Meridian 90◦ W (+proj=vandg +lon 0=90w).
Figure 67: Van der Grinten II projection, with shorelines and 30◦ graticule. Central
Meridian 90◦ W (+proj=vandg2 +lon 0=90w).
Figure 68: Van der Grinten III projection, with shorelines and 30◦ graticule. Cen-
tral Meridian 90◦ W (+proj=vandg3 +lon 0=90w).
Figure 69: Van der Grinten IV projection, with shorelines and 30◦ graticule. Cen-
tral Meridian 90◦ W (+proj=vandg4 +lon 0=90w).
Lagrange Projection
Figure 70: Lagrange projection, with shorelines and 30◦ graticule. Central Merid-
ian 90◦ W. (+proj=lagrng +lon 0=90w)
The +W option provides for specifying the ratio r = λ0 /180◦ that defines a circular
meridian passing through the poles and λ0 ± λ0 . Figure 70 shows the default value
of r = 2, and figures 71 and 72 show respective values of r = 1 and r = 1.4.
Option +lat 1=φ1 specifies a parallel that will be a straight line (φ1 = 0 when not
specified) as well as the origin of the y axis. Figure 73 is an example for φ1 = 30◦ S.
Figure 71: Lagrange projection, with shorelines and 30◦ graticule. Central Merid-
ian 90◦ W. (+proj=lagrng +lon 0=90w +W=1)
56 MISCELLANEOUS PROJECTIONS
Figure 72: Lagrange projection, with shorelines and 30◦ graticule. Central Merid-
ian 90◦ W. (+proj=lagrng +lon 0=90w +W=1.4)
Figure 73: Lagrange projection, with shorelines and 30◦ graticule. Central Merid-
ian 90◦ W. (+proj=lagrng +lon 0=90w +lat 1=30s)
57
where xxxxx is the procedure name. The state_code is a National Geodetic Survey
reference number for each of the spcs zones. If the user does not know the code
number, an anotated list can be obtained by executing nad27 or nad83 followed
by the state’s name. For example, to obtain Colorado’s spcs27 zone codes:
$ nad27 colo
Colorado’s respective North, Central and South zone codes are 501, 502 and 503.
A complete list is obtained by executing nad27 or nad83 without any run-line
argument.
The -M options allows cartesian coordinates to be in meters rather than the
default surveyor’s feet and the proj_parameters provides for entering any of pro-
gram proj’s hyphen type runline parameters. To select forward transformation to
meters with 4 fractional digits then:
As an example, using real numbers, the spcs27 cartesian coordinates for two
sites near Boston are to be obtained from their latitude-longitude locations in a
file Boston.harbor:
$ nad27 mass
# 2001:massachusetts mainland datum:NAD27
# 2002:massachusetts island datum:NAD27
$ ...
And the following determine the spcs27 coordinates in feet:
$ for27 2001 -r -f ’%.3f’ Boston.harbor
764787.570 484445.491 # Boston Lighthouse
779542.978 549243.661 # Marblehead Lighthouse
$ ...
Caveats
A few elements related to spcs should be emphasized:
• The user must be warned that spcs coordinates in one datum cannot be
directly converted to the alternate datum. For example:
References
Elassal, A.A., 1987, General Cartographic Transformation Package (gctp), Ver-
sion II: noaa Technical Report nos 124 cgs 9, 24 p.
Evenden, G.I., 1983, Forward and inverse cartographic projection procedures: U.S.
Geological Survey Open-File Report 83-623, 85 p.
, Botbol, J.M., 1985, User’s manual for mapgen (unix version): a
method to transform digital cartographic data to a map: U.S. Geological
Survey Open-File Report 85-706, 134 p.
Kernighan, B.W., Ritchie, D.M., 1978, The C Programming Language: Englewood
Cliffs, New Jersey, Prentice-Hall
Mitchell, H.C., Simmons, L.G., 1945, The State Coordinate Systems (A Manual
for Surveyors): noaa Special Publication No. 235, reprinted 1987, 62 p.
Snyder, J.P., 1987, Map projections—A working manual: U.S. Geological Survey
Professional Paper 1395, 383 p.
,Voxland, R.M., 1989, An album of map projections: U.S. Geological
Survey Professional Paper 1453, 249 p.
Stem, J.E., 1989, State Plane Coordinate System of 1983: noaa Manual nos ngs
5, 119 p.
62 REFERENCES
Index
- placement of processing stdin, 3 Airy, 42
Aitoff, 47
Azimuthal Projections, 39–49 Albers Equal Area, 35
Apian Globular I, 51
basic program usage, 2 August Epicycloidal, 49
binary I/O, 7 Azimuthal Equidistant, 45
Babinet, 22
cartesian scaling, 7
Bacon Globular, 50
cartographic parameters, 7
Behrmann, 15
+a, 9
Bipolar Oblique Conic Confor-
+e, 9
mal, 36
+ellps, 8
Boggs Eumorphic, 31
+es, 9
Bonne, 38
+f, 9
Cassini, 19
+geoc, 10
Central, 40
+inv, 4
Central Cylindrical, 13
+lat 0, 10
Collignon, 31
+lon 0, 10
Craster Parabolic, 32
+over, 10
Cylindrical Equal Area, 15
+proj, 3, 8
Denoyer Semi-Elliptical, 32
+rf, 9
+x 0, 10 Eckert I, 23
+y 0, 10 Eckert II, 23
effect of order, 8 Eckert III, 24
comments in data input, 4 Eckert IV, 24
Conic Projections, 33–39 Eckert V, 25
controlling output precision Eckert VI, 25
λ − φ, 6 Eckert-Greifendorff, 46
x − y, 5 Eisenlohr, 52
cup character, 2 Elliptical, 22
Cylindrical Projections, 11–19 Equidistant Conic, 34
Equidistant Cylindrical, 18
data input, 3 Flat-Polar Quartic, 28
data output, 5 Fournier Globular I, 51
dms degree, minute, second format, 3 Gall (Stereographic), 16
Gall Orthographic, 15
elliptical figure, 9 Gauss Conformal, 12
elliptical listing, 9 Gauss-Krüger, 12
Gnomic, 40
history of proj, 1 Gnomonic, 40
Goode Homolosine, 26
input data format, 3 Hammer, 46
inverse projection Hammer-Aitoff, 46
by executing invproj, 4 Hammer-Wagner, 47
Hatano Asymmetrical Equal-
longitude over-range, 10
Area, 26
mapgen, 2 Homalographic, 22
Miscellaneous Projections, 49–56 Homolographic, 22
Homolosine, 26
order of processing input files, 3 Lagrange, 55
Lambert Azimuthal Equal Area,
projection list, 8 44
Projections Lambert Conformal Conic, 33
63
64 INDEX