1mapproj(n)                        Tcl Library                       mapproj(n)
2
3
4
5______________________________________________________________________________
6

NAME

8       mapproj - Map projection routines
9

SYNOPSIS

11       package require Tcl  ?8.4?
12
13       package require math::interpolate  ?1.0?
14
15       package require math::special  ?0.2.1?
16
17       package require mapproj  ?1.0?
18
19       ::mapproj::toPlateCarree lambda_0 phi_0 lambda phi
20
21       ::mapproj::fromPlateCarree lambda_0 phi_0 x y
22
23       ::mapproj::toCylindricalEqualArea lambda_0 phi_0 lambda phi
24
25       ::mapproj::fromCylindricalEqualArea lambda_0 phi_0 x y
26
27       ::mapproj::toMercator lambda_0 phi_0 lambda phi
28
29       ::mapproj::fromMercator lambda_0 phi_0 x y
30
31       ::mapproj::toMillerCylindrical lambda_0 lambda phi
32
33       ::mapproj::fromMillerCylindrical lambda_0 x y
34
35       ::mapproj::toSinusoidal lambda_0 phi_0 lambda phi
36
37       ::mapproj::fromSinusoidal lambda_0 phi_0 x y
38
39       ::mapproj::toMollweide lambda_0 lambda phi
40
41       ::mapproj::fromMollweide lambda_0 x y
42
43       ::mapproj::toEckertIV lambda_0 lambda phi
44
45       ::mapproj::fromEckertIV lambda_0 x y
46
47       ::mapproj::toEckertVI lambda_0 lambda phi
48
49       ::mapproj::fromEckertVI lambda_0 x y
50
51       ::mapproj::toRobinson lambda_0 lambda phi
52
53       ::mapproj::fromRobinson lambda_0 x y
54
55       ::mapproj::toCassini lambda_0 phi_0 lambda phi
56
57       ::mapproj::fromCassini lambda_0 phi_0 x y
58
59       ::mapproj::toPeirceQuincuncial lambda_0 lambda phi
60
61       ::mapproj::fromPeirceQuincuncial lambda_0 x y
62
63       ::mapproj::toOrthographic lambda_0 phi_0 lambda phi
64
65       ::mapproj::fromOrthographic lambda_0 phi_0 x y
66
67       ::mapproj::toStereographic lambda_0 phi_0 lambda phi
68
69       ::mapproj::fromStereographic lambda_0 phi_0 x y
70
71       ::mapproj::toGnomonic lambda_0 phi_0 lambda phi
72
73       ::mapproj::fromGnomonic lambda_0 phi_0 x y
74
75       ::mapproj::toAzimuthalEquidistant lambda_0 phi_0 lambda phi
76
77       ::mapproj::fromAzimuthalEquidistant lambda_0 phi_0 x y
78
79       ::mapproj::toLambertAzimuthalEqualArea lambda_0 phi_0 lambda phi
80
81       ::mapproj::fromLambertAzimuthalEqualArea lambda_0 phi_0 x y
82
83       ::mapproj::toHammer lambda_0 lambda phi
84
85       ::mapproj::fromHammer lambda_0 x y
86
87       ::mapproj::toConicEquidistant lambda_0 phi_0 phi_1 phi_2 lambda phi
88
89       ::mapproj::fromConicEquidistant lambda_0 phi_0 phi_1 phi_2 x y
90
91       ::mapproj::toAlbersEqualAreaConic lambda_0 phi_0 phi_1 phi_2 lambda phi
92
93       ::mapproj::fromAlbersEqualAreaConic lambda_0 phi_0 phi_1 phi_2 x y
94
95       ::mapproj::toLambertConformalConic  lambda_0  phi_0  phi_1 phi_2 lambda
96       phi
97
98       ::mapproj::fromLambertConformalConic lambda_0 phi_0 phi_1 phi_2 x y
99
100       ::mapproj::toLambertCylindricalEqualArea lambda_0 phi_0 lambda phi
101
102       ::mapproj::fromLambertCylindricalEqualArea lambda_0 phi_0 x y
103
104       ::mapproj::toBehrmann lambda_0 phi_0 lambda phi
105
106       ::mapproj::fromBehrmann lambda_0 phi_0 x y
107
108       ::mapproj::toTrystanEdwards lambda_0 phi_0 lambda phi
109
110       ::mapproj::fromTrystanEdwards lambda_0 phi_0 x y
111
112       ::mapproj::toHoboDyer lambda_0 phi_0 lambda phi
113
114       ::mapproj::fromHoboDyer lambda_0 phi_0 x y
115
116       ::mapproj::toGallPeters lambda_0 phi_0 lambda phi
117
118       ::mapproj::fromGallPeters lambda_0 phi_0 x y
119
120       ::mapproj::toBalthasart lambda_0 phi_0 lambda phi
121
122       ::mapproj::fromBalthasart lambda_0 phi_0 x y
123
124_________________________________________________________________
125

