[Proj] Need help converting Goode to latlon

Gerald I. Evenden geraldi.evenden at gmail.com
Thu Jul 23 09:56:19 EST 2009

On Thursday 23 July 2009 1:14:46 am David Turover wrote:
> On Wed, Jul 22, 2009 at 10:04:18AM -0400, Gerald I. Evenden wrote:
> > On Wednesday 22 July 2009 2:39:52 am David Turover wrote:
> > > Example:
> > > http://segfault.cs.sonoma.edu/~dturover/gisbug/projectionError.jpg
> >
> > The projection in the above jpeg looks like Near-sided perspective.  At
> > any rate, it certainly is not Goode's pseudocylindrical Homolosine.
> The jpeg is the result of attempting to reproject from Goode to geographic
> coordinates. I have confirmed with an ESRI tool that the original shape is
> in Goode, so the problem is in my use of proj.

I am sorry, but the above sentence makes no sense to me.  What does the jpeg 
figure have to do with anything then?  It is not a representation 
of "geographic coordinates" but a display of said coordinates in a particular 

It would appear that your original data is in Goode projection coordinates and 
you want to *inverse project* these values to geographic coordinate.

> Additional notes:
> +proj=sinu produces similar results except that the tip of South America
> is pulled further west. Since sinu is the middle half of goode and the
> polar regions use a different algorithm, this should be expected.
> However, it may be worth mentioning that I can't get sinu to match the
> country shapes to their borders either.

Goode's projection is a combination of the the Sinusoidal projection for 
and Mollweide for all other latitudes.  It is most often used in an interupted 

> Most tweaks that I attempted to make to the proj arguments resulted in
> no change in the output, including turning off +no_defs and giving both
> the input and output projections the same datum "+datum=WGS84".

If you were using lproj then:

lproj -I +proj=goode +lon_0=90 +R=val <input_cart.dat >output_geog.dat

The radius val needs to be determined based upon the cartesian units and scale 
of your cartesian input data.  Output in output.dat will be geographic 
coordinates.  +a may be substituded for +R.  lon_0 is based upon the central 
meridian used in the original Goode projection.

The lproj usage should apply to Warmardam's proj.  +no_defs should not make 
any difference in this case.  lon_0 and R (a) are the only two options that 
really make any difference with this projection.  Note: if proj were as I 
originally wrote it, then executing proj would be identical to the lproj 

> I had the output projection as a null string to default to geographical
> coordinates. "+proj=latlon +units=degrees" gives the same result.
> Overstating +a (the earth's radius?) will pull shapes to the east as
> they are stretched, including things at the equator that were well
> placed before.

I should "stretch" things in all directions!!!

> "+lon_0=-90" drew the South America shapes in the middle of the Pacific
> Ocean. This makes sense since the original projection is based on the
> Greenwich meridian, so this just moved everything west.


> I turned on the PROJ_DEBUG environment variable but the only notice it
> gave was that proj_def.dat could not be opened. I fixed this by exporting
> PROJ_LIB so it searched in the right place. This did not affect the
> projection.
> The ESRI projection definition includes an option named "Option" that
> is set to 1. This does not sound very important, but might it have an
> effect?

I think there is a great communication problem here.

Basic questions:

1. what are the original coordinates you are dealing with?  Goode cartesian?
2. What is the central meridian used by the Goode projection to create these 
3. What earth radius and units were used in the projection?

These questions *must* be answered before using any projection procedure.

The whole religious complexion of the modern world is due
to the absence from Jerusalem of a lunatic asylum.
-- Havelock Ellis (1859-1939) British psychologist

More information about the Proj mailing list