[Proj] Why use pj_inv() and pj_fwd() instead of pj_transform() ?

Gerald I. Evenden geraldi.evenden at gmail.com
Sun Jun 3 10:35:56 EDT 2007

On Sunday 03 June 2007 6:33 am, fabrice martin wrote:
> >Fabrice,
> >
> >pj_transform() is a newer function layered on pj_inv() and pj_fwd().  My
> >intention is that most new applications would use it though there is
> >some performance overhead to going through it instead of calling the
> >pj_inv() and pj_fwd() functions directly.
> Hi Frank,
> Thank you for your answer. And could you tell me what's the rationale
> behind pj_inv() and pj_fwd() not taking into account prime meridians ? It
> could lead some people to prefer to substitute +lon_0 to +pm in coordinate
> systems' definitions, so that pj_inv(), pj_fwd() and pj_transform() give
> the same result !

I will answer that as I am the originator of pj_[inv/fwd].

The principle reason is that a prime meridian can easily be compensated for 
with simple modification of the central meridian (+lon_0).  Proj/libproj 
operations are designed to only take care of the mathematics of the 
projection operation: the conversion between the geographic and Cartesian 

This is also the reason that datum shifts are also *not* part of traditional 
proj/libproj operations.

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