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`);
> coordplot(Sinusoidal,scaling=constrained);
> changecoords(world[1866],Sinusoidal);
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);
> changecoords(world[50],Craster);
> 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);
> `Mollweide/y`:=sqrt(2)*r*sin(theta);
where is obtained by solving
> `Mollweide/theta`:=2*theta+sin(2*theta) = Pi*sin(phi): `Mollweide/theta`;
> 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]):
Warning: coordinates already exists, system redefined.
Warning: default information already exists, redefining.
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 specifies the initial value of used in the iteration.
> coordplot(Mollweide,scaling=constrained);
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);