diff --git a/data/CMakeLists.txt b/data/CMakeLists.txt index af8f3ccbe0..57d1d2c3dc 100644 --- a/data/CMakeLists.txt +++ b/data/CMakeLists.txt @@ -31,7 +31,7 @@ set(ALL_SQL_IN "${CMAKE_CURRENT_BINARY_DIR}/all.sql.in") set(PROJ_DB "${CMAKE_CURRENT_BINARY_DIR}/proj.db") include(sql_filelist.cmake) -set(PROJ_DB_SQL_EXPECTED_MD5 "3e64f09041ed7dab23d9c38e6606c917") +set(PROJ_DB_SQL_EXPECTED_MD5 "647b538ee4ede75290431160ff932f8d") add_custom_command( OUTPUT ${PROJ_DB} diff --git a/data/sql/alias_name.sql b/data/sql/alias_name.sql index b915dd7683..bd45143619 100644 --- a/data/sql/alias_name.sql +++ b/data/sql/alias_name.sql @@ -755,7 +755,11 @@ INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','1380','BES2020','EPSG') INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','1389','RGM23','EPSG'); INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','1389','Repère de référence Géodésique de Mayotte 2023','EPSG'); INSERT INTO "alias_name" VALUES('vertical_datum','EPSG','1381','Saba','EPSG'); +INSERT INTO "alias_name" VALUES('vertical_datum','EPSG','1398','Bonaire','EPSG'); INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','1392','UZGD2024','EPSG'); +INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','1394','BES2020','EPSG'); +INSERT INTO "alias_name" VALUES('vertical_datum','EPSG','1395','Sint Eustatius','EPSG'); +INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','1399','ITRF2020-u2023','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'); @@ -8043,5 +8047,16 @@ INSERT INTO "alias_name" VALUES('projected_crs','EPSG','10699','ETRS-TM34','EPSG INSERT INTO "alias_name" VALUES('projected_crs','EPSG','10699','ETRS89 / UTM zone 34N','EPSG'); INSERT INTO "alias_name" VALUES('projected_crs','EPSG','10702','ETRS-TM36','EPSG'); INSERT INTO "alias_name" VALUES('projected_crs','EPSG','10702','ETRS89 / UTM zone 36N','EPSG'); +INSERT INTO "alias_name" VALUES('projected_crs','EPSG','10759','Bonaire / Bonaire TM','EPSG'); +INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','10763','Bonaire KADpeil','EPSG'); INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','10690','EUREF-FIN-GRS80','EPSG'); INSERT INTO "alias_name" VALUES('compound_crs','EPSG','10774','ETRS-TM35FIN/N2000','EPSG'); +INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','10737','BES2020','EPSG'); +INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','10738','BES2020','EPSG'); +INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','10739','BES2020','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','10746','Sint Eustatius / Sint Eustatius TM 2020 + Sint Eustatius height','EPSG'); +INSERT INTO "alias_name" VALUES('projected_crs','EPSG','10745','Sint Eustatius / UTM zone 20N','EPSG'); +INSERT INTO "alias_name" VALUES('projected_crs','EPSG','10744','Sint Eustatius / Sint Eustatius TM 2020','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','10747','Sint Eustatius / UTM 20N + Sint Eustatius height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','10764','Bonaire DPnet + Bonaire KADpeil','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','10764','Bonaire / Bonaire TM + Bonaire height','EPSG'); diff --git a/data/sql/axis.sql b/data/sql/axis.sql index 50de5899bf..685460d1fc 100644 --- a/data/sql/axis.sql +++ b/data/sql/axis.sql @@ -54,6 +54,8 @@ INSERT INTO "axis" VALUES('EPSG','1049','Local northing','n','north','EPSG','104 INSERT INTO "axis" VALUES('EPSG','1050','Local easting','e','east','EPSG','1048',2,'EPSG','9002'); INSERT INTO "axis" VALUES('EPSG','32933','Northing','N','north','EPSG','1053',1,'EPSG','9003'); INSERT INTO "axis" VALUES('EPSG','32934','Easting','E','east','EPSG','1053',2,'EPSG','9003'); +INSERT INTO "axis" VALUES('EPSG','32935','Easting','x','east','EPSG','1054',1,'EPSG','9001'); +INSERT INTO "axis" VALUES('EPSG','32936','Northing','y','north','EPSG','1054',2,'EPSG','9001'); INSERT INTO "axis" VALUES('EPSG','1','Easting','E','east','EPSG','4400',1,'EPSG','9001'); INSERT INTO "axis" VALUES('EPSG','2','Northing','N','north','EPSG','4400',2,'EPSG','9001'); INSERT INTO "axis" VALUES('EPSG','3','Easting','E','east','EPSG','4401',1,'EPSG','9062'); @@ -173,8 +175,6 @@ INSERT INTO "axis" VALUES('EPSG','180','Northing','X','north','EPSG','4533',1,'E INSERT INTO "axis" VALUES('EPSG','179','Easting','Y','east','EPSG','4533',2,'EPSG','9098'); INSERT INTO "axis" VALUES('EPSG','183','Northing','none','north','EPSG','4534',1,'EPSG','9001'); INSERT INTO "axis" VALUES('EPSG','184','Easting','none','east','EPSG','4534',2,'EPSG','9001'); -INSERT INTO "axis" VALUES('EPSG','63','Geodetic latitude','Lat','north','EPSG','6405',1,'EPSG','9102'); -INSERT INTO "axis" VALUES('EPSG','64','Geodetic longitude','Long','east','EPSG','6405',2,'EPSG','9102'); INSERT INTO "axis" VALUES('EPSG','115','Geocentric X','X','geocentricX','EPSG','6500',1,'EPSG','9001'); INSERT INTO "axis" VALUES('EPSG','116','Geocentric Y','Y','geocentricY','EPSG','6500',2,'EPSG','9001'); INSERT INTO "axis" VALUES('EPSG','117','Geocentric Z','Z','geocentricZ','EPSG','6500',3,'EPSG','9001'); @@ -219,6 +219,8 @@ INSERT INTO "axis" VALUES('EPSG','59','Geodetic longitude','Lon','east','EPSG',' INSERT INTO "axis" VALUES('EPSG','32879','Spherical latitude','lat','north','EPSG','6404',1,'EPSG','9122'); INSERT INTO "axis" VALUES('EPSG','32880','Spherical longitude','lon','east','EPSG','6404',2,'EPSG','9122'); INSERT INTO "axis" VALUES('EPSG','32881','Geocentric radius','R','up','EPSG','6404',3,'EPSG','9001'); +INSERT INTO "axis" VALUES('EPSG','63','Geodetic latitude','Lat','north','EPSG','6405',1,'EPSG','9102'); +INSERT INTO "axis" VALUES('EPSG','64','Geodetic longitude','Long','east','EPSG','6405',2,'EPSG','9102'); INSERT INTO "axis" VALUES('EPSG','65','Geodetic latitude','Lat','north','EPSG','6406',1,'EPSG','9116'); INSERT INTO "axis" VALUES('EPSG','66','Geodetic longitude','Long','east','EPSG','6406',2,'EPSG','9116'); INSERT INTO "axis" VALUES('EPSG','67','Geodetic latitude','Lat','north','EPSG','6407',1,'EPSG','9117'); diff --git a/data/sql/compound_crs.sql b/data/sql/compound_crs.sql index c4f78f8675..bf6eed088e 100644 --- a/data/sql/compound_crs.sql +++ b/data/sql/compound_crs.sql @@ -898,6 +898,18 @@ INSERT INTO "compound_crs" VALUES('EPSG','10691','EUREF-FIN + N60 height',NULL,' INSERT INTO "usage" VALUES('EPSG','21985','compound_crs','EPSG','10691','EPSG','3333','EPSG','1270'); INSERT INTO "compound_crs" VALUES('EPSG','10692','EUREF-FIN + N2000 height',NULL,'EPSG','10690','EPSG','3900',0); INSERT INTO "usage" VALUES('EPSG','21986','compound_crs','EPSG','10692','EPSG','3333','EPSG','1270'); +INSERT INTO "compound_crs" VALUES('EPSG','10741','Sint Eustatius + Sint Eustatius height',NULL,'EPSG','10736','EPSG','10740',0); +INSERT INTO "usage" VALUES('EPSG','22289','compound_crs','EPSG','10741','EPSG','4788','EPSG','1270'); +INSERT INTO "compound_crs" VALUES('EPSG','10742','BES2020 Sint Eustatius + Sint Eustatius height',NULL,'EPSG','10739','EPSG','10740',0); +INSERT INTO "usage" VALUES('EPSG','22290','compound_crs','EPSG','10742','EPSG','4788','EPSG','1179'); +INSERT INTO "compound_crs" VALUES('EPSG','10746','Sint Eustatius DPnet short + Sint Eustatius height',NULL,'EPSG','10744','EPSG','10740',0); +INSERT INTO "usage" VALUES('EPSG','22310','compound_crs','EPSG','10746','EPSG','4788','EPSG','1142'); +INSERT INTO "compound_crs" VALUES('EPSG','10747','Sint Eustatius DPnet long + Sint Eustatius height',NULL,'EPSG','10745','EPSG','10740',0); +INSERT INTO "usage" VALUES('EPSG','22378','compound_crs','EPSG','10747','EPSG','4788','EPSG','1142'); +INSERT INTO "compound_crs" VALUES('EPSG','10764','Bonaire DPnet + Bonaire height',NULL,'EPSG','10759','EPSG','10763',0); +INSERT INTO "usage" VALUES('EPSG','22379','compound_crs','EPSG','10764','EPSG','3822','EPSG','1181'); +INSERT INTO "compound_crs" VALUES('EPSG','10765','Bonaire 2004 + Bonaire height',NULL,'EPSG','10762','EPSG','10763',0); +INSERT INTO "usage" VALUES('EPSG','22177','compound_crs','EPSG','10765','EPSG','3822','EPSG','1270'); INSERT INTO "compound_crs" VALUES('EPSG','10774','EUREF-FIN / TM35FIN(E,N) + N2000 height',NULL,'EPSG','3067','EPSG','3900',0); INSERT INTO "usage" VALUES('EPSG','22245','compound_crs','EPSG','10774','EPSG','3333','EPSG','1142'); INSERT INTO "compound_crs" VALUES('EPSG','20001','ETRS89 + SVD2006 height',NULL,'EPSG','4258','EPSG','20000',0); diff --git a/data/sql/concatenated_operation.sql b/data/sql/concatenated_operation.sql index ee621c82b2..04bb779457 100644 --- a/data/sql/concatenated_operation.sql +++ b/data/sql/concatenated_operation.sql @@ -495,3 +495,13 @@ INSERT INTO "concatenated_operation" VALUES('EPSG','10496','ETRS89 + DVR90(2013) INSERT INTO "usage" VALUES('EPSG','20516','concatenated_operation','EPSG','10496','EPSG','1080','EPSG','1273'); INSERT INTO "concatenated_operation" VALUES('EPSG','10616','SRGI2013 + INAGeoid2020 v1 height to SRGI2013 + INAGeoid v2 height (1)','In central Java INAGeoid2020 v2 height minus INAGeoid2020 v1 height is approximately +0.2m (v1 surface is above the v2 surface). This difference varies significantly across Indonesia.','EPSG','9529','EPSG','20043',0.2,'BIG-Idn 2022',0); INSERT INTO "usage" VALUES('EPSG','21321','concatenated_operation','EPSG','10616','EPSG','1122','EPSG','1178'); +INSERT INTO "concatenated_operation" VALUES('EPSG','10675','BES2020 Saba to Saba height (1)','This operation is not reversible because step 2 is not reversible. For a reversible alternative see BES2020 Saba to Saba + Saba height (1) (code 10755).','EPSG','10638','EPSG','10642',0.1,'NSGI-Bes 2020',0); +INSERT INTO "usage" VALUES('EPSG','21877','concatenated_operation','EPSG','10675','EPSG','4757','EPSG','1133'); +INSERT INTO "concatenated_operation" VALUES('EPSG','10754','BES2020 Sint Eustatius to Sint Eustatius height (1)','This operation is not reversible because step 2 is not reversible. For a reversible alternative see BES2020 Sint Eustatius to Sint Eustatius + Sint Eustatius height (1) (code 10756).','EPSG','10738','EPSG','10740',0.1,'NSGI-Bes SEu 2023',0); +INSERT INTO "usage" VALUES('EPSG','22322','concatenated_operation','EPSG','10754','EPSG','4788','EPSG','1133'); +INSERT INTO "concatenated_operation" VALUES('EPSG','10755','BES2020 Saba to Saba + Saba height (1)','Reversible alternative to BES2020 Saba to Saba height (1) (code 10675).','EPSG','10638','EPSG','10643',0.1,'NSGI-Bes Saba 2020',0); +INSERT INTO "usage" VALUES('EPSG','22323','concatenated_operation','EPSG','10755','EPSG','4757','EPSG','1133'); +INSERT INTO "concatenated_operation" VALUES('EPSG','10756','BES2020 Sint Eustatius to Sint Eustatius + Sint Eustatius height (1)','Reversible alternative to BES2020 Sint Eustatius to Sint Eustatius height (1) (code 10754).','EPSG','10738','EPSG','10741',0.1,'NSGI-Bes SEu 2020',0); +INSERT INTO "usage" VALUES('EPSG','22324','concatenated_operation','EPSG','10756','EPSG','4788','EPSG','1133'); +INSERT INTO "concatenated_operation" VALUES('EPSG','10778','KKJ to EUREF-FIN (3)','Recommended transformation between KKJ and EUREF-FIN. Use this in preference to transformation KKJ to EUREF-FIN (2) (code 10098).','EPSG','4123','EPSG','10690',0.03,'NLS-FIN TINshift LatLon',0); +INSERT INTO "usage" VALUES('EPSG','22361','concatenated_operation','EPSG','10778','EPSG','3333','EPSG','1273'); diff --git a/data/sql/concatenated_operation_step.sql b/data/sql/concatenated_operation_step.sql index f1b0dd5928..53f76e83a7 100644 --- a/data/sql/concatenated_operation_step.sql +++ b/data/sql/concatenated_operation_step.sql @@ -504,3 +504,14 @@ INSERT INTO "concatenated_operation_step" VALUES('EPSG','10496',1,'EPSG','10492' INSERT INTO "concatenated_operation_step" VALUES('EPSG','10496',2,'EPSG','10494',NULL); INSERT INTO "concatenated_operation_step" VALUES('EPSG','10616',1,'EPSG','9629',NULL); INSERT INTO "concatenated_operation_step" VALUES('EPSG','10616',2,'EPSG','10145',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','10675',1,'EPSG','10646',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','10675',2,'EPSG','10657',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','10754',1,'EPSG','10750',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','10754',2,'EPSG','10752',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','10755',1,'EPSG','10646',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','10755',2,'EPSG','10658',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','10756',1,'EPSG','10750',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','10756',2,'EPSG','10753',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','10778',1,'EPSG','18193',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','10778',2,'EPSG','10703',NULL); +INSERT INTO "concatenated_operation_step" VALUES('EPSG','10778',3,'EPSG','16065',NULL); diff --git a/data/sql/conversion.sql b/data/sql/conversion.sql index 2d1f16c603..b306e10054 100644 --- a/data/sql/conversion.sql +++ b/data/sql/conversion.sql @@ -2022,6 +2022,10 @@ INSERT INTO "conversion" VALUES('EPSG','10722','Uzbekistan coordinate reference INSERT INTO "usage" VALUES('EPSG','22080','conversion','EPSG','10722','EPSG','4787','EPSG','1207'); INSERT INTO "conversion" VALUES('EPSG','10730','SPCS83 Delaware zone (meter)','See code 15317 for equivalent non-metric definition.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',38.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',-75.25,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999995,'EPSG','9201','EPSG','8806','False easting',200000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11139','conversion','EPSG','10730','EPSG','1378','EPSG','1142'); +INSERT INTO "conversion" VALUES('EPSG','10743','Sint Eustatius Transverse Mercator 2020','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',-63.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9996,'EPSG','9201','EPSG','8806','False easting',578.55,'EPSG','9001','EPSG','8807','False northing',-1930396.26,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "usage" VALUES('EPSG','22291','conversion','EPSG','10743','EPSG','4788','EPSG','1056'); +INSERT INTO "conversion" VALUES('EPSG','10757','Bonaire Transverse Mercator','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',12.105037123,'EPSG','9110','EPSG','8802','Longitude of natural origin',-68.150648821,'EPSG','9110','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',23209.56,'EPSG','9001','EPSG','8807','False northing',21423.99,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "usage" VALUES('EPSG','22167','conversion','EPSG','10757','EPSG','3822','EPSG','1056'); INSERT INTO "conversion" VALUES('EPSG','10901','Florida CS27 East zone','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',24.2,'EPSG','9110','EPSG','8802','Longitude of natural origin',-81.0,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999941177,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9003','EPSG','8807','False northing',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','11140','conversion','EPSG','10901','EPSG','2186','EPSG','1142'); INSERT INTO "conversion" VALUES('EPSG','10902','Florida CS27 West zone','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',24.2,'EPSG','9110','EPSG','8802','Longitude of natural origin',-82.0,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999941177,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9003','EPSG','8807','False northing',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0); diff --git a/data/sql/coordinate_system.sql b/data/sql/coordinate_system.sql index be2167cd53..035dcf6931 100644 --- a/data/sql/coordinate_system.sql +++ b/data/sql/coordinate_system.sql @@ -28,6 +28,7 @@ INSERT INTO "coordinate_system" VALUES('EPSG','1048','Cartesian',2); INSERT INTO "coordinate_system" VALUES('EPSG','1049','vertical',1); INSERT INTO "coordinate_system" VALUES('EPSG','1050','vertical',1); INSERT INTO "coordinate_system" VALUES('EPSG','1053','Cartesian',2); +INSERT INTO "coordinate_system" VALUES('EPSG','1054','Cartesian',2); INSERT INTO "coordinate_system" VALUES('EPSG','4400','Cartesian',2); INSERT INTO "coordinate_system" VALUES('EPSG','4401','Cartesian',2); INSERT INTO "coordinate_system" VALUES('EPSG','4402','Cartesian',2); diff --git a/data/sql/extent.sql b/data/sql/extent.sql index ddc2870479..5dae2bdf7a 100644 --- a/data/sql/extent.sql +++ b/data/sql/extent.sql @@ -3764,3 +3764,4 @@ INSERT INTO "extent" VALUES('EPSG','4784','Uzbekistan - west of 60°E','Uzbekist INSERT INTO "extent" VALUES('EPSG','4785','Uzbekistan - 60°E to 66°E','Uzbekistan - between 60°E and 66°E.',38.22,44.82,60.0,66.0,0); INSERT INTO "extent" VALUES('EPSG','4786','Uzbekistan - 66°E to 72°E','Uzbekistan - between 66°E and 72°E.',37.18,43.0,66.0,72.0,0); INSERT INTO "extent" VALUES('EPSG','4787','Uzbekistan - east of 72°E','Uzbekistan - east of 72°E.',40.26,41.21,72.0,73.17,0); +INSERT INTO "extent" VALUES('EPSG','4788','BES Islands - Sint Eustatius - onshore','Bonaire, Sint Eustatius and Saba (BES Islands or Caribbean Netherlands) - Sint Eustatius - onshore.',17.41,17.58,-63.05,-62.88,0); diff --git a/data/sql/geodetic_crs.sql b/data/sql/geodetic_crs.sql index a5428a89ba..b9a36c6888 100644 --- a/data/sql/geodetic_crs.sql +++ b/data/sql/geodetic_crs.sql @@ -2175,7 +2175,7 @@ INSERT INTO "usage" VALUES('EPSG','17438','geodetic_crs','EPSG','9969','EPSG','4 INSERT INTO "geodetic_crs" VALUES('EPSG','9974','FNL22-IRF',NULL,'geographic 2D','EPSG','6422','EPSG','1321',NULL,0); INSERT INTO "usage" VALUES('EPSG','17451','geodetic_crs','EPSG','9974','EPSG','4664','EPSG','1141'); INSERT INTO "geodetic_crs" VALUES('EPSG','9988','ITRF2020',NULL,'geocentric','EPSG','6500','EPSG','1322',NULL,0); -INSERT INTO "usage" VALUES('EPSG','17904','geodetic_crs','EPSG','9988','EPSG','2830','EPSG','1027'); +INSERT INTO "usage" VALUES('EPSG','17904','geodetic_crs','EPSG','9988','EPSG','1262','EPSG','1027'); INSERT INTO "geodetic_crs" VALUES('EPSG','9989','ITRF2020',NULL,'geographic 3D','EPSG','6423','EPSG','1322',NULL,0); INSERT INTO "usage" VALUES('EPSG','17902','geodetic_crs','EPSG','9989','EPSG','1262','EPSG','1027'); INSERT INTO "geodetic_crs" VALUES('EPSG','9990','ITRF2020',NULL,'geographic 2D','EPSG','6422','EPSG','1322',NULL,0); @@ -2185,7 +2185,7 @@ INSERT INTO "usage" VALUES('EPSG','19659','geodetic_crs','EPSG','10158','EPSG',' INSERT INTO "geodetic_crs" VALUES('EPSG','10175','DoPw22-IRF',NULL,'geographic 2D','EPSG','6422','EPSG','1334',NULL,0); INSERT INTO "usage" VALUES('EPSG','18657','geodetic_crs','EPSG','10175','EPSG','4686','EPSG','1141'); INSERT INTO "geodetic_crs" VALUES('EPSG','10176','IGS20',NULL,'geocentric','EPSG','6500','EPSG','1333',NULL,0); -INSERT INTO "usage" VALUES('EPSG','18627','geodetic_crs','EPSG','10176','EPSG','2830','EPSG','1027'); +INSERT INTO "usage" VALUES('EPSG','18627','geodetic_crs','EPSG','10176','EPSG','1262','EPSG','1027'); INSERT INTO "geodetic_crs" VALUES('EPSG','10177','IGS20',NULL,'geographic 3D','EPSG','6423','EPSG','1333',NULL,0); INSERT INTO "usage" VALUES('EPSG','18628','geodetic_crs','EPSG','10177','EPSG','1262','EPSG','1027'); INSERT INTO "geodetic_crs" VALUES('EPSG','10178','IGS20',NULL,'geographic 2D','EPSG','6422','EPSG','1333',NULL,0); @@ -2332,6 +2332,38 @@ INSERT INTO "geodetic_crs" VALUES('EPSG','10724','UZGD2024',NULL,'geographic 3D' INSERT INTO "usage" VALUES('EPSG','22088','geodetic_crs','EPSG','10724','EPSG','1248','EPSG','1027'); INSERT INTO "geodetic_crs" VALUES('EPSG','10725','UZGD2024',NULL,'geographic 2D','EPSG','6422','EPSG','1392',NULL,0); INSERT INTO "usage" VALUES('EPSG','22089','geodetic_crs','EPSG','10725','EPSG','1248','EPSG','1183'); +INSERT INTO "geodetic_crs" VALUES('EPSG','10734','Sint Eustatius',NULL,'geocentric','EPSG','6500','EPSG','1393',NULL,0); +INSERT INTO "usage" VALUES('EPSG','22282','geodetic_crs','EPSG','10734','EPSG','4788','EPSG','1269'); +INSERT INTO "geodetic_crs" VALUES('EPSG','10735','Sint Eustatius',NULL,'geographic 3D','EPSG','6423','EPSG','1393',NULL,0); +INSERT INTO "usage" VALUES('EPSG','22283','geodetic_crs','EPSG','10735','EPSG','4788','EPSG','1269'); +INSERT INTO "geodetic_crs" VALUES('EPSG','10736','Sint Eustatius',NULL,'geographic 2D','EPSG','6422','EPSG','1393',NULL,0); +INSERT INTO "usage" VALUES('EPSG','22284','geodetic_crs','EPSG','10736','EPSG','4788','EPSG','1269'); +INSERT INTO "geodetic_crs" VALUES('EPSG','10737','BES2020 Sint Eustatius',NULL,'geocentric','EPSG','6500','EPSG','1394',NULL,0); +INSERT INTO "usage" VALUES('EPSG','22285','geodetic_crs','EPSG','10737','EPSG','4788','EPSG','1178'); +INSERT INTO "geodetic_crs" VALUES('EPSG','10738','BES2020 Sint Eustatius',NULL,'geographic 3D','EPSG','6423','EPSG','1394',NULL,0); +INSERT INTO "usage" VALUES('EPSG','22286','geodetic_crs','EPSG','10738','EPSG','4788','EPSG','1178'); +INSERT INTO "geodetic_crs" VALUES('EPSG','10739','BES2020 Sint Eustatius',NULL,'geographic 2D','EPSG','6422','EPSG','1394',NULL,0); +INSERT INTO "usage" VALUES('EPSG','22287','geodetic_crs','EPSG','10739','EPSG','4788','EPSG','1178'); +INSERT INTO "geodetic_crs" VALUES('EPSG','10758','Bonaire',NULL,'geographic 2D','EPSG','6422','EPSG','1396',NULL,0); +INSERT INTO "usage" VALUES('EPSG','22168','geodetic_crs','EPSG','10758','EPSG','3822','EPSG','1269'); +INSERT INTO "geodetic_crs" VALUES('EPSG','10760','Bonaire 2004',NULL,'geocentric','EPSG','6500','EPSG','1397',NULL,0); +INSERT INTO "usage" VALUES('EPSG','22269','geodetic_crs','EPSG','10760','EPSG','3822','EPSG','1178'); +INSERT INTO "geodetic_crs" VALUES('EPSG','10761','Bonaire 2004',NULL,'geographic 3D','EPSG','6423','EPSG','1397',NULL,0); +INSERT INTO "usage" VALUES('EPSG','22172','geodetic_crs','EPSG','10761','EPSG','3822','EPSG','1178'); +INSERT INTO "geodetic_crs" VALUES('EPSG','10762','Bonaire 2004',NULL,'geographic 2D','EPSG','6422','EPSG','1397',NULL,0); +INSERT INTO "usage" VALUES('EPSG','22173','geodetic_crs','EPSG','10762','EPSG','3822','EPSG','1178'); +INSERT INTO "geodetic_crs" VALUES('EPSG','10779','ITRF2020-u2023',NULL,'geocentric','EPSG','6500','EPSG','1399',NULL,0); +INSERT INTO "usage" VALUES('EPSG','22372','geodetic_crs','EPSG','10779','EPSG','2830','EPSG','1027'); +INSERT INTO "geodetic_crs" VALUES('EPSG','10780','ITRF2020-u2023',NULL,'geographic 3D','EPSG','6423','EPSG','1399',NULL,0); +INSERT INTO "usage" VALUES('EPSG','22335','geodetic_crs','EPSG','10780','EPSG','1262','EPSG','1027'); +INSERT INTO "geodetic_crs" VALUES('EPSG','10781','ITRF2020-u2023',NULL,'geographic 2D','EPSG','6422','EPSG','1399',NULL,0); +INSERT INTO "usage" VALUES('EPSG','22336','geodetic_crs','EPSG','10781','EPSG','1262','EPSG','1027'); +INSERT INTO "geodetic_crs" VALUES('EPSG','10783','IGb20',NULL,'geocentric','EPSG','6500','EPSG','1400',NULL,0); +INSERT INTO "usage" VALUES('EPSG','22363','geodetic_crs','EPSG','10783','EPSG','2830','EPSG','1027'); +INSERT INTO "geodetic_crs" VALUES('EPSG','10784','IGb20',NULL,'geographic 3D','EPSG','6423','EPSG','1400',NULL,0); +INSERT INTO "usage" VALUES('EPSG','22364','geodetic_crs','EPSG','10784','EPSG','1262','EPSG','1027'); +INSERT INTO "geodetic_crs" VALUES('EPSG','10785','IGb20',NULL,'geographic 2D','EPSG','6422','EPSG','1400',NULL,0); +INSERT INTO "usage" VALUES('EPSG','22365','geodetic_crs','EPSG','10785','EPSG','1262','EPSG','1027'); 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 3d70fae40f..475f9b5538 100644 --- a/data/sql/geodetic_datum.sql +++ b/data/sql/geodetic_datum.sql @@ -426,7 +426,7 @@ INSERT INTO "geodetic_datum" VALUES('EPSG','1367','Brenner Base Tunnel 2000',NUL INSERT INTO "usage" VALUES('EPSG','20337','geodetic_datum','EPSG','1367','EPSG','4744','EPSG','1285'); INSERT INTO "geodetic_datum" VALUES('EPSG','1379','Saba',NULL,'EPSG','7022','EPSG','8901','2023-04-05',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','22072','geodetic_datum','EPSG','1379','EPSG','4757','EPSG','1181'); -INSERT INTO "geodetic_datum" VALUES('EPSG','1380','BES2020 Saba',NULL,'EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "geodetic_datum" VALUES('EPSG','1380','BES2020 Saba',NULL,'EPSG','7019','EPSG','8901','2023-04-05',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','21849','geodetic_datum','EPSG','1380','EPSG','4757','EPSG','1027'); INSERT INTO "geodetic_datum" VALUES('EPSG','1382','European Terrestrial Reference Frame 2020',NULL,'EPSG','7019','EPSG','8901','2024-01-31',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','21225','geodetic_datum','EPSG','1382','EPSG','1298','EPSG','1027'); @@ -442,6 +442,18 @@ INSERT INTO "geodetic_datum" VALUES('EPSG','1391','EUREF-FIN',NULL,'EPSG','7019' INSERT INTO "usage" VALUES('EPSG','21991','geodetic_datum','EPSG','1391','EPSG','1095','EPSG','1181'); INSERT INTO "geodetic_datum" VALUES('EPSG','1392','Uzbekistan Geodetic Datum 2024',NULL,'EPSG','7019','EPSG','8901','2024-07-04',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','22194','geodetic_datum','EPSG','1392','EPSG','1248','EPSG','1027'); +INSERT INTO "geodetic_datum" VALUES('EPSG','1393','Sint Eustatius',NULL,'EPSG','7022','EPSG','8901','2023-04-05',NULL,NULL,NULL,NULL,0); +INSERT INTO "usage" VALUES('EPSG','22279','geodetic_datum','EPSG','1393','EPSG','4788','EPSG','1181'); +INSERT INTO "geodetic_datum" VALUES('EPSG','1394','BES2020 Sint Eustatius',NULL,'EPSG','7019','EPSG','8901','2023-04-05',NULL,NULL,NULL,NULL,0); +INSERT INTO "usage" VALUES('EPSG','22280','geodetic_datum','EPSG','1394','EPSG','4788','EPSG','1027'); +INSERT INTO "geodetic_datum" VALUES('EPSG','1396','Bonaire',NULL,'EPSG','7022','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "usage" VALUES('EPSG','22166','geodetic_datum','EPSG','1396','EPSG','3822','EPSG','1181'); +INSERT INTO "geodetic_datum" VALUES('EPSG','1397','Bonaire 2004',NULL,'EPSG','7019','EPSG','8901',NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "usage" VALUES('EPSG','22170','geodetic_datum','EPSG','1397','EPSG','3822','EPSG','1181'); +INSERT INTO "geodetic_datum" VALUES('EPSG','1399','International Terrestrial Reference Frame 2020-u2023',NULL,'EPSG','7019','EPSG','8901','2015-01-01',2015.0,NULL,NULL,NULL,0); +INSERT INTO "usage" VALUES('EPSG','22373','geodetic_datum','EPSG','1399','EPSG','1262','EPSG','1027'); +INSERT INTO "geodetic_datum" VALUES('EPSG','1400','IGb20',NULL,'EPSG','7019','EPSG','8901','2015-01-01',2015.0,NULL,NULL,NULL,0); +INSERT INTO "usage" VALUES('EPSG','22362','geodetic_datum','EPSG','1400','EPSG','1262','EPSG','1027'); INSERT INTO "geodetic_datum" VALUES('EPSG','6001','Not specified (based on Airy 1830 ellipsoid)',NULL,'EPSG','7001','EPSG','8901',NULL,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,NULL,1); diff --git a/data/sql/grid_transformation.sql b/data/sql/grid_transformation.sql index 23d0b08b1a..685a09b074 100644 --- a/data/sql/grid_transformation.sql +++ b/data/sql/grid_transformation.sql @@ -1762,7 +1762,7 @@ INSERT INTO "grid_transformation" VALUES('EPSG','10697','EUREF-FIN to N2000 heig INSERT INTO "usage" VALUES('EPSG','22014','grid_transformation','EPSG','10697','EPSG','3333','EPSG','1133'); INSERT INTO "grid_transformation" VALUES('EPSG','10698','EUREF-FIN to EUREF-FIN + N2000 height (2)','Replaces EUREF-FIN to EUREF-FIN + N2000 height (1) (code 10696). Reversible alternative to EUREF-FIN to N2000 height (2) (code 10697). File also available in 3 ASCII formats.','EPSG','1124','Geog3D to Geog2D+GravityRelatedHeight (gtg)','EPSG','10689','EPSG','10692',0.014,'EPSG','8666','Geoid (height correction) model file','fi_nls_fin2023n2000.tif',NULL,NULL,NULL,NULL,'EPSG','10690','NLS-Fin 2023',0); INSERT INTO "usage" VALUES('EPSG','22015','grid_transformation','EPSG','10698','EPSG','3333','EPSG','1270'); -INSERT INTO "grid_transformation" VALUES('EPSG','10703','KKJ / Finland Uniform Coordinate System to EUREF-FIN / TM35FIN(E,N) (1)','This YKJ to ETRS-TM35FIN TINshift transformation is the recommended method for KKJ to EUREF-FIN transformations, to be used in preference to transformation KKJ to ETRS89 (2) (code 10098).','EPSG','1138','Cartesian Grid Offsets by TIN Interpolation (JSON)','EPSG','2393','EPSG','3067',0.03,'EPSG','1064','TIN offset file','fi_nls_ykj_etrs35fin.json',NULL,NULL,NULL,NULL,NULL,NULL,'NLS-FIN TINshift',0); +INSERT INTO "grid_transformation" VALUES('EPSG','10703','KKJ / Finland Uniform Coordinate System to EUREF-FIN / TM35FIN(E,N) (1)','This YKJ to ETRS-TM35FIN TINshift transformation is the recommended method for KKJ to EUREF-FIN coordinate change, to be used in preference to transformation KKJ to EUREF-FIN (2) (code 10098). See concatenated operation 10778.','EPSG','1138','Cartesian Grid Offsets by TIN Interpolation (JSON)','EPSG','2393','EPSG','3067',0.03,'EPSG','1064','TIN offset file','fi_nls_ykj_etrs35fin.json',NULL,NULL,NULL,NULL,NULL,NULL,'NLS-FIN TINshift',0); INSERT INTO "usage" VALUES('EPSG','22055','grid_transformation','EPSG','10703','EPSG','3333','EPSG','1273'); INSERT INTO "grid_transformation" VALUES('EPSG','10704','N43 height to N60 height (1)','Accuracy has not been determined.','EPSG','1137','Vertical Offset by TIN Interpolation (JSON)','EPSG','8675','EPSG','5717',999.0,'EPSG','1064','TIN offset file','fi_nls_n43_n60.json',NULL,NULL,NULL,NULL,'EPSG','2393','NLS-Fin TINshift',0); INSERT INTO "usage" VALUES('EPSG','22018','grid_transformation','EPSG','10704','EPSG','4522','EPSG','1059'); @@ -1792,6 +1792,14 @@ INSERT INTO "grid_transformation" VALUES('EPSG','10717','NAD83(CSRS)v4 to NAD83( INSERT INTO "usage" VALUES('EPSG','22070','grid_transformation','EPSG','10717','EPSG','4754','EPSG','1026'); INSERT INTO "grid_transformation" VALUES('EPSG','10718','NAD83(CSRS)v4 to NAD83(CSRS)v8 (3)','Replaces NAD83(CSRS)v4 to NAD83(CSRS)v8 (2) (code 10539).','EPSG','1114','Geographic3D Offset by velocity grid (NTv2_Vel)','EPSG','8244','EPSG','10413',0.02,'EPSG','1050','Point motion velocity grid file','NAD83v80VG.gvb',NULL,NULL,NULL,NULL,'EPSG','8246','NRCan-Can cvg80',0); INSERT INTO "usage" VALUES('EPSG','22065','grid_transformation','EPSG','10718','EPSG','4754','EPSG','1026'); +INSERT INTO "grid_transformation" VALUES('EPSG','10767','Bonaire 2004 to Bonaire height (1)','For reversible alternative to this transformation see Bonaire 2004 to Bonaire 2004 + Bonaire height (1) (code 10768).','EPSG','9665','Geographic3D to GravityRelatedHeight (gtx)','EPSG','10761','EPSG','10763',0.25,'EPSG','8666','Geoid (height correction) model file','bongeo2004.gtx',NULL,NULL,NULL,NULL,NULL,NULL,'NSGI-Bes bongeo2004',0); +INSERT INTO "usage" VALUES('EPSG','22276','grid_transformation','EPSG','10767','EPSG','3822','EPSG','1133'); +INSERT INTO "grid_transformation" VALUES('EPSG','10768','Bonaire 2004 to Bonaire 2004 + Bonaire height (1)','Reversible alternative to Bonaire 2004 to Bonaire height (1) (code 10767).','EPSG','1088','Geog3D to Geog2D+GravityRelatedHeight (gtx)','EPSG','10761','EPSG','10765',0.25,'EPSG','8666','Geoid (height correction) model file','bongeo2004.gtx',NULL,NULL,NULL,NULL,'EPSG','10762','NSGI-Bes bongeo2004',0); +INSERT INTO "usage" VALUES('EPSG','22189','grid_transformation','EPSG','10768','EPSG','3822','EPSG','1270'); +INSERT INTO "grid_transformation" VALUES('EPSG','10775','KSA-GRF17 to KSA-VRF14 height (2)','Hybrid geoid, replaces KSA-Geoid17. Accuracy 1.5 cm along levelling lines, 2.5 cm between lines. To access KSA-GEOID21 contact GEOSA at info@geosa.gov.sa. For reversible alternative see code 10776.','EPSG','1047','Geographic3D to GravityRelatedHeight (Gravsoft)','EPSG','9332','EPSG','9335',0.02,'EPSG','8666','Geoid (height correction) model file','KSA-GEOID21.gra',NULL,NULL,NULL,NULL,NULL,NULL,'GEOSA-Sau 21',0); +INSERT INTO "usage" VALUES('EPSG','22359','grid_transformation','EPSG','10775','EPSG','3303','EPSG','1133'); +INSERT INTO "grid_transformation" VALUES('EPSG','10776','KSA-GRF17 to KSA-GRF17 + KSA-VRF14 height (2)','Reversible alternative to KSA-GRF17 to KSA-VRF14 height (2) (code 10775). Hybrid geoid, replaces KSA-Geoid17. Accuracy 1.5 cm along levelling lines, 2.5 cm between lines. To access KSA-GEOID21 contact GEOSA at info@geosa.gov.sa','EPSG','1093','Geog3D to Geog2D+GravityRelatedHeight (Gravsoft)','EPSG','9332','EPSG','9520',0.02,'EPSG','8666','Geoid (height correction) model file','KSA-GEOID21.gra',NULL,NULL,NULL,NULL,'EPSG','9333','GEOSA-Sau 21',0); +INSERT INTO "usage" VALUES('EPSG','22377','grid_transformation','EPSG','10776','EPSG','3303','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 1524af221a..cd9e312800 100644 --- a/data/sql/helmert_transformation.sql +++ b/data/sql/helmert_transformation.sql @@ -2691,7 +2691,7 @@ INSERT INTO "helmert_transformation" VALUES('EPSG','10607','WGS 84 (G2139) to WG INSERT INTO "usage" VALUES('EPSG','21197','helmert_transformation','EPSG','10607','EPSG','1262','EPSG','1027'); INSERT INTO "helmert_transformation" VALUES('EPSG','10608','WGS 84 (G2296) to ITRF2020 (1)','Scale difference in ppb where 1/billion = 1E-9 or nm/m. Accuracy of 1cm applies at epoch 2024.0. Due to subsequent drift between the reference frames it may reach 2cm at other epochs.','EPSG','1032','Coordinate Frame rotation (geocentric domain)','EPSG','10604','EPSG','9988',0.01,0.0,0.0,0.0,'EPSG','1025',0.0,0.0,0.0,'EPSG','1031',0.0,'EPSG','1028',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'NGA-Wld 2024.0',0); INSERT INTO "usage" VALUES('EPSG','21198','helmert_transformation','EPSG','10608','EPSG','1262','EPSG','1026'); -INSERT INTO "helmert_transformation" VALUES('EPSG','10646','Saba to BES2020 Saba (1)','For the reverse transformation from BES2020 Saba to Saba, method 1133 [used here] is reversible with the parameter values given here (see GN7-2); the BESTRANS software uses different parameter values with the forward formulas: see BESTRANS documentation.','EPSG','1133','Coordinate Frame rotation full matrix (geog2D)','EPSG','10636','EPSG','10639',0.05,1138.7432,-2064.4761,110.7016,'EPSG','9001',-214.615206,479.360036,-164.703951,'EPSG','9104',-402.32073,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'NSGI-Bes Saba',0); +INSERT INTO "helmert_transformation" VALUES('EPSG','10646','Saba to BES2020 Saba (1)','For the reverse transformation from BES2020 Saba to Saba, method 1140 [used here] is reversible with the parameter values given here (see GN7-2); the BESTRANS software uses the forward formulas with different parameter values: see BESTRANS documentation.','EPSG','1140','Coordinate Frame rotation full matrix (geog3D)','EPSG','10635','EPSG','10638',0.05,1138.7432,-2064.4761,110.7016,'EPSG','9001',-214.615206,479.360036,-164.703951,'EPSG','9104',-402.32073,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'NSGI-Bes Saba',0); INSERT INTO "usage" VALUES('EPSG','21861','helmert_transformation','EPSG','10646','EPSG','4757','EPSG','1144'); INSERT INTO "helmert_transformation" VALUES('EPSG','10647','BES2020 Saba to ITRF2014 (1)','Time-dependent component of official transformation BESTRANS2020.','EPSG','1056','Time-dependent Coordinate Frame rotation (geocen)','EPSG','10637','EPSG','7789',0.05,0.0,0.0,0.0,'EPSG','9001',0.0,0.0,0.0,'EPSG','9104',0.0,'EPSG','9202',0.00726,0.00848,0.01353,'EPSG','1042',0.0,0.0,0.0,'EPSG','1043',0.0,'EPSG','1041',2020.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,'NSGI-Bes Saba',0); INSERT INTO "usage" VALUES('EPSG','21765','helmert_transformation','EPSG','10647','EPSG','4757','EPSG','1079'); @@ -2707,8 +2707,28 @@ INSERT INTO "helmert_transformation" VALUES('EPSG','10701','EUREF-FIN to WGS 84 INSERT INTO "usage" VALUES('EPSG','22008','helmert_transformation','EPSG','10701','EPSG','1095','EPSG','1252'); INSERT INTO "helmert_transformation" VALUES('EPSG','10706','EUREF-FIN to ETRS89 (1)','EUREF-FIN is a national realization of ETRS89. May be taken as approximate transformation EUREF-FIN to WGS 84 - see code 10701.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','10690','EPSG','4258',0.1,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-Fin',0); INSERT INTO "usage" VALUES('EPSG','22009','helmert_transformation','EPSG','10706','EPSG','1095','EPSG','1161'); +INSERT INTO "helmert_transformation" VALUES('EPSG','10748','BES2020 Sint Eustatius to ITRF2014 (1)','Time-dependent component of official transformation BESTRANS2020.','EPSG','1056','Time-dependent Coordinate Frame rotation (geocen)','EPSG','10737','EPSG','7789',0.05,0.0,0.0,0.0,'EPSG','9001',0.0,0.0,0.0,'EPSG','9104',0.0,'EPSG','9202',0.00743,0.00875,0.01402,'EPSG','1042',0.0,0.0,0.0,'EPSG','1043',0.0,'EPSG','1041',2020.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,'NSGI-Bes SEu 2020',0); +INSERT INTO "usage" VALUES('EPSG','22303','helmert_transformation','EPSG','10748','EPSG','4788','EPSG','1079'); +INSERT INTO "helmert_transformation" VALUES('EPSG','10749','BES2020 Sint Eustatius to WGS 84 (1)','','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','10739','EPSG','4326',0.5,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,'NSGI-Bes SEu 2020',0); +INSERT INTO "usage" VALUES('EPSG','22311','helmert_transformation','EPSG','10749','EPSG','4788','EPSG','1252'); +INSERT INTO "helmert_transformation" VALUES('EPSG','10750','Sint Eustatius to BES2020 Sint Eustatius (1)','For the reverse transformation from BES2020 Sint Eustatius to Sint Eustatius, method 1140 [used here] is reversible with the parameter values given here (see GN7-2); the official BESTRANS document uses the forward formula with different parameter values.','EPSG','1140','Coordinate Frame rotation full matrix (geog3D)','EPSG','10735','EPSG','10738',0.05,1276.2485,-2016.6406,667.4403,'EPSG','9001',-101.005288,212.913401,-68.43277,'EPSG','9104',-431.59604,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'NSGI-Bes SEu 2020',0); +INSERT INTO "usage" VALUES('EPSG','22306','helmert_transformation','EPSG','10750','EPSG','4788','EPSG','1144'); +INSERT INTO "helmert_transformation" VALUES('EPSG','10766','Bonaire to Bonaire 2004 (1)','For the reverse transformation from Bonaire 2004 to Bonaire, method 1133 [used here] is reversible with the parameter values given here (see GN7-2); the official BESTRANS document uses different parameter values with the forward formulas.','EPSG','1133','Coordinate Frame rotation full matrix (geog2D)','EPSG','10758','EPSG','10762',0.05,-366.1939,-115.0688,-776.7039,'EPSG','9001',20.96308,16.462749,-14.276379,'EPSG','9104',-12.809,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'NSGI-Bes Bon',0); +INSERT INTO "usage" VALUES('EPSG','22270','helmert_transformation','EPSG','10766','EPSG','3822','EPSG','1144'); +INSERT INTO "helmert_transformation" VALUES('EPSG','10769','Bonaire to WGS 84 (1)','Parameter values taken from Bonaire to Bonaire 2004 (1) (transformation code 10766) assuming that Bonaire 2004 is coincident with WGS 84 within the accuracy of the transformation.','EPSG','1133','Coordinate Frame rotation full matrix (geog2D)','EPSG','10758','EPSG','4326',1.0,-366.1939,-115.0688,-776.7039,'EPSG','9001',20.96308,16.462749,-14.276379,'EPSG','9104',-12.809,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'IOGP-Bes Bon',0); +INSERT INTO "usage" VALUES('EPSG','22274','helmert_transformation','EPSG','10769','EPSG','3822','EPSG','1252'); +INSERT INTO "helmert_transformation" VALUES('EPSG','10770','Bonaire 2004 to WGS 84 (1)','','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','10762','EPSG','4326',1.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,'NSGI-Bes Bon',0); +INSERT INTO "usage" VALUES('EPSG','22193','helmert_transformation','EPSG','10770','EPSG','3822','EPSG','1252'); INSERT INTO "helmert_transformation" VALUES('EPSG','10771','UZGD2024 to WGS 84 (1)','Approximation at the +/- 1m level assuming that UZGD2024 is equivalent to WGS 84 within the accuracy of the transformation.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','10725','EPSG','4326',1.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-Mys 1m',0); INSERT INTO "usage" VALUES('EPSG','22195','helmert_transformation','EPSG','10771','EPSG','1248','EPSG','1252'); +INSERT INTO "helmert_transformation" VALUES('EPSG','10777','ITRF2020 to KSA-GRF17 (1)','Derived by combining the IERS transformation from ITRF2020 to ITRF2014 at epoch 2017.0 (code 9991) with ITRF2014 to KSA-GRF17 transformation (code 9334).','EPSG','1053','Time-dependent Position Vector tfm (geocentric)','EPSG','9988','EPSG','9331',0.001,-1.4,-1.1,1.8,'EPSG','1025',0.0,0.0,0.0,'EPSG','1031',-0.42,'EPSG','1028',0.0,-0.1,0.2,'EPSG','1027',-1.199,0.107,-1.468,'EPSG','1032',0.0,'EPSG','1030',2017.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,'GEOSA-Sau',0); +INSERT INTO "usage" VALUES('EPSG','22256','helmert_transformation','EPSG','10777','EPSG','1206','EPSG','1027'); +INSERT INTO "helmert_transformation" VALUES('EPSG','10782','ITRF2020 to ITRF2020-u2023 (1)','The alignment of ITRF2020-u2023 to ITRF2020 implies that all transformation parameters between ITRF2020-u2023 and ITRF2020 are zero.','EPSG','1053','Time-dependent Position Vector tfm (geocentric)','EPSG','9988','EPSG','10779',0.001,0.0,0.0,0.0,'EPSG','1025',0.0,0.0,0.0,'EPSG','1031',0.0,'EPSG','1028',0.0,0.0,0.0,'EPSG','1027',0.0,0.0,0.0,'EPSG','1032',0.0,'EPSG','1030',2015.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,'IERS-Wld',0); +INSERT INTO "usage" VALUES('EPSG','22374','helmert_transformation','EPSG','10782','EPSG','1262','EPSG','1027'); +INSERT INTO "helmert_transformation" VALUES('EPSG','10786','ITRF2020-u2023 to IGb20 (1)','Scale difference in ppb where 1/billion = 1E-9 or nm/m. IGb20 is by definition aligned with ITRF2020-u2023.','EPSG','1065','Time-specific Position Vector transform (geocen)','EPSG','10779','EPSG','10783',0.0,0.0,0.0,0.0,'EPSG','1033',0.0,0.0,0.0,'EPSG','1031',0.0,'EPSG','1028',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2015.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,'IGS-Wld',0); +INSERT INTO "usage" VALUES('EPSG','22366','helmert_transformation','EPSG','10786','EPSG','1262','EPSG','1027'); +INSERT INTO "helmert_transformation" VALUES('EPSG','10787','IGS20 to IGb20 (1)','Scale difference in ppb and scale difference rate in ppb/yr where 1/billion = 1E-9 or nm/m. Parameter values from ITRF2020 to ITRF2020-u2023 (1) (code 10782) as IGS20 is aligned to ITRF2020 and IGb20 is aligned to ITRF2020-u2023.','EPSG','1053','Time-dependent Position Vector tfm (geocentric)','EPSG','10176','EPSG','10783',0.001,0.0,0.0,0.0,'EPSG','1025',0.0,0.0,0.0,'EPSG','1031',0.0,'EPSG','1028',0.0,0.0,0.0,'EPSG','1027',0.0,0.0,0.0,'EPSG','1032',0.0,'EPSG','1030',2015.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,'IGS-Wld',0); +INSERT INTO "usage" VALUES('EPSG','22369','helmert_transformation','EPSG','10787','EPSG','1262','EPSG','1027'); 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); diff --git a/data/sql/metadata.sql b/data/sql/metadata.sql index ffc365dd66..5403598537 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', 5); -INSERT INTO "metadata" VALUES('EPSG.VERSION', 'v11.028'); -INSERT INTO "metadata" VALUES('EPSG.DATE', '2025-01-16'); +INSERT INTO "metadata" VALUES('EPSG.VERSION', 'v11.029'); +INSERT INTO "metadata" VALUES('EPSG.DATE', '2025-01-22'); -- The value of ${PROJ_VERSION} is substituted at build time by the actual -- value. diff --git a/data/sql/other_transformation.sql b/data/sql/other_transformation.sql index cb7ae01d18..ca256f82cd 100644 --- a/data/sql/other_transformation.sql +++ b/data/sql/other_transformation.sql @@ -840,10 +840,14 @@ INSERT INTO "other_transformation" VALUES('EPSG','10517','NAD83(2011) / Adjusted INSERT INTO "usage" VALUES('EPSG','20745','other_transformation','EPSG','10517','EPSG','4343','EPSG','1026'); INSERT INTO "other_transformation" VALUES('EPSG','10620','CGVD28 height to CGVD28(HTv2.0) height (1)','Null transformation. CGVD28 is defined by the levelling network. CGVD28(HTv2.0) is defined by the Height Transformation (HT) v2.0 hybrid geoid model at epoch 1997.0 (transformation from NAD83(CSRS)v3 to CGVD28, CT code 9983).','EPSG','9616','Vertical Offset','EPSG','5713','EPSG','10588',0.05,'EPSG','8603','Vertical Offset',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,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'NR-Can HT2 1997',0); INSERT INTO "usage" VALUES('EPSG','21592','other_transformation','EPSG','10620','EPSG','1289','EPSG','1059'); -INSERT INTO "other_transformation" VALUES('EPSG','10657','Saba to Saba height (1)','Vertical component of official transformation BESTRANS2020. For reversible alternative to this transformation see Saba to Saba + Saba height (1) (code 10658).','EPSG','1136','Geographic3D to GravityRelatedHeight','EPSG','10635','EPSG','10642',0.05,'EPSG','8604','Geoid height',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,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'NSGI-Bes Saba 2023',0); +INSERT INTO "other_transformation" VALUES('EPSG','10657','Saba to Saba height (1)','Vertical component of official transformation BESTRANS2020. For reversible alternative to this transformation see Saba to Saba + Saba height (1) (code 10658).','EPSG','1136','Geographic3D to GravityRelatedHeight','EPSG','10635','EPSG','10642',0.05,'EPSG','8604','Geoid height',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,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'NSGI-Bes Saba 2020',0); INSERT INTO "usage" VALUES('EPSG','21854','other_transformation','EPSG','10657','EPSG','4757','EPSG','1133'); -INSERT INTO "other_transformation" VALUES('EPSG','10658','Saba to Saba + Saba height (1)','Reversible alternative to Saba to Saba height (1) (code 10657). Vertical component of official transformation BESTRANS2020.','EPSG','1131','Geog3D to Geog2D+GravityRelatedHeight','EPSG','10635','EPSG','10642',0.05,'EPSG','8604','Geoid height',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,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'NSGI-Bes Saba 2023',0); +INSERT INTO "other_transformation" VALUES('EPSG','10658','Saba to Saba + Saba height (1)','Reversible alternative to Saba to Saba height (1) (code 10657). Vertical component of official transformation BESTRANS2020.','EPSG','1131','Geog3D to Geog2D+GravityRelatedHeight','EPSG','10635','EPSG','10643',0.05,'EPSG','8604','Geoid height',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,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'NSGI-Bes Saba 2020',0); INSERT INTO "usage" VALUES('EPSG','21855','other_transformation','EPSG','10658','EPSG','4757','EPSG','1270'); +INSERT INTO "other_transformation" VALUES('EPSG','10752','Sint Eustatius to Sint Eustatius height (1)','Vertical component of official transformation BESTRANS2020. For reversible alternative to this transformation see Sint Eustasius to Sint Eustasius + Sint Eustasius height (1) (code 10753).','EPSG','1136','Geographic3D to GravityRelatedHeight','EPSG','10735','EPSG','10740',0.05,'EPSG','8604','Geoid height',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,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'NSGI-Bes SEu 2020',0); +INSERT INTO "usage" VALUES('EPSG','22302','other_transformation','EPSG','10752','EPSG','4788','EPSG','1133'); +INSERT INTO "other_transformation" VALUES('EPSG','10753','Sint Eustatius to Sint Eustatius + Sint Eustatius height (1)','Reversible alternative to Sint Eustatius to Sint Eustatius height (1) (code 10752). Vertical component of official transformation BESTRANS2020.','EPSG','1131','Geog3D to Geog2D+GravityRelatedHeight','EPSG','10735','EPSG','10741',0.05,'EPSG','8604','Geoid height',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,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'NSGI-Bes SEu 2020',0); +INSERT INTO "usage" VALUES('EPSG','22380','other_transformation','EPSG','10753','EPSG','4788','EPSG','1270'); INSERT INTO "other_transformation" VALUES('EPSG','15487','TWD67 / TM2 zone 121 to TWD97 / TM2 zone 121 (1)','Derived at Hu Tzu Shan (23°59''N, 120°58''E). Residuals increase to maximum of 6.4m as distance increases from this point.','EPSG','9656','Cartesian Grid Offsets','EPSG','3828','EPSG','3826',7.0,'EPSG','8728','Easting offset',828.589,'EPSG','9001','EPSG','8729','Northing offset',-206.915,'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,NULL,NULL,NULL,'asafi-Twn',0); INSERT INTO "usage" VALUES('EPSG','11498','other_transformation','EPSG','15487','EPSG','3982','EPSG','1045'); INSERT INTO "other_transformation" VALUES('EPSG','15596','Tokyo + JSLD height to WGS 84 (7)','','EPSG','9618','Geographic2D with Height Offsets','EPSG','7414','EPSG','4979',1.0,'EPSG','8601','Latitude offset',7.94,'EPSG','9104','EPSG','8602','Longitude offset',-13.97,'EPSG','9104','EPSG','8604','Geoid height',26.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,'GSI-Jpn 452142',0); diff --git a/data/sql/projected_crs.sql b/data/sql/projected_crs.sql index 47976882f2..346932e4ba 100644 --- a/data/sql/projected_crs.sql +++ b/data/sql/projected_crs.sql @@ -7580,7 +7580,7 @@ INSERT INTO "projected_crs" VALUES('EPSG','10626','ECML14 Grid',NULL,'EPSG','440 INSERT INTO "usage" VALUES('EPSG','21389','projected_crs','EPSG','10626','EPSG','4774','EPSG','1141'); INSERT INTO "projected_crs" VALUES('EPSG','10632','WC05 Grid',NULL,'EPSG','4400','EPSG','10628','EPSG','10631',NULL,0); INSERT INTO "usage" VALUES('EPSG','21392','projected_crs','EPSG','10632','EPSG','4775','EPSG','1141'); -INSERT INTO "projected_crs" VALUES('EPSG','10641','Saba DPnet',NULL,'EPSG','4499','EPSG','10636','EPSG','10640',NULL,0); +INSERT INTO "projected_crs" VALUES('EPSG','10641','Saba DPnet',NULL,'EPSG','1054','EPSG','10636','EPSG','10640',NULL,0); INSERT INTO "usage" VALUES('EPSG','21871','projected_crs','EPSG','10641','EPSG','4757','EPSG','1056'); INSERT INTO "projected_crs" VALUES('EPSG','10665','SIRGAS 2000 / Porto Alegre TM',NULL,'EPSG','4400','EPSG','4674','EPSG','10664',NULL,0); INSERT INTO "usage" VALUES('EPSG','21625','projected_crs','EPSG','10665','EPSG','4777','EPSG','1056'); @@ -7604,6 +7604,12 @@ INSERT INTO "projected_crs" VALUES('EPSG','10732','ETRS89/DREF91/2016 / UTM zone INSERT INTO "usage" VALUES('EPSG','20896','projected_crs','EPSG','10732','EPSG','2861','EPSG','1054'); INSERT INTO "projected_crs" VALUES('EPSG','10733','ETRS89/DREF91/2016 / UTM zone 33N',NULL,'EPSG','4400','EPSG','10284','EPSG','16033',NULL,0); INSERT INTO "usage" VALUES('EPSG','20594','projected_crs','EPSG','10733','EPSG','2862','EPSG','1054'); +INSERT INTO "projected_crs" VALUES('EPSG','10744','Sint Eustatius DPnet short',NULL,'EPSG','1054','EPSG','10736','EPSG','10743',NULL,0); +INSERT INTO "usage" VALUES('EPSG','22317','projected_crs','EPSG','10744','EPSG','4788','EPSG','1056'); +INSERT INTO "projected_crs" VALUES('EPSG','10745','Sint Eustatius DPnet long',NULL,'EPSG','1054','EPSG','10736','EPSG','16020',NULL,0); +INSERT INTO "usage" VALUES('EPSG','22316','projected_crs','EPSG','10745','EPSG','4788','EPSG','1056'); +INSERT INTO "projected_crs" VALUES('EPSG','10759','Bonaire DPnet',NULL,'EPSG','1054','EPSG','10758','EPSG','10757',NULL,0); +INSERT INTO "usage" VALUES('EPSG','22169','projected_crs','EPSG','10759','EPSG','3822','EPSG','1056'); INSERT INTO "projected_crs" VALUES('EPSG','11114','MAGNA-SIRGAS 2018 / Colombia Far West zone',NULL,'EPSG','4500','EPSG','20046','EPSG','18065',NULL,0); INSERT INTO "usage" VALUES('EPSG','18947','projected_crs','EPSG','11114','EPSG','3091','EPSG','1142'); INSERT INTO "projected_crs" VALUES('EPSG','11115','MAGNA-SIRGAS 2018 / Colombia West zone',NULL,'EPSG','4500','EPSG','20046','EPSG','18066',NULL,0); diff --git a/data/sql/supersession.sql b/data/sql/supersession.sql index 9d1aa01989..b6f84a3313 100644 --- a/data/sql/supersession.sql +++ b/data/sql/supersession.sql @@ -337,6 +337,8 @@ INSERT INTO "supersession" VALUES('grid_transformation','EPSG','10536','grid_tra INSERT INTO "supersession" VALUES('grid_transformation','EPSG','10524','grid_transformation','EPSG','10709','EPSG',1); INSERT INTO "supersession" VALUES('grid_transformation','EPSG','10528','grid_transformation','EPSG','10712','EPSG',1); INSERT INTO "supersession" VALUES('grid_transformation','EPSG','10534','grid_transformation','EPSG','10714','EPSG',1); +INSERT INTO "supersession" VALUES('grid_transformation','EPSG','9355','grid_transformation','EPSG','10775','EPSG',1); +INSERT INTO "supersession" VALUES('grid_transformation','EPSG','9620','grid_transformation','EPSG','10776','EPSG',1); INSERT INTO "supersession" VALUES('helmert_transformation','EPSG','1638','helmert_transformation','EPSG','10098','EPSG',0); INSERT INTO "supersession" VALUES('grid_transformation','EPSG','10530','grid_transformation','EPSG','10713','EPSG',1); INSERT INTO "supersession" VALUES('grid_transformation','EPSG','10537','grid_transformation','EPSG','10716','EPSG',1); diff --git a/data/sql/vertical_crs.sql b/data/sql/vertical_crs.sql index 5d2a819749..5360d6ba20 100644 --- a/data/sql/vertical_crs.sql +++ b/data/sql/vertical_crs.sql @@ -512,6 +512,10 @@ INSERT INTO "vertical_crs" VALUES('EPSG','10650','GLLAT(2023) depth',NULL,'EPSG' INSERT INTO "usage" VALUES('EPSG','21473','vertical_crs','EPSG','10650','EPSG','4776','EPSG','1198'); INSERT INTO "vertical_crs" VALUES('EPSG','10678','BSCD2000 depth',NULL,'EPSG','6498','EPSG','1390',0); INSERT INTO "usage" VALUES('EPSG','21810','vertical_crs','EPSG','10678','EPSG','4779','EPSG','1291'); +INSERT INTO "vertical_crs" VALUES('EPSG','10740','Sint Eustatius height',NULL,'EPSG','6499','EPSG','1395',0); +INSERT INTO "usage" VALUES('EPSG','22288','vertical_crs','EPSG','10740','EPSG','4788','EPSG','1179'); +INSERT INTO "vertical_crs" VALUES('EPSG','10763','Bonaire height',NULL,'EPSG','6499','EPSG','1398',0); +INSERT INTO "usage" VALUES('EPSG','22175','vertical_crs','EPSG','10763','EPSG','3822','EPSG','1179'); 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 2009d0b2f0..2a6a63303e 100644 --- a/data/sql/vertical_datum.sql +++ b/data/sql/vertical_datum.sql @@ -280,6 +280,10 @@ INSERT INTO "vertical_datum" VALUES('EPSG','1388','Greenland Lowest Astronomic T INSERT INTO "usage" VALUES('EPSG','21470','vertical_datum','EPSG','1388','EPSG','4776','EPSG','1198'); INSERT INTO "vertical_datum" VALUES('EPSG','1390','Baltic Sea Chart Datum 2000',NULL,'2023-11-01',NULL,NULL,NULL,NULL,0); INSERT INTO "usage" VALUES('EPSG','21819','vertical_datum','EPSG','1390','EPSG','4779','EPSG','1291'); +INSERT INTO "vertical_datum" VALUES('EPSG','1395','Sint Eustatius Vertical Datum',NULL,'2023-04-05',NULL,NULL,NULL,NULL,0); +INSERT INTO "usage" VALUES('EPSG','22281','vertical_datum','EPSG','1395','EPSG','4788','EPSG','1179'); +INSERT INTO "vertical_datum" VALUES('EPSG','1398','Bonaire Vertical Datum',NULL,NULL,NULL,NULL,NULL,NULL,0); +INSERT INTO "usage" VALUES('EPSG','22174','vertical_datum','EPSG','1398','EPSG','3822','EPSG','1179'); INSERT INTO "vertical_datum" VALUES('EPSG','5100','Mean Sea Level',NULL,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,NULL,0); diff --git a/scripts/build_db.py b/scripts/build_db.py index 92b8e3e7bf..3afe9eaecc 100755 --- a/scripts/build_db.py +++ b/scripts/build_db.py @@ -585,7 +585,7 @@ def fill_compound_crs(proj_db_cursor): raise def fill_helmert_transformation(proj_db_cursor): - proj_db_cursor.execute("SELECT coord_op_code, coord_op_name, coord_op_method_code, coord_op_method_name, source_crs_code, target_crs_code, coord_op_accuracy, coord_tfm_version, epsg_coordoperation.deprecated, epsg_coordoperation.remarks FROM epsg.epsg_coordoperation LEFT JOIN epsg.epsg_coordoperationmethod USING (coord_op_method_code) WHERE coord_op_type = 'transformation' AND coord_op_method_code IN (1031, 1032, 1033, 1034, 1035, 1037, 1038, 1039, 1053, 1054, 1055, 1056, 1057, 1058, 1061, 1062, 1063, 1065, 1066, 1132, 1133, 9603, 9606, 9607, 9636) ") + proj_db_cursor.execute("SELECT coord_op_code, coord_op_name, coord_op_method_code, coord_op_method_name, source_crs_code, target_crs_code, coord_op_accuracy, coord_tfm_version, epsg_coordoperation.deprecated, epsg_coordoperation.remarks FROM epsg.epsg_coordoperation LEFT JOIN epsg.epsg_coordoperationmethod USING (coord_op_method_code) WHERE coord_op_type = 'transformation' AND coord_op_method_code IN (1031, 1032, 1033, 1034, 1035, 1037, 1038, 1039, 1053, 1054, 1055, 1056, 1057, 1058, 1061, 1062, 1063, 1065, 1066, 1132, 1133, 1140, 9603, 9606, 9607, 9636) ") for (code, name, method_code, method_name, source_crs_code, target_crs_code, coord_op_accuracy, coord_tfm_version, deprecated, remarks) in proj_db_cursor.fetchall(): expected_order = 1 max_n_params = 15 @@ -930,13 +930,6 @@ def fill_concatenated_operation(proj_db_cursor): expected_order = 1 steps_code = [] - # FIXME: https://epsg.org/concatenated-operation_10675/BES2020-to-Saba-height-1.html ill defined in EPSG 11.023 - # due to first step referencing BES2020 Saba geographic 2D (EPSG:10639), but source CRS of concatenated - # operation referencing BES2020 Saba geographic 3D (EPSG:10638) - if code == 10675: - print("FIXME! Skipping EPSG:10675 'BES2020 to Saba height (1)' for now") - continue - iterator = proj_db_cursor.execute("SELECT op_path_step, single_operation_code FROM epsg_coordoperationpath WHERE concat_operation_code = ? ORDER BY op_path_step", (code,)) for (order, single_operation_code) in iterator: assert order == expected_order diff --git a/src/iso19111/operation/coordinateoperationfactory.cpp b/src/iso19111/operation/coordinateoperationfactory.cpp index d92ba1fe23..ed74ae0c7b 100644 --- a/src/iso19111/operation/coordinateoperationfactory.cpp +++ b/src/iso19111/operation/coordinateoperationfactory.cpp @@ -2395,6 +2395,8 @@ struct MyPROJStringExportableHorizVerticalHorizPROJBased final EPSG_CODE_METHOD_COORDINATE_FRAME_FULL_MATRIX_GEOGRAPHIC_2D || methodEPSGCode == EPSG_CODE_METHOD_COORDINATE_FRAME_GEOGRAPHIC_3D || + methodEPSGCode == + EPSG_CODE_METHOD_COORDINATE_FRAME_FULL_MATRIX_GEOGRAPHIC_3D || methodEPSGCode == EPSG_CODE_METHOD_TIME_DEPENDENT_COORDINATE_FRAME_GEOCENTRIC || methodEPSGCode == diff --git a/src/iso19111/operation/parammappings.cpp b/src/iso19111/operation/parammappings.cpp index faea73b089..48bba3ff7f 100644 --- a/src/iso19111/operation/parammappings.cpp +++ b/src/iso19111/operation/parammappings.cpp @@ -1007,6 +1007,7 @@ const struct MethodNameCode methodNameCodesList[] = { METHOD_NAME_CODE(COORDINATE_FRAME_GEOGRAPHIC_2D), METHOD_NAME_CODE(COORDINATE_FRAME_FULL_MATRIX_GEOGRAPHIC_2D), METHOD_NAME_CODE(COORDINATE_FRAME_GEOGRAPHIC_3D), + METHOD_NAME_CODE(COORDINATE_FRAME_FULL_MATRIX_GEOGRAPHIC_3D), METHOD_NAME_CODE(POSITION_VECTOR_GEOCENTRIC), METHOD_NAME_CODE(POSITION_VECTOR_GEOGRAPHIC_2D), METHOD_NAME_CODE(POSITION_VECTOR_GEOGRAPHIC_3D), @@ -1557,6 +1558,9 @@ static const MethodMapping gOtherMethodMappings[] = { {EPSG_NAME_METHOD_COORDINATE_FRAME_GEOGRAPHIC_3D, EPSG_CODE_METHOD_COORDINATE_FRAME_GEOGRAPHIC_3D, nullptr, nullptr, nullptr, paramsHelmert7}, + {EPSG_NAME_METHOD_COORDINATE_FRAME_FULL_MATRIX_GEOGRAPHIC_3D, + EPSG_CODE_METHOD_COORDINATE_FRAME_FULL_MATRIX_GEOGRAPHIC_3D, nullptr, + nullptr, nullptr, paramsHelmert7}, {EPSG_NAME_METHOD_POSITION_VECTOR_GEOCENTRIC, EPSG_CODE_METHOD_POSITION_VECTOR_GEOCENTRIC, nullptr, nullptr, nullptr, diff --git a/src/iso19111/operation/singleoperation.cpp b/src/iso19111/operation/singleoperation.cpp index 7353877c51..bd3151cd20 100644 --- a/src/iso19111/operation/singleoperation.cpp +++ b/src/iso19111/operation/singleoperation.cpp @@ -3278,7 +3278,9 @@ bool SingleOperation::exportToPROJStringGeneric( if (methodEPSGCode == EPSG_CODE_METHOD_COORDINATE_FRAME_FULL_MATRIX_GEOCENTRIC || methodEPSGCode == - EPSG_CODE_METHOD_COORDINATE_FRAME_FULL_MATRIX_GEOGRAPHIC_2D) { + EPSG_CODE_METHOD_COORDINATE_FRAME_FULL_MATRIX_GEOGRAPHIC_2D || + methodEPSGCode == + EPSG_CODE_METHOD_COORDINATE_FRAME_FULL_MATRIX_GEOGRAPHIC_3D) { positionVectorConvention = false; sevenParamsTransform = true; fullMatrix = true; @@ -3831,6 +3833,10 @@ bool SingleOperation::exportToPROJStringGeneric( methodEPSGCode == EPSG_CODE_METHOD_GEOGRAPHIC3D_TO_GEOG2D_GRAVITYRELATEDHEIGHT) { const crs::CRS *tgtCRS = targetCRS().get(); + if (const auto targetCRSCompound = + dynamic_cast(tgtCRS)) { + tgtCRS = targetCRSCompound->componentReferenceSystems()[1].get(); + } auto targetCRSVert = dynamic_cast(tgtCRS); if (!targetCRSVert) { throw io::FormattingException( @@ -3861,6 +3867,10 @@ bool SingleOperation::exportToPROJStringGeneric( INVERSE_OF + EPSG_NAME_METHOD_GEOGRAPHIC3D_TO_GEOG2D_GRAVITYRELATEDHEIGHT)) { const crs::CRS *srcCRS = sourceCRS().get(); + if (const auto sourceCRSCompound = + dynamic_cast(srcCRS)) { + srcCRS = sourceCRSCompound->componentReferenceSystems()[1].get(); + } auto sourceCRSVert = dynamic_cast(srcCRS); if (!sourceCRSVert) { throw io::FormattingException( diff --git a/src/iso19111/operation/transformation.cpp b/src/iso19111/operation/transformation.cpp index fba00f09aa..14f12567f2 100644 --- a/src/iso19111/operation/transformation.cpp +++ b/src/iso19111/operation/transformation.cpp @@ -211,6 +211,8 @@ std::vector Transformation::getTOWGS84Parameters( methodEPSGCode == EPSG_CODE_METHOD_COORDINATE_FRAME_GEOGRAPHIC_2D || methodEPSGCode == EPSG_CODE_METHOD_COORDINATE_FRAME_FULL_MATRIX_GEOGRAPHIC_2D || + methodEPSGCode == + EPSG_CODE_METHOD_COORDINATE_FRAME_FULL_MATRIX_GEOGRAPHIC_3D || methodEPSGCode == EPSG_CODE_METHOD_COORDINATE_FRAME_GEOGRAPHIC_3D) { sevenParamsTransform = true; invertRotSigns = true; @@ -1416,6 +1418,8 @@ createApproximateInverseIfPossible(const Transformation *op) { methodEPSGCode == EPSG_CODE_METHOD_COORDINATE_FRAME_GEOGRAPHIC_2D || methodEPSGCode == EPSG_CODE_METHOD_COORDINATE_FRAME_FULL_MATRIX_GEOGRAPHIC_2D || + methodEPSGCode == + EPSG_CODE_METHOD_COORDINATE_FRAME_FULL_MATRIX_GEOGRAPHIC_3D || methodEPSGCode == EPSG_CODE_METHOD_COORDINATE_FRAME_GEOGRAPHIC_3D) { sevenParamsTransform = true; } else if ( diff --git a/src/proj_constants.h b/src/proj_constants.h index a57ae2e36d..d4c33e0b25 100644 --- a/src/proj_constants.h +++ b/src/proj_constants.h @@ -422,6 +422,10 @@ "Coordinate Frame rotation full matrix (geog2D)" #define EPSG_CODE_METHOD_COORDINATE_FRAME_FULL_MATRIX_GEOGRAPHIC_2D 1133 +#define EPSG_NAME_METHOD_COORDINATE_FRAME_FULL_MATRIX_GEOGRAPHIC_3D \ + "Coordinate Frame rotation full matrix (geog3D)" +#define EPSG_CODE_METHOD_COORDINATE_FRAME_FULL_MATRIX_GEOGRAPHIC_3D 1140 + #define EPSG_NAME_METHOD_COORDINATE_FRAME_GEOGRAPHIC_3D \ "Coordinate Frame rotation (geog3D domain)" #define EPSG_CODE_METHOD_COORDINATE_FRAME_GEOGRAPHIC_3D 1038 diff --git a/test/unit/test_factory.cpp b/test/unit/test_factory.cpp index 7875c8cb94..35ad05d738 100644 --- a/test/unit/test_factory.cpp +++ b/test/unit/test_factory.cpp @@ -1023,6 +1023,25 @@ TEST(factory, "+dz=0 +drx=0.00011 +dry=0.00057 +drz=-0.00071 +ds=0 " "+t_epoch=1989 +convention=position_vector"); } +// --------------------------------------------------------------------------- + +TEST(factory, + AuthorityFactory_createCoordinateOperation_CF_full_matrix_geog3D) { + auto factory = AuthorityFactory::create(DatabaseContext::create(), "EPSG"); + auto op = factory->createCoordinateOperation("10675", false); + EXPECT_EQ(op->exportToPROJString(PROJStringFormatter::create().get()), + "+proj=pipeline " + "+step +proj=axisswap +order=2,1 " + "+step +proj=unitconvert +xy_in=deg +z_in=m +xy_out=rad +z_out=m " + "+step +proj=cart +ellps=GRS80 " + "+step +inv +proj=helmert +exact +x=1138.7432 +y=-2064.4761 " + "+z=110.7016 " + "+rx=-214.615206 +ry=479.360036 +rz=-164.703951 +s=-402.32073 " + "+convention=coordinate_frame " + "+step +inv +proj=cart +ellps=intl " + "+step +proj=unitconvert +xy_in=rad +z_in=m +xy_out=deg +z_out=m " + "+step +proj=axisswap +order=2,1"); +} // --------------------------------------------------------------------------- diff --git a/test/unit/test_operation.cpp b/test/unit/test_operation.cpp index f2326760ba..f77e329b9b 100644 --- a/test/unit/test_operation.cpp +++ b/test/unit/test_operation.cpp @@ -6164,3 +6164,18 @@ TEST(operation, CoordinateFrameRotationFullMatrixGeog2D) { "+step +proj=unitconvert +xy_in=rad +xy_out=deg " "+step +proj=axisswap +order=2,1"); } + +// --------------------------------------------------------------------------- + +TEST(operation, + operation_Geog3D_to_Geog2D_GravityRelatedHeight_with_compoundCRS) { + auto factory = AuthorityFactory::create(DatabaseContext::create(), "EPSG"); + auto op = factory->createCoordinateOperation("10753", false); + + EXPECT_EQ(op->exportToPROJString(PROJStringFormatter::create().get()), + "+proj=noop"); + + EXPECT_EQ( + op->inverse()->exportToPROJString(PROJStringFormatter::create().get()), + "+proj=noop"); +}