aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--data/sql/alias_name.sql14
-rw-r--r--data/sql/compound_crs.sql6
-rw-r--r--data/sql/concatenated_operation.sql2
-rw-r--r--data/sql/concatenated_operation_step.sql2
-rw-r--r--data/sql/conversion.sql5
-rw-r--r--data/sql/customizations.sql6
-rw-r--r--data/sql/extent.sql100
-rw-r--r--data/sql/geodetic_crs.sql6
-rw-r--r--data/sql/geodetic_datum.sql2
-rw-r--r--data/sql/grid_transformation.sql16
-rw-r--r--data/sql/helmert_transformation.sql18
-rw-r--r--data/sql/metadata.sql4
-rw-r--r--data/sql/other_transformation.sql2
-rw-r--r--data/sql/projected_crs.sql13
-rw-r--r--data/sql/scope.sql2
-rw-r--r--data/sql/supersession.sql1
-rw-r--r--data/sql/vertical_crs.sql4
-rw-r--r--data/sql/vertical_datum.sql6
-rwxr-xr-xscripts/build_db.py49
-rw-r--r--src/iso19111/operation/transformation.cpp1
-rw-r--r--test/cli/td_out.dist11
-rwxr-xr-xtest/cli/testdatumfile16
-rw-r--r--test/cli/testprojinfo_out.dist38
-rw-r--r--test/unit/test_c_api.cpp2
-rw-r--r--test/unit/test_operationfactory.cpp8
25 files changed, 201 insertions, 133 deletions
diff --git a/data/sql/alias_name.sql b/data/sql/alias_name.sql
index 9173abd8..0f896a61 100644
--- a/data/sql/alias_name.sql
+++ b/data/sql/alias_name.sql
@@ -608,10 +608,14 @@ INSERT INTO "alias_name" VALUES('vertical_datum','EPSG','1288','BI','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','6258','European Terrestrial Reference System 1989','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','6326','World Geodetic System 1984','EPSG');
INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','6670','IGM95','EPSG');
+INSERT INTO "alias_name" VALUES('geodetic_datum','EPSG','1295','LTF2004','EPSG');
INSERT INTO "alias_name" VALUES('vertical_datum','EPSG','5215','EVRF2007','EPSG');
INSERT INTO "alias_name" VALUES('vertical_datum','EPSG','1274','EVRF2019','EPSG');
INSERT INTO "alias_name" VALUES('vertical_datum','EPSG','1287','EVRF2019mean','EPSG');
INSERT INTO "alias_name" VALUES('vertical_datum','EPSG','1302','Pago Pago 2020','EPSG');
+INSERT INTO "alias_name" VALUES('vertical_datum','EPSG','1303','NVD 1992','EPSG');
+INSERT INTO "alias_name" VALUES('vertical_datum','EPSG','1301','CD Norway','EPSG');
+INSERT INTO "alias_name" VALUES('vertical_datum','EPSG','1199','Greenland Vertical Reference 2000','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','21100','Genuk / NEIEZ','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','2140','NAD83(CSRS98) / SCoPQ zone 3','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','2141','NAD83(CSRS98) / SCoPQ zone 4','EPSG');
@@ -1939,7 +1943,7 @@ INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','5758','IGN 1989 height','
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','5793','IGN 1950 height','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','5794','IGN 1955 height','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','5795','IGN 1951 height','EPSG');
-INSERT INTO "alias_name" VALUES('projected_crs','EPSG','3106','Gulshan / Bangladesh TM','EPSG');
+INSERT INTO "alias_name" VALUES('projected_crs','EPSG','3106','Gulshan 303 / Bangladesh UTM','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','3108','ETRS89 / New Guernsey Grid','EPSG');
INSERT INTO "alias_name" VALUES('projected_crs','EPSG','3109','ETRS89 / JTM','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','5713','CVD28 height','EPSG');
@@ -7209,3 +7213,11 @@ INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','9389','EVRF2019_AMST / NH
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','9390','EVRF2019mean_AMST / NH','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','9675','741','EPSG');
INSERT INTO "alias_name" VALUES('vertical_crs','EPSG','9675','LT at Pago Pago - NOHt','EPSG');
+INSERT INTO "alias_name" VALUES('projected_crs','EPSG','3106','Gulshan 303 / Bangladesh Transverse Mercator','EPSG');
+INSERT INTO "alias_name" VALUES('projected_crs','EPSG','3106','Gulshan 303 / BUTM','EPSG');
+INSERT INTO "alias_name" VALUES('projected_crs','EPSG','9678','Gulshan / Bangladesh TM','EPSG');
+INSERT INTO "alias_name" VALUES('projected_crs','EPSG','9680','WGS 84 / Bangladesh Universal Transverse Mercator','EPSG');
+INSERT INTO "alias_name" VALUES('projected_crs','EPSG','9680','WGS 84 / BUTM 2010','EPSG');
+INSERT INTO "alias_name" VALUES('compound_crs','EPSG','6893','WGS 84 / World Mercator + EGM2008 height','EPSG');
+INSERT INTO "alias_name" VALUES('compound_crs','EPSG','7955','St. Helena Tritan / UTM zone 30S + Tritan 2011 height','EPSG');
+INSERT INTO "alias_name" VALUES('compound_crs','EPSG','7956','SHMG2015 + SHVD2015 height','EPSG');
diff --git a/data/sql/compound_crs.sql b/data/sql/compound_crs.sql
index e5bab068..8d3a8661 100644
--- a/data/sql/compound_crs.sql
+++ b/data/sql/compound_crs.sql
@@ -252,7 +252,7 @@ INSERT INTO "compound_crs" VALUES('EPSG','6700','Tokyo + JSLD72 height',NULL,'EP
INSERT INTO "usage" VALUES('EPSG','4917','compound_crs','EPSG','6700','EPSG','4168','EPSG','1142');
INSERT INTO "compound_crs" VALUES('EPSG','6871','WGS 84 / Pseudo-Mercator + EGM2008 geoid height',NULL,'EPSG','3857','EPSG','3855',1);
INSERT INTO "usage" VALUES('EPSG','5023','compound_crs','EPSG','6871','EPSG','1262','EPSG','1229');
-INSERT INTO "compound_crs" VALUES('EPSG','6893','WGS 84 / World Mercator + EGM2008 height',NULL,'EPSG','3395','EPSG','3855',0);
+INSERT INTO "compound_crs" VALUES('EPSG','6893','WGS 84 / World Mercator + EGM2008 height',NULL,'EPSG','3395','EPSG','3855',0);
INSERT INTO "usage" VALUES('EPSG','5036','compound_crs','EPSG','6893','EPSG','1262','EPSG','1229');
INSERT INTO "compound_crs" VALUES('EPSG','6917','SVY21 + SHD height',NULL,'EPSG','4757','EPSG','6916',0);
INSERT INTO "usage" VALUES('EPSG','5040','compound_crs','EPSG','6917','EPSG','1210','EPSG','1144');
@@ -308,9 +308,9 @@ INSERT INTO "compound_crs" VALUES('EPSG','7423','ETRS89 + EVRF2007 height',NULL,
INSERT INTO "usage" VALUES('EPSG','5288','compound_crs','EPSG','7423','EPSG','3594','EPSG','1161');
INSERT INTO "compound_crs" VALUES('EPSG','7954','Astro DOS 71 / UTM zone 30S + Jamestown 1971 height',NULL,'EPSG','7878','EPSG','7888',0);
INSERT INTO "usage" VALUES('EPSG','5565','compound_crs','EPSG','7954','EPSG','3183','EPSG','1153');
-INSERT INTO "compound_crs" VALUES('EPSG','7955','St. Helena Tritan / UTM zone 30S + Tritan 2011 height',NULL,'EPSG','7883','EPSG','7889',0);
+INSERT INTO "compound_crs" VALUES('EPSG','7955','St. Helena Tritan / UTM zone 30S + Tritan 2011 height',NULL,'EPSG','7883','EPSG','7889',0);
INSERT INTO "usage" VALUES('EPSG','5566','compound_crs','EPSG','7955','EPSG','3183','EPSG','1146');
-INSERT INTO "compound_crs" VALUES('EPSG','7956','SHMG2015 + SHVD2015 height',NULL,'EPSG','7887','EPSG','7890',0);
+INSERT INTO "compound_crs" VALUES('EPSG','7956','SHMG2015 + SHVD2015 height',NULL,'EPSG','7887','EPSG','7890',0);
INSERT INTO "usage" VALUES('EPSG','5567','compound_crs','EPSG','7956','EPSG','3183','EPSG','1153');
INSERT INTO "compound_crs" VALUES('EPSG','8349','GR96 + GVR2000 height',NULL,'EPSG','4747','EPSG','8266',0);
INSERT INTO "usage" VALUES('EPSG','5798','compound_crs','EPSG','8349','EPSG','4461','EPSG','1153');
diff --git a/data/sql/concatenated_operation.sql b/data/sql/concatenated_operation.sql
index 920b0ad3..03d1c946 100644
--- a/data/sql/concatenated_operation.sql
+++ b/data/sql/concatenated_operation.sql
@@ -425,3 +425,5 @@ INSERT INTO "concatenated_operation" VALUES('EPSG','9336','NAD27 to NAD83(CSRS)v
INSERT INTO "usage" VALUES('EPSG','14011','concatenated_operation','EPSG','9336','EPSG','2376','EPSG','1151');
INSERT INTO "concatenated_operation" VALUES('EPSG','9337','NTF (Paris) to RGF93 (1)','See transformation code 7811 for an alternative which uses the NTv2 method as an emulation of the geocentric interpolation in the second step.','EPSG','4807','EPSG','4171',1.0,'IOGP-Fra',0);
INSERT INTO "usage" VALUES('EPSG','14012','concatenated_operation','EPSG','9337','EPSG','3694','EPSG','1041');
+INSERT INTO "concatenated_operation" VALUES('EPSG','9499','ETRS89 to GHA height (2)','This concatenated operation gives the same result as the HoehenGrid-plus offset from ETRS89 to GHA height. HoehenGrid-plus is implemented in BEV-Transformator using MGI (CRS 4312) as the interpolation CRS for the grid','EPSG','4937','EPSG','5778',0.07,'BEV-Aut',0);
+INSERT INTO "usage" VALUES('EPSG','14958','concatenated_operation','EPSG','9499','EPSG','1037','EPSG','1133');
diff --git a/data/sql/concatenated_operation_step.sql b/data/sql/concatenated_operation_step.sql
index a095ddce..d19ed725 100644
--- a/data/sql/concatenated_operation_step.sql
+++ b/data/sql/concatenated_operation_step.sql
@@ -429,3 +429,5 @@ INSERT INTO "concatenated_operation_step" VALUES('EPSG','9336',1,'EPSG','1313');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','9336',2,'EPSG','9244');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','9337',1,'EPSG','1763');
INSERT INTO "concatenated_operation_step" VALUES('EPSG','9337',2,'EPSG','9327');
+INSERT INTO "concatenated_operation_step" VALUES('EPSG','9499',1,'EPSG','9276');
+INSERT INTO "concatenated_operation_step" VALUES('EPSG','9499',2,'EPSG','9275');
diff --git a/data/sql/conversion.sql b/data/sql/conversion.sql
index f5666316..06c20b19 100644
--- a/data/sql/conversion.sql
+++ b/data/sql/conversion.sql
@@ -1738,6 +1738,8 @@ INSERT INTO "conversion" VALUES('EPSG','9497','Gauss-Kruger CABA 2019','Projecti
INSERT INTO "usage" VALUES('EPSG','14242','conversion','EPSG','9497','EPSG','4610','EPSG','1056');
INSERT INTO "conversion" VALUES('EPSG','9673','US Forest Service region 6 Albers','','EPSG','9822','Albers Equal Area','EPSG','8821','Latitude of false origin',34.0,'EPSG','9102','EPSG','8822','Longitude of false origin',-120.0,'EPSG','9102','EPSG','8823','Latitude of 1st standard parallel',43.0,'EPSG','9102','EPSG','8824','Latitude of 2nd standard parallel',48.0,'EPSG','9102','EPSG','8826','Easting at false origin',600000.0,'EPSG','9001','EPSG','8827','Northing at false origin',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','14786','conversion','EPSG','9673','EPSG','2381','EPSG','1165');
+INSERT INTO "conversion" VALUES('EPSG','9677','Bangladesh Transverse Mercator','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',90.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9996,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',-2000000.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
+INSERT INTO "usage" VALUES('EPSG','14878','conversion','EPSG','9677','EPSG','3217','EPSG','1274');
INSERT INTO "conversion" VALUES('EPSG','10101','Alabama CS27 East zone','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',30.3,'EPSG','9110','EPSG','8802','Longitude of natural origin',-85.5,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.99996,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9003','EPSG','8807','False northing',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','11101','conversion','EPSG','10101','EPSG','2154','EPSG','1142');
INSERT INTO "conversion" VALUES('EPSG','10102','Alabama CS27 West zone','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',30.0,'EPSG','9110','EPSG','8802','Longitude of natural origin',-87.3,'EPSG','9110','EPSG','8805','Scale factor at natural origin',0.999933333,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9003','EPSG','8807','False northing',0.0,'EPSG','9003',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
@@ -3491,8 +3493,9 @@ INSERT INTO "conversion" VALUES('EPSG','16413','TM 13 NE','','EPSG','9807','Tran
INSERT INTO "usage" VALUES('EPSG','12389','conversion','EPSG','16413','EPSG','2771','EPSG','1136');
INSERT INTO "conversion" VALUES('EPSG','16430','TM 30 NE','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',30.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9996,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','12390','conversion','EPSG','16430','EPSG','2546','EPSG','1136');
-INSERT INTO "conversion" VALUES('EPSG','16490','Bangladesh Transverse Mercator','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',90.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9996,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
+INSERT INTO "conversion" VALUES('EPSG','16490','TM 90 NE','Not part of the global UTM grid system.','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',90.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9996,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','12391','conversion','EPSG','16490','EPSG','1041','EPSG','1136');
+INSERT INTO "usage" VALUES('EPSG','14845','conversion','EPSG','16490','EPSG','3217','EPSG','1153');
INSERT INTO "conversion" VALUES('EPSG','16506','TM 106 NE','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',106.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',0.9996,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','12392','conversion','EPSG','16506','EPSG','1495','EPSG','1136');
INSERT INTO "conversion" VALUES('EPSG','16586','GK 106 NE','','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',0.0,'EPSG','9102','EPSG','8802','Longitude of natural origin',106.0,'EPSG','9102','EPSG','8805','Scale factor at natural origin',1.0,'EPSG','9201','EPSG','8806','False easting',500000.0,'EPSG','9001','EPSG','8807','False northing',0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
diff --git a/data/sql/customizations.sql b/data/sql/customizations.sql
index c53a324d..845a5460 100644
--- a/data/sql/customizations.sql
+++ b/data/sql/customizations.sql
@@ -306,7 +306,7 @@ INSERT INTO "unit_of_measure" VALUES('PROJ','US_IN','US survey inch','length',0.
INSERT INTO "unit_of_measure" VALUES('PROJ','US_YD','US survey yard','length',0.914401828803658,'us-yd',0);
INSERT INTO "unit_of_measure" VALUES('PROJ','IND_CH','Indian chain','length',20.11669506,'ind-ch',0);
--- Deal with grid_transformation using EPSG:9635 'Geog3D to Geog2D+GravityRelatedHeight (US .gtx)' method
+-- Deal with grid_transformation using EPSG:1088 'Geog3D to Geog2D+GravityRelatedHeight (gtx)' method
-- We derive records using the more classic 'Geographic3D to GravityRelatedHeight' method
-- We could probably do that at runtime too, but more simple and efficient to create records
@@ -340,7 +340,7 @@ FROM grid_transformation gt
JOIN compound_crs c ON gt.target_crs_code = c.code AND gt.target_crs_auth_name = c.auth_name
JOIN geodetic_crs gcrs ON gt.source_crs_auth_name = gcrs.auth_name AND gt.source_crs_code = gcrs.code
JOIN vertical_crs vcrs on vcrs.auth_name = c.vertical_crs_auth_name AND vcrs.code = c.vertical_crs_code
-WHERE method_auth_name = 'EPSG' AND method_code = '9635' AND gt.deprecated = 0;
+WHERE method_auth_name = 'EPSG' AND method_code = '1088' AND gt.deprecated = 0;
INSERT INTO "usage"
SELECT
@@ -355,4 +355,4 @@ SELECT
u.scope_code
FROM grid_transformation gt
JOIN usage u ON u.object_auth_name = gt.auth_name AND u.object_code = gt.code AND u.object_table_name = 'grid_transformation'
-WHERE method_auth_name = 'EPSG' AND method_code = '9635' AND gt.deprecated = 0;
+WHERE method_auth_name = 'EPSG' AND method_code = '1088' AND gt.deprecated = 0;
diff --git a/data/sql/extent.sql b/data/sql/extent.sql
index 8e4239c7..0ef8242d 100644
--- a/data/sql/extent.sql
+++ b/data/sql/extent.sql
@@ -83,7 +83,7 @@ INSERT INTO "extent" VALUES('EPSG','1103','Germany','Germany - onshore and offsh
INSERT INTO "extent" VALUES('EPSG','1104','Ghana','Ghana - onshore and offshore.',1.4,11.16,-3.79,2.1,0);
INSERT INTO "extent" VALUES('EPSG','1105','Gibraltar','Gibraltar - onshore and offshore.',36.0,36.16,-5.42,-4.89,0);
INSERT INTO "extent" VALUES('EPSG','1106','Greece','Greece - onshore and offshore. Includes Aegean Islands, Ionian Islands, Dodecanese Islands, Crete, and Mount Athos.',33.26,41.75,18.26,30.23,0);
-INSERT INTO "extent" VALUES('EPSG','1107','Greenland','Greenland - onshore and offshore.',56.38,87.03,-75.0,8.12,0);
+INSERT INTO "extent" VALUES('EPSG','1107','Greenland','Greenland - onshore and offshore.',56.383177168,87.023943197,-74.998683569945,7.9884162935953,0);
INSERT INTO "extent" VALUES('EPSG','1108','Grenada','Grenada and southern Grenadine Islands - onshore and offshore.',11.36,13.4,-63.28,-60.82,0);
INSERT INTO "extent" VALUES('EPSG','1109','Guadeloupe','Guadeloupe - onshore and offshore. Includes Grande Terre, Basse Terre, Marie Galante, Les Saintes, Iles de la Petite Terre, La Desirade; St Barthélemy, and northern St Martin.',15.06,18.54,-63.66,-57.54,0);
INSERT INTO "extent" VALUES('EPSG','1110','Guam','Guam - onshore and offshore.',10.95,15.91,141.19,148.18,0);
@@ -158,7 +158,7 @@ INSERT INTO "extent" VALUES('EPSG','1178','Nigeria','Nigeria - onshore and offsh
INSERT INTO "extent" VALUES('EPSG','1179','Niue','Niue - onshore and offshore.',-22.49,-16.58,-172.01,-166.31,0);
INSERT INTO "extent" VALUES('EPSG','1180','Norfolk Island','Norfolk Island - onshore and offshore.',-32.48,-25.61,163.36,173.35,0);
INSERT INTO "extent" VALUES('EPSG','1181','Northern Mariana Islands','Northern Mariana Islands - onshore and offshore.',12.38,23.9,141.33,149.55,0);
-INSERT INTO "extent" VALUES('EPSG','1182','Norway','Norway including Svalbard - onshore and offshore.',56.08,84.17,-3.7,39.65,0);
+INSERT INTO "extent" VALUES('EPSG','1182','Norway','Norway including Svalbard - onshore and offshore.',56.086666167996,84.722623821813,-3.3437137437567,38.0,0);
INSERT INTO "extent" VALUES('EPSG','1183','Oman','Oman - onshore and offshore.',14.33,26.74,51.99,63.38,0);
INSERT INTO "extent" VALUES('EPSG','1184','Pakistan','Pakistan - onshore and offshore.',21.05,37.07,60.86,77.83,0);
INSERT INTO "extent" VALUES('EPSG','1185','Palau','Palau - onshore and offshore.',1.64,11.45,129.48,136.98,0);
@@ -174,7 +174,7 @@ INSERT INTO "extent" VALUES('EPSG','1194','Puerto Rico','Puerto Rico - onshore a
INSERT INTO "extent" VALUES('EPSG','1195','Qatar','Qatar - onshore and offshore.',24.55,27.05,50.55,53.04,0);
INSERT INTO "extent" VALUES('EPSG','1196','Reunion','Reunion - onshore and offshore - Reunion island, Ile Europa, Bassas da India, Juan de Nova, Iles Glorieuses, and Ile Tromelin.',-25.92,-10.6,37.58,58.27,1);
INSERT INTO "extent" VALUES('EPSG','1197','Romania','Romania - onshore and offshore.',43.44,48.27,20.26,31.41,0);
-INSERT INTO "extent" VALUES('EPSG','1198','Russia','Russian Federation - onshore and offshore.',39.87,85.2,18.92,-168.97,0);
+INSERT INTO "extent" VALUES('EPSG','1198','Russia','Russian Federation - onshore and offshore.',39.878541946411,85.190134048462,18.925748825074,-168.97182656183,0);
INSERT INTO "extent" VALUES('EPSG','1199','Rwanda','Rwanda.',-2.83,-1.05,28.85,30.9,0);
INSERT INTO "extent" VALUES('EPSG','1200','St Kitts and Nevis','St Kitts and Nevis - onshore and offshore.',16.34,17.67,-63.63,-62.2,0);
INSERT INTO "extent" VALUES('EPSG','1201','St Lucia','St Lucia - onshore and offshore.',13.23,14.28,-62.5,-59.99,0);
@@ -272,9 +272,9 @@ INSERT INTO "extent" VALUES('EPSG','1292','Argentina - Neuquen province','Argent
INSERT INTO "extent" VALUES('EPSG','1293','Brazil - Corrego Alegre 1970-1972','Brazil - onshore - west of 54°W and south of 18°S; also south of 15°S between 54°W and 42°W; also east of 42°W.',-33.78,-2.68,-58.16,-34.74,0);
INSERT INTO "extent" VALUES('EPSG','1294','Portugal - mainland - onshore','Portugal - mainland - onshore.',36.95,42.16,-9.56,-6.19,0);
INSERT INTO "extent" VALUES('EPSG','1295','Germany - DHDN','Germany - onshore - Baden-Wurtemberg, Bayern, Hessen, Niedersachsen, Nordrhein-Westfalen, Rheinland-Pfalz, Saarland, Schleswig-Holstein. Also former DDR states of Sachsen and Thuringen by transformation.',47.27,55.06,5.87,15.03,1);
-INSERT INTO "extent" VALUES('EPSG','1296','Europe - ED50 by country','Europe - west: Andorra; Cyprus; Denmark - onshore and offshore; Faroe Islands - onshore; France - offshore; Germany - offshore North Sea; Gibraltar; Greece - offshore; Israel - offshore; Italy including San Marino and Vatican City State; Ireland offshore; Malta; Netherlands - offshore; North Sea; Norway including Svalbard - onshore and offshore; Portugal - mainland - offshore; Spain - onshore; Turkey - onshore and offshore; United Kingdom UKCS offshore east of 6°W including Channel Islands (Guernsey and Jersey). Egypt - Western Desert; Iraq - onshore; Jordan.',25.71,84.17,-16.1,48.61,0);
-INSERT INTO "extent" VALUES('EPSG','1297','Europe - west','Europe - west.',34.88,84.17,-10.56,39.65,0);
-INSERT INTO "extent" VALUES('EPSG','1298','Europe - ETRF by country','Europe - onshore and offshore: Albania; Andorra; Austria; Belgium; Bosnia and Herzegovina; Bulgaria; Croatia; Cyprus; Czechia; Denmark; Estonia; Faroe Islands; Finland; France; Germany; Gibraltar; Greece; Hungary; Ireland; Italy; Kosovo; Latvia; Liechtenstein; Lithuania; Luxembourg; Malta; Moldova; Monaco; Montenegro; Netherlands; North Macedonia; Norway including Svalbard and Jan Mayen; Poland; Portugal; Romania; San Marino; Serbia; Slovakia; Slovenia; Spain; Sweden; Switzerland; United Kingdom (UK) including Channel Islands and Isle of Man; Vatican City State.',32.88,84.17,-16.1,40.18,0);
+INSERT INTO "extent" VALUES('EPSG','1296','Europe - ED50 by country','Europe - west: Andorra; Cyprus; Denmark - onshore and offshore; Faroe Islands - onshore; France - offshore; Germany - offshore North Sea; Gibraltar; Greece - offshore; Israel - offshore; Italy including San Marino and Vatican City State; Ireland offshore; Malta; Netherlands - offshore; North Sea; Norway including Svalbard - onshore and offshore; Portugal - mainland - offshore; Spain - onshore; Turkey - onshore and offshore; United Kingdom UKCS offshore east of 6°W including Channel Islands (Guernsey and Jersey). Egypt - Western Desert; Iraq - onshore; Jordan.',25.712493202945,84.722623821813,-16.096100515106,48.608653779497,0);
+INSERT INTO "extent" VALUES('EPSG','1297','Europe - west','Europe - west.',34.880534471998,84.722623821813,-10.555896938101,38.0,0);
+INSERT INTO "extent" VALUES('EPSG','1298','Europe - ETRF by country','Europe - onshore and offshore: Albania; Andorra; Austria; Belgium; Bosnia and Herzegovina; Bulgaria; Croatia; Cyprus; Czechia; Denmark; Estonia; Faroe Islands; Finland; France; Germany; Gibraltar; Greece; Hungary; Ireland; Italy; Kosovo; Latvia; Liechtenstein; Lithuania; Luxembourg; Malta; Moldova; Monaco; Montenegro; Netherlands; North Macedonia; Norway including Svalbard and Jan Mayen; Poland; Portugal; Romania; San Marino; Serbia; Slovakia; Slovenia; Spain; Sweden; Switzerland; United Kingdom (UK) including Channel Islands and Isle of Man; Vatican City State.',32.884955146013,84.722623821813,-16.096100515106,40.178745269776,0);
INSERT INTO "extent" VALUES('EPSG','1299','Europe - EVRF2000','Europe - onshore - Andorra; Austria; Belgium; Bosnia and Herzegovina; Croatia; Czechia; Denmark; Estonia; Finland; France - mainland; Germany; Gibraltar; Hungary; Italy - mainland and Sicily; Latvia; Liechtenstein; Lithuania; Luxembourg; Netherlands; Norway; Poland; Portugal - mainland; Romania; San Marino; Slovakia; Slovenia; Spain - mainland; Sweden; Switzerland; United Kingdom (UK) - Great Britain mainland; Vatican City State.',35.95,71.21,-9.56,31.59,0);
INSERT INTO "extent" VALUES('EPSG','1300','Iran - FD58','Iran - Arwaz area and onshore Gulf coast west of 54°E, Lavan Island, offshore Balal field and South Pars blocks 2 and 3.',26.21,33.22,47.13,53.61,0);
INSERT INTO "extent" VALUES('EPSG','1301','Portugal - Azores C - onshore','Portugal - central Azores onshore - Faial, Graciosa, Pico, Sao Jorge, Terceira.',38.32,39.14,-28.9,-26.97,0);
@@ -326,7 +326,7 @@ INSERT INTO "extent" VALUES('EPSG','1346','Qatar - onshore','Qatar - onshore.',2
INSERT INTO "extent" VALUES('EPSG','1347','Belgium - onshore','Belgium - onshore.',49.5,51.51,2.5,6.4,0);
INSERT INTO "extent" VALUES('EPSG','1348','South America - PSAD56 by country','Aruba - onshore; Bolivia; Bonaire - onshore; Brazil - offshore - Amazon Cone shelf; Chile - onshore north of 43°30''S; Curacao - onshore; Ecuador - mainland onshore; Guyana - onshore; Peru - onshore; Venezuela - onshore.',-43.5,12.68,-81.41,-47.99,0);
INSERT INTO "extent" VALUES('EPSG','1349','North America - NAD27','North and central America: Antigua and Barbuda - onshore. Bahamas - onshore plus offshore over internal continental shelf only. Belize - onshore. British Virgin Islands - onshore. Canada onshore - Alberta, British Columbia, Manitoba, New Brunswick, Newfoundland and Labrador, Northwest Territories, Nova Scotia, Nunavut, Ontario, Prince Edward Island, Quebec, Saskatchewan and Yukon - plus offshore east coast. Cuba - onshore and offshore. El Salvador - onshore. Guatemala - onshore. Honduras - onshore. Panama - onshore. Puerto Rico - onshore. Mexico - onshore plus offshore east coast. Nicaragua - onshore. United States (USA) onshore and offshore - Alabama, Alaska, Arizona, Arkansas, California, Colorado, Connecticut, Delaware, Florida, Georgia, Idaho, Illinois, Indiana, Iowa, Kansas, Kentucky, Louisiana, Maine, Maryland, Massachusetts, Michigan, Minnesota, Mississippi, Missouri, Montana, Nebraska, Nevada, New Hampshire, New Jersey, New Mexico, New York, North Carolina, North Dakota, Ohio, Oklahoma, Oregon, Pennsylvania, Rhode Island, South Carolina, South Dakota, Tennessee, Texas, Utah, Vermont, Virginia, Washington, West Virginia, Wisconsin and Wyoming - plus offshore . US Virgin Islands - onshore.',7.15,83.17,167.65,-47.74,0);
-INSERT INTO "extent" VALUES('EPSG','1350','North America - NAD83','North America - onshore and offshore: Canada - Alberta; British Columbia; Manitoba; New Brunswick; Newfoundland and Labrador; Northwest Territories; Nova Scotia; Nunavut; Ontario; Prince Edward Island; Quebec; Saskatchewan; Yukon. Puerto Rico. United States (USA) - Alabama; Alaska; Arizona; Arkansas; California; Colorado; Connecticut; Delaware; Florida; Georgia; Hawaii; Idaho; Illinois; Indiana; Iowa; Kansas; Kentucky; Louisiana; Maine; Maryland; Massachusetts; Michigan; Minnesota; Mississippi; Missouri; Montana; Nebraska; Nevada; New Hampshire; New Jersey; New Mexico; New York; North Carolina; North Dakota; Ohio; Oklahoma; Oregon; Pennsylvania; Rhode Island; South Carolina; South Dakota; Tennessee; Texas; Utah; Vermont; Virginia; Washington; West Virginia; Wisconsin; Wyoming. US Virgin Islands. British Virgin Islands.',14.92,86.46,167.65,-47.74,0);
+INSERT INTO "extent" VALUES('EPSG','1350','North America - NAD83','North America - onshore and offshore: Canada - Alberta; British Columbia; Manitoba; New Brunswick; Newfoundland and Labrador; Northwest Territories; Nova Scotia; Nunavut; Ontario; Prince Edward Island; Quebec; Saskatchewan; Yukon. Puerto Rico. United States (USA) - Alabama; Alaska; Arizona; Arkansas; California; Colorado; Connecticut; Delaware; Florida; Georgia; Hawaii; Idaho; Illinois; Indiana; Iowa; Kansas; Kentucky; Louisiana; Maine; Maryland; Massachusetts; Michigan; Minnesota; Mississippi; Missouri; Montana; Nebraska; Nevada; New Hampshire; New Jersey; New Mexico; New York; North Carolina; North Dakota; Ohio; Oklahoma; Oregon; Pennsylvania; Rhode Island; South Carolina; South Dakota; Tennessee; Texas; Utah; Vermont; Virginia; Washington; West Virginia; Wisconsin; Wyoming. US Virgin Islands. British Virgin Islands.',14.928194130078,86.453745196084,167.65071105957,-47.743430543984,0);
INSERT INTO "extent" VALUES('EPSG','1351','Asia - Middle East - Qatar offshore and UAE','Arabian Gulf; Qatar - offshore; United Arab Emirates (UAE) - Abu Dhabi; Dubai; Sharjah; Ajman; Fujairah; Ras Al Kaimah; Umm Al Qaiwain - onshore and offshore.',22.63,27.05,50.55,57.13,0);
INSERT INTO "extent" VALUES('EPSG','1352','Norway - onshore','Norway - onshore.',57.93,71.21,4.68,31.22,0);
INSERT INTO "extent" VALUES('EPSG','1353','France - onshore','France - onshore.',NULL,NULL,NULL,NULL,1);
@@ -609,14 +609,14 @@ INSERT INTO "extent" VALUES('EPSG','1629','UK - offshore - North Sea','United Ki
INSERT INTO "extent" VALUES('EPSG','1630','Netherlands - offshore','Netherlands - offshore North Sea.',51.45,55.77,2.53,6.41,0);
INSERT INTO "extent" VALUES('EPSG','1631','Europe - 18°W to 12°W and ED50 by country','Europe - between 18°W and 12°W - Ireland offshore.',48.43,56.57,-16.1,-12.0,0);
INSERT INTO "extent" VALUES('EPSG','1632','Europe - 12°W to 6°W and ED50 by country','Europe - between 12°W and 6°W - Faroe Islands - onshore; Spain - mainland onshore; Ireland offshore.',36.13,62.41,-12.0,-6.0,0);
-INSERT INTO "extent" VALUES('EPSG','1633','Europe - 6°W to 0°W and ED50 by country','Europe - between 6°W and 0°W - Channel Islands (Jersey, Guernsey); France offshore; Gibraltar; Ireland offshore; Norway including Svalbard - offshore; Spain - onshore; United Kingdom - UKCS offshore.',35.26,80.53,-6.0,0.0,0);
-INSERT INTO "extent" VALUES('EPSG','1634','Europe - 0°E to 6°E and ED50 by country','Europe - between 0°E and 6°E - Andorra; Denmark (North Sea); Germany offshore; Netherlands offshore; Norway including Svalbard - onshore and offshore; Spain - onshore (mainland and Balearic Islands); United Kingdom (UKCS) offshore.',38.56,82.41,0.0,6.01,0);
-INSERT INTO "extent" VALUES('EPSG','1635','Europe - 6°E to 12°E and ED50 by country','Europe - between 6°E and 12°E - Denmark - onshore and offshore; France - offshore; Germany offshore; Italy - onshore and offshore; Netherlands offshore; Norway including Svalbard - onshore and offshore.',36.53,83.92,5.99,12.01,0);
-INSERT INTO "extent" VALUES('EPSG','1636','Europe - 12°E to 18°E and ED50 by country','Europe - between 12°E and 18°E onshore and offshore - Denmark (including Bornholm); Italy including San Marino and Vatican City State; Malta; Norway including Svalbard.',34.49,84.0,12.0,18.0,0);
-INSERT INTO "extent" VALUES('EPSG','1637','Europe - 18°E to 24°E and ED50 by country','Europe - between 18°E and 24°E - Greece - offshore; Italy - onshore and offshore; Norway including Svalbard - onshore and offshore.',33.59,84.0,18.0,24.0,0);
-INSERT INTO "extent" VALUES('EPSG','1638','Europe - 24°E to 30°E and ED50 by country','Europe - between 24°E and 30°E - Greece - offshore; Norway including Svalbard - onshore and offshore; Turkey - onshore and offshore. Egypt - Western Desert.',25.71,84.01,24.0,30.0,0);
-INSERT INTO "extent" VALUES('EPSG','1639','Europe - 30°E to 36°E and ED50 by country','Europe - between 30°E and 36°E - Israel - offshore; Jordan; Norway including Svalbard - onshore and offshore; Turkey - onshore and offshore.',29.19,83.89,29.99,36.0,0);
-INSERT INTO "extent" VALUES('EPSG','1640','Europe - 36°E to 42°E and ED50 by country','Europe - between 36°E and 42°E - Jordan; Norway including Svalbard - offshore; Turkey onshore and offshore.',29.18,79.09,36.0,42.0,0);
+INSERT INTO "extent" VALUES('EPSG','1633','Europe - 6°W to 0°W and ED50 by country','Europe - between 6°W and 0°W - Channel Islands (Jersey, Guernsey); France offshore; Gibraltar; Ireland offshore; Norway including Svalbard - offshore; Spain - onshore; United Kingdom - UKCS offshore.',35.265663028,80.489344496333,-5.9999999999999,1.7053025658242e-13,0);
+INSERT INTO "extent" VALUES('EPSG','1634','Europe - 0°E to 6°E and ED50 by country','Europe - between 0°E and 6°E - Andorra; Denmark (North Sea); Germany offshore; Netherlands offshore; Norway including Svalbard - onshore and offshore; Spain - onshore (mainland and Balearic Islands); United Kingdom (UKCS) offshore.',38.564849308647,82.446728294284,0.0,6.0000000000002,0);
+INSERT INTO "extent" VALUES('EPSG','1635','Europe - 6°E to 12°E and ED50 by country','Europe - between 6°E and 12°E - Denmark - onshore and offshore; France - offshore; Germany offshore; Italy - onshore and offshore; Netherlands offshore; Norway including Svalbard - onshore and offshore.',36.531407117834,84.321784465159,5.9996099944001,12.0,0);
+INSERT INTO "extent" VALUES('EPSG','1636','Europe - 12°E to 18°E and ED50 by country','Europe - between 12°E and 18°E onshore and offshore - Denmark (including Bornholm); Italy including San Marino and Vatican City State; Malta; Norway including Svalbard.',34.498055148,84.412145286932,12.0,18.0,0);
+INSERT INTO "extent" VALUES('EPSG','1637','Europe - 18°E to 24°E and ED50 by country','Europe - between 18°E and 24°E - Greece - offshore; Italy - onshore and offshore; Norway including Svalbard - onshore and offshore.',33.591922207209,84.530034782416,18.0,24.000000002019,0);
+INSERT INTO "extent" VALUES('EPSG','1638','Europe - 24°E to 30°E and ED50 by country','Europe - between 24°E and 30°E - Greece - offshore; Norway including Svalbard - onshore and offshore; Turkey - onshore and offshore. Egypt - Western Desert.',25.712493202945,84.722623821813,24.0,30.000000000001,0);
+INSERT INTO "extent" VALUES('EPSG','1639','Europe - 30°E to 36°E and ED50 by country','Europe - between 30°E and 36°E - Israel - offshore; Jordan; Norway including Svalbard - onshore and offshore; Turkey - onshore and offshore.',29.199954525824,84.697994126795,30.0,36.0,0);
+INSERT INTO "extent" VALUES('EPSG','1640','Europe - 36°E to 42°E and ED50 by country','Europe - between 36°E and 42°E - Jordan; Norway including Svalbard - offshore; Turkey onshore and offshore.',29.188888549805,79.064563073348,36.0,42.0,0);
INSERT INTO "extent" VALUES('EPSG','1641','Europe - 42°E to 48°E and ED50 by country','Europe - between 42°E and 48°E - Turkey.',36.97,41.6,42.0,44.83,0);
INSERT INTO "extent" VALUES('EPSG','1642','Egypt - east of 33°E onshore','Egypt - east of 33°E - onshore plus offshore Gulf of Suez.',21.97,31.36,33.0,36.95,0);
INSERT INTO "extent" VALUES('EPSG','1643','Egypt - 29°E to 33°E','Egypt - onshore between 29°E and 33°E, offshore Mediterranean east of 29°E and offshore Gulf of Suez.',21.99,33.82,29.0,34.27,0);
@@ -626,7 +626,7 @@ INSERT INTO "extent" VALUES('EPSG','1646','Europe - Estonia; Latvia; Lithuania',
INSERT INTO "extent" VALUES('EPSG','1647','Indonesia - west of 96°E, N hemisphere','Indonesia - north of equator and west of 96°E - onshore and offshore.',0.0,7.79,92.01,96.0,0);
INSERT INTO "extent" VALUES('EPSG','1648','Indonesia - west of 96°E, S hemisphere','Indonesia - south of equator and west of 96°E.',NULL,NULL,NULL,NULL,1);
INSERT INTO "extent" VALUES('EPSG','1649','Indonesia - 96°E to 102°E, N hemisphere','Indonesia - north of equator and between 96°E and 102°E - onshore and offshore.',0.0,7.49,96.0,102.0,0);
-INSERT INTO "extent" VALUES('EPSG','1650','Indonesia - 96°E to 102°E, S hemisphere','Indonesia - south of equator and between 96°E and 102°E - onshore and offshore.',-8.86,0.0,96.0,102.0,0);
+INSERT INTO "extent" VALUES('EPSG','1650','Indonesia - 96°E to 102°E, S hemisphere','Indonesia - south of equator and between 96°E and 102°E - onshore and offshore.',-8.8529728331444,0.0,96.0,102.0,0);
INSERT INTO "extent" VALUES('EPSG','1651','Indonesia - 102°E to 108°E, N hemisphere','Indonesia - north of equator and between 102°E and 108°E - onshore and offshore.',0.0,6.94,102.0,108.0,0);
INSERT INTO "extent" VALUES('EPSG','1652','Indonesia - 102°E to 108°E, S hemisphere','Indonesia - south of equator and between 102°E and 108°E - onshore and offshore.',-10.73,0.0,102.0,108.01,0);
INSERT INTO "extent" VALUES('EPSG','1653','Indonesia - 108°E to 114°E, N hemisphere','Indonesia - north of equator and between 108°E and 114°E - onshore and offshore.',0.0,7.37,108.0,114.0,0);
@@ -1100,25 +1100,25 @@ INSERT INTO "extent" VALUES('EPSG','2120','Guatemala - north of 15°51''30"N','G
INSERT INTO "extent" VALUES('EPSG','2121','Guatemala - south of 15°51''30"N','Guatemala - south of 15°51''30"N.',13.69,15.86,-92.29,-88.19,0);
INSERT INTO "extent" VALUES('EPSG','2122','Europe - 18°W to 12°W and ETRS89 by country','Europe between 18°W and 12°W: Faroe Islands - offshore; Ireland - offshore; Jan Mayen - offshore; Portugal - offshore mainland; Spain - offshore mainland; United Kingdom (UKCS) - offshore.',34.93,72.44,-16.1,-11.99,0);
INSERT INTO "extent" VALUES('EPSG','2123','Europe - 12°W to 6°W and ETRS89 by country','Europe between 12°W and 6°W: Faroe Islands - onshore and offshore; Ireland - offshore; Jan Mayen - onshore and offshore; Portugal - onshore and offshore; Spain - onshore and offshore; United Kingdom - UKCS offshore.',34.91,74.13,-12.0,-6.0,0);
-INSERT INTO "extent" VALUES('EPSG','2124','Europe - 6°W to 0°W and ETRS89 by country','Europe between 6°W and 0°W: Faroe Islands offshore; Ireland - offshore; Jan Mayen - offshore; Norway including Svalbard - offshore; Spain - onshore and offshore.',35.26,80.53,-6.0,0.0,0);
-INSERT INTO "extent" VALUES('EPSG','2125','Europe - 0°E to 6°E and ETRS89 by country','Europe between 0°E and 6°E: Andorra; Belgium - onshore and offshore; Denmark - offshore; Germany - offshore; Jan Mayen - offshore; Norway including Svalbard - onshore and offshore; Spain - onshore and offshore.',37.0,82.41,0.0,6.01,0);
-INSERT INTO "extent" VALUES('EPSG','2126','Europe - 6°E to 12°E and ETRS89 by country','Europe between 6°E and 12°E: Austria; Belgium; Denmark - onshore and offshore; Germany - onshore and offshore; Norway including - onshore and offshore; Spain - offshore.',38.76,83.92,6.0,12.0,0);
-INSERT INTO "extent" VALUES('EPSG','2127','Europe - 12°E to 18°E and ETRS89 by country','Europe between 12°E and 18°E: Austria; Denmark - offshore and offshore; Germany - onshore and offshore; Norway including Svalbard - onshore and offshore.',46.4,84.01,12.0,18.01,0);
-INSERT INTO "extent" VALUES('EPSG','2128','Europe - 18°E to 24°E and ETRS89 by country','Europe between 18°E and 24°E: Finland - onshore and offshore; Norway including Svalbard - onshore and offshore.',58.84,84.0,18.0,24.0,0);
-INSERT INTO "extent" VALUES('EPSG','2129','Europe - 24°E to 30°E and ETRS89 by country','Europe between 24°E and 30°E: Finland - onshore and offshore; Norway including Svalbard - onshore and offshore.',59.64,84.01,24.0,30.0,0);
-INSERT INTO "extent" VALUES('EPSG','2130','Europe - 30°E to 36°E and ETRS89 by country','Europe between 30°E and 36°E: Finland - onshore and offshore; Norway including Svalbard - onshore and offshore.',61.73,83.89,30.0,36.01,0);
-INSERT INTO "extent" VALUES('EPSG','2131','Europe - 36°E to 42°E and ETRS89 by country','Europe between 36°E and 42°E: Norway including Svalbard - offshore.',71.27,79.09,36.0,39.65,0);
+INSERT INTO "extent" VALUES('EPSG','2124','Europe - 6°W to 0°W and ETRS89 by country','Europe between 6°W and 0°W: Faroe Islands offshore; Ireland - offshore; Jan Mayen - offshore; Norway including Svalbard - offshore; Spain - onshore and offshore.',37.004790042337,82.446728294284,0.0,6.0000000000002,0);
+INSERT INTO "extent" VALUES('EPSG','2125','Europe - 0°E to 6°E and ETRS89 by country','Europe between 0°E and 6°E: Andorra; Belgium - onshore and offshore; Denmark - offshore; Germany - offshore; Jan Mayen - offshore; Norway including Svalbard - onshore and offshore; Spain - onshore and offshore.',37.004790042337,82.446728294284,0.0,6.0000000000002,0);
+INSERT INTO "extent" VALUES('EPSG','2126','Europe - 6°E to 12°E and ETRS89 by country','Europe between 6°E and 12°E: Austria; Belgium; Denmark - onshore and offshore; Germany - onshore and offshore; Norway including - onshore and offshore; Spain - offshore.',38.769444399127,84.321784465159,6.0000000000001,12.0,0);
+INSERT INTO "extent" VALUES('EPSG','2127','Europe - 12°E to 18°E and ETRS89 by country','Europe between 12°E and 18°E: Austria; Denmark - offshore and offshore; Germany - onshore and offshore; Norway including Svalbard - onshore and offshore.',46.407493591309,84.412145286932,12.0,18.0,0);
+INSERT INTO "extent" VALUES('EPSG','2128','Europe - 18°E to 24°E and ETRS89 by country','Europe between 18°E and 24°E: Finland - onshore and offshore; Norway including Svalbard - onshore and offshore.',58.844500171001,84.530034782416,18.0,24.000000002019,0);
+INSERT INTO "extent" VALUES('EPSG','2129','Europe - 24°E to 30°E and ETRS89 by country','Europe between 24°E and 30°E: Finland - onshore and offshore; Norway including Svalbard - onshore and offshore.',59.640422390199,84.722623821813,24.0,30.000000000001,0);
+INSERT INTO "extent" VALUES('EPSG','2130','Europe - 30°E to 36°E and ETRS89 by country','Europe between 30°E and 36°E: Finland - onshore and offshore; Norway including Svalbard - onshore and offshore.',61.73563754338,84.697994126795,30.0,36.0,0);
+INSERT INTO "extent" VALUES('EPSG','2131','Europe - 36°E to 42°E and ETRS89 by country','Europe between 36°E and 42°E: Norway including Svalbard - offshore.',72.993902051111,79.064563073348,36.0,38.0,0);
INSERT INTO "extent" VALUES('EPSG','2132','Europe - 42°E to 48°E and ETRS89 by country','Europe - between 42°E and 48°E.',37.0,41.65,42.0,48.0,1);
INSERT INTO "extent" VALUES('EPSG','2133','USA - 168°W to 162°W - AK, OCS','United States (USA) - between 168°W and 162°W - Alaska and offshore continental shelf (OCS).',49.52,74.29,-168.0,-161.99,0);
INSERT INTO "extent" VALUES('EPSG','2134','USA - 162°W to 156°W - AK, OCS','United States (USA) - between 162°W and 156°W - Alaska and offshore continental shelf (OCS).',50.98,74.71,-162.0,-155.99,0);
INSERT INTO "extent" VALUES('EPSG','2135','USA - 156°W to 150°W - AK, OCS','United States (USA) - between 156°W and 150°W - Alaska and offshore continental shelf (OCS).',52.15,74.71,-156.0,-149.99,0);
INSERT INTO "extent" VALUES('EPSG','2136','USA - 150°W to 144°W - AK, OCS','United States (USA) - between 150°W and 144°W - Alaska and offshore continental shelf (OCS).',54.05,74.13,-150.0,-143.99,0);
INSERT INTO "extent" VALUES('EPSG','2137','North America - 144°W to 138°W and NAD27 by country','North America - between 144°W and 138°W. Canada - British Columbia; Yukon. United States (USA) - Alaska. Onshore for western Canada & but onshore and offshore for Alaska.',53.47,73.59,-144.0,-138.0,0);
-INSERT INTO "extent" VALUES('EPSG','2138','North America - 138°W to 132°W and NAD27 by country - onshore','North America - between 138°W and 132°W - onshore. Canada - British Columbia; Northwest Territiories; Yukon. United States (USA) - Alaska. Onshore for Canadian British Columbia & Arctic and for US Pacific coast including Alaska panhandle.',52.58,73.04,-138.0,-132.0,0);
-INSERT INTO "extent" VALUES('EPSG','2139','North America - 132°W to 126°W and NAD27 by country - onshore','North America - between 132°W and 126°W - onshore. Canada - British Columbia; Northwest Territories; Yukon. United States (USA) - Alaska. Onshore for Canadian British Colombia & Arctic coasts and for the US Pacific coast including Alaska panhandle.',49.18,72.03,-132.0,-126.0,0);
+INSERT INTO "extent" VALUES('EPSG','2138','North America - 138°W to 132°W and NAD27 by country - onshore','North America - between 138°W and 132°W - onshore. Canada - British Columbia; Northwest Territiories; Yukon. United States (USA) - Alaska. Onshore for Canadian British Columbia & Arctic and for US Pacific coast including Alaska panhandle.',52.586185391595,73.031949143183,-138.0,-132.0,0);
+INSERT INTO "extent" VALUES('EPSG','2139','North America - 132°W to 126°W and NAD27 by country - onshore','North America - between 132°W and 126°W - onshore. Canada - British Columbia; Northwest Territories; Yukon. United States (USA) - Alaska. Onshore for Canadian British Colombia & Arctic coasts and for the US Pacific coast including Alaska panhandle.',49.180336458445,72.020491455014,-132.0,-126.0,0);
INSERT INTO "extent" VALUES('EPSG','2140','North America - 126°W to 120°W and NAD27 by country - onshore','North America - between 126°W and 120°W - onshore. Canada - British Columbia; Northwest Territories; Nunavut; Yukon. United States (USA) - California; Oregon; Washington.',34.4,77.13,-126.0,-120.0,0);
INSERT INTO "extent" VALUES('EPSG','2141','North America - 120°W to 114°W and NAD27 by country - onshore','North America - between 120°W and 114°W - onshore. Canada - Alberta; British Columbia; Northwest Territories; Nunavut. Mexico. United States (USA) - California; Idaho; Nevada; Oregon; Washington.',26.93,78.13,-120.0,-114.0,0);
-INSERT INTO "extent" VALUES('EPSG','2142','North America - 114°W to 108°W and NAD27 by country','North America - between 114°W and 108°W. Canada - Alberta; Northwest Territories; Nunavut; Saskatchewan. Mexico. United States (USA) - Arizona; Colorado; Idaho; Montana; New Mexico; Utah; Wyoming. Onshore for Mexican Pacific and Canadian Arctic coasts.',18.66,78.81,-114.0,-108.0,0);
+INSERT INTO "extent" VALUES('EPSG','2142','North America - 114°W to 108°W and NAD27 by country','North America - between 114°W and 108°W. Canada - Alberta; Northwest Territories; Nunavut; Saskatchewan. Mexico. United States (USA) - Arizona; Colorado; Idaho; Montana; New Mexico; Utah; Wyoming. Onshore for Mexican Pacific and Canadian Arctic coasts.',18.666283618297,78.808006766662,-114.0,-108.0,0);
INSERT INTO "extent" VALUES('EPSG','2143','North America - 108°W to 102°W and NAD27 by country','North America - between 108°W and 102°W. Canada - Northwest Territories; Nunavut; Saskatchewan. Mexico. United States (USA) - Colorado; Montana; Nebraska; New Mexico; North Dakota; Oklahoma; South Dakota; Texas; Wyoming. Onshore for Mexican Pacific and Canadian Arctic coasts.',17.86,79.42,-108.0,-102.0,0);
INSERT INTO "extent" VALUES('EPSG','2144','North America - 102°W to 96°W and NAD27 by country','North America - between 102°W and 96°W. Canada - Manitoba; Nunavut; Saskatchewan. Mexico. United States (USA) - Iowa; Kansas; Minnesota; Nebraska; North Dakota; Oklahoma; South Dakota; Texas. Onshore for Mexican Pacific coast and Canadian Arctic but onshore and offshore for US & Mexico Gulf of Mexico and Caribbean coasts.',15.59,80.74,-102.0,-96.0,0);
INSERT INTO "extent" VALUES('EPSG','2145','North America - 96°W to 90°W and NAD27 by country','North America - between 96°W and 90°W. Canada - Manitoba; Nunavut; Ontario. Guatemala. Mexico. United States (USA) - Arkansas; Illinois; Iowa; Kansas; Louisiana; Michigan; Minnesota; Mississippi; Missouri; Nebraska; Oklahoma; Tennessee; Texas; Wisconsin. Onshore for Canadian Arctic and Central America, onshore and offshore for Gulf of Mexico (both US and Mexican sectors).',13.63,81.96,-96.0,-90.0,0);
@@ -1298,9 +1298,9 @@ INSERT INTO "extent" VALUES('EPSG','2318','Angola - offshore block 3','Angola -
INSERT INTO "extent" VALUES('EPSG','2319','Angola - offshore block 7','Angola - offshore block 7.',-10.09,-9.41,12.66,13.39,0);
INSERT INTO "extent" VALUES('EPSG','2320','Angola - offshore blocks 7 8 24 + WGC spec','Angola - offshore blocks 7 and 8. Also used rounded to integer metre in offshore block 24 and for GSI/HGS/Western Geophysical speculative seismic data throughout offshore Angola.',-17.26,-6.01,8.2,13.86,0);
INSERT INTO "extent" VALUES('EPSG','2321','Angola - offshore blocks 1 and 16','Angola - offshore blocks 1 and 16.',-7.26,-6.03,11.08,12.09,0);
-INSERT INTO "extent" VALUES('EPSG','2322','Angola - offshore blocks 3 7 15 and 17','Angola - offshore blocks 3, 7,15 and 17.',-10.09,-6.03,10.83,13.39,0);
+INSERT INTO "extent" VALUES('EPSG','2322','Angola - offshore blocks 3 7 15 and 17','Angola - offshore blocks 3, 7,15 and 17.',-10.084460928086,-6.033161,10.830367,13.384290727214,0);
INSERT INTO "extent" VALUES('EPSG','2323','Angola - offshore blocks 1 16 and 18','Angola - offshore blocks 1, 16 and 18.',-8.34,-6.03,11.08,12.75,0);
-INSERT INTO "extent" VALUES('EPSG','2324','Angola - offshore blocks 2 3 17-18 and 31-33','Angola - offshore blocks 2, 3, 17, 18, 31, 32 and 33.',-8.59,-6.01,10.41,12.84,0);
+INSERT INTO "extent" VALUES('EPSG','2324','Angola - offshore blocks 2 3 17-18 and 31-33','Angola - offshore blocks 2, 3, 17, 18, 31, 32 and 33.',-8.5845912001739,-6.0106854964942,10.413694255881,12.830107761304,0);
INSERT INTO "extent" VALUES('EPSG','2325','Argentina - Neuquen province Auca Mahuida area','Argentina - Neuquen province - Auca Mahuida area.',-38.75,-37.5,-69.5,-68.25,0);
INSERT INTO "extent" VALUES('EPSG','2326','Germany - West Germany all states','Germany - states of former West Germany onshore - Baden-Wurtemberg, Bayern, Bremen, Hamburg, Hessen, Niedersachsen, Nordrhein-Westfalen, Rheinland-Pfalz, Saarland, Schleswig-Holstein.',47.27,55.09,5.87,13.84,0);
INSERT INTO "extent" VALUES('EPSG','2327','Syria - Al Whaleed area','Syria - Al Whaleed area',35.33,35.9,39.15,40.41,0);
@@ -1308,7 +1308,7 @@ INSERT INTO "extent" VALUES('EPSG','2328','Syria - Shaddadeh area','Syria - Shad
INSERT INTO "extent" VALUES('EPSG','2329','Syria - Deir area','Syria - Deir area (35°22''N, 40°06''E)',34.49,35.9,39.3,40.81,0);
INSERT INTO "extent" VALUES('EPSG','2330','Europe - North Sea','Denmark - North Sea; Germany - North Sea; Netherlands - offshore; Norway - North Sea south of 62°N; United Kingdom (UKCS) - North Sea south of 62°N.',51.03,62.01,-5.05,11.14,0);
INSERT INTO "extent" VALUES('EPSG','2331','Norway - offshore north of 65°N','Norway - offshore north of 65°N.',65.0,72.0,-0.5,32.02,1);
-INSERT INTO "extent" VALUES('EPSG','2332','Norway - offshore north of 65°N; Svalbard','Norway - offshore north of 65°N. Also Svalbard.',65.0,84.17,-3.7,39.65,0);
+INSERT INTO "extent" VALUES('EPSG','2332','Norway - offshore north of 65°N; Svalbard','Norway - offshore north of 65°N. Also Svalbard.',65.0,84.722623821813,-3.3437137437567,38.0,0);
INSERT INTO "extent" VALUES('EPSG','2333','Norway - offshore 62°N to 65°N and west of 5°E','Norway - offshore between 62°N and 65°N and west of 5°E.',62.0,65.0,-0.49,5.0,0);
INSERT INTO "extent" VALUES('EPSG','2334','Norway - North Sea - offshore south of 62°N','Norway - offshore south of 62°N - North Sea.',56.08,62.0,1.37,11.14,0);
INSERT INTO "extent" VALUES('EPSG','2335','Spain - Balearic Islands','Spain - Balearic Islands.',38.59,40.15,1.12,4.39,0);
@@ -1319,7 +1319,7 @@ INSERT INTO "extent" VALUES('EPSG','2339','Italy - Sardinia onshore','Italy - Sa
INSERT INTO "extent" VALUES('EPSG','2340','Italy - Sicily onshore','Italy - Sicily onshore.',36.59,38.35,12.36,15.71,0);
INSERT INTO "extent" VALUES('EPSG','2341','Egypt - Gulf of Suez','Egypt - Gulf of Suez.',27.19,30.01,32.34,34.27,0);
INSERT INTO "extent" VALUES('EPSG','2342','Europe - common offshore','Denmark - offshore North Sea; Ireland - offshore; Netherlands - offshore; United Kingdom - UKCS offshore.',47.42,63.89,-16.1,10.86,0);
-INSERT INTO "extent" VALUES('EPSG','2343','Europe - British Isles and Channel Islands onshore','Channel islands - onshore. Ireland - onshore. Isle of Man - onshore. United Kingdom (UK) - onshore - England; Scotland; Wales; Northern Ireland.',49.11,60.9,-10.56,1.84,0);
+INSERT INTO "extent" VALUES('EPSG','2343','Europe - British Isles and Channel Islands onshore','Channel islands - onshore. Ireland - onshore. Isle of Man - onshore. United Kingdom (UK) - onshore - England; Scotland; Wales; Northern Ireland.',49.118106881046,60.892941926883,-10.555896938101,1.8312159143487,0);
INSERT INTO "extent" VALUES('EPSG','2344','Europe - Finland and Norway - onshore','Finland and Norway - onshore.',57.93,71.21,4.68,31.59,0);
INSERT INTO "extent" VALUES('EPSG','2345','Asia - Middle East - Iraq; Israel; Jordan; Lebanon; Kuwait; Saudi Arabia; Syria','Iraq, Israel, Jordan, Lebanon, Kuwait, Saudi Arabia and Syria - onshore.',16.37,37.39,34.17,55.67,0);
INSERT INTO "extent" VALUES('EPSG','2346','World - WGS72 BE to WGS 84 - by country','World. Vietnam - offshore.',-90.0,90.0,-180.0,180.0,0);
@@ -1577,7 +1577,7 @@ INSERT INTO "extent" VALUES('EPSG','2597','Argentina - Tierra del Fuego offshore
INSERT INTO "extent" VALUES('EPSG','2598','Algeria - District 3','Algeria - District 3 (In Salah).',25.0,32.0,1.0,3.3,0);
INSERT INTO "extent" VALUES('EPSG','2599','Algeria - In Amenas','Algeria - In Amenas block.',27.5,28.3,8.83,9.92,0);
INSERT INTO "extent" VALUES('EPSG','2600','Algeria - Hassi Bir Reikaz','Algeria - Hassi Bir Reikaz.',31.75,32.42,7.16,8.0,0);
-INSERT INTO "extent" VALUES('EPSG','2601','Norway - offshore north of 62°N; Svalbard','Norway - offshore north of 62°N. Also Svalbard.',62.0,84.17,-3.7,39.65,0);
+INSERT INTO "extent" VALUES('EPSG','2601','Norway - offshore north of 62°N; Svalbard','Norway - offshore north of 62°N. Also Svalbard - onshore and offshore.',62.0,84.722623821813,-3.3437137437567,38.0,0);
INSERT INTO "extent" VALUES('EPSG','2602','Palestine Territory','Palestine Territory.',31.21,32.55,34.17,35.58,0);
INSERT INTO "extent" VALUES('EPSG','2603','Asia - Middle East - Israel and Palestine Territory onshore','Israel - onshore; Palestine Territory - onshore.',29.45,33.28,34.17,35.69,0);
INSERT INTO "extent" VALUES('EPSG','2604','World - N hemisphere - 3-degree CM 048°E','Between 46°30''E and 49°30''E, northern hemisphere.',0.0,84.0,46.5,49.5,0);
@@ -1857,7 +1857,7 @@ INSERT INTO "extent" VALUES('EPSG','2877','Slovenia - Slovenska Bistrica','Slove
INSERT INTO "extent" VALUES('EPSG','2878','Slovenia - Slovenske Gorice','Slovenia - Slovenske Gorice (the Slovene Humpback) with the broad region of Ormoz.',46.29,46.76,15.9,16.3,0);
INSERT INTO "extent" VALUES('EPSG','2879','Germany - offshore North Sea','Germany - offshore North Sea.',53.6,55.92,3.34,8.88,0);
INSERT INTO "extent" VALUES('EPSG','2880','Antarctica - Australian sector north of 80°S','Antarctica - north of 80°S and between 45°E and 136°E and between 142°E and 160°E - Australian sector north of 80°S.',-80.0,-60.0,45.0,160.0,0);
-INSERT INTO "extent" VALUES('EPSG','2881','Europe - LCC & LAEA','Europe - European Union (EU) countries and candidates. Europe - onshore and offshore: Albania; Andorra; Austria; Belgium; Bosnia and Herzegovina; Bulgaria; Croatia; Cyprus; Czechia; Denmark; Estonia; Faroe Islands; Finland; France; Germany; Gibraltar; Greece; Hungary; Iceland; Ireland; Italy; Kosovo; Latvia; Liechtenstein; Lithuania; Luxembourg; Malta; Monaco; Montenegro; Netherlands; North Macedonia; Norway including Svalbard and Jan Mayen; Poland; Portugal including Madeira and Azores; Romania; San Marino; Serbia; Slovakia; Slovenia; Spain including Canary Islands; Sweden; Switzerland; Turkey; United Kingdom (UK) including Channel Islands and Isle of Man; Vatican City State.',24.6,84.17,-35.58,44.83,0);
+INSERT INTO "extent" VALUES('EPSG','2881','Europe - LCC & LAEA','Europe - European Union (EU) countries and candidates. Europe - onshore and offshore: Albania; Andorra; Austria; Belgium; Bosnia and Herzegovina; Bulgaria; Croatia; Cyprus; Czechia; Denmark; Estonia; Faroe Islands; Finland; France; Germany; Gibraltar; Greece; Hungary; Iceland; Ireland; Italy; Kosovo; Latvia; Liechtenstein; Lithuania; Luxembourg; Malta; Monaco; Montenegro; Netherlands; North Macedonia; Norway including Svalbard and Jan Mayen; Poland; Portugal including Madeira and Azores; Romania; San Marino; Serbia; Slovakia; Slovenia; Spain including Canary Islands; Sweden; Switzerland; Turkey; United Kingdom (UK) including Channel Islands and Isle of Man; Vatican City State.',24.603629139001,84.722623821813,-35.579299533,44.820545196533,0);
INSERT INTO "extent" VALUES('EPSG','2882','Italy - Adriatic - North Ancona','Italy - offshore - Adriatic Sea - North Ancona.',43.62,45.73,12.22,13.96,0);
INSERT INTO "extent" VALUES('EPSG','2883','Italy - Adriatic - South Ancona / North Gargano','Italy - offshore - Adriatic Sea - South Ancona and North Gargano.',41.95,44.04,13.61,16.14,0);
INSERT INTO "extent" VALUES('EPSG','2884','Italy - Adriatic - South Gargano','Italy - offshore - Adriatic Sea - South Gargano.',40.72,42.28,15.95,18.63,0);
@@ -1956,7 +1956,7 @@ INSERT INTO "extent" VALUES('EPSG','2976','USA - CONUS south of 41°N, east of 7
INSERT INTO "extent" VALUES('EPSG','2977','USA - CONUS north of 41°N, west of 112°W - onshore','United States (USA) - CONUS onshore north of 41°N and west of 112°W - Oregon and Washington; California and Nevada north of 41°N; Utah north of 41°N and west of 112°W; Idaho and Montana west of 112°W.',41.0,49.05,-124.79,-112.0,0);
INSERT INTO "extent" VALUES('EPSG','2978','USA - CONUS north of 41°N, 112°W to 95°W','United States (USA) - CONUS north of 41°N and between 112°W and 95°W - North Dakota, South Dakota and Wyoming; Idaho and Montana east of 112°W; Utah north of 41°N and east of 112°W; Nebraska north of 41°N; Iowa north of 41°N and west of 95°W; Minnesota west of 95°W.',41.0,49.38,-112.0,-95.0,0);
INSERT INTO "extent" VALUES('EPSG','2979','USA - CONUS north of 41°N, 95°W to 78°W','United States (USA) - CONUS north of 41°N and between 95°W and 78°W - Michigan and Wisconsin; Minnesota east of 95°W; Iowa north of 41°N and east of 95°W; Illinois, Indiana and Ohio north of 41°N; Pennsylvania north of 41°N and west of 78°W; New York west of 78°W.',41.0,49.37,-95.0,-77.99,0);
-INSERT INTO "extent" VALUES('EPSG','2980','USA - CONUS north of 41°N, east of 78°W - onshore','United States (USA) - CONUS onshore north of 41°N and east of 78°W - Connecticut, Maine, Massachusetts, New Hampshire, Rhode Island and Vermont; New Jersey north of 41°N; New York and Pennsylvania north of 41°N and east of 78°W.',41.0,47.47,-78.0,-66.91,0);
+INSERT INTO "extent" VALUES('EPSG','2980','USA - CONUS north of 41°N, east of 78°W - onshore','United States (USA) - CONUS onshore north of 41°N and east of 78°W - Connecticut, Maine, Massachusetts, New Hampshire, Rhode Island and Vermont; New Jersey north of 41°N; New York and Pennsylvania north of 41°N and east of 78°W.',41.0,47.467893600464,-78.0,-66.917007446289,0);
INSERT INTO "extent" VALUES('EPSG','2981','Nigeria - offshore','Nigeria - offshore.',1.92,6.38,2.66,8.49,0);
INSERT INTO "extent" VALUES('EPSG','2982','Pakistan - Karachi','Pakistan - Karachi licence area.',24.69,25.76,66.83,68.0,0);
INSERT INTO "extent" VALUES('EPSG','2983','Pakistan - East Sind','Pakistan - East Sind.',24.16,28.61,68.27,71.14,0);
@@ -2065,7 +2065,7 @@ INSERT INTO "extent" VALUES('EPSG','3085','Colombia region 4','Colombia - region
INSERT INTO "extent" VALUES('EPSG','3086','Colombia region 5','Colombia - region V - onshore between 5°N and 8°N and west of 74°24''W.',5.0,8.01,-77.92,-74.39,0);
INSERT INTO "extent" VALUES('EPSG','3087','Colombia region 6','Colombia - region VI - onshore between 3°N and 5°N and west of 74°24''W.',3.0,5.01,-77.68,-74.39,0);
INSERT INTO "extent" VALUES('EPSG','3088','Colombia region 7','Colombia - region VII (south west). Onshore south of 3°N and west of 74°W.',-1.13,3.01,-79.1,-74.0,0);
-INSERT INTO "extent" VALUES('EPSG','3089','Colombia region 8','Colombia - region VIII (south east). South and east of a line from the intersection of the meridian of 74°W with the southern border, northwards to 3°N, 74°W, westwards to 3°''N, 74°24''W, northwards to 5°N, 74°24''W, eastwards to 5°N, 72°W, and then northwards to the intersection of the meridian of 72°W with the international border.',-4.23,7.1,-74.4,-66.87,0);
+INSERT INTO "extent" VALUES('EPSG','3089','Colombia region 8','Colombia - region VIII (south east). South and east of a line from the intersection of the meridian of 74°W with the southern border, northwards to 3°N, 74°W, westwards to 3°''N, 74°24''W, northwards to 5°N, 74°24''W, eastwards to 5°N, 72°W, and then northwards to the intersection of the meridian of 72°W with the international border.',-4.2279940424075,7.0977268430002,-74.39999961853,-66.870452880859,0);
INSERT INTO "extent" VALUES('EPSG','3090','Colombia - 78°35''W to 75°35''W','Colombia - onshore between 78°35''W and 75°35''W of Greenwich (4°30'' W and 1°30'' W of Bogota).',0.03,10.21,-78.59,-75.58,0);
INSERT INTO "extent" VALUES('EPSG','3091','Colombia - west of 78°35''W','Colombia - mainland onshore west of 78°35''W of Greenwich (4°30'' W of Bogota).',1.23,2.48,-79.1,-78.58,0);
INSERT INTO "extent" VALUES('EPSG','3092','Finland - west of 19.5°E onshore','Finland - onshore west of 19°30''E.',60.08,60.34,19.24,19.5,0);
@@ -2381,7 +2381,7 @@ INSERT INTO "extent" VALUES('EPSG','3401','Fiji - Vanua Levu and Taveuni','Fiji
INSERT INTO "extent" VALUES('EPSG','3402','Algeria - Hassi Mouina licence area','Algeria - Hassi Mouina licence area.',29.25,31.0,0.0,1.25,0);
INSERT INTO "extent" VALUES('EPSG','3403','Russia - west of 19.5°E','Russian Federation - Kaliningrad - west of 19°30''E.',54.32,55.3,19.2,19.5,1);
INSERT INTO "extent" VALUES('EPSG','3404','North America - 120°W to 114°W and NAD83 by country','North America - between 120°W and 114°W - onshore and offshore. Canada - Alberta; British Columbia; Northwest Territories; Nunavut. United States (USA) - California; Idaho; Nevada, Oregon; Washington.',30.88,83.5,-120.0,-114.0,0);
-INSERT INTO "extent" VALUES('EPSG','3405','North America - 114°W to 108°W and NAD83 by country','North America - between 114°W and 108°W - onshore and offshore. Canada - Alberta; Northwest Territories; Nunavut; Saskatchewan. United States (USA) - Arizona; Colorado; Idaho; Montana; New Mexico; Utah; Wyoming.',31.33,84.0,-114.0,-108.0,0);
+INSERT INTO "extent" VALUES('EPSG','3405','North America - 114°W to 108°W and NAD83 by country','North America - between 114°W and 108°W - onshore and offshore. Canada - Alberta; Northwest Territories; Nunavut; Saskatchewan. United States (USA) - Arizona; Colorado; Idaho; Montana; New Mexico; Utah; Wyoming.',31.332603454538,84.0,-114.0,-108.0,0);
INSERT INTO "extent" VALUES('EPSG','3406','North America - 108°W to 102°W and NAD83 by country','North America - between 108°W and 102°W - onshore and offshore. Canada - Northwest Territories; Nunavut; Saskatchewan. United States (USA) - Colorado; Montana; Nebraska; New Mexico; North Dakota; Oklahoma; South Dakota; Texas; Wyoming.',28.98,84.0,-108.0,-102.0,0);
INSERT INTO "extent" VALUES('EPSG','3407','North America - 102°W to 96°W and NAD83 by country','North America - between 102°W and 96°W - onshore and offshore. Canada - Manitoba; Nunavut; Saskatchewan. United States (USA) - Iowa; Kansas; Minnesota; Nebraska; North Dakota; Oklahoma; South Dakota; Texas.',25.83,84.0,-102.0,-96.0,0);
INSERT INTO "extent" VALUES('EPSG','3408','Sweden - Stockholm','Sweden - Stockholm commune.',59.22,59.43,17.75,18.2,0);
@@ -2464,7 +2464,7 @@ INSERT INTO "extent" VALUES('EPSG','3484','USA - 180°W to 174°W - AK','United
INSERT INTO "extent" VALUES('EPSG','3485','USA - 174°W to 168°W - AK','United States (USA) - between 174°W and 168°W - Alaska (AK).',48.7,73.0,-174.0,-168.0,1);
INSERT INTO "extent" VALUES('EPSG','3486','USA - 168°W to 162°W - AK','United States (USA) - between 168°W and 162°W - Alaska (AK).',49.6,74.3,-168.0,-162.0,1);
INSERT INTO "extent" VALUES('EPSG','3487','USA - 162°W to 156°W - AK','United States (USA) - between 162°W and 156°W - Alaska (AK).',51.1,74.7,-162.0,-156.0,1);
-INSERT INTO "extent" VALUES('EPSG','3488','USA - 162°W to 156°W onshore - HI','United States (USA) - between 162°W and 156°W onshore - Hawaii.',19.51,22.29,-160.3,-155.99,0);
+INSERT INTO "extent" VALUES('EPSG','3488','USA - 162°W to 156°W onshore - HI','United States (USA) - between 162°W and 156°W onshore - Hawaii.',19.512991839953,22.28915977478,-160.29792404175,-156.0,0);
INSERT INTO "extent" VALUES('EPSG','3489','USA - 162°W to 156°W - AK, HI','United States (USA) - between 162°W and 156°W onshore and offshore - Alaska, Hawaii.',15.57,74.71,-162.0,-155.99,0);
INSERT INTO "extent" VALUES('EPSG','3490','USA - 156°W to 150°W - AK','United States (USA) - between 156°W and 150°W - Alaska (AK).',52.1,74.7,-156.0,-150.0,1);
INSERT INTO "extent" VALUES('EPSG','3491','USA - 156°W to 150°W onshore - HI','United States (USA) - between 156°W and 150°W onshore - Hawaii.',18.87,20.86,-156.0,-154.74,0);
@@ -2640,7 +2640,7 @@ INSERT INTO "extent" VALUES('EPSG','3660','Norway - onshore - 18°E to 19°E','N
INSERT INTO "extent" VALUES('EPSG','3661','Norway - onshore - 19°E to 20°E','Norway - onshore - between 19°E and 20°E.',68.33,70.34,19.0,20.0,0);
INSERT INTO "extent" VALUES('EPSG','3662','Norway - onshore - 20°E to 21°E','Norway - onshore - between 20°E and 21°E.',68.37,70.29,20.0,21.0,0);
INSERT INTO "extent" VALUES('EPSG','3663','Norway - onshore - 21°E to 22°E','Norway - onshore - between 21°E and 22°E.',69.03,70.71,21.0,22.0,0);
-INSERT INTO "extent" VALUES('EPSG','3664','USA - CONUS and Alaska - onshore','United States (USA) - CONUS and Alaska - onshore - Alabama; Alaska mainland; Arizona; Arkansas; California; Colorado; Connecticut; Delaware; Florida; Georgia; Idaho; Illinois; Indiana; Iowa; Kansas; Kentucky; Louisiana; Maine; Maryland; Massachusetts; Michigan; Minnesota; Mississippi; Missouri; Montana; Nebraska; Nevada; New Hampshire; New Jersey; New Mexico; New York; North Carolina; North Dakota; Ohio; Oklahoma; Oregon; Pennsylvania; Rhode Island; South Carolina; South Dakota; Tennessee; Texas; Utah; Vermont; Virginia; Washington; West Virginia; Wisconsin; Wyoming.',24.41,71.4,-168.26,-66.91,0);
+INSERT INTO "extent" VALUES('EPSG','3664','USA - CONUS and Alaska - onshore','United States (USA) - CONUS and Alaska - onshore - Alabama; Alaska mainland; Arizona; Arkansas; California; Colorado; Connecticut; Delaware; Florida; Georgia; Idaho; Illinois; Indiana; Iowa; Kansas; Kentucky; Louisiana; Maine; Maryland; Massachusetts; Michigan; Minnesota; Mississippi; Missouri; Montana; Nebraska; Nevada; New Hampshire; New Jersey; New Mexico; New York; North Carolina; North Dakota; Ohio; Oklahoma; Oregon; Pennsylvania; Rhode Island; South Carolina; South Dakota; Tennessee; Texas; Utah; Vermont; Virginia; Washington; West Virginia; Wisconsin; Wyoming.',24.410230723243,71.396817302681,-168.25266039145,-66.917007446289,0);
INSERT INTO "extent" VALUES('EPSG','3665','Norway - onshore - 22°E to 23°E','Norway - onshore - between 22°E and 23°E.',68.69,70.81,22.0,23.0,0);
INSERT INTO "extent" VALUES('EPSG','3666','Indonesia - Java, Java Sea and western Sumatra','Indonesia - Bali, Java and western Sumatra onshore, offshore southern Java Sea, Madura Strait and western Bali Sea.',-8.91,5.97,95.16,117.01,0);
INSERT INTO "extent" VALUES('EPSG','3667','Norway - onshore - 23°E to 24°E','Norway - onshore - between 23°E and 24°E.',68.62,71.08,23.0,24.0,0);
@@ -2735,7 +2735,7 @@ INSERT INTO "extent" VALUES('EPSG','3755','Bhutan - Trongsa district','Bhutan -
INSERT INTO "extent" VALUES('EPSG','3756','Latin America - 114°W to 108°W','Latin America between 114°W and 108°W, northern hemisphere, onshore and offshore.',15.09,32.27,-114.0,-108.0,0);
INSERT INTO "extent" VALUES('EPSG','3757','Bhutan - Tsirang district','Bhutan - Tsirang district.',26.81,27.2,90.0,90.35,0);
INSERT INTO "extent" VALUES('EPSG','3758','Bhutan - Wangdue Phodrang district','Bhutan - Wangdue Phodrang district.',27.11,28.08,89.71,90.54,0);
-INSERT INTO "extent" VALUES('EPSG','3759','Latin America - 108°W to 102°W','Latin America between 108°W and 102°W, northern hemisphere, onshore and offshore.',14.05,31.79,-108.0,-102.0,0);
+INSERT INTO "extent" VALUES('EPSG','3759','Latin America - 108°W to 102°W','Latin America between 108°W and 102°W, northern hemisphere, onshore and offshore.',14.057550430298,31.783887863159,-108.0,-102.0,0);
INSERT INTO "extent" VALUES('EPSG','3760','Bhutan - Yangtse district','Bhutan - Yangtse district.',27.37,28.0,91.34,91.77,0);
INSERT INTO "extent" VALUES('EPSG','3761','Bhutan - Zhemgang district','Bhutan - Zhemgang district.',26.77,27.39,90.53,91.19,0);
INSERT INTO "extent" VALUES('EPSG','3762','New Zealand - North Island - One Tree vcrs','New Zealand - North Island - One Tree Point vertical CRS area.',-36.41,-34.36,172.61,174.83,0);
@@ -2822,13 +2822,13 @@ INSERT INTO "extent" VALUES('EPSG','3842','Brazil - east of 30°W','Brazil - eas
INSERT INTO "extent" VALUES('EPSG','3843','Argentina - mainland onshore and offshore TdF','Argentina - mainland onshore and Atlantic offshore Tierra del Fuego.',-54.93,-21.78,-73.59,-53.65,0);
INSERT INTO "extent" VALUES('EPSG','3844','Nicaragua - onshore north of 12°48''N','Nicaragua - onshore north of 12°48''N.',12.8,15.03,-87.74,-83.08,0);
INSERT INTO "extent" VALUES('EPSG','3845','Brazil - SAD69','Brazil - onshore southeast of a line beginning at the intersection of the 54°W meridian with the northern national boundary then running southwards to 5°S, 54°W, southwestwards to 10°S, 60°W, and southwards to the national boundary. Offshore within 370km of the mainland.',-35.71,7.04,-60.57,-29.03,1);
-INSERT INTO "extent" VALUES('EPSG','3846','Greenland - southwest coast south of 63°N','Greenland - onshore southwest coastal area south of 63°N.',59.74,63.0,-50.72,-42.52,0);
+INSERT INTO "extent" VALUES('EPSG','3846','Greenland - southwest coast south of 63°N','Greenland - onshore southwest coastal area south of 63°N.',59.74371386496,63.0,-50.712219208805,-42.52393003546,0);
INSERT INTO "extent" VALUES('EPSG','3847','Nicaragua - onshore south of 12°48''N','Nicaragua - onshore south of 12°48''N.',10.7,12.8,-87.63,-83.42,0);
INSERT INTO "extent" VALUES('EPSG','3848','Honduras - onshore north of 14°38''30"N','Honduras - onshore north of 14°38''30"N.',14.64,16.49,-89.23,-83.08,0);
INSERT INTO "extent" VALUES('EPSG','3849','Costa Rica - onshore and offshore east of 86°30''W','Costa Rica - onshore and offshore east of 86°30''W.',2.21,11.77,-86.5,-81.43,0);
INSERT INTO "extent" VALUES('EPSG','3850','Honduras - onshore south of 14°38''30"N','Honduras - onshore south of 14°38''30"N.',12.98,14.65,-89.36,-84.4,0);
INSERT INTO "extent" VALUES('EPSG','3851','Brazil - 36°W to 30°W SAD69','Brazil - between 36°W and 30°W, northern and southern hemispheres, onshore and offshore within 370km of the mainland.',-20.1,-0.49,-36.0,-30.0,1);
-INSERT INTO "extent" VALUES('EPSG','3852','USA - 120°W to 114°W onshore','United States (USA) - between 120°W and 114°W - onshore - Arizona; California; Idaho; Montana; Nevada; Oregon; Utah; Washington.',32.26,49.01,-120.0,-114.0,0);
+INSERT INTO "extent" VALUES('EPSG','3852','USA - 120°W to 114°W onshore','United States (USA) - between 120°W and 114°W - onshore - Arizona; California; Idaho; Montana; Nevada; Oregon; Utah; Washington.',32.261180822355,49.003129959107,-120.0,-114.0,0);
INSERT INTO "extent" VALUES('EPSG','3853','Antarctica - McMurdo Sound region','Antarctica - McMurdo Sound region.',-81.0,-76.0,153.0,173.0,0);
INSERT INTO "extent" VALUES('EPSG','3854','Antarctica - Borchgrevink Coast region','Antarctica - Borchgrevink Coast region.',-76.0,-73.0,157.0,173.0,0);
INSERT INTO "extent" VALUES('EPSG','3855','Antarctica - Pennell Coast region','Antarctica - Pennell Coast region.',-73.0,-69.5,160.0,172.0,0);
@@ -2992,7 +2992,7 @@ INSERT INTO "extent" VALUES('EPSG','4012','Congo DR (Zaire) - Bas Congo east of
INSERT INTO "extent" VALUES('EPSG','4013','Papua New Guinea - PFTB','Papua New Guinea - Papuan fold and thrust belt.',-8.28,-5.59,142.24,144.75,0);
INSERT INTO "extent" VALUES('EPSG','4014','Australia - Western Australia mainland','Australia - Western Australia mainland.',-35.19,-13.67,112.85,129.01,0);
INSERT INTO "extent" VALUES('EPSG','4015','Vietnam - mainland','Vietnam - mainland onshore.',8.33,23.4,102.14,109.53,0);
-INSERT INTO "extent" VALUES('EPSG','4016','South America - onshore north of 45°S','South America - onshore north of 45°S excluding Amazonia.',-45.0,12.52,-81.41,-34.74,0);
+INSERT INTO "extent" VALUES('EPSG','4016','South America - onshore north of 45°S','South America - onshore north of 45°S excluding Amazonia.',-45.0,12.513334274292,-81.404005050659,-34.743459701538,0);
INSERT INTO "extent" VALUES('EPSG','4017','Australia - SE Australia (ACT NSW)','Australia - Australian Capital Territory and New South Wales onshore.',-37.53,-28.15,140.99,153.69,0);
INSERT INTO "extent" VALUES('EPSG','4018','Congo DR (Zaire) - south and 29°E to 31°E','The Democratic Republic of the Congo (Zaire) - south of a line through Bandundu, Seke and Pweto and east of 29°E.',-13.46,-12.15,29.0,29.81,0);
INSERT INTO "extent" VALUES('EPSG','4019','Arctic - 87°N to 75°N, 156°W to 66°W','Arctic - 87°N to 75°N, approximately 156°W to approximately 66°W. May be extended westwards or eastwards within the latitude limits.',75.0,87.01,-156.0,-66.0,0);
@@ -3034,8 +3034,8 @@ INSERT INTO "extent" VALUES('EPSG','4054','Arctic - 84°30''N to 79°30''N, 33°
INSERT INTO "extent" VALUES('EPSG','4055','Arctic - 84°30''N to 79°30''N, 73°E to 113°E','Arctic - between 84°30''N and 79°30''N, approximately 73°E to approximately 113°E. May be extended westwards or eastwards within the latitude limits.',79.5,84.51,73.0,113.01,0);
INSERT INTO "extent" VALUES('EPSG','4056','Arctic - 84°30''N to 79°30''N, 113°E to 153°E','Arctic - between 84°30''N and 79°30''N, approximately 113°E to approximately 153°E. May be extended westwards or eastwards within the latitude limits.',79.5,84.51,113.0,153.01,0);
INSERT INTO "extent" VALUES('EPSG','4057','Arctic - 84°30''N to 79°30''N, 146°E to 174°W','Arctic - between 84°30''N and 79°30''N, approximately 146°E to approximately 174°W. May be extended westwards or eastwards within the latitude limits.',79.5,84.51,146.0,-173.99,0);
-INSERT INTO "extent" VALUES('EPSG','4058','Arctic - 81°10''N to 76°10''N, 4°W to 38°E','Arctic (Norway (Svalbard) onshore and offshore) - between 81°10''N and 76°10''N.',76.16,81.17,-3.7,38.45,0);
-INSERT INTO "extent" VALUES('EPSG','4059','Arctic - 81°10''N to 76°10''N, 35°E to 67°E','Arctic (Russia onshore and offshore) - between 81°10''N and 76°10''N, approximately 35°E to approximately 67°E. May be extended eastwards within the latitude limits.',76.16,81.17,34.71,67.01,0);
+INSERT INTO "extent" VALUES('EPSG','4058','Arctic - 81°10''N to 76°10''N, 4°W to 38°E','Arctic (Norway (Svalbard) onshore and offshore) - between 81°10''N and 76°10''N.',76.166666030884,81.166666030884,-3.3437137437567,38.0,0);
+INSERT INTO "extent" VALUES('EPSG','4059','Arctic - 81°10''N to 76°10''N, 35°E to 67°E','Arctic (Russia onshore and offshore) - between 81°10''N and 76°10''N, approximately 35°E to approximately 67°E. May be extended eastwards within the latitude limits.',76.166666030884,81.166666030884,34.99888889,67.000001907349,0);
INSERT INTO "extent" VALUES('EPSG','4060','Arctic - 81°10''N to 76°10''N, 67°E to 98°E','Arctic (Russia onshore and offshore) - between 81°10''N and 76°10''N, approximately 67°E to approximately 98°E. May be extended westwards or eastwards within the latitude limits.',76.16,81.17,67.0,98.01,0);
INSERT INTO "extent" VALUES('EPSG','4061','Arctic - 81°10''N to 76°10''N, 98°E to 129°E','Arctic (Russia onshore and offshore) - between 81°10''N and 76°10''N, approximately 98°E to approximately 129°E. May be extended westwards or eastwards within the latitude limits.',76.16,81.17,98.0,129.01,0);
INSERT INTO "extent" VALUES('EPSG','4062','Arctic - 81°10''N to 76°10''N, 129°E to 160°E','Arctic (Russia onshore and offshore) - between 81°10''N and 76°10''N, approximately 129°E to approximately 160°E. May be extended westwards or eastwards within the latitude limits.',76.16,81.17,129.0,160.01,0);
@@ -3051,7 +3051,7 @@ INSERT INTO "extent" VALUES('EPSG','4071','Arctic - 81°10''N to 76°10''N, 84°
INSERT INTO "extent" VALUES('EPSG','4072','Arctic - 81°10''N to 76°10''N, Canada east of 84°W','Arctic - between 81°10''N and 76°10''N, Canada east of approximately 84°W. May be extended westwards within the latitude limits.',76.16,81.17,-84.0,-64.78,0);
INSERT INTO "extent" VALUES('EPSG','4073','Arctic - 81°10''N to 76°10''N, Greenland west of 54°W','Arctic - between 81°10''N and 76°10''N, Greenland west of approximately 54°W. May be extended eastwards within the latitude limits.',76.16,81.17,-75.0,-54.0,0);
INSERT INTO "extent" VALUES('EPSG','4074','Arctic - 81°10''N to 76°10''N, 54°W to 24°W','Arctic - between 81°10''N and 76°10''N, approximately 54°W to approximately 24°W. May be extended westwards or eastwards within the latitude limits.',76.16,81.17,-54.0,-24.0,0);
-INSERT INTO "extent" VALUES('EPSG','4075','Arctic - 81°10''N to 76°10''N, 24°W to 3°E','Arctic - between 81°10''N and 76°10''N, approximately 24°W to approximately 2°E. May be extended westwards within the latitude limits.',76.16,81.17,-24.0,1.9,0);
+INSERT INTO "extent" VALUES('EPSG','4075','Arctic - 81°10''N to 76°10''N, 24°W to 3°E','Arctic - between 81°10''N and 76°10''N, approximately 24°W to approximately 2°E. May be extended westwards within the latitude limits.',76.166666030884,81.166666030884,-24.0,1.8809606137072,0);
INSERT INTO "extent" VALUES('EPSG','4076','Arctic - 77°50''N to 72°50''N, 169°W to 141°W','Arctic - between 77°50''N and 72°50''N, approximately 169°W to approximately 141°W. May be extended westwards or eastwards within the latitude limits.',72.83,77.84,-169.0,-141.0,0);
INSERT INTO "extent" VALUES('EPSG','4077','Arctic - 77°50''N to 72°50''N, 141°W to 116°W','Arctic - between 77°50''N and 72°50''N, approximately 141°W to approximately 116°W. May be extended westwards or eastwards within the latitude limits.',72.83,77.84,-141.0,-116.0,0);
INSERT INTO "extent" VALUES('EPSG','4078','Arctic - 77°50''N to 72°50''N, 116°W to 91°W','Arctic - between 77°50''N and 72°50''N, approximately 116°W to approximately 91°W. May be extended westwards or eastwards within the latitude limits.',72.83,77.84,-116.0,-91.0,0);
@@ -3137,7 +3137,7 @@ INSERT INTO "extent" VALUES('EPSG','4157','Colombia - San Jose del Guaviare city
INSERT INTO "extent" VALUES('EPSG','4158','Colombia - Valledupar city','Colombia - Valledupar city.',10.39,10.51,-73.3,-73.19,0);
INSERT INTO "extent" VALUES('EPSG','4159','Colombia - Villavicencio city','Colombia - Villavicencio city.',4.07,4.21,-73.69,-73.56,0);
INSERT INTO "extent" VALUES('EPSG','4160','Colombia - Yopal city','Colombia - Yopal city.',5.3,5.37,-72.43,-72.35,0);
-INSERT INTO "extent" VALUES('EPSG','4161','North America - Mexico and USA - onshore','Mexico - onshore. United States (USA) - CONUS and Alaska - onshore - Alabama; Alaska; Arizona; Arkansas; California; Colorado; Connecticut; Delaware; Florida; Georgia; Idaho; Illinois; Indiana; Iowa; Kansas; Kentucky; Louisiana; Maine; Maryland; Massachusetts; Michigan; Minnesota; Mississippi; Missouri; Montana; Nebraska; Nevada; New Hampshire; New Jersey; New Mexico; New York; North Carolina; North Dakota; Ohio; Oklahoma; Oregon; Pennsylvania; Rhode Island; South Carolina; South Dakota; Tennessee; Texas; Utah; Vermont; Virginia; Washington; West Virginia; Wisconsin; Wyoming.',14.51,71.4,172.42,-66.91,0);
+INSERT INTO "extent" VALUES('EPSG','4161','North America - Mexico and USA - onshore','Mexico - onshore. United States (USA) - CONUS and Alaska - onshore - Alabama; Alaska; Arizona; Arkansas; California; Colorado; Connecticut; Delaware; Florida; Georgia; Idaho; Illinois; Indiana; Iowa; Kansas; Kentucky; Louisiana; Maine; Maryland; Massachusetts; Michigan; Minnesota; Mississippi; Missouri; Montana; Nebraska; Nevada; New Hampshire; New Jersey; New Mexico; New York; North Carolina; North Dakota; Ohio; Oklahoma; Oregon; Pennsylvania; Rhode Island; South Carolina; South Dakota; Tennessee; Texas; Utah; Vermont; Virginia; Washington; West Virginia; Wisconsin; Wyoming.',14.515261702227,71.396817302681,172.42871284485,-66.917007446289,0);
INSERT INTO "extent" VALUES('EPSG','4162','Pacific - US interests Pacific plate','American Samoa, Marshall Islands, United States (USA) - Hawaii, United States minor outlying islands; onshore and offshore.',-17.56,31.8,157.47,-151.27,0);
INSERT INTO "extent" VALUES('EPSG','4163','Japan excluding northern main province','Japan - onshore and offshore, excluding northern prefectures of ''main province'' (see remarks).',17.09,46.05,122.38,157.65,0);
INSERT INTO "extent" VALUES('EPSG','4164','USA - Iowa - Spencer','United States (USA) - Iowa - counties of Clay; Dickinson; Emmet; Kossuth; Lyon; O''Brien; Osceola; Palo Alto; Sioux.',42.9,43.51,-96.6,-93.97,0);
@@ -3148,10 +3148,10 @@ INSERT INTO "extent" VALUES('EPSG','4168','Japan - onshore - Hokkaido','Japan -
INSERT INTO "extent" VALUES('EPSG','4169','Christmas Island - onshore','Christmas Island - onshore.',-10.63,-10.36,105.48,105.77,0);
INSERT INTO "extent" VALUES('EPSG','4170','Japan - northern Honshu','Japan - northern Honshu prefectures affected by 2011 Tohoku earthquake: Aomori, Iwate, Miyagi, Akita, Yamaguta, Fukushima, Ibaraki, Tochigi, Gumma, Saitama, Chiba, Tokyo, Kanagawa, Niigata, Toyama, Ishikawa, Fukui, Yamanashi, Nagano, Gifu.',34.84,41.58,135.42,142.14,0);
INSERT INTO "extent" VALUES('EPSG','4171','Northern Mariana Islands - Rota, Saipan and Tinian','Northern Mariana Islands - onshore - Rota, Saipan and Tinian.',14.06,15.35,145.06,145.89,0);
-INSERT INTO "extent" VALUES('EPSG','4172','Falkland Islands - offshore 63°W to 57°W','Falkland Islands (Malvinas) - offshore - between 63°W and 57°W.',-56.25,-47.68,-63.01,-56.99,0);
+INSERT INTO "extent" VALUES('EPSG','4172','Falkland Islands - offshore 63°W to 57°W','Falkland Islands (Malvinas) - offshore - between 63°W and 57°W.',-56.245471954346,-47.680107116699,-63.000237861125,-56.999652830545,0);
INSERT INTO "extent" VALUES('EPSG','4173','Heard Island and McDonald Islands - west of 66°E','Heard Island and McDonald Islands - offshore west of 66°E.',-57.5,-53.43,62.92,66.0,0);
INSERT INTO "extent" VALUES('EPSG','4174','Australia','Australia - onshore and offshore. Includes Lord Howe Island, Macquarie Islands, Ashmore and Cartier Islands.',-60.56,-8.88,105.8,164.7,0);
-INSERT INTO "extent" VALUES('EPSG','4175','Australasia - Australia and Norfolk Island - 162°E to 168°E','Australia - offshore east of 162°E. Norfolk Island - onshore and offshore west of 168°E.',-59.39,-25.94,162.0,168.0,0);
+INSERT INTO "extent" VALUES('EPSG','4175','Australasia - Australia and Norfolk Island - 162°E to 168°E','Australia - offshore east of 162°E. Norfolk Island - onshore and offshore west of 168°E.',-59.381099276603,-25.942013537378,162.0,168.0,0);
INSERT INTO "extent" VALUES('EPSG','4176','Australasia - Australia and Christmas Island - 108°E to 114°E','Australia - onshore and offshore west of 114°E. Christmas Island - offshore east of 108°E.',-37.84,-10.72,108.0,114.01,0);
INSERT INTO "extent" VALUES('EPSG','4177','Australia - GDA','Australia including Lord Howe Island, Macquarie Islands, Ashmore and Cartier Islands, Christmas Island, Cocos (Keeling) Islands, Norfolk Island. All onshore and offshore.',-60.56,-8.47,93.41,173.35,0);
INSERT INTO "extent" VALUES('EPSG','4178','Australia - 114°E to 120°E','Australia - onshore and offshore between 114°E and 120°E.',-38.53,-12.06,114.0,120.01,0);
@@ -3575,7 +3575,7 @@ INSERT INTO "extent" VALUES('EPSG','4596','Spain - Canary Islands - La Palma','S
INSERT INTO "extent" VALUES('EPSG','4597','Spain - Canary Islands - El Hierro','Spain - Canary Islands - El Hierro onshore.',27.58,27.9,-18.22,-17.83,0);
INSERT INTO "extent" VALUES('EPSG','4598','Spain - Canary Islands western','Spain - Canary Islands - El Hierro, La Gomera, La Palma and Tenerife - onshore.',27.58,28.9,-18.22,-16.08,0);
INSERT INTO "extent" VALUES('EPSG','4599','Spain - Canary Islands - El Hierro west of 18°W','Spain - Canary Islands - El Hierro onshore west of 18°W.',27.59,27.88,-18.22,-18.0,0);
-INSERT INTO "extent" VALUES('EPSG','4600','Spain - Canary Islands onshore east of 18°W','Spain - Canary Islands onshore - El Hierro east of 18°W, Fuerteventura, Gran Canaria, La Gomera, La Palma, Lanzarote and Tenerife.',27.58,29.47,-18.06,-13.37,0);
+INSERT INTO "extent" VALUES('EPSG','4600','Spain - Canary Islands onshore east of 18°W','Spain - Canary Islands onshore - El Hierro east of 18°W, Fuerteventura, Gran Canaria, La Gomera, La Palma, Lanzarote and Tenerife.',27.587495803833,29.466936779776,-18.05305480957,-13.371389389038,0);
INSERT INTO "extent" VALUES('EPSG','4601','Spain - Canary Islands western east of 18°W','Spain - Canary Islands onshore - El Hierro east of 18°W, La Gomera, La Palma and Tenerife.',27.58,28.9,-18.06,-16.08,0);
INSERT INTO "extent" VALUES('EPSG','4602','Spain - Balearic Islands - Mallorca','Spain - Balearic Islands - Mallorca onshore.',39.07,40.02,2.23,3.55,0);
INSERT INTO "extent" VALUES('EPSG','4603','Spain - Balearic Islands - Menorca','Spain - Balearic Islands - Menorca onshore.',39.75,40.15,3.73,4.39,0);
@@ -3588,4 +3588,6 @@ INSERT INTO "extent" VALUES('EPSG','4609','Europe - ETRF EVRF2019','Europe - ons
INSERT INTO "extent" VALUES('EPSG','4610','Argentina - Buenos Aires city','Argentina - autonomous city of Buenos Aires.',-34.705314975913,-34.506992229796,-58.531465195974,-58.29240989685,0);
INSERT INTO "extent" VALUES('EPSG','4611','Malaysia - East Malaysia - Sarawak onshore','Malaysia - East Malaysia - Sarawak onshore.',0.85,5.03,109.54,115.69,0);
INSERT INTO "extent" VALUES('EPSG','4612','Canada - Newfoundland','Canada - Newfoundland - onshore.',46.567800287196,51.674372389257,-59.477936442937,-52.543563434093,0);
+INSERT INTO "extent" VALUES('EPSG','4613','Europe - Lyon-Turin','France and Italy - on or related to the rail route from Lyon to Turin.',44.87236950014,45.88320957683,4.6505192204449,7.8772423467624,0);
INSERT INTO "extent" VALUES('EPSG','4614','Argentina - Comodoro Rivadavia - west of 67.5°W','Argentina - Comodoro Rivadavia area west of 67°30''W.',-46.699998855591,-45.199998855591,-69.5,-67.5,0);
+INSERT INTO "extent" VALUES('EPSG','4615','Norway, Svalbard and Jan Mayen - offshore','Norway (offshore) and Svalbard and Jan Mayen (offshore).',56.087,84.723,-13.63,38.0,0);
diff --git a/data/sql/geodetic_crs.sql b/data/sql/geodetic_crs.sql
index e62b4990..25325a9f 100644
--- a/data/sql/geodetic_crs.sql
+++ b/data/sql/geodetic_crs.sql
@@ -2108,3 +2108,9 @@ INSERT INTO "geodetic_crs" VALUES('EPSG','9474','PZ-90.02',NULL,'geographic 2D',
INSERT INTO "usage" VALUES('EPSG','14195','geodetic_crs','EPSG','9474','EPSG','1262','EPSG','1183');
INSERT INTO "geodetic_crs" VALUES('EPSG','9475','PZ-90.11',NULL,'geographic 2D','EPSG','6422','EPSG','1158',NULL,0);
INSERT INTO "usage" VALUES('EPSG','14194','geodetic_crs','EPSG','9475','EPSG','1262','EPSG','1183');
+INSERT INTO "geodetic_crs" VALUES('EPSG','9545','LTF2004(G)',NULL,'geocentric','EPSG','6500','EPSG','1295',NULL,0);
+INSERT INTO "usage" VALUES('EPSG','14547','geodetic_crs','EPSG','9545','EPSG','4613','EPSG','1271');
+INSERT INTO "geodetic_crs" VALUES('EPSG','9546','LTF2004(G)',NULL,'geographic 3D','EPSG','6423','EPSG','1295',NULL,0);
+INSERT INTO "usage" VALUES('EPSG','14539','geodetic_crs','EPSG','9546','EPSG','4613','EPSG','1271');
+INSERT INTO "geodetic_crs" VALUES('EPSG','9547','LTF2004(G)',NULL,'geographic 2D','EPSG','6422','EPSG','1295',NULL,0);
+INSERT INTO "usage" VALUES('EPSG','14546','geodetic_crs','EPSG','9547','EPSG','4613','EPSG','1183');
diff --git a/data/sql/geodetic_datum.sql b/data/sql/geodetic_datum.sql
index b249221e..fb54dda9 100644
--- a/data/sql/geodetic_datum.sql
+++ b/data/sql/geodetic_datum.sql
@@ -324,6 +324,8 @@ INSERT INTO "geodetic_datum" VALUES('EPSG','1291','Australian Terrestrial Refere
INSERT INTO "usage" VALUES('EPSG','14133','geodetic_datum','EPSG','1291','EPSG','4177','EPSG','1267');
INSERT INTO "geodetic_datum" VALUES('EPSG','1293','Sistem Referensi Geospasial Indonesia 2013',NULL,'EPSG','7030','EPSG','8901','2012-01-01',2012.0,NULL,0);
INSERT INTO "usage" VALUES('EPSG','14148','geodetic_datum','EPSG','1293','EPSG','1122','EPSG','1266');
+INSERT INTO "geodetic_datum" VALUES('EPSG','1295','Lyon Turin Ferroviaire 2004',NULL,'EPSG','7019','EPSG','8901','2005-07-01',NULL,NULL,0);
+INSERT INTO "usage" VALUES('EPSG','14538','geodetic_datum','EPSG','1295','EPSG','4613','EPSG','1271');
INSERT INTO "geodetic_datum" VALUES('EPSG','6001','Not specified (based on Airy 1830 ellipsoid)',NULL,'EPSG','7001','EPSG','8901',NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13422','geodetic_datum','EPSG','6001','EPSG','1263','EPSG','1213');
INSERT INTO "geodetic_datum" VALUES('EPSG','6002','Not specified (based on Airy Modified 1849 ellipsoid)',NULL,'EPSG','7002','EPSG','8901',NULL,NULL,NULL,0);
diff --git a/data/sql/grid_transformation.sql b/data/sql/grid_transformation.sql
index 4c176837..7b1c2b5b 100644
--- a/data/sql/grid_transformation.sql
+++ b/data/sql/grid_transformation.sql
@@ -11,7 +11,7 @@ INSERT INTO "usage" VALUES('EPSG','8164','grid_transformation','EPSG','1243','EP
INSERT INTO "grid_transformation" VALUES('EPSG','1295','RGNC91-93 to NEA74 Noumea (4)','Emulation using NTv2 method of tfm NEA74 Noumea to RGNC91-93 (3) (code 15943). Note reversal of sign of parameter values in grid file.','EPSG','9615','NTv2','EPSG','4749','EPSG','4644',0.05,'EPSG','8656','Latitude and longitude difference file','RGNC1991_NEA74Noumea.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'ESRI-Ncl 0.05m',0);
INSERT INTO "usage" VALUES('EPSG','8216','grid_transformation','EPSG','1295','EPSG','2823','EPSG','1027');
INSERT INTO "grid_transformation" VALUES('EPSG','1312','NAD27 to NAD83 (3)','Uses NTv1 method. Replaced in Quebec by code 1462 and elsewhere in 1997 by NTv2 (transformation code 1313). Input expects longitudes to be positive west; EPSG GeogCRS NAD27 (code 4267) and NAD83 (code 4269) have longitudes positive east.','EPSG','9614','NTv1','EPSG','4267','EPSG','4269',1.0,'EPSG','8656','Latitude and longitude difference file','NTv1_0.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'GC-Can NT1',0);
-INSERT INTO "usage" VALUES('EPSG','8233','grid_transformation','EPSG','1312','EPSG','1061','EPSG','1197');
+INSERT INTO "usage" VALUES('EPSG','8233','grid_transformation','EPSG','1312','EPSG','4517','EPSG','1197');
INSERT INTO "grid_transformation" VALUES('EPSG','1313','NAD27 to NAD83 (4)','Uses NTv2 data files. Replaces NTv1 (transformation code 1312) except in Quebec. Input expects longitudes to be positive west; EPSG GeogCRS NAD27 (code 4267) and (code 4269) have longitudes positive east. May be used as tfm to WGS 84 - see code 1693.','EPSG','9615','NTv2','EPSG','4267','EPSG','4269',1.5,'EPSG','8656','Latitude and longitude difference file','NTv2_0.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'GC-Can NT2',0);
INSERT INTO "usage" VALUES('EPSG','8234','grid_transformation','EPSG','1313','EPSG','4517','EPSG','1151');
INSERT INTO "grid_transformation" VALUES('EPSG','1451','NAD27(CGQ77) to NAD83 (1)','Replaced by NAD27(CGQ77) to NAD83 (2) (code 1575). Uses NT method which expects longitudes positive west; EPSG GeogCRSs CGQ77 (code 4609) and NAD83 (code 4269) have longitudes positive east.','EPSG','9614','NTv1','EPSG','4609','EPSG','4269',1.0,'EPSG','8656','Latitude and longitude difference file','PQV4.DAC',NULL,NULL,NULL,NULL,NULL,NULL,'SGQ-Can QC NT1',0);
@@ -373,7 +373,7 @@ INSERT INTO "usage" VALUES('EPSG','9489','grid_transformation','EPSG','5657','EP
INSERT INTO "grid_transformation" VALUES('EPSG','5661','ED50 to ETRS89 (14)','When included in concatenation from and to projected CRSs, gives same results as ED50 / UTM zone 31N to ETRS89 / UTM zone 31N (1) - see CRS code 5166.','EPSG','9615','NTv2','EPSG','4230','EPSG','4258',0.05,'EPSG','8656','Latitude and longitude difference file','100800401.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'ICC-Esp Cat',0);
INSERT INTO "usage" VALUES('EPSG','9492','grid_transformation','EPSG','5661','EPSG','3732','EPSG','1079');
INSERT INTO "grid_transformation" VALUES('EPSG','5891','MGI to ETRS89 (5)','Not to be used for cadastral purposes as it does not comply with the rules for control network tie-in as per Paragraph 3 of the Land Survey Regulations (Vermessungsverordnung) 2010.','EPSG','9615','NTv2','EPSG','4312','EPSG','4258',0.15,'EPSG','8656','Latitude and longitude difference file','AT_GIS_GRID.gsb',NULL,NULL,NULL,NULL,NULL,NULL,'BEV-Aut NTv2',0);
-INSERT INTO "usage" VALUES('EPSG','9521','grid_transformation','EPSG','5891','EPSG','1037','EPSG','1139');
+INSERT INTO "usage" VALUES('EPSG','14324','grid_transformation','EPSG','5891','EPSG','1037','EPSG','1078');
INSERT INTO "grid_transformation" VALUES('EPSG','6138','CIGD11 to GCVD54 height (ft) (1)','Care: source CRS heights are in metres, transformation file parameter values and target CRS heights are in feet.','EPSG','1050','Geographic3D to GravityRelatedHeight (CI)','EPSG','6134','EPSG','6130',0.03,'EPSG','8666','Geoid (height correction) model file','GCGM0811.TXT',NULL,NULL,NULL,NULL,NULL,NULL,'LSD-Cym',0);
INSERT INTO "usage" VALUES('EPSG','9628','grid_transformation','EPSG','6138','EPSG','3185','EPSG','1133');
INSERT INTO "grid_transformation" VALUES('EPSG','6139','CIGD11 to LCVD61 height (ft) (1)','Care: source CRS heights are in metres, transformation file parameter values and target CRS heights are in feet.','EPSG','1050','Geographic3D to GravityRelatedHeight (CI)','EPSG','6134','EPSG','6131',0.03,'EPSG','8666','Geoid (height correction) model file','LCGM0811.TXT',NULL,NULL,NULL,NULL,NULL,NULL,'LSD-Cym',0);
@@ -462,7 +462,7 @@ INSERT INTO "grid_transformation" VALUES('EPSG','7864','NZVD2016 height to Gisbo
INSERT INTO "usage" VALUES('EPSG','10298','grid_transformation','EPSG','7864','EPSG','3771','EPSG','1059');
INSERT INTO "grid_transformation" VALUES('EPSG','7865','NZVD2016 height to Lyttelton 1937 height (1)','Derived at 923 control points. Mean offset 0.34m, standard deviation 0.041m, maximum difference from mean 0.149m.','EPSG','1071','Vertical Offset by Grid Interpolation (NZLVD)','EPSG','7839','EPSG','5763',0.01,'EPSG','8732','Vertical offset file','lyttelton-1937-to-nzvd2016-conversion.csv',NULL,NULL,NULL,NULL,'EPSG','4167','LINZ-NZ LYTT',0);
INSERT INTO "usage" VALUES('EPSG','10299','grid_transformation','EPSG','7865','EPSG','3804','EPSG','1059');
-INSERT INTO "grid_transformation" VALUES('EPSG','7866','NZVD2016 height to Moturiki 1953 height (1)','Derived at 519 control points. Mean offset 0.309m, standard deviation 0.071m, maximum difference from mean 0.231m.','EPSG','1071','Vertical Offset by Grid Interpolation (NZLVD)','EPSG','7839','EPSG','5764',0.02,'EPSG','8732','Vertical offset file','moturiki-1953-to-nzvd2016-conversion.csv',NULL,NULL,NULL,NULL,'EPSG','4167','LINZ-NZ MOTU',0);
+INSERT INTO "grid_transformation" VALUES('EPSG','7866','NZVD2016 height to Moturiki 1953 height (1)','Derived at 519 control points. Mean offset 0.309m, standard deviation 0.071m, maximum difference from mean 0.231m.','EPSG','1071','Vertical Offset by Grid Interpolation (NZLVD)','EPSG','7839','EPSG','5764',0.02,'EPSG','8732','Vertical offset file','moturiki-1953-to-nzvd2016-conversion.csv',NULL,NULL,NULL,NULL,'EPSG','4167','LINZ-NZ MOTU',0);
INSERT INTO "usage" VALUES('EPSG','10300','grid_transformation','EPSG','7866','EPSG','3768','EPSG','1059');
INSERT INTO "grid_transformation" VALUES('EPSG','7867','NZVD2016 height to Napier 1962 height (1)','Derived at 207 control points. Mean offset 0.203m, standard deviation 0.034m, maximum difference from mean 0.096m.','EPSG','1071','Vertical Offset by Grid Interpolation (NZLVD)','EPSG','7839','EPSG','5765',0.02,'EPSG','8732','Vertical offset file','napier-1962-to-nzvd2016-conversion.csv',NULL,NULL,NULL,NULL,'EPSG','4167','LINZ-NZ NAPI',0);
INSERT INTO "usage" VALUES('EPSG','10301','grid_transformation','EPSG','7867','EPSG','3772','EPSG','1059');
@@ -500,9 +500,9 @@ INSERT INTO "grid_transformation" VALUES('EPSG','8271','RGF93 to NGF IGN69 heigh
INSERT INTO "usage" VALUES('EPSG','10464','grid_transformation','EPSG','8271','EPSG','1326','EPSG','1133');
INSERT INTO "grid_transformation" VALUES('EPSG','8272','RGF93 to IGN78 Corsica height (1)','Replaces RGF93 to NGF IGN69 height (1) (code 10002). Accuracy at each 0.1 deg x 0.1 degree grid node is given within the geoid model file.','EPSG','9664','Geographic3D to GravityRelatedHeight (IGN1997)','EPSG','4965','EPSG','5721',0.05,'EPSG','8666','Geoid (height correction) model file','RAC09.mnt',NULL,NULL,NULL,NULL,NULL,NULL,'IGN Fra Cor 09',1);
INSERT INTO "usage" VALUES('EPSG','10465','grid_transformation','EPSG','8272','EPSG','1327','EPSG','1133');
-INSERT INTO "grid_transformation" VALUES('EPSG','8361','ETRS89 to ETRS89 + Baltic 1957 height (1)','Uses ETRS89 (realization ETRF2000) and quasigeoid model DVRM05. 1 sigma = 34 mm (test performed on 563 independent points). Uses method 9635 rather than method 9665 to facilitate Baltic 1957 to EVRF2007 transformation (see transformation code 8363).','EPSG','9635','Geog3D to Geog2D+GravityRelatedHeight (US .gtx)','EPSG','4937','EPSG','8360',0.03,'EPSG','8666','Geoid (height correction) model file','Slovakia_ETRS89h_to_Baltic1957.gtx',NULL,NULL,NULL,NULL,NULL,NULL,'UGKK-Svk',0);
+INSERT INTO "grid_transformation" VALUES('EPSG','8361','ETRS89 to ETRS89 + Baltic 1957 height (1)','Uses ETRS89 (realization ETRF2000) and quasigeoid model DVRM05. 1 sigma = 34 mm (test performed on 563 independent points). Recommended as part of transformation between Baltic 1957 height and EVRF2007 height (see concatenated operation code 8363).','EPSG','1088','Geog3D to Geog2D+GravityRelatedHeight (gtx)','EPSG','4937','EPSG','8360',0.03,'EPSG','8666','Geoid (height correction) model file','Slovakia_ETRS89h_to_Baltic1957.gtx',NULL,NULL,NULL,NULL,'EPSG','4258','UGKK-Svk',0);
INSERT INTO "usage" VALUES('EPSG','10508','grid_transformation','EPSG','8361','EPSG','1211','EPSG','1186');
-INSERT INTO "grid_transformation" VALUES('EPSG','8362','ETRS89 to ETRS89 + EVRF2007 height (1)','Uses ETRS89 (realization ETRF2000) and quasigeoid model DMQSK2014E. 1 sigma = 29 mm (test performed on 93 independent points). Uses method 9635 rather than method 9665 to facilitate Baltic 1957 to EVRF2007 transformation (see transformation code 8363).','EPSG','9635','Geog3D to Geog2D+GravityRelatedHeight (US .gtx)','EPSG','4937','EPSG','7423',0.03,'EPSG','8666','Geoid (height correction) model file','Slovakia_ETRS89h_to_EVRF2007.gtx',NULL,NULL,NULL,NULL,NULL,NULL,'UGKK-Svk',0);
+INSERT INTO "grid_transformation" VALUES('EPSG','8362','ETRS89 to ETRS89 + EVRF2007 height (1)','Uses ETRS89 (realization ETRF2000) and quasigeoid model DMQSK2014E. 1 sigma = 29 mm (test performed on 93 independent points). Recommended as part of transformation between Baltic 1957 height and EVRF2007 height (see concatenated operation code 8363).','EPSG','1088','Geog3D to Geog2D+GravityRelatedHeight (gtx)','EPSG','4937','EPSG','7423',0.03,'EPSG','8666','Geoid (height correction) model file','Slovakia_ETRS89h_to_EVRF2007.gtx',NULL,NULL,NULL,NULL,'EPSG','4258','UGKK-Svk',0);
INSERT INTO "usage" VALUES('EPSG','10509','grid_transformation','EPSG','8362','EPSG','1211','EPSG','1186');
INSERT INTO "grid_transformation" VALUES('EPSG','8364','S-JTSK [JTSK03] to S-JTSK (1)','Derived at 684 identical points.','EPSG','9613','NADCON','EPSG','8351','EPSG','4156',0.05,'EPSG','8657','Latitude difference file','Slovakia_JTSK03_to_JTSK.LAS','EPSG','8658','Longitude difference file','Slovakia_JTSK03_to_JTSK.LOS',NULL,NULL,'UGKK-Svk',0);
INSERT INTO "usage" VALUES('EPSG','10511','grid_transformation','EPSG','8364','EPSG','1211','EPSG','1079');
@@ -589,7 +589,7 @@ INSERT INTO "usage" VALUES('EPSG','10935','grid_transformation','EPSG','9121','E
INSERT INTO "grid_transformation" VALUES('EPSG','9122','NAD83(CSRS)v2 to NAD83(CSRS)v4 (1)','','EPSG','9615','NTv2','EPSG','8237','EPSG','8240',0.1,'EPSG','8656','Latitude and longitude difference file','BC_98_05.GSB',NULL,NULL,NULL,NULL,NULL,NULL,'GeoBC-Can BC mainland',0);
INSERT INTO "usage" VALUES('EPSG','10936','grid_transformation','EPSG','9122','EPSG','4535','EPSG','1027');
INSERT INTO "grid_transformation" VALUES('EPSG','9123','NAD83(CSRS) to CGVD28 height (1)','Derived through NAD83(CSRS)v3.','EPSG','1060','Geographic3D to GravityRelatedHeight (CGG2013)','EPSG','4955','EPSG','5713',0.05,'EPSG','8666','Geoid (height correction) model file','HT2_0.byn',NULL,NULL,NULL,NULL,NULL,NULL,'NRC Can CGG2000',0);
-INSERT INTO "usage" VALUES('EPSG','10937','grid_transformation','EPSG','9123','EPSG','1061','EPSG','1133');
+INSERT INTO "usage" VALUES('EPSG','10937','grid_transformation','EPSG','9123','EPSG','1289','EPSG','1133');
INSERT INTO "grid_transformation" VALUES('EPSG','9124','ITRF2008 to CGVD2013(CGG2013) height (1)','Uses CGG2013 model derived through NAD83(CSRS)v6 which uses bi-quadratic interpolation; bi-linear interpolation of the grid file will give results agreeing to within 1cm 99.97% of the time. Replaced by CT code 9125.','EPSG','1060','Geographic3D to GravityRelatedHeight (CGG2013)','EPSG','7911','EPSG','6647',0.03,'EPSG','8666','Geoid (height correction) model file','CGG2013i83.byn',NULL,NULL,NULL,NULL,NULL,NULL,'NRC Can CGG2013',0);
INSERT INTO "usage" VALUES('EPSG','10938','grid_transformation','EPSG','9124','EPSG','1061','EPSG','1133');
INSERT INTO "grid_transformation" VALUES('EPSG','9125','ITRF2008 to CGVD2013(CGG2013a) height (2)','Uses CGG2013a model derived through NAD83(CSRS)v6 which uses bi-quadratic interpolation; bi-linear interpolation of the grid file will give results agreeing to within 1cm 99.97% of the time. Replaces CT code 9124.','EPSG','1060','Geographic3D to GravityRelatedHeight (CGG2013)','EPSG','7911','EPSG','9245',0.03,'EPSG','8666','Geoid (height correction) model file','CGG2013i08a.byn',NULL,NULL,NULL,NULL,NULL,NULL,'NRC Can CGG2013a',0);
@@ -690,7 +690,7 @@ INSERT INTO "grid_transformation" VALUES('EPSG','9276','ETRS89 to EVRF2000 Austr
INSERT INTO "usage" VALUES('EPSG','14189','grid_transformation','EPSG','9276','EPSG','1037','EPSG','1133');
INSERT INTO "grid_transformation" VALUES('EPSG','9277','MGI to EVRF2000 Austria height (1)','Austrian Geoid 2008 (Bessel ellipsoid). Accuracy 5cm (1 sigma). The transformation is implemented in BEV-Transformator.','EPSG','1081','Geographic3D to GravityRelatedHeight (BEV AT)','EPSG','9267','EPSG','9274',0.05,'EPSG','8666','Geoid (height correction) model file','GEOID_BESSEL_Oesterreich.csv',NULL,NULL,NULL,NULL,'EPSG','4312','BEV-Aut',0);
INSERT INTO "usage" VALUES('EPSG','14192','grid_transformation','EPSG','9277','EPSG','1037','EPSG','1133');
-INSERT INTO "grid_transformation" VALUES('EPSG','9278','ETRS89 to GHA height (1)','This transformation gives same result as concatenation of ETRS89 to EVRF2000 Austria height and EVRF2000 Austria height to GHA height transformations, CTs code 9276 and 9275. Accuracy 5cm (1 sigma). The transformation is implemented in BEV-Transformator.','EPSG','1081','Geographic3D to GravityRelatedHeight (BEV AT)','EPSG','4937','EPSG','5778',0.05,'EPSG','8666','Geoid (height correction) model file','GV_Hoehengrid_plus_Geoid_V3.csv',NULL,NULL,NULL,NULL,'EPSG','4258','BEV-Aut',0);
+INSERT INTO "grid_transformation" VALUES('EPSG','9278','ETRS89 to GHA height (1)','This transformation gives same result as concatenation of ETRS89 to EVRF2000 Austria height and EVRF2000 Austria height to GHA height transformations, CTs code 9276 and 9275. Accuracy 5cm (1 sigma). The transformation is implemented in BEV-Transformator.','EPSG','1081','Geographic3D to GravityRelatedHeight (BEV AT)','EPSG','4937','EPSG','5778',0.05,'EPSG','8666','Geoid (height correction) model file','GV_Hoehengrid_plus_Geoid_V3.csv',NULL,NULL,NULL,NULL,'EPSG','4258','BEV-Aut',1);
INSERT INTO "usage" VALUES('EPSG','13936','grid_transformation','EPSG','9278','EPSG','1037','EPSG','1133');
INSERT INTO "grid_transformation" VALUES('EPSG','9280','ITRF2005 to SA LLD height (1)','Hybrid geoid referenced to ITRF2005@2010.02. Accuracy 7cm at 1 sigma.','EPSG','1082','Geographic3D to GravityRelatedHeight (SA 2010)','EPSG','7910','EPSG','9279',0.07,'EPSG','8666','Geoid (height correction) model file','SAGEOID2010.dat',NULL,NULL,NULL,NULL,NULL,NULL,'NGI-Zaf',0);
INSERT INTO "usage" VALUES('EPSG','13937','grid_transformation','EPSG','9280','EPSG','3309','EPSG','1133');
@@ -718,7 +718,7 @@ INSERT INTO "grid_transformation" VALUES('EPSG','9316','NZVD2016 height to Gisbo
INSERT INTO "usage" VALUES('EPSG','13945','grid_transformation','EPSG','9316','EPSG','3771','EPSG','1059');
INSERT INTO "grid_transformation" VALUES('EPSG','9317','NZVD2016 height to Lyttelton 1937 height (2)','Derived at 923 control points. Mean offset 0.34m, standard deviation 0.041m, maximum difference from mean 0.149m. Supersedes NZVD2016 height to Lyttelton 1937 height (1) (code 7865) after change of grid file format.','EPSG','1084','Vertical Offset by Grid Interpolation (gtx)','EPSG','7839','EPSG','5763',0.01,'EPSG','8732','Vertical offset file','lyttht1937-nzvd2016.gtx',NULL,NULL,NULL,NULL,'EPSG','4167','LINZ-NZ LYTT gtx',0);
INSERT INTO "usage" VALUES('EPSG','13946','grid_transformation','EPSG','9317','EPSG','3804','EPSG','1059');
-INSERT INTO "grid_transformation" VALUES('EPSG','9318','NZVD2016 height to Moturiki 1953 height (2)','Derived at 519 control points. Mean offset 0.309m, standard deviation 0.071m, maximum difference from mean 0.231m. Supersedes NZVD2016 height to Moturiki 1953 height (1) (code 7866) after change of grid file format.','EPSG','1084','Vertical Offset by Grid Interpolation (gtx)','EPSG','7839','EPSG','5764',0.02,'EPSG','8732','Vertical offset file','motuht1953-nzvd2016.gtx',NULL,NULL,NULL,NULL,'EPSG','4167','LINZ-NZ MOTU gtx',0);
+INSERT INTO "grid_transformation" VALUES('EPSG','9318','NZVD2016 height to Moturiki 1953 height (2)','Derived at 519 control points. Mean offset 0.309m, standard deviation 0.071m, maximum difference from mean 0.231m. Supersedes NZVD2016 height to Moturiki 1953 height (1) (code 7866) after change of grid file format.','EPSG','1084','Vertical Offset by Grid Interpolation (gtx)','EPSG','7839','EPSG','5764',0.02,'EPSG','8732','Vertical offset file','motuht1953-nzvd2016.gtx',NULL,NULL,NULL,NULL,'EPSG','4167','LINZ-NZ MOTU gtx',0);
INSERT INTO "usage" VALUES('EPSG','13947','grid_transformation','EPSG','9318','EPSG','3768','EPSG','1059');
INSERT INTO "grid_transformation" VALUES('EPSG','9319','NZVD2016 height to Napier 1962 height (2)','Derived at 207 control points. Mean offset 0.203m, standard deviation 0.034m, maximum difference from mean 0.096m. Supersedes NZVD2016 height to Napier 1962 height (1) (code 7867) after change of grid file format.','EPSG','1084','Vertical Offset by Grid Interpolation (gtx)','EPSG','7839','EPSG','5765',0.02,'EPSG','8732','Vertical offset file','napiht1962-nzvd2016.gtx',NULL,NULL,NULL,NULL,'EPSG','4167','LINZ-NZ NAPI gtx',0);
INSERT INTO "usage" VALUES('EPSG','13948','grid_transformation','EPSG','9319','EPSG','3772','EPSG','1059');
diff --git a/data/sql/helmert_transformation.sql b/data/sql/helmert_transformation.sql
index efddf45f..f77301da 100644
--- a/data/sql/helmert_transformation.sql
+++ b/data/sql/helmert_transformation.sql
@@ -30,10 +30,10 @@ INSERT INTO "helmert_transformation" VALUES('EPSG','1067','Minna to WGS 84 (11)'
INSERT INTO "usage" VALUES('EPSG','7988','helmert_transformation','EPSG','1067','EPSG','3817','EPSG','1136');
INSERT INTO "helmert_transformation" VALUES('EPSG','1070','Guam 1963 to WGS 84 (1)','Derived at 5 stations. Accuracy 3m in each axis.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4675','EPSG','4326',6.0,-100.0,-248.0,259.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,'DMA-Gum',0);
INSERT INTO "usage" VALUES('EPSG','7991','helmert_transformation','EPSG','1070','EPSG','3255','EPSG','1160');
-INSERT INTO "helmert_transformation" VALUES('EPSG','1071','Palestine 1923 to Israel (1)','For more accurate transformation contact Survey of Israel.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4281','EPSG','4141',1.5,-181.0,-122.0,225.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,'SoI-Isr',0);
-INSERT INTO "usage" VALUES('EPSG','7992','helmert_transformation','EPSG','1071','EPSG','2603','EPSG','1157');
-INSERT INTO "helmert_transformation" VALUES('EPSG','1073','Israel to WGS 84 (1)','For more accurate transformation contact Survey of Israel.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4141','EPSG','4326',2.0,-48.0,55.0,52.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,'SoI-Isr',0);
-INSERT INTO "usage" VALUES('EPSG','7994','helmert_transformation','EPSG','1073','EPSG','2603','EPSG','1042');
+INSERT INTO "helmert_transformation" VALUES('EPSG','1071','Palestine 1923 to Israel 1993 (1)','For more accurate transformation contact Survey of Israel.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4281','EPSG','4141',1.5,-181.0,-122.0,225.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,'SoI-Isr',0);
+INSERT INTO "usage" VALUES('EPSG','14559','helmert_transformation','EPSG','1071','EPSG','2603','EPSG','1157');
+INSERT INTO "helmert_transformation" VALUES('EPSG','1073','Israel 1993 to WGS 84 (1)','For more accurate transformation contact Survey of Israel.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4141','EPSG','4326',2.0,-48.0,55.0,52.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,'SoI-Isr',0);
+INSERT INTO "usage" VALUES('EPSG','14558','helmert_transformation','EPSG','1073','EPSG','2603','EPSG','1042');
INSERT INTO "helmert_transformation" VALUES('EPSG','1074','Palestine 1923 to WGS 84 (1)','Accuracy: 1m to north and 5m to south of east-west line through Beersheba (31°15''N). Not recognised by Survey of Israel. See Palestine 1923 to WGS 84 (2) (code 8650).','EPSG','9606','Position Vector transformation (geog2D domain)','EPSG','4281','EPSG','4326',2.0,-275.7224,94.7824,340.8944,'EPSG','9001',-8.001,-4.42,-11.821,'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,'EPSG-Isr',0);
INSERT INTO "usage" VALUES('EPSG','7995','helmert_transformation','EPSG','1074','EPSG','2603','EPSG','1136');
INSERT INTO "helmert_transformation" VALUES('EPSG','1075','ED50 to WGS 84 (38)','Derived in 1987 by Geodetic for TPAO. Used on BP 1991/92 2D seismic surveys in central and eastern Turkish sector of Black Sea. In Turkey, replaced by tfm code 1784. Also adopted for use offshore Israel.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4230','EPSG','4326',10.0,-89.05,-87.03,-124.56,'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,'TPAO-Tur',0);
@@ -1859,11 +1859,11 @@ INSERT INTO "helmert_transformation" VALUES('EPSG','7083','Perroud 1950 to RGTAA
INSERT INTO "usage" VALUES('EPSG','9926','helmert_transformation','EPSG','7083','EPSG','2817','EPSG','1035');
INSERT INTO "helmert_transformation" VALUES('EPSG','7140','IGD05 to IG05 Intermediate CRS','Defines the IG05 Intermediate CRS so is considered errorless. Target CRS is referred to in Israeli documentation as "in GRS80". Replaced by IG05/12 transformation (code 6993).','EPSG','9607','Coordinate Frame rotation (geog2D domain)','EPSG','7136','EPSG','6983',0.0,-23.8085,-17.5937,-17.801,'EPSG','9001',-0.3306,-1.85706,1.64828,'EPSG','9104',5.4374,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'SOI-Isr',0);
INSERT INTO "usage" VALUES('EPSG','9949','helmert_transformation','EPSG','7140','EPSG','2603','EPSG','1113');
-INSERT INTO "helmert_transformation" VALUES('EPSG','7377','ONGD14 to WGS 84 (1)','Translations given by information source in mm. Derived at 20 stations, RMS 0.0313m in northing, 0.0377m in easting and 0.0678m in height.','EPSG','1032','Coordinate Frame rotation (geocentric domain)','EPSG','7371','EPSG','4978',0.1,0.819,-0.5762,-1.6446,'EPSG','9001',0.00378,0.03317,-0.00318,'EPSG','9104',0.0693,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'NSA-Omn',0);
+INSERT INTO "helmert_transformation" VALUES('EPSG','7377','ONGD14 to WGS 84 (1)','Translations given by information source in mm. Derived at 20 stations, RMS 0.0313m in northing, 0.0377m in easting and 0.0678m in height.','EPSG','1032','Coordinate Frame rotation (geocentric domain)','EPSG','7371','EPSG','4978',0.1,0.819,-0.5762,-1.6446,'EPSG','9001',0.00378,0.03317,-0.00318,'EPSG','9104',0.0693,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'NSA-Omn',0);
INSERT INTO "usage" VALUES('EPSG','10065','helmert_transformation','EPSG','7377','EPSG','1183','EPSG','1027');
INSERT INTO "helmert_transformation" VALUES('EPSG','7442','Nord Sahara 1959 to WGS 84 (10)','Derived at 1 astro station central to concession. Significant and varying differences (>100m) known to exist in neighbouring astro stations.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4307','EPSG','4326',100.0,-181.7,64.7,247.2,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'Isa-Alg Ain Tsila',0);
INSERT INTO "usage" VALUES('EPSG','10106','helmert_transformation','EPSG','7442','EPSG','4382','EPSG','1136');
-INSERT INTO "helmert_transformation" VALUES('EPSG','7443','ONGD14 to WGS 84 (2)','Approximation at the +/- 1m level assuming that ONG14 is equivalent to WGS 84. See transformation code 7377 for authoritative values.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','7373','EPSG','4326',2.0,0.0,0.0,0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'IOGP-Omn',0);
+INSERT INTO "helmert_transformation" VALUES('EPSG','7443','ONGD14 to WGS 84 (2)','Approximation at the +/- 1m level assuming that ONG14 is equivalent to WGS 84. See transformation code 7377 for authoritative values.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','7373','EPSG','4326',2.0,0.0,0.0,0.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'IOGP-Omn',0);
INSERT INTO "usage" VALUES('EPSG','10107','helmert_transformation','EPSG','7443','EPSG','1183','EPSG','1027');
INSERT INTO "helmert_transformation" VALUES('EPSG','7444','CGRS93 to ETRS89 (1)','Derived at 6 points at epoch 1993.1. May be taken as approximate transformation CGRS93 to WGS 84 - see code 7445.','EPSG','9606','Position Vector transformation (geog2D domain)','EPSG','6311','EPSG','4258',0.1,8.846,-4.394,-1.122,'EPSG','9001',0.00237,0.146528,-0.130428,'EPSG','9104',0.783926,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'DLS-Cyp',1);
INSERT INTO "usage" VALUES('EPSG','10108','helmert_transformation','EPSG','7444','EPSG','3236','EPSG','1243');
@@ -2362,7 +2362,7 @@ INSERT INTO "helmert_transformation" VALUES('EPSG','9281','Amersfoort to ETRS89
INSERT INTO "usage" VALUES('EPSG','13938','helmert_transformation','EPSG','9281','EPSG','1275','EPSG','1048');
INSERT INTO "helmert_transformation" VALUES('EPSG','9291','ISN2016 to WGS 84 (1)','For many purposes ISN2016 can be considered to be coincident with WGS 84.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','8086','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,'LMI-Isl',0);
INSERT INTO "usage" VALUES('EPSG','14126','helmert_transformation','EPSG','9291','EPSG','1120','EPSG','1252');
-INSERT INTO "helmert_transformation" VALUES('EPSG','9298','ONGD17 to WGS 84 (1)','','EPSG','1032','Coordinate Frame rotation (geocentric domain)','EPSG','9292','EPSG','4978',0.1,1.16835,-1.42001,-2.24431,'EPSG','9001',0.00822,0.05508,-0.01818,'EPSG','9104',0.23388,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'NSA-Omn',0);
+INSERT INTO "helmert_transformation" VALUES('EPSG','9298','ONGD17 to WGS 84 (1)','','EPSG','1032','Coordinate Frame rotation (geocentric domain)','EPSG','9292','EPSG','4978',0.1,1.16835,-1.42001,-2.24431,'EPSG','9001',0.00822,0.05508,-0.01818,'EPSG','9104',0.23388,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'NSA-Omn',0);
INSERT INTO "usage" VALUES('EPSG','13971','helmert_transformation','EPSG','9298','EPSG','1183','EPSG','1027');
INSERT INTO "helmert_transformation" VALUES('EPSG','9334','ITRF2014 to KSA-GRF17 (1)','Arabian plate rotations derived from obs. at 41 sites with at least 2.5 years of continuous observations. May be approximated by position vector CT with rX=8.393", rY=-0.749", rZ=10.276" valid at 2017.00 and degrading by approximately 2.5cm per year.','EPSG','1053','Time-dependent Position Vector tfm (geocentric)','EPSG','7789','EPSG','9331',0.001,0.0,0.0,0.0,'EPSG','1025',0.0,0.0,0.0,'EPSG','1031',0.0,'EPSG','1028',0.0,0.0,0.0,'EPSG','1027',-1.199,0.107,-1.468,'EPSG','1032',0.0,'EPSG','1030',2017.0,'EPSG','1029',NULL,NULL,NULL,NULL,NULL,'GCS-Sau',0);
INSERT INTO "usage" VALUES('EPSG','13960','helmert_transformation','EPSG','9334','EPSG','1206','EPSG','1027');
@@ -2410,6 +2410,10 @@ INSERT INTO "helmert_transformation" VALUES('EPSG','9486','MGI 1901 to WGS 84 (1
INSERT INTO "usage" VALUES('EPSG','14220','helmert_transformation','EPSG','9486','EPSG','4543','EPSG','1041');
INSERT INTO "helmert_transformation" VALUES('EPSG','9495','MGI 1901 to SRB-ETRS89 (8)','','EPSG','9607','Coordinate Frame rotation (geog2D domain)','EPSG','3906','EPSG','8685',0.46,577.84843,165.45019,390.43652,'EPSG','9001',-4.93131,0.96052,13.05072,'EPSG','9104',7.86546,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'RGZ-Srb 0.5m 2020',0);
INSERT INTO "usage" VALUES('EPSG','14227','helmert_transformation','EPSG','9495','EPSG','4543','EPSG','1153');
+INSERT INTO "helmert_transformation" VALUES('EPSG','9676','Israel 1993 to WGS 84 (2)','Parameter values from CT code 9186 assuming that WGS 84 is coincident with ITRF2008 and New Israeli Grid 1993 is equivalent to Israeli Grid 05/12 within the accuracy of the transformation. Use in preference to Israel 1993 to WGS 84 (1) (code 1073).','EPSG','9607','Coordinate Frame rotation (geog2D domain)','EPSG','4141','EPSG','4326',0.5,23.772,17.49,17.859,'EPSG','9001',0.3132,1.85274,-1.67299,'EPSG','9104',-5.4262,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'SOI-Isr 2019',0);
+INSERT INTO "usage" VALUES('EPSG','14833','helmert_transformation','EPSG','9676','EPSG','2603','EPSG','1189');
+INSERT INTO "helmert_transformation" VALUES('EPSG','9679','Gulshan 303 to WGS 84 (2)','Derived at origin station in Dhaka.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4682','EPSG','4326',1.0,283.729,735.942,261.143,'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,'SB-Bgd',0);
+INSERT INTO "usage" VALUES('EPSG','14836','helmert_transformation','EPSG','9679','EPSG','1041','EPSG','1136');
INSERT INTO "helmert_transformation" VALUES('EPSG','10085','Trinidad 1903 to WGS 84 (2)','Parameter values provided to EOG by Trinidad Ministry of Energy and Energy Industries. Used by EOG offshore Trinidad (including Pelican, Kiskadee and Ibis fields) since 1996.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4302','EPSG','4326',3.0,-61.0,285.2,471.6,'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,'EOG-Tto Trin',0);
INSERT INTO "usage" VALUES('EPSG','11086','helmert_transformation','EPSG','10085','EPSG','1339','EPSG','1136');
INSERT INTO "helmert_transformation" VALUES('EPSG','10086','JAD69 to WGS 72 (1)','Derived in 1977 through Transit observations at 2 stations by US DMA.','EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4242','EPSG','4322',15.0,48.0,208.0,382.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,'SD-Jam',0);
diff --git a/data/sql/metadata.sql b/data/sql/metadata.sql
index 189c401d..fd156845 100644
--- a/data/sql/metadata.sql
+++ b/data/sql/metadata.sql
@@ -9,5 +9,5 @@
INSERT INTO "metadata" VALUES('DATABASE.LAYOUT.VERSION.MAJOR', 1);
INSERT INTO "metadata" VALUES('DATABASE.LAYOUT.VERSION.MINOR', 0);
-INSERT INTO "metadata" VALUES('EPSG.VERSION', 'v10.008');
-INSERT INTO "metadata" VALUES('EPSG.DATE', '2020-12-16');
+INSERT INTO "metadata" VALUES('EPSG.VERSION', 'v10.011');
+INSERT INTO "metadata" VALUES('EPSG.DATE', '2021-01-14');
diff --git a/data/sql/other_transformation.sql b/data/sql/other_transformation.sql
index 9b3bb471..1818f5bc 100644
--- a/data/sql/other_transformation.sql
+++ b/data/sql/other_transformation.sql
@@ -282,7 +282,7 @@ INSERT INTO "other_transformation" VALUES('EPSG','4441','NZVD2009 height to One
INSERT INTO "usage" VALUES('EPSG','9076','other_transformation','EPSG','4441','EPSG','3762','EPSG','1059');
INSERT INTO "other_transformation" VALUES('EPSG','4442','NZVD2009 height to Auckland 1946 height (1)','Accuracy 0.05m (1 sigma).','EPSG','9616','Vertical Offset','EPSG','4440','EPSG','5759',0.05,'EPSG','8603','Vertical Offset',0.34,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'LINZ-NZ AUCK',0);
INSERT INTO "usage" VALUES('EPSG','9077','other_transformation','EPSG','4442','EPSG','3764','EPSG','1059');
-INSERT INTO "other_transformation" VALUES('EPSG','4443','NZVD2009 height to Moturiki 1953 height (1)','Accuracy 0.06m (1 sigma).','EPSG','9616','Vertical Offset','EPSG','4440','EPSG','5764',0.06,'EPSG','8603','Vertical Offset',0.24,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'LINZ-NZ MOTU',0);
+INSERT INTO "other_transformation" VALUES('EPSG','4443','NZVD2009 height to Moturiki 1953 height (1)','Accuracy 0.06m (1 sigma).','EPSG','9616','Vertical Offset','EPSG','4440','EPSG','5764',0.06,'EPSG','8603','Vertical Offset',0.24,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'LINZ-NZ MOTU',0);
INSERT INTO "usage" VALUES('EPSG','9078','other_transformation','EPSG','4443','EPSG','3768','EPSG','1059');
INSERT INTO "other_transformation" VALUES('EPSG','4444','NZVD2009 height to Nelson 1955 height (1)','Accuracy 0.07m (1 sigma).','EPSG','9616','Vertical Offset','EPSG','4440','EPSG','5766',0.07,'EPSG','8603','Vertical Offset',0.29,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'LINZ-NZ NELS',0);
INSERT INTO "usage" VALUES('EPSG','9079','other_transformation','EPSG','4444','EPSG','3802','EPSG','1059');
diff --git a/data/sql/projected_crs.sql b/data/sql/projected_crs.sql
index 64b361a1..f9a5c670 100644
--- a/data/sql/projected_crs.sql
+++ b/data/sql/projected_crs.sql
@@ -2197,8 +2197,9 @@ INSERT INTO "projected_crs" VALUES('EPSG','3104','Mauritania 1999 / UTM zone 29N
INSERT INTO "usage" VALUES('EPSG','2122','projected_crs','EPSG','3104','EPSG','2970','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','3105','Mauritania 1999 / UTM zone 30N',NULL,'EPSG','4400','EPSG','4681','EPSG','16030',NULL,1);
INSERT INTO "usage" VALUES('EPSG','2123','projected_crs','EPSG','3105','EPSG','2969','EPSG','1142');
-INSERT INTO "projected_crs" VALUES('EPSG','3106','Gulshan 303 / Bangladesh Transverse Mercator',NULL,'EPSG','4400','EPSG','4682','EPSG','16490',NULL,0);
-INSERT INTO "usage" VALUES('EPSG','2124','projected_crs','EPSG','3106','EPSG','1041','EPSG','1142');
+INSERT INTO "projected_crs" VALUES('EPSG','3106','Gulshan 303 / TM 90 NE',NULL,'EPSG','4400','EPSG','4682','EPSG','16490',NULL,0);
+INSERT INTO "usage" VALUES('EPSG','2124','projected_crs','EPSG','3106','EPSG','3217','EPSG','1142');
+INSERT INTO "usage" VALUES('EPSG','14846','projected_crs','EPSG','3106','EPSG','1041','EPSG','1136');
INSERT INTO "projected_crs" VALUES('EPSG','3107','GDA94 / SA Lambert',NULL,'EPSG','4400','EPSG','4283','EPSG','17359',NULL,0);
INSERT INTO "usage" VALUES('EPSG','2125','projected_crs','EPSG','3107','EPSG','2986','EPSG','1135');
INSERT INTO "projected_crs" VALUES('EPSG','3108','ETRS89 / Guernsey Grid',NULL,'EPSG','4400','EPSG','4258','EPSG','19998',NULL,0);
@@ -4732,10 +4733,6 @@ INSERT INTO "projected_crs" VALUES('EPSG','5685','DB_REF / 3-degree Gauss-Kruger
INSERT INTO "usage" VALUES('EPSG','4140','projected_crs','EPSG','5685','EPSG','3998','EPSG','1141');
INSERT INTO "projected_crs" VALUES('EPSG','5700','NZGD2000 / UTM zone 1S',NULL,'EPSG','4400','EPSG','4167','EPSG','16101',NULL,0);
INSERT INTO "usage" VALUES('EPSG','4143','projected_crs','EPSG','5700','EPSG','3992','EPSG','1153');
-INSERT INTO "projected_crs" VALUES('EPSG','5819','EPSG topocentric example A',NULL,'EPSG','4461','EPSG','4979','EPSG','15594',NULL,0);
-INSERT INTO "usage" VALUES('EPSG','4262','projected_crs','EPSG','5819','EPSG','4393','EPSG','1030');
-INSERT INTO "projected_crs" VALUES('EPSG','5820','EPSG topocentric example B',NULL,'EPSG','4461','EPSG','4978','EPSG','15595',NULL,0);
-INSERT INTO "usage" VALUES('EPSG','4263','projected_crs','EPSG','5820','EPSG','4393','EPSG','1030');
INSERT INTO "projected_crs" VALUES('EPSG','5825','AGD66 / ACT Standard Grid',NULL,'EPSG','4400','EPSG','4202','EPSG','5824',NULL,0);
INSERT INTO "usage" VALUES('EPSG','4265','projected_crs','EPSG','5825','EPSG','2283','EPSG','1054');
INSERT INTO "projected_crs" VALUES('EPSG','5836','Yemen NGN96 / UTM zone 37N',NULL,'EPSG','4400','EPSG','4163','EPSG','16037',NULL,0);
@@ -7306,6 +7303,10 @@ INSERT INTO "projected_crs" VALUES('EPSG','9498','POSGAR 2007 / CABA 2019',NULL,
INSERT INTO "usage" VALUES('EPSG','14513','projected_crs','EPSG','9498','EPSG','4610','EPSG','1056');
INSERT INTO "projected_crs" VALUES('EPSG','9674','NAD83 / USFS R6 Albers',NULL,'EPSG','4400','EPSG','4269','EPSG','9673',NULL,0);
INSERT INTO "usage" VALUES('EPSG','14787','projected_crs','EPSG','9674','EPSG','2381','EPSG','1165');
+INSERT INTO "projected_crs" VALUES('EPSG','9678','Gulshan 303 / Bangladesh Transverse Mercator',NULL,'EPSG','4400','EPSG','4682','EPSG','9677',NULL,0);
+INSERT INTO "usage" VALUES('EPSG','14849','projected_crs','EPSG','9678','EPSG','3217','EPSG','1274');
+INSERT INTO "projected_crs" VALUES('EPSG','9680','WGS 84 / TM 90 NE',NULL,'EPSG','4400','EPSG','4326','EPSG','16490',NULL,0);
+INSERT INTO "usage" VALUES('EPSG','14880','projected_crs','EPSG','9680','EPSG','1041','EPSG','1142');
INSERT INTO "projected_crs" VALUES('EPSG','20004','Pulkovo 1995 / Gauss-Kruger zone 4',NULL,'EPSG','4530','EPSG','4200','EPSG','16204',NULL,0);
INSERT INTO "usage" VALUES('EPSG','6177','projected_crs','EPSG','20004','EPSG','1763','EPSG','1211');
INSERT INTO "projected_crs" VALUES('EPSG','20005','Pulkovo 1995 / Gauss-Kruger zone 5',NULL,'EPSG','4530','EPSG','4200','EPSG','16205',NULL,0);
diff --git a/data/sql/scope.sql b/data/sql/scope.sql
index 58fc0779..bf98f123 100644
--- a/data/sql/scope.sql
+++ b/data/sql/scope.sql
@@ -246,4 +246,6 @@ INSERT INTO "scope" VALUES('EPSG','1266','Engineering survey, topographic mappin
INSERT INTO "scope" VALUES('EPSG','1267','Location-based services, Intelligent Transport Services, navigation, positioning.',0);
INSERT INTO "scope" VALUES('EPSG','1268','Geodesy, location based services, intelligent transport services.',0);
INSERT INTO "scope" VALUES('EPSG','1269','Intermediate CRS in transformation to and from projected CRS.',0);
+INSERT INTO "scope" VALUES('EPSG','1271','Engineering survey and mapping for the Trans-Europe Lyon-Turin (TELT) railway project.',0);
INSERT INTO "scope" VALUES('EPSG','1273','Transformation of coordinates at 0.03m level of accuracy.',0);
+INSERT INTO "scope" VALUES('EPSG','1274','Spatial referencing including water resource management.',0);
diff --git a/data/sql/supersession.sql b/data/sql/supersession.sql
index 8148c911..352920ed 100644
--- a/data/sql/supersession.sql
+++ b/data/sql/supersession.sql
@@ -248,3 +248,4 @@ INSERT INTO "supersession" VALUES('grid_transformation','EPSG','15932','grid_tra
INSERT INTO "supersession" VALUES('grid_transformation','EPSG','15932','grid_transformation','EPSG','9408','EPSG',1);
INSERT INTO "supersession" VALUES('helmert_transformation','EPSG','7675','helmert_transformation','EPSG','9495','EPSG',0);
INSERT INTO "supersession" VALUES('helmert_transformation','EPSG','7676','helmert_transformation','EPSG','9486','EPSG',1);
+INSERT INTO "supersession" VALUES('helmert_transformation','EPSG','15779','helmert_transformation','EPSG','9679','EPSG',1);
diff --git a/data/sql/vertical_crs.sql b/data/sql/vertical_crs.sql
index 291ee40f..73de8c5b 100644
--- a/data/sql/vertical_crs.sql
+++ b/data/sql/vertical_crs.sql
@@ -484,5 +484,9 @@ INSERT INTO "vertical_crs" VALUES('EPSG','9458','AVWS height',NULL,'EPSG','6499'
INSERT INTO "usage" VALUES('EPSG','14231','vertical_crs','EPSG','9458','EPSG','4177','EPSG','1264');
INSERT INTO "vertical_crs" VALUES('EPSG','9471','INAGeoid2020 height',NULL,'EPSG','6499','EPSG','1294',0);
INSERT INTO "usage" VALUES('EPSG','14153','vertical_crs','EPSG','9471','EPSG','1122','EPSG','1178');
+INSERT INTO "vertical_crs" VALUES('EPSG','9672','CD Norway',NULL,'EPSG','6498','EPSG','1301',0);
+INSERT INTO "usage" VALUES('EPSG','14776','vertical_crs','EPSG','9672','EPSG','4615','EPSG','1198');
INSERT INTO "vertical_crs" VALUES('EPSG','9675','Pago Pago 2020 height',NULL,'EPSG','6499','EPSG','1302',0);
INSERT INTO "usage" VALUES('EPSG','14793','vertical_crs','EPSG','9675','EPSG','2288','EPSG','1026');
+INSERT INTO "vertical_crs" VALUES('EPSG','9681','NVD 1992 height',NULL,'EPSG','6499','EPSG','1303',0);
+INSERT INTO "usage" VALUES('EPSG','14851','vertical_crs','EPSG','9681','EPSG','3217','EPSG','1181');
diff --git a/data/sql/vertical_datum.sql b/data/sql/vertical_datum.sql
index e1fff6e3..45515823 100644
--- a/data/sql/vertical_datum.sql
+++ b/data/sql/vertical_datum.sql
@@ -134,7 +134,7 @@ INSERT INTO "vertical_datum" VALUES('EPSG','1177','St. Helena Vertical Datum 201
INSERT INTO "usage" VALUES('EPSG','13229','vertical_datum','EPSG','1177','EPSG','3183','EPSG','1178');
INSERT INTO "vertical_datum" VALUES('EPSG','1190','Landshaedarkerfi Islands 2004',NULL,'2004-08-07',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13242','vertical_datum','EPSG','1190','EPSG','3262','EPSG','1180');
-INSERT INTO "vertical_datum" VALUES('EPSG','1199','Greenland Vertical Reference 2000',NULL,'2000-01-01',NULL,NULL,0);
+INSERT INTO "vertical_datum" VALUES('EPSG','1199','Greenland Vertical Reference 2000',NULL,'2000-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13251','vertical_datum','EPSG','1199','EPSG','4461','EPSG','1153');
INSERT INTO "vertical_datum" VALUES('EPSG','1200','Greenland Vertical Reference 2016',NULL,'2016-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13252','vertical_datum','EPSG','1200','EPSG','4454','EPSG','1153');
@@ -208,8 +208,12 @@ INSERT INTO "vertical_datum" VALUES('EPSG','1292','Australian Vertical Working S
INSERT INTO "usage" VALUES('EPSG','14134','vertical_datum','EPSG','1292','EPSG','4177','EPSG','1264');
INSERT INTO "vertical_datum" VALUES('EPSG','1294','Indonesian Geoid 2020',NULL,'2020-01-01',NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','14149','vertical_datum','EPSG','1294','EPSG','1122','EPSG','1178');
+INSERT INTO "vertical_datum" VALUES('EPSG','1301','Norwegian Chart Datum',NULL,NULL,NULL,NULL,0);
+INSERT INTO "usage" VALUES('EPSG','14864','vertical_datum','EPSG','1301','EPSG','4615','EPSG','1198');
INSERT INTO "vertical_datum" VALUES('EPSG','1302','Local Tidal Datum at Pago Pago 2020',NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','14795','vertical_datum','EPSG','1302','EPSG','2288','EPSG','1026');
+INSERT INTO "vertical_datum" VALUES('EPSG','1303','National Vertical Datum 1992',NULL,'1994-01-01',NULL,NULL,0);
+INSERT INTO "usage" VALUES('EPSG','14852','vertical_datum','EPSG','1303','EPSG','3217','EPSG','1181');
INSERT INTO "vertical_datum" VALUES('EPSG','5100','Mean Sea Level',NULL,NULL,NULL,NULL,0);
INSERT INTO "usage" VALUES('EPSG','13307','vertical_datum','EPSG','5100','EPSG','1262','EPSG','1199');
INSERT INTO "vertical_datum" VALUES('EPSG','5101','Ordnance Datum Newlyn',NULL,'1956-01-01',NULL,NULL,0);
diff --git a/scripts/build_db.py b/scripts/build_db.py
index af304424..adffc383 100755
--- a/scripts/build_db.py
+++ b/scripts/build_db.py
@@ -91,8 +91,26 @@ def fill_ellipsoid(proj_db_cursor):
def fill_extent(proj_db_cursor):
+ #proj_db_cursor.execute(
+ # "INSERT INTO extent SELECT ?, extent_code, extent_name, extent_description, bbox_south_bound_lat, bbox_north_bound_lat, bbox_west_bound_lon, bbox_east_bound_lon, deprecatedFROM epsg.epsg_extent", (EPSG_AUTHORITY,))
proj_db_cursor.execute(
- "INSERT INTO extent SELECT ?, extent_code, extent_name, extent_description, bbox_south_bound_lat, bbox_north_bound_lat, bbox_west_bound_lon, bbox_east_bound_lon, deprecated FROM epsg.epsg_extent", (EPSG_AUTHORITY,))
+ "SELECT extent_code, extent_name, extent_description, bbox_south_bound_lat, bbox_north_bound_lat, bbox_west_bound_lon, bbox_east_bound_lon, deprecated FROM epsg.epsg_extent")
+ res = proj_db_cursor.fetchall()
+ for (extent_code, extent_name, extent_description, bbox_south_bound_lat, bbox_north_bound_lat, bbox_west_bound_lon, bbox_east_bound_lon, deprecated) in res:
+ try:
+ # Some new records have longitudes outside [-180,180]
+ if bbox_west_bound_lon and bbox_west_bound_lon < -180:
+ # print( extent_code, extent_name, extent_description, bbox_south_bound_lat, bbox_north_bound_lat, bbox_west_bound_lon, bbox_east_bound_lon, deprecated)
+ bbox_west_bound_lon += 360
+ if bbox_east_bound_lon and bbox_east_bound_lon > 180:
+ # print( extent_code, extent_name, extent_description, bbox_south_bound_lat, bbox_north_bound_lat, bbox_west_bound_lon, bbox_east_bound_lon, deprecated)
+ bbox_east_bound_lon -= 360
+ proj_db_cursor.execute(
+ "INSERT INTO extent VALUES (?,?,?,?,?,?,?,?,?)", (EPSG_AUTHORITY, extent_code, extent_name, extent_description, bbox_south_bound_lat, bbox_north_bound_lat, bbox_west_bound_lon, bbox_east_bound_lon, deprecated))
+ except sqlite3.IntegrityError as e:
+ print(e)
+ print(extent_code, extent_name, extent_description, bbox_south_bound_lat, bbox_north_bound_lat, bbox_west_bound_lon, bbox_east_bound_lon, deprecated)
+ raise
def fill_scope(proj_db_cursor):
@@ -258,7 +276,8 @@ BEGIN
# the source/target CRS names from the transformation name.
# Method EPSG:9666 'P6 I=J+90 seismic bin grid coordinate operation' requires more than 7 parameters. Not supported by PROJ for now
# Idem for EPSG:1049 'P6 I=J-90 seismic bin grid coordinate operation'
- proj_db_cursor.execute("SELECT coord_op_code, coord_op_name, coord_op_method_code, coord_op_method_name, epsg_coordoperation.deprecated, epsg_coordoperation.remarks FROM epsg.epsg_coordoperation LEFT JOIN epsg.epsg_coordoperationmethod USING (coord_op_method_code) WHERE coord_op_type = 'conversion' AND coord_op_name NOT LIKE '%to DMSH' AND (coord_op_method_code NOT IN (1068, 1069, 9666, 1049) OR coord_op_code IN (7812,7813))")
+ # EPSG:1102 is "Lambert Conic Conformal (1SP variant B)" and is only used at time of writing for specialized CRS EPSG:9548, "Lyon Turin Ferroviaire 2004 (C)"
+ proj_db_cursor.execute("SELECT coord_op_code, coord_op_name, coord_op_method_code, coord_op_method_name, epsg_coordoperation.deprecated, epsg_coordoperation.remarks FROM epsg.epsg_coordoperation LEFT JOIN epsg.epsg_coordoperationmethod USING (coord_op_method_code) WHERE coord_op_type = 'conversion' AND coord_op_name NOT LIKE '%to DMSH' AND (coord_op_method_code NOT IN (1068, 1069, 9666, 1049, 1102) OR coord_op_code IN (7812,7813))")
for (code, name, method_code, method_name, deprecated, remarks) in proj_db_cursor.fetchall():
expected_order = 1
max_n_params = 7
@@ -276,7 +295,7 @@ BEGIN
if order == max_n_params + 1 and method_code in (1042, 1043):
break
assert order <= max_n_params, (method_code, method_name, order)
- assert order == expected_order
+ assert order == expected_order, (code, name, method_code, method_name)
param_auth_name[order - 1] = EPSG_AUTHORITY
param_code[order - 1] = parameter_code
param_name[order - 1] = parameter_name
@@ -341,10 +360,18 @@ def fill_projected_crs(proj_db_cursor):
proj_db_cursor.execute("SELECT ?, coord_ref_sys_code, coord_ref_sys_name, NULL, ?, coord_sys_code, ?, base_crs_code, ?, projection_conv_code, deprecated FROM epsg.epsg_coordinatereferencesystem WHERE coord_ref_sys_kind IN ('projected')", (EPSG_AUTHORITY, EPSG_AUTHORITY, EPSG_AUTHORITY, EPSG_AUTHORITY))
for row in proj_db_cursor.fetchall():
(auth_name, code, name, description, coordinate_system_auth_name, coordinate_system_code, geodetic_crs_auth_name, geodetic_crs_code, conversion_auth_name, conversion_code, deprecated) = row
+ if code == 9549: # "LTF2004(C)"
+ print('Skipping EPSG:9549 LTF2004(C) as we do not handle yet projection method EPSG:1102 is "Lambert Conic Conformal (1SP variant B)"')
+ continue
proj_db_cursor.execute("SELECT 1 FROM epsg.epsg_coordinatereferencesystem WHERE coord_ref_sys_code = ? AND coord_ref_sys_kind IN ('geographic 2D', 'geographic 3D', 'geocentric')", (geodetic_crs_code,))
if proj_db_cursor.fetchone():
#proj_db_cursor.execute("INSERT INTO crs VALUES (?, ?, 'projected')", (EPSG_AUTHORITY, code))
- proj_db_cursor.execute("INSERT INTO projected_crs VALUES (?,?,?,?,?,?,?,?,?,?,NULL,?)", row)
+ try:
+ proj_db_cursor.execute("INSERT INTO projected_crs VALUES (?,?,?,?,?,?,?,?,?,?,NULL,?)", row)
+ except sqlite3.IntegrityError as e:
+ print(e)
+ print(row)
+ raise
def fill_compound_crs(proj_db_cursor):
#proj_db_cursor.execute(
@@ -478,9 +505,17 @@ def fill_grid_transformation(proj_db_cursor):
param_uom_code = [None for i in range(max_n_params)]
iterator = proj_db_cursor.execute("SELECT sort_order, cop.parameter_code, parameter_name, parameter_value, param_value_file_ref, uom_code from epsg_coordoperationparam cop LEFT JOIN epsg_coordoperationparamvalue copv LEFT JOIN epsg_coordoperationparamusage copu ON cop.parameter_code = copv.parameter_code AND copu.parameter_code = copv.parameter_code WHERE copu.coord_op_method_code = copv.coord_op_method_code AND coord_op_code = ? AND copv.coord_op_method_code = ? ORDER BY sort_order", (code, method_code))
+ first = True
+ order_inc = 0
for (order, parameter_code, parameter_name, parameter_value, param_value_file_ref, uom_code) in iterator:
+ if first and order == 0:
+ # Some new records have sort_order starting at 0 rather than 1
+ # print(code, name, method_code, method_name, param_code, param_name, order)
+ order_inc = 1
+ order += order_inc
+ first = False
assert order <= max_n_params
- assert order == expected_order
+ assert order == expected_order, (code, name, method_code, method_name, param_code, param_name, order)
if parameter_value is not None:
assert param_value_file_ref is None or len(param_value_file_ref) == 0, (order, parameter_code, parameter_name, parameter_value, param_value_file_ref, uom_code)
if param_value_file_ref is not None and len(param_value_file_ref) != 0:
@@ -493,7 +528,7 @@ def fill_grid_transformation(proj_db_cursor):
expected_order += 1
n_params = expected_order - 1
- assert param_code[0] in (1050, 8656, 8657, 8666, 8732, 8727), (code, param_code[0])
+ assert param_code[0] in (1048, 1050, 8656, 8657, 8666, 8732, 8727), (code, param_code[0])
grid2_param_auth_name = None
grid2_param_code = None
@@ -520,7 +555,7 @@ def fill_grid_transformation(proj_db_cursor):
# 1083: Geog3D to Geog2D+Vertical (AUSGeoid v2)
# 1084: Vertical Offset by Grid Interpolation (gtx)
# 1085: Vertical Offset by Grid Interpolation (asc)
- elif method_code in (1071, 1080, 1081, 1083, 1084, 1085) and n_params == 2:
+ elif method_code in (1071, 1080, 1081, 1083, 1084, 1085, 1088) and n_params == 2:
assert param_code[1] == 1048, (code, method_code, param_code[1])
interpolation_crs_auth_name = EPSG_AUTHORITY
interpolation_crs_code = str(int(param_value[1])) # needed to avoid codes like XXXX.0
diff --git a/src/iso19111/operation/transformation.cpp b/src/iso19111/operation/transformation.cpp
index fec821a1..45e1d9af 100644
--- a/src/iso19111/operation/transformation.cpp
+++ b/src/iso19111/operation/transformation.cpp
@@ -1992,6 +1992,7 @@ isGeographic3DToGravityRelatedHeight(const OperationMethodNNPtr &method,
"1048", // Geographic3D to GravityRelatedHeight (Ausgeoid v2)
"1050", // Geographic3D to GravityRelatedHeight (CI)
"1059", // Geographic3D to GravityRelatedHeight (PNG)
+ "1088", // Geog3D to Geog2D+GravityRelatedHeight (gtx)
"1060", // Geographic3D to GravityRelatedHeight (CGG2013)
"1072", // Geographic3D to GravityRelatedHeight (OSGM15-Ire)
"1073", // Geographic3D to GravityRelatedHeight (IGN2009)
diff --git a/test/cli/td_out.dist b/test/cli/td_out.dist
index 6bad8e57..5c9b18d3 100644
--- a/test/cli/td_out.dist
+++ b/test/cli/td_out.dist
@@ -7,17 +7,12 @@ As above, but without ntv1 everything goes through conus file.
111d00'00.000"W 44d00'00.000"N 0.0 111d0'2.788"W 43d59'59.725"N 0.000
111d00'00.000"W 39d00'00.000"N 0.0 111d0'2.604"W 38d59'59.912"N 0.000
##############################################################
-Test --area Canada NAD27 NAD83 (using ntv1_can)
-43d59'59.732"N 111d0'3.208"W 0.000
-* * inf
-##############################################################
-Test --bbox -141.01,40.04,-47.74,86.46 NAD27 NAD83 (using ntv1_can)
-43d59'59.732"N 111d0'3.208"W 0.000
-* * inf
+Test --bbox -141.01,40.04,-47.74,83.17 NAD27 NAD83 (using NTv2)
+40d30'0.368"N 59d59'56.617"W 0.000
##############################################################
Test --area "USA - CONUS - onshore" NAD27 NAD83 (using conus)
43d59'59.725"N 111d0'2.788"W 0.000
-38d59'59.912"N 111d0'2.604"W 0.000
+* * inf
##############################################################
Test MD used where available
79d58'00.000"W 37d02'00.000"N 0.0 79d58'0.005"W 37d1'59.998"N 0.000
diff --git a/test/cli/testdatumfile b/test/cli/testdatumfile
index 5a013f12..e974d34c 100755
--- a/test/cli/testdatumfile
+++ b/test/cli/testdatumfile
@@ -60,24 +60,16 @@ $EXE +proj=latlong +ellps=clrk66 '+nadgrids="./dir with "" space/myconus"' \
EOF
echo "##############################################################" >> ${OUT}
-echo "Test --area Canada NAD27 NAD83 (using ntv1_can)" >> ${OUT}
-$EXE --area Canada NAD27 NAD83 >>${OUT} <<EOF
-44 -111
-39 -111
-EOF
-
-echo "##############################################################" >> ${OUT}
-echo "Test --bbox -141.01,40.04,-47.74,86.46 NAD27 NAD83 (using ntv1_can)" >> ${OUT}
-$EXE --bbox -141.01,40.04,-47.74,86.46 NAD27 NAD83 >>${OUT} <<EOF
-44 -111
-39 -111
+echo "Test --bbox -141.01,40.04,-47.74,83.17 NAD27 NAD83 (using NTv2)" >> ${OUT}
+$EXE --bbox -141.01,40.04,-47.74,83.17 NAD27 NAD83 >>${OUT} <<EOF
+40.5 -60
EOF
echo "##############################################################" >> ${OUT}
echo "Test --area \"USA - CONUS - onshore\" NAD27 NAD83 (using conus)" >> ${OUT}
$EXE --area "USA - CONUS - onshore" NAD27 NAD83 >>${OUT} <<EOF
44 -111
-39 -111
+40.5 -60
EOF
echo "##############################################################" >> ${OUT}
diff --git a/test/cli/testprojinfo_out.dist b/test/cli/testprojinfo_out.dist
index 829c914c..23a3e177 100644
--- a/test/cli/testprojinfo_out.dist
+++ b/test/cli/testprojinfo_out.dist
@@ -322,8 +322,8 @@ COORDINATEOPERATION["Ballpark geographic offset from NAD27 to NAD83",
Testing projinfo -s NAD27 -t NAD83 --grid-check none --spatial-test intersects --summary --hide-ballpark
Candidate operations found: 9
-DERIVED_FROM(EPSG):1312, NAD27 to NAD83 (3), 2.0 m, Canada - onshore and offshore - Alberta; British Columbia; Manitoba; New Brunswick; Newfoundland and Labrador; Northwest Territories; Nova Scotia; Nunavut; Ontario; Prince Edward Island; Quebec; Saskatchewan; Yukon.
DERIVED_FROM(EPSG):1313, NAD27 to NAD83 (4), 1.5 m, Canada - onshore - Alberta; British Columbia; Manitoba; New Brunswick; Newfoundland and Labrador; Northwest Territories; Nova Scotia; Nunavut; Ontario; Prince Edward Island; Quebec; Saskatchewan; Yukon; offshore east coast.
+DERIVED_FROM(EPSG):1312, NAD27 to NAD83 (3), 2.0 m, Canada - onshore - Alberta; British Columbia; Manitoba; New Brunswick; Newfoundland and Labrador; Northwest Territories; Nova Scotia; Nunavut; Ontario; Prince Edward Island; Quebec; Saskatchewan; Yukon; offshore east coast.
DERIVED_FROM(EPSG):1241, NAD27 to NAD83 (1), 0.15 m, United States (USA) - CONUS including EEZ -onshore and offshore - Alabama; Arizona; Arkansas; California; Colorado; Connecticut; Delaware; Florida; Georgia; Idaho; Illinois; Indiana; Iowa; Kansas; Kentucky; Louisiana; Maine; Maryland; Massachusetts; Michigan; Minnesota; Mississippi; Missouri; Montana; Nebraska; Nevada; New Hampshire; New Jersey; New Mexico; New York; North Carolina; North Dakota; Ohio; Oklahoma; Oregon; Pennsylvania; Rhode Island; South Carolina; South Dakota; Tennessee; Texas; Utah; Vermont; Virginia; Washington; West Virginia; Wisconsin; Wyoming. US Gulf of Mexico (GoM) OCS.
DERIVED_FROM(EPSG):1243, NAD27 to NAD83 (2), 0.5 m, United States (USA) - Alaska including EEZ.
DERIVED_FROM(EPSG):1573, NAD27 to NAD83 (6), 1.5 m, Canada - Quebec.
@@ -337,18 +337,18 @@ Candidate operations found: 10
-------------------------------------
Operation No. 1:
-DERIVED_FROM(EPSG):1312, NAD27 to NAD83 (3), 2.0 m, Canada - onshore and offshore - Alberta; British Columbia; Manitoba; New Brunswick; Newfoundland and Labrador; Northwest Territories; Nova Scotia; Nunavut; Ontario; Prince Edward Island; Quebec; Saskatchewan; Yukon.
+DERIVED_FROM(EPSG):1313, NAD27 to NAD83 (4), 1.5 m, Canada - onshore - Alberta; British Columbia; Manitoba; New Brunswick; Newfoundland and Labrador; Northwest Territories; Nova Scotia; Nunavut; Ontario; Prince Edward Island; Quebec; Saskatchewan; Yukon; offshore east coast.
PROJ string:
+proj=pipeline
+step +proj=axisswap +order=2,1
+step +proj=unitconvert +xy_in=deg +xy_out=rad
- +step +proj=hgridshift +grids=ca_nrc_ntv1_can.tif
+ +step +proj=hgridshift +grids=ca_nrc_ntv2_0.tif
+step +proj=unitconvert +xy_in=rad +xy_out=deg
+step +proj=axisswap +order=2,1
WKT2:2019 string:
-COORDINATEOPERATION["NAD27 to NAD83 (3)",
+COORDINATEOPERATION["NAD27 to NAD83 (4)",
SOURCECRS[
GEOGCRS["NAD27",
DATUM["North American Datum 1927",
@@ -380,30 +380,30 @@ COORDINATEOPERATION["NAD27 to NAD83 (3)",
ANGLEUNIT["degree",0.0174532925199433]],
ID["EPSG",4269]]],
METHOD["HORIZONTAL_SHIFT_GTIFF"],
- PARAMETERFILE["Latitude and longitude difference file","ca_nrc_ntv1_can.tif"],
- OPERATIONACCURACY[2.0],
+ PARAMETERFILE["Latitude and longitude difference file","ca_nrc_ntv2_0.tif"],
+ OPERATIONACCURACY[1.5],
USAGE[
- SCOPE["Historic record only - now superseded - see remarks."],
- AREA["Canada - onshore and offshore - Alberta; British Columbia; Manitoba; New Brunswick; Newfoundland and Labrador; Northwest Territories; Nova Scotia; Nunavut; Ontario; Prince Edward Island; Quebec; Saskatchewan; Yukon."],
- BBOX[40.04,-141.01,86.46,-47.74]],
- ID["DERIVED_FROM(EPSG)",1312],
- REMARK["Uses NTv1 method. Replaced in Quebec by code 1462 and elsewhere in 1997 by NTv2 (transformation code 1313). Input expects longitudes to be positive west; EPSG GeogCRS NAD27 (code 4267) and NAD83 (code 4269) have longitudes positive east."]]
+ SCOPE["Transformation of coordinates at 1m to 2m level of accuracy."],
+ AREA["Canada - onshore - Alberta; British Columbia; Manitoba; New Brunswick; Newfoundland and Labrador; Northwest Territories; Nova Scotia; Nunavut; Ontario; Prince Edward Island; Quebec; Saskatchewan; Yukon; offshore east coast."],
+ BBOX[40.04,-141.01,83.17,-47.74]],
+ ID["DERIVED_FROM(EPSG)",1313],
+ REMARK["Uses NTv2 data files. Replaces NTv1 (transformation code 1312) except in Quebec. Input expects longitudes to be positive west; EPSG GeogCRS NAD27 (code 4267) and (code 4269) have longitudes positive east. May be used as tfm to WGS 84 - see code 1693."]]
-------------------------------------
Operation No. 2:
-DERIVED_FROM(EPSG):1313, NAD27 to NAD83 (4), 1.5 m, Canada - onshore - Alberta; British Columbia; Manitoba; New Brunswick; Newfoundland and Labrador; Northwest Territories; Nova Scotia; Nunavut; Ontario; Prince Edward Island; Quebec; Saskatchewan; Yukon; offshore east coast.
+DERIVED_FROM(EPSG):1312, NAD27 to NAD83 (3), 2.0 m, Canada - onshore - Alberta; British Columbia; Manitoba; New Brunswick; Newfoundland and Labrador; Northwest Territories; Nova Scotia; Nunavut; Ontario; Prince Edward Island; Quebec; Saskatchewan; Yukon; offshore east coast.
PROJ string:
+proj=pipeline
+step +proj=axisswap +order=2,1
+step +proj=unitconvert +xy_in=deg +xy_out=rad
- +step +proj=hgridshift +grids=ca_nrc_ntv2_0.tif
+ +step +proj=hgridshift +grids=ca_nrc_ntv1_can.tif
+step +proj=unitconvert +xy_in=rad +xy_out=deg
+step +proj=axisswap +order=2,1
WKT2:2019 string:
-COORDINATEOPERATION["NAD27 to NAD83 (4)",
+COORDINATEOPERATION["NAD27 to NAD83 (3)",
SOURCECRS[
GEOGCRS["NAD27",
DATUM["North American Datum 1927",
@@ -435,14 +435,14 @@ COORDINATEOPERATION["NAD27 to NAD83 (4)",
ANGLEUNIT["degree",0.0174532925199433]],
ID["EPSG",4269]]],
METHOD["HORIZONTAL_SHIFT_GTIFF"],
- PARAMETERFILE["Latitude and longitude difference file","ca_nrc_ntv2_0.tif"],
- OPERATIONACCURACY[1.5],
+ PARAMETERFILE["Latitude and longitude difference file","ca_nrc_ntv1_can.tif"],
+ OPERATIONACCURACY[2.0],
USAGE[
- SCOPE["Transformation of coordinates at 1m to 2m level of accuracy."],
+ SCOPE["Historic record only - now superseded - see remarks."],
AREA["Canada - onshore - Alberta; British Columbia; Manitoba; New Brunswick; Newfoundland and Labrador; Northwest Territories; Nova Scotia; Nunavut; Ontario; Prince Edward Island; Quebec; Saskatchewan; Yukon; offshore east coast."],
BBOX[40.04,-141.01,83.17,-47.74]],
- ID["DERIVED_FROM(EPSG)",1313],
- REMARK["Uses NTv2 data files. Replaces NTv1 (transformation code 1312) except in Quebec. Input expects longitudes to be positive west; EPSG GeogCRS NAD27 (code 4267) and (code 4269) have longitudes positive east. May be used as tfm to WGS 84 - see code 1693."]]
+ ID["DERIVED_FROM(EPSG)",1312],
+ REMARK["Uses NTv1 method. Replaced in Quebec by code 1462 and elsewhere in 1997 by NTv2 (transformation code 1313). Input expects longitudes to be positive west; EPSG GeogCRS NAD27 (code 4267) and NAD83 (code 4269) have longitudes positive east."]]
-------------------------------------
Operation No. 3:
diff --git a/test/unit/test_c_api.cpp b/test/unit/test_c_api.cpp
index 60ad8f61..b67ff6d1 100644
--- a/test/unit/test_c_api.cpp
+++ b/test/unit/test_c_api.cpp
@@ -1440,7 +1440,7 @@ TEST_F(CApi, proj_create_operations) {
ObjectKeeper keeper_op(op);
EXPECT_FALSE(
proj_coordoperation_has_ballpark_transformation(m_ctxt, op));
- EXPECT_EQ(proj_get_name(op), std::string("NAD27 to NAD83 (3)"));
+ EXPECT_EQ(proj_get_name(op), std::string("NAD27 to NAD83 (4)"));
}
{
diff --git a/test/unit/test_operationfactory.cpp b/test/unit/test_operationfactory.cpp
index b71c3d66..15467a69 100644
--- a/test/unit/test_operationfactory.cpp
+++ b/test/unit/test_operationfactory.cpp
@@ -346,12 +346,12 @@ TEST(operation, geogCRS_to_geogCRS_context_ntv1_ntv2_ctable2) {
EXPECT_EQ(list[0]->exportToPROJString(PROJStringFormatter::create().get()),
"+proj=pipeline +step +proj=axisswap +order=2,1 +step "
"+proj=unitconvert +xy_in=deg +xy_out=rad +step +proj=hgridshift "
- "+grids=ca_nrc_ntv1_can.tif +step +proj=unitconvert +xy_in=rad "
+ "+grids=ca_nrc_ntv2_0.tif +step +proj=unitconvert +xy_in=rad "
"+xy_out=deg +step +proj=axisswap +order=2,1");
EXPECT_EQ(list[1]->exportToPROJString(PROJStringFormatter::create().get()),
"+proj=pipeline +step +proj=axisswap +order=2,1 +step "
"+proj=unitconvert +xy_in=deg +xy_out=rad +step +proj=hgridshift "
- "+grids=ca_nrc_ntv2_0.tif +step +proj=unitconvert +xy_in=rad "
+ "+grids=ca_nrc_ntv1_can.tif +step +proj=unitconvert +xy_in=rad "
"+xy_out=deg +step +proj=axisswap +order=2,1");
EXPECT_EQ(list[2]->exportToPROJString(PROJStringFormatter::create().get()),
"+proj=pipeline +step +proj=axisswap +order=2,1 +step "
@@ -730,8 +730,8 @@ TEST(operation, vertCRS_to_geogCRS_context) {
{
// Test actually the database where we derive records using the more
// classic 'Geographic3D to GravityRelatedHeight' method from
- // records using EPSG:9635
- //'Geog3D to Geog2D+GravityRelatedHeight (US .gtx)' method
+ // records using EPSG:1088
+ //'Geog3D to Geog2D+GravityRelatedHeight (gtx)' method
auto ctxt = CoordinateOperationContext::create(
AuthorityFactory::create(DatabaseContext::create(), std::string()),
nullptr, 0.0);