Open Source GIS – Discontinuous or Interrupted Map Projections

cartographycoordinate systemopen-source-gis

Do any of the current open source GIS softwares support discontinous projection systems? E.g. sinusoidal, dymaxion, butterfly, etc? If not, are there any affordable commercial ones that do (affordable meaning < $150)?

Upate: apparently it was a bad idea to lead with "sinusoidal", as that projection also has a single point non-interrupted form. Please note, the key word here is discontinuous or interrupted. Thanks.

Cahill's 1909 butterfly map

Best Answer

It's possible to construct something like the interrupted sinusoidal projection, and similar projections, by doing several (normal) sinusoidal projections and cutting & pasting them together. I'm not aware of a tool that does this (but I am not the person to ask about tools), so in the case that you have to resort to spit and glue...

  • If you look at a random example of the interrupted sinusoidal, each perfectly vertical meridian corresponds to a single sinusoidal projection.

  • For that example, you're looking at sinusoidals centered on longitudes: -160,-100,-60, ...

  • Then, cut and shift the parts to line up: The bottom left part is composed of longitudes -180..-100 and latitudes 0..-90, and projected with a center longitude of -160. The next part is longitudes -180..-40 and latitudes 0..90, projected w/ a center of -100. And so on (the example I linked was pretty intricate & there might be funny business going on in Russia; it doesn't look like a vanilla sinusoidal there).

If you're after a finished map, I would render it at to a nice high resolution georeferenced image and build the projection pieces by projecting it into each sinusoidal projection and then masking it. (Build the masks by projecting solid squares that cover the target lat/lon ranges for each piece.) If you're working with raw data, I would partition it into input pieces, taking care to split lines and polygons along any "cut" edges in the projection.

Hopefully this is a better-than-nothing answer. :)

It would be an interesting side project to automate this in a script (e.g. w/ gdalwarp)...

Related Question