<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>Nigel,<br>
    </p>
    <div class="moz-cite-prefix">Le 11/10/2024 à 12:27, Nigel Stewart
      via PROJ a écrit :<br>
    </div>
    <blockquote type="cite"
cite="mid:CAKhDM9N=hB21ySkMqawG5uZu062gQ97LixtzL7TnFAAQyMAUug@mail.gmail.com">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <div dir="ltr">> First of all I think you are being way too
        unrealistic about what you can use ChatGPT for. 
        <div>>If you'd tried the command it's suggested to you, you
          would know that it doesn't work.</div>
        <div>> It has given you an ill-formed CRS, as well as
          suggesting you use deprecated syntax.<br>
          <br>
        </div>
        <div>It didn't smell good, I must admit.<br>
           <br>
          > It would be helpful if you can be more explicit about
          what you are trying to do. </div>
        <div>> What EPSG-codes are you trying to get a transformation
          between?<br>
          <br>
          In a nutshell:<br>
          <br>
          # to GDA94 / MGA zone 56<br>
          <br>
        </div>
        <div>$ echo "0 0 0" | cs2cs +proj=tmerc +lat_0=-34.0
          +lon_0=150.0 +k=1 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs
          +type=crs +to 'EPSG:28356'<br>
          222908.70       6233785.28 0.00<br>
          <br>
          # to GDA2020 / MGA zone 56<br>
          <br>
          $ echo "0 0 0" | cs2cs +proj=tmerc +lat_0=-34.0 +lon_0=150.0
          +k=1 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs +type=crs
          +to 'EPSG:7856'<br>
          222908.70       6233785.28 0.00<br>
          <br>
          # to GDA2020 / MGA zone 56<br>
          <br>
          $ echo "222908.70       6233785.28 0.00" | cs2cs 'EPSG:28356'
          +to 'EPSG:7856'<br>
          222909.17       6233786.71 0.00<br>
          <br>
          Our expectation is that GDA2020 is within a meter or two of
          GDA94 due to the tectonic drift of the Australian plate
          towards the north east.<br>
          Our concern is that from these custom transverse mercator
          projections, this difference isn't reflected.<br>
          We can see the Helmert transformation being applied in the
          third case, but not in the first two.<br>
        </div>
      </div>
    </blockquote>
    <p>This is fully expected.</p>
    <p>Basically GDA94 ~= WGS84 at epoch 1994.0 and GDA2020 ~= WGS84 at
      epoch 2020.0</p>
    <p>So when you ask to transform between GDA94 and WGS84 a null datum
      transformation is a perfectly valid answer since they matched in
      1994.0. As well as a null one between GDA2020 and WGS84 since they
      matched in 2020.0</p>
    <p>There are also alternate transformations available in the EPSG
      dataset where they consider that when transforming between GDA94
      and WGS84, then the user could mean they assume this WGS84 to be a
      recent one, so you actually want to use the transformation between
      GDA94 and GDA2020<br>
    </p>
    <p><br>
    </p>
    <p>$ projinfo -s "+proj=tmerc +lat_0=-34.0 +lon_0=150.0 +k=1 +x_0=0
      +y_0=0 +datum=WGS84 +type=crs" -t EPSG:28356 --spatial-test
      intersects -o PROJ<br>
      Candidate operations found: 3<br>
      -------------------------------------<br>
      Operation No. 1:<br>
      <br>
      unknown id, Inverse of unknown + axis order change (2D) + Inverse
      of GDA94 to WGS 84 (1) + Map Grid of Australia zone 56, 3 m,
      Australia including Lord Howe Island, Macquarie Island, Ashmore
      and Cartier Islands, Christmas Island, Cocos (Keeling) Islands,
      Norfolk Island. All onshore and offshore.<br>
      <br>
      PROJ string:<br>
      +proj=pipeline<br>
        +step +inv +proj=tmerc +lat_0=-34 +lon_0=150 +k=1 +x_0=0 +y_0=0
      +ellps=WGS84<br>
        +step +proj=utm +zone=56 +south +ellps=GRS80<br>
      <br>
      -------------------------------------<br>
      Operation No. 2:<br>
      <br>
      unknown id, Inverse of unknown + axis order change (2D) + Inverse
      of GDA94 to WGS 84 (2) + Map Grid of Australia zone 56, 3 m,
      Australia including Lord Howe Island, Macquarie Island, Ashmore
      and Cartier Islands, Christmas Island, Cocos (Keeling) Islands,
      Norfolk Island. All onshore and offshore.<br>
      <br>
      PROJ string:<br>
      +proj=pipeline<br>
        +step +inv +proj=tmerc +lat_0=-34 +lon_0=150 +k=1 +x_0=0 +y_0=0
      +ellps=WGS84<br>
        +step +proj=push +v_3<br>
        +step +proj=cart +ellps=WGS84<br>
        +step +inv +proj=helmert +x=0.06155 +y=-0.01087 +z=-0.04019
      +rx=-0.0394924<br>
              +ry=-0.0327221 +rz=-0.0328979 +s=-0.009994
      +convention=coordinate_frame<br>
        +step +inv +proj=cart +ellps=GRS80<br>
        +step +proj=pop +v_3<br>
        +step +proj=utm +zone=56 +south +ellps=GRS80<br>
      <br>
      -------------------------------------<br>
      Operation No. 3:<br>
      <br>
      unknown id, Inverse of unknown + axis order change (2D) + Inverse
      of GDA94 to WGS 84 (3) + Map Grid of Australia zone 56, 3 m,
      Australia - Australian Capital Territory; New South Wales;
      Northern Territory; Queensland; South Australia; Tasmania; Western
      Australia; Victoria., at least one grid missing<br>
      <br>
      PROJ string:<br>
      +proj=pipeline<br>
        +step +inv +proj=tmerc +lat_0=-34 +lon_0=150 +k=1 +x_0=0 +y_0=0
      +ellps=WGS84<br>
        +step +inv +proj=hgridshift<br>
              +grids=au_icsm_GDA94_GDA2020_conformal_and_distortion.tif<br>
        +step +proj=utm +zone=56 +south +ellps=GRS80<br>
      <br>
      Grid au_icsm_GDA94_GDA2020_conformal_and_distortion.tif needed but
      not found on the system. Can be obtained at
      <a class="moz-txt-link-freetext" href="https://cdn.proj.org/au_icsm_GDA94_GDA2020_conformal_and_distortion.tif">https://cdn.proj.org/au_icsm_GDA94_GDA2020_conformal_and_distortion.tif</a><br>
    </p>
    <p><br>
    </p>
    <p>You'll notice all those 3 transformations are advertized to have
      a 3 metre accuracy. The first one (note that the heuristics to
      determine the default one has changed among PROJ versions), which
      is the one used by default by cs2cs, uses the WGS84 = GDA94
      hypothesis. The second and third ones us WGS84 = GDA2020</p>
    <p>If you want to use the second one, you need to pass its pipeline
      to cct:<br>
    </p>
    <p>$ echo 0 0 0 | cct +proj=pipeline +step +inv +proj=tmerc
      +lat_0=-34 +lon_0=150 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +step
      +proj=push +v_3 +step +proj=cart +ellps=WGS84 +step +inv
      +proj=helmert +x=0.06155 +y=-0.01087 +z=-0.04019 +rx=-0.0394924
      +ry=-0.0327221 +rz=-0.0328979 +s=-0.009994
      +convention=coordinate_frame +step +inv +proj=cart +ellps=GRS80
      +step +proj=pop +v_3 +step +proj=utm +zone=56 +south +ellps=GRS80<br>
        222908.2299   6233783.8497        0.0000           inf<br>
      <br>
    </p>
    <p>Rule of thumb: as soon as one of your CRS is WGS84 related, you
      will generally go into troubles if you are interested in geodetic
      grade transformations.</p>
    <p>Even<br>
    </p>
    <p><span style="white-space: pre-wrap">
</span></p>
    <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.
Mostly a fool, sometimes acting like a professional (or vice versa)</pre>
  </body>
</html>