<html><body><div style="font-family: arial, helvetica, sans-serif; font-size: 12pt; color: #000000"><div><br></div><div>Just a follow up,</div><div><br data-mce-bogus="1"></div><div>I've added a sql file to the sql files that build the proj.db sqlite database with these 2 lines:</div><div><br data-mce-bogus="1"></div><div><p style="margin: 0px; font-style: normal; font-variant-caps: normal; font-weight: normal; font-stretch: normal; font-size: 15px; line-height: normal; font-family: Menlo; color: rgba(0, 0, 0, 0.85); background-color: rgb(255, 255, 255);" data-mce-style="margin: 0px; font-style: normal; font-variant-caps: normal; font-weight: normal; font-stretch: normal; font-size: 15px; line-height: normal; font-family: Menlo; color: rgba(0, 0, 0, 0.85); background-color: #ffffff;">-- NTFP+NGF-IGN69 height</p><p style="margin: 0px; font-style: normal; font-variant-caps: normal; font-weight: normal; font-stretch: normal; font-size: 15px; line-height: normal; font-family: Menlo; color: rgba(0, 0, 0, 0.85); background-color: rgb(255, 255, 255);" data-mce-style="margin: 0px; font-style: normal; font-variant-caps: normal; font-weight: normal; font-stretch: normal; font-size: 15px; line-height: normal; font-family: Menlo; color: rgba(0, 0, 0, 0.85); background-color: #ffffff;">INSERT INTO compound_crs VALUES('RDI','NTFP.IGN69','NTF geographiques Paris (gr) + NGF-IGN69 height','','IGNF','NTFP','EPSG','5720',0);</p><p style="margin: 0px; font-style: normal; font-variant-caps: normal; font-weight: normal; font-stretch: normal; font-size: 15px; line-height: normal; font-family: Menlo; color: rgba(0, 0, 0, 0.85); background-color: rgb(255, 255, 255);" data-mce-style="margin: 0px; font-style: normal; font-variant-caps: normal; font-weight: normal; font-stretch: normal; font-size: 15px; line-height: normal; font-family: Menlo; color: rgba(0, 0, 0, 0.85); background-color: #ffffff;">INSERT INTO usage VALUES('RDI','USAGE_COMPOUND_CRS_NTFP.IGN69','compound_crs','RDI','NTFP.IGN69','PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN');</p><p style="margin: 0px; font-style: normal; font-variant-caps: normal; font-weight: normal; font-stretch: normal; font-size: 15px; line-height: normal; font-family: Menlo; color: rgba(0, 0, 0, 0.85); background-color: rgb(255, 255, 255);" data-mce-style="margin: 0px; font-style: normal; font-variant-caps: normal; font-weight: normal; font-stretch: normal; font-size: 15px; line-height: normal; font-family: Menlo; color: rgba(0, 0, 0, 0.85); background-color: #ffffff;"><br></p><p style="margin: 0px; font-style: normal; font-variant-caps: normal; font-weight: normal; font-stretch: normal; font-size: 15px; line-height: normal; font-family: Menlo; color: rgba(0, 0, 0, 0.85); background-color: rgb(255, 255, 255);" data-mce-style="margin: 0px; font-style: normal; font-variant-caps: normal; font-weight: normal; font-stretch: normal; font-size: 15px; line-height: normal; font-family: Menlo; color: rgba(0, 0, 0, 0.85); background-color: #ffffff;">and recompiled the library. It works perfectly.</p><p style="margin: 0px; font-style: normal; font-variant-caps: normal; font-weight: normal; font-stretch: normal; font-size: 15px; line-height: normal; font-family: Menlo; color: rgba(0, 0, 0, 0.85); background-color: rgb(255, 255, 255);" data-mce-style="margin: 0px; font-style: normal; font-variant-caps: normal; font-weight: normal; font-stretch: normal; font-size: 15px; line-height: normal; font-family: Menlo; color: rgba(0, 0, 0, 0.85); background-color: #ffffff;"><br data-mce-bogus="1"></p><p style="margin: 0px; font-style: normal; font-variant-caps: normal; font-weight: normal; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo; color: rgb(0, 0, 0);" data-mce-style="margin: 0px; font-style: normal; font-variant-caps: normal; font-weight: normal; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo; color: #000000;"><span style="font-variant-ligatures: no-common-ligatures;" data-mce-style="font-variant-ligatures: no-common-ligatures;">echo 0<span class="Apple-converted-space">  </span>56.000000 0<span class="Apple-converted-space">  </span>| ./cs2cs<span class="Apple-converted-space">  </span>-f "%.3f" --3d +from IGNF:NTFP +to IGNF:ETRS89LCC           -->          </span><span style="font-variant-ligatures: no-common-ligatures;" data-mce-style="font-variant-ligatures: no-common-ligatures;">3474788.212<span class="Apple-tab-span" style="white-space: pre;" data-mce-style="white-space: pre;"> </span>2655358.229 42.989</span></p><p style="margin: 0px; font-style: normal; font-variant-caps: normal; font-weight: normal; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo; color: rgb(0, 0, 0);" data-mce-style="margin: 0px; font-style: normal; font-variant-caps: normal; font-weight: normal; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo; color: #000000;"><span style="font-variant-ligatures: no-common-ligatures;" data-mce-style="font-variant-ligatures: no-common-ligatures;">  </span></p><p style="margin: 0px; font-style: normal; font-variant-caps: normal; font-weight: normal; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo; color: rgb(0, 0, 0);" data-mce-style="margin: 0px; font-style: normal; font-variant-caps: normal; font-weight: normal; font-stretch: normal; font-size: 11px; line-height: normal; font-family: Menlo; color: #000000;"><span style="font-variant-ligatures: no-common-ligatures;" data-mce-style="font-variant-ligatures: no-common-ligatures;">echo 0<span class="Apple-converted-space">  </span>56.000000 0<span class="Apple-converted-space">  </span>| ./cs2cs<span class="Apple-converted-space">  </span>-f "%.3f" --3d +from RDI:NTFP.IGN69 +to IGNF:ETRS89LC<span style="caret-color: #000000; color: #000000; font-family: Menlo; font-size: 11px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: #ffffff; text-decoration: none; display: inline !important; float: none;" data-mce-style="caret-color: #000000; color: #000000; font-family: Menlo; font-size: 11px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: #ffffff; text-decoration: none; display: inline !important; float: none;"><span class="Apple-converted-space"> </span>      -->          </span></span><span style="font-variant-ligatures: no-common-ligatures;" data-mce-style="font-variant-ligatures: no-common-ligatures;">3474789.997<span class="Apple-tab-span" style="white-space: pre;" data-mce-style="white-space: pre;"> </span>2655359.291 43.644</span></p><p style="margin: 0px; font-style: normal; font-variant-caps: normal; font-weight: normal; font-stretch: normal; font-size: 15px; line-height: normal; font-family: Menlo; color: rgba(0, 0, 0, 0.85); background-color: rgb(255, 255, 255);" data-mce-style="margin: 0px; font-style: normal; font-variant-caps: normal; font-weight: normal; font-stretch: normal; font-size: 15px; line-height: normal; font-family: Menlo; color: rgba(0, 0, 0, 0.85); background-color: #ffffff;"><br></p><p style="margin: 0px; font-style: normal; font-variant-caps: normal; font-weight: normal; font-stretch: normal; font-size: 15px; line-height: normal; font-family: Menlo; color: rgba(0, 0, 0, 0.85); background-color: rgb(255, 255, 255);" data-mce-style="margin: 0px; font-style: normal; font-variant-caps: normal; font-weight: normal; font-stretch: normal; font-size: 15px; line-height: normal; font-family: Menlo; color: rgba(0, 0, 0, 0.85); background-color: #ffffff;"><span style="caret-color: rgba(0, 0, 0, 0.85); color: rgba(0, 0, 0, 0.85); font-family: Menlo; font-size: 15px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: #ffffff; text-decoration: none; display: inline !important; float: none;" data-mce-style="caret-color: rgba(0, 0, 0, 0.85); color: rgba(0, 0, 0, 0.85); font-family: Menlo; font-size: 15px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: #ffffff; text-decoration: none; display: inline !important; float: none;">I will see if someone in the Institute could clarify these codes and update them in a future release of PROJ.</span></p><div style="clear: both;" data-mce-style="clear: both;"><br></div><p style="margin: 0px; font-style: normal; font-variant-caps: normal; font-weight: normal; font-stretch: normal; font-size: 15px; line-height: normal; font-family: Menlo; color: rgba(0, 0, 0, 0.85); background-color: rgb(255, 255, 255);" data-mce-style="margin: 0px; font-style: normal; font-variant-caps: normal; font-weight: normal; font-stretch: normal; font-size: 15px; line-height: normal; font-family: Menlo; color: rgba(0, 0, 0, 0.85); background-color: #ffffff;">Thanks for your help,</p><p style="margin: 0px; font-style: normal; font-variant-caps: normal; font-weight: normal; font-stretch: normal; font-size: 15px; line-height: normal; font-family: Menlo; color: rgba(0, 0, 0, 0.85); background-color: rgb(255, 255, 255);" data-mce-style="margin: 0px; font-style: normal; font-variant-caps: normal; font-weight: normal; font-stretch: normal; font-size: 15px; line-height: normal; font-family: Menlo; color: rgba(0, 0, 0, 0.85); background-color: #ffffff;"><br></p><p style="margin: 0px; font-style: normal; font-variant-caps: normal; font-weight: normal; font-stretch: normal; font-size: 15px; line-height: normal; font-family: Menlo; color: rgba(0, 0, 0, 0.85); background-color: rgb(255, 255, 255);" data-mce-style="margin: 0px; font-style: normal; font-variant-caps: normal; font-weight: normal; font-stretch: normal; font-size: 15px; line-height: normal; font-family: Menlo; color: rgba(0, 0, 0, 0.85); background-color: #ffffff;">N.</p></div><div><br></div><hr id="zwchr" data-marker="__DIVIDER__"><div data-marker="__HEADERS__"><b>De: </b>"Even Rouault" <even.rouault@spatialys.com><br><b>À: </b>"Nicolas Bellaiche" <nicolas.bellaiche@ign.fr><br><b>Cc: </b>"proj" <PROJ@lists.osgeo.org><br><b>Envoyé: </b>Mardi 20 Février 2024 19:05:55<br><b>Objet: </b>Re: [PROJ] Help needed for a cs2cs pipeline with shift grids<br></div><div><br><style>/*<![CDATA[*/p.p1 {
        margin: 0.0px 0.0px 0.0px 0.0px;
        font: 15.0px Menlo;
        color: rgb(0,0,0);
        background-color: rgb(255,255,255);
}
span.Apple-tab-span {
        white-space: pre;
}
/*]]>*/</style></div><div data-marker="__QUOTED_TEXT__"><p><br>
    </p>
    <div class="moz-cite-prefix">Le 20/02/2024 à 18:53, Nicolas
      Bellaiche a écrit :<br>
    </div>
    <blockquote>
      
      <div style="font-family:'arial' , 'helvetica' , sans-serif;font-size:12pt;color:#000000">
        <div><br>
        </div>
        <div>Hi Even</div>
        <div><br>
        </div>
        <div>Thanks for your kind and developed answer.</div>
        <div>I've tried with the EPSG equivalents: (<a href="https://www.sandre.eaufrance.fr/jeu-de-donnees/projection-des-coordonnées?lang=fr" target="_blank" rel="nofollow noopener noreferrer">https://www.sandre.eaufrance.fr/jeu-de-donnees/projection-des-coordonnées?lang=fr</a>) </div>
        <div><br>
        </div>
        <div>
          <p style="margin:0px;font-style:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:normal;font-family:'menlo';color:rgb( 0 , 0 , 0 )">echo 0<span class="Apple-converted-space">  </span>56.000000 0<span class="Apple-converted-space">  </span>| ./cs2cs +from
              EPSG:4807 +to EPSG:3034</p>
          <p style="margin:0px;font-style:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:normal;font-family:'menlo';color:rgb( 0 , 0 , 0 )"><br>
          </p>
          <p style="margin:0px;font-style:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:normal;font-family:'menlo';color:rgb( 0 , 0 , 0 )"><span style="font-family:'arial' , 'helvetica' , sans-serif;font-size:12pt">But
              the result doesn't make any sense:</span></p>
          <p style="margin:0px;font-style:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:normal;font-family:'menlo';color:rgb( 0 , 0 , 0 )"><span style="font-family:'arial' , 'helvetica' , sans-serif;font-size:12pt"></span><br>
          </p>
          <p style="margin:0px;font-style:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:normal;font-family:'menlo';color:rgb( 0 , 0 , 0 )">-1640975.39<span class="Apple-tab-span" style="white-space:pre"> </span>10099142.17
              0.00</p>
          <p style="margin:0px;font-style:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:normal;font-family:'menlo';color:rgb( 0 , 0 , 0 )"><br>
          </p>
          <p style="margin:0px;font-style:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:normal;font-family:'menlo';color:rgb( 0 , 0 , 0 )"><span style="font-family:'arial' , 'helvetica' , sans-serif;font-size:12pt">Is
              there something with the units that is not correct maybe?</span></p>
        </div>
      </div>
    </blockquote>
    <p>No, just the usual axis order issue as EPSG geographic CRS are
      lat, long ordered, whereas IGNF uses the opposition order. So:</p>
    <p>$ echo 56 0 | cs2cs EPSG:4807 EPSG:3034<br>
      2655358.23    3474788.21 0.00<br>
      <br>
    </p>
    <blockquote>
      <div style="font-family:'arial' , 'helvetica' , sans-serif;font-size:12pt;color:#000000">
        <div>
          <p style="margin:0px;font-style:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:normal;font-family:'menlo';color:rgb( 0 , 0 , 0 )"><span style="font-family:'arial' , 'helvetica' , sans-serif;font-size:12pt"></span><br>
          </p>
          <p style="margin:0px;font-style:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:normal;font-family:'menlo';color:rgb( 0 , 0 , 0 )"><span style="font-family:'arial' , 'helvetica' , sans-serif;font-size:12pt"></span><br>
          </p>
          <p style="margin:0px;font-style:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:normal;font-family:'menlo';color:rgb( 0 , 0 , 0 )"><span style="font-family:'arial' , 'helvetica' , sans-serif;font-size:12pt">This
              works well:</span></p>
          <p style="margin:0px;font-style:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:normal;font-family:'menlo';color:rgb( 0 , 0 , 0 )"><span class="Apple-converted-space"> </span>echo 0<span class="Apple-converted-space">  </span>56.000000 0<span class="Apple-converted-space">  </span>|
              PROJ_NETWORK=ON ./cs2cs -d 3<span class="Apple-converted-space">  </span>"NTF
              geographiques Paris (gr) + NGF-IGN69 height"
              IGNF:ETRS89LCC --3d<span class="Apple-converted-space"> </span></p>
          <p style="margin:0px;font-style:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:normal;font-family:'menlo';color:rgb( 0 , 0 , 0 )"><span class="Apple-converted-space"></span><br>
          </p>
          <p style="margin:0px;font-style:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:normal;font-family:'menlo';color:rgb( 0 , 0 , 0 )"><br>
          </p>
          <p style="margin:0px;font-style:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:normal;font-family:'menlo';color:rgb( 0 , 0 , 0 )"><span style="color:#000000;font-family:'arial' , 'helvetica' , sans-serif;font-size:16px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;text-decoration:none;display:inline !important;float:none">and
              I have a few questions about it:</span></p>
          <p style="margin:0px;font-style:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:normal;font-family:'menlo';color:rgb( 0 , 0 , 0 )"><span style="color:#000000;font-family:'arial' , 'helvetica' , sans-serif;font-size:16px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;text-decoration:none;display:inline !important;float:none"><br>
            </span></p>
          <p style="margin:0px;font-style:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:normal;font-family:'menlo';color:rgb( 0 , 0 , 0 )"><span style="color:#000000;font-family:'arial' , 'helvetica' , sans-serif;font-size:16px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;text-decoration:none;display:inline !important;float:none">1)
              the result remains unchanged if I remove or put <span style="color:rgb( 0 , 0 , 0 );font-size:12pt;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb( 255 , 255 , 255 );text-decoration:none;float:none;display:inline !important">PROJ_NETWORK
                to OFF. What does it do exactly?</span></span></p>
        </div>
      </div>
    </blockquote>
    If you have already all the grids in the PROJ_DATA directory,
    PROJ_NETWORK will not do anything. This is just for people who don't
    have grids installed locally<br>
    <blockquote>
      <div style="font-family:'arial' , 'helvetica' , sans-serif;font-size:12pt;color:#000000">
        <div>
          <p style="margin:0px;font-style:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:normal;font-family:'menlo';color:rgb( 0 , 0 , 0 )"><span style="color:#000000;font-family:'arial' , 'helvetica' , sans-serif;font-size:16px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;text-decoration:none;display:inline !important;float:none"><span style="color:rgb( 0 , 0 , 0 );font-size:12pt;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb( 255 , 255 , 255 );text-decoration:none;float:none;display:inline !important"><br>
                2) Does the string<span style="font-family:'arial' , 'helvetica' , sans-serif"> "<span style="color:rgb( 0 , 0 , 0 );font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb( 255 , 255 , 255 );text-decoration:none;float:none;display:inline !important">NTF
                    geographiques Paris (gr) + NGF-IGN69 height"
                    correspond to an entry in the CRS database proj.db
                    or is it interpreted as a compounded system because
                    PROJ parses the string? </span></span></span></span></p>
        </div>
      </div>
    </blockquote>
    <p>Yes, there's logic in PROJ to split "A + B" into A and B, do
      simple CRS lookups for A and B in the database, and create a
      compound CRS from that.</p>
    <blockquote>
      <div style="font-family:'arial' , 'helvetica' , sans-serif;font-size:12pt;color:#000000">
        <div>
          <p style="margin:0px;font-style:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:normal;font-family:'menlo';color:rgb( 0 , 0 , 0 )"><span style="color:#000000;font-family:'arial' , 'helvetica' , sans-serif;font-size:16px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;text-decoration:none;display:inline !important;float:none"><span style="color:rgb( 0 , 0 , 0 );font-size:12pt;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb( 255 , 255 , 255 );text-decoration:none;float:none;display:inline !important"><span style="font-family:'arial' , 'helvetica' , sans-serif"><span style="color:rgb( 0 , 0 , 0 );font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb( 255 , 255 , 255 );text-decoration:none;float:none;display:inline !important">There
                    is no simple code like EPSG or IGNF related to it?
                    Can we create one easily?</span></span></span></span></p>
        </div>
      </div>
    </blockquote>
    <p>yes, cf
