[Proj] The world of ECEF aka geocentric coordinates
Gerald I. Evenden
geraldi.evenden at gmail.com
Fri Jan 30 14:30:28 EST 2009
When I was updating the code for the 'geodesic' system I ran into the
geocentric to geodesic conversion software embedded in the 3D version of the
Vincenty FORTRAN code. Although not a part of the geodesic program I figured
it may be of interest later so I translated in an included it in the geodesic
distribution library. Knowing the the procedures also had to be part of
Warmerdam's proj-4 I quickly checked there and decided the stay with the NGS
version. At that time I miss the fact of presence of two other versions.
Later, while browsing Wikipedia I also found another non-iterative version.
When Karney recently brought up the issue I went to his library site and find
To summarize: I now have 6, count them, 6 versions of the geocentric to
1. An iterative version that is part of NGS's geodesic software
Frank Warmerdam's three methods in pj_Convert_Geocentric_To_Geodetic
of file geocent.c:
2. "non-iterative by Ralph Toms"
or iterative methods
3. "Wenzel iterative"
4. "U. of Hannover" method
5. Karney's cpp routine.
6. Wikipedia's noniterative at
No code, just math.
In terms of the iteration, the NGS version loop is short---only 4 lines and
works with usually 3 or less iterations with excellent precision.
tglax = tgla;
tgla = P1->z / (p - ae2 / sqrt(ell->one_es * tgla * tgla + 1.));
} while ((fabs(tgla - tglax) > TOL) && --count);
Karney's routine is limited to WGS84 as is all the software in his library.
10 lashes with a wet noodle, Karney.
Some of these methods may be equivalent but I have not dug that far into the
details of the morass. I am also sure that there must be more versions out
Lastly, the use of the term ECEF suggested by Wikipedia for geocentric seems
appropriate. Also, where are our ENU procedures? Tsk, tsk.
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