Pseudocylindrical Projections

A cylindrical projection has parallel parallels and parallel meridians. A pseudocylindrical projection has parallel parallels but the meridians are not parallel. An example of a pseudocylindrical projection is the sinusoidal.

> print(`Maps/Sinusoidal`);

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

> coordplot(Sinusoidal,scaling=constrained);

[Maple Plot]

> changecoords(world[1866],Sinusoidal);

[Maple Plot]

A projection developed by J.E.E. Craster is similar to the sinusoidal but uses parabolas for the meridians.

> mapcoords(Craster,
input = [lambda,phi],
coords = [[sqrt(3/Pi)*r*lambda*(2*cos(2*phi/3)-1),sqrt(3*Pi)*r*sin(phi/3)]],
params = [r],
view = [-180..180,-90..90,13,7,-180..180,-90..90]);

> coordplot(Craster,scaling=constrained);

[Maple Plot]

> changecoords(world[50],Craster);

[Maple Plot]

> mapcoords(Parabolic,
input = [lambda,phi],
coords = [[r*1.53499*lambda*(2*cos(2*phi/3)-1),3.06998*r*sin(phi)/3]],
params = [r],
view = [-180..180,-90..90,13,7,-180..180,-90..90]);

The Mollweide Projection is an equal area pseudocylindrical with meridians as semi-ellipses.

> `Mollweide/x` := 2*sqrt(2)/Pi*r*lambda*cos(theta);

[Maple Math]

> `Mollweide/y`:=sqrt(2)*r*sin(theta);

[Maple Math]

where [Maple Math] is obtained by solving

> `Mollweide/theta`:=2*theta+sin(2*theta) = Pi*sin(phi): `Mollweide/theta`;

[Maple Math]

> mapcoords(Mollweide,
input = [lambda,phi],
coords = [[`Mollweide/theta`, theta = 0],
[`Mollweide/x`,`Mollweide/y`]],
params = [r],
view = [-180..180,-90..90,13,7,-180..180,-90..90]):

As before, the keyword coords is the list of operations used to create the new coordinates. The last two equations represent the final conversion, any intermediate calculations are given by the preceding statements. In this example mapcoords notes the list that contains the equation to determine theta and invokes Newton's method (a procedure for which is included in the Maps package) to compute this angle. The equation [Maple Math] specifies the initial value of [Maple Math] used in the iteration.

> coordplot(Mollweide,scaling=constrained);

[Maple Plot]

The Mollweide projection is one of the more time consuming projections, requiring 1110 seconds on a 233 MHz Pentium PC for the complete map of the world.

> changecoords(world[1866],Mollweide);

[Maple Plot]

There are many other pseudocylindrical projections that have been proposed. Max Eckert devised half a dozen new projections. Some of them have straight meridians, the first is shown below.

> coordplot(`Eckert I`,scaling=constrained);

[Maple Plot]

The Eckert IV projection has often been used by the National Geographic Society (NGS) as an inset map. It is given by the following equations:

> `Eckert IV/x`:=2*r*lambda*(1+cos(theta))/sqrt(4*Pi+Pi^2);

[Maple Math]

> `Eckert IV/y`:=2*sqrt(Pi)*r*sin(theta)/sqrt(4+Pi);

[Maple Math]

> `Eckert IV/theta`:=theta + sin(theta)* cos(theta) + 2 * sin(theta) = (4 + Pi) * sin(phi) /2: `Eckert IV/theta`;

[Maple Math]

> coordplot(`Eckert IV`,scaling=constrained);

[Maple Plot]

> changecoords(world[1866],`Eckert IV`);

[Maple Plot]

The Eckert IV projection required 750 seconds on a 233 MHz PC to transform the complete world map. The Eckert V shown below in coordinate form is an example of a flat-polar projection.

> coordplot(`Eckert V`,scaling=constrained);

[Maple Plot]

> coordplot(`Eckert VI`,scaling=constrained);

McBryde and Thomas devised a number of pseudocylindrical projections, this is their fourth.

> changecoords(world[1866],`McBryde Thomas 4`);

[Maple Plot]

Russian cartographers have devised many projections; some are named after the institute where many were developed. Here is one of them.

> mapcoords(`TsNIIGAiK pseudocylindrical`,
input = [lambda,phi],
coords = [t=sin(lambda),
[r*(1-phi^2/6.16)*(0.87*lambda-'sign'(lambda)*lambda^4/1049.95),r*(phi+phi^3/12)]],
params = [r],
view = [-180..180,-90..90,13,7,-180..180,-90..90]);

> print(`Maps/TsNIIGAiK pseudocylindrical`);

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

> changecoords(world[50],`TsNIIGAiK pseudocylindrical`);

[Maple Plot]