<a href="https://github.com/OSGeo/PROJ/blob/master/data/sql/transformations_czechia_extra.sql#L86" target="_blank" rel="nofollow noopener noreferrer">https://github.com/OSGeo/PROJ/blob/master/data/sql/transformations_czechia_extra.sql#L86</a>
      for a custom CompoundCRS</p>
    <p>You can also get the potential SQL statements (that can be
      simplified and improved) with:<br>
    </p>
    <p>$ bin/projinfo IGNF:NTFP+EPSG:5720   -o SQL --output-id
      SOME_AUTH:MY_COMPOUND_CRS -q<br>
      INSERT INTO geodetic_crs
      VALUES('SOME_AUTH','COMPONENT_MY_COMPOUND_CRS_1','NTF
      geographiques Paris (gr)','','geographic
      2D','EPSG','6425','EPSG','6807',NULL,0);<br>
      INSERT INTO scope
VALUES('SOME_AUTH','SCOPE_geodetic_crs_COMPONENT_MY_COMPOUND_CRS_1','NATIONALE,
      HISTORIQUE',0);<br>
      INSERT INTO extent
VALUES('SOME_AUTH','EXTENT_geodetic_crs_COMPONENT_MY_COMPOUND_CRS_1','FRANCE
      METROPOLITAINE (CORSE COMPRISE)','FRANCE METROPOLITAINE (CORSE
      COMPRISE)',41,52,-5.5,10,0);<br>
      INSERT INTO usage
VALUES('SOME_AUTH','USAGE_GEODETIC_CRS_COMPONENT_MY_COMPOUND_CRS_1','geodetic_crs','SOME_AUTH','COMPONENT_MY_COMPOUND_CRS_1','SOME_AUTH','EXTENT_geodetic_crs_COMPONENT_MY_COMPOUND_CRS_1','SOME_AUTH','SCOPE_geodetic_crs_COMPONENT_MY_COMPOUND_CRS_1');<br>
      INSERT INTO compound_crs VALUES('SOME_AUTH','MY_COMPOUND_CRS','NTF
      geographiques Paris (gr) + NGF-IGN69
      height','','SOME_AUTH','COMPONENT_MY_COMPOUND_CRS_1','EPSG','5720',0);<br>
      INSERT INTO usage
VALUES('SOME_AUTH','USAGE_COMPOUND_CRS_MY_COMPOUND_CRS','compound_crs','SOME_AUTH','MY_COMPOUND_CRS','PROJ','EXTENT_UNKNOWN','PROJ','SCOPE_UNKNOWN');<br>
    </p>
    <p>This could be simplified by just taking the last 2 statements and
      modify 'SOME_AUTH','COMPONENT_MY_COMPOUND_CRS_1' to 'IGNF',
      'NTFP'   (I believe this SQL synthesis code only references EPSG
      objects, hence the redefinition of an equivalent of IGNF:NTFP)<br>
    </p>
    <blockquote>
      <div style="font-family:'arial' , 'helvetica' , sans-serif;font-size:12pt;color:#000000">
        <div>
          <p style="margin:0px;font-style:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:normal;font-family:'menlo';color:rgb( 0 , 0 , 0 )"><span style="color:#000000;font-family:'arial' , 'helvetica' , sans-serif;font-size:16px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;text-decoration:none;display:inline !important;float:none"><span style="color:rgb( 0 , 0 , 0 );font-size:12pt;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb( 255 , 255 , 255 );text-decoration:none;float:none;display:inline !important"><span style="font-family:'arial' , 'helvetica' , sans-serif"><span style="color:rgb( 0 , 0 , 0 );font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb( 255 , 255 , 255 );text-decoration:none;float:none;display:inline !important"><br>
                  </span></span></span></span></p>
          <p style="margin:0px;font-style:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:normal;font-family:'menlo';color:rgb( 0 , 0 , 0 )"><span style="color:#000000;font-family:'arial' , 'helvetica' , sans-serif;font-size:16px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;text-decoration:none;display:inline !important;float:none"><span style="color:rgb( 0 , 0 , 0 );font-size:12pt;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb( 255 , 255 , 255 );text-decoration:none;float:none;display:inline !important"><span style="font-family:'arial' , 'helvetica' , sans-serif"><span style="color:rgb( 0 , 0 , 0 );font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb( 255 , 255 , 255 );text-decoration:none;float:none;display:inline !important">3)
                    Where can I see where this crs"NTF geographiques
                    Paris (gr) + NGF-IGN69 height"<span class="Apple-converted-space"> is</span></span></span></span></span><span style="color:#000000;font-family:'arial' , 'helvetica' , sans-serif;font-size:16px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:#ffffff;text-decoration:none;display:inline !important;float:none"><span style="color:rgb( 0 , 0 , 0 );font-size:12pt;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb( 255 , 255 , 255 );text-decoration:none;float:none;display:inline !important"><span style="font-family:'arial' , 'helvetica' , sans-serif"><span style="color:rgb( 0 , 0 , 0 );font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb( 255 , 255 , 255 );text-decoration:none;float:none;display:inline !important"> defined
                    in the sql commands used to build it? <br>
                  </span></span></span></span></p>
        </div>
      </div>
    </blockquote>
    well, if you want all the lineage, this is a cascade of INSERT
    statement. You have to fetch the geographic and vertical CRS, their
    datum, coordinate systems, axis, units in the relevant tables.<br>
    <blockquote>
      <div style="font-family:'arial' , 'helvetica' , sans-serif;font-size:12pt;color:#000000">
        <div>
          <div><br>
          </div>
          <div><br>
          </div>
          <div>Nicolas
            Bellaiche </div>
          <div><br>
          </div>
          <div><br>
          </div>
          <p style="margin:0px;font-style:normal;font-weight:normal;font-stretch:normal;font-size:11px;line-height:normal;font-family:'menlo';color:rgb( 0 , 0 , 0 )"><span style="font-family:'arial' , 'helvetica' , sans-serif;font-size:12pt"></span><br>
          </p>
        </div>
        <div><br>
        </div>
        <hr id="zwchr">
        <div><b>De: </b>"Even Rouault"
          <a href="mailto:even.rouault@spatialys.com" target="_blank" rel="nofollow noopener noreferrer"><even.rouault@spatialys.com></a><br>
          <b>À: </b>"Nicolas Bellaiche"
          <a href="mailto:nicolas.bellaiche@ign.fr" target="_blank" rel="nofollow noopener noreferrer"><nicolas.bellaiche@ign.fr></a>, "proj"
          <a href="mailto:PROJ@lists.osgeo.org" target="_blank" rel="nofollow noopener noreferrer"><PROJ@lists.osgeo.org></a><br>
          <b>Envoyé: </b>Dimanche 18 Février 2024 15:16:44<br>
          <b>Objet: </b>Re: [PROJ] Help needed for a cs2cs pipeline
          with shift grids<br>
        </div>
        <div><br>
          </div>
        <div>
          <p>Nicolas,</p>
          <p>I believe the Helmert transformation is used when using
            IGNF codes, because the IGNF database has only recorded the
            use of the ntf_r93 grid for NTF to RGF93, but not for NTF to
            ETRS89 (by the way, just reiterating that IGN is more than
            welcome to take over on maintenance & updates of the
            IGNF part of the PROJ database). And when transforming
            between 2 IGNF codes, PROJ by default will only consider
            transformations in the IGNF domain. But if you use EPSG
            codes, then ntf_r93 is available to transforme between NTF
            and ETRS89.</p>
          <p>To get a vertical transformation, you also need to use 3D
            CRS.<br>
          </p>
          <p>For example<br>
          </p>
          <p>projinfo -s "NTF geographiques Paris (gr) + NGF-IGN69
            height" -t IGNF:ETRS89LCC --3d --spatial-test intersects <br>
          </p>
          <p>reports the following pipeline:<br>
          </p>
          <p>unknown id, axis order change (2D) + NTF (Paris) to NTF (1)
            + NTF to RGF93 v1 (1) + Inverse of RGF93 v1 to NGF-IGN69
            height (1) + RGF93 v1 to ETRS89 (1) + axis order change
            (geographic3D horizontal) + ETRS89 LAMBERT CONFORMAL CONIC,
            1.6 m, France - mainland onshore., at least one grid missing<br>
            <br>
            PROJ string:<br>
            +proj=pipeline<br>
              +step +proj=unitconvert +xy_in=grad +xy_out=rad<br>
              +step +inv +proj=longlat +ellps=clrk80ign +pm=paris<br>
              +step +proj=push +v_3<br>
              +step +proj=cart +ellps=clrk80ign<br>
              +step +proj=xyzgridshift +grids=fr_ign_gr3df97a.tif
            +grid_ref=output_crs<br>
                    +ellps=GRS80<br>
              +step +inv +proj=cart +ellps=GRS80<br>
              +step +proj=pop +v_3<br>
              +step +proj=vgridshift +grids=fr_ign_RAF18.tif
            +multiplier=1<br>
              +step +proj=lcc +lat_0=52 +lon_0=10 +lat_1=35 +lat_2=65
            +x_0=4000000<br>
                    +y_0=2800000 +ellps=GRS80<br>
          </p>
          <p><br>
          </p>
          <p>Here, as there's a mix of objects from different
            authorities (IGNF and EPSG), then EPSG transformations are
            considered, hence you get the gr3df97a grid.<br>
          </p>
          <p>$ echo 0  56.000000 0  | PROJ_NETWORK=ON bin/cs2cs -d 3 
            "NTF geographiques Paris (gr) + NGF-IGN69 height"
            IGNF:ETRS89LCC --3d <br>
            3474789.997    2655359.291 43.644</p>
          <p>which is the application of the above pipeline:<br>
          </p>
          <p>$ echo 0  56.000000 0  | PROJ_NETWORK=ON bin/cct -d 3
            +proj=pipeline +step +proj=unitconvert +xy_in=grad
            +xy_out=rad +step +inv +proj=longlat +ellps=clrk80ign
            +pm=paris +step +proj=push +v_3 +step +proj=cart
            +ellps=clrk80ign +step +proj=xyzgridshift
            +grids=fr_ign_gr3df97a.tif +grid_ref=output_crs +ellps=GRS80
            +step +inv +proj=cart +ellps=GRS80 +step +proj=pop +v_3
            +step +proj=vgridshift +grids=fr_ign_RAF18.tif +multiplier=1
            +step +proj=lcc +lat_0=52 +lon_0=10 +lat_1=35 +lat_2=65
            +x_0=4000000 +y_0=2800000 +ellps=GRS80<br>
            <br>
          </p>
          <p>If you want to get exactly the below pipeline, you'll have
            to tweak proj.db to create a compound CRS for "NTF
            geographiques Paris (gr) + NGF-IGN69 height", and then
            create a custom record in other_transformation for the
            transformation between this compound CRS and (a 3D projected
            CRS derived from) IGNF:ETRS89LCC. Cf
            data/sql/other_transformation_custom.sql for potential
            inspiration</p>
          <p>Even<br>
          </p>
          <p><br>
          </p>
          <div class="moz-cite-prefix">Le 15/02/2024 à 19:46, Nicolas
            Bellaiche via PROJ a écrit :<br>
          </div>
          <blockquote>
            <div style="font-family:'arial' , 'helvetica' , sans-serif;font-size:12pt;color:#000000">
              <div>
                <style>/*<![CDATA[*/p.p1 {
        margin: 0.0px 0.0px 0.0px 0.0px;
        font: 11.0px Menlo;
        color: rgb(0,0,0);
}
span.s1 {
}
/*]]>*/</style></div>
              <div>
                <style>/*<![CDATA[*/p.p1 {
        margin: 0.0px 0.0px 0.0px 0.0px;
        font: 11.0px Menlo;
        color: rgb(0,0,0);
}
span.s1 {
}
span.Apple-tab-span {
        white-space: pre;
}
/*]]>*/</style>
                <style>/*<![CDATA[*/p.p1 {
        margin: 0.0px 0.0px 0.0px 0.0px;
        font: 11.0px Menlo;
        color: rgb(0,0,0);
}
span.s1 {
}
/*]]>*/</style></div>
              <div>
                <style>/*<![CDATA[*/p.p1 {
        margin: 0.0px 0.0px 0.0px 0.0px;
        font: 11.0px Menlo;
        color: rgb(0,0,0);
}
span.s1 {
}
/*]]>*/</style></div>
              <div>
                <style>/*<![CDATA[*/p.p1 {
        margin: 0.0px 0.0px 0.0px 0.0px;
        font: 15.0px Menlo;
        color: rgb(93,108,121);
        background-color: rgb(255,255,255);
}
/*]]>*/</style></div>
              <div>Hi there,</div>
              <div><br>
              </div>
              <div>I try to make a conversion using shiftgrids from
                IGNF: NTFP to IGNF:ETRS89LCC. By default, it seems that
                it uses the helmert approximation between the 2 crs and
                i cannot figure out how to use the grid fr_ign_ntf_r93.</div>
              <div><br>
              </div>
              <div>So far i've found how to create a pipeline that works
                with cct, but i'd like to have a code that represents
                the crs and be able to go to different destination crs
                with the cs2cs application. Any idea?</div>
              <div><br>
              </div>
              <div><span style="color:#5d6c79;font-family:'menlo';font-size:15px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;word-spacing:0px;white-space:normal;background-color:#ffffff;display:inline !important;float:none">(helmert
                  approx + no geoid with the standard codes)</span></div>
              <div>
                <p class="p1" style="margin:0px"><span class="s1">echo 0
                    56<span class="Apple-converted-space">  </span>0 |
                    ./cs2cs<span class="Apple-converted-space">  </span>+
                    from IGNF:NTFP<span class="Apple-converted-space"> 
                    </span>+to IGNF:ETRS89LCC </span></p>
                <p class="p1" style="margin:0px"><span class="s1">result 
                    : </span><span class="s1">3474788.21<span class="Apple-tab-span"> </span>2655358.23 0.00</span></p>
                <p class="p1" style="margin:0px"><span class="s1"></span><br>
                </p>
                <p class="p1" style="margin:0px"><span class="s1">(correct
                    pipeline)</span></p>
                <p class="p1" style="margin:0px"><span class="s1">echo
                    0  56.000000 0  | PROJ_DEBUG=3  ./cct   
                    +proj=pipeline +step +proj=unitconvert +xy_in=grad
                    +xy_out=rad +step +inv +proj=longlat
                    +ellps=clrk80ign +pm=paris  +step +proj=hgridshift
                    +grids=fr_ign_ntf_r93.tif +step +inv 
                    +proj=vgridshift  +grids=RAF09.gtx  +step +proj=lcc
                    +lat_0=52 +lon_0=10 +lat_1=35 +lat_2=65 +x_0=4000000
                    +y_0=2800000 +ellps=GRS80</span></p>
                <p class="p1" style="margin:0px"><span class="s1"></span><br>
                </p>
                <p class="p1" style="margin:0px"><span class="s1"><span class="Apple-converted-space">result : </span>3474789.9972
                    <span class="Apple-converted-space">  </span>2655359.2908
                    <span class="Apple-converted-space">      </span>43.6421
                    <span class="Apple-converted-space">          </span>inf</span></p>
                <p class="p1" style="margin:0px"><span class="s1"></span><br>
                </p>
                <p class="p1" style="margin:0px"><span class="s1">reference
                    from THE official IGN/SGN dataset:</span></p>
                <p class="p1" style="margin:0px">3474789.997<span class="Apple-tab-span"> </span>2655359.291<span class="Apple-tab-span"> </span>43.642</p>
                <p class="p1" style="margin:0px"><br>
                </p>
                <p class="p1" style="margin:0px"><br>
                </p>
                <p class="p1" style="margin:0px"><font face="arial, helvetica, sans-serif" color="#000000"><span style="font-size:16px">Thanks a lot for your help,</span></font></p>
                <p class="p1" style="margin:0px"><br>
                </p>
                <p class="p1" style="margin:0px"><font face="arial, helvetica, sans-serif" color="#000000"><span style="font-size:16px">Nicolas Bellaiche</span></font></p>
                <div><br>
                </div>
              </div>
            </div>
            <br>
            <fieldset class="moz-mime-attachment-header"></fieldset>
            <pre class="moz-quote-pre">_______________________________________________
PROJ mailing list
<a href="mailto:PROJ@lists.osgeo.org" rel="nofollow noopener noreferrer nofollow noopener noreferrer" target="_blank">PROJ@lists.osgeo.org</a>
<a href="https://lists.osgeo.org/mailman/listinfo/proj" rel="nofollow noopener noreferrer nofollow noopener noreferrer" target="_blank">https://lists.osgeo.org/mailman/listinfo/proj</a>
</pre>
          </blockquote>
          <pre class="moz-signature">-- 
<a href="http://www.spatialys.com" rel="nofollow noopener noreferrer nofollow noopener noreferrer" target="_blank">http://www.spatialys.com</a>
My software is free, but my time generally not.</pre>
          <br>
        </div>
      </div>
    </blockquote>
    <pre class="moz-signature">-- 
<a href="http://www.spatialys.com" target="_blank" rel="nofollow noopener noreferrer">http://www.spatialys.com</a>
My software is free, but my time generally not.</pre><br></div></div></body></html>