Application Center - Maplesoft

App Preview:

Projections of the National Geographic Society

You can switch back to the summary page by clicking here.

Learn about Maple
Download Application


 

Projections of The National Geographic Society

The Eckert IV projection has often been used by the National Geographic Society (NGS) as an inset map. From 1922 to 1988 the projection used by the NGS for their large world maps was one by Chicgoan Van der Grinten. In 1988 the NGS adopted the Robinson projection designed in 1963 by Professor Arthur H. Robinson for Rand McNally. The Robinson projection is somewhat different from almost all others in not being based on mathematical formulas or geometry. As a result it possesses almost none of the properties possessed by other projections. The coordinates are given by:

> xr:=x=r*l[p]*lambda/180: yr:=y=r*l[m]: xr; yr;

[Maple Math]

[Maple Math]

where [Maple Math] and [Maple Math] were tabulated functions of the latitude derived by a computerised trial and error process by Robinson. The tabular functions, as amended by the NGS, are given by Pearson (1990). Pearson suggests that intermediate values of these functions be obtained by interpolation. However, Maple's own interpolation function does a very poorly in this task, particularly at the higher latitudes. We have, therefore, used Maple to fit the tabular functions to accurate (within the allowed values of latitude) 9th order polynomial functions. Increasing the order of the polynomials does not improve the accuracy of the fit.

> `Robinson/lm`:= proc (lambda) options operator, arrow; .1705296626e-1*lambda-.8012589080e-4*lambda^2+.7438423230e-5*lambda^3-.3702182944e-6*lambda^4+.1109413766e-7*lambda^5-.2031450383e-9*lambda^6+.2180138366e-11*lambda^7-.1248672025e-13*lambda^8+.2905471347e-16*lambda^9 end:

> `Robinson/lp`:= proc (lambda) options operator, arrow; 2.627878724+.1294792647e-2*lambda-.4935937156e-3*lambda^2+.3614303665e-4*lambda^3-.1581670382e-5*lambda^4+.3806466552e-7*lambda^5-.5800621828e-9*lambda^6+.5852194027e-11*lambda^7-.3624112212e-13*lambda^8+.1024113068e-15*lambda^9 end:

> mapcoords(Robinson,
coords = [[r*`Robinson/lp`(abs(phi))*lambda/Pi,
r*`Robinson/lm`(abs(phi))*'sign'(phi)*180/Pi]],
input = [lambda, phi], params = [r],
view = [-180..180,-90..90,13,7,-180..180,-90..90]):

> print(`Maps/Robinson`);

[Maple Math]
[Maple Math]
[Maple Math]
[Maple Math]
[Maple Math]
[Maple Math]
[Maple Math]
[Maple Math]
[Maple Math]
[Maple Math]
[Maple Math]
[Maple Math]
[Maple Math]

Note the quote marks to delay the evaluation of the sign function.

> coordplot(Robinson,scaling=constrained);

[Maple Plot]

> changecoords(world[1866],Robinson);

[Maple Plot]

This projection required about 400 seconds to compute on a 233 MHz Pentium PC.

More recently the National Geographic Society (1998) has began using the Winkel Tripel projection which is a simple average of the equirectangular and one due to Aitoff (similar to the Hammer) with a standard parallel of 50 degrees 28 minutes. The Winkel Tripel projection has also been used in The Times Atlas (with a standard parallel of 40 degrees), and is obtained with the following conversion procedure.

> mapcoords(`Winkel Tripel`,
coords = [a = arccos(cos(phi) * cos(lambda/2)),
sp = '`if`(type(_sp,name),58+28/60,_sp)',
b = '`if`'(a = 0,1, a/sin(a)),
[r/2*(lambda*cos(sp*Pi/180)
+ 2*b*cos(phi)*sin(lambda/2)),
r/2*(phi+b*sin(phi))]],
input = [lambda, phi],
params = [r,_sp],
view = [-180..180,-90..90,13,7,-180..180,-90..90]):

This example demonstrates the use of optional arguments as well as conditional calculations.

> print(`Maps/Winkel Tripel`);

[Maple Math]
[Maple Math]
[Maple Math]
[Maple Math]
[Maple Math]
[Maple Math]
[Maple Math]
[Maple Math]
[Maple Math]
[Maple Math]
[Maple Math]
[Maple Math]
[Maple Math]

> changecoords(world[1866],`Winkel Tripel`);

The Winkel Tripel projection required nearly two hours of computation time on a 233 MHz PC s(6840 seconds, to be more precise)

[Maple Plot]