Miscellaneous Projections - Adams

Adams projections also use the elliptic integral in the same way as the Pierce and Guyou projections. We use the same equations in the basic coordinate system:

> `Pierce/integral` := unapply(int(1/sqrt(1-1/2*sin(t)^2),t=0..v),v);

[Maple Math]

> x = `Pierce/integral`(v);

[Maple Math]

> y=`Pierce/integral`(u);

[Maple Math]

u and v are given by

> sin(u) = sqrt(1+cos(a)*cos(b)-sin(a)*sin(b));

[Maple Math]

> sin(v) = sqrt(1-cos(a)*cos(b)-sin(a)*sin(b));

[Maple Math]

In Adams' projection of the world within a square with poles in the corners the parameters are a and b given by

> a = arccos(cos(Phi)*sin(lambda/2));

[Maple Math]

> b = arccos(sin(Phi));

[Maple Math]

where

> p1:=Phi=arcsin(tan(phi/2)): p1;

[Maple Math]

Numerical results for the necessary integral can be obtained as follows:

> GuyouElliptic := proc(xx)
option remember;
evalf(EllipticF(sin(abs(xx)),1/2*2^(1/2)));
end;

[Maple Math]

We now proceed to define the coordinate system as a series of equations as shown below. Note the use of the signum function to assign the appropriate sign to the coordinates and the enclosure of the entire algorithm within quote marks to delay evaluation of the functions.

> `Adams/equations`:= 'Phi=arcsin(tan(phi/2)),
a = arccos(cos(Phi)*sin(lambda/2)),
b = arccos(sin(Phi)),
u = arcsin(sqrt(1+cos(a)*cos(b)-sin(a)*sin(b))),
v = arcsin(sqrt(1-cos(a)*cos(b)-sin(a)*sin(b))),
x = 'signum'(sin(Phi)+cos(a))*'GuyouElliptic'(u),
y = 'signum'(sin(Phi)-cos(a))*'GuyouElliptic'(v)';

[Maple Math]
[Maple Math]

Optimize the calculations to eliminate extra trig calculations:

> readlib(optimize):

> Aeqns:=optimize([`Adams/equations`]): Aeqns;

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

Make the projection:

> mapcoords(Adams,
input = [lambda,phi],
coords = [Aeqns, [x,y]],
params = [r],
view = [-180..180,-90..90,13,7,-90..90,-180..180]):

We will not use coordplot to isplay the coordinate system; rather, we shall make a grid:

> tt1 := graticule([seq(ii*10, ii = -18..18)],[-90,-60,-40,-20,-5,5,20,40,60,90]):

and convert it to the Adams coordinate system.

> pp3 := display(`Maps/changecoords`(tt1,Adams)): pp3;

[Maple Plot]

Now we can test these new coordinates on the whole world.

> wa3:=changecoords(world[ng,50],Adams):

The world map and the graticule are displayed together, but only after rotating the projection so that the poles appear at the top and bottom of the image.

> wa4:=plots[display]({pp3,wa3}):

> wa5:=plottools[rotate](wa4,Pi/4,[0,0]): wa5;

[Maple Plot]

Adams devised another projection in which the poles appear in the center of the sides of a square. The equations for this system are:

> `Adams square/equations`:= 'Phi=arcsin(tan(phi/2)),
a = arccos((cos(Phi)*sin(lambda/2)-sin(Phi))/sqrt(2)),
b = arccos((cos(Phi)*sin(lambda/2)+sin(Phi))/sqrt(2)),
u = arcsin(sqrt(1+cos(a)*cos(b)-sin(a)*sin(b))),
v = arcsin(sqrt(1-cos(a)*cos(b)-sin(a)*sin(b))),
x = 'signum'(lambda)*'GuyouElliptic'(u),
y = 'signum'(phi)*'GuyouElliptic'(v)';

[Maple Math]
[Maple Math]

> mapcoords(`Adams square`,
input = [lambda,phi],
coords = [optimize([`Adams square/equations`]), [x,y]],
params = [r],
view = [-180..180,-90..90,13,7,-90..90,-180..180]):

The coordinate system is

> pp4 := display(`Maps/changecoords`(tt1,`Adams square`)): pp4;

[Maple Plot]

The world map and graticule can now be shown:

> wa3:=changecoords(world[ng,50],`Adams square`):

> wa4:=plots[display]({pp4,wa3}): wa4;

[Maple Plot]

>