[PROJ] Cassini-Soldner ellipsoid form bug ?
Even Rouault
even.rouault at spatialys.com
Fri Jan 23 06:17:55 PST 2026
Michael,
digging a bit, I see that the formulas that PROJ uses come from Snyder,
which are also the same used in EPSG guidance note 7-2
(https://www.iogp.org/wp-content/uploads/2019/09/373-07-02.pdf), use a
truncated series expansions that must be valid in a (large, but not
global) restricted domain around the projection center (here 0,0), and
diverge beyond. The formulas used by GeographicLib in
https://github.com/geographiclib/geographiclib/blob/main/src/CassiniSoldner.cpp#L34
are totally different looking, using geodesics computation, and I
presume implement Charles' remark in https://arxiv.org/pdf/1109.4448
"Two geodesic projections, the azimuthal equidistant projection and the
Cassini-Soldner projection, are simple to write and their domain of
applicability is not artificially restricted, as would be the case, for
example, if the series expansion for the Cassini-Soldner projection were
used (Snyder, 1987, §13)". And looking into Snyder's Map Projections,
"For the ellipsoidal form, a set of series approximations is given for
use in a zone extending 3° to 4° of longitude from the central
meridian". So given that's the ones used by PROJ, no wonder that at 149°
you get garbage. I suppose someone could port GeographicLib's formulas
to PROJ (interestingly the inverse method using the geodesics is a
2-liner and doesn't require iterative solving like done in PROJ),
assuming PROJ's geodesic.c contains all the needed base functions
Even
Le 23/01/2026 à 03:19, Michael Sumner via PROJ a écrit :
> I'm having trouble with Cassini-Soldner:
>
> # Good point - agreeable coords
> echo "-6 -71" | proj +proj=cass +R=6378137 # spherical
> -217097.18 -7914445.72
> echo "-6 -71" | proj +proj=cass +ellps=WGS84 # ellipsoidal
> -217749.76 -7891343.23
>
> # Bad point - ellipsoidal diverges
> echo "149 45" | proj +proj=cass +R=6378137 # spherical:
> 2377511.89 14538559.49
> echo "149 45" | proj +proj=cass +ellps=WGS84 # ellipsoidal:
> -2738664.72 28023005.14 (WRONG)
>
> That second coordinate seems wildly wrong, I've compared with
> GeographicLib which shows
>
> lon,lat,x,y
> -6.000000,-71.000000,-217749.757184,-7891343.215151
> 149.000000,45.000000,2381489.299010,14528505.93346
>
> I've laid out a longer description exploring this (and includes the
> C++ wrapper for GeographicLib):
>
> https://github.com/mdsumner/projcassini
>
> I hope that's enough to show the problem, I found this very confusing
> but the output of GeographicLib makes me more confident.
>
> Cheers, Mike
>
> --
> Michael Sumner
> Research Software Engineer
> Australian Antarctic Division
> Hobart, Australia
> 0438489030
> e-mail: mdsumner at gmail.com
>
> _______________________________________________
> PROJ mailing list
> PROJ at lists.osgeo.org
> https://lists.osgeo.org/mailman/listinfo/proj
--
http://www.spatialys.com
My software is free, but my time generally not.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/proj/attachments/20260123/9a36a418/attachment.htm>
More information about the PROJ
mailing list