<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:st1="urn:schemas-microsoft-com:office:smarttags" xmlns="http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=Content-Type content="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 11 (filtered medium)">
<!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]--><o:SmartTagType
 namespaceuri="urn:schemas-microsoft-com:office:smarttags" name="City"/>
<o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
 name="country-region"/>
<o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
 name="place"/>
<o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
 name="PersonName"/>
<!--[if !mso]>
<style>
st1\:*{behavior:url(#default#ieooui) }
</style>
<![endif]-->
<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman";
        color:black;}
h1
        {margin-top:6.0pt;
        margin-right:0in;
        margin-bottom:6.0pt;
        margin-left:.5in;
        text-indent:-.25in;
        page-break-after:avoid;
        mso-list:l0 level1 lfo2;
        font-size:12.0pt;
        font-family:Arial;
        color:black;}
h2
        {margin-top:6.0pt;
        margin-right:0in;
        margin-bottom:6.0pt;
        margin-left:.75in;
        text-indent:-.25in;
        page-break-after:avoid;
        mso-list:l1 level1 lfo4;
        font-size:14.0pt;
        font-family:Arial;
        color:black;
        font-style:italic;}
p.MsoBodyText2, li.MsoBodyText2, div.MsoBodyText2
        {margin-top:0in;
        margin-right:0in;
        margin-bottom:6.0pt;
        margin-left:0in;
        line-height:200%;
        font-size:12.0pt;
        font-family:"Times New Roman";
        color:black;}
a:link, span.MsoHyperlink
        {color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {color:purple;
        text-decoration:underline;}
pre
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";
        color:black;}
span.EmailStyle19
        {mso-style-type:personal-reply;
        font-family:Arial;
        color:navy;}
@page Section1
        {size:8.5in 11.0in;
        margin:1.0in 1.25in 1.0in 1.25in;}
div.Section1
        {page:Section1;}
 /* List Definitions */
 @list l0
        {mso-list-id:1302539220;
        mso-list-type:hybrid;
        mso-list-template-ids:1400028960 1556136038 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l0:level1
        {mso-level-style-link:"Heading 1";
        mso-level-tab-stop:.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1
        {mso-list-id:2076705572;
        mso-list-type:hybrid;
        mso-list-template-ids:2072013344 127926764 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l1:level1
        {mso-level-number-format:alpha-lower;
        mso-level-style-link:"Heading 2";
        mso-level-tab-stop:.75in;
        mso-level-number-position:left;
        margin-left:.75in;
        text-indent:-.25in;}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
-->
</style>
<!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext="edit">
  <o:idmap v:ext="edit" data="1" />
 </o:shapelayout></xml><![endif]-->
</head>

<body bgcolor=white lang=EN-US link=blue vlink=purple>

<div class=Section1>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>Jan,<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>Not derived from *projected* coordinates (i.e.
3D =&gt; 2D) at all.&nbsp; The Ordnance Survey have taken you on a tour from
one 3D space (lat/lon/height) to another 3D space (what we&#8217;re calling
geocentric Cartesian coordinates X/Y/Z, also known as ECEF) and back to the
original 3D space (lat/lon/height, but referenced to a different
ellipsoid).&nbsp; So you&#8217;ve never left three dimensions even though the
Ordnance Survey suggested that you toss datum B ellipsoid height.<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>You&#8217;ve previously asked about an
ellipsoid switch.&nbsp; If nothing happens in the geocentric Cartesian domain
(ECEF is so much easier to write!), that is, no translations at the geocenter
in X, Y or Z and no rotations about any of these axes and no scale change, then
you&#8217;ve *<b><span style='font-weight:bold'>just</span></b>* switched
ellipsoids.&nbsp; Nevertheless, the resulting change in ellipsoid height is an
important clue that you&#8217;re not *<b><span style='font-weight:bold'>on</span></b>*
the new ellipsoid.&nbsp; Once the ellipsoid height is tossed, the point at that
lat/lon on the new ellipsoid with zero height is a different point than that
you started with.<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>Noel Zinn<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'><o:p>&nbsp;</o:p></span></font></p>

<div>

<div class=MsoNormal align=center style='text-align:center'><font size=3
color=black face="Times New Roman"><span style='font-size:12.0pt;color:windowtext'>

<hr size=2 width="100%" align=center tabindex=-1>

</span></font></div>

<p class=MsoNormal><b><font size=2 color=black face=Tahoma><span
style='font-size:10.0pt;font-family:Tahoma;color:windowtext;font-weight:bold'>From:</span></font></b><font
size=2 color=black face=Tahoma><span style='font-size:10.0pt;font-family:Tahoma;
color:windowtext'> proj-bounces@lists.maptools.org
[mailto:proj-bounces@lists.maptools.org] <b><span style='font-weight:bold'>On
Behalf Of </span></b>Jan Hartmann<br>
<b><span style='font-weight:bold'>Sent:</span></b> Friday, February 06, 2009
8:19 AM<br>
<b><span style='font-weight:bold'>To:</span></b> <st1:PersonName w:st="on">PROJ.4
 and general Projections Discussions</st1:PersonName><br>
<b><span style='font-weight:bold'>Subject:</span></b> Re: [Proj] Lat-Lon values
under different ellipsoides</span></font><font color=black><span
style='color:windowtext'><o:p></o:p></span></font></p>

</div>

<p class=MsoNormal><font size=3 color=black face="Times New Roman"><span
style='font-size:12.0pt'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=3 color=black face="Times New Roman"><span
style='font-size:12.0pt'>As an addition, look how the British Ordnance survey
solves the problem of converting Lat-Lon values from one ellipse to another:<br>
<br>
&quot; To summarise: for a simple datum change of latitude and longitude
coordinates from datum A to datum B, first convert to Cartesian coordinates
(formulae in annexe B) taking all ellipsoid heights as zero and using the
ellipsoid parameters of datum A; then apply a Helmert transformation from datum
A to datum B using equation (3); finally convert back to latitude and longitude
using the ellipsoid parameters of datum B (formulae in annexe C), discarding
the datum B ellipsoid height. &quot;<br>
<br>
This would mean that different lat-lon values for different ellipsoids are
*derived* from projected coordinates, not the other way round, as I thought. I
still don't get the relationship between those computed lat-lon values and the
astronomical ones though.<br>
<br>
Jan<br>
<br>
Frank Warmerdam wrote: <o:p></o:p></span></font></p>

<pre wrap=""><font size=2 color=black face="Courier New"><span
style='font-size:10.0pt'>Jan Hartmann wrote:<o:p></o:p></span></font></pre><pre><font
size=2 color=black face="Courier New"><span style='font-size:10.0pt'>&nbsp; <o:p></o:p></span></font></pre>

<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt' type=cite><pre wrap=""><font
size=2 color=black face="Courier New"><span style='font-size:10.0pt'>Hi,<o:p></o:p></span></font></pre><pre><font
size=2 color=black face="Courier New"><span style='font-size:10.0pt'><o:p>&nbsp;</o:p></span></font></pre><pre><font
size=2 color=black face="Courier New"><span style='font-size:10.0pt'>This is something I have long been banging my head against. I think it <o:p></o:p></span></font></pre><pre><font
size=2 color=black face="Courier New"><span style='font-size:10.0pt'>is a bug, but I am not sure. If I take a lat-lon value, computed on a <o:p></o:p></span></font></pre><pre><font
size=2 color=black face="Courier New"><span style='font-size:10.0pt'>particular ellipsoid, and convert it to the lat-lon value on another <o:p></o:p></span></font></pre><pre><font
size=2 color=black face="Courier New"><span style='font-size:10.0pt'>ellipsoid, I should get a different value, right? (e.g. cs2cs <o:p></o:p></span></font></pre><pre><font
size=2 color=black face="Courier New"><span style='font-size:10.0pt'>+proj=longlat +ellps=bessel +to +proj=longlat +ellps=WGS84). PROJ4 <o:p></o:p></span></font></pre><pre><font
size=2 color=black face="Courier New"><span style='font-size:10.0pt'>always gives the same value, but I have an extensive list of coordinates <o:p></o:p></span></font></pre><pre><font
size=2 color=black face="Courier New"><span style='font-size:10.0pt'>of church towers in the <st1:country-region
w:st="on"><st1:place w:st="on">Netherlands</st1:place></st1:country-region> with their lat-lon values in 1850, <o:p></o:p></span></font></pre><pre><font
size=2 color=black face="Courier New"><span style='font-size:10.0pt'>based an a slightly smaller ellipsoid than we use nowadays, and the <o:p></o:p></span></font></pre><pre><font
size=2 color=black face="Courier New"><span style='font-size:10.0pt'>lat-lon of the same towers derived from our modern RD-system, based on <o:p></o:p></span></font></pre><pre><font
size=2 color=black face="Courier New"><span style='font-size:10.0pt'>the Bessel-ellipsoid, and without the WGS84 correction. There is a <o:p></o:p></span></font></pre><pre><font
size=2 color=black face="Courier New"><span style='font-size:10.0pt'>systematic difference of about 50 meters. If I do the same computation <o:p></o:p></span></font></pre><pre><font
size=2 color=black face="Courier New"><span style='font-size:10.0pt'>with the projected coordinates, I get the correct answer. Moreover, in <o:p></o:p></span></font></pre><pre><font
size=2 color=black face="Courier New"><span style='font-size:10.0pt'>that case the transformation changes when I change the <o:p></o:p></span></font></pre><pre><font
size=2 color=black face="Courier New"><span style='font-size:10.0pt'>ellipse-parameter, something that does not happen with lat-lon coordinates.<o:p></o:p></span></font></pre><pre><font
size=2 color=black face="Courier New"><span style='font-size:10.0pt'><o:p>&nbsp;</o:p></span></font></pre><pre><font
size=2 color=black face="Courier New"><span style='font-size:10.0pt'>So, is this a bug in PROJ? If so, can someone with geodetic experience <o:p></o:p></span></font></pre><pre><font
size=2 color=black face="Courier New"><span style='font-size:10.0pt'>here explain to me how people can get different lat-lon values for the <o:p></o:p></span></font></pre><pre><font
size=2 color=black face="Courier New"><span style='font-size:10.0pt'>same point, based on astronomical measurements?<o:p></o:p></span></font></pre><pre><font
size=2 color=black face="Courier New"><span style='font-size:10.0pt'>&nbsp;&nbsp;&nbsp; <o:p></o:p></span></font></pre></blockquote>

<pre wrap=""><font size=2 color=black face="Courier New"><span
style='font-size:10.0pt'><o:p>&nbsp;</o:p></span></font></pre><pre><font
size=2 color=black face="Courier New"><span style='font-size:10.0pt'>Jan,<o:p></o:p></span></font></pre><pre><font
size=2 color=black face="Courier New"><span style='font-size:10.0pt'><o:p>&nbsp;</o:p></span></font></pre><pre><font
size=2 color=black face="Courier New"><span style='font-size:10.0pt'>As of PROJ 4.6.0, the policy is to not attempt any conversion of lat/long<o:p></o:p></span></font></pre><pre><font
size=2 color=black face="Courier New"><span style='font-size:10.0pt'>values between coordinate systems where only an ellipsoid is given.&nbsp; So, to<o:p></o:p></span></font></pre><pre><font
size=2 color=black face="Courier New"><span style='font-size:10.0pt'>get a datum shift it is now necessary to provide some sort of datum<o:p></o:p></span></font></pre><pre><font
size=2 color=black face="Courier New"><span style='font-size:10.0pt'>shift information for both the source and destination coordinate systems.<o:p></o:p></span></font></pre><pre><font
size=2 color=black face="Courier New"><span style='font-size:10.0pt'><o:p>&nbsp;</o:p></span></font></pre><pre><font
size=2 color=black face="Courier New"><span style='font-size:10.0pt'>This is a deliberate change of policy to avoid lots of other complaints in<o:p></o:p></span></font></pre><pre><font
size=2 color=black face="Courier New"><span style='font-size:10.0pt'>the past.<o:p></o:p></span></font></pre><pre><font
size=2 color=black face="Courier New"><span style='font-size:10.0pt'><o:p>&nbsp;</o:p></span></font></pre><pre><font
size=2 color=black face="Courier New"><span style='font-size:10.0pt'>I would suggest using something appropriate like +datum=<st1:City
w:st="on"><st1:place w:st="on">potsdam</st1:place></st1:City> for your<o:p></o:p></span></font></pre><pre><font
size=2 color=black face="Courier New"><span style='font-size:10.0pt'>Bessel data, and +datum=WGS84 instead of +ellps=WGS84.<o:p></o:p></span></font></pre><pre><font
size=2 color=black face="Courier New"><span style='font-size:10.0pt'><o:p>&nbsp;</o:p></span></font></pre><pre><font
size=2 color=black face="Courier New"><span style='font-size:10.0pt'>Best regards,<o:p></o:p></span></font></pre><pre><font
size=2 color=black face="Courier New"><span style='font-size:10.0pt'>&nbsp; <o:p></o:p></span></font></pre></div>

</body>

</html>