DESCRIPTION

127       The mapproj package provides a set of procedures for converting between
128       world  co-ordinates  (latitude and longitude) and map co-ordinates on a
129       number of different map projections.
130

COMMANDS

132       The following commands convert between world co-ordinates and  map  co-
133       ordinates:
134
135       ::mapproj::toPlateCarree lambda_0 phi_0 lambda phi
136              Converts  to  the plate carrée (cylindrical equidistant) projec‐
137              tion.
138
139       ::mapproj::fromPlateCarree lambda_0 phi_0 x y
140              Converts from the plate carrée (cylindrical equidistant) projec‐
141              tion.
142
143       ::mapproj::toCylindricalEqualArea lambda_0 phi_0 lambda phi
144              Converts to the cylindrical equal-area projection.
145
146       ::mapproj::fromCylindricalEqualArea lambda_0 phi_0 x y
147              Converts from the cylindrical equal-area projection.
148
149       ::mapproj::toMercator lambda_0 phi_0 lambda phi
150              Converts to the Mercator (cylindrical conformal) projection.
151
152       ::mapproj::fromMercator lambda_0 phi_0 x y
153              Converts from the Mercator (cylindrical conformal) projection.
154
155       ::mapproj::toMillerCylindrical lambda_0 lambda phi
156              Converts to the Miller Cylindrical projection.
157
158       ::mapproj::fromMillerCylindrical lambda_0 x y
159              Converts from the Miller Cylindrical projection.
160
161       ::mapproj::toSinusoidal lambda_0 phi_0 lambda phi
162              Converts  to the sinusoidal (Sanson-Flamsteed) projection.  pro‐
163              jection.
164
165       ::mapproj::fromSinusoidal lambda_0 phi_0 x y
166              Converts  from  the  sinusoidal  (Sanson-Flamsteed)  projection.
167              projection.
168
169       ::mapproj::toMollweide lambda_0 lambda phi
170              Converts to the Mollweide projection.
171
172       ::mapproj::fromMollweide lambda_0 x y
173              Converts from the Mollweide projection.
174
175       ::mapproj::toEckertIV lambda_0 lambda phi
176              Converts to the Eckert IV projection.
177
178       ::mapproj::fromEckertIV lambda_0 x y
179              Converts from the Eckert IV projection.
180
181       ::mapproj::toEckertVI lambda_0 lambda phi
182              Converts to the Eckert VI projection.
183
184       ::mapproj::fromEckertVI lambda_0 x y
185              Converts from the Eckert VI projection.
186
187       ::mapproj::toRobinson lambda_0 lambda phi
188              Converts to the Robinson projection.
189
190       ::mapproj::fromRobinson lambda_0 x y
191              Converts from the Robinson projection.
192
193       ::mapproj::toCassini lambda_0 phi_0 lambda phi
194              Converts  to  the  Cassini  (transverse cylindrical equidistant)
195              projection.
196
197       ::mapproj::fromCassini lambda_0 phi_0 x y
198              Converts from the Cassini (transverse  cylindrical  equidistant)
199              projection.
200
201       ::mapproj::toPeirceQuincuncial lambda_0 lambda phi
202              Converts to the Peirce Quincuncial Projection.
203
204       ::mapproj::fromPeirceQuincuncial lambda_0 x y
205              Converts from the Peirce Quincuncial Projection.
206
207       ::mapproj::toOrthographic lambda_0 phi_0 lambda phi
208              Converts to the orthographic projection.
209
210       ::mapproj::fromOrthographic lambda_0 phi_0 x y
211              Converts from the orthographic projection.
212
213       ::mapproj::toStereographic lambda_0 phi_0 lambda phi
214              Converts to the stereographic (azimuthal conformal) projection.
215
216       ::mapproj::fromStereographic lambda_0 phi_0 x y
217              Converts  from  the  stereographic (azimuthal conformal) projec‐
218              tion.
219
220       ::mapproj::toGnomonic lambda_0 phi_0 lambda phi
221              Converts to the gnomonic projection.
222
223       ::mapproj::fromGnomonic lambda_0 phi_0 x y
224              Converts from the gnomonic projection.
225
226       ::mapproj::toAzimuthalEquidistant lambda_0 phi_0 lambda phi
227              Converts to the azimuthal equidistant projection.
228
229       ::mapproj::fromAzimuthalEquidistant lambda_0 phi_0 x y
230              Converts from the azimuthal equidistant projection.
231
232       ::mapproj::toLambertAzimuthalEqualArea lambda_0 phi_0 lambda phi
233              Converts to the Lambert azimuthal equal-area projection.
234
235       ::mapproj::fromLambertAzimuthalEqualArea lambda_0 phi_0 x y
236              Converts from the Lambert azimuthal equal-area projection.
237
238       ::mapproj::toHammer lambda_0 lambda phi
239              Converts to the Hammer projection.
240
241       ::mapproj::fromHammer lambda_0 x y
242              Converts from the Hammer projection.
243
244       ::mapproj::toConicEquidistant lambda_0 phi_0 phi_1 phi_2 lambda phi
245              Converts to the conic equidistant projection.
246
247       ::mapproj::fromConicEquidistant lambda_0 phi_0 phi_1 phi_2 x y
248              Converts from the conic equidistant projection.
249
250       ::mapproj::toAlbersEqualAreaConic lambda_0 phi_0 phi_1 phi_2 lambda phi
251              Converts to the Albers equal-area conic projection.
252
253       ::mapproj::fromAlbersEqualAreaConic lambda_0 phi_0 phi_1 phi_2 x y
254              Converts from the Albers equal-area conic projection.
255
256       ::mapproj::toLambertConformalConic lambda_0 phi_0  phi_1  phi_2  lambda
257       phi
258              Converts to the Lambert conformal conic projection.
259
260       ::mapproj::fromLambertConformalConic lambda_0 phi_0 phi_1 phi_2 x y
261              Converts from the Lambert conformal conic projection.
262
263       Among  the  cylindrical  equal-area  projections, there are a number of
264       choices of standard parallels that have names:
265
266       ::mapproj::toLambertCylindricalEqualArea lambda_0 phi_0 lambda phi
267              Converts to  the  Lambert  cylindrical  equal  area  projection.
268              (standard parallel is the Equator.)
269
270       ::mapproj::fromLambertCylindricalEqualArea lambda_0 phi_0 x y
271              Converts  from  the  Lambert  cylindrical equal area projection.
272              (standard parallel is the Equator.)
273
274       ::mapproj::toBehrmann lambda_0 phi_0 lambda phi
275              Converts to the  Behrmann  cylindrical  equal  area  projection.
276              (standard parallels are 30 degrees North and South)
277
278       ::mapproj::fromBehrmann lambda_0 phi_0 x y
279              Converts  from  the  Behrmann cylindrical equal area projection.
280              (standard parallels are 30 degrees North and South.)
281
282       ::mapproj::toTrystanEdwards lambda_0 phi_0 lambda phi
283              Converts to the Trystan Edwards cylindrical equal  area  projec‐
284              tion. (standard parallels are 37.4 degrees North and South)
285
286       ::mapproj::fromTrystanEdwards lambda_0 phi_0 x y
287              Converts from the Trystan Edwards cylindrical equal area projec‐
288              tion. (standard parallels are 37.4 degrees North and South.)
289
290       ::mapproj::toHoboDyer lambda_0 phi_0 lambda phi
291              Converts to the Hobo-Dyer  cylindrical  equal  area  projection.
292              (standard parallels are 37.5 degrees North and South)
293
294       ::mapproj::fromHoboDyer lambda_0 phi_0 x y
295              Converts  from  the Hobo-Dyer cylindrical equal area projection.
296              (standard parallels are 37.5 degrees North and South.)
297
298       ::mapproj::toGallPeters lambda_0 phi_0 lambda phi
299              Converts to the Gall-Peters cylindrical equal  area  projection.
300              (standard parallels are 45 degrees North and South)
301
302       ::mapproj::fromGallPeters lambda_0 phi_0 x y
303              Converts from the Gall-Peters cylindrical equal area projection.
304              (standard parallels are 45 degrees North and South.)
305
306       ::mapproj::toBalthasart lambda_0 phi_0 lambda phi
307              Converts to the Balthasart cylindrical  equal  area  projection.
308              (standard parallels are 50 degrees North and South)
309
310       ::mapproj::fromBalthasart lambda_0 phi_0 x y
311              Converts  from the Balthasart cylindrical equal area projection.
312              (standard parallels are 50 degrees North and South.)
313

