From 345d92c192aa8deb261fdc3c5a96df750408018a Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Wed, 5 Jul 2023 19:08:45 +0200 Subject: [PATCH 1/2] Database: update to EPSG v10.091 --- data/sql/alias_name.sql | 7 +++++++ data/sql/compound_crs.sql | 6 ++++++ data/sql/deprecation.sql | 5 ----- data/sql/extent.sql | 5 ++++- data/sql/geodetic_crs.sql | 4 ++++ data/sql/geodetic_datum.sql | 4 ++++ data/sql/grid_transformation.sql | 22 +++++++++++++++++++--- data/sql/helmert_transformation.sql | 24 ++++++++++++++++++------ data/sql/metadata.sql | 4 ++-- data/sql/projected_crs.sql | 10 +++++----- data/sql/supersession.sql | 2 ++ data/sql/vertical_crs.sql | 6 ++++++ data/sql/vertical_datum.sql | 6 ++++++ 13 files changed, 83 insertions(+), 22 deletions(-) diff --git a/data/sql/alias_name.sql b/data/sql/alias_name.sql index bed13c3dbe..3cb5b9f2e6 100644 --- a/data/sql/alias_name.sql +++ b/data/sql/alias_name.sql @@ -712,6 +712,10 @@ INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','1349','KK-IRF','EPSG'); INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','1350','Ostenfeld-IRF','EPSG'); INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','1332','S34J-IRF','EPSG'); INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','1337','S34S-IRF','EPSG'); +INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','1360','NSIDC Authalic Sphere','EPSG'); +INSERT INTO "alias_name" VALUES('vertical_datum','EPSG','1362','REDNAP','EPSG'); +INSERT INTO "alias_name" VALUES('vertical_datum','EPSG','1363','REDNAP','EPSG'); +INSERT INTO "alias_name" VALUES('vertical_datum','EPSG','1364','REDNAP','EPSG'); INSERT INTO "alias_name" VALUES('projected_crs','EPSG','21100','Genuk / NEIEZ','EPSG'); INSERT INTO "alias_name" VALUES('projected_crs','EPSG','2140','NAD83(CSRS98) / SCoPQ zone 3','EPSG'); INSERT INTO "alias_name" VALUES('projected_crs','EPSG','2141','NAD83(CSRS98) / SCoPQ zone 4','EPSG'); @@ -7885,3 +7889,6 @@ INSERT INTO "alias_name" VALUES('projected_crs','EPSG','10262','Generalstabens S INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','10268','OS-IRF','EPSG'); INSERT INTO "alias_name" VALUES('projected_crs','EPSG','10258','Generalstabens System, østvendt','EPSG'); INSERT INTO "alias_name" VALUES('projected_crs','EPSG','10266','Københavns Kommunes System, østvendt','EPSG'); +INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','10352','REDNAP height','EPSG'); +INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','10353','REDNAP height','EPSG'); +INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','10354','REDNAP height','EPSG'); diff --git a/data/sql/compound_crs.sql b/data/sql/compound_crs.sql index 9ae9bc4522..6ad8ed6c38 100644 --- a/data/sql/compound_crs.sql +++ b/data/sql/compound_crs.sql @@ -834,6 +834,12 @@ INSERT INTO "compound_crs" VALUES('EPSG','10293','ETRS89/DREF91/2016 + DHHN2016 INSERT INTO "usage" VALUES('EPSG','19275','compound_crs','EPSG','10293','EPSG','1103','EPSG','1026'); INSERT INTO "compound_crs" VALUES('EPSG','10318','RGNC15 (lon-lat) + NGNC08 height',NULL,'EPSG','10312','EPSG','9351',0); INSERT INTO "usage" VALUES('EPSG','19634','compound_crs','EPSG','10318','EPSG','3430','EPSG','1026'); +INSERT INTO "compound_crs" VALUES('EPSG','10355','ETRS89 + Formentera height',NULL,'EPSG','4258','EPSG','10352',0); +INSERT INTO "usage" VALUES('EPSG','19914','compound_crs','EPSG','10355','EPSG','4739','EPSG','1026'); +INSERT INTO "compound_crs" VALUES('EPSG','10356','ETRS89 + Alboran height',NULL,'EPSG','4258','EPSG','10353',0); +INSERT INTO "usage" VALUES('EPSG','19915','compound_crs','EPSG','10356','EPSG','4741','EPSG','1026'); +INSERT INTO "compound_crs" VALUES('EPSG','10357','ETRS89 + Melilla height',NULL,'EPSG','4258','EPSG','10354',0); +INSERT INTO "usage" VALUES('EPSG','19916','compound_crs','EPSG','10357','EPSG','4740','EPSG','1026'); INSERT INTO "compound_crs" VALUES('EPSG','20001','ETRS89 + SVD2006 height',NULL,'EPSG','4258','EPSG','20000',0); INSERT INTO "usage" VALUES('EPSG','17956','compound_crs','EPSG','20001','EPSG','4058','EPSG','1026'); INSERT INTO "compound_crs" VALUES('EPSG','20003','MWC18 Grid + ODN height',NULL,'EPSG','20002','EPSG','5701',0); diff --git a/data/sql/deprecation.sql b/data/sql/deprecation.sql index b096068389..4a92ce54b5 100644 --- a/data/sql/deprecation.sql +++ b/data/sql/deprecation.sql @@ -457,11 +457,6 @@ INSERT INTO "deprecation" VALUES('geodetic_crs','EPSG','8449','EPSG','8860','EPS INSERT INTO "deprecation" VALUES('geodetic_crs','EPSG','4280','EPSG','4211','EPSG'); INSERT INTO "deprecation" VALUES('geodetic_crs','EPSG','4808','EPSG','4813','EPSG'); INSERT INTO "deprecation" VALUES('projected_crs','EPSG','2163','EPSG','9311','EPSG'); -INSERT INTO "deprecation" VALUES('projected_crs','EPSG','3408','EPSG','6931','EPSG'); -INSERT INTO "deprecation" VALUES('projected_crs','EPSG','3409','EPSG','6932','EPSG'); -INSERT INTO "deprecation" VALUES('projected_crs','EPSG','3410','EPSG','6933','EPSG'); -INSERT INTO "deprecation" VALUES('projected_crs','EPSG','3411','EPSG','3413','EPSG'); -INSERT INTO "deprecation" VALUES('projected_crs','EPSG','3412','EPSG','3976','EPSG'); INSERT INTO "deprecation" VALUES('projected_crs','EPSG','4088','EPSG','4087','EPSG'); INSERT INTO "deprecation" VALUES('projected_crs','EPSG','7804','EPSG','9391','EPSG'); INSERT INTO "deprecation" VALUES('compound_crs','EPSG','5832','EPSG','9928','EPSG'); diff --git a/data/sql/extent.sql b/data/sql/extent.sql index a9631fa781..ec6f59d5fc 100644 --- a/data/sql/extent.sql +++ b/data/sql/extent.sql @@ -3579,7 +3579,7 @@ INSERT INTO "extent" VALUES('EPSG','4600','Spain - Canary Islands onshore east o INSERT INTO "extent" VALUES('EPSG','4601','Spain - Canary Islands western east of 18°W','Spain - Canary Islands onshore - El Hierro east of 18°W, La Gomera, La Palma and Tenerife.',27.58,28.9,-18.06,-16.08,0); INSERT INTO "extent" VALUES('EPSG','4602','Spain - Balearic Islands - Mallorca','Spain - Balearic Islands - Mallorca onshore.',39.07,40.02,2.23,3.55,0); INSERT INTO "extent" VALUES('EPSG','4603','Spain - Balearic Islands - Menorca','Spain - Balearic Islands - Menorca onshore.',39.75,40.15,3.73,4.39,0); -INSERT INTO "extent" VALUES('EPSG','4604','Spain - Balearic Islands - Ibiza and Formentera','Spain - Balearic Islands - Ibiza and Formentera - onshore.',38.59,39.17,1.12,1.68,0); +INSERT INTO "extent" VALUES('EPSG','4604','Spain - Balearic Islands - Ibiza','Spain - Balearic Islands - Ibiza - onshore.',38.77,39.17,1.12,1.68,0); INSERT INTO "extent" VALUES('EPSG','4605','Spain - mainland onshore and Ceuta','Spain - mainland and Ceuta - onshore.',35.82,43.82,-9.37,3.39,0); INSERT INTO "extent" VALUES('EPSG','4606','Europe - British Isles - UK and Ireland onshore, UKCS','United Kingdom (UK) - offshore to boundary of UKCS within 49°45''N to 61°N and 9°W to 2°E; onshore Great Britain (England, Wales and Scotland) and Northern Ireland. Ireland onshore. Isle of Man onshore.',49.75,61.01,-10.85,2.01,0); INSERT INTO "extent" VALUES('EPSG','4607','UK - Glasgow to Kilmarnock','United Kingdom (UK) - on or related to the rail route from Glasgow to Kilmarnock via Barrhead and the branch to East Kilbride.',55.55,55.95,-4.65,-4.05,0); @@ -3701,3 +3701,6 @@ INSERT INTO "extent" VALUES('EPSG','4730','USA - Illinois - Clinton, Jefferson, INSERT INTO "extent" VALUES('EPSG','4731','USA - Illinois - Olney zone','United States (USA) - Illinois - counties of Clay, Edwards, Lawrence, Richland, Wabash and Wayne.',38.23,38.92,-88.71,-87.49,0); INSERT INTO "extent" VALUES('EPSG','4732','USA - Illinois - Carbondale zone','United States (USA) - Illinois - counties of Franklin, Gallatin, Hamilton, Jackson, Perry, Randolph, Saline, White and Williamson.',37.56,38.26,-90.21,-87.91,0); INSERT INTO "extent" VALUES('EPSG','4733','USA - Illinois - Metropolis zone','United States (USA) - Illinois - counties of Alexander, Hardin, Johnson, Massac, Pope, Pulaski and Union.',36.97,37.61,-89.53,-88.06,0); +INSERT INTO "extent" VALUES('EPSG','4739','Spain - Balearic Islands - Formentera','Spain - Balearic Islands - Formentera - onshore.',38.59,38.86,1.31,1.65,0); +INSERT INTO "extent" VALUES('EPSG','4740','Spain - Melilla','Spain - Melilla onshore.',35.26,35.38,-2.98,-2.88,0); +INSERT INTO "extent" VALUES('EPSG','4741','Spain - Alboran','Spain - Alboran island - onshore.',35.88,36.0,-3.1,-2.96,0); diff --git a/data/sql/geodetic_crs.sql b/data/sql/geodetic_crs.sql index df200adbde..05b45d119e 100644 --- a/data/sql/geodetic_crs.sql +++ b/data/sql/geodetic_crs.sql @@ -2264,6 +2264,10 @@ INSERT INTO "geodetic_crs" VALUES('EPSG','10327','BH_ETRS89',NULL,'geographic 3D INSERT INTO "usage" VALUES('EPSG','19742','geodetic_crs','EPSG','10327','EPSG','1050','EPSG','1026'); INSERT INTO "geodetic_crs" VALUES('EPSG','10328','BH_ETRS89',NULL,'geographic 2D','EPSG','6422','EPSG','1358',NULL,0); INSERT INTO "usage" VALUES('EPSG','19734','geodetic_crs','EPSG','10328','EPSG','1050','EPSG','1183'); +INSERT INTO "geodetic_crs" VALUES('EPSG','10345','Hughes 1980',NULL,'geographic 2D','EPSG','6422','EPSG','1359',NULL,0); +INSERT INTO "usage" VALUES('EPSG','19882','geodetic_crs','EPSG','10345','EPSG','1262','EPSG','1110'); +INSERT INTO "geodetic_crs" VALUES('EPSG','10346','NSIDC Authalic Sphere',NULL,'geographic 2D','EPSG','6422','EPSG','1360',NULL,0); +INSERT INTO "usage" VALUES('EPSG','19878','geodetic_crs','EPSG','10346','EPSG','1262','EPSG','1195'); INSERT INTO "geodetic_crs" VALUES('EPSG','20033','MWC18-IRF',NULL,'geographic 2D','EPSG','6422','EPSG','1324',NULL,0); INSERT INTO "usage" VALUES('EPSG','18335','geodetic_crs','EPSG','20033','EPSG','4666','EPSG','1141'); INSERT INTO "geodetic_crs" VALUES('EPSG','20039','SIRGAS-Chile 2021',NULL,'geocentric','EPSG','6500','EPSG','1327',NULL,0); diff --git a/data/sql/geodetic_datum.sql b/data/sql/geodetic_datum.sql index fc42c3c937..89439185e9 100644 --- a/data/sql/geodetic_datum.sql +++ b/data/sql/geodetic_datum.sql @@ -414,6 +414,10 @@ INSERT INTO "geodetic_datum" VALUES('EPSG','1357','Reseau Geodesique de Nouvelle INSERT INTO "usage" VALUES('EPSG','19600','geodetic_datum','EPSG','1357','EPSG','1174','EPSG','1181'); INSERT INTO "geodetic_datum" VALUES('EPSG','1358','BH_ETRS89',NULL,'EPSG','7019','EPSG','8901','2011-01-01',NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','19740','geodetic_datum','EPSG','1358','EPSG','1050','EPSG','1027'); +INSERT INTO "geodetic_datum" VALUES('EPSG','1359','Hughes 1980',NULL,'EPSG','7058','EPSG','8901','1980-01-01',NULL,NULL,NULL,0); +INSERT INTO "usage" VALUES('EPSG','19883','geodetic_datum','EPSG','1359','EPSG','1262','EPSG','1110'); +INSERT INTO "geodetic_datum" VALUES('EPSG','1360','NSIDC International 1924 Authalic Sphere',NULL,'EPSG','7057','EPSG','8901',NULL,NULL,NULL,NULL,0); +INSERT INTO "usage" VALUES('EPSG','19879','geodetic_datum','EPSG','1360','EPSG','1262','EPSG','1195'); INSERT INTO "geodetic_datum" VALUES('EPSG','6001','Not specified (based on Airy 1830 ellipsoid)',NULL,'EPSG','7001','EPSG','8901',NULL,NULL,NULL,NULL,1); INSERT INTO "usage" VALUES('EPSG','13422','geodetic_datum','EPSG','6001','EPSG','1263','EPSG','1213'); INSERT INTO "geodetic_datum" VALUES('EPSG','6002','Not specified (based on Airy Modified 1849 ellipsoid)',NULL,'EPSG','7002','EPSG','8901',NULL,NULL,NULL,NULL,1); diff --git a/data/sql/grid_transformation.sql b/data/sql/grid_transformation.sql index c859966ed8..c76ae0397e 100644 --- a/data/sql/grid_transformation.sql +++ b/data/sql/grid_transformation.sql @@ -814,7 +814,7 @@ INSERT INTO "grid_transformation" VALUES('EPSG','9411','ETRS89 to Mallorca heigh INSERT INTO "usage" VALUES('EPSG','14282','grid_transformation','EPSG','9411','EPSG','4602','EPSG','1133'); INSERT INTO "grid_transformation" VALUES('EPSG','9412','ETRS89 to Menorca height (1)','For reversible alternative to this transformation see ETRS89 to ETRS89 + Menorca height (1) (code 9609).','EPSG','1025','Geographic3D to GravityRelatedHeight (EGM2008)','EPSG','4937','EPSG','9393',0.05,'EPSG','8666','Geoid (height correction) model file','EGM08_REDNAP.txt',NULL,NULL,NULL,NULL,NULL,NULL,'IGN-Esp 2008',0); INSERT INTO "usage" VALUES('EPSG','14285','grid_transformation','EPSG','9412','EPSG','4603','EPSG','1133'); -INSERT INTO "grid_transformation" VALUES('EPSG','9413','ETRS89 to Ibiza height (1)','For reversible alternative to this transformation see ETRS89 to ETRS89 + Ibiza (1) (code 9607).','EPSG','1025','Geographic3D to GravityRelatedHeight (EGM2008)','EPSG','4937','EPSG','9394',0.05,'EPSG','8666','Geoid (height correction) model file','EGM08_REDNAP.txt',NULL,NULL,NULL,NULL,NULL,NULL,'IGN-Esp 2008',0); +INSERT INTO "grid_transformation" VALUES('EPSG','9413','ETRS89 to Ibiza height (1)','For reversible alternative to this transformation see ETRS89 to ETRS89 + Ibiza height (1) (code 9607).','EPSG','1025','Geographic3D to GravityRelatedHeight (EGM2008)','EPSG','4937','EPSG','9394',0.05,'EPSG','8666','Geoid (height correction) model file','EGM08_REDNAP.txt',NULL,NULL,NULL,NULL,NULL,NULL,'IGN-Esp 2008',0); INSERT INTO "usage" VALUES('EPSG','14278','grid_transformation','EPSG','9413','EPSG','4604','EPSG','1133'); INSERT INTO "grid_transformation" VALUES('EPSG','9414','ETRS89 to Ceuta 2 height (1)','For reversible alternative to this transformation see ETRS89 to ETRS89 + Ceuta 2 height (1) (code 9606).','EPSG','1025','Geographic3D to GravityRelatedHeight (EGM2008)','EPSG','4937','EPSG','9402',0.05,'EPSG','8666','Geoid (height correction) model file','EGM08_REDNAP.txt',NULL,NULL,NULL,NULL,NULL,NULL,'IGN-Esp 2008',0); INSERT INTO "usage" VALUES('EPSG','14275','grid_transformation','EPSG','9414','EPSG','4590','EPSG','1133'); @@ -824,7 +824,7 @@ INSERT INTO "grid_transformation" VALUES('EPSG','9416','REGCAN95 to Fuerteventur INSERT INTO "usage" VALUES('EPSG','14293','grid_transformation','EPSG','9416','EPSG','4592','EPSG','1133'); INSERT INTO "grid_transformation" VALUES('EPSG','9417','REGCAN95 to Gran Canaria height (1)','For reversible alternative to this transformation see REGCAN95 to REGCAN95 + Gran Canaria height (1) (code 9612).','EPSG','1025','Geographic3D to GravityRelatedHeight (EGM2008)','EPSG','4080','EPSG','9397',0.05,'EPSG','8666','Geoid (height correction) model file','EGM08_REDNAP_Canarias.txt',NULL,NULL,NULL,NULL,NULL,NULL,'IGN-Esp 2008',0); INSERT INTO "usage" VALUES('EPSG','14298','grid_transformation','EPSG','9417','EPSG','4593','EPSG','1133'); -INSERT INTO "grid_transformation" VALUES('EPSG','9418','REGCAN95 to Tenerife height (1)','','EPSG','1025','Geographic3D to GravityRelatedHeight (EGM2008)','EPSG','4080','EPSG','9398',0.05,'EPSG','8666','Geoid (height correction) model file','EGM08_REDNAP_Canarias.txt',NULL,NULL,NULL,NULL,NULL,NULL,'IGN-Esp 2008',0); +INSERT INTO "grid_transformation" VALUES('EPSG','9418','REGCAN95 to Tenerife height (1)','For reversible alternative to this transformation see REGCAN95 to REGCAN95 + Tenerife height (1) (code 9616).','EPSG','1025','Geographic3D to GravityRelatedHeight (EGM2008)','EPSG','4080','EPSG','9398',0.05,'EPSG','8666','Geoid (height correction) model file','EGM08_REDNAP_Canarias.txt',NULL,NULL,NULL,NULL,NULL,NULL,'IGN-Esp 2008',0); INSERT INTO "usage" VALUES('EPSG','14074','grid_transformation','EPSG','9418','EPSG','4594','EPSG','1133'); INSERT INTO "grid_transformation" VALUES('EPSG','9419','REGCAN95 to La Gomera height (1)','For reversible alternative to this transformation see REGCAN95 to REGCAN95 + La Gomera height (1) (code 9613).','EPSG','1025','Geographic3D to GravityRelatedHeight (EGM2008)','EPSG','4080','EPSG','9399',0.05,'EPSG','8666','Geoid (height correction) model file','EGM08_REDNAP_Canarias.txt',NULL,NULL,NULL,NULL,NULL,NULL,'IGN-Esp 2008',0); INSERT INTO "usage" VALUES('EPSG','14301','grid_transformation','EPSG','9419','EPSG','4595','EPSG','1133'); @@ -990,7 +990,7 @@ INSERT INTO "grid_transformation" VALUES('EPSG','9606','ETRS89 to ETRS89 + Ceuta INSERT INTO "usage" VALUES('EPSG','14438','grid_transformation','EPSG','9606','EPSG','4590','EPSG','1270'); INSERT INTO "grid_transformation" VALUES('EPSG','9607','ETRS89 to ETRS89 + Ibiza height (1)','Reversible alternative to ETRS89 to Ibiza height (1) (code 9413).','EPSG','1092','Geog3D to Geog2D+GravityRelatedHeight (EGM2008)','EPSG','4937','EPSG','9507',0.05,'EPSG','8666','Geoid (height correction) model file','EGM08_REDNAP.txt',NULL,NULL,NULL,NULL,'EPSG','4258','IGN-Esp 2008',0); INSERT INTO "usage" VALUES('EPSG','14439','grid_transformation','EPSG','9607','EPSG','4604','EPSG','1270'); -INSERT INTO "grid_transformation" VALUES('EPSG','9608','ETRS89 to ETRS89 + Mallorca height (1)','Reversible alternative to ETRS89 to+ Mallorca height (1) (code 9411).','EPSG','1092','Geog3D to Geog2D+GravityRelatedHeight (EGM2008)','EPSG','4937','EPSG','9508',0.05,'EPSG','8666','Geoid (height correction) model file','EGM08_REDNAP.txt',NULL,NULL,NULL,NULL,'EPSG','4258','IGN-Esp 2008',0); +INSERT INTO "grid_transformation" VALUES('EPSG','9608','ETRS89 to ETRS89 + Mallorca height (1)','Reversible alternative to ETRS89 to ETRS89 + Mallorca height (1) (code 9411).','EPSG','1092','Geog3D to Geog2D+GravityRelatedHeight (EGM2008)','EPSG','4937','EPSG','9508',0.05,'EPSG','8666','Geoid (height correction) model file','EGM08_REDNAP.txt',NULL,NULL,NULL,NULL,'EPSG','4258','IGN-Esp 2008',0); INSERT INTO "usage" VALUES('EPSG','14281','grid_transformation','EPSG','9608','EPSG','4602','EPSG','1026'); INSERT INTO "grid_transformation" VALUES('EPSG','9609','ETRS89 to ETRS89 + Menorca height (1)','Reversible alternative to ETRS89 to Menorca height (1) (code 9412).','EPSG','1092','Geog3D to Geog2D+GravityRelatedHeight (EGM2008)','EPSG','4937','EPSG','9509',0.05,'EPSG','8666','Geoid (height correction) model file','EGM08_REDNAP.txt',NULL,NULL,NULL,NULL,'EPSG','4258','IGN-Esp 2008',0); INSERT INTO "usage" VALUES('EPSG','14441','grid_transformation','EPSG','9609','EPSG','4603','EPSG','1270'); @@ -1514,6 +1514,22 @@ INSERT INTO "grid_transformation" VALUES('EPSG','10320','RGNC15 to RGNC15 + NGNC INSERT INTO "usage" VALUES('EPSG','19636','grid_transformation','EPSG','10320','EPSG','3430','EPSG','1270'); INSERT INTO "grid_transformation" VALUES('EPSG','10322','RGNC91-93 to RGNC15 (2)','Derived at 67 GNSS stations. General accuracy 1 to 1.5cm in planimetry and 2cm in height at epoch 2015.0.','EPSG','1087','Geocentric translation by Grid Interpolation (IGN)','EPSG','10307','EPSG','10312',0.03,'EPSG','8727','Geocentric translation file','gr3dncl08.tac',NULL,NULL,NULL,NULL,'EPSG','10312','BGN-Ncl 0.1m',0); INSERT INTO "usage" VALUES('EPSG','19654','grid_transformation','EPSG','10322','EPSG','3430','EPSG','1031'); +INSERT INTO "grid_transformation" VALUES('EPSG','10347','ETRF2000-PL to EVRF2007-PL height (2)','Replaces 2011 model (CT code 9719) from 2022-04-04. For reversible alternative to this transformation see ETRF2000-PL to ETRF2000-PL + EVRF2007-PL height (2) (code 10348).','EPSG','1099','Geographic3D to GravityRelatedHeight (PL txt)','EPSG','9701','EPSG','9651',0.02,'EPSG','8666','Geoid (height correction) model file','Model_quasi-geoidy-PL-geoid2021-PL-EVRF2007-NH.txt',NULL,NULL,NULL,NULL,NULL,NULL,'GUGiK-Pol geoid21 EVRF07',0); +INSERT INTO "usage" VALUES('EPSG','19905','grid_transformation','EPSG','10347','EPSG','3293','EPSG','1133'); +INSERT INTO "grid_transformation" VALUES('EPSG','10348','ETRF2000-PL to ETRF2000-PL + EVRF2007-PL height (2)','Reversible alternative to ETRF2000-PL to EVRF2007-PL height (2) (code 10347). Replaces 2011 model (CT code 9720) from 2022-04-04.','EPSG','1100','Geog3D to Geog2D+GravityRelatedHeight (PL txt)','EPSG','9701','EPSG','9657',0.02,'EPSG','8666','Geoid (height correction) model file','Model_quasi-geoidy-PL-geoid2021-PL-EVRF2007-NH.txt',NULL,NULL,NULL,NULL,'EPSG','9702','GUGiK-Pol geoid21 EVRF07',0); +INSERT INTO "usage" VALUES('EPSG','19907','grid_transformation','EPSG','10348','EPSG','3293','EPSG','1270'); +INSERT INTO "grid_transformation" VALUES('EPSG','10358','ETRS89 to Formentera height (1)','For reversible alternative to this transformation see ETRS89 to ETRS89 + Formentera height (1) (code 10359).','EPSG','1025','Geographic3D to GravityRelatedHeight (EGM2008)','EPSG','4937','EPSG','10352',0.05,'EPSG','8666','Geoid (height correction) model file','EGM08_REDNAP.txt',NULL,NULL,NULL,NULL,NULL,NULL,'IGN-Esp 2008',0); +INSERT INTO "usage" VALUES('EPSG','19930','grid_transformation','EPSG','10358','EPSG','4739','EPSG','1133'); +INSERT INTO "grid_transformation" VALUES('EPSG','10359','ETRS89 to ETRS89 + Formentera height (1)','Reversible alternative to ETRS89 to Formentera height (1) (code 10358).','EPSG','1092','Geog3D to Geog2D+GravityRelatedHeight (EGM2008)','EPSG','4937','EPSG','10355',0.05,'EPSG','8666','Geoid (height correction) model file','EGM08_REDNAP.txt',NULL,NULL,NULL,NULL,'EPSG','4258','IGN-Esp 2008',0); +INSERT INTO "usage" VALUES('EPSG','19918','grid_transformation','EPSG','10359','EPSG','4739','EPSG','1270'); +INSERT INTO "grid_transformation" VALUES('EPSG','10360','ETRS89 to Alboran height (1)','For reversible alternative to this transformation see ETRS89 to ETRS89 + Alboran height (1) (code 10361).','EPSG','1025','Geographic3D to GravityRelatedHeight (EGM2008)','EPSG','4937','EPSG','10353',0.05,'EPSG','8666','Geoid (height correction) model file','EGM08_REDNAP.txt',NULL,NULL,NULL,NULL,NULL,NULL,'IGN-Esp 2008',0); +INSERT INTO "usage" VALUES('EPSG','20154','grid_transformation','EPSG','10360','EPSG','4741','EPSG','1133'); +INSERT INTO "grid_transformation" VALUES('EPSG','10361','ETRS89 to ETRS89 + Alboran height (1)','Reversible alternative to ETRS89 to Alboran height (1) (code 10360).','EPSG','1092','Geog3D to Geog2D+GravityRelatedHeight (EGM2008)','EPSG','4937','EPSG','10356',0.05,'EPSG','8666','Geoid (height correction) model file','EGM08_REDNAP.txt',NULL,NULL,NULL,NULL,'EPSG','4258','IGN-Esp 2008',0); +INSERT INTO "usage" VALUES('EPSG','19920','grid_transformation','EPSG','10361','EPSG','4741','EPSG','1270'); +INSERT INTO "grid_transformation" VALUES('EPSG','10362','ETRS89 to Melilla height (1)','For reversible alternative to this transformation see ETRS89 to ETRS89 + Melilla height (1) (code 10363).','EPSG','1025','Geographic3D to GravityRelatedHeight (EGM2008)','EPSG','4937','EPSG','10354',0.05,'EPSG','8666','Geoid (height correction) model file','EGM08_REDNAP.txt',NULL,NULL,NULL,NULL,NULL,NULL,'IGN-Esp 2008',0); +INSERT INTO "usage" VALUES('EPSG','20155','grid_transformation','EPSG','10362','EPSG','4740','EPSG','1133'); +INSERT INTO "grid_transformation" VALUES('EPSG','10363','ETRS89 to ETRS89 + Melilla height (1)','Reversible alternative to ETRS89 to Melilla height (1) (code 10362).','EPSG','1092','Geog3D to Geog2D+GravityRelatedHeight (EGM2008)','EPSG','4937','EPSG','10357',0.05,'EPSG','8666','Geoid (height correction) model file','EGM08_REDNAP.txt',NULL,NULL,NULL,NULL,'EPSG','4258','IGN-Esp 2008',0); +INSERT INTO "usage" VALUES('EPSG','19922','grid_transformation','EPSG','10363','EPSG','4740','EPSG','1270'); INSERT INTO "grid_transformation" VALUES('EPSG','15486','CH1903 to CH1903+ (1)','For improved accuracy (0.01m) use CHENyx06 interpolation programme FINELTRA. File CHENyx06 replaced by CHENyx06a; there is a small area at the border of the data where some more real data has been introduced. swisstopo consider the change insignificant.','EPSG','9615','NTv2','EPSG','4149','EPSG','4150',0.2,'EPSG','8656','Latitude and longitude difference file','CHENyx06a.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'BfL-Che',0); INSERT INTO "usage" VALUES('EPSG','11497','grid_transformation','EPSG','15486','EPSG','1286','EPSG','1085'); INSERT INTO "grid_transformation" VALUES('EPSG','15488','RRAF 1991 to IGN 1988 MG height (1)','May be used for transformations from WGS 84 to IGN 1988 MG. Accuracy at each 0.025 deg x 0.025 degree grid node is given within the geoid model file.','EPSG','9664','Geographic3D to GravityRelatedHeight (IGN1997)','EPSG','4973','EPSG','5617',0.2,'EPSG','8666','Geoid (height correction) model file','ggg00_mg.txt',NULL,NULL,NULL,NULL,NULL,NULL,'IGN Glp MG',1); diff --git a/data/sql/helmert_transformation.sql b/data/sql/helmert_transformation.sql index bc5ce64269..532468e478 100644 --- a/data/sql/helmert_transformation.sql +++ b/data/sql/helmert_transformation.sql @@ -985,11 +985,11 @@ INSERT INTO "helmert_transformation" VALUES('EPSG','1813','Batavia to WGS 84 (2) INSERT INTO "usage" VALUES('EPSG','8734','helmert_transformation','EPSG','1813','EPSG','2577','EPSG','1136'); INSERT INTO "helmert_transformation" VALUES('EPSG','1814','Batavia to WGS 84 (3)','Used by PT Komaritim for Nippon Steel during East Java Gas Pipeline construction.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4211','EPSG','4326',5.0,-377.7,675.1,-52.2,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'KOM-Idn EJGP',0); INSERT INTO "usage" VALUES('EPSG','8735','helmert_transformation','EPSG','1814','EPSG','2588','EPSG','1136'); -INSERT INTO "helmert_transformation" VALUES('EPSG','1815','Nord Sahara 1959 to WGS 84 (4)','Used by BP in District 3 and In Salah Gas.','EPSG','9606','Position Vector transformation (geog2D domain)','EPSG','4307','EPSG','4326',5.0,-152.9,43.8,358.3,'EPSG','9001',2.714,1.386,-2.788,'EPSG','9104',-6.743,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'BP-Alg D3',0); +INSERT INTO "helmert_transformation" VALUES('EPSG','1815','Nord Sahara 1959 to WGS 84 (4)','Used by BP in District 3 and In Salah Gas. May be taken as a transformation to RGSH2020 - see CT 10339.','EPSG','9606','Position Vector transformation (geog2D domain)','EPSG','4307','EPSG','4326',5.0,-152.9,43.8,358.3,'EPSG','9001',2.714,1.386,-2.788,'EPSG','9104',-6.743,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'BP-Alg D3',0); INSERT INTO "usage" VALUES('EPSG','8736','helmert_transformation','EPSG','1815','EPSG','2598','EPSG','1136'); -INSERT INTO "helmert_transformation" VALUES('EPSG','1816','Nord Sahara 1959 to WGS 84 (5)','Derived at astro station central to concession. Significant and varying differences (>100m) at 4 neighbouring astro stations.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4307','EPSG','4326',100.0,-95.7,10.2,158.9,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'BPA-Alg InAm',0); +INSERT INTO "helmert_transformation" VALUES('EPSG','1816','Nord Sahara 1959 to WGS 84 (5)','Derived at astro station central to concession. Significant and varying differences (>100m) at 4 neighbouring astro stations. May be taken as a transformation to RGSH2020 - see CT 10340.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4307','EPSG','4326',100.0,-95.7,10.2,158.9,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'BPA-Alg InAm',0); INSERT INTO "usage" VALUES('EPSG','8737','helmert_transformation','EPSG','1816','EPSG','2599','EPSG','1136'); -INSERT INTO "helmert_transformation" VALUES('EPSG','1817','Nord Sahara 1959 to WGS 84 (6)','Derived at astro station Guerrara.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4307','EPSG','4326',100.0,-165.914,-70.607,305.009,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'ARCO-Alg HBR',0); +INSERT INTO "helmert_transformation" VALUES('EPSG','1817','Nord Sahara 1959 to WGS 84 (6)','Derived at astro station Guerrara. May be taken as a transformation to RGSH2020 - see CT 10341.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4307','EPSG','4326',100.0,-165.914,-70.607,305.009,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'ARCO-Alg HBR',0); INSERT INTO "usage" VALUES('EPSG','8738','helmert_transformation','EPSG','1817','EPSG','2600','EPSG','1136'); INSERT INTO "helmert_transformation" VALUES('EPSG','1818','Minna to WGS 84 (4)','Concatenated via WGS 72BE.','EPSG','9606','Position Vector transformation (geog2D domain)','EPSG','4263','EPSG','4326',12.0,-89.0,-112.0,125.9,'EPSG','9001',0.0,0.0,0.814,'EPSG','9104',-0.38,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'RSL-Nga',0); INSERT INTO "usage" VALUES('EPSG','8739','helmert_transformation','EPSG','1818','EPSG','1717','EPSG','1136'); @@ -1631,7 +1631,7 @@ INSERT INTO "helmert_transformation" VALUES('EPSG','5599','FEH2010 to WGS 84 (1) INSERT INTO "usage" VALUES('EPSG','9479','helmert_transformation','EPSG','5599','EPSG','3889','EPSG','1252'); INSERT INTO "helmert_transformation" VALUES('EPSG','5622','OSGB36 to WGS 84 (8)','Derived by CGG for 1994 3D seismic survey.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4277','EPSG','4326',3.0,370.936,-108.938,435.682,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'bp-Gbr WytchF',0); INSERT INTO "usage" VALUES('EPSG','9480','helmert_transformation','EPSG','5622','EPSG','3893','EPSG','1136'); -INSERT INTO "helmert_transformation" VALUES('EPSG','5630','Nord Sahara 1959 to WGS 84 (8)','Derived at 1 station (L38).','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4307','EPSG','4326',5.0,-168.52,-72.05,304.3,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'Tot-Dza Ahnet',0); +INSERT INTO "helmert_transformation" VALUES('EPSG','5630','Nord Sahara 1959 to WGS 84 (8)','Derived at 1 station (L38). May be taken as a transformation to RGSH2020 - see CT 10343.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4307','EPSG','4326',5.0,-168.52,-72.05,304.3,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'Tot-Dza Ahnet',0); INSERT INTO "usage" VALUES('EPSG','9482','helmert_transformation','EPSG','5630','EPSG','3917','EPSG','1136'); INSERT INTO "helmert_transformation" VALUES('EPSG','5660','Nord Sahara 1959 to WGS 84 (9)','Derived in 2006 at 45 points in north and central Algeria. Accuracy at 75 common points better than 1m.','EPSG','9606','Position Vector transformation (geog2D domain)','EPSG','4307','EPSG','4326',1.0,-209.3622,-87.8162,404.6198,'EPSG','9001',0.0046,3.4784,0.5805,'EPSG','9104',-1.4547,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'INCT-Dza',0); INSERT INTO "usage" VALUES('EPSG','9491','helmert_transformation','EPSG','5660','EPSG','1026','EPSG','1041'); @@ -1902,7 +1902,7 @@ INSERT INTO "helmert_transformation" VALUES('EPSG','7140','IGD05 to IG05 Interme INSERT INTO "usage" VALUES('EPSG','9949','helmert_transformation','EPSG','7140','EPSG','2603','EPSG','1113'); INSERT INTO "helmert_transformation" VALUES('EPSG','7377','ONGD14 to WGS 84 (1)','Translations given by information source in mm. Derived at 20 stations, RMS 0.0313m in northing, 0.0377m in easting and 0.0678m in height.','EPSG','1032','Coordinate Frame rotation (geocentric domain)','EPSG','7371','EPSG','4978',0.1,0.819,-0.5762,-1.6446,'EPSG','9001',0.00378,0.03317,-0.00318,'EPSG','9104',0.0693,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'NSA-Omn',0); INSERT INTO "usage" VALUES('EPSG','10065','helmert_transformation','EPSG','7377','EPSG','1183','EPSG','1027'); -INSERT INTO "helmert_transformation" VALUES('EPSG','7442','Nord Sahara 1959 to WGS 84 (10)','Derived at 1 astro station central to concession. Significant and varying differences (>100m) known to exist in neighbouring astro stations.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4307','EPSG','4326',100.0,-181.7,64.7,247.2,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'Isa-Alg Ain Tsila',0); +INSERT INTO "helmert_transformation" VALUES('EPSG','7442','Nord Sahara 1959 to WGS 84 (10)','Derived at 1 astro station central to concession. Significant and varying differences (>100m) known to exist in neighbouring astro stations. May be taken as a transformation to RGSH2020 - see CT 10344.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4307','EPSG','4326',100.0,-181.7,64.7,247.2,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'Isa-Alg Ain Tsila',0); INSERT INTO "usage" VALUES('EPSG','10106','helmert_transformation','EPSG','7442','EPSG','4382','EPSG','1136'); INSERT INTO "helmert_transformation" VALUES('EPSG','7443','ONGD14 to WGS 84 (2)','Approximation at the +/- 2m level assuming that ONG14 is equivalent to WGS 84. See transformation code 7377 for authoritative values.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','7373','EPSG','4326',2.0,0.0,0.0,0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'IOGP-Omn',0); INSERT INTO "usage" VALUES('EPSG','10107','helmert_transformation','EPSG','7443','EPSG','1183','EPSG','1252'); @@ -2627,6 +2627,18 @@ INSERT INTO "helmert_transformation" VALUES('EPSG','10337','ITRF2014 to NAD83(MA INSERT INTO "usage" VALUES('EPSG','19770','helmert_transformation','EPSG','10337','EPSG','4167','EPSG','1026'); INSERT INTO "helmert_transformation" VALUES('EPSG','10338','ITRF2020 to NAD83(MA11) (1)','','EPSG','1056','Time-dependent Coordinate Frame rotation (geocen)','EPSG','9988','EPSG','6323',0.0,909.5,-2013.3,-585.9,'EPSG','1025',28.711,11.785,4.417,'EPSG','1031',1.7,'EPSG','1028',0.1,0.0,-1.7,'EPSG','1027',-0.02,0.105,-0.347,'EPSG','1032',0.11,'EPSG','1030',2010.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,'NGS-MA',0); INSERT INTO "usage" VALUES('EPSG','19774','helmert_transformation','EPSG','10338','EPSG','4167','EPSG','1026'); +INSERT INTO "helmert_transformation" VALUES('EPSG','10339','Nord Sahara 1959 to RGSH2020 (1)','Parameter values taken from Nord Sahara 1959 to WGS 84 (4) (code 1815) assuming that RGSH2020 is coincident with WGS 84 within the accuracy of the transformation. CT 1815 used by BP in District 3 and In Salah Gas.','EPSG','9606','Position Vector transformation (geog2D domain)','EPSG','4307','EPSG','10299',5.0,-152.9,43.8,358.3,'EPSG','9001',2.714,1.386,-2.788,'EPSG','9104',-6.743,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'IOGP-Alg D3',0); +INSERT INTO "usage" VALUES('EPSG','19855','helmert_transformation','EPSG','10339','EPSG','2598','EPSG','1136'); +INSERT INTO "helmert_transformation" VALUES('EPSG','10340','Nord Sahara 1959 to RGSH2020 (2)','Parameter values taken from Nord Sahara 1959 to WGS 84 (5) (code 1816) assuming that RGSH2020 is coincident with WGS 84 within the accuracy of the transformation. Significant and varying differences (>100m) at 4 neighbouring astro stations.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4307','EPSG','10299',100.0,-95.7,10.2,158.9,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'IOGP-Alg InAm',0); +INSERT INTO "usage" VALUES('EPSG','19850','helmert_transformation','EPSG','10340','EPSG','2599','EPSG','1136'); +INSERT INTO "helmert_transformation" VALUES('EPSG','10341','Nord Sahara 1959 to RGSH2020 (3)','Parameter values taken from Nord Sahara 1959 to WGS 84 (6) (code 1817) assuming that RGSH2020 is coincident with WGS 84 within the accuracy of the transformation. Derived at astro station Guerrara.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4307','EPSG','10299',100.0,-165.914,-70.607,305.009,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'IOGP-Alg HBR',0); +INSERT INTO "usage" VALUES('EPSG','19851','helmert_transformation','EPSG','10341','EPSG','2600','EPSG','1136'); +INSERT INTO "helmert_transformation" VALUES('EPSG','10342','Nord Sahara 1959 to RGSH2020 (4)','Parameter values taken from Nord Sahara 1959 to WGS 84 (7) (code 15874) assuming that RGSH2020 is coincident with WGS 84 within the accuracy of the transformation. Derived at 11 stations. CT 15874 used by Equinor in Hassi Mouina.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4307','EPSG','10299',5.0,-169.559,-72.34,303.102,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'IOGP-Dza Mou',0); +INSERT INTO "usage" VALUES('EPSG','19852','helmert_transformation','EPSG','10342','EPSG','3402','EPSG','1136'); +INSERT INTO "helmert_transformation" VALUES('EPSG','10343','Nord Sahara 1959 to RGSH2020 (5)','Parameter values taken from Nord Sahara 1959 to WGS 84 (8) (code 5630) assuming that RGSH2020 is coincident with WGS 84 within the accuracy of the transformation. Derived at 1 station (L38).','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4307','EPSG','10299',5.0,-168.52,-72.05,304.3,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'IOGP-Dza Ahnet',0); +INSERT INTO "usage" VALUES('EPSG','19853','helmert_transformation','EPSG','10343','EPSG','3917','EPSG','1136'); +INSERT INTO "helmert_transformation" VALUES('EPSG','10344','Nord Sahara 1959 to RGSH2020 (6)','Parameter values taken from Nord Sahara 1959 to WGS 84 (10) (code 7442) assuming that RGSH2020 is coincident with WGS 84 within the accuracy of the transformation. Significant and varying differences (>100m) known to exist in neighbouring astro stations.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4307','EPSG','10299',100.0,-181.7,64.7,247.2,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'IOGP-Alg Ain Tsila',0); +INSERT INTO "usage" VALUES('EPSG','19854','helmert_transformation','EPSG','10344','EPSG','4382','EPSG','1136'); INSERT INTO "helmert_transformation" VALUES('EPSG','15483','Tokyo to JGD2000 (1)','Derived at Tokyo datum origin. Accuracy on main islands 9m. Also used on remote islands with significantly less accuracy: Io-To 793m, Kitadaito and Minamidaito Jima 642m, Tarama and Minna Shima 560m, Ishigaki and Taketomi Jima 251m, Yonaguni Jima 248m.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4301','EPSG','4612',9.0,-146.414,507.337,680.507,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'GSI-Jpn',0); INSERT INTO "usage" VALUES('EPSG','11494','helmert_transformation','EPSG','15483','EPSG','3957','EPSG','1142'); INSERT INTO "helmert_transformation" VALUES('EPSG','15484','Tokyo to WGS 84 (108)','Parameter values from Tokyo to JGD2000 (1) (code 15483). Assumes JGD2000 and WGS 84 can be considered the same to within the accuracy of the transformation.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4301','EPSG','4326',9.0,-146.414,507.337,680.507,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'OGP-Jpn',0); @@ -2951,7 +2963,7 @@ INSERT INTO "helmert_transformation" VALUES('EPSG','15872','Karbala 1979 to WGS INSERT INTO "usage" VALUES('EPSG','11883','helmert_transformation','EPSG','15872','EPSG','3397','EPSG','1136'); INSERT INTO "helmert_transformation" VALUES('EPSG','15873','Douala 1948 to WGS 84 (1)','Derived at Manoca tower assuming the pyramid on the tower and the centre of the tower reservoir are co-located. This assumption carries a few metres uncertainty.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4192','EPSG','4326',10.0,-206.1,-174.7,-87.7,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'Tot-Cmr',0); INSERT INTO "usage" VALUES('EPSG','11884','helmert_transformation','EPSG','15873','EPSG','2555','EPSG','1136'); -INSERT INTO "helmert_transformation" VALUES('EPSG','15874','Nord Sahara 1959 to WGS 84 (7)','Derived at 11 stations throughout blocks 317b, 319b, 321b and 322b. Network based on station P4 (horizontal) and benchmark RN51 (vertical) using EGM96 geoid height. Used by Statoil in Hassi Mouina.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4307','EPSG','4326',5.0,-169.559,-72.34,303.102,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'ENG-Dza Mou',0); +INSERT INTO "helmert_transformation" VALUES('EPSG','15874','Nord Sahara 1959 to WGS 84 (7)','Derived at 11 stations throughout blocks 317b, 319b, 321b and 322b. Network based on station P4 (horizontal) and benchmark RN51 (vertical) using EGM96 geoid height. Used by Equinor in Hassi Mouina. May be taken as a transformation to RGSH2020 (CT 10342).','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4307','EPSG','4326',5.0,-169.559,-72.34,303.102,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'ENG-Dza Mou',0); INSERT INTO "usage" VALUES('EPSG','11885','helmert_transformation','EPSG','15874','EPSG','3402','EPSG','1136'); INSERT INTO "helmert_transformation" VALUES('EPSG','15875','Fiji 1956 to WGS 84 (1)','Derived at 20 stations. Also published by NGA in GeoTrans v3.4 software with parameter values rounded to integer.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4721','EPSG','4326',7.0,265.025,384.929,-194.046,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'DGC-Fji',0); INSERT INTO "usage" VALUES('EPSG','11886','helmert_transformation','EPSG','15875','EPSG','3398','EPSG','1160'); diff --git a/data/sql/metadata.sql b/data/sql/metadata.sql index 2b576c3673..102032d210 100644 --- a/data/sql/metadata.sql +++ b/data/sql/metadata.sql @@ -9,8 +9,8 @@ INSERT INTO "metadata" VALUES('DATABASE.LAYOUT.VERSION.MAJOR', 1); INSERT INTO "metadata" VALUES('DATABASE.LAYOUT.VERSION.MINOR', 2); -INSERT INTO "metadata" VALUES('EPSG.VERSION', 'v10.088'); -INSERT INTO "metadata" VALUES('EPSG.DATE', '2023-05-13'); +INSERT INTO "metadata" VALUES('EPSG.VERSION', 'v10.091'); +INSERT INTO "metadata" VALUES('EPSG.DATE', '2023-07-05'); -- The value of ${PROJ_VERSION} is substituted at build time by the actual -- value. diff --git a/data/sql/projected_crs.sql b/data/sql/projected_crs.sql index 55442f97c0..ad90ccfab2 100644 --- a/data/sql/projected_crs.sql +++ b/data/sql/projected_crs.sql @@ -2802,15 +2802,15 @@ INSERT INTO "projected_crs" VALUES('EPSG','3406','VN-2000 / UTM zone 49N',NULL,' INSERT INTO "usage" VALUES('EPSG','2425','projected_crs','EPSG','3406','EPSG','1453','EPSG','1211'); INSERT INTO "projected_crs" VALUES('EPSG','3407','Hong Kong 1963 Grid System',NULL,'EPSG','4502','EPSG','4738','EPSG','19896',NULL,0); INSERT INTO "usage" VALUES('EPSG','2426','projected_crs','EPSG','3407','EPSG','1118','EPSG','1055'); -INSERT INTO "projected_crs" VALUES('EPSG','3408','NSIDC EASE-Grid North',NULL,'EPSG','4469','EPSG','4053','EPSG','3897',NULL,1); +INSERT INTO "projected_crs" VALUES('EPSG','3408','NSIDC EASE-Grid North',NULL,'EPSG','4469','EPSG','10346','EPSG','3897',NULL,0); INSERT INTO "usage" VALUES('EPSG','2427','projected_crs','EPSG','3408','EPSG','3475','EPSG','1195'); -INSERT INTO "projected_crs" VALUES('EPSG','3409','NSIDC EASE-Grid South',NULL,'EPSG','4470','EPSG','4053','EPSG','3898',NULL,1); +INSERT INTO "projected_crs" VALUES('EPSG','3409','NSIDC EASE-Grid South',NULL,'EPSG','4470','EPSG','10346','EPSG','3898',NULL,0); INSERT INTO "usage" VALUES('EPSG','2428','projected_crs','EPSG','3409','EPSG','3474','EPSG','1195'); -INSERT INTO "projected_crs" VALUES('EPSG','3410','NSIDC EASE-Grid Global',NULL,'EPSG','4499','EPSG','4053','EPSG','19869',NULL,1); +INSERT INTO "projected_crs" VALUES('EPSG','3410','NSIDC EASE-Grid Global',NULL,'EPSG','4499','EPSG','10346','EPSG','19869',NULL,0); INSERT INTO "usage" VALUES('EPSG','2429','projected_crs','EPSG','3410','EPSG','3463','EPSG','1195'); -INSERT INTO "projected_crs" VALUES('EPSG','3411','NSIDC Sea Ice Polar Stereographic North',NULL,'EPSG','4468','EPSG','4054','EPSG','19865',NULL,1); +INSERT INTO "projected_crs" VALUES('EPSG','3411','NSIDC Sea Ice Polar Stereographic North',NULL,'EPSG','4468','EPSG','10345','EPSG','19865',NULL,0); INSERT INTO "usage" VALUES('EPSG','2430','projected_crs','EPSG','3411','EPSG','1996','EPSG','1040'); -INSERT INTO "projected_crs" VALUES('EPSG','3412','NSIDC Sea Ice Polar Stereographic South',NULL,'EPSG','4470','EPSG','4054','EPSG','19866',NULL,1); +INSERT INTO "projected_crs" VALUES('EPSG','3412','NSIDC Sea Ice Polar Stereographic South',NULL,'EPSG','4470','EPSG','10345','EPSG','19866',NULL,0); INSERT INTO "usage" VALUES('EPSG','2431','projected_crs','EPSG','3412','EPSG','1997','EPSG','1040'); INSERT INTO "projected_crs" VALUES('EPSG','3413','WGS 84 / NSIDC Sea Ice Polar Stereographic North',NULL,'EPSG','4468','EPSG','4326','EPSG','19865',NULL,0); INSERT INTO "usage" VALUES('EPSG','2432','projected_crs','EPSG','3413','EPSG','1996','EPSG','1040'); diff --git a/data/sql/supersession.sql b/data/sql/supersession.sql index 00aae05a0b..61e1351cc8 100644 --- a/data/sql/supersession.sql +++ b/data/sql/supersession.sql @@ -279,3 +279,5 @@ INSERT INTO "supersession" VALUES('helmert_transformation','EPSG','15887','grid_ INSERT INTO "supersession" VALUES('helmert_transformation','EPSG','15890','helmert_transformation','EPSG','15883','EPSG',1); INSERT INTO "supersession" VALUES('helmert_transformation','EPSG','15891','helmert_transformation','EPSG','15884','EPSG',1); INSERT INTO "supersession" VALUES('helmert_transformation','EPSG','5660','helmert_transformation','EPSG','10296','EPSG',1); +INSERT INTO "supersession" VALUES('grid_transformation','EPSG','9719','grid_transformation','EPSG','10347','EPSG',1); +INSERT INTO "supersession" VALUES('grid_transformation','EPSG','9720','grid_transformation','EPSG','10348','EPSG',1); diff --git a/data/sql/vertical_crs.sql b/data/sql/vertical_crs.sql index a054b742d9..b0b9b2b861 100644 --- a/data/sql/vertical_crs.sql +++ b/data/sql/vertical_crs.sql @@ -472,6 +472,12 @@ INSERT INTO "vertical_crs" VALUES('EPSG','10151','CD UK & Ireland VORF08 depth', INSERT INTO "usage" VALUES('EPSG','18583','vertical_crs','EPSG','10151','EPSG','4668','EPSG','1198'); INSERT INTO "vertical_crs" VALUES('EPSG','10190','NGA 2022 height',NULL,'EPSG','6499','EPSG','1354',0); INSERT INTO "usage" VALUES('EPSG','19483','vertical_crs','EPSG','10190','EPSG','3213','EPSG','1026'); +INSERT INTO "vertical_crs" VALUES('EPSG','10352','Formentera height',NULL,'EPSG','6499','EPSG','1362',0); +INSERT INTO "usage" VALUES('EPSG','19925','vertical_crs','EPSG','10352','EPSG','4739','EPSG','1178'); +INSERT INTO "vertical_crs" VALUES('EPSG','10353','Alboran height',NULL,'EPSG','6499','EPSG','1363',0); +INSERT INTO "usage" VALUES('EPSG','19926','vertical_crs','EPSG','10353','EPSG','4741','EPSG','1178'); +INSERT INTO "vertical_crs" VALUES('EPSG','10354','Melilla height',NULL,'EPSG','6499','EPSG','1364',0); +INSERT INTO "usage" VALUES('EPSG','19927','vertical_crs','EPSG','10354','EPSG','4740','EPSG','1178'); INSERT INTO "vertical_crs" VALUES('EPSG','20000','SVD2006 height',NULL,'EPSG','6499','EPSG','1323',0); INSERT INTO "usage" VALUES('EPSG','17962','vertical_crs','EPSG','20000','EPSG','4058','EPSG','1180'); INSERT INTO "vertical_crs" VALUES('EPSG','20034','CGVD2013a(2002) height',NULL,'EPSG','6499','EPSG','1325',0); diff --git a/data/sql/vertical_datum.sql b/data/sql/vertical_datum.sql index 48fa430f4f..e4be08da3a 100644 --- a/data/sql/vertical_datum.sql +++ b/data/sql/vertical_datum.sql @@ -246,6 +246,12 @@ INSERT INTO "vertical_datum" VALUES('EPSG','1331','Chart Datum UK & Ireland VORF INSERT INTO "usage" VALUES('EPSG','18581','vertical_datum','EPSG','1331','EPSG','4668','EPSG','1198'); INSERT INTO "vertical_datum" VALUES('EPSG','1354','Nivellement General de l''Algerie 2022',NULL,'2022-11-30',NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','19359','vertical_datum','EPSG','1354','EPSG','3213','EPSG','1026'); +INSERT INTO "vertical_datum" VALUES('EPSG','1362','Formentera',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "usage" VALUES('EPSG','19908','vertical_datum','EPSG','1362','EPSG','4739','EPSG','1178'); +INSERT INTO "vertical_datum" VALUES('EPSG','1363','Alboran',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "usage" VALUES('EPSG','19909','vertical_datum','EPSG','1363','EPSG','4741','EPSG','1178'); +INSERT INTO "vertical_datum" VALUES('EPSG','1364','Melilla',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "usage" VALUES('EPSG','19910','vertical_datum','EPSG','1364','EPSG','4740','EPSG','1178'); INSERT INTO "vertical_datum" VALUES('EPSG','5100','Mean Sea Level',NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','13307','vertical_datum','EPSG','5100','EPSG','1262','EPSG','1199'); INSERT INTO "vertical_datum" VALUES('EPSG','5101','Ordnance Datum Newlyn',NULL,'1956-01-01',NULL,NULL,NULL,0); From 64d6d5f3a5d03b8160a14cbefd282b5d42a641a3 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Wed, 5 Jul 2023 19:51:04 +0200 Subject: [PATCH 2/2] Equidistant Conic: add mapping to new EPSG:1119 method --- data/sql/proj_db_table_defs.sql | 1 + include/proj/coordinateoperation.hpp | 8 +-- scripts/build_esri_projection_mapping.py | 10 ++-- src/iso19111/operation/conversion.cpp | 39 ++++++------ src/iso19111/operation/esriparammappings.cpp | 16 ++--- src/iso19111/operation/parammappings.cpp | 10 +++- src/proj_constants.h | 3 + test/unit/test_io.cpp | 62 ++++++++++++++++++-- test/unit/test_operation.cpp | 19 +++--- 9 files changed, 117 insertions(+), 51 deletions(-) diff --git a/data/sql/proj_db_table_defs.sql b/data/sql/proj_db_table_defs.sql index ef405a23c9..bd180d2b5d 100644 --- a/data/sql/proj_db_table_defs.sql +++ b/data/sql/proj_db_table_defs.sql @@ -504,6 +504,7 @@ BEGIN 'EPSG_1078_Equal Earth', 'EPSG_1102_Lambert Conic Conformal (1SP variant B)', 'EPSG_1111_Transverse Mercator 3D', + 'EPSG_1119_Equidistant Conic', 'EPSG_9602_Geographic/geocentric conversions', 'EPSG_9659_Geographic3D to 2D conversion', 'EPSG_9801_Lambert Conic Conformal (1SP)', diff --git a/include/proj/coordinateoperation.hpp b/include/proj/coordinateoperation.hpp index c0e54d3844..09183f9d63 100644 --- a/include/proj/coordinateoperation.hpp +++ b/include/proj/coordinateoperation.hpp @@ -1105,12 +1105,12 @@ class PROJ_GCC_DLL Conversion : public SingleOperation { PROJ_DLL static ConversionNNPtr createEquidistantConic(const util::PropertyMap &properties, - const common::Angle ¢erLat, - const common::Angle ¢erLong, + const common::Angle &latitudeFalseOrigin, + const common::Angle &longitudeFalseOrigin, const common::Angle &latitudeFirstParallel, const common::Angle &latitudeSecondParallel, - const common::Length &falseEasting, - const common::Length &falseNorthing); + const common::Length &eastingFalseOrigin, + const common::Length &northingFalseOrigin); PROJ_DLL static ConversionNNPtr createEckertI(const util::PropertyMap &properties, diff --git a/scripts/build_esri_projection_mapping.py b/scripts/build_esri_projection_mapping.py index e1fa3400f1..6e103e9f21 100644 --- a/scripts/build_esri_projection_mapping.py +++ b/scripts/build_esri_projection_mapping.py @@ -299,14 +299,14 @@ - Latitude_Of_Origin: EPSG_NAME_PARAMETER_LATITUDE_OF_NATURAL_ORIGIN - Equidistant_Conic: - WKT2_name: PROJ_WKT2_NAME_METHOD_EQUIDISTANT_CONIC + WKT2_name: EPSG_NAME_METHOD_EQUIDISTANT_CONIC Params: - - False_Easting: EPSG_NAME_PARAMETER_FALSE_EASTING - - False_Northing: EPSG_NAME_PARAMETER_FALSE_NORTHING - - Central_Meridian: EPSG_NAME_PARAMETER_LONGITUDE_OF_NATURAL_ORIGIN + - False_Easting: EPSG_NAME_PARAMETER_EASTING_FALSE_ORIGIN + - False_Northing: EPSG_NAME_PARAMETER_NORTHING_FALSE_ORIGIN + - Central_Meridian: EPSG_NAME_PARAMETER_LONGITUDE_FALSE_ORIGIN - Standard_Parallel_1: EPSG_NAME_PARAMETER_LATITUDE_1ST_STD_PARALLEL - Standard_Parallel_2: EPSG_NAME_PARAMETER_LATITUDE_2ND_STD_PARALLEL - - Latitude_Of_Origin: EPSG_NAME_PARAMETER_LATITUDE_OF_NATURAL_ORIGIN + - Latitude_Of_Origin: EPSG_NAME_PARAMETER_LATITUDE_FALSE_ORIGIN - Cassini: WKT2_name: EPSG_NAME_METHOD_CASSINI_SOLDNER diff --git a/src/iso19111/operation/conversion.cpp b/src/iso19111/operation/conversion.cpp index 23ea73d8b3..50aa3f6cdf 100644 --- a/src/iso19111/operation/conversion.cpp +++ b/src/iso19111/operation/conversion.cpp @@ -917,31 +917,32 @@ ConversionNNPtr Conversion::createCassiniSoldner( * * Equidistant Conic projection method. * - * There is no equivalent in EPSG. + * This method is defined as + * + * EPSG:1119. * - * @note Although not found in EPSG, the order of arguments is conformant with - * the "spirit" of EPSG and different than OGRSpatialReference::setEC() of GDAL - *<= 2.3 * @param properties See \ref general_properties of the conversion. - *If the name + * @param properties See \ref general_properties of the conversion. If the name * is not provided, it is automatically set. - * - * @param centerLat See \ref center_latitude - * @param centerLong See \ref center_longitude + * @param latitudeFalseOrigin See \ref latitude_false_origin + * @param longitudeFalseOrigin See \ref longitude_false_origin * @param latitudeFirstParallel See \ref latitude_first_std_parallel * @param latitudeSecondParallel See \ref latitude_second_std_parallel - * @param falseEasting See \ref false_easting - * @param falseNorthing See \ref false_northing + * @param eastingFalseOrigin See \ref easting_false_origin + * @param northingFalseOrigin See \ref northing_false_origin * @return a new Conversion. */ -ConversionNNPtr Conversion::createEquidistantConic( - const util::PropertyMap &properties, const common::Angle ¢erLat, - const common::Angle ¢erLong, const common::Angle &latitudeFirstParallel, - const common::Angle &latitudeSecondParallel, - const common::Length &falseEasting, const common::Length &falseNorthing) { - return create(properties, PROJ_WKT2_NAME_METHOD_EQUIDISTANT_CONIC, - createParams(centerLat, centerLong, latitudeFirstParallel, - latitudeSecondParallel, falseEasting, - falseNorthing)); +ConversionNNPtr +Conversion::createEquidistantConic(const util::PropertyMap &properties, + const common::Angle &latitudeFalseOrigin, + const common::Angle &longitudeFalseOrigin, + const common::Angle &latitudeFirstParallel, + const common::Angle &latitudeSecondParallel, + const common::Length &eastingFalseOrigin, + const common::Length &northingFalseOrigin) { + return create(properties, EPSG_CODE_METHOD_EQUIDISTANT_CONIC, + createParams(latitudeFalseOrigin, longitudeFalseOrigin, + latitudeFirstParallel, latitudeSecondParallel, + eastingFalseOrigin, northingFalseOrigin)); } // --------------------------------------------------------------------------- diff --git a/src/iso19111/operation/esriparammappings.cpp b/src/iso19111/operation/esriparammappings.cpp index 278992adae..67241f0c6b 100644 --- a/src/iso19111/operation/esriparammappings.cpp +++ b/src/iso19111/operation/esriparammappings.cpp @@ -399,18 +399,18 @@ static const ESRIParamMapping paramsESRI_Polar_Stereographic_Variant_A[] = { {nullptr, nullptr, 0, "0.0", false}}; static const ESRIParamMapping paramsESRI_Equidistant_Conic[] = { - {"False_Easting", EPSG_NAME_PARAMETER_FALSE_EASTING, - EPSG_CODE_PARAMETER_FALSE_EASTING, "0.0", false}, - {"False_Northing", EPSG_NAME_PARAMETER_FALSE_NORTHING, - EPSG_CODE_PARAMETER_FALSE_NORTHING, "0.0", false}, - {"Central_Meridian", EPSG_NAME_PARAMETER_LONGITUDE_OF_NATURAL_ORIGIN, - EPSG_CODE_PARAMETER_LONGITUDE_OF_NATURAL_ORIGIN, "0.0", false}, + {"False_Easting", EPSG_NAME_PARAMETER_EASTING_FALSE_ORIGIN, + EPSG_CODE_PARAMETER_EASTING_FALSE_ORIGIN, "0.0", false}, + {"False_Northing", EPSG_NAME_PARAMETER_NORTHING_FALSE_ORIGIN, + EPSG_CODE_PARAMETER_NORTHING_FALSE_ORIGIN, "0.0", false}, + {"Central_Meridian", EPSG_NAME_PARAMETER_LONGITUDE_FALSE_ORIGIN, + EPSG_CODE_PARAMETER_LONGITUDE_FALSE_ORIGIN, "0.0", false}, {"Standard_Parallel_1", EPSG_NAME_PARAMETER_LATITUDE_1ST_STD_PARALLEL, EPSG_CODE_PARAMETER_LATITUDE_1ST_STD_PARALLEL, "0.0", false}, {"Standard_Parallel_2", EPSG_NAME_PARAMETER_LATITUDE_2ND_STD_PARALLEL, EPSG_CODE_PARAMETER_LATITUDE_2ND_STD_PARALLEL, "0.0", false}, - {"Latitude_Of_Origin", EPSG_NAME_PARAMETER_LATITUDE_OF_NATURAL_ORIGIN, - EPSG_CODE_PARAMETER_LATITUDE_OF_NATURAL_ORIGIN, "0.0", false}, + {"Latitude_Of_Origin", EPSG_NAME_PARAMETER_LATITUDE_FALSE_ORIGIN, + EPSG_CODE_PARAMETER_LATITUDE_FALSE_ORIGIN, "0.0", false}, {nullptr, nullptr, 0, "0.0", false}}; static const ESRIParamMapping paramsESRI_Cassini[] = { diff --git a/src/iso19111/operation/parammappings.cpp b/src/iso19111/operation/parammappings.cpp index 8400067301..30f32dd935 100644 --- a/src/iso19111/operation/parammappings.cpp +++ b/src/iso19111/operation/parammappings.cpp @@ -171,7 +171,7 @@ static const ParamMapping paramLongFalseOriginLongOfCenter = { EPSG_CODE_PARAMETER_LONGITUDE_FALSE_ORIGIN, WKT1_LONGITUDE_OF_CENTER, common::UnitOfMeasure::Type::ANGULAR, lon_0}; -static const ParamMapping *const paramsAEA[] = { +static const ParamMapping *const paramsAEA_EQDC[] = { ¶mLatFalseOriginLatOfCenter, ¶mLongFalseOriginLongOfCenter, ¶mLatitude1stStdParallel, @@ -608,7 +608,7 @@ static const MethodMapping projectionMethodMappings[] = { paramsTMG}, {EPSG_NAME_METHOD_ALBERS_EQUAL_AREA, EPSG_CODE_METHOD_ALBERS_EQUAL_AREA, - "Albers_Conic_Equal_Area", "aea", nullptr, paramsAEA}, + "Albers_Conic_Equal_Area", "aea", nullptr, paramsAEA_EQDC}, {EPSG_NAME_METHOD_LAMBERT_CONIC_CONFORMAL_1SP, EPSG_CODE_METHOD_LAMBERT_CONIC_CONFORMAL_1SP, @@ -666,6 +666,12 @@ static const MethodMapping projectionMethodMappings[] = { EPSG_CODE_METHOD_HYPERBOLIC_CASSINI_SOLDNER, nullptr, "cass", "hyperbolic", paramsNatOrigin}, + // Definition to be put before PROJ_WKT2_NAME_METHOD_EQUIDISTANT_CONIC + {EPSG_NAME_METHOD_EQUIDISTANT_CONIC, EPSG_CODE_METHOD_EQUIDISTANT_CONIC, + "Equidistant_Conic", "eqdc", nullptr, paramsAEA_EQDC}, + + // Definition before EPSG codified it. To be put after entry for + // EPSG_NAME_METHOD_EQUIDISTANT_CONIC {PROJ_WKT2_NAME_METHOD_EQUIDISTANT_CONIC, 0, "Equidistant_Conic", "eqdc", nullptr, paramsEQDC}, diff --git a/src/proj_constants.h b/src/proj_constants.h index 60e4d3738a..9b93aef360 100644 --- a/src/proj_constants.h +++ b/src/proj_constants.h @@ -105,6 +105,9 @@ #define PROJ_WKT2_NAME_METHOD_EQUIDISTANT_CONIC "Equidistant Conic" +#define EPSG_NAME_METHOD_EQUIDISTANT_CONIC "Equidistant Conic" +#define EPSG_CODE_METHOD_EQUIDISTANT_CONIC 1119 + #define PROJ_WKT2_NAME_METHOD_ECKERT_I "Eckert I" #define PROJ_WKT2_NAME_METHOD_ECKERT_II "Eckert II" diff --git a/test/unit/test_io.cpp b/test/unit/test_io.cpp index c42d5903b6..74bce25125 100644 --- a/test/unit/test_io.cpp +++ b/test/unit/test_io.cpp @@ -2377,6 +2377,60 @@ TEST(wkt_parse, wkt2_2019_projected_with_base_geocentric) { // --------------------------------------------------------------------------- +TEST(wkt_parse, wkt2_2019_eqdc_non_epsg) { + // Example from WKT2:2019 + auto wkt = "PROJCRS[\"unknown\",\n" + " BASEGEOGCRS[\"unknown\",\n" + " DATUM[\"World Geodetic System 1984\",\n" + " ELLIPSOID[\"WGS 84\",6378137,298.257223563,\n" + " LENGTHUNIT[\"metre\",1]],\n" + " ID[\"EPSG\",6326]],\n" + " PRIMEM[\"Greenwich\",0,\n" + " ANGLEUNIT[\"degree\",0.0174532925199433],\n" + " ID[\"EPSG\",8901]]],\n" + " CONVERSION[\"unknown\",\n" + " METHOD[\"Equidistant Conic\"],\n" + " PARAMETER[\"Latitude of natural origin\",1,\n" + " ANGLEUNIT[\"degree\",0.0174532925199433],\n" + " ID[\"EPSG\",8801]],\n" + " PARAMETER[\"Longitude of natural origin\",2,\n" + " ANGLEUNIT[\"degree\",0.0174532925199433],\n" + " ID[\"EPSG\",8802]],\n" + " PARAMETER[\"Latitude of 1st standard parallel\",3,\n" + " ANGLEUNIT[\"degree\",0.0174532925199433],\n" + " ID[\"EPSG\",8823]],\n" + " PARAMETER[\"Latitude of 2nd standard parallel\",4,\n" + " ANGLEUNIT[\"degree\",0.0174532925199433],\n" + " ID[\"EPSG\",8824]],\n" + " PARAMETER[\"False easting\",5,\n" + " LENGTHUNIT[\"metre\",1],\n" + " ID[\"EPSG\",8806]],\n" + " PARAMETER[\"False northing\",6,\n" + " LENGTHUNIT[\"metre\",1],\n" + " ID[\"EPSG\",8807]]],\n" + " CS[Cartesian,2],\n" + " AXIS[\"(E)\",east,\n" + " ORDER[1],\n" + " LENGTHUNIT[\"metre\",1,\n" + " ID[\"EPSG\",9001]]],\n" + " AXIS[\"(N)\",north,\n" + " ORDER[2],\n" + " LENGTHUNIT[\"metre\",1,\n" + " ID[\"EPSG\",9001]]]]"; + auto obj = WKTParser().createFromWKT(wkt); + auto crs = nn_dynamic_pointer_cast(obj); + ASSERT_TRUE(crs != nullptr); + + EXPECT_EQ( + crs->exportToPROJString( + PROJStringFormatter::create(PROJStringFormatter::Convention::PROJ_4) + .get()), + "+proj=eqdc +lat_0=1 +lon_0=2 +lat_1=3 +lat_2=4 +x_0=5 +y_0=6 " + "+datum=WGS84 +units=m +no_defs +type=crs"); +} + +// --------------------------------------------------------------------------- + TEST(crs, projected_angular_unit_from_primem) { auto obj = WKTParser().createFromWKT( "PROJCRS[\"NTF (Paris) / Lambert Nord France\",\n" @@ -6422,12 +6476,12 @@ static const struct { {"Latitude_Of_Origin", 6}}, "Equidistant Conic", { - {"Latitude of natural origin", 6}, - {"Longitude of natural origin", 3}, + {"Latitude of false origin", 6}, + {"Longitude of false origin", 3}, {"Latitude of 1st standard parallel", 4}, {"Latitude of 2nd standard parallel", 5}, - {"False easting", 1}, - {"False northing", 2}, + {"Easting at false origin", 1}, + {"Northing at false origin", 2}, }}, {"Cassini", diff --git a/test/unit/test_operation.cpp b/test/unit/test_operation.cpp index f098d8cba7..98fbd2c490 100644 --- a/test/unit/test_operation.cpp +++ b/test/unit/test_operation.cpp @@ -2017,25 +2017,26 @@ TEST(operation, equidistant_conic_export) { EXPECT_EQ(conv->exportToWKT(WKTFormatter::create().get()), "CONVERSION[\"Equidistant Conic\",\n" - " METHOD[\"Equidistant Conic\"],\n" - " PARAMETER[\"Latitude of natural origin\",1,\n" + " METHOD[\"Equidistant Conic\",\n" + " ID[\"EPSG\",1119]],\n" + " PARAMETER[\"Latitude of false origin\",1,\n" " ANGLEUNIT[\"degree\",0.0174532925199433],\n" - " ID[\"EPSG\",8801]],\n" - " PARAMETER[\"Longitude of natural origin\",2,\n" + " ID[\"EPSG\",8821]],\n" + " PARAMETER[\"Longitude of false origin\",2,\n" " ANGLEUNIT[\"degree\",0.0174532925199433],\n" - " ID[\"EPSG\",8802]],\n" + " ID[\"EPSG\",8822]],\n" " PARAMETER[\"Latitude of 1st standard parallel\",3,\n" " ANGLEUNIT[\"degree\",0.0174532925199433],\n" " ID[\"EPSG\",8823]],\n" " PARAMETER[\"Latitude of 2nd standard parallel\",4,\n" " ANGLEUNIT[\"degree\",0.0174532925199433],\n" " ID[\"EPSG\",8824]],\n" - " PARAMETER[\"False easting\",5,\n" + " PARAMETER[\"Easting at false origin\",5,\n" " LENGTHUNIT[\"metre\",1],\n" - " ID[\"EPSG\",8806]],\n" - " PARAMETER[\"False northing\",6,\n" + " ID[\"EPSG\",8826]],\n" + " PARAMETER[\"Northing at false origin\",6,\n" " LENGTHUNIT[\"metre\",1],\n" - " ID[\"EPSG\",8807]]]"); + " ID[\"EPSG\",8827]]]"); EXPECT_EQ( conv->exportToWKT(