<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<p>Michael,</p>
<p>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
(<a class="moz-txt-link-freetext" href="https://www.iogp.org/wp-content/uploads/2019/09/373-07-02.pdf">https://www.iogp.org/wp-content/uploads/2019/09/373-07-02.pdf</a>),
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
<a class="moz-txt-link-freetext" href="https://github.com/geographiclib/geographiclib/blob/main/src/CassiniSoldner.cpp#L34">https://github.com/geographiclib/geographiclib/blob/main/src/CassiniSoldner.cpp#L34</a>
are totally different looking, using geodesics computation, and I
presume implement Charles' remark in
<a class="moz-txt-link-freetext" href="https://arxiv.org/pdf/1109.4448">https://arxiv.org/pdf/1109.4448</a> "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</p>
<p>Even</p>
<div class="moz-cite-prefix">Le 23/01/2026 à 03:19, Michael Sumner
via PROJ a écrit :<br>
</div>
<blockquote type="cite"
cite="mid:CAAcGz9_HJoCa20LJF+RfA=jy4CS2fHV1iW1g1buD+2rEXnYMWA@mail.gmail.com">
<div dir="ltr">
<div>I'm having trouble with Cassini-Soldner: </div>
<div><br>
</div>
<div># Good point - agreeable coords<br>
echo "-6 -71" | proj +proj=cass +R=6378137 # spherical
-217097.18 -7914445.72<br>
echo "-6 -71" | proj +proj=cass +ellps=WGS84 #
ellipsoidal -217749.76 -7891343.23<br>
<br>
# Bad point - ellipsoidal diverges<br>
echo "149 45" | proj +proj=cass +R=6378137 # spherical:
2377511.89 14538559.49<br>
echo "149 45" | proj +proj=cass +ellps=WGS84 #
ellipsoidal: -2738664.72 28023005.14 (WRONG)</div>
<div><br>
</div>
<div>That second coordinate seems wildly wrong, I've compared
with GeographicLib which shows </div>
<div><br>
</div>
<div>lon,lat,x,y<br>
-6.000000,-71.000000,-217749.757184,-7891343.215151<br>
149.000000,45.000000,2381489.299010,14528505.93346</div>
<div><br>
</div>
<div>I've laid out a longer description exploring this (and
includes the C++ wrapper for GeographicLib): </div>
<div><br>
</div>
<div><a href="https://github.com/mdsumner/projcassini"
moz-do-not-send="true" class="moz-txt-link-freetext">https://github.com/mdsumner/projcassini</a></div>
<div><br>
</div>
<div>I hope that's enough to show the problem, I found this very
confusing but the output of GeographicLib makes me more
confident. </div>
<div><br>
</div>
<div>Cheers, Mike</div>
<div><br>
</div>
<span class="gmail_signature_prefix">-- </span><br>
<div dir="ltr" class="gmail_signature"
data-smartmail="gmail_signature">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">Michael Sumner</div>
<div dir="ltr">Research Software Engineer<br>
Australian Antarctic Division<br>
Hobart, Australia</div>
<div dir="ltr">0438489030<br>
e-mail: <a href="mailto:mdsumner@gmail.com"
target="_blank" moz-do-not-send="true"
class="moz-txt-link-freetext">mdsumner@gmail.com</a></div>
</div>
</div>
</div>
</div>
<br>
<fieldset class="moz-mime-attachment-header"></fieldset>
<pre wrap="" class="moz-quote-pre">_______________________________________________
PROJ mailing list
<a class="moz-txt-link-abbreviated" href="mailto:PROJ@lists.osgeo.org">PROJ@lists.osgeo.org</a>
<a class="moz-txt-link-freetext" href="https://lists.osgeo.org/mailman/listinfo/proj">https://lists.osgeo.org/mailman/listinfo/proj</a>
</pre>
</blockquote>
<pre class="moz-signature" cols="72">--
<a class="moz-txt-link-freetext" href="http://www.spatialys.com">http://www.spatialys.com</a>
My software is free, but my time generally not.</pre>
</body>
</html>