ARGUMENTS

315       The following arguments are accepted by the projection commands:
316
317       lambda Longitude of the point to be projected, in degrees.
318
319       phi    Latitude of the point to be projected, in degrees.
320
321       lambda_0
322              Longitude of the center of the sheet, in degrees.  For many pro‐
323              jections, this figure is also the reference meridian of the pro‐
324              jection.
325
326       phi_0  Latitude of the center  of  the  sheet,  in  degrees.   For  the
327              azimuthal  projections,  this figure is also the latitude of the
328              center of the projection.
329
330       phi_1  Latitude of the first reference parallel, for  projections  that
331              use reference parallels.
332
333       phi_2  Latitude  of the second reference parallel, for projections that
334              use reference parallels.
335
336       x      X co-ordinate of a point on the map, in units of Earth radii.
337
338       y      Y co-ordinate of a point on the map, in units of Earth radii.
339

RESULTS

341       For all of the procedures whose names begin with 'to', the return value
342       is  a  list  comprising  an x co-ordinate and a y co-ordinate.  The co-
343       ordinates are relative to the center of the map sheet to be drawn, mea‐
344       sured  in Earth radii at the reference location on the map.  For all of
345       the functions whose names begin with 'from', the return value is a list
346       comprising the longitude and latitude, in degrees.
347

