<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>