[gdal-dev] Projections & Datums

Frank Warmerdam warmerdam at pobox.com
Wed Dec 19 14:48:51 EST 2007


Chris Howell wrote:
> Is there a documented list somewhere that outlines the projections and 
> datums that GDAL knows about ? I've seen reference to some in the code 
> on GDAL trac but I haven't been able to find a good list documented 
> somewhere

Chris,

The list of projection methods in theory understood by GDAL is defined by
the methods for setting them on OGRSpatialReference:

     /** Albers Conic Equal Area */
     OGRErr      SetACEA( double dfStdP1, double dfStdP2,
                          double dfCenterLat, double dfCenterLong,
                          double dfFalseEasting, double dfFalseNorthing );

     /** Azimuthal Equidistant */
     OGRErr      SetAE( double dfCenterLat, double dfCenterLong,
                        double dfFalseEasting, double dfFalseNorthing );

     /** Bonne */
     OGRErr      SetBonne( double dfStdP1, double dfCentralMeridian,
                           double dfFalseEasting, double dfFalseNorthing );

     /** Cylindrical Equal Area */
     OGRErr      SetCEA( double dfStdP1, double dfCentralMeridian,
                         double dfFalseEasting, double dfFalseNorthing );

     /** Cassini-Soldner */
     OGRErr      SetCS( double dfCenterLat, double dfCenterLong,
                        double dfFalseEasting, double dfFalseNorthing );

     /** Equidistant Conic */
     OGRErr      SetEC( double dfStdP1, double dfStdP2,
                        double dfCenterLat, double dfCenterLong,
                        double dfFalseEasting, double dfFalseNorthing );

     /** Eckert I-VI */
     OGRErr      SetEckert( int nVariation, double dfCentralMeridian,
                            double dfFalseEasting, double dfFalseNorthing );

     OGRErr      SetEckertIV( double dfCentralMeridian,
                              double dfFalseEasting, double dfFalseNorthing );

     OGRErr      SetEckertVI( double dfCentralMeridian,
                              double dfFalseEasting, double dfFalseNorthing );

     /** Equirectangular */
     OGRErr      SetEquirectangular(double dfCenterLat, double dfCenterLong,
                             double dfFalseEasting, double dfFalseNorthing );

     /** Geostationary Satellite */
     OGRErr      SetGEOS( double dfCentralMeridian, double dfSatelliteHeight,
                          double dfFalseEasting, double dfFalseNorthing );

     /** Goode Homolosine */
     OGRErr      SetGH( double dfCentralMeridian,
                        double dfFalseEasting, double dfFalseNorthing );

     /** Gall Stereograpic */
     OGRErr      SetGS( double dfCentralMeridian,
                        double dfFalseEasting, double dfFalseNorthing );

     /** Gnomonic */
     OGRErr      SetGnomonic(double dfCenterLat, double dfCenterLong,
                             double dfFalseEasting, double dfFalseNorthing );

     OGRErr      SetHOM( double dfCenterLat, double dfCenterLong,
                         double dfAzimuth, double dfRectToSkew,
                         double dfScale,
                         double dfFalseEasting, double dfFalseNorthing );

     OGRErr      SetHOM2PNO( double dfCenterLat,
                             double dfLat1, double dfLong1,
                             double dfLat2, double dfLong2,
                             double dfScale,
                             double dfFalseEasting, double dfFalseNorthing );

     /** Krovak Oblique Conic Conformal */
     OGRErr      SetKrovak( double dfCenterLat, double dfCenterLong,
                            double dfAzimuth, double dfPseudoStdParallelLat,
                            double dfScale,
                            double dfFalseEasting, double dfFalseNorthing );

     /** Lambert Azimuthal Equal-Area */
     OGRErr      SetLAEA( double dfCenterLat, double dfCenterLong,
                          double dfFalseEasting, double dfFalseNorthing );

     /** Lambert Conformal Conic */
     OGRErr      SetLCC( double dfStdP1, double dfStdP2,
                         double dfCenterLat, double dfCenterLong,
                         double dfFalseEasting, double dfFalseNorthing );

     /** Lambert Conformal Conic 1SP */
     OGRErr      SetLCC1SP( double dfCenterLat, double dfCenterLong,
                            double dfScale,
                            double dfFalseEasting, double dfFalseNorthing );

     /** Lambert Conformal Conic (Belgium) */
     OGRErr      SetLCCB( double dfStdP1, double dfStdP2,
                          double dfCenterLat, double dfCenterLong,
                          double dfFalseEasting, double dfFalseNorthing );

     /** Miller Cylindrical */
     OGRErr      SetMC( double dfCenterLat, double dfCenterLong,
                        double dfFalseEasting, double dfFalseNorthing );

     /** Mercator */
     OGRErr      SetMercator( double dfCenterLat, double dfCenterLong,
                              double dfScale,
                              double dfFalseEasting, double dfFalseNorthing );

     OGRErr      SetMercator2SP( double dfStdP1,
                                 double dfCenterLat, double dfCenterLong,
                                 double dfFalseEasting, double dfFalseNorthing );

     /** Mollweide */
     OGRErr      SetMollweide( double dfCentralMeridian,
                               double dfFalseEasting, double dfFalseNorthing );

     /** New Zealand Map Grid */
     OGRErr      SetNZMG( double dfCenterLat, double dfCenterLong,
                          double dfFalseEasting, double dfFalseNorthing );

     /** Oblique Stereographic */
     OGRErr      SetOS( double dfOriginLat, double dfCMeridian,
                        double dfScale,
                        double dfFalseEasting,double dfFalseNorthing);

     /** Orthographic */
     OGRErr      SetOrthographic( double dfCenterLat, double dfCenterLong,
                                  double dfFalseEasting,double dfFalseNorthing);

     /** Polyconic */
     OGRErr      SetPolyconic( double dfCenterLat, double dfCenterLong,
                               double dfFalseEasting, double dfFalseNorthing );

     /** Polar Stereographic */
     OGRErr      SetPS( double dfCenterLat, double dfCenterLong,
                        double dfScale,
                        double dfFalseEasting, double dfFalseNorthing);

     /** Robinson */
     OGRErr      SetRobinson( double dfCenterLong,
                              double dfFalseEasting, double dfFalseNorthing );

     /** Sinusoidal */
     OGRErr      SetSinusoidal( double dfCenterLong,
                                double dfFalseEasting, double dfFalseNorthing );

     /** Stereographic */
     OGRErr      SetStereographic( double dfCenterLat, double dfCenterLong,
                                   double dfScale,
                                  double dfFalseEasting,double dfFalseNorthing);

     /** Swiss Oblique Cylindrical */
     OGRErr      SetSOC( double dfLatitudeOfOrigin, double dfCentralMeridian,
                         double dfFalseEasting, double dfFalseNorthing );

     /** Transverse Mercator */
     OGRErr      SetTM( double dfCenterLat, double dfCenterLong,
                        double dfScale,
                        double dfFalseEasting, double dfFalseNorthing );

     /** Transverse Mercator variants. */
     OGRErr      SetTMVariant( const char *pszVariantName,
                               double dfCenterLat, double dfCenterLong,
                               double dfScale,
                               double dfFalseEasting, double dfFalseNorthing );

     /** Tunesia Mining Grid  */
     OGRErr      SetTMG( double dfCenterLat, double dfCenterLong,
                         double dfFalseEasting, double dfFalseNorthing );

     /** Transverse Mercator (South Oriented) */
     OGRErr      SetTMSO( double dfCenterLat, double dfCenterLong,
                          double dfScale,
                          double dfFalseEasting, double dfFalseNorthing );

     /** Two Point Equidistant */
     OGRErr      SetTPED( double dfLat1, double dfLong1,
                          double dfLat2, double dfLong2,
                          double dfFalseEasting, double dfFalseNorthing );

     /** VanDerGrinten */
     OGRErr      SetVDG( double dfCenterLong,
                         double dfFalseEasting, double dfFalseNorthing );

     /** Universal Transverse Mercator */
     OGRErr      SetUTM( int nZone, int bNorth = TRUE );
     int         GetUTMZone( int *pbNorth = NULL ) const;

     /** State Plane */
     OGRErr      SetStatePlane( int nZone, int bNAD83 = TRUE,
                                const char *pszOverrideUnitName = NULL,
                                double dfOverrideUnit = 0.0 );

The datums supported is not really listable as datum support is mostly
parametric.  That is if you want datum shifts you need to provide the
TOWGS84[] parameters you want to use.  There are a few special "builtin"
cases, including special handling of NAD27.

Best regards,
-- 
---------------------------------------+--------------------------------------
I set the clouds in motion - turn up   | Frank Warmerdam, warmerdam at pobox.com
light and sound - activate the windows | http://pobox.com/~warmerdam
and watch the world go round - Rush    | President OSGeo, http://osgeo.org



More information about the gdal-dev mailing list