[Proj] Creating a Custom EPSG Entry

Frank Warmerdam warmerdam at pobox.com
Tue Sep 5 21:38:25 EDT 2006

Ryan Ollerenshaw wrote:
> I am working with some Mars datasets that i want to display using 
> MapServer so of course i need to use a projection specified in the proj4 
> EPSG file, but i am not totally sure how to create my own custom 
> projection.  Below are the projection parameters for the data that i am 
> using.  I think that the correct EPSG entry would be close to:
> *+proj*=???? +a=3396190 +b=3396190
> any help would be great.
>    ProjectionName         = SimpleCylindrical
>    CenterLongitude        = 354.60611161722
>    TargetName             = Mars
>    EquatorialRadius       = 3396190.0 <meters>
>    PolarRadius            = 3376200.0 <meters>
>    LatitudeType           = Planetocentric
>    LongitudeDirection     = PositiveEast
>    LongitudeDomain        = 360
>    MinimumLatitude        = -2.0994573340362
>    MaximumLatitude        = -1.81536402836
>    MinimumLongitude       = 354.56314275078
>    MaximumLongitude       = 354.64908048367
>    UpperLeftCornerX       = -2549.6954683585 <meters>
>    UpperLeftCornerY       = -107601.70179235 <meters>
>    PixelResolution        = 4.5530276220687 <meters/pixel>
>    Scale                  = 13018.743228352 <pixels/degree>
>    TrueScaleLatitude      = 0.0
>    LineProjectionOffset   = 23633.5
>    SampleProjectionOffset = -559.5


Based on some logic I have seen in my ISIS2 format driver, it would
seem that "SimpleCylindrical" in this context is the same as
Equidistant Cylindrical (aka Equiretangular or Plate Caree).

The corresponding projection string would be:


It seems to be using a dataset specific central meridian of 354.6, so
we can add +lon_0=354.60611161722.  The indication is that the latitude
of true scale is zero, so I think we can leave this defaulted, or be
explicit and say +lat_ts=0.  I don't see any obvious setting for false
easting and northing, so perhaps the whole thing will be:

  +proj=eqc +lon_0=354.60611161722 +lat_ts=0 +a=3396190 +b=3376200

If we try:
proj -I +proj=eqc +lon_0=354.60611161722 +lat_ts=0 +a=3396190 +b=3376190 -f 
-2549.695468358 -107601.7017923

We get:

-5.4369032875   -1.8153057930

We get sort of close to the expected value (if you add 360 to the X),
but it is still a bit off, at least in Y, which I think is because PROJ
only supports a spherical equidistant cylindrical projection.

Hopefully this is somewhat helpful though.

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 Proj mailing list