CHOOSING A PROJECTION

349       This package offers a great many projections, because no single projec‐
350       tion is appropriate to all maps.   This  section  attempts  to  provide
351       guidance on how to choose a projection.
352
353       First, consider the type of data that you intend to display on the map.
354       If the data are directional (e.g., winds, ocean currents,  or  magnetic
355       fields)  then you need to use a projection that preserves angles; these
356       are known as conformal projections.  Conformal projections include  the
357       Mercator,  the  Albers azimuthal equal-area, the stereographic, and the
358       Peirce Quincuncial projection.  If the data  are  thematic,  describing
359       properties  of  land or water, such as temperature, population density,
360       land use, or demographics; then you need a projection  that  will  show
361       these  data with the areas on the map proportional to the areas in real
362       life.  These so-called  equal  area  projections  include  the  various
363       cylindrical equal area projections, the sinusoidal projection, the Lam‐
364       bert azimuthal equal-area projection, the Albers equal-area conic  pro‐
365       jection,  and several of the world-map projections (Miller Cylindrical,
366       Mollweide, Eckert IV, Eckert VI, Robinson, and Hammer). If the signifi‐
367       cant factor in your data is distance from a central point or line (such
368       as air routes), then you will do best with  an  equidistant  projection
369       such as plate carrée, Cassini, azimuthal equidistant, or conic equidis‐
370       tant.  If direction from a central point is a critical factor  in  your
371       data  (for instance, air routes, radio antenna pointing), then you will
372       almost surely want to use one of the azimuthal projections. Appropriate
373       choices are azimuthal equidistant, azimuthal equal-area, stereographic,
374       and perhaps orthographic.
375
376       Next, consider how much of the Earth your map will cover, and the  gen‐
377       eral  shape of the area of interest.  For maps of the entire Earth, the
378       cylindrical equal area, Eckert IV and VI, Mollweide, Robinson, and Ham‐
379       mer  projections  are good overall choices.  The Mercator projection is
380       traditional, but the extreme distortions of area at high latitudes make
381       it  a poor choice unless a conformal projection is required. The Peirce
382       projection is a better choice of conformal projection, having less dis‐
383       tortion  of landforms.  The Miller Cylindrical is a compromise designed
384       to give shapes similar to the traditional Mercator, but with less polar
385       stretching.  The Peirce Quincuncial projection shows all the continents
386       with acceptable distortion if a reference meridian close to +20 degrees
387       is  chosen.   The Robinson projection yields attractive maps for things
388       like political divisions, but should be avoided  in  presenting  scien‐
389       tific  data,  since other projections have moe useful geometric proper‐
390       ties.
391
392       If  the  map  will  cover  a  hemisphere,  then  choose  stereographic,
393       azimuthal-equidistant,  Hammer,  or  Mollweide  projections;  these all
394       project the hemisphere into a circle.
395
396       If the map will cover a large area (at least a  few  hundred  km  on  a
397       side),  but  less  than  a  hemisphere,  then you have several choices.
398       Azimuthal projections are usually good (choose stereographic, azimuthal
399       equidistant,  or  Lambert  azimuthal  equal-area  according  to whether
400       shapes, distances from  a  central  point,  or  areas  are  important).
401       Azimuthal  projections  (and  possibly  the Cassini projection) are the
402       only really good choices for mapping the polar regions.
403
404       If the large area is in one of the temperate zones and is round or  has
405       a  primarily  east-west  extent,  then  the  conic projections are good
406       choices.  Choose the Lambert conformal conic, the conic equidistant, or
407       the  Albers  equal-area  conic according to whether shape, distance, or
408       area are the most important parameters.  For any of these,  the  refer‐
409       ence  parallels  should  be  chosen at approximately 1/6 and 5/6 of the
410       range of latitudes to be displayed.   For  instance,  maps  of  the  48
411       coterminous  United  States  are attractive with reference parallels of
412       28.5 and 45.5 degrees.
413
414       If the large area is equatorial and is round or has a  primarily  east-
415       west  extent,  then the Mercator projection is a good choice for a con‐
416       formal projection; Lambert cylindrical equal-area and  sinusoidal  pro‐
417       jections  are  good  equal-area  projections; and the plate carrée is a
418       good equidistant projection.
419
420       Large areas having a primarily North-South aspect,  particularly  those
421       spanning  the Equator, need some other choices.  The Cassini projection
422       is a good choice for an equidistant projection (for instance, a Cassini
423       projection  with  a  central  meridian  of  80 degrees West produces an
424       attractive map of the Americas).  The  cylindrical  equal-area,  Albers
425       equal-area conic, sinusoidal, Mollweide and Hammer projections are pos‐
426       sible choices for equal-area projections.  A good conformal  projection
427       in  this  situation  is the Transverse Mercator, which alas, is not yet
428       implemented.
429
430       Small areas begin to get into a realm  where  the  ellipticity  of  the
431       Earth  affects  the map scale.  This package does not attempt to handle
432       accurate mapping for large-scale topographic  maps.   If  slight  scale
433       errors  are acceptable in your application, then any of the projections
434       appropriate to large areas should work for small ones as well.
435
436       There are a few projections that are included for their special proper‐
437       ties.   The orthographic projection produces views of the Earth as seen
438       from space.  The gnomonic projection produces a map on which all  great
439       circles  (the  shortest distance between two points on the Earth's sur‐
440       face) are rendered as straight lines.  While this projection is  useful
441       for  navigational  planning,  it  has  extreme distortions of shape and
442       area, and can display only a limited area of the  Earth  (substantially
443       less than a hemisphere).
444
446       Copyright (c) 2007 Kevin B. Kenny <kennykb@acm.org>
447
448
449
450
451mapproj                               0.1                           mapproj(n)
Impressum