From 2897a23e7efb5571718e9bc747c8c393f9b940fe Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Sat, 13 Sep 2025 14:07:03 +0200 Subject: [PATCH 1/3] Database: update to EPSG v12.025 --- data/CMakeLists.txt | 2 +- data/sql/alias_name.sql | 173 ++++++++++++++++++++++++++++ data/sql/compound_crs.sql | 110 +++++++++--------- data/sql/extent.sql | 8 ++ data/sql/grid_transformation.sql | 26 ++--- data/sql/helmert_transformation.sql | 4 +- data/sql/metadata.sql | 4 +- data/sql/projected_crs.sql | 85 +++++++++----- data/sql/scope.sql | 1 + data/sql/supersession.sql | 12 +- 10 files changed, 321 insertions(+), 104 deletions(-) diff --git a/data/CMakeLists.txt b/data/CMakeLists.txt index 703d5af66c..2e91b673e6 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 "9f7dcabfc3c8a70ef301bba9af749406") +set(PROJ_DB_SQL_EXPECTED_MD5 "a9254d0c52839b99b98e9e04485b967a") add_custom_command( OUTPUT ${PROJ_DB} diff --git a/data/sql/alias_name.sql b/data/sql/alias_name.sql index e4ffd3b84a..ab67bceb02 100644 --- a/data/sql/alias_name.sql +++ b/data/sql/alias_name.sql @@ -8155,6 +8155,179 @@ INSERT INTO "alias_name" VALUES('projected_crs','EPSG','10924','CSRN2025 (NAD83 INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','10873','EUREF89','EPSG'); INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','10874','EUREF89','EPSG'); INSERT INTO "alias_name" VALUES('geodetic_crs','EPSG','10875','EUREF89','EPSG'); +INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5105','ETRS89 / NTM zone 5','EPSG'); +INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5106','ETRS89 / NTM zone 6','EPSG'); +INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5107','ETRS89 / NTM zone 7','EPSG'); +INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5108','ETRS89 / NTM zone 8','EPSG'); +INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5109','ETRS89 / NTM zone 9','EPSG'); +INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5110','ETRS89 / NTM zone 10','EPSG'); +INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5111','ETRS89 / NTM zone 11','EPSG'); +INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5112','ETRS89 / NTM zone 12','EPSG'); +INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5113','ETRS89 / NTM zone 13','EPSG'); +INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5114','ETRS89 / NTM zone 14','EPSG'); +INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5115','ETRS89 / NTM zone 15','EPSG'); +INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5116','ETRS89 / NTM zone 16','EPSG'); +INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5117','ETRS89 / NTM zone 17','EPSG'); +INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5118','ETRS89 / NTM zone 18','EPSG'); +INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5119','ETRS89 / NTM zone 19','EPSG'); +INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5120','ETRS89 / NTM zone 20','EPSG'); +INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5121','ETRS89 / NTM zone 21','EPSG'); +INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5122','ETRS89 / NTM zone 22','EPSG'); +INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5123','ETRS89 / NTM zone 23','EPSG'); +INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5124','ETRS89 / NTM zone 24','EPSG'); +INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5125','ETRS89 / NTM zone 25','EPSG'); +INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5126','ETRS89 / NTM zone 26','EPSG'); +INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5127','ETRS89 / NTM zone 27','EPSG'); +INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5128','ETRS89 / NTM zone 28','EPSG'); +INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5129','ETRS89 / NTM zone 29','EPSG'); +INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5130','ETRS89 / NTM zone 30','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6144','ETRS89 + NN54 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5942','ETRS89 + NN2000 height','EPSG'); INSERT INTO "alias_name" VALUES('compound_crs','EPSG','20001','ETRS89 + SVD2006 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','9883','ETRS89 + CD Norway depth','EPSG'); +INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5105','EUREF89 / NTM zone 5','EPSG'); +INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5106','EUREF89 / NTM zone 6','EPSG'); +INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5107','EUREF89 / NTM zone 7','EPSG'); +INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5108','EUREF89 / NTM zone 8','EPSG'); +INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5109','EUREF89 / NTM zone 9','EPSG'); +INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5110','EUREF89 / NTM zone 10','EPSG'); +INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5111','EUREF89 / NTM zone 11','EPSG'); +INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5112','EUREF89 / NTM zone 12','EPSG'); +INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5113','EUREF89 / NTM zone 13','EPSG'); +INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5114','EUREF89 / NTM zone 14','EPSG'); +INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5115','EUREF89 / NTM zone 15','EPSG'); +INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5116','EUREF89 / NTM zone 16','EPSG'); +INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5117','EUREF89 / NTM zone 17','EPSG'); +INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5118','EUREF89 / NTM zone 18','EPSG'); +INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5119','EUREF89 / NTM zone 19','EPSG'); +INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5120','EUREF89 / NTM zone 20','EPSG'); +INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5121','EUREF89 / NTM zone 21','EPSG'); +INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5122','EUREF89 / NTM zone 22','EPSG'); +INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5123','EUREF89 / NTM zone 23','EPSG'); +INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5124','EUREF89 / NTM zone 24','EPSG'); +INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5125','EUREF89 / NTM zone 25','EPSG'); +INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5126','EUREF89 / NTM zone 26','EPSG'); +INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5127','EUREF89 / NTM zone 27','EPSG'); +INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5128','EUREF89 / NTM zone 28','EPSG'); +INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5129','EUREF89 / NTM zone 29','EPSG'); +INSERT INTO "alias_name" VALUES('projected_crs','EPSG','5130','EUREF89 / NTM zone 30','EPSG'); +INSERT INTO "alias_name" VALUES('projected_crs','EPSG','11012','EUREF89 / UTM zone 30 (N-E)','EPSG'); +INSERT INTO "alias_name" VALUES('projected_crs','EPSG','11013','EUREF89 / UTM zone 31 (N-E)','EPSG'); +INSERT INTO "alias_name" VALUES('projected_crs','EPSG','11014','EUREF89 / UTM zone 32 (N-E)','EPSG'); +INSERT INTO "alias_name" VALUES('projected_crs','EPSG','11015','EUREF89 / UTM zone 33 (N-E)','EPSG'); +INSERT INTO "alias_name" VALUES('projected_crs','EPSG','11016','EUREF89 / UTM zone 34 (N-E)','EPSG'); +INSERT INTO "alias_name" VALUES('projected_crs','EPSG','11017','EUREF89 / UTM zone 35 (N-E)','EPSG'); +INSERT INTO "alias_name" VALUES('projected_crs','EPSG','11018','EUREF89 / UTM zone 36 (N-E)','EPSG'); +INSERT INTO "alias_name" VALUES('projected_crs','EPSG','11019','EUREF89 / UTM zone 37 (N-E)','EPSG'); +INSERT INTO "alias_name" VALUES('projected_crs','EPSG','11020','EUREF89 / UTM zone 30','EPSG'); +INSERT INTO "alias_name" VALUES('projected_crs','EPSG','11021','EUREF89 / UTM zone 31','EPSG'); +INSERT INTO "alias_name" VALUES('projected_crs','EPSG','11022','EUREF89 / UTM zone 32','EPSG'); +INSERT INTO "alias_name" VALUES('projected_crs','EPSG','11023','EUREF89 / UTM zone 33','EPSG'); +INSERT INTO "alias_name" VALUES('projected_crs','EPSG','11024','EUREF89 / UTM zone 34','EPSG'); +INSERT INTO "alias_name" VALUES('projected_crs','EPSG','11025','EUREF89 / UTM zone 35','EPSG'); +INSERT INTO "alias_name" VALUES('projected_crs','EPSG','11026','EUREF89 / UTM zone 36','EPSG'); INSERT INTO "alias_name" VALUES('compound_crs','EPSG','20001','EUREF89 + SVD2006 height','EPSG'); INSERT INTO "alias_name" VALUES('compound_crs','EPSG','11000','EUREF89 + SVD2024 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6145','ETRS89 / NTM zone 5 + NN54 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6145','EUREF89 / NTM zone 5 + NN54','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5945','ETRS89 / NTM zone 5 + NN2000 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5945','EUREF89 / NTM zone 5 + NN2000','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6146','ETRS89 / NTM zone 6 + NN54 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5946','ETRS89 / NTM zone 6 + NN2000 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6147','ETRS89 / NTM zone 7 + NN54 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6146','EUREF89 / NTM zone 6 + NN54 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5946','EUREF89 / NTM zone 6 + NN2000 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5947','ETRS89 / NTM zone 7 + NN2000 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5947','EUREF89 / NTM zone 7 + NN2000 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6148','ETRS89 / NTM zone 8 + NN54 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5948','ETRS89 / NTM zone 8 + NN2000 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5948','EUREF89 / NTM zone 8 + NN2000 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6149','ETRS89 / NTM zone 9 + NN54 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6149','EUREF89 / NTM zone 9 + NN54 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5949','ETRS89 / NTM zone 9 + NN2000 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5949','EUREF89 / NTM zone 9 + NN2000 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6150','ETRS89 / NTM zone 10 + NN54 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6150','EUREF89 / NTM zone 10 + NN54 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5950','ETRS89 / NTM zone 10 + NN2000 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5950','EUREF89 / NTM zone 10 + NN2000 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6151','ETRS89 / NTM zone 11 + NN54 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6151','EUREF89 / NTM zone 11 + NN54 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5951','ETRS89 / NTM zone 11 + NN2000 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5951','EUREF89 / NTM zone 11 + NN2000 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6152','ETRS89 / NTM zone 12 + NN54 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6152','EUREF89 / NTM zone 12 + NN54 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5952','ETRS89 / NTM zone 12 + NN2000 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5952','EUREF89 / NTM zone 12 + NN2000 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6153','ETRS89 / NTM zone 13 + NN54 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6153','EUREF89 / NTM zone 13 + NN54 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5953','ETRS89 / NTM zone 13 + NN2000 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5953','EUREF89 / NTM zone 13 + NN2000 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6154','ETRS89 / NTM zone 14 + NN54 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6154','EUREF89 / NTM zone 14 + NN54 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5954','ETRS89 / NTM zone 14 + NN2000 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5954','EUREF89 / NTM zone 14 + NN2000 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6155','ETRS89 / NTM zone 15 + NN54 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6155','EUREF89 / NTM zone 15 + NN54 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5955','ETRS89 / NTM zone 15 + NN2000 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5955','EUREF89 / NTM zone 15 + NN2000 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6156','ETRS89 / NTM zone 16 + NN54 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6156','EUREF89 / NTM zone 16 + NN54 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5956','ETRS89 / NTM zone 16 + NN2000 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5956','EUREF89 / NTM zone 16 + NN2000 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6157','ETRS89 / NTM zone 17 + NN54 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6157','EUREF89 / NTM zone 17 + NN54 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5957','ETRS89 / NTM zone 17 + NN2000 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5957','EUREF89 / NTM zone 17 + NN2000 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6158','ETRS89 / NTM zone 18 + NN54 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6158','EUREF89 / NTM zone 18 + NN54 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5958','ETRS89 / NTM zone 18 + NN2000 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6159','ETRS89 / NTM zone 19 + NN54 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6159','EUREF89 / NTM zone 19 + NN54 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5959','ETRS89 / NTM zone 19 + NN2000 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5959','EUREF89 / NTM zone 19 + NN2000 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6160','ETRS89 / NTM zone 20 + NN54 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6160','EUREF89 / NTM zone 20 + NN54 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5960','ETRS89 / NTM zone 20 + NN2000 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5960','EUREF89 / NTM zone 20 + NN2000 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6161','ETRS89 / NTM zone 21 + NN54 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6161','EUREF89 / NTM zone 21 + NN54 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5961','ETRS89 / NTM zone 21 + NN2000 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5961','EUREF89 / NTM zone 21 + NN2000 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6162','ETRS89 / NTM zone 22 + NN54 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5962','ETRS89 / NTM zone 22 + NN2000 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6163','ETRS89 / NTM zone 23 + NN54 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6163','EUREF89 / NTM zone 23 + NN54 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5963','ETRS89 / NTM zone 23 + NN2000 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5963','EUREF89 / NTM zone 23 + NN2000 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6164','ETRS89 / NTM zone 24 + NN54 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6164','EUREF89 / NTM zone 24 + NN54 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5964','ETRS89 / NTM zone 24 + NN2000 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5964','EUREF89 / NTM zone 24 + NN2000 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6165','ETRS89 / NTM zone 25 + NN54 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6165','EUREF89 / NTM zone 25 + NN54 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5965','ETRS89 / NTM zone 25 + NN2000 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5965','EUREF89 / NTM zone 25 + NN2000 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6166','ETRS89 / NTM zone 26 + NN54 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6166','EUREF89 / NTM zone 26 + NN54 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5966','ETRS89 / NTM zone 26 + NN2000 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5966','EUREF89 / NTM zone 26 + NN2000 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6167','ETRS89 / NTM zone 27 + NN54 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6167','EUREF89 / NTM zone 27 + NN54 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5967','ETRS89 / NTM zone 27 + NN2000 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5967','EUREF89 / NTM zone 27 + NN2000 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6168','ETRS89 / NTM zone 28 + NN54 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6168','EUREF89 / NTM zone 28 + NN54 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5968','ETRS89 / NTM zone 28 + NN2000 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5968','EUREF89 / NTM zone 28 + NN2000 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6169','ETRS89 / NTM zone 29 + NN54 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6169','EUREF89 / NTM zone 29 + NN54 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5969','ETRS89 / NTM zone 29 + NN2000 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5969','EUREF89 / NTM zone 29 + NN2000 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6170','ETRS89 / NTM zone 30 + NN54 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6170','EUREF89 / NTM zone 30 + NN54 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5970','ETRS89 / NTM zone 30 + NN2000 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5970','EUREF89 / NTM zone 30 + NN2000 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5958','EUREF89 / NTM zone 18 + NN2000 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6162','EUREF89 / NTM zone 22 + NN54 height','EPSG'); +INSERT INTO "alias_name" VALUES('compound_crs','EPSG','5962','EUREF89 / NTM zone 22 + NN2000 height','EPSG'); +INSERT INTO "alias_name" VALUES('projected_crs','EPSG','11027','EUREF89 / UTM zone 37','EPSG'); diff --git a/data/sql/compound_crs.sql b/data/sql/compound_crs.sql index bf1ae2a177..d1f7a00cea 100644 --- a/data/sql/compound_crs.sql +++ b/data/sql/compound_crs.sql @@ -74,59 +74,59 @@ INSERT INTO "compound_crs" VALUES('EPSG','5856','SWEREF99 21 45 + RH2000 height' INSERT INTO "usage" VALUES('EPSG','4291','compound_crs','EPSG','5856','EPSG','2843','EPSG','1142'); INSERT INTO "compound_crs" VALUES('EPSG','5857','SWEREF99 23 15 + RH2000 height',NULL,'EPSG','3018','EPSG','5613',0); INSERT INTO "usage" VALUES('EPSG','4292','compound_crs','EPSG','5857','EPSG','2844','EPSG','1142'); -INSERT INTO "compound_crs" VALUES('EPSG','5942','ETRS89 + NN2000 height',NULL,'EPSG','4258','EPSG','5941',0); +INSERT INTO "compound_crs" VALUES('EPSG','5942','ETRS89-NOR [EUREF89] + NN2000 height',NULL,'EPSG','10875','EPSG','5941',0); INSERT INTO "usage" VALUES('EPSG','4346','compound_crs','EPSG','5942','EPSG','1352','EPSG','1027'); -INSERT INTO "compound_crs" VALUES('EPSG','5945','ETRS89 / NTM zone 5 + NN2000 height',NULL,'EPSG','5105','EPSG','5941',0); +INSERT INTO "compound_crs" VALUES('EPSG','5945','ETRS89-NOR [EUREF89] / NTM zone 5 + NN2000 height',NULL,'EPSG','5105','EPSG','5941',0); INSERT INTO "usage" VALUES('EPSG','4347','compound_crs','EPSG','5945','EPSG','3636','EPSG','1029'); -INSERT INTO "compound_crs" VALUES('EPSG','5946','ETRS89 / NTM zone 6 + NN2000 height',NULL,'EPSG','5106','EPSG','5941',0); +INSERT INTO "compound_crs" VALUES('EPSG','5946','ETRS89-NOR [EUREF89] / NTM zone 6 + NN2000 height',NULL,'EPSG','5106','EPSG','5941',0); INSERT INTO "usage" VALUES('EPSG','4348','compound_crs','EPSG','5946','EPSG','3639','EPSG','1029'); -INSERT INTO "compound_crs" VALUES('EPSG','5947','ETRS89 / NTM zone 7 + NN2000 height',NULL,'EPSG','5107','EPSG','5941',0); +INSERT INTO "compound_crs" VALUES('EPSG','5947','ETRS89-NOR [EUREF89] / NTM zone 7 + NN2000 height',NULL,'EPSG','5107','EPSG','5941',0); INSERT INTO "usage" VALUES('EPSG','4349','compound_crs','EPSG','5947','EPSG','3647','EPSG','1029'); -INSERT INTO "compound_crs" VALUES('EPSG','5948','ETRS89 / NTM zone 8 + NN2000 height',NULL,'EPSG','5108','EPSG','5941',0); +INSERT INTO "compound_crs" VALUES('EPSG','5948','ETRS89-NOR [EUREF89] / NTM zone 8 + NN2000 height',NULL,'EPSG','5108','EPSG','5941',0); INSERT INTO "usage" VALUES('EPSG','4350','compound_crs','EPSG','5948','EPSG','3648','EPSG','1029'); -INSERT INTO "compound_crs" VALUES('EPSG','5949','ETRS89 / NTM zone 9 + NN2000 height',NULL,'EPSG','5109','EPSG','5941',0); +INSERT INTO "compound_crs" VALUES('EPSG','5949','ETRS89-NOR [EUREF89] / NTM zone 9 + NN2000 height',NULL,'EPSG','5109','EPSG','5941',0); INSERT INTO "usage" VALUES('EPSG','4351','compound_crs','EPSG','5949','EPSG','3649','EPSG','1029'); -INSERT INTO "compound_crs" VALUES('EPSG','5950','ETRS89 / NTM zone 10 + NN2000 height',NULL,'EPSG','5110','EPSG','5941',0); +INSERT INTO "compound_crs" VALUES('EPSG','5950','ETRS89-NOR [EUREF89] / NTM zone 10 + NN2000 height',NULL,'EPSG','5110','EPSG','5941',0); INSERT INTO "usage" VALUES('EPSG','4352','compound_crs','EPSG','5950','EPSG','3650','EPSG','1029'); -INSERT INTO "compound_crs" VALUES('EPSG','5951','ETRS89 / NTM zone 11 + NN2000 height',NULL,'EPSG','5111','EPSG','5941',0); +INSERT INTO "compound_crs" VALUES('EPSG','5951','ETRS89-NOR [EUREF89] / NTM zone 11 + NN2000 height',NULL,'EPSG','5111','EPSG','5941',0); INSERT INTO "usage" VALUES('EPSG','4353','compound_crs','EPSG','5951','EPSG','3651','EPSG','1029'); -INSERT INTO "compound_crs" VALUES('EPSG','5952','ETRS89 / NTM zone 12 + NN2000 height',NULL,'EPSG','5112','EPSG','5941',0); +INSERT INTO "compound_crs" VALUES('EPSG','5952','ETRS89-NOR [EUREF89] / NTM zone 12 + NN2000 height',NULL,'EPSG','5112','EPSG','5941',0); INSERT INTO "usage" VALUES('EPSG','4354','compound_crs','EPSG','5952','EPSG','3653','EPSG','1029'); -INSERT INTO "compound_crs" VALUES('EPSG','5953','ETRS89 / NTM zone 13 + NN2000 height',NULL,'EPSG','5113','EPSG','5941',0); +INSERT INTO "compound_crs" VALUES('EPSG','5953','ETRS89-NOR [EUREF89 / NTM zone 13 + NN2000 height',NULL,'EPSG','5113','EPSG','5941',0); INSERT INTO "usage" VALUES('EPSG','4355','compound_crs','EPSG','5953','EPSG','3654','EPSG','1029'); -INSERT INTO "compound_crs" VALUES('EPSG','5954','ETRS89 / NTM zone 14 + NN2000 height',NULL,'EPSG','5114','EPSG','5941',0); +INSERT INTO "compound_crs" VALUES('EPSG','5954','ETRS89-NOR [EUREF89] / NTM zone 14 + NN2000 height',NULL,'EPSG','5114','EPSG','5941',0); INSERT INTO "usage" VALUES('EPSG','4356','compound_crs','EPSG','5954','EPSG','3655','EPSG','1029'); -INSERT INTO "compound_crs" VALUES('EPSG','5955','ETRS89 / NTM zone 15 + NN2000 height',NULL,'EPSG','5115','EPSG','5941',0); +INSERT INTO "compound_crs" VALUES('EPSG','5955','ETRS89-NOR [EUREF89] / NTM zone 15 + NN2000 height',NULL,'EPSG','5115','EPSG','5941',0); INSERT INTO "usage" VALUES('EPSG','4357','compound_crs','EPSG','5955','EPSG','3656','EPSG','1029'); -INSERT INTO "compound_crs" VALUES('EPSG','5956','ETRS89 / NTM zone 16 + NN2000 height',NULL,'EPSG','5116','EPSG','5941',0); +INSERT INTO "compound_crs" VALUES('EPSG','5956','ETRS89-NOR [EUREF89] / NTM zone 16 + NN2000 height',NULL,'EPSG','5116','EPSG','5941',0); INSERT INTO "usage" VALUES('EPSG','4358','compound_crs','EPSG','5956','EPSG','3657','EPSG','1029'); -INSERT INTO "compound_crs" VALUES('EPSG','5957','ETRS89 / NTM zone 17 + NN2000 height',NULL,'EPSG','5117','EPSG','5941',0); +INSERT INTO "compound_crs" VALUES('EPSG','5957','ETRS89-NOR [EUREF89] / NTM zone 17 + NN2000 height',NULL,'EPSG','5117','EPSG','5941',0); INSERT INTO "usage" VALUES('EPSG','4359','compound_crs','EPSG','5957','EPSG','3658','EPSG','1029'); -INSERT INTO "compound_crs" VALUES('EPSG','5958','ETRS89 / NTM zone 18 + NN2000 height',NULL,'EPSG','5118','EPSG','5941',0); +INSERT INTO "compound_crs" VALUES('EPSG','5958','ETRS89-NOR [EUREF89] / NTM zone 18 + NN2000 height',NULL,'EPSG','5118','EPSG','5941',0); INSERT INTO "usage" VALUES('EPSG','4360','compound_crs','EPSG','5958','EPSG','3660','EPSG','1029'); -INSERT INTO "compound_crs" VALUES('EPSG','5959','ETRS89 / NTM zone 19 + NN2000 height',NULL,'EPSG','5119','EPSG','5941',0); +INSERT INTO "compound_crs" VALUES('EPSG','5959','ETRS89-NOR [EUREF89] / NTM zone 19 + NN2000 height',NULL,'EPSG','5119','EPSG','5941',0); INSERT INTO "usage" VALUES('EPSG','4361','compound_crs','EPSG','5959','EPSG','3661','EPSG','1029'); -INSERT INTO "compound_crs" VALUES('EPSG','5960','ETRS89 / NTM zone 20 + NN2000 height',NULL,'EPSG','5120','EPSG','5941',0); +INSERT INTO "compound_crs" VALUES('EPSG','5960','ETRS89-NOR [EUREF89] / NTM zone 20 + NN2000 height',NULL,'EPSG','5120','EPSG','5941',0); INSERT INTO "usage" VALUES('EPSG','4362','compound_crs','EPSG','5960','EPSG','3662','EPSG','1029'); -INSERT INTO "compound_crs" VALUES('EPSG','5961','ETRS89 / NTM zone 21 + NN2000 height',NULL,'EPSG','5121','EPSG','5941',0); +INSERT INTO "compound_crs" VALUES('EPSG','5961','ETRS89-NOR [EUREF89] / NTM zone 21 + NN2000 height',NULL,'EPSG','5121','EPSG','5941',0); INSERT INTO "usage" VALUES('EPSG','4363','compound_crs','EPSG','5961','EPSG','3663','EPSG','1029'); -INSERT INTO "compound_crs" VALUES('EPSG','5962','ETRS89 / NTM zone 22 + NN2000 height',NULL,'EPSG','5122','EPSG','5941',0); +INSERT INTO "compound_crs" VALUES('EPSG','5962','ETRS89-NOR [EUREF89] / NTM zone 22 + NN2000 height',NULL,'EPSG','5122','EPSG','5941',0); INSERT INTO "usage" VALUES('EPSG','4364','compound_crs','EPSG','5962','EPSG','3665','EPSG','1029'); -INSERT INTO "compound_crs" VALUES('EPSG','5963','ETRS89 / NTM zone 23 + NN2000 height',NULL,'EPSG','5123','EPSG','5941',0); +INSERT INTO "compound_crs" VALUES('EPSG','5963','ETRS89-NOR [EUREF89] / NTM zone 23 + NN2000 height',NULL,'EPSG','5123','EPSG','5941',0); INSERT INTO "usage" VALUES('EPSG','4365','compound_crs','EPSG','5963','EPSG','3667','EPSG','1029'); -INSERT INTO "compound_crs" VALUES('EPSG','5964','ETRS89 / NTM zone 24 + NN2000 height',NULL,'EPSG','5124','EPSG','5941',0); +INSERT INTO "compound_crs" VALUES('EPSG','5964','ETRS89-NOR [EUREF89] / NTM zone 24 + NN2000 height',NULL,'EPSG','5124','EPSG','5941',0); INSERT INTO "usage" VALUES('EPSG','4366','compound_crs','EPSG','5964','EPSG','3668','EPSG','1029'); -INSERT INTO "compound_crs" VALUES('EPSG','5965','ETRS89 / NTM zone 25 + NN2000 height',NULL,'EPSG','5125','EPSG','5941',0); +INSERT INTO "compound_crs" VALUES('EPSG','5965','ETRS89-NOR [EUREF89] / NTM zone 25 + NN2000 height',NULL,'EPSG','5125','EPSG','5941',0); INSERT INTO "usage" VALUES('EPSG','4367','compound_crs','EPSG','5965','EPSG','3669','EPSG','1029'); -INSERT INTO "compound_crs" VALUES('EPSG','5966','ETRS89 / NTM zone 26 + NN2000 height',NULL,'EPSG','5126','EPSG','5941',0); +INSERT INTO "compound_crs" VALUES('EPSG','5966','ETRS89-NOR [EUREF89] / NTM zone 26 + NN2000 height',NULL,'EPSG','5126','EPSG','5941',0); INSERT INTO "usage" VALUES('EPSG','4368','compound_crs','EPSG','5966','EPSG','3671','EPSG','1029'); -INSERT INTO "compound_crs" VALUES('EPSG','5967','ETRS89 / NTM zone 27 + NN2000 height',NULL,'EPSG','5127','EPSG','5941',0); +INSERT INTO "compound_crs" VALUES('EPSG','5967','ETRS89-NOR [EUREF89] / NTM zone 27 + NN2000 height',NULL,'EPSG','5127','EPSG','5941',0); INSERT INTO "usage" VALUES('EPSG','4369','compound_crs','EPSG','5967','EPSG','3672','EPSG','1029'); -INSERT INTO "compound_crs" VALUES('EPSG','5968','ETRS89 / NTM zone 28 + NN2000 height',NULL,'EPSG','5128','EPSG','5941',0); +INSERT INTO "compound_crs" VALUES('EPSG','5968','ETRS89-NOR [EUREF89] / NTM zone 28 + NN2000 height',NULL,'EPSG','5128','EPSG','5941',0); INSERT INTO "usage" VALUES('EPSG','4370','compound_crs','EPSG','5968','EPSG','3673','EPSG','1029'); -INSERT INTO "compound_crs" VALUES('EPSG','5969','ETRS89 / NTM zone 29 + NN2000 height',NULL,'EPSG','5129','EPSG','5941',0); +INSERT INTO "compound_crs" VALUES('EPSG','5969','ETRS89-NOR [EUREF89] / NTM zone 29 + NN2000 height',NULL,'EPSG','5129','EPSG','5941',0); INSERT INTO "usage" VALUES('EPSG','4371','compound_crs','EPSG','5969','EPSG','3674','EPSG','1029'); -INSERT INTO "compound_crs" VALUES('EPSG','5970','ETRS89 / NTM zone 30 + NN2000 height',NULL,'EPSG','5130','EPSG','5941',0); +INSERT INTO "compound_crs" VALUES('EPSG','5970','ETRS89-NOR [EUREF89] / NTM zone 30 + NN2000 height',NULL,'EPSG','5130','EPSG','5941',0); INSERT INTO "usage" VALUES('EPSG','4372','compound_crs','EPSG','5970','EPSG','3676','EPSG','1029'); INSERT INTO "compound_crs" VALUES('EPSG','5971','ETRS89 / UTM zone 31N + NN2000 height',NULL,'EPSG','25831','EPSG','5941',0); INSERT INTO "usage" VALUES('EPSG','4373','compound_crs','EPSG','5971','EPSG','3636','EPSG','1153'); @@ -140,59 +140,59 @@ INSERT INTO "compound_crs" VALUES('EPSG','5975','ETRS89 / UTM zone 35N + NN2000 INSERT INTO "usage" VALUES('EPSG','4377','compound_crs','EPSG','5975','EPSG','4069','EPSG','1153'); INSERT INTO "compound_crs" VALUES('EPSG','5976','ETRS89 / UTM zone 36N + NN2000 height',NULL,'EPSG','25836','EPSG','5941',0); INSERT INTO "usage" VALUES('EPSG','4378','compound_crs','EPSG','5976','EPSG','3676','EPSG','1153'); -INSERT INTO "compound_crs" VALUES('EPSG','6144','ETRS89 + NN54 height',NULL,'EPSG','4258','EPSG','5776',0); +INSERT INTO "compound_crs" VALUES('EPSG','6144','ETRS89-NOR [EUREF89] + NN54 height',NULL,'EPSG','10875','EPSG','5776',0); INSERT INTO "usage" VALUES('EPSG','4464','compound_crs','EPSG','6144','EPSG','1352','EPSG','1027'); -INSERT INTO "compound_crs" VALUES('EPSG','6145','ETRS89 / NTM zone 5 + NN54 height',NULL,'EPSG','5105','EPSG','5776',0); +INSERT INTO "compound_crs" VALUES('EPSG','6145','ETRS89-NOR [EUREF89] / NTM zone 5 + NN54 height',NULL,'EPSG','5105','EPSG','5776',0); INSERT INTO "usage" VALUES('EPSG','4465','compound_crs','EPSG','6145','EPSG','3636','EPSG','1029'); -INSERT INTO "compound_crs" VALUES('EPSG','6146','ETRS89 / NTM zone 6 + NN54 height',NULL,'EPSG','5106','EPSG','5776',0); +INSERT INTO "compound_crs" VALUES('EPSG','6146','ETRS89-NOR [EUREF89] / NTM zone 6 + NN54 height',NULL,'EPSG','5106','EPSG','5776',0); INSERT INTO "usage" VALUES('EPSG','4466','compound_crs','EPSG','6146','EPSG','3639','EPSG','1029'); -INSERT INTO "compound_crs" VALUES('EPSG','6147','ETRS89 / NTM zone 7 + NN54 height',NULL,'EPSG','5107','EPSG','5776',0); +INSERT INTO "compound_crs" VALUES('EPSG','6147','ETRS89-NOR [EUREF89] / NTM zone 7 + NN54 height',NULL,'EPSG','5107','EPSG','5776',0); INSERT INTO "usage" VALUES('EPSG','4467','compound_crs','EPSG','6147','EPSG','3647','EPSG','1029'); -INSERT INTO "compound_crs" VALUES('EPSG','6148','ETRS89 / NTM zone 8 + NN54 height',NULL,'EPSG','5108','EPSG','5776',0); +INSERT INTO "compound_crs" VALUES('EPSG','6148','ETRS89-NOR [EUREF89] / NTM zone 8 + NN54 height',NULL,'EPSG','5108','EPSG','5776',0); INSERT INTO "usage" VALUES('EPSG','4468','compound_crs','EPSG','6148','EPSG','3648','EPSG','1029'); -INSERT INTO "compound_crs" VALUES('EPSG','6149','ETRS89 / NTM zone 9 + NN54 height',NULL,'EPSG','5109','EPSG','5776',0); +INSERT INTO "compound_crs" VALUES('EPSG','6149','ETRS89-NOR [EUREF89] / NTM zone 9 + NN54 height',NULL,'EPSG','5109','EPSG','5776',0); INSERT INTO "usage" VALUES('EPSG','4469','compound_crs','EPSG','6149','EPSG','3649','EPSG','1029'); -INSERT INTO "compound_crs" VALUES('EPSG','6150','ETRS89 / NTM zone 10 + NN54 height',NULL,'EPSG','5110','EPSG','5776',0); +INSERT INTO "compound_crs" VALUES('EPSG','6150','ETRS89-NOR [EUREF89] / NTM zone 10 + NN54 height',NULL,'EPSG','5110','EPSG','5776',0); INSERT INTO "usage" VALUES('EPSG','4470','compound_crs','EPSG','6150','EPSG','3650','EPSG','1029'); -INSERT INTO "compound_crs" VALUES('EPSG','6151','ETRS89 / NTM zone 11 + NN54 height',NULL,'EPSG','5111','EPSG','5776',0); +INSERT INTO "compound_crs" VALUES('EPSG','6151','ETRS89-NOR [EUREF89] / NTM zone 11 + NN54 height',NULL,'EPSG','5111','EPSG','5776',0); INSERT INTO "usage" VALUES('EPSG','4471','compound_crs','EPSG','6151','EPSG','3651','EPSG','1029'); -INSERT INTO "compound_crs" VALUES('EPSG','6152','ETRS89 / NTM zone 12 + NN54 height',NULL,'EPSG','5112','EPSG','5776',0); +INSERT INTO "compound_crs" VALUES('EPSG','6152','ETRS89-NOR [EUREF89] / NTM zone 12 + NN54 height',NULL,'EPSG','5112','EPSG','5776',0); INSERT INTO "usage" VALUES('EPSG','4472','compound_crs','EPSG','6152','EPSG','3653','EPSG','1029'); -INSERT INTO "compound_crs" VALUES('EPSG','6153','ETRS89 / NTM zone 13 + NN54 height',NULL,'EPSG','5113','EPSG','5776',0); +INSERT INTO "compound_crs" VALUES('EPSG','6153','ETRS89-NOR [EUREF89] / NTM zone 13 + NN54 height',NULL,'EPSG','5113','EPSG','5776',0); INSERT INTO "usage" VALUES('EPSG','4473','compound_crs','EPSG','6153','EPSG','3654','EPSG','1029'); -INSERT INTO "compound_crs" VALUES('EPSG','6154','ETRS89 / NTM zone 14 + NN54 height',NULL,'EPSG','5114','EPSG','5776',0); +INSERT INTO "compound_crs" VALUES('EPSG','6154','ETRS89-NOR [EUREF89] / NTM zone 14 + NN54 height',NULL,'EPSG','5114','EPSG','5776',0); INSERT INTO "usage" VALUES('EPSG','4474','compound_crs','EPSG','6154','EPSG','3655','EPSG','1029'); -INSERT INTO "compound_crs" VALUES('EPSG','6155','ETRS89 / NTM zone 15 + NN54 height',NULL,'EPSG','5115','EPSG','5776',0); +INSERT INTO "compound_crs" VALUES('EPSG','6155','ETRS89-NOR [EUREF89] / NTM zone 15 + NN54 height',NULL,'EPSG','5115','EPSG','5776',0); INSERT INTO "usage" VALUES('EPSG','4475','compound_crs','EPSG','6155','EPSG','3656','EPSG','1029'); -INSERT INTO "compound_crs" VALUES('EPSG','6156','ETRS89 / NTM zone 16 + NN54 height',NULL,'EPSG','5116','EPSG','5776',0); +INSERT INTO "compound_crs" VALUES('EPSG','6156','ETRS89-NOR [EUREF89] / NTM zone 16 + NN54 height',NULL,'EPSG','5116','EPSG','5776',0); INSERT INTO "usage" VALUES('EPSG','4476','compound_crs','EPSG','6156','EPSG','3657','EPSG','1029'); -INSERT INTO "compound_crs" VALUES('EPSG','6157','ETRS89 / NTM zone 17 + NN54 height',NULL,'EPSG','5117','EPSG','5776',0); +INSERT INTO "compound_crs" VALUES('EPSG','6157','ETRS89-NOR [EUREF89] / NTM zone 17 + NN54 height',NULL,'EPSG','5117','EPSG','5776',0); INSERT INTO "usage" VALUES('EPSG','4477','compound_crs','EPSG','6157','EPSG','3658','EPSG','1029'); -INSERT INTO "compound_crs" VALUES('EPSG','6158','ETRS89 / NTM zone 18 + NN54 height',NULL,'EPSG','5118','EPSG','5776',0); +INSERT INTO "compound_crs" VALUES('EPSG','6158','ETRS89-NOR [EUREF89] / NTM zone 18 + NN54 height',NULL,'EPSG','5118','EPSG','5776',0); INSERT INTO "usage" VALUES('EPSG','4478','compound_crs','EPSG','6158','EPSG','3660','EPSG','1029'); -INSERT INTO "compound_crs" VALUES('EPSG','6159','ETRS89 / NTM zone 19 + NN54 height',NULL,'EPSG','5119','EPSG','5776',0); +INSERT INTO "compound_crs" VALUES('EPSG','6159','ETRS89-NOR [EUREF89] / NTM zone 19 + NN54 height',NULL,'EPSG','5119','EPSG','5776',0); INSERT INTO "usage" VALUES('EPSG','4479','compound_crs','EPSG','6159','EPSG','3661','EPSG','1029'); -INSERT INTO "compound_crs" VALUES('EPSG','6160','ETRS89 / NTM zone 20 + NN54 height',NULL,'EPSG','5120','EPSG','5776',0); +INSERT INTO "compound_crs" VALUES('EPSG','6160','ETRS89-NOR [EUREF89] / NTM zone 20 + NN54 height',NULL,'EPSG','5120','EPSG','5776',0); INSERT INTO "usage" VALUES('EPSG','4480','compound_crs','EPSG','6160','EPSG','3662','EPSG','1029'); -INSERT INTO "compound_crs" VALUES('EPSG','6161','ETRS89 / NTM zone 21 + NN54 height',NULL,'EPSG','5121','EPSG','5776',0); +INSERT INTO "compound_crs" VALUES('EPSG','6161','ETRS89-NOR [EUREF89] / NTM zone 21 + NN54 height',NULL,'EPSG','5121','EPSG','5776',0); INSERT INTO "usage" VALUES('EPSG','4481','compound_crs','EPSG','6161','EPSG','3663','EPSG','1029'); -INSERT INTO "compound_crs" VALUES('EPSG','6162','ETRS89 / NTM zone 22 + NN54 height',NULL,'EPSG','5122','EPSG','5776',0); +INSERT INTO "compound_crs" VALUES('EPSG','6162','ETRS89-NOR [EUREF89] / NTM zone 22 + NN54 height',NULL,'EPSG','5122','EPSG','5776',0); INSERT INTO "usage" VALUES('EPSG','4482','compound_crs','EPSG','6162','EPSG','3665','EPSG','1029'); -INSERT INTO "compound_crs" VALUES('EPSG','6163','ETRS89 / NTM zone 23 + NN54 height',NULL,'EPSG','5123','EPSG','5776',0); +INSERT INTO "compound_crs" VALUES('EPSG','6163','ETRS89-NOR [EUREF89] / NTM zone 23 + NN54 height',NULL,'EPSG','5123','EPSG','5776',0); INSERT INTO "usage" VALUES('EPSG','4483','compound_crs','EPSG','6163','EPSG','3667','EPSG','1029'); -INSERT INTO "compound_crs" VALUES('EPSG','6164','ETRS89 / NTM zone 24 + NN54 height',NULL,'EPSG','5124','EPSG','5776',0); +INSERT INTO "compound_crs" VALUES('EPSG','6164','ETRS89-NOR [EUREF89] / NTM zone 24 + NN54 height',NULL,'EPSG','5124','EPSG','5776',0); INSERT INTO "usage" VALUES('EPSG','4484','compound_crs','EPSG','6164','EPSG','3668','EPSG','1029'); -INSERT INTO "compound_crs" VALUES('EPSG','6165','ETRS89 / NTM zone 25 + NN54 height',NULL,'EPSG','5125','EPSG','5776',0); +INSERT INTO "compound_crs" VALUES('EPSG','6165','ETRS89-NOR [EUREF89] / NTM zone 25 + NN54 height',NULL,'EPSG','5125','EPSG','5776',0); INSERT INTO "usage" VALUES('EPSG','4485','compound_crs','EPSG','6165','EPSG','3669','EPSG','1029'); -INSERT INTO "compound_crs" VALUES('EPSG','6166','ETRS89 / NTM zone 26 + NN54 height',NULL,'EPSG','5126','EPSG','5776',0); +INSERT INTO "compound_crs" VALUES('EPSG','6166','ETRS89-NOR [EUREF89] / NTM zone 26 + NN54 height',NULL,'EPSG','5126','EPSG','5776',0); INSERT INTO "usage" VALUES('EPSG','4486','compound_crs','EPSG','6166','EPSG','3671','EPSG','1029'); -INSERT INTO "compound_crs" VALUES('EPSG','6167','ETRS89 / NTM zone 27 + NN54 height',NULL,'EPSG','5127','EPSG','5776',0); +INSERT INTO "compound_crs" VALUES('EPSG','6167','ETRS89-NOR [EUREF89] / NTM zone 27 + NN54 height',NULL,'EPSG','5127','EPSG','5776',0); INSERT INTO "usage" VALUES('EPSG','4487','compound_crs','EPSG','6167','EPSG','3672','EPSG','1029'); -INSERT INTO "compound_crs" VALUES('EPSG','6168','ETRS89 / NTM zone 28 + NN54 height',NULL,'EPSG','5128','EPSG','5776',0); +INSERT INTO "compound_crs" VALUES('EPSG','6168','ETRS89-NOR [EUREF89] / NTM zone 28 + NN54 height',NULL,'EPSG','5128','EPSG','5776',0); INSERT INTO "usage" VALUES('EPSG','4488','compound_crs','EPSG','6168','EPSG','3673','EPSG','1029'); -INSERT INTO "compound_crs" VALUES('EPSG','6169','ETRS89 / NTM zone 29 + NN54 height',NULL,'EPSG','5129','EPSG','5776',0); +INSERT INTO "compound_crs" VALUES('EPSG','6169','ETRS89-NOR [EUREF89] / NTM zone 29 + NN54 height',NULL,'EPSG','5129','EPSG','5776',0); INSERT INTO "usage" VALUES('EPSG','4489','compound_crs','EPSG','6169','EPSG','3674','EPSG','1029'); -INSERT INTO "compound_crs" VALUES('EPSG','6170','ETRS89 / NTM zone 30 + NN54 height',NULL,'EPSG','5130','EPSG','5776',0); +INSERT INTO "compound_crs" VALUES('EPSG','6170','ETRS89-NOR [EUREF89] / NTM zone 30 + NN54 height',NULL,'EPSG','5130','EPSG','5776',0); INSERT INTO "usage" VALUES('EPSG','4490','compound_crs','EPSG','6170','EPSG','3676','EPSG','1029'); INSERT INTO "compound_crs" VALUES('EPSG','6171','ETRS89 / UTM zone 31N + NN54 height',NULL,'EPSG','25831','EPSG','5776',0); INSERT INTO "usage" VALUES('EPSG','4491','compound_crs','EPSG','6171','EPSG','3636','EPSG','1153'); @@ -722,7 +722,7 @@ INSERT INTO "compound_crs" VALUES('EPSG','9870','MRH21 Grid + ODN height',NULL,' INSERT INTO "usage" VALUES('EPSG','16942','compound_crs','EPSG','9870','EPSG','4652','EPSG','1141'); INSERT INTO "compound_crs" VALUES('EPSG','9881','MOLDOR11 Grid + ODN height',NULL,'EPSG','9880','EPSG','5701',0); INSERT INTO "usage" VALUES('EPSG','16985','compound_crs','EPSG','9881','EPSG','4655','EPSG','1141'); -INSERT INTO "compound_crs" VALUES('EPSG','9883','ETRS89 + CD Norway depth',NULL,'EPSG','4258','EPSG','9672',0); +INSERT INTO "compound_crs" VALUES('EPSG','9883','ETRS89-NOR [EUREF89] + CD Norway depth',NULL,'EPSG','10875','EPSG','9672',0); INSERT INTO "usage" VALUES('EPSG','16974','compound_crs','EPSG','9883','EPSG','4656','EPSG','1198'); INSERT INTO "compound_crs" VALUES('EPSG','9897','LUREF / Luxembourg TM + NG95 height',NULL,'EPSG','2169','EPSG','5774',0); INSERT INTO "usage" VALUES('EPSG','17304','compound_crs','EPSG','9897','EPSG','1146','EPSG','1029'); diff --git a/data/sql/extent.sql b/data/sql/extent.sql index 80f3c44f6a..49c45bfad4 100644 --- a/data/sql/extent.sql +++ b/data/sql/extent.sql @@ -3797,4 +3797,12 @@ INSERT INTO "extent" VALUES('EPSG','4818','Kazakhstan - 72°E to 78°E','Kazakhs INSERT INTO "extent" VALUES('EPSG','4819','Kazakhstan - 78°E to 84°E','Kazakhstan - 78°E to 84°E.',42.19,53.18,78.0,84.0,0); INSERT INTO "extent" VALUES('EPSG','4820','Kazakhstan - east of 84°E','Kazakhstan - east of 84°E.',46.82,50.7,84.0,87.35,0); INSERT INTO "extent" VALUES('EPSG','4821','USA - Gulf central planning area deep water','United States (USA) - central Gulf of Mexico outer continental shelf (GoM OCS) planning area, deep water portion.',25.58,29.35,-93.38,-86.53,0); +INSERT INTO "extent" VALUES('EPSG','4823','Norway - west of 0°E','Norway including Svalbard - west of 0°E.',63.47,80.49,-3.35,0.0,0); +INSERT INTO "extent" VALUES('EPSG','4824','Norway - 0°E to 6°E','Norway including Svalbard between 0°E and 6°E, onshore and offshore.',56.08,82.45,0.0,6.0,0); +INSERT INTO "extent" VALUES('EPSG','4825','Norway - 6°E to 12°E','Norway including Svalbard south of 84°N between 6°E and 12°E, onshore and offshore.',56.88,84.0,5.99,12.0,0); +INSERT INTO "extent" VALUES('EPSG','4826','Norway - 12°E to 18°E','Norway including Svalbard south of 84°N between 12°E and 18°E, onshore and offshore.',59.88,84.0,12.0,18.0,0); +INSERT INTO "extent" VALUES('EPSG','4827','Norway - 18°E to 24°E','Norway including Svalbard south of 84°N between 18°E and 24°E, onshore and offshore.',68.04,84.0,18.0,24.0,0); +INSERT INTO "extent" VALUES('EPSG','4828','Norway - 24°E to 30°E','Norway including Svalbard south of 84°N between 24°E and 30°E, onshore and offshore.',68.58,84.0,23.99,30.0,0); +INSERT INTO "extent" VALUES('EPSG','4829','Norway - 30°E to 36°E','Norway including Svalbard south of 84°N between 30°E and 36°E, onshore and offshore.',69.46,84.0,30.0,36.0,0); +INSERT INTO "extent" VALUES('EPSG','4830','Norway - east of 36°E','Norway including Svalbard - east of 36°E.',72.99,79.07,36.0,38.0,0); INSERT INTO "extent" VALUES('EPSG','4831','Svalbard','Svalbard including Bear Island.',74.3208,81.8504,6.49005,33.50985,0); diff --git a/data/sql/grid_transformation.sql b/data/sql/grid_transformation.sql index 7333e05e4a..b7e2ca1cd8 100644 --- a/data/sql/grid_transformation.sql +++ b/data/sql/grid_transformation.sql @@ -891,9 +891,9 @@ INSERT INTO "grid_transformation" VALUES('EPSG','9467','GDA94 to GDA94 + AHD hei INSERT INTO "usage" VALUES('EPSG','14147','grid_transformation','EPSG','9467','EPSG','2575','EPSG','1133'); INSERT INTO "grid_transformation" VALUES('EPSG','9483','Canada velocity grid v7','File initially published with name cvg70.cvb, later renamed to NAD83v70VG.gvb with no change of content. Replaces Canada velocity grid v6 (code 8676). Replaced by Canada velocity grid v8 (code 10707). Although the interpolation CRS is given as NAD83(CSRS)v7 (also known as NAD83(CSRS) 2010), any version of NAD83(CSRS) may be used for grid interpolation without significant error.','EPSG','1141','Point motion (geog3D domain) using NEU velocity grid (NTv2_Vel)','EPSG','8254','EPSG','8254',0.01,'EPSG','1050','Point motion velocity grid file','NAD83v70VG.gvb',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'EPSG','8255','NRC-Can cvg7.0',0); INSERT INTO "usage" VALUES('EPSG','14214','grid_transformation','EPSG','9483','EPSG','4754','EPSG','1131'); -INSERT INTO "grid_transformation" VALUES('EPSG','9484','ETRS89 to NN54 height (1)','For reversible alternative to this transformation see ETRS89 to ETRS89 + NN54 height (1) (code 9594).','EPSG','1047','Geographic3D to GravityRelatedHeight (Gravsoft)','EPSG','4937','EPSG','5776',0.02,'EPSG','8666','Geoid (height correction) model file','href2008a.bin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'SK-Nor 2008',0); +INSERT INTO "grid_transformation" VALUES('EPSG','9484','ETRS89-NOR [EUREF89] to NN54 height (1)','For reversible alternative to this transformation see ETRS89-NOR [EUREF89] to ETRS89-NOR [EUREF89] + NN54 height (1) (code 9594).','EPSG','1047','Geographic3D to GravityRelatedHeight (Gravsoft)','EPSG','10874','EPSG','5776',0.02,'EPSG','8666','Geoid (height correction) model file','href2008a.bin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'SK-Nor 2008',0); INSERT INTO "usage" VALUES('EPSG','14374','grid_transformation','EPSG','9484','EPSG','1352','EPSG','1133'); -INSERT INTO "grid_transformation" VALUES('EPSG','9485','ETRS89 to NN2000 height (1)','For reversible alternative to this transformation see ETRS89 to ETRS89 + NN2000 height (1) (code 9593).','EPSG','1047','Geographic3D to GravityRelatedHeight (Gravsoft)','EPSG','4937','EPSG','5941',0.02,'EPSG','8666','Geoid (height correction) model file','HREF2018B_NN2000_EUREF89.bin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'SK-Nor 2018',0); +INSERT INTO "grid_transformation" VALUES('EPSG','9485','ETRS89-NOR [EUREF89] to NN2000 height (1)','For reversible alternative to this transformation see ETRS89-NOR [EUREF89] to ETRS89-NOR [EUREF89] + NN2000 height (1) (code 9593).','EPSG','1047','Geographic3D to GravityRelatedHeight (Gravsoft)','EPSG','10874','EPSG','5941',0.02,'EPSG','8666','Geoid (height correction) model file','HREF2018B_NN2000_EUREF89.bin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'SK-Nor 2018',0); INSERT INTO "usage" VALUES('EPSG','14376','grid_transformation','EPSG','9485','EPSG','1352','EPSG','1133'); INSERT INTO "grid_transformation" VALUES('EPSG','9496','MGI 1901 to SRB-ETRS89 (9)','','EPSG','9615','NTv2','EPSG','3906','EPSG','8685',0.03,'EPSG','8656','Latitude and longitude difference file','MGI1901_TO_SRBETRS89_NTv2.gsb',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'RGZ-Srb 0.1m 2020',0); INSERT INTO "usage" VALUES('EPSG','14226','grid_transformation','EPSG','9496','EPSG','4543','EPSG','1185'); @@ -977,9 +977,9 @@ INSERT INTO "grid_transformation" VALUES('EPSG','9591','ETRS89 to ETRS89 + Malin INSERT INTO "usage" VALUES('EPSG','15081','grid_transformation','EPSG','9591','EPSG','1305','EPSG','1270'); INSERT INTO "grid_transformation" VALUES('EPSG','9592','ETRS89 to ETRS89 + Belfast height (2)','Reversible alternative to ETRS89 to Belfast height (2) (code 7958).','EPSG','1096','Geog3D to Geog2D+GravityRelatedHeight (OSGM15-Ire)','EPSG','4937','EPSG','9450',0.014,'EPSG','8666','Geoid (height correction) model file','OSGM15_Belfast.gri',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'EPSG','4258','OS-UK NI 2015',0); INSERT INTO "usage" VALUES('EPSG','14504','grid_transformation','EPSG','9592','EPSG','2530','EPSG','1270'); -INSERT INTO "grid_transformation" VALUES('EPSG','9593','ETRS89 to ETRS89 + NN2000 height (1)','Reversible alternative to ETRS89 to NN2000 height (1) (code 9485).','EPSG','1093','Geog3D to Geog2D+GravityRelatedHeight (Gravsoft)','EPSG','4937','EPSG','5942',0.02,'EPSG','8666','Geoid (height correction) model file','HREF2018B_NN2000_EUREF89.bin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'EPSG','4258','SK-Nor 2018',0); +INSERT INTO "grid_transformation" VALUES('EPSG','9593','ETRS89-NOR [EUREF89] to ETRS89-NOR [EUREF89] + NN2000 height (1)','Reversible alternative to ETRS89-NOR [EUREF89] to NN2000 height (1) (code 9485). The interpolation CRS is EUREF89 but using any realization of ETRS89 including ensemble-based EPSG:4258 is adequate for grid interpolation.','EPSG','1093','Geog3D to Geog2D+GravityRelatedHeight (Gravsoft)','EPSG','10874','EPSG','5942',0.02,'EPSG','8666','Geoid (height correction) model file','HREF2018B_NN2000_EUREF89.bin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'EPSG','10875','SK-Nor 2018',0); INSERT INTO "usage" VALUES('EPSG','14465','grid_transformation','EPSG','9593','EPSG','1352','EPSG','1270'); -INSERT INTO "grid_transformation" VALUES('EPSG','9594','ETRS89 to ETRS89 + NN54 height (1)','Reversible alternative to ETRS89 to NN54 height (1) (code 9484).','EPSG','1093','Geog3D to Geog2D+GravityRelatedHeight (Gravsoft)','EPSG','4937','EPSG','6144',0.02,'EPSG','8666','Geoid (height correction) model file','href2008a.bin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'EPSG','4258','SK-Nor 2008',0); +INSERT INTO "grid_transformation" VALUES('EPSG','9594','ETRS89-NOR [EUREF89] to ETRS89-NOR [EUREF89] + NN54 height (1)','Reversible alternative to ETRS89-NOR [EUREF89] to NN54 height (1) (code 9484). The interpolation CRS is EUREF89 but using any realization of ETRS89 including ensemble-based EPSG:4258 is adequate for grid interpolation.','EPSG','1093','Geog3D to Geog2D+GravityRelatedHeight (Gravsoft)','EPSG','10874','EPSG','6144',0.02,'EPSG','8666','Geoid (height correction) model file','href2008a.bin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'EPSG','10875','SK-Nor 2008',0); INSERT INTO "usage" VALUES('EPSG','14464','grid_transformation','EPSG','9594','EPSG','1352','EPSG','1270'); INSERT INTO "grid_transformation" VALUES('EPSG','9595','NAD83(2011) to NAD83(2011) + NAVD88 height (3)','Reversible alternative to NAD83(2011) to NAVD88 height (3) (code 9229). Uses Geoid18 hybrid model. Replaces 12B model. See information source for further information.','EPSG','1135','Geog3D to Geog2D+GravityRelatedHeight (NGS bin)','EPSG','6319','EPSG','6349',0.015,'EPSG','8666','Geoid (height correction) model file','g2018u0.bin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'EPSG','6318','NGS-US Conus 18',0); INSERT INTO "usage" VALUES('EPSG','14853','grid_transformation','EPSG','9595','EPSG','1323','EPSG','1270'); @@ -1183,9 +1183,9 @@ INSERT INTO "grid_transformation" VALUES('EPSG','9877','RGF93 v2b to RGF93 v2b + INSERT INTO "usage" VALUES('EPSG','16932','grid_transformation','EPSG','9877','EPSG','1326','EPSG','1270'); INSERT INTO "grid_transformation" VALUES('EPSG','9878','ETRS89 to MOLDOR11-IRF (1)','In conjunction with the MOLDOR11-TM map projection (code 9879) applied to MOLDOR11-IRF (code 9871), emulates the MOLDOR11 Snake projection. Applied to ETRS89 (as realized through the OSNet v2009 CORS) defines MOLDOR11-IRF hence is errorless.','EPSG','9615','NTv2','EPSG','4258','EPSG','9871',0.0,'EPSG','8656','Latitude and longitude difference file','TN15-ETRS89-to-MOLDOR11-IRF.gsb',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'NR-Gbr MOLDOR OSNet2009',0); INSERT INTO "usage" VALUES('EPSG','16955','grid_transformation','EPSG','9878','EPSG','4655','EPSG','1141'); -INSERT INTO "grid_transformation" VALUES('EPSG','9884','ETRS89 to CD Norway depth (1)','For reversible alternative to this transformation see ETRS89 to ETRS89 + CD Norway depth (1) (code 9885). Replaced by ETRS89 to CD Norway depth (2) (model "CD Norway 2021b", code 10130).','EPSG','1109','Geographic3D to Depth (Gravsoft)','EPSG','4937','EPSG','9672',999.0,'EPSG','8666','Geoid (height correction) model file','ChartDatum_above_Ellipsoid_EUREF89_v2021a.bin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'SK-Nor 2021',0); +INSERT INTO "grid_transformation" VALUES('EPSG','9884','ETRS89-NOR [EUREF89] to CD Norway depth (1)','For reversible alternative to this transformation see ETRS89-NOR [EUREF89] to ETRS89-NOR [EUREF89] + CD Norway depth (1) (code 9885). Replaced by ETRS89-NOR [EUREF89] to CD Norway depth (2) (model "CD Norway 2021b", code 10130).','EPSG','1109','Geographic3D to Depth (Gravsoft)','EPSG','10874','EPSG','9672',999.0,'EPSG','8666','Geoid (height correction) model file','ChartDatum_above_Ellipsoid_EUREF89_v2021a.bin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'SK-Nor 2021',0); INSERT INTO "usage" VALUES('EPSG','16982','grid_transformation','EPSG','9884','EPSG','4656','EPSG','1277'); -INSERT INTO "grid_transformation" VALUES('EPSG','9885','ETRS89 to ETRS89 + CD Norway depth (1)','Reversible alternative to ETRS89 to CD Norway depth (1) (code 9884). Replaced by ETRS89 to ETRS89 + CD Norway depth (2) (model "CD Norway 2021b", code 10133).','EPSG','1110','Geog3D to Geog2D+Depth (Gravsoft)','EPSG','4937','EPSG','9883',999.0,'EPSG','8666','Geoid (height correction) model file','ChartDatum_above_Ellipsoid_EUREF89_v2021a.bin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'EPSG','4258','SK-Nor 2021',0); +INSERT INTO "grid_transformation" VALUES('EPSG','9885','ETRS89-NOR [EUREF89] to ETRS89-NOR [EUREF89] + CD Norway depth (1)','Reversible alternative to ETRS89-NOR [EUREF89] to CD Norway depth (1) (code 9884). Replaced by ETRS89-NOR [EUREF89] to ETRS89-NOR [EUREF89] + CD Norway depth (2) (model "CD Norway 2021b", code 10133). The interpolation CRS is EUREF89 but using any realization of ETRS89 including ensemble-based EPSG:4258 is adequate for grid interpolation.','EPSG','1110','Geog3D to Geog2D+Depth (Gravsoft)','EPSG','10874','EPSG','9883',999.0,'EPSG','8666','Geoid (height correction) model file','ChartDatum_above_Ellipsoid_EUREF89_v2021a.bin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'EPSG','10875','SK-Nor 2021',0); INSERT INTO "usage" VALUES('EPSG','16984','grid_transformation','EPSG','9885','EPSG','4656','EPSG','1272'); INSERT INTO "grid_transformation" VALUES('EPSG','9886','NAD27 to NAD83(CSRS)v2 (2)','Can be taken as an approximate transformation NAD27 to WGS 84 - see code 1703.','EPSG','9615','NTv2','EPSG','4267','EPSG','8237',1.5,'EPSG','8656','Latitude and longitude difference file','SK27-98.gsb',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'SK PMC-Can SK',0); INSERT INTO "usage" VALUES('EPSG','16978','grid_transformation','EPSG','9886','EPSG','2375','EPSG','1151'); @@ -1483,9 +1483,9 @@ INSERT INTO "grid_transformation" VALUES('EPSG','10128','NAD83(CSRS)v4 to NAD83( INSERT INTO "usage" VALUES('EPSG','18287','grid_transformation','EPSG','10128','EPSG','1061','EPSG','1270'); INSERT INTO "grid_transformation" VALUES('EPSG','10129','NAD83(CSRS)v3 to NAD83(CSRS)v3 + CGVD2013a(1997) height (1)','Reversible alternative to NAD83(CSRS)v3 to CGVD2013a(1997) height (1) (code 10111).','EPSG','1090','Geog3D to Geog2D+GravityRelatedHeight (NRCan byn)','EPSG','8239','EPSG','20038',0.05,'EPSG','8666','Geoid (height correction) model file','CGG2013an83.byn',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'EPSG','8240','NR-Can CGG2013a 1997',0); INSERT INTO "usage" VALUES('EPSG','18285','grid_transformation','EPSG','10129','EPSG','1061','EPSG','1270'); -INSERT INTO "grid_transformation" VALUES('EPSG','10130','ETRS89 to CD Norway depth (2)','Replaces model "CD Norway 2021" (also referred to as model "CD Norway 2021a") (code 9884). Replaced by model "CD Norway 2023a" (code 10504). For reversible alternative to this transformation see ETRS89 to ETRS89 + CD Norway depth (2) (code 10133).','EPSG','1109','Geographic3D to Depth (Gravsoft)','EPSG','4937','EPSG','9672',0.5,'EPSG','8666','Geoid (height correction) model file','ChartDatum_above_Ellipsoid_EUREF89_v2021b.bin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'SK-Nor 2021b',0); +INSERT INTO "grid_transformation" VALUES('EPSG','10130','ETRS89-NOR [EUREF89] to CD Norway depth (2)','Replaces model "CD Norway 2021" (also referred to as model "CD Norway 2021a") (code 9884). Replaced by model "CD Norway 2023a" (code 10504). For reversible alternative to this transformation see ETRS89-NOR [EUREF89] to ETRS89-NOR [EUREF89] + CD Norway depth (2) (code 10133).','EPSG','1109','Geographic3D to Depth (Gravsoft)','EPSG','10874','EPSG','9672',0.5,'EPSG','8666','Geoid (height correction) model file','ChartDatum_above_Ellipsoid_EUREF89_v2021b.bin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'SK-Nor 2021b',0); INSERT INTO "usage" VALUES('EPSG','18348','grid_transformation','EPSG','10130','EPSG','4656','EPSG','1277'); -INSERT INTO "grid_transformation" VALUES('EPSG','10133','ETRS89 to ETRS89 + CD Norway depth (2)','Reversible alternative to ETRS89 to CD Norway depth (2) (code 10130). Replaces ETRS89 to ETRS89 + CD Norway depth (1) (code 9885). Replaced by ETRS89 to ETRS89 + CD Norway depth (3) (code 10505).','EPSG','1110','Geog3D to Geog2D+Depth (Gravsoft)','EPSG','4937','EPSG','9883',0.5,'EPSG','8666','Geoid (height correction) model file','ChartDatum_above_Ellipsoid_EUREF89_v2021b.bin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'EPSG','4258','SK-Nor 2021b',0); +INSERT INTO "grid_transformation" VALUES('EPSG','10133','ETRS89-NOR [EUREF89] to ETRS89-NOR [EUREF89] + CD Norway depth (2)','Reversible alternative to ETRS89-NOR [EUREF89] to CD Norway depth (2) (code 10130). Replaces ETRS89-NOR [EUREF89] to ETRS89-NOR [EUREF89] + CD Norway depth (1) (code 9885). Replaced by ETRS89-NOR [EUREF89] to ETRS89-NOR [EUREF89] + CD Norway depth (3) (code 10505). The interpolation CRS is EUREF89 but using any realization of ETRS89 including ensemble-based EPSG:4258 is adequate for grid interpolation.','EPSG','1110','Geog3D to Geog2D+Depth (Gravsoft)','EPSG','10874','EPSG','9883',0.5,'EPSG','8666','Geoid (height correction) model file','ChartDatum_above_Ellipsoid_EUREF89_v2021b.bin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'EPSG','10875','SK-Nor 2021b',0); INSERT INTO "usage" VALUES('EPSG','18347','grid_transformation','EPSG','10133','EPSG','4656','EPSG','1272'); INSERT INTO "grid_transformation" VALUES('EPSG','10144','SRGI2013 to INAGeoid2020 v2 height (1)','Defines INAGeoid2020 v2 reference surface and as such is considered to be errorless. Internal accuracy is between 0.05 and 0.3m on the large islands of Indonesia. Replaces INAGeoid2020 v1 (CT code 9305).','EPSG','9665','Geographic3D to GravityRelatedHeight (gtx)','EPSG','9469','EPSG','20036',0.0,'EPSG','8666','Geoid (height correction) model file','INAGEOID2020v2.gtx',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'BIG-Idn INAGeoid20 v2',0); INSERT INTO "usage" VALUES('EPSG','18445','grid_transformation','EPSG','10144','EPSG','1122','EPSG','1133'); @@ -1611,17 +1611,17 @@ INSERT INTO "grid_transformation" VALUES('EPSG','10493','ETRS89 to DVR90(2023) h INSERT INTO "usage" VALUES('EPSG','20438','grid_transformation','EPSG','10493','EPSG','3237','EPSG','1133'); INSERT INTO "grid_transformation" VALUES('EPSG','10494','ETRS89 to ETRS89 + DVR90(2023) height (1)','Reversible alternative to ETRS89 to DVR90(2023) height (1) (code 10493).','EPSG','1124','Geog3D to Geog2D+GravityRelatedHeight (gtg)','EPSG','4937','EPSG','10488',0.01,'EPSG','8666','Geoid (height correction) model file','dvr90_2023.tif',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'EPSG','4258','SDFI-Dnk 2023',0); INSERT INTO "usage" VALUES('EPSG','20439','grid_transformation','EPSG','10494','EPSG','3237','EPSG','1270'); -INSERT INTO "grid_transformation" VALUES('EPSG','10504','ETRS89 to CD Norway depth (3)','Replaces model "CD Norway 2021b" (code 10130). Replaced by model "CD Norway 2023b" (code 10509). For reversible alternative to this transformation see CT code 10505.','EPSG','1109','Geographic3D to Depth (Gravsoft)','EPSG','4937','EPSG','9672',0.5,'EPSG','8666','Geoid (height correction) model file','ChartDatum_above_Ellipsoid_EUREF89_v2023a.bin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'SK-Nor 2023a',0); +INSERT INTO "grid_transformation" VALUES('EPSG','10504','ETRS89-NOR [EUREF89] to CD Norway depth (3)','Replaces model "CD Norway 2021b" (code 10130). Replaced by model "CD Norway 2023b" (code 10509). For reversible alternative to this transformation see CT code 10505.','EPSG','1109','Geographic3D to Depth (Gravsoft)','EPSG','10874','EPSG','9672',0.5,'EPSG','8666','Geoid (height correction) model file','ChartDatum_above_Ellipsoid_EUREF89_v2023a.bin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'SK-Nor 2023a',0); INSERT INTO "usage" VALUES('EPSG','20539','grid_transformation','EPSG','10504','EPSG','4656','EPSG','1277'); -INSERT INTO "grid_transformation" VALUES('EPSG','10505','ETRS89 to ETRS89 + CD Norway depth (3)','Reversible alternative to ETRS89 to CD Norway depth (3) (CT code 10504). Replaces ETRS89 to ETRS89 + CD Norway depth (2) (model 2021b, CT code 10133). Replaced by ETRS89 to ETRS89 + CD Norway depth (4) (model 2023b, CT code 10510).','EPSG','1110','Geog3D to Geog2D+Depth (Gravsoft)','EPSG','4937','EPSG','9883',0.5,'EPSG','8666','Geoid (height correction) model file','ChartDatum_above_Ellipsoid_EUREF89_v2023a.bin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'EPSG','4258','SK-Nor 2023a',0); +INSERT INTO "grid_transformation" VALUES('EPSG','10505','ETRS89-NOR [EUREF89] to ETRS89-NOR [EUREF89] + CD Norway depth (3)','Reversible alternative to ETRS89-NOR [EUREF89] to CD Norway depth (3) (CT code 10504). Replaces ETRS89-NOR [EUREF89] to ETRS89-NOR [EUREF89] + CD Norway depth (2) (model 2021b, CT code 10133). Replaced by ETRS89-NOR [EUREF89] to ETRS89-NOR [EUREF89] + CD Norway depth (4) (model 2023b, CT code 10510). The interpolation CRS is EUREF89 but using any realization of ETRS89 including ensemble-based EPSG:4258 is adequate for grid interpolation.','EPSG','1110','Geog3D to Geog2D+Depth (Gravsoft)','EPSG','10874','EPSG','9883',0.5,'EPSG','8666','Geoid (height correction) model file','ChartDatum_above_Ellipsoid_EUREF89_v2023a.bin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'EPSG','10875','SK-Nor 2023a',0); INSERT INTO "usage" VALUES('EPSG','20540','grid_transformation','EPSG','10505','EPSG','4656','EPSG','1272'); INSERT INTO "grid_transformation" VALUES('EPSG','10506','RGF93 v2b to NGF-IGN78 height (3)','Replaces RAC09 model [RGF93 v2 to NGF-IGN78 height (2) (code 8372)]. Accuracy at each grid node is given in the geoid model file. Bilinear interpolation used. For reversible alternative see RGF93 v2b to RGF93 v2b + NGF-IGN78 height (3) (code 10508).','EPSG','1073','Geographic3D to GravityRelatedHeight (IGN2009)','EPSG','9781','EPSG','5721',0.02,'EPSG','8666','Geoid (height correction) model file','RAC23.mnt',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'IGN Fra Cor 23',0); INSERT INTO "usage" VALUES('EPSG','20497','grid_transformation','EPSG','10506','EPSG','1327','EPSG','1133'); INSERT INTO "grid_transformation" VALUES('EPSG','10508','RGF93 v2b to RGF93 v2b + NGF-IGN78 height (3)','Reversible alternative to RGF93 v2b to NGF-IGN78 height (3) (code 10506).','EPSG','1095','Geog3D to Geog2D+GravityRelatedHeight (IGN2009)','EPSG','9781','EPSG','10507',0.02,'EPSG','8666','Geoid (height correction) model file','RAC23.mnt',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'EPSG','9782','IGN Fra Cor 23',0); INSERT INTO "usage" VALUES('EPSG','20535','grid_transformation','EPSG','10508','EPSG','1327','EPSG','1270'); -INSERT INTO "grid_transformation" VALUES('EPSG','10509','ETRS89 to CD Norway depth (4)','Replaces ETRS89 to CD Norway depth (3) (code 10504). Accompanying file ...v2023b_standarddeviation.bin contains first estimate of SD of model. For reversible alternative to this transformation see ETRS89 to ETRS89 + CD Norway depth (2) (code 10510).','EPSG','1109','Geographic3D to Depth (Gravsoft)','EPSG','4937','EPSG','9672',0.5,'EPSG','8666','Geoid (height correction) model file','ChartDatum_above_Ellipsoid_EUREF89_v2023b.bin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'SK-Nor 2023b',0); +INSERT INTO "grid_transformation" VALUES('EPSG','10509','ETRS89-NOR [EUREF89] to CD Norway depth (4)','Replaces ETRS89-NOR [EUREF89] to CD Norway depth (3) (code 10504). Accompanying file ...v2023b_standarddeviation.bin contains first estimate of SD of model. For reversible alternative to this transformation see ETRS89-NOR [EUREF89] to ETRS89-NOR [EUREF89] + CD Norway depth (2) (code 10510).','EPSG','1109','Geographic3D to Depth (Gravsoft)','EPSG','10874','EPSG','9672',0.5,'EPSG','8666','Geoid (height correction) model file','ChartDatum_above_Ellipsoid_EUREF89_v2023b.bin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'SK-Nor 2023b',0); INSERT INTO "usage" VALUES('EPSG','20537','grid_transformation','EPSG','10509','EPSG','4656','EPSG','1277'); -INSERT INTO "grid_transformation" VALUES('EPSG','10510','ETRS89 to ETRS89 + CD Norway depth (4)','Reversible alternative to ETRS89 to CD Norway depth (4) (code 10509). Accompanying file ...v2023b_standarddeviation.bin contains first estimate of SD of model. Replaces ETRS89 to ETRS89 + CD Norway depth (3) (code 10133).','EPSG','1110','Geog3D to Geog2D+Depth (Gravsoft)','EPSG','4937','EPSG','9883',0.5,'EPSG','8666','Geoid (height correction) model file','ChartDatum_above_Ellipsoid_EUREF89_v2023b.bin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'EPSG','4258','SK-Nor 2023b',0); +INSERT INTO "grid_transformation" VALUES('EPSG','10510','ETRS89-NOR [EUREF89] to ETRS89-NOR [EUREF89] + CD Norway depth (4)','Reversible alternative to ETRS89-NOR [EUREF89] to CD Norway depth (4) (code 10509). Accompanying file ...v2023b_standarddeviation.bin contains first estimate of SD of model. Replaces ETRS89-NOR [EUREF89] to ETRS89-NOR [EUREF89] + CD Norway depth (3) (code 10133). The interpolation CRS is EUREF89 but using any realization of ETRS89 including ensemble-based EPSG:4258 is adequate for grid interpolation.','EPSG','1110','Geog3D to Geog2D+Depth (Gravsoft)','EPSG','10874','EPSG','9883',0.5,'EPSG','8666','Geoid (height correction) model file','ChartDatum_above_Ellipsoid_EUREF89_v2023b.bin',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'EPSG','10875','SK-Nor 2023b',0); INSERT INTO "usage" VALUES('EPSG','20541','grid_transformation','EPSG','10510','EPSG','4656','EPSG','1272'); INSERT INTO "grid_transformation" VALUES('EPSG','10518','CGVD28 height to CGVD2013a(1997) height (2)','Equal to HT2_1997 hybrid geoid model minus CGG2013a geoid model (CT 9983 minus CT 10111). Specified interpolation CRS is NAD83(CSRS)v3, but NAD83(CSRS)v2 or any later realization may be used without error. See also CT 10617 from CGVD28(v2.0) height.','EPSG','1126','Vertical change by geoid grid difference (NRCan)','EPSG','5713','EPSG','20035',0.05,'EPSG','1063','Geoid model difference file','HT2_1997_CGG2013a.byn',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'EPSG','8240','NR-Can HT2 1997',0); INSERT INTO "usage" VALUES('EPSG','20892','grid_transformation','EPSG','10518','EPSG','1289','EPSG','1059'); @@ -1826,7 +1826,7 @@ INSERT INTO "grid_transformation" VALUES('EPSG','10841','RGAF09 to IGN 1988 SM h INSERT INTO "usage" VALUES('EPSG','23621','grid_transformation','EPSG','10841','EPSG','2890','EPSG','1133'); INSERT INTO "grid_transformation" VALUES('EPSG','10850','ETRS89 to EWR3-IRF (1)','In conjunction with the EWR3-TM map projection (code 9765) applied to EWR3-IRF (code 10849), emulates the EWR3 Snake projection. Applied to ETRS89 (as realized through the OSNet v2009 CORS) defines EWR3-IRF hence is errorless. In 2024 the EWR2 Grid (ETRS89 / EWR2 SnakeGrid) was extended eastwards as the EWR3 Grid (ETRS89 / EWR3 SnakeGrid). To the west of Bedford the EWR2 Grid is an exact subset of the EWR3 Grid; over this extent the EWR3 Grid replaces the EWR2 Grid. The EWR2 emulation file TN15-ETRS89-to-EWR2-IRF.gsb (CT code 9764) is a subset of this EWR3 emulation file TN15-ETRS89-to-EWR3-IRF.gsb; west of Bedford the content of the two files is identical.','EPSG','9615','NTv2','EPSG','4258','EPSG','10849',0.0,'EPSG','8656','Latitude and longitude difference file','TN15-ETRS89-to-EWR3-IRF.gsb',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'NR-Gbr EWR3 OSNet2009',0); INSERT INTO "usage" VALUES('EPSG','22765','grid_transformation','EPSG','10850','EPSG','4799','EPSG','1141'); -INSERT INTO "grid_transformation" VALUES('EPSG','10854','ETRS89 to NGO 1948 (2)','','EPSG','1145','Geographic2D Offsets by TIN Interpolation (JSON)','EPSG','4258','EPSG','4273',0.1,'EPSG','1064','TIN offset file','no_kv_ETRS89NO_NGO48_TIN.json',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'SK-Nor',0); +INSERT INTO "grid_transformation" VALUES('EPSG','10854','ETRS89-NOR [EUREF89] to NGO 1948 (2)','','EPSG','1145','Geographic2D Offsets by TIN Interpolation (JSON)','EPSG','10875','EPSG','4273',0.1,'EPSG','1064','TIN offset file','no_kv_ETRS89NO_NGO48_TIN.json',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'SK-Nor',0); INSERT INTO "usage" VALUES('EPSG','22776','grid_transformation','EPSG','10854','EPSG','1352','EPSG','1031'); INSERT INTO "grid_transformation" VALUES('EPSG','10855','ETRS89/DREF91/2016 to GNTRANS2016 height (1)','Defines GNTRANS2016 height. The same geoid model is used to derive approximate DHHN2016 heights.','EPSG','1082','Geographic3D to GravityRelatedHeight (txt)','EPSG','10283','EPSG','9927',0.02,'EPSG','8666','Geoid (height correction) model file','GCG2016.txt',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'DB-Deu 2016',0); INSERT INTO "usage" VALUES('EPSG','22778','grid_transformation','EPSG','10855','EPSG','3339','EPSG','1133'); diff --git a/data/sql/helmert_transformation.sql b/data/sql/helmert_transformation.sql index 43fd0f631c..7b3559726e 100644 --- a/data/sql/helmert_transformation.sql +++ b/data/sql/helmert_transformation.sql @@ -823,7 +823,7 @@ INSERT INTO "helmert_transformation" VALUES('EPSG','1651','NTF to ETRS89 (1)','T INSERT INTO "usage" VALUES('EPSG','8572','helmert_transformation','EPSG','1651','EPSG','3694','EPSG','1042'); INSERT INTO "helmert_transformation" VALUES('EPSG','1652','BD72 to ETRS89 (1)','May be taken as approximate transformation BD72 to WGS 84 - see code 1609.','EPSG','9606','Position Vector transformation (geog2D domain)','EPSG','4313','EPSG','4258',1.0,-99.1,53.3,-112.5,'EPSG','9001',0.419,-0.83,1.885,'EPSG','9104',-1.0,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'IGN-Bel',0); INSERT INTO "usage" VALUES('EPSG','8573','helmert_transformation','EPSG','1652','EPSG','1347','EPSG','1041'); -INSERT INTO "helmert_transformation" VALUES('EPSG','1653','NGO 1948 to ETRS89 (1)','May be taken as approximate transformation NGO 1948 to WGS 84 - see code 1654.','EPSG','9606','Position Vector transformation (geog2D domain)','EPSG','4273','EPSG','4258',3.0,278.3,93.0,474.5,'EPSG','9001',7.889,0.05,-6.61,'EPSG','9104',6.21,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'SKV-Nor',0); +INSERT INTO "helmert_transformation" VALUES('EPSG','1653','NGO 1948 to ETRS89-NOR [EUREF89] (1)','May be taken as approximate transformation NGO 1948 to WGS 84 - see code 1654.','EPSG','9606','Position Vector transformation (geog2D domain)','EPSG','4273','EPSG','10875',3.0,278.3,93.0,474.5,'EPSG','9001',7.889,0.05,-6.61,'EPSG','9104',6.21,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'SKV-Nor',0); INSERT INTO "usage" VALUES('EPSG','8574','helmert_transformation','EPSG','1653','EPSG','1352','EPSG','1043'); INSERT INTO "helmert_transformation" VALUES('EPSG','1654','NGO 1948 to WGS 84 (1)','Parameter values from NGO 1948 to ETRS89 (1) (code 1653). Assumes ETRS89 and WGS 84 can be considered the same to within the accuracy of the transformation.','EPSG','9606','Position Vector transformation (geog2D domain)','EPSG','4273','EPSG','4326',3.0,278.3,93.0,474.5,'EPSG','9001',7.889,0.05,-6.61,'EPSG','9104',6.21,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'EPSG-Nor',0); INSERT INTO "usage" VALUES('EPSG','8575','helmert_transformation','EPSG','1654','EPSG','1352','EPSG','1252'); @@ -2769,6 +2769,8 @@ INSERT INTO "helmert_transformation" VALUES('EPSG','10965','QazTRF-23 to WGS 84 INSERT INTO "usage" VALUES('EPSG','23452','helmert_transformation','EPSG','10965','EPSG','1131','EPSG','1252'); INSERT INTO "helmert_transformation" VALUES('EPSG','10969','NATRF2022 to WGS 84 (1)','For many purposes NATRF2022 can be considered to be coincident with WGS 84. This approximation ignores the low accuracy of the WGS 84 ensemble and the application of tectonic plate motion to WGS 84 data.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','10968','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,'EPSG-N Am',0); INSERT INTO "usage" VALUES('EPSG','23509','helmert_transformation','EPSG','10969','EPSG','4803','EPSG','1252'); +INSERT INTO "helmert_transformation" VALUES('EPSG','11028','ETRS89-NOR [EUREF89] to WGS 84 (1)','','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','10875','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,'EPSG-Nor',0); +INSERT INTO "usage" VALUES('EPSG','24398','helmert_transformation','EPSG','11028','EPSG','1182','EPSG','1252'); 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 46dd271931..de4a88113f 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', 6); -INSERT INTO "metadata" VALUES('EPSG.VERSION', 'v12.022'); -INSERT INTO "metadata" VALUES('EPSG.DATE', '2025-08-30'); +INSERT INTO "metadata" VALUES('EPSG.VERSION', 'v12.025'); +INSERT INTO "metadata" VALUES('EPSG.DATE', '2025-09-13'); -- 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 da0176dd24..b9f6d02e0e 100644 --- a/data/sql/projected_crs.sql +++ b/data/sql/projected_crs.sql @@ -4273,57 +4273,57 @@ INSERT INTO "projected_crs" VALUES('EPSG','5071','NAD83(HARN) / Conus Albers',NU INSERT INTO "usage" VALUES('EPSG','3813','projected_crs','EPSG','5071','EPSG','1323','EPSG','1109'); INSERT INTO "projected_crs" VALUES('EPSG','5072','NAD83(NSRS2007) / Conus Albers',NULL,'EPSG','4499','EPSG','4759','EPSG','5068',NULL,0); INSERT INTO "usage" VALUES('EPSG','3814','projected_crs','EPSG','5072','EPSG','1323','EPSG','1109'); -INSERT INTO "projected_crs" VALUES('EPSG','5105','ETRS89 / NTM zone 5',NULL,'EPSG','4500','EPSG','4258','EPSG','5135',NULL,0); +INSERT INTO "projected_crs" VALUES('EPSG','5105','ETRS89-NOR [EUREF89] / NTM zone 5',NULL,'EPSG','4500','EPSG','10875','EPSG','5135',NULL,0); INSERT INTO "usage" VALUES('EPSG','3815','projected_crs','EPSG','5105','EPSG','3636','EPSG','1029'); -INSERT INTO "projected_crs" VALUES('EPSG','5106','ETRS89 / NTM zone 6',NULL,'EPSG','4500','EPSG','4258','EPSG','5136',NULL,0); +INSERT INTO "projected_crs" VALUES('EPSG','5106','ETRS89-NOR [EUREF89] / NTM zone 6',NULL,'EPSG','4500','EPSG','10875','EPSG','5136',NULL,0); INSERT INTO "usage" VALUES('EPSG','3816','projected_crs','EPSG','5106','EPSG','3639','EPSG','1029'); -INSERT INTO "projected_crs" VALUES('EPSG','5107','ETRS89 / NTM zone 7',NULL,'EPSG','4500','EPSG','4258','EPSG','5137',NULL,0); +INSERT INTO "projected_crs" VALUES('EPSG','5107','ETRS89-NOR [EUREF89] / NTM zone 7',NULL,'EPSG','4500','EPSG','10875','EPSG','5137',NULL,0); INSERT INTO "usage" VALUES('EPSG','3817','projected_crs','EPSG','5107','EPSG','3647','EPSG','1029'); -INSERT INTO "projected_crs" VALUES('EPSG','5108','ETRS89 / NTM zone 8',NULL,'EPSG','4500','EPSG','4258','EPSG','5138',NULL,0); +INSERT INTO "projected_crs" VALUES('EPSG','5108','ETRS89-NOR [EUREF89] / NTM zone 8',NULL,'EPSG','4500','EPSG','10875','EPSG','5138',NULL,0); INSERT INTO "usage" VALUES('EPSG','3818','projected_crs','EPSG','5108','EPSG','3648','EPSG','1029'); -INSERT INTO "projected_crs" VALUES('EPSG','5109','ETRS89 / NTM zone 9',NULL,'EPSG','4500','EPSG','4258','EPSG','5139',NULL,0); +INSERT INTO "projected_crs" VALUES('EPSG','5109','ETRS89-NOR [EUREF89] / NTM zone 9',NULL,'EPSG','4500','EPSG','10875','EPSG','5139',NULL,0); INSERT INTO "usage" VALUES('EPSG','3819','projected_crs','EPSG','5109','EPSG','3649','EPSG','1029'); -INSERT INTO "projected_crs" VALUES('EPSG','5110','ETRS89 / NTM zone 10',NULL,'EPSG','4500','EPSG','4258','EPSG','5140',NULL,0); +INSERT INTO "projected_crs" VALUES('EPSG','5110','ETRS89-NOR [EUREF89] / NTM zone 10',NULL,'EPSG','4500','EPSG','10875','EPSG','5140',NULL,0); INSERT INTO "usage" VALUES('EPSG','3820','projected_crs','EPSG','5110','EPSG','3650','EPSG','1029'); -INSERT INTO "projected_crs" VALUES('EPSG','5111','ETRS89 / NTM zone 11',NULL,'EPSG','4500','EPSG','4258','EPSG','5141',NULL,0); +INSERT INTO "projected_crs" VALUES('EPSG','5111','ETRS89-NOR [EUREF89] / NTM zone 11',NULL,'EPSG','4500','EPSG','10875','EPSG','5141',NULL,0); INSERT INTO "usage" VALUES('EPSG','3821','projected_crs','EPSG','5111','EPSG','3651','EPSG','1029'); -INSERT INTO "projected_crs" VALUES('EPSG','5112','ETRS89 / NTM zone 12',NULL,'EPSG','4500','EPSG','4258','EPSG','5142',NULL,0); +INSERT INTO "projected_crs" VALUES('EPSG','5112','ETRS89-NOR [EUREF89] / NTM zone 12',NULL,'EPSG','4500','EPSG','10875','EPSG','5142',NULL,0); INSERT INTO "usage" VALUES('EPSG','3822','projected_crs','EPSG','5112','EPSG','3653','EPSG','1029'); -INSERT INTO "projected_crs" VALUES('EPSG','5113','ETRS89 / NTM zone 13',NULL,'EPSG','4500','EPSG','4258','EPSG','5143',NULL,0); +INSERT INTO "projected_crs" VALUES('EPSG','5113','ETRS89-NOR [EUREF89] / NTM zone 13',NULL,'EPSG','4500','EPSG','10875','EPSG','5143',NULL,0); INSERT INTO "usage" VALUES('EPSG','3823','projected_crs','EPSG','5113','EPSG','3654','EPSG','1029'); -INSERT INTO "projected_crs" VALUES('EPSG','5114','ETRS89 / NTM zone 14',NULL,'EPSG','4500','EPSG','4258','EPSG','5144',NULL,0); +INSERT INTO "projected_crs" VALUES('EPSG','5114','ETRS89-NOR [EUREF89] / NTM zone 14',NULL,'EPSG','4500','EPSG','10875','EPSG','5144',NULL,0); INSERT INTO "usage" VALUES('EPSG','3824','projected_crs','EPSG','5114','EPSG','3655','EPSG','1029'); -INSERT INTO "projected_crs" VALUES('EPSG','5115','ETRS89 / NTM zone 15',NULL,'EPSG','4500','EPSG','4258','EPSG','5145',NULL,0); +INSERT INTO "projected_crs" VALUES('EPSG','5115','ETRS89-NOR [EUREF89] / NTM zone 15',NULL,'EPSG','4500','EPSG','10875','EPSG','5145',NULL,0); INSERT INTO "usage" VALUES('EPSG','3825','projected_crs','EPSG','5115','EPSG','3656','EPSG','1029'); -INSERT INTO "projected_crs" VALUES('EPSG','5116','ETRS89 / NTM zone 16',NULL,'EPSG','4500','EPSG','4258','EPSG','5146',NULL,0); +INSERT INTO "projected_crs" VALUES('EPSG','5116','ETRS89-NOR [EUREF89] / NTM zone 16',NULL,'EPSG','4500','EPSG','10875','EPSG','5146',NULL,0); INSERT INTO "usage" VALUES('EPSG','3826','projected_crs','EPSG','5116','EPSG','3657','EPSG','1029'); -INSERT INTO "projected_crs" VALUES('EPSG','5117','ETRS89 / NTM zone 17',NULL,'EPSG','4500','EPSG','4258','EPSG','5147',NULL,0); +INSERT INTO "projected_crs" VALUES('EPSG','5117','ETRS89-NOR [EUREF89] / NTM zone 17',NULL,'EPSG','4500','EPSG','10875','EPSG','5147',NULL,0); INSERT INTO "usage" VALUES('EPSG','3827','projected_crs','EPSG','5117','EPSG','3658','EPSG','1029'); -INSERT INTO "projected_crs" VALUES('EPSG','5118','ETRS89 / NTM zone 18',NULL,'EPSG','4500','EPSG','4258','EPSG','5148',NULL,0); +INSERT INTO "projected_crs" VALUES('EPSG','5118','ETRS89-NOR [EUREF89] / NTM zone 18',NULL,'EPSG','4500','EPSG','10875','EPSG','5148',NULL,0); INSERT INTO "usage" VALUES('EPSG','3828','projected_crs','EPSG','5118','EPSG','3660','EPSG','1029'); -INSERT INTO "projected_crs" VALUES('EPSG','5119','ETRS89 / NTM zone 19',NULL,'EPSG','4500','EPSG','4258','EPSG','5149',NULL,0); +INSERT INTO "projected_crs" VALUES('EPSG','5119','ETRS89-NOR [EUREF89] / NTM zone 19',NULL,'EPSG','4500','EPSG','10875','EPSG','5149',NULL,0); INSERT INTO "usage" VALUES('EPSG','3829','projected_crs','EPSG','5119','EPSG','3661','EPSG','1029'); -INSERT INTO "projected_crs" VALUES('EPSG','5120','ETRS89 / NTM zone 20',NULL,'EPSG','4500','EPSG','4258','EPSG','5150',NULL,0); +INSERT INTO "projected_crs" VALUES('EPSG','5120','ETRS89-NOR [EUREF89] / NTM zone 20',NULL,'EPSG','4500','EPSG','10875','EPSG','5150',NULL,0); INSERT INTO "usage" VALUES('EPSG','3830','projected_crs','EPSG','5120','EPSG','3662','EPSG','1029'); -INSERT INTO "projected_crs" VALUES('EPSG','5121','ETRS89 / NTM zone 21',NULL,'EPSG','4500','EPSG','4258','EPSG','5151',NULL,0); +INSERT INTO "projected_crs" VALUES('EPSG','5121','ETRS89-NOR [EUREF89] / NTM zone 21',NULL,'EPSG','4500','EPSG','10875','EPSG','5151',NULL,0); INSERT INTO "usage" VALUES('EPSG','3831','projected_crs','EPSG','5121','EPSG','3663','EPSG','1029'); -INSERT INTO "projected_crs" VALUES('EPSG','5122','ETRS89 / NTM zone 22',NULL,'EPSG','4500','EPSG','4258','EPSG','5152',NULL,0); +INSERT INTO "projected_crs" VALUES('EPSG','5122','ETRS89-NOR [EUREF89] / NTM zone 22',NULL,'EPSG','4500','EPSG','10875','EPSG','5152',NULL,0); INSERT INTO "usage" VALUES('EPSG','3832','projected_crs','EPSG','5122','EPSG','3665','EPSG','1029'); -INSERT INTO "projected_crs" VALUES('EPSG','5123','ETRS89 / NTM zone 23',NULL,'EPSG','4500','EPSG','4258','EPSG','5153',NULL,0); +INSERT INTO "projected_crs" VALUES('EPSG','5123','ETRS89-NOR [EUREF89] / NTM zone 23',NULL,'EPSG','4500','EPSG','10875','EPSG','5153',NULL,0); INSERT INTO "usage" VALUES('EPSG','3833','projected_crs','EPSG','5123','EPSG','3667','EPSG','1029'); -INSERT INTO "projected_crs" VALUES('EPSG','5124','ETRS89 / NTM zone 24',NULL,'EPSG','4500','EPSG','4258','EPSG','5154',NULL,0); +INSERT INTO "projected_crs" VALUES('EPSG','5124','ETRS89-NOR [EUREF89] / NTM zone 24',NULL,'EPSG','4500','EPSG','10875','EPSG','5154',NULL,0); INSERT INTO "usage" VALUES('EPSG','3834','projected_crs','EPSG','5124','EPSG','3668','EPSG','1029'); -INSERT INTO "projected_crs" VALUES('EPSG','5125','ETRS89 / NTM zone 25',NULL,'EPSG','4500','EPSG','4258','EPSG','5155',NULL,0); +INSERT INTO "projected_crs" VALUES('EPSG','5125','ETRS89-NOR [EUREF89] / NTM zone 25',NULL,'EPSG','4500','EPSG','10875','EPSG','5155',NULL,0); INSERT INTO "usage" VALUES('EPSG','3835','projected_crs','EPSG','5125','EPSG','3669','EPSG','1029'); -INSERT INTO "projected_crs" VALUES('EPSG','5126','ETRS89 / NTM zone 26',NULL,'EPSG','4500','EPSG','4258','EPSG','5156',NULL,0); +INSERT INTO "projected_crs" VALUES('EPSG','5126','ETRS89-NOR [EUREF89] / NTM zone 26',NULL,'EPSG','4500','EPSG','10875','EPSG','5156',NULL,0); INSERT INTO "usage" VALUES('EPSG','3836','projected_crs','EPSG','5126','EPSG','3671','EPSG','1029'); -INSERT INTO "projected_crs" VALUES('EPSG','5127','ETRS89 / NTM zone 27',NULL,'EPSG','4500','EPSG','4258','EPSG','5157',NULL,0); +INSERT INTO "projected_crs" VALUES('EPSG','5127','ETRS89-NOR [EUREF89] / NTM zone 27',NULL,'EPSG','4500','EPSG','10875','EPSG','5157',NULL,0); INSERT INTO "usage" VALUES('EPSG','3837','projected_crs','EPSG','5127','EPSG','3672','EPSG','1029'); -INSERT INTO "projected_crs" VALUES('EPSG','5128','ETRS89 / NTM zone 28',NULL,'EPSG','4500','EPSG','4258','EPSG','5158',NULL,0); +INSERT INTO "projected_crs" VALUES('EPSG','5128','ETRS89-NOR [EUREF89] / NTM zone 28',NULL,'EPSG','4500','EPSG','10875','EPSG','5158',NULL,0); INSERT INTO "usage" VALUES('EPSG','3838','projected_crs','EPSG','5128','EPSG','3673','EPSG','1029'); -INSERT INTO "projected_crs" VALUES('EPSG','5129','ETRS89 / NTM zone 29',NULL,'EPSG','4500','EPSG','4258','EPSG','5159',NULL,0); +INSERT INTO "projected_crs" VALUES('EPSG','5129','ETRS89-NOR [EUREF89] / NTM zone 29',NULL,'EPSG','4500','EPSG','10875','EPSG','5159',NULL,0); INSERT INTO "usage" VALUES('EPSG','3839','projected_crs','EPSG','5129','EPSG','3674','EPSG','1029'); -INSERT INTO "projected_crs" VALUES('EPSG','5130','ETRS89 / NTM zone 30',NULL,'EPSG','4500','EPSG','4258','EPSG','5160',NULL,0); +INSERT INTO "projected_crs" VALUES('EPSG','5130','ETRS89-NOR [EUREF89] / NTM zone 30',NULL,'EPSG','4500','EPSG','10875','EPSG','5160',NULL,0); INSERT INTO "usage" VALUES('EPSG','3840','projected_crs','EPSG','5130','EPSG','3676','EPSG','1029'); INSERT INTO "projected_crs" VALUES('EPSG','5167','Korean 1985 / East Sea Belt',NULL,'EPSG','4530','EPSG','4162','EPSG','5049',NULL,0); INSERT INTO "usage" VALUES('EPSG','3842','projected_crs','EPSG','5167','EPSG','3720','EPSG','1092'); @@ -7702,6 +7702,39 @@ INSERT INTO "projected_crs" VALUES('EPSG','10986','NATRF2022 / Gulf East Central INSERT INTO "usage" VALUES('EPSG','23682','projected_crs','EPSG','10986','EPSG','4812','EPSG','1294'); INSERT INTO "projected_crs" VALUES('EPSG','10987','NATRF2022 / Gulf East (ft)',NULL,'EPSG','4495','EPSG','10968','EPSG','10978',NULL,0); INSERT INTO "usage" VALUES('EPSG','23683','projected_crs','EPSG','10987','EPSG','2174','EPSG','1294'); +INSERT INTO "projected_crs" VALUES('EPSG','11012','ETRS89-NOR [EUREF89] / UTM zone 30N (N-E)',NULL,'EPSG','4500','EPSG','10875','EPSG','16030',NULL,0); +INSERT INTO "usage" VALUES('EPSG','24106','projected_crs','EPSG','11012','EPSG','4823','EPSG','1142'); +INSERT INTO "projected_crs" VALUES('EPSG','11013','ETRS89-NOR [EUREF89] / UTM zone 31N (N-E)',NULL,'EPSG','4500','EPSG','10875','EPSG','16031',NULL,0); +INSERT INTO "usage" VALUES('EPSG','24107','projected_crs','EPSG','11013','EPSG','4824','EPSG','1142'); +INSERT INTO "projected_crs" VALUES('EPSG','11014','ETRS89-NOR [EUREF89] / UTM zone 32N (N-E)',NULL,'EPSG','4500','EPSG','10875','EPSG','16032',NULL,0); +INSERT INTO "usage" VALUES('EPSG','24108','projected_crs','EPSG','11014','EPSG','4825','EPSG','1142'); +INSERT INTO "projected_crs" VALUES('EPSG','11015','ETRS89-NOR [EUREF89] / UTM zone 33N (N-E)',NULL,'EPSG','4500','EPSG','10875','EPSG','16033',NULL,0); +INSERT INTO "usage" VALUES('EPSG','24109','projected_crs','EPSG','11015','EPSG','4826','EPSG','1142'); +INSERT INTO "projected_crs" VALUES('EPSG','11016','ETRS89-NOR [EUREF89] / UTM zone 34N (N-E)',NULL,'EPSG','4500','EPSG','10875','EPSG','16034',NULL,0); +INSERT INTO "usage" VALUES('EPSG','24110','projected_crs','EPSG','11016','EPSG','4827','EPSG','1142'); +INSERT INTO "projected_crs" VALUES('EPSG','11017','ETRS89-NOR [EUREF89] / UTM zone 35N (N-E)',NULL,'EPSG','4500','EPSG','10875','EPSG','16035',NULL,0); +INSERT INTO "usage" VALUES('EPSG','24111','projected_crs','EPSG','11017','EPSG','4828','EPSG','1142'); +INSERT INTO "projected_crs" VALUES('EPSG','11018','ETRS89-NOR [EUREF89] / UTM zone 36N (N-E)',NULL,'EPSG','4500','EPSG','10875','EPSG','16036',NULL,0); +INSERT INTO "usage" VALUES('EPSG','24112','projected_crs','EPSG','11018','EPSG','4829','EPSG','1142'); +INSERT INTO "projected_crs" VALUES('EPSG','11019','ETRS89-NOR [EUREF89] / UTM zone 37N (N-E)',NULL,'EPSG','4500','EPSG','10875','EPSG','16037',NULL,0); +INSERT INTO "usage" VALUES('EPSG','24113','projected_crs','EPSG','11019','EPSG','4830','EPSG','1142'); +INSERT INTO "projected_crs" VALUES('EPSG','11020','ETRS89-NOR [EUREF89] / UTM zone 30N',NULL,'EPSG','4400','EPSG','10875','EPSG','16030',NULL,0); +INSERT INTO "usage" VALUES('EPSG','24114','projected_crs','EPSG','11020','EPSG','4823','EPSG','1142'); +INSERT INTO "projected_crs" VALUES('EPSG','11021','ETRS89-NOR [EUREF89] / UTM zone 31N',NULL,'EPSG','4400','EPSG','10875','EPSG','16031',NULL,0); +INSERT INTO "usage" VALUES('EPSG','24115','projected_crs','EPSG','11021','EPSG','4824','EPSG','1142'); +INSERT INTO "usage" VALUES('EPSG','24116','projected_crs','EPSG','11021','EPSG','4823','EPSG','1142'); +INSERT INTO "projected_crs" VALUES('EPSG','11022','ETRS89-NOR [EUREF89] / UTM zone 32N',NULL,'EPSG','4400','EPSG','10875','EPSG','16032',NULL,0); +INSERT INTO "usage" VALUES('EPSG','24117','projected_crs','EPSG','11022','EPSG','4825','EPSG','1142'); +INSERT INTO "projected_crs" VALUES('EPSG','11023','ETRS89-NOR [EUREF89] / UTM zone 33N',NULL,'EPSG','4400','EPSG','10875','EPSG','16033',NULL,0); +INSERT INTO "usage" VALUES('EPSG','24118','projected_crs','EPSG','11023','EPSG','4826','EPSG','1142'); +INSERT INTO "projected_crs" VALUES('EPSG','11024','ETRS89-NOR [EUREF89] / UTM zone 34N',NULL,'EPSG','4400','EPSG','10875','EPSG','16034',NULL,0); +INSERT INTO "usage" VALUES('EPSG','24119','projected_crs','EPSG','11024','EPSG','4827','EPSG','1142'); +INSERT INTO "projected_crs" VALUES('EPSG','11025','ETRS89-NOR [EUREF89] / UTM zone 35N',NULL,'EPSG','4400','EPSG','10875','EPSG','16035',NULL,0); +INSERT INTO "usage" VALUES('EPSG','24120','projected_crs','EPSG','11025','EPSG','4828','EPSG','1142'); +INSERT INTO "projected_crs" VALUES('EPSG','11026','ETRS89-NOR [EUREF89] / UTM zone 36N',NULL,'EPSG','4400','EPSG','10875','EPSG','16036',NULL,0); +INSERT INTO "usage" VALUES('EPSG','24121','projected_crs','EPSG','11026','EPSG','4829','EPSG','1142'); +INSERT INTO "projected_crs" VALUES('EPSG','11027','ETRS89-NOR [EUREF89] / UTM zone 37N',NULL,'EPSG','4400','EPSG','10875','EPSG','16037',NULL,0); +INSERT INTO "usage" VALUES('EPSG','24396','projected_crs','EPSG','11027','EPSG','4830','EPSG','1142'); 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/scope.sql b/data/sql/scope.sql index a12208a342..1c17faec12 100644 --- a/data/sql/scope.sql +++ b/data/sql/scope.sql @@ -272,3 +272,4 @@ INSERT INTO "scope" VALUES('EPSG','1292','Crop inventory mapping.',0); INSERT INTO "scope" VALUES('EPSG','1293','Engineering survey and topographic mapping related to the Woodsmith mine project.',0); INSERT INTO "scope" VALUES('EPSG','1294','Emulation of SPCS27.',0); INSERT INTO "scope" VALUES('EPSG','1295','Geodesy. Active GNSS network / Continuously Operating Reference Station (CORS) network.',0); +INSERT INTO "scope" VALUES('EPSG','1296','Merging of spatial data referenced to different national realizations of ETRS89 at the sub-decimetre level of accuracy.',0); diff --git a/data/sql/supersession.sql b/data/sql/supersession.sql index afb751e528..6ec429cdc2 100644 --- a/data/sql/supersession.sql +++ b/data/sql/supersession.sql @@ -270,8 +270,6 @@ INSERT INTO "supersession" VALUES('grid_transformation','EPSG','9955','grid_tran INSERT INTO "supersession" VALUES('grid_transformation','EPSG','9956','grid_transformation','EPSG','9958','EPSG',0); INSERT INTO "supersession" VALUES('grid_transformation','EPSG','9957','grid_transformation','EPSG','9959','EPSG',0); INSERT INTO "supersession" VALUES('grid_transformation','EPSG','5891','grid_transformation','EPSG','9910','EPSG',1); -INSERT INTO "supersession" VALUES('grid_transformation','EPSG','9884','grid_transformation','EPSG','10130','EPSG',1); -INSERT INTO "supersession" VALUES('grid_transformation','EPSG','9885','grid_transformation','EPSG','10133','EPSG',1); INSERT INTO "supersession" VALUES('helmert_transformation','EPSG','9020','helmert_transformation','EPSG','10139','EPSG',1); INSERT INTO "supersession" VALUES('helmert_transformation','EPSG','9021','helmert_transformation','EPSG','10140','EPSG',1); INSERT INTO "supersession" VALUES('helmert_transformation','EPSG','9022','helmert_transformation','EPSG','10141','EPSG',1); @@ -296,10 +294,6 @@ INSERT INTO "supersession" VALUES('grid_transformation','EPSG','10491','grid_tra INSERT INTO "supersession" VALUES('grid_transformation','EPSG','10489','grid_transformation','EPSG','10491','EPSG',0); INSERT INTO "supersession" VALUES('grid_transformation','EPSG','10492','grid_transformation','EPSG','10494','EPSG',0); INSERT INTO "supersession" VALUES('grid_transformation','EPSG','10490','grid_transformation','EPSG','10492','EPSG',0); -INSERT INTO "supersession" VALUES('grid_transformation','EPSG','10130','grid_transformation','EPSG','10504','EPSG',1); -INSERT INTO "supersession" VALUES('grid_transformation','EPSG','10133','grid_transformation','EPSG','10505','EPSG',1); -INSERT INTO "supersession" VALUES('grid_transformation','EPSG','10504','grid_transformation','EPSG','10509','EPSG',1); -INSERT INTO "supersession" VALUES('grid_transformation','EPSG','10505','grid_transformation','EPSG','10510','EPSG',1); INSERT INTO "supersession" VALUES('grid_transformation','EPSG','9925','grid_transformation','EPSG','10294','EPSG',0); INSERT INTO "supersession" VALUES('grid_transformation','EPSG','9926','grid_transformation','EPSG','10295','EPSG',0); INSERT INTO "supersession" VALUES('grid_transformation','EPSG','10558','grid_transformation','EPSG','10562','EPSG',0); @@ -356,3 +350,9 @@ INSERT INTO "supersession" VALUES('grid_transformation','EPSG','9634','grid_tran INSERT INTO "supersession" VALUES('helmert_transformation','EPSG','15900','helmert_transformation','EPSG','10961','EPSG',1); INSERT INTO "supersession" VALUES('helmert_transformation','EPSG','15957','helmert_transformation','EPSG','10962','EPSG',1); INSERT INTO "supersession" VALUES('helmert_transformation','EPSG','15899','helmert_transformation','EPSG','10963','EPSG',1); +INSERT INTO "supersession" VALUES('grid_transformation','EPSG','9884','grid_transformation','EPSG','10130','EPSG',1); +INSERT INTO "supersession" VALUES('grid_transformation','EPSG','10504','grid_transformation','EPSG','10509','EPSG',1); +INSERT INTO "supersession" VALUES('grid_transformation','EPSG','9885','grid_transformation','EPSG','10133','EPSG',1); +INSERT INTO "supersession" VALUES('grid_transformation','EPSG','10133','grid_transformation','EPSG','10505','EPSG',1); +INSERT INTO "supersession" VALUES('grid_transformation','EPSG','10505','grid_transformation','EPSG','10510','EPSG',1); +INSERT INTO "supersession" VALUES('grid_transformation','EPSG','10130','grid_transformation','EPSG','10504','EPSG',1); From 1a0284c598bb156ef9d3efcd3435fba20b7c261f Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Mon, 15 Sep 2025 01:21:14 +0200 Subject: [PATCH 2/3] Fix setting requiresPerCoordinateInputTime flag for PROJ-synthetized operations --- src/iso19111/operation/projbasedoperation.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/iso19111/operation/projbasedoperation.cpp b/src/iso19111/operation/projbasedoperation.cpp index 84d8ecad56..8fb8c6ae1a 100644 --- a/src/iso19111/operation/projbasedoperation.cpp +++ b/src/iso19111/operation/projbasedoperation.cpp @@ -125,8 +125,6 @@ PROJBasedOperationNNPtr PROJBasedOperation::create( if (inverse) { formatter->startInversion(); } - const bool bRequiresPerCoordinateInputTime = - formatter->requiresPerCoordinateInputTime(); projExportable->_exportToPROJString(formatter.get()); if (inverse) { formatter->stopInversion(); @@ -148,7 +146,8 @@ PROJBasedOperationNNPtr PROJBasedOperation::create( op->projStringExportable_ = projExportable.as_nullable(); op->inverse_ = inverse; op->setHasBallparkTransformation(hasBallparkTransformation); - op->setRequiresPerCoordinateInputTime(bRequiresPerCoordinateInputTime); + op->setRequiresPerCoordinateInputTime( + formatter->requiresPerCoordinateInputTime()); return op; } From 8682f9f1efa78a6b08a47848edfd4dc25c2f7c7d Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Mon, 15 Sep 2025 01:05:18 +0200 Subject: [PATCH 3/3] Various tweaks to take into account switch from ETRS89 to ETRS89-NOR [EUREF89] --- src/iso19111/crs.cpp | 47 ++++++- src/iso19111/datum.cpp | 12 +- src/iso19111/io.cpp | 24 +++- .../operation/coordinateoperationfactory.cpp | 30 ++++- test/unit/test_crs.cpp | 110 ++++++++++++++++ test/unit/test_operationfactory.cpp | 118 ++++++++++-------- 6 files changed, 277 insertions(+), 64 deletions(-) diff --git a/src/iso19111/crs.cpp b/src/iso19111/crs.cpp index 0c24a071d4..40c8eccab3 100644 --- a/src/iso19111/crs.cpp +++ b/src/iso19111/crs.cpp @@ -2250,9 +2250,15 @@ void GeodeticCRS::_exportToWKT(io::WKTFormatter *formatter) const { } } if (l_esri_name.empty()) { - l_esri_name = io::WKTFormatter::morphNameToESRI(l_name); - if (!starts_with(l_esri_name, "GCS_")) { - l_esri_name = "GCS_" + l_esri_name; + // For now, there's no ESRI alias for this CRS. Fallback to + // ETRS89 + if (l_name == "ETRS89-NOR [EUREF89]") { + l_esri_name = "GCS_ETRS_1989"; + } else { + l_esri_name = io::WKTFormatter::morphNameToESRI(l_name); + if (!starts_with(l_esri_name, "GCS_")) { + l_esri_name = "GCS_" + l_esri_name; + } } } } @@ -3169,10 +3175,10 @@ bool GeographicCRS::_isEquivalentTo( } const auto standardCriterion = getStandardCriterion(criterion); + const auto otherGeogCRS = dynamic_cast(other); if (GeodeticCRS::_isEquivalentToNoTypeCheck(other, standardCriterion, dbContext)) { // Make sure GeoPackage "Undefined geographic SRS" != EPSG:4326 - const auto otherGeogCRS = dynamic_cast(other); if ((nameStr() == "Undefined geographic SRS" || otherGeogCRS->nameStr() == "Undefined geographic SRS") && otherGeogCRS->nameStr() != nameStr()) { @@ -3180,6 +3186,39 @@ bool GeographicCRS::_isEquivalentTo( } return true; } + + // In EPSG v12.025, Norway projected systems based on ETRS89 (EPSG:4258) + // have swiched to use ETRS89-NOR [EUREF89] (EPSG:10875). There's no way + // from the current content of the database to infer both CRS are equivalent + if (criterion != util::IComparable::Criterion::STRICT) { + if (((nameStr() == "ETRS89" && + otherGeogCRS->nameStr() == "ETRS89-NOR [EUREF89]") || + (nameStr() == "ETRS89-NOR [EUREF89]" && + otherGeogCRS->nameStr() == "ETRS89")) && + ellipsoid()->_isEquivalentTo(otherGeogCRS->ellipsoid().get(), + criterion) && + datumNonNull(dbContext)->primeMeridian()->_isEquivalentTo( + otherGeogCRS->datumNonNull(dbContext)->primeMeridian().get(), + criterion)) { + auto thisCS = coordinateSystem(); + auto otherCS = otherGeogCRS->coordinateSystem(); + if (thisCS->_isEquivalentTo(otherCS.get(), criterion)) { + return true; + } else if (criterion == util::IComparable::Criterion:: + EQUIVALENT_EXCEPT_AXIS_ORDER_GEOGCRS) { + const auto &otherAxisList = otherCS->axisList(); + return thisCS->axisList().size() == 2 && + otherAxisList.size() == 2 && + thisCS->_isEquivalentTo( + cs::EllipsoidalCS::create(util::PropertyMap(), + otherAxisList[1], + otherAxisList[0]) + .get(), + criterion); + } + } + } + if (criterion != util::IComparable::Criterion::EQUIVALENT_EXCEPT_AXIS_ORDER_GEOGCRS) { return false; diff --git a/src/iso19111/datum.cpp b/src/iso19111/datum.cpp index db80df4931..79998b97e1 100644 --- a/src/iso19111/datum.cpp +++ b/src/iso19111/datum.cpp @@ -1398,9 +1398,15 @@ void GeodeticReferenceFrame::_exportToWKT( .size() == 1; } if (!aliasFound) { - l_name = io::WKTFormatter::morphNameToESRI(l_name); - if (!starts_with(l_name, "D_")) { - l_name = "D_" + l_name; + // For now, there's no ESRI alias for this CRS. Fallback to + // ETRS89 + if (l_name == "ETRS89-NOR [EUREF89]") { + l_name = "D_ETRS_1989"; + } else { + l_name = io::WKTFormatter::morphNameToESRI(l_name); + if (!starts_with(l_name, "D_")) { + l_name = "D_" + l_name; + } } } } diff --git a/src/iso19111/io.cpp b/src/iso19111/io.cpp index 99ec1b6a05..996f9d35a7 100644 --- a/src/iso19111/io.cpp +++ b/src/iso19111/io.cpp @@ -4549,7 +4549,7 @@ WKTParser::Private::buildProjectedCRS(const WKTNodeNNPtr &node) { ThrowMissing(WKTConstants::CS_); } - const std::string projCRSName = stripQuotes(nodeP->children()[0]); + std::string projCRSName = stripQuotes(nodeP->children()[0]); auto cs = [this, &projCRSName, &nodeP, &csNode, &node, &nodeValue, &conversionNode]() -> CoordinateSystemNNPtr { @@ -4654,6 +4654,7 @@ WKTParser::Private::buildProjectedCRS(const WKTNodeNNPtr &node) { } } + projCRSName = officialName; props.set(IdentifiedObject::NAME_KEY, officialName); } } @@ -4764,6 +4765,27 @@ WKTParser::Private::buildProjectedCRS(const WKTNodeNNPtr &node) { ThrowNotExpectedCSType(CartesianCS::WKT2_TYPE); } + // In EPSG v12.025, Norway projected systems based on ETRS89 (EPSG:4258) + // have swiched to use ETRS89-NOR [EUREF89] (EPSG:10875). There's no way + // from the current content of the database to infer both CRS are equivalent + if (starts_with(projCRSName, "ETRS89 / NTM zone")) { + projCRSName = "ETRS89-NOR [EUREF89] / NTM zone" + + projCRSName.substr(strlen("ETRS89 / NTM zone")); + props.set(IdentifiedObject::NAME_KEY, projCRSName); + } + if (dbContext_ && + starts_with(projCRSName, "ETRS89-NOR [EUREF89] / NTM zone") && + baseGeodCRS->nameStr() == "ETRS89" && + util::isOfExactType(*(baseGeodCRS.get())) && + baseGeodCRS->coordinateSystem()->axisList().size() == 2) { + auto factoryCRS_EPSG = + AuthorityFactory::create(NN_NO_CHECK(dbContext_), Identifier::EPSG); + try { + baseGeodCRS = factoryCRS_EPSG->createGeodeticCRS("10875"); + } catch (const std::exception &) { + } + } + if (cartesianCS->axisList().size() == 3 && baseGeodCRS->coordinateSystem()->axisList().size() == 2) { baseGeodCRS = NN_NO_CHECK(util::nn_dynamic_pointer_cast( diff --git a/src/iso19111/operation/coordinateoperationfactory.cpp b/src/iso19111/operation/coordinateoperationfactory.cpp index 20ed3112a3..c6e8f9f8c7 100644 --- a/src/iso19111/operation/coordinateoperationfactory.cpp +++ b/src/iso19111/operation/coordinateoperationfactory.cpp @@ -4075,12 +4075,27 @@ bool CoordinateOperationFactory::Private::createOperationsFromDatabase( } } - if ((res.empty() || tooSmallAreas) && - !context.inCreateOperationsWithDatumPivotAntiRecursion && + bool allRequiresPerCoordinateInputTime = false; + for (const auto &op : res) { + allRequiresPerCoordinateInputTime = + op->requiresPerCoordinateInputTime(); + if (!allRequiresPerCoordinateInputTime) { + break; + } + } + + if (!context.inCreateOperationsWithDatumPivotAntiRecursion && !resFindDirectNonEmptyBeforeFiltering && geodSrc && geodDst && !sameGeodeticDatum && context.context->getIntermediateCRS().empty() && context.context->getAllowUseIntermediateCRS() != - CoordinateOperationContext::IntermediateCRSUse::NEVER) { + CoordinateOperationContext::IntermediateCRSUse::NEVER && + (res.empty() || tooSmallAreas || + // If all coordinate operations are time-dependent and none of the + // source or target CRS are dynamic, try through an intermediate CRS + // (we go here between ETRS89 and ETRS89-NO that would otherwise only + // use NKG time-dependent transformations) + (allRequiresPerCoordinateInputTime && !geodSrc->isDynamic() && + !geodDst->isDynamic()))) { // Currently triggered by "IG05/12 Intermediate CRS" to ITRF2014 std::set oSetNames; @@ -4089,6 +4104,7 @@ bool CoordinateOperationFactory::Private::createOperationsFromDatabase( oSetNames.insert(op->nameStr()); } } + auto resWithIntermediate = findsOpsInRegistryWithIntermediate( sourceCRS, targetCRS, context, true); if (tooSmallAreas && !res.empty()) { @@ -6337,7 +6353,13 @@ void CoordinateOperationFactory::Private::createOperationsCompoundToGeog( const bool srcAndTargetGeogAreSame = componentsSrc[0]->isEquivalentTo( targetCRS->demoteTo2D(std::string(), dbContext).get(), - util::IComparable::Criterion::EQUIVALENT); + util::IComparable::Criterion::EQUIVALENT) && + // Kind of a hack for EPSG:4937 to EPSG:9883 to work + // properly + !((componentsSrc[0]->nameStr() == "ETRS89" && + targetCRS->nameStr() == "ETRS89-NOR [EUREF89]") || + (componentsSrc[0]->nameStr() == "ETRS89-NOR [EUREF89]" && + targetCRS->nameStr() == "ETRS89")); // Lambda to add to the set the name of geodetic datum of the // CRS diff --git a/test/unit/test_crs.cpp b/test/unit/test_crs.cpp index 3bf6f5aa07..95742bbb3e 100644 --- a/test/unit/test_crs.cpp +++ b/test/unit/test_crs.cpp @@ -7747,3 +7747,113 @@ TEST(crs, is_dynamic) { EXPECT_FALSE(createCompoundCRS()->isDynamic()); } + +// --------------------------------------------------------------------------- + +TEST(crs, norway_ntm) { + + auto dbContext = DatabaseContext::create(); + auto factory = AuthorityFactory::create(dbContext, "EPSG"); + // "ETRS89-NOR [EUREF89] / NTM zone 5" + auto crs = factory->createCoordinateReferenceSystem("5105"); + + auto esri_wkt = + "PROJCS[\"ETRS_1989_NTM_Zone_5\",GEOGCS[\"GCS_ETRS_1989\"," + "DATUM[\"D_ETRS_1989\",SPHEROID[\"GRS_1980\",6378137.0,298.257222101]]," + "PRIMEM[\"Greenwich\",0.0],UNIT[\"Degree\",0.0174532925199433]]," + "PROJECTION[\"Transverse_Mercator\"]," + "PARAMETER[\"False_Easting\",100000.0]," + "PARAMETER[\"False_Northing\",1000000.0]," + "PARAMETER[\"Central_Meridian\",5.5]," + "PARAMETER[\"Scale_Factor\",1.0]," + "PARAMETER[\"Latitude_Of_Origin\",58.0]," + "UNIT[\"Meter\",1.0]]"; + + // May change in a future version of the ESRI db + EXPECT_EQ( + crs->exportToWKT( + WKTFormatter::create(WKTFormatter::Convention::WKT1_ESRI, dbContext) + .get()), + esri_wkt); + + { + auto obj = createFromUserInput(esri_wkt, dbContext, true); + auto crs_from_esri = nn_dynamic_pointer_cast(obj); + ASSERT_TRUE(crs_from_esri != nullptr); + + auto res = crs_from_esri->identify(factory); + ASSERT_EQ(res.size(), 1U); + EXPECT_EQ(res.front().first.get(), crs.get()); + EXPECT_EQ(res.front().second, 100); + } + + auto wkt2_before_epsg_12_025 = + "PROJCRS[\"ETRS89 / NTM zone 5\",\n" + " BASEGEOGCRS[\"ETRS89\",\n" + " ENSEMBLE[\"European Terrestrial Reference System 1989 " + "ensemble\",\n" + " MEMBER[\"European Terrestrial Reference Frame 1989\"],\n" + " MEMBER[\"European Terrestrial Reference Frame 1990\"],\n" + " MEMBER[\"European Terrestrial Reference Frame 1991\"],\n" + " MEMBER[\"European Terrestrial Reference Frame 1992\"],\n" + " MEMBER[\"European Terrestrial Reference Frame 1993\"],\n" + " MEMBER[\"European Terrestrial Reference Frame 1994\"],\n" + " MEMBER[\"European Terrestrial Reference Frame 1996\"],\n" + " MEMBER[\"European Terrestrial Reference Frame 1997\"],\n" + " MEMBER[\"European Terrestrial Reference Frame 2000\"],\n" + " MEMBER[\"European Terrestrial Reference Frame 2005\"],\n" + " MEMBER[\"European Terrestrial Reference Frame 2014\"],\n" + " MEMBER[\"European Terrestrial Reference Frame 2020\"],\n" + " ELLIPSOID[\"GRS 1980\",6378137,298.257222101,\n" + " LENGTHUNIT[\"metre\",1]],\n" + " ENSEMBLEACCURACY[0.1]],\n" + " PRIMEM[\"Greenwich\",0,\n" + " ANGLEUNIT[\"degree\",0.0174532925199433]],\n" + " ID[\"EPSG\",4258]],\n" + " CONVERSION[\"Norway TM zone 5\",\n" + " METHOD[\"Transverse Mercator\",\n" + " ID[\"EPSG\",9807]],\n" + " PARAMETER[\"Latitude of natural origin\",58,\n" + " ANGLEUNIT[\"degree\",0.0174532925199433],\n" + " ID[\"EPSG\",8801]],\n" + " PARAMETER[\"Longitude of natural origin\",5.5,\n" + " ANGLEUNIT[\"degree\",0.0174532925199433],\n" + " ID[\"EPSG\",8802]],\n" + " PARAMETER[\"Scale factor at natural origin\",1,\n" + " SCALEUNIT[\"unity\",1],\n" + " ID[\"EPSG\",8805]],\n" + " PARAMETER[\"False easting\",100000,\n" + " LENGTHUNIT[\"metre\",1],\n" + " ID[\"EPSG\",8806]],\n" + " PARAMETER[\"False northing\",1000000,\n" + " LENGTHUNIT[\"metre\",1],\n" + " ID[\"EPSG\",8807]]],\n" + " CS[Cartesian,2],\n" + " AXIS[\"northing (N)\",north,\n" + " ORDER[1],\n" + " LENGTHUNIT[\"metre\",1]],\n" + " AXIS[\"easting (E)\",east,\n" + " ORDER[2],\n" + " LENGTHUNIT[\"metre\",1]],\n" + " USAGE[\n" + " SCOPE[\"Engineering survey.\"],\n" + " AREA[\"Norway - onshore - west of 6°E.\"],\n" + " BBOX[58.32,4.39,62.64,6.01]],\n" + " ID[\"EPSG\",5105]]"; + + { + auto obj = + createFromUserInput(wkt2_before_epsg_12_025, dbContext, true); + auto crs_from_wkt2 = nn_dynamic_pointer_cast(obj); + ASSERT_TRUE(crs_from_wkt2 != nullptr); + EXPECT_TRUE(crs->isEquivalentTo(crs_from_wkt2.get(), + IComparable::Criterion::EQUIVALENT)); + EXPECT_TRUE(crs_from_wkt2->isEquivalentTo( + crs.get(), IComparable::Criterion::EQUIVALENT)); + + auto res = crs_from_wkt2->identify(factory); + ASSERT_EQ(res.size(), 1U); + EXPECT_EQ(res.front().first.get(), crs.get()); + EXPECT_EQ(res.front().second, 100); + } +} diff --git a/test/unit/test_operationfactory.cpp b/test/unit/test_operationfactory.cpp index 5ef87d3b8b..0c828e737a 100644 --- a/test/unit/test_operationfactory.cpp +++ b/test/unit/test_operationfactory.cpp @@ -1050,58 +1050,72 @@ TEST(operation, geog3DCRS_to_vertCRS_depth_context) { // --------------------------------------------------------------------------- TEST(operation, geog3DCRS_to_geog2DCRS_plus_vertCRS_depth_context) { - auto authFactory = - AuthorityFactory::create(DatabaseContext::create(), "EPSG"); - { - auto ctxt = - CoordinateOperationContext::create(authFactory, nullptr, 0.0); - ctxt->setSpatialCriterion( - CoordinateOperationContext::SpatialCriterion::PARTIAL_INTERSECTION); - auto list = CoordinateOperationFactory::create()->createOperations( - authFactory->createCoordinateReferenceSystem("4937"), // ETRS89 - authFactory->createCoordinateReferenceSystem("9883"), - // ETRS89 + CD Norway deph - ctxt); - ASSERT_GE(list.size(), 1U); - EXPECT_EQ(list[0]->exportToPROJString( - PROJStringFormatter::create( - PROJStringFormatter::Convention::PROJ_5, - authFactory->databaseContext()) - .get()), - "+proj=pipeline " - "+step +proj=axisswap +order=2,1 " - "+step +proj=unitconvert +xy_in=deg +xy_out=rad " - "+step +inv +proj=vgridshift " - "+grids=no_kv_CD_above_Ell_ETRS89_v2023b.tif +multiplier=1 " - "+step +proj=axisswap +order=1,2,-3 " - "+step +proj=unitconvert +xy_in=rad +xy_out=deg " - "+step +proj=axisswap +order=2,1"); - } - { - auto ctxt = - CoordinateOperationContext::create(authFactory, nullptr, 0.0); - ctxt->setSpatialCriterion( - CoordinateOperationContext::SpatialCriterion::PARTIAL_INTERSECTION); - auto list = CoordinateOperationFactory::create()->createOperations( - authFactory->createCoordinateReferenceSystem("9883"), - // ETRS89 + CD Norway deph - authFactory->createCoordinateReferenceSystem("4937"), // ETRS89 - ctxt); - ASSERT_GE(list.size(), 1U); - EXPECT_EQ(list[0]->exportToPROJString( - PROJStringFormatter::create( - PROJStringFormatter::Convention::PROJ_5, - authFactory->databaseContext()) - .get()), - "+proj=pipeline " - "+step +proj=axisswap +order=2,1 " - "+step +proj=unitconvert +xy_in=deg +xy_out=rad " - "+step +proj=axisswap +order=1,2,-3 " - "+step +proj=vgridshift " - "+grids=no_kv_CD_above_Ell_ETRS89_v2023b.tif +multiplier=1 " - "+step +proj=unitconvert +xy_in=rad +xy_out=deg " - "+step +proj=axisswap +order=2,1"); - } + + const auto test = [](bool allAuthorities, const char *srcCode) { + auto authFactoryEPSG = + AuthorityFactory::create(DatabaseContext::create(), "EPSG"); + auto authFactoryOp = + allAuthorities ? AuthorityFactory::create(DatabaseContext::create(), + std::string()) + : authFactoryEPSG; + { + auto ctxt = + CoordinateOperationContext::create(authFactoryOp, nullptr, 0.0); + ctxt->setSpatialCriterion( + CoordinateOperationContext::SpatialCriterion:: + PARTIAL_INTERSECTION); + auto list = CoordinateOperationFactory::create()->createOperations( + authFactoryEPSG->createCoordinateReferenceSystem(srcCode), + // ETRS89-NOR [EUREF89] + CD Norway deph + authFactoryEPSG->createCoordinateReferenceSystem("9883"), ctxt); + ASSERT_GE(list.size(), 1U); + EXPECT_EQ( + list[0]->exportToPROJString( + PROJStringFormatter::create( + PROJStringFormatter::Convention::PROJ_5, + authFactoryEPSG->databaseContext()) + .get()), + "+proj=pipeline " + "+step +proj=axisswap +order=2,1 " + "+step +proj=unitconvert +xy_in=deg +xy_out=rad " + "+step +inv +proj=vgridshift " + "+grids=no_kv_CD_above_Ell_ETRS89_v2023b.tif +multiplier=1 " + "+step +proj=axisswap +order=1,2,-3 " + "+step +proj=unitconvert +xy_in=rad +xy_out=deg " + "+step +proj=axisswap +order=2,1"); + } + { + auto ctxt = + CoordinateOperationContext::create(authFactoryOp, nullptr, 0.0); + ctxt->setSpatialCriterion( + CoordinateOperationContext::SpatialCriterion:: + PARTIAL_INTERSECTION); + auto list = CoordinateOperationFactory::create()->createOperations( + // ETRS89-NOR [EUREF89] + CD Norway deph + authFactoryEPSG->createCoordinateReferenceSystem("9883"), + authFactoryEPSG->createCoordinateReferenceSystem(srcCode), + ctxt); + ASSERT_GE(list.size(), 1U); + EXPECT_EQ( + list[0]->exportToPROJString( + PROJStringFormatter::create( + PROJStringFormatter::Convention::PROJ_5, + authFactoryEPSG->databaseContext()) + .get()), + "+proj=pipeline " + "+step +proj=axisswap +order=2,1 " + "+step +proj=unitconvert +xy_in=deg +xy_out=rad " + "+step +proj=axisswap +order=1,2,-3 " + "+step +proj=vgridshift " + "+grids=no_kv_CD_above_Ell_ETRS89_v2023b.tif +multiplier=1 " + "+step +proj=unitconvert +xy_in=rad +xy_out=deg " + "+step +proj=axisswap +order=2,1"); + } + }; + + test(false, "4937"); // ETRS89 3D + test(true, "4937"); // ETRS89 3D + test(false, "10874"); // ETRS89-NOR [EUREF89] 3D } // ---------------------------------------------------------------------------