aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--data/Makefile.am2
-rw-r--r--data/sql/commit.sql6
-rw-r--r--data/sql/customizations.sql21
-rw-r--r--data/sql/esri.sql65
-rw-r--r--data/sql/grid_alternatives.sql2287
-rw-r--r--data/sql/grid_alternatives_generated_noaa.sql (renamed from data/sql/grid_alternatives_generated.sql)448
-rw-r--r--data/sql/ignf.sql240
-rw-r--r--data/sql/proj_db_table_defs.sql19
-rw-r--r--data/sql_filelist.cmake2
-rw-r--r--include/proj/io.hpp5
-rwxr-xr-xscripts/build_db_create_ignf_from_xml.py19
-rwxr-xr-xscripts/build_db_from_esri.py10
-rwxr-xr-xscripts/build_grid_alternatives_generated_noaa.py (renamed from scripts/build_grid_alternatives_generated.py)29
-rwxr-xr-xscripts/grid_checks.py162
-rw-r--r--src/filemanager.cpp146
-rw-r--r--src/iso19111/coordinateoperation.cpp74
-rw-r--r--src/iso19111/factory.cpp27
-rw-r--r--src/proj_constants.h2
-rw-r--r--test/cli/testprojinfo_out.dist43
-rw-r--r--test/unit/test_c_api.cpp16
-rw-r--r--test/unit/test_factory.cpp4
-rw-r--r--test/unit/test_network.cpp65
-rw-r--r--test/unit/test_operation.cpp168
23 files changed, 1067 insertions, 2793 deletions
diff --git a/data/Makefile.am b/data/Makefile.am
index 0f880aef..564bbeed 100644
--- a/data/Makefile.am
+++ b/data/Makefile.am
@@ -34,7 +34,7 @@ SQL_ORDERED_LIST = sql/begin.sql \
sql/esri.sql \
sql/ignf.sql \
sql/grid_alternatives.sql \
- sql/grid_alternatives_generated.sql \
+ sql/grid_alternatives_generated_noaa.sql \
sql/customizations.sql \
sql/commit.sql
diff --git a/data/sql/commit.sql b/data/sql/commit.sql
index b2bdc046..a3028586 100644
--- a/data/sql/commit.sql
+++ b/data/sql/commit.sql
@@ -133,9 +133,9 @@ FOR EACH ROW BEGIN
SELECT RAISE(ABORT, 'missing GEOID18 in geoid_model')
WHERE NOT EXISTS(SELECT 1 FROM geoid_model WHERE name = 'GEOID18');
- -- check presence of NZ height shift grids
- SELECT RAISE(ABORT, 'missing NZ height shift grids')
- WHERE NOT EXISTS(SELECT 1 FROM grid_alternatives WHERE original_grid_name = 'auckht1946-nzvd2016.gtx');
+ -- check presence of au_ga_AUSGeoid98.tif
+ SELECT RAISE(ABORT, 'missing au_ga_AUSGeoid98.tif')
+ WHERE NOT EXISTS(SELECT 1 FROM grid_alternatives WHERE proj_grid_name = 'au_ga_AUSGeoid98.tif');
END;
INSERT INTO dummy DEFAULT VALUES;
diff --git a/data/sql/customizations.sql b/data/sql/customizations.sql
index 503a1fe0..82328f3c 100644
--- a/data/sql/customizations.sql
+++ b/data/sql/customizations.sql
@@ -1,5 +1,26 @@
-- This file is hand generated.
+-- grid_alternatives entries created from existing ones
+
+INSERT INTO grid_alternatives(original_grid_name,
+ proj_grid_name,
+ old_proj_grid_name,
+ proj_grid_format,
+ proj_method,
+ inverse_direction,
+ package_name,
+ url, direct_download, open_license, directory)
+ SELECT grid_name,
+ 'au_ga_AUSGeoid98.tif',
+ 'AUSGeoid98.gtx',
+ 'GTiff',
+ 'geoid_like',
+ 0,
+ NULL,
+ 'https://cdn.proj.org/au_ga_AUSGeoid98.tif', 1, 1, NULL FROM grid_transformation WHERE
+ grid_name LIKE '%DAT.htm' AND name LIKE 'GDA94 to AHD height%';
+
+
INSERT INTO "geodetic_crs" VALUES('OGC','CRS84','WGS 84 (CRS84)',NULL,NULL,'geographic 2D','EPSG','6424','EPSG','6326','EPSG','1262',NULL,0);
INSERT INTO "other_transformation" VALUES('PROJ','CRS84_TO_EPSG_4326','OGC:CRS84 to WGS 84',NULL,NULL,'EPSG','9843','Axis Order Reversal (2D)','OGC','CRS84','EPSG','4326','EPSG','1262',0.0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
diff --git a/data/sql/esri.sql b/data/sql/esri.sql
index fd03cf22..b793e60f 100644
--- a/data/sql/esri.sql
+++ b/data/sql/esri.sql
@@ -12069,14 +12069,15 @@ INSERT INTO "helmert_transformation" VALUES('ESRI','108088','Saint_Pierre_et_Miq
INSERT INTO "helmert_transformation" VALUES('ESRI','108089','OSGB_1936_To_WGS_1984_8_BAD_DX',NULL,NULL,'EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4277','EPSG','4326','EPSG','3893',5.0,370.396,-108.938,435.682,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "helmert_transformation" VALUES('ESRI','108094','MGI_Ferro_To_WGS_1984',NULL,NULL,'EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4805','EPSG','4326','EPSG','2370',5.0,682.0,-203.0,480.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "helmert_transformation" VALUES('ESRI','108095','MGI_To_WGS_1984_2',NULL,NULL,'EPSG','9606','Position Vector transformation (geog2D domain)','EPSG','4312','EPSG','4326','EPSG','1037',1.5,577.326,90.129,463.919,'EPSG','9001',5.1365988,1.4742,5.2970436,'EPSG','9104',2.4232,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
-INSERT INTO "helmert_transformation" VALUES('ESRI','108096','Chos_Malal_1914_To_WGS_1984',NULL,NULL,'EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4160','EPSG','4326','EPSG','2325',10.5,5.5,176.7,141.4,'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,0);
+INSERT INTO "area" VALUES('ESRI','147','Argentina - Neuquen province Chos Malal area','Argentina - Neuquen province Chos Malal area',-37.5,-36.14,-70.5,-70.03,0);
+INSERT INTO "helmert_transformation" VALUES('ESRI','108096','Chos_Malal_1914_To_WGS_1984',NULL,NULL,'EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4160','EPSG','4326','ESRI','147',10.5,5.5,176.7,141.4,'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,0);
INSERT INTO "helmert_transformation" VALUES('ESRI','108097','Indian_1960_To_WGS_1984_1',NULL,NULL,'EPSG','9606','Position Vector transformation (geog2D domain)','EPSG','4131','EPSG','4326','EPSG','1495',27.0,199.0,931.0,318.9,'EPSG','9001',0.0,0.0,0.814,'EPSG','9104',-0.38,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "helmert_transformation" VALUES('ESRI','108099','Palestine_1923_To_WGS_1984_2',NULL,NULL,'EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4281','EPSG','4326','EPSG','2603',3.5,-229.0,-67.0,277.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "helmert_transformation" VALUES('ESRI','108102','NTF_Paris_To_RGF_1993_1',NULL,NULL,'EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4807','EPSG','4171','EPSG','3694',2.0,-168.0,-60.0,320.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "helmert_transformation" VALUES('ESRI','108106','Tokyo_To_WGS_1984_2001',NULL,NULL,'EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4301','EPSG','4326','EPSG','3957',4.0,-147.54,507.26,680.47,'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,0);
INSERT INTO "helmert_transformation" VALUES('ESRI','108107','JGD_2000_To_WGS_1984',NULL,NULL,'EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4612','EPSG','4326','EPSG','1135',4.0,-1.126,-0.077,-0.037,'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,0);
-INSERT INTO "area" VALUES('ESRI','147','Japan - NTv2','Japan - NTv2',20.0,47.0,121.0,154.0,0);
-INSERT INTO "grid_transformation" VALUES('ESRI','108109','Tokyo_To_WGS_1984_NTv2',NULL,NULL,'EPSG','9615','NTv2','EPSG','4301','EPSG','4326','ESRI','147',1.0,'EPSG','8656','Latitude and longitude difference file','japan/tky2jgd',NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
+INSERT INTO "area" VALUES('ESRI','148','Japan - NTv2','Japan - NTv2',20.0,47.0,121.0,154.0,0);
+INSERT INTO "grid_transformation" VALUES('ESRI','108109','Tokyo_To_WGS_1984_NTv2',NULL,NULL,'EPSG','9615','NTv2','EPSG','4301','EPSG','4326','ESRI','148',1.0,'EPSG','8656','Latitude and longitude difference file','japan/tky2jgd',NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "helmert_transformation" VALUES('ESRI','108110','Datum_73_To_WGS_1984_1',NULL,NULL,'EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4274','EPSG','4326','EPSG','1294',5.0,-223.237,110.193,36.649,'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,0);
INSERT INTO "helmert_transformation" VALUES('ESRI','108111','ED_1950_To_WGS_1984_PT3',NULL,NULL,'EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4230','EPSG','4326','EPSG','1294',999.0,-86.277,-108.879,-120.181,'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,0);
INSERT INTO "helmert_transformation" VALUES('ESRI','108112','Graciosa_Base_SW_1948_To_WGS_1984_1',NULL,NULL,'EPSG','9603','Geocentric translations (geog2D domain)','ESRI','37241','EPSG','4326','EPSG','1301',5.0,-106.226,166.366,-37.893,'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,0);
@@ -12099,12 +12100,12 @@ INSERT INTO "helmert_transformation" VALUES('ESRI','108128','CGRS_1993_To_ETRS_1
INSERT INTO "helmert_transformation" VALUES('ESRI','108129','CGRS_1993_To_WGS_1984',NULL,NULL,'EPSG','9606','Position Vector transformation (geog2D domain)','EPSG','6311','EPSG','4326','EPSG','3236',1.0,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,NULL,0);
INSERT INTO "helmert_transformation" VALUES('ESRI','108130','NTF_To_RGF_1993_1',NULL,NULL,'EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4275','EPSG','4171','EPSG','3694',2.0,-168.0,-60.0,320.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "grid_transformation" VALUES('ESRI','108136','ED_1950_To_WGS_1984_NTv2_Peninsula',NULL,NULL,'EPSG','9615','NTv2','EPSG','4230','EPSG','4326','ESRI','145',1.0,'EPSG','8656','Latitude and longitude difference file','spain/peninsula',NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
-INSERT INTO "area" VALUES('ESRI','148','Northern Marianas - Rota','Northern Marianas - Rota',14.0,14.75,145.0,146.0,0);
-INSERT INTO "helmert_transformation" VALUES('ESRI','108137','Guam_1963_To_HARN_Marianas_Rota',NULL,NULL,'EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4675','EPSG','4152','ESRI','148',999.0,-96.234,-252.601,258.222,'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,0);
-INSERT INTO "area" VALUES('ESRI','149','Northern Marianas - Saipan','Northern Marianas - Saipan',14.75,15.5,145.0,146.0,0);
-INSERT INTO "helmert_transformation" VALUES('ESRI','108138','Guam_1963_To_HARN_Marianas_Saipan',NULL,NULL,'EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4675','EPSG','4152','ESRI','149',999.0,-91.766,-255.817,255.702,'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,0);
-INSERT INTO "area" VALUES('ESRI','150','Northern Marianas - Tinian and Aguijan','Northern Marianas - Tinian and Aguijan',14.75,15.13333333333333,145.5,145.75,0);
-INSERT INTO "helmert_transformation" VALUES('ESRI','108139','Guam_1963_To_HARN_Marianas_Tinian_Aguijan',NULL,NULL,'EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4675','EPSG','4152','ESRI','150',999.0,-93.062,-255.309,256.696,'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,0);
+INSERT INTO "area" VALUES('ESRI','149','Northern Marianas - Rota','Northern Marianas - Rota',14.0,14.75,145.0,146.0,0);
+INSERT INTO "helmert_transformation" VALUES('ESRI','108137','Guam_1963_To_HARN_Marianas_Rota',NULL,NULL,'EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4675','EPSG','4152','ESRI','149',999.0,-96.234,-252.601,258.222,'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,0);
+INSERT INTO "area" VALUES('ESRI','150','Northern Marianas - Saipan','Northern Marianas - Saipan',14.75,15.5,145.0,146.0,0);
+INSERT INTO "helmert_transformation" VALUES('ESRI','108138','Guam_1963_To_HARN_Marianas_Saipan',NULL,NULL,'EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4675','EPSG','4152','ESRI','150',999.0,-91.766,-255.817,255.702,'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,0);
+INSERT INTO "area" VALUES('ESRI','151','Northern Marianas - Tinian and Aguijan','Northern Marianas - Tinian and Aguijan',14.75,15.13333333333333,145.5,145.75,0);
+INSERT INTO "helmert_transformation" VALUES('ESRI','108139','Guam_1963_To_HARN_Marianas_Tinian_Aguijan',NULL,NULL,'EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4675','EPSG','4152','ESRI','151',999.0,-93.062,-255.309,256.696,'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,0);
INSERT INTO "helmert_transformation" VALUES('ESRI','108145','NGO_1948_Oslo_To_WGS_1984',NULL,NULL,'EPSG','9607','Coordinate Frame rotation (geog2D domain)','EPSG','4817','EPSG','4326','EPSG','1352',5.0,319.08,37.81,463.57,'EPSG','9001',-6.2970588,1.2903926,5.712916338,'EPSG','9104',10.819,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "helmert_transformation" VALUES('ESRI','108146','NGO_1948_Oslo_To_ETRS_1989_1',NULL,NULL,'EPSG','9606','Position Vector transformation (geog2D domain)','EPSG','4817','EPSG','4258','EPSG','1352',3.0,278.3,93.0,474.5,'EPSG','9001',7.889,0.05,-6.61,'EPSG','9104',6.21,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "helmert_transformation" VALUES('ESRI','108147','NGO_1948_Oslo_To_WGS_1984_1',NULL,NULL,'EPSG','9606','Position Vector transformation (geog2D domain)','EPSG','4817','EPSG','4326','EPSG','1352',3.0,278.3,93.0,474.5,'EPSG','9001',7.889,0.05,-6.61,'EPSG','9104',6.21,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
@@ -12132,17 +12133,17 @@ INSERT INTO "helmert_transformation" VALUES('ESRI','108170','Porto_Santo_1936_To
INSERT INTO "helmert_transformation" VALUES('ESRI','108171','Porto_Santo_1936_To_WGS_1984_3_3par',NULL,NULL,'EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4615','EPSG','4326','EPSG','3680',0.3,-503.3,-247.574,313.025,'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,0);
INSERT INTO "helmert_transformation" VALUES('ESRI','108172','Sao_Braz_To_PTRA08_1_7par',NULL,NULL,'EPSG','9606','Position Vector transformation (geog2D domain)','ESRI','37249','EPSG','5013','EPSG','1345',0.025,-269.089,186.247,155.667,'EPSG','9001',2.005,3.606,-0.366,'EPSG','9104',0.097,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "helmert_transformation" VALUES('ESRI','108173','Sao_Braz_To_PTRA08_2_7par',NULL,NULL,'EPSG','9606','Position Vector transformation (geog2D domain)','ESRI','37249','EPSG','5013','EPSG','2871',0.03,-249.507,179.302,119.92,'EPSG','9001',1.406,2.423,-0.479,'EPSG','9104',0.952,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
-INSERT INTO "area" VALUES('ESRI','151','Azores - Santa Maria Island','Azores - Santa Maria Island',36.9,37.1,-25.25,-24.95,0);
-INSERT INTO "helmert_transformation" VALUES('ESRI','108174','Sao_Braz_To_PTRA08_3_7par',NULL,NULL,'EPSG','9606','Position Vector transformation (geog2D domain)','ESRI','37249','EPSG','5013','ESRI','151',0.01,-440.296,58.548,296.265,'EPSG','9001',1.128,10.202,4.559,'EPSG','9104',-0.438,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
+INSERT INTO "area" VALUES('ESRI','152','Azores - Santa Maria Island','Azores - Santa Maria Island',36.9,37.1,-25.25,-24.95,0);
+INSERT INTO "helmert_transformation" VALUES('ESRI','108174','Sao_Braz_To_PTRA08_3_7par',NULL,NULL,'EPSG','9606','Position Vector transformation (geog2D domain)','ESRI','37249','EPSG','5013','ESRI','152',0.01,-440.296,58.548,296.265,'EPSG','9001',1.128,10.202,4.559,'EPSG','9104',-0.438,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "helmert_transformation" VALUES('ESRI','108175','Sao_Braz_To_PTRA08_1_3par',NULL,NULL,'EPSG','9603','Geocentric translations (geog2D domain)','ESRI','37249','EPSG','5013','EPSG','1345',0.8,-204.926,140.353,55.063,'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,0);
INSERT INTO "helmert_transformation" VALUES('ESRI','108176','Sao_Braz_To_PTRA08_2_3par',NULL,NULL,'EPSG','9603','Geocentric translations (geog2D domain)','ESRI','37249','EPSG','5013','EPSG','2871',0.8,-204.519,140.159,55.404,'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,0);
-INSERT INTO "helmert_transformation" VALUES('ESRI','108177','Sao_Braz_To_PTRA08_3_3par',NULL,NULL,'EPSG','9603','Geocentric translations (geog2D domain)','ESRI','37249','EPSG','5013','ESRI','151',0.8,-205.808,140.771,54.326,'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,0);
+INSERT INTO "helmert_transformation" VALUES('ESRI','108177','Sao_Braz_To_PTRA08_3_3par',NULL,NULL,'EPSG','9603','Geocentric translations (geog2D domain)','ESRI','37249','EPSG','5013','ESRI','152',0.8,-205.808,140.771,54.326,'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,0);
INSERT INTO "helmert_transformation" VALUES('ESRI','108178','Sao_Braz_To_WGS_1984_1_7par',NULL,NULL,'EPSG','9606','Position Vector transformation (geog2D domain)','ESRI','37249','EPSG','4326','EPSG','1345',0.035,-269.089,186.247,155.667,'EPSG','9001',2.005,3.606,-0.366,'EPSG','9104',0.097,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "helmert_transformation" VALUES('ESRI','108179','Sao_Braz_To_WGS_1984_2_7par',NULL,NULL,'EPSG','9606','Position Vector transformation (geog2D domain)','ESRI','37249','EPSG','4326','EPSG','2871',0.04,-249.507,179.302,119.92,'EPSG','9001',1.406,2.423,-0.479,'EPSG','9104',0.952,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
-INSERT INTO "helmert_transformation" VALUES('ESRI','108180','Sao_Braz_To_WGS_1984_3_7par',NULL,NULL,'EPSG','9606','Position Vector transformation (geog2D domain)','ESRI','37249','EPSG','4326','ESRI','151',0.03,-440.296,58.548,296.265,'EPSG','9001',1.128,10.202,4.559,'EPSG','9104',-0.438,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
+INSERT INTO "helmert_transformation" VALUES('ESRI','108180','Sao_Braz_To_WGS_1984_3_7par',NULL,NULL,'EPSG','9606','Position Vector transformation (geog2D domain)','ESRI','37249','EPSG','4326','ESRI','152',0.03,-440.296,58.548,296.265,'EPSG','9001',1.128,10.202,4.559,'EPSG','9104',-0.438,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "helmert_transformation" VALUES('ESRI','108181','Sao_Braz_To_WGS_1984_1_3par',NULL,NULL,'EPSG','9603','Geocentric translations (geog2D domain)','ESRI','37249','EPSG','4326','EPSG','1345',0.9,-204.926,140.353,55.063,'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,0);
INSERT INTO "helmert_transformation" VALUES('ESRI','108182','Sao_Braz_To_WGS_1984_2_3par',NULL,NULL,'EPSG','9603','Geocentric translations (geog2D domain)','ESRI','37249','EPSG','4326','EPSG','2871',0.9,-204.519,140.159,55.404,'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,0);
-INSERT INTO "helmert_transformation" VALUES('ESRI','108183','Sao_Braz_To_WGS_1984_3_3par',NULL,NULL,'EPSG','9603','Geocentric translations (geog2D domain)','ESRI','37249','EPSG','4326','ESRI','151',0.9,-205.808,140.771,54.326,'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,0);
+INSERT INTO "helmert_transformation" VALUES('ESRI','108183','Sao_Braz_To_WGS_1984_3_3par',NULL,NULL,'EPSG','9603','Geocentric translations (geog2D domain)','ESRI','37249','EPSG','4326','ESRI','152',0.9,-205.808,140.771,54.326,'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,0);
INSERT INTO "helmert_transformation" VALUES('ESRI','108184','Graciosa_1948_To_PTRA08_1_7par',NULL,NULL,'EPSG','9606','Position Vector transformation (geog2D domain)','ESRI','37241','EPSG','5013','EPSG','1301',0.18,-185.391,122.266,35.989,'EPSG','9001',0.12,3.18,2.046,'EPSG','9104',-1.053,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "helmert_transformation" VALUES('ESRI','108185','Graciosa_1948_To_PTRA08_2_7par',NULL,NULL,'EPSG','9606','Position Vector transformation (geog2D domain)','ESRI','37241','EPSG','5013','EPSG','2873',0.005,-76.822,257.457,-12.817,'EPSG','9001',2.136,-0.033,-2.392,'EPSG','9104',-0.031,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "helmert_transformation" VALUES('ESRI','108186','Graciosa_1948_To_PTRA08_3_7par',NULL,NULL,'EPSG','9606','Position Vector transformation (geog2D domain)','ESRI','37241','EPSG','5013','EPSG','3681',0.004,-210.371,49.768,0.808,'EPSG','9001',-2.036,3.046,3.709,'EPSG','9104',0.934,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
@@ -12168,9 +12169,9 @@ INSERT INTO "helmert_transformation" VALUES('ESRI','108210','DHDN_To_WGS_1984_7x
INSERT INTO "helmert_transformation" VALUES('ESRI','108211','WGS_1984_To_Observatorio_Meteorologico_1965_1',NULL,NULL,'EPSG','9607','Coordinate Frame rotation (geog2D domain)','EPSG','4326','ESRI','104126','EPSG','1147',999.0,148.635396,339.470115,157.265381,'EPSG','9001',32.87685,-76.963371,-32.622853,'EPSG','9104',-8.204889,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "helmert_transformation" VALUES('ESRI','108212','SWEREF99_To_RT90',NULL,NULL,'EPSG','9607','Coordinate Frame rotation (geog2D domain)','EPSG','4619','EPSG','4124','EPSG','1225',999.0,-414.1055246174168,-41.3265500041888,-603.0582474221075,'EPSG','9001',-0.8551163376151379,2.141317405481035,-7.022729828586432,'EPSG','9104',0.0,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "helmert_transformation" VALUES('ESRI','108213','WGS_1984_To_RT90',NULL,NULL,'EPSG','9607','Coordinate Frame rotation (geog2D domain)','EPSG','4326','EPSG','4124','EPSG','1225',999.0,-414.0978567149,-41.3381489658,-603.0627177516,'EPSG','9001',-0.8550434314,2.1413465185,-7.0227209516,'EPSG','9104',0.0,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
-INSERT INTO "area" VALUES('ESRI','152','Iceland - NADCON','Iceland - NADCON',63.2700005,66.6600003,-24.6499996,-13.2499999,0);
-INSERT INTO "grid_transformation" VALUES('ESRI','108214','ISN_1993_To_ISN_2004',NULL,NULL,'EPSG','9615','NTv2','EPSG','4659','EPSG','5324','ESRI','152',0.05,'EPSG','8656','Latitude and longitude difference file','icegrid2004',NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
-INSERT INTO "grid_transformation" VALUES('ESRI','108216','ISN_2004_To_ISN_1993',NULL,NULL,'EPSG','9615','NTv2','EPSG','5324','EPSG','4659','ESRI','152',0.05,'EPSG','8656','Latitude and longitude difference file','ICEGRID93',NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
+INSERT INTO "area" VALUES('ESRI','153','Iceland - NADCON','Iceland - NADCON',63.2700005,66.6600003,-24.6499996,-13.2499999,0);
+INSERT INTO "grid_transformation" VALUES('ESRI','108214','ISN_1993_To_ISN_2004',NULL,NULL,'EPSG','9615','NTv2','EPSG','4659','EPSG','5324','ESRI','153',0.05,'EPSG','8656','Latitude and longitude difference file','icegrid2004',NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
+INSERT INTO "grid_transformation" VALUES('ESRI','108216','ISN_2004_To_ISN_1993',NULL,NULL,'EPSG','9615','NTv2','EPSG','5324','EPSG','4659','ESRI','153',0.05,'EPSG','8656','Latitude and longitude difference file','ICEGRID93',NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "helmert_transformation" VALUES('ESRI','108217','La_Canoa_To_SIRGAS',NULL,NULL,'EPSG','9636','Molodensky-Badekas (CF geog2D domain)','EPSG','4247','EPSG','4170','EPSG','3327',15.0,-270.933,115.599,-360.226,'EPSG','9001',-5.266,-1.238,2.381,'EPSG','9104',-5.109,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,2464351.594,-5783466.613,974809.808,'EPSG','9001',NULL,0);
INSERT INTO "helmert_transformation" VALUES('ESRI','108220','Palestine_1923_To_WGS_1984_1X',NULL,NULL,'EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4281','EPSG','4326','EPSG','1126',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,NULL,0);
INSERT INTO "helmert_transformation" VALUES('ESRI','108222','Datum_Lisboa_Hayford_To_Datum_73_1',NULL,NULL,'EPSG','9603','Geocentric translations (geog2D domain)','ESRI','104106','EPSG','4274','EPSG','1294',5.0,-80.809,-170.77,66.991,'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,0);
@@ -12224,19 +12225,19 @@ INSERT INTO "helmert_transformation" VALUES('ESRI','108294','Graciosa_1948_To_WG
INSERT INTO "helmert_transformation" VALUES('ESRI','108295','Graciosa_1948_To_WGS_1984_4_3par',NULL,NULL,'EPSG','9603','Geocentric translations (geog2D domain)','ESRI','37241','EPSG','4326','EPSG','2874',0.3,-105.531,166.39,-37.326,'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,0);
INSERT INTO "helmert_transformation" VALUES('ESRI','108296','Graciosa_1948_To_WGS_1984_5_3par',NULL,NULL,'EPSG','9603','Geocentric translations (geog2D domain)','ESRI','37241','EPSG','4326','EPSG','2875',0.9,-105.756,165.972,-37.313,'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,0);
INSERT INTO "helmert_transformation" VALUES('ESRI','108297','Graciosa_1948_To_WGS_1984_6_3par',NULL,NULL,'EPSG','9603','Geocentric translations (geog2D domain)','ESRI','37241','EPSG','4326','EPSG','2872',0.2,-106.235,166.236,-37.768,'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,0);
-INSERT INTO "area" VALUES('ESRI','153','USA - Idaho and Montana','USA - Idaho and Montana',41.0,49.38,-119.0,-104.0,0);
-INSERT INTO "grid_transformation" VALUES('ESRI','108298','NAD_1983_To_HARN_Montana_Idaho',NULL,NULL,'EPSG','9615','NTv2','EPSG','4269','EPSG','4152','ESRI','153',0.05,'EPSG','8656','Latitude and longitude difference file','imhpgn',NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
-INSERT INTO "helmert_transformation" VALUES('ESRI','108299','Guam_1963_To_WGS_1984_Saipan',NULL,NULL,'EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4675','EPSG','4326','ESRI','149',999.0,59.935,118.4,-10.871,'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,0);
-INSERT INTO "helmert_transformation" VALUES('ESRI','108300','NAD_1983_HARN_To_WGS_1984_Saipan',NULL,NULL,'EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4152','EPSG','4326','ESRI','149',999.0,1.2,0.4,0.55,'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,0);
+INSERT INTO "area" VALUES('ESRI','154','USA - Idaho and Montana','USA - Idaho and Montana',41.0,49.38,-119.0,-104.0,0);
+INSERT INTO "grid_transformation" VALUES('ESRI','108298','NAD_1983_To_HARN_Montana_Idaho',NULL,NULL,'EPSG','9615','NTv2','EPSG','4269','EPSG','4152','ESRI','154',0.05,'EPSG','8656','Latitude and longitude difference file','imhpgn',NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
+INSERT INTO "helmert_transformation" VALUES('ESRI','108299','Guam_1963_To_WGS_1984_Saipan',NULL,NULL,'EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4675','EPSG','4326','ESRI','150',999.0,59.935,118.4,-10.871,'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,0);
+INSERT INTO "helmert_transformation" VALUES('ESRI','108300','NAD_1983_HARN_To_WGS_1984_Saipan',NULL,NULL,'EPSG','9603','Geocentric translations (geog2D domain)','EPSG','4152','EPSG','4326','ESRI','150',999.0,1.2,0.4,0.55,'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,0);
INSERT INTO "grid_transformation" VALUES('ESRI','108302','ATS_1977_To_NAD_1983_CSRS_NTv2_Maritimes',NULL,NULL,'EPSG','9615','NTv2','EPSG','4122','EPSG','4617','EPSG','1283',999.0,'EPSG','8656','Latitude and longitude difference file','canada/GS7783',NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "helmert_transformation" VALUES('ESRI','108303','Pohnpei_To_WGS_1984',NULL,NULL,'EPSG','9603','Geocentric translations (geog2D domain)','ESRI','104109','EPSG','4326','EPSG','1161',999.0,-89.121,-348.182,260.871,'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,0);
-INSERT INTO "grid_transformation" VALUES('ESRI','108304','Guam_1963_To_NAD_1983_HARN_Saipan',NULL,NULL,'EPSG','9615','NTv2','EPSG','4675','EPSG','4152','ESRI','149',999.0,'EPSG','8656','Latitude and longitude difference file','c1hpgn',NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
-INSERT INTO grid_alternatives VALUES ('c1hpgn', 'c1hpgn.gsb', 'NTv2', 'hgridshift', 0, 'proj-datumgrid-north-america', NULL, NULL, NULL, NULL);
-INSERT INTO "grid_transformation" VALUES('ESRI','108305','Guam_1963_To_NAD_1983_HARN_Rota',NULL,NULL,'EPSG','9615','NTv2','EPSG','4675','EPSG','4152','ESRI','148',999.0,'EPSG','8656','Latitude and longitude difference file','c2hpgn',NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
-INSERT INTO grid_alternatives VALUES ('c2hpgn', 'c2hpgn.gsb', 'NTv2', 'hgridshift', 0, 'proj-datumgrid-north-america', NULL, NULL, NULL, NULL);
+INSERT INTO "grid_transformation" VALUES('ESRI','108304','Guam_1963_To_NAD_1983_HARN_Saipan',NULL,NULL,'EPSG','9615','NTv2','EPSG','4675','EPSG','4152','ESRI','150',999.0,'EPSG','8656','Latitude and longitude difference file','c1hpgn',NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
+INSERT INTO grid_alternatives VALUES ('c1hpgn', 'us_noaa_c1hpgn.tif', 'c1hpgn.gsb', 'GTiff', 'hgridshift', 0, NULL, 'https://cdn.proj.org/us_noaa_c1hpgn.tif', 1, 1, NULL);
+INSERT INTO "grid_transformation" VALUES('ESRI','108305','Guam_1963_To_NAD_1983_HARN_Rota',NULL,NULL,'EPSG','9615','NTv2','EPSG','4675','EPSG','4152','ESRI','149',999.0,'EPSG','8656','Latitude and longitude difference file','c2hpgn',NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
+INSERT INTO grid_alternatives VALUES ('c2hpgn', 'us_noaa_c2hpgn.tif', 'c2hpgn.gsb', 'GTiff', 'hgridshift', 0, NULL, 'https://cdn.proj.org/us_noaa_c2hpgn.tif', 1, 1, NULL);
INSERT INTO "grid_transformation" VALUES('ESRI','108306','Old_Hawaiian_To_NAD_1983_HARN_Hawaii',NULL,NULL,'EPSG','9615','NTv2','EPSG','4135','EPSG','4152','EPSG','1334',0.05,'EPSG','8656','Latitude and longitude difference file','ohdhihpgn',NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
-INSERT INTO "area" VALUES('ESRI','154','Pacific - USA interests Pacific and Mariana plates','Pacific - USA interests Pacific and Mariana plates',-17.56,31.8,129.48,-151.27,0);
-INSERT INTO "helmert_transformation" VALUES('ESRI','108307','NAD_1983_HARN_PACP00_MARP00_To_WGS_1984',NULL,NULL,'EPSG','9607','Coordinate Frame rotation (geog2D domain)','EPSG','4152','EPSG','4326','ESRI','154',999.0,-0.9102,2.0141,0.5602,'EPSG','9001',-0.029039,-0.010065,-0.010101,'EPSG','9104',0.0,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
+INSERT INTO "area" VALUES('ESRI','155','Pacific - USA interests Pacific and Mariana plates','Pacific - USA interests Pacific and Mariana plates',-17.56,31.8,129.48,-151.27,0);
+INSERT INTO "helmert_transformation" VALUES('ESRI','108307','NAD_1983_HARN_PACP00_MARP00_To_WGS_1984',NULL,NULL,'EPSG','9607','Coordinate Frame rotation (geog2D domain)','EPSG','4152','EPSG','4326','ESRI','155',999.0,-0.9102,2.0141,0.5602,'EPSG','9001',-0.029039,-0.010065,-0.010101,'EPSG','9104',0.0,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "helmert_transformation" VALUES('ESRI','108330','Old_Hawaiian_Intl_1924_To_WGS_1984_Mean',NULL,NULL,'EPSG','9603','Geocentric translations (geog2D domain)','ESRI','104138','EPSG','4326','EPSG','1334',38.0,201.0,-228.0,-346.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "helmert_transformation" VALUES('ESRI','108331','Old_Hawaiian_Intl_1924_To_WGS_1984_Hawaii',NULL,NULL,'EPSG','9603','Geocentric translations (geog2D domain)','ESRI','104138','EPSG','4326','EPSG','1546',44.0,229.0,-222.0,-348.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "helmert_transformation" VALUES('ESRI','108332','Old_Hawaiian_Intl_1924_To_WGS_1984_Kauai',NULL,NULL,'EPSG','9603','Geocentric translations (geog2D domain)','ESRI','104138','EPSG','4326','EPSG','1549',35.0,185.0,-233.0,-337.0,'EPSG','9001',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
@@ -12246,17 +12247,17 @@ INSERT INTO "helmert_transformation" VALUES('ESRI','108335','ED_1950_To_WGS_1984
INSERT INTO "helmert_transformation" VALUES('ESRI','108336','OSGB_1936_To_WGS_1984_NGA_7PAR',NULL,NULL,'EPSG','9607','Coordinate Frame rotation (geog2D domain)','EPSG','4277','EPSG','4326','EPSG','1264',21.0,446.0,-99.0,544.0,'EPSG','9001',-0.945,-0.261,-0.435,'EPSG','9104',-20.8927,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "helmert_transformation" VALUES('ESRI','108337','Hong_Kong_1980_To_ITRF_1996',NULL,NULL,'EPSG','9607','Coordinate Frame rotation (geog2D domain)','EPSG','4611','EPSG','8995','EPSG','1118',1.0,-162.619,-276.959,-161.764,'EPSG','9001',-0.067753,2.243648,1.158828,'EPSG','9104',-1.094246,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "helmert_transformation" VALUES('ESRI','108341','Observatorio_Meteorologico_1939_To_PTRA08_1_7par',NULL,NULL,'EPSG','9606','Position Vector transformation (geog2D domain)','ESRI','37245','EPSG','5013','EPSG','1344',0.03,-487.978,-226.275,102.787,'EPSG','9001',-0.743,1.677,2.087,'EPSG','9104',1.485,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
-INSERT INTO "area" VALUES('ESRI','155','Azores - Flores Island','Azores - Flores Island',39.35,39.5,-31.3,-31.1,0);
-INSERT INTO "helmert_transformation" VALUES('ESRI','108342','Observatorio_Meteorologico_1939_To_PTRA08_2_7par',NULL,NULL,'EPSG','9606','Position Vector transformation (geog2D domain)','ESRI','37245','EPSG','5013','ESRI','155',0.02,-511.151,-181.269,139.609,'EPSG','9001',1.05,2.703,1.798,'EPSG','9104',3.071,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
+INSERT INTO "area" VALUES('ESRI','156','Azores - Flores Island','Azores - Flores Island',39.35,39.5,-31.3,-31.1,0);
+INSERT INTO "helmert_transformation" VALUES('ESRI','108342','Observatorio_Meteorologico_1939_To_PTRA08_2_7par',NULL,NULL,'EPSG','9606','Position Vector transformation (geog2D domain)','ESRI','37245','EPSG','5013','ESRI','156',0.02,-511.151,-181.269,139.609,'EPSG','9001',1.05,2.703,1.798,'EPSG','9104',3.071,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "helmert_transformation" VALUES('ESRI','108343','Observatorio_Meteorologico_1939_To_PTRA08_3_7par',NULL,NULL,'EPSG','9606','Position Vector transformation (geog2D domain)','ESRI','37245','EPSG','5013','EPSG','3685',0.07,-1333.976,-487.235,945.031,'EPSG','9001',6.674,35.963,20.438,'EPSG','9104',-11.187,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "helmert_transformation" VALUES('ESRI','108344','Observatorio_Meteorologico_1939_To_PTRA08_1_3par',NULL,NULL,'EPSG','9603','Geocentric translations (geog2D domain)','ESRI','37245','EPSG','5013','EPSG','1344',0.06,-423.058,-172.868,83.772,'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,0);
-INSERT INTO "helmert_transformation" VALUES('ESRI','108345','Observatorio_Meteorologico_1939_To_PTRA08_2_3par',NULL,NULL,'EPSG','9603','Geocentric translations (geog2D domain)','ESRI','37245','EPSG','5013','ESRI','155',0.056,-423.053,-172.871,83.771,'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,0);
+INSERT INTO "helmert_transformation" VALUES('ESRI','108345','Observatorio_Meteorologico_1939_To_PTRA08_2_3par',NULL,NULL,'EPSG','9603','Geocentric translations (geog2D domain)','ESRI','37245','EPSG','5013','ESRI','156',0.056,-423.053,-172.871,83.771,'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,0);
INSERT INTO "helmert_transformation" VALUES('ESRI','108346','Observatorio_Meteorologico_1939_To_PTRA08_3_3par',NULL,NULL,'EPSG','9603','Geocentric translations (geog2D domain)','ESRI','37245','EPSG','5013','EPSG','3685',0.064,-423.024,-172.923,83.83,'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,0);
INSERT INTO "helmert_transformation" VALUES('ESRI','108347','Observatorio_Meteorologico_1939_To_WGS_1984_1_7par',NULL,NULL,'EPSG','9606','Position Vector transformation (geog2D domain)','ESRI','37245','EPSG','4326','EPSG','1344',0.06,-487.978,-226.275,102.787,'EPSG','9001',-0.743,1.677,2.087,'EPSG','9104',1.485,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
-INSERT INTO "helmert_transformation" VALUES('ESRI','108348','Observatorio_Meteorologico_1939_To_WGS_1984_2_7par',NULL,NULL,'EPSG','9606','Position Vector transformation (geog2D domain)','ESRI','37245','EPSG','4326','ESRI','155',0.05,-511.151,-181.269,139.609,'EPSG','9001',1.05,2.703,1.798,'EPSG','9104',3.071,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
+INSERT INTO "helmert_transformation" VALUES('ESRI','108348','Observatorio_Meteorologico_1939_To_WGS_1984_2_7par',NULL,NULL,'EPSG','9606','Position Vector transformation (geog2D domain)','ESRI','37245','EPSG','4326','ESRI','156',0.05,-511.151,-181.269,139.609,'EPSG','9001',1.05,2.703,1.798,'EPSG','9104',3.071,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "helmert_transformation" VALUES('ESRI','108349','Observatorio_Meteorologico_1939_To_WGS_1984_3_7par',NULL,NULL,'EPSG','9606','Position Vector transformation (geog2D domain)','ESRI','37245','EPSG','4326','EPSG','3685',0.1,-1333.976,-487.235,945.031,'EPSG','9001',6.674,35.963,20.438,'EPSG','9104',-11.187,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "helmert_transformation" VALUES('ESRI','108350','Observatorio_Meteorologico_1939_To_WGS_1984_1_3par',NULL,NULL,'EPSG','9603','Geocentric translations (geog2D domain)','ESRI','37245','EPSG','4326','EPSG','1344',0.1,-423.058,-172.868,83.772,'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,0);
-INSERT INTO "helmert_transformation" VALUES('ESRI','108351','Observatorio_Meteorologico_1939_To_WGS_1984_2_3par',NULL,NULL,'EPSG','9603','Geocentric translations (geog2D domain)','ESRI','37245','EPSG','4326','ESRI','155',0.08,-423.053,-172.871,83.771,'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,0);
+INSERT INTO "helmert_transformation" VALUES('ESRI','108351','Observatorio_Meteorologico_1939_To_WGS_1984_2_3par',NULL,NULL,'EPSG','9603','Geocentric translations (geog2D domain)','ESRI','37245','EPSG','4326','ESRI','156',0.08,-423.053,-172.871,83.771,'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,0);
INSERT INTO "helmert_transformation" VALUES('ESRI','108352','Observatorio_Meteorologico_1939_To_WGS_1984_3_3par',NULL,NULL,'EPSG','9603','Geocentric translations (geog2D domain)','ESRI','37245','EPSG','4326','EPSG','3685',0.085,-423.024,-172.923,83.83,'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,0);
INSERT INTO "helmert_transformation" VALUES('ESRI','108353','ITRF_2000_To_NAD_1983_2011',NULL,NULL,'EPSG','9607','Coordinate Frame rotation (geog2D domain)','EPSG','8997','EPSG','6318','EPSG','1511',0.1,0.9956,-1.9013,-0.5215,'EPSG','9001',0.025915,0.009426,0.011599,'EPSG','9104',0.00062,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
INSERT INTO "helmert_transformation" VALUES('ESRI','108354','WGS_1984_(ITRF00)_To_NAD_1983_2011',NULL,NULL,'EPSG','9607','Coordinate Frame rotation (geog2D domain)','EPSG','4326','EPSG','6318','EPSG','1511',0.1,0.9956,-1.9013,-0.5215,'EPSG','9001',0.025915,0.009426,0.011599,'EPSG','9104',0.00062,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0);
diff --git a/data/sql/grid_alternatives.sql b/data/sql/grid_alternatives.sql
index 48801ef9..281a60e6 100644
--- a/data/sql/grid_alternatives.sql
+++ b/data/sql/grid_alternatives.sql
@@ -1,2145 +1,208 @@
--- This file is hand generated.
---
--- NOTE: see also grid_alternatives_generated.sql for automatically generated
--- entries.
---
-
-------------------------------------------------------
--- grid_packages
-------------------------------------------------------
-
-INSERT INTO grid_packages VALUES ('proj-datumgrid',
- 'Package with grids of general interest',
- 'https://download.osgeo.org/proj/proj-datumgrid-1.8.zip',
- 1,
- 1);
-
-INSERT INTO grid_packages VALUES ('proj-datumgrid-north-america',
- 'Package with grids of interest for North-America',
- 'https://download.osgeo.org/proj/proj-datumgrid-north-america-1.3.zip',
- 1,
- 1);
-
-INSERT INTO grid_packages VALUES ('proj-datumgrid-europe',
- 'Package with grids of interest for Europe',
- 'https://download.osgeo.org/proj/proj-datumgrid-europe-1.5.zip',
- 1,
- 1);
-
-INSERT INTO grid_packages VALUES ('proj-datumgrid-oceania',
- 'Package with grids of interest for Oceania',
- 'https://download.osgeo.org/proj/proj-datumgrid-oceania-1.1.zip',
- 1,
- 1);
-
- -- not released yet at the time of writing
-INSERT INTO grid_packages VALUES ('proj-datumgrid-world',
- 'Package with grids of global extent (too large to be included in proj-datumgrid)',
- 'https://download.osgeo.org/proj/proj-datumgrid-world-1.0.zip',
- 1,
- 1);
-
-------------------------------------------------------
--- grid_alternatives
-------------------------------------------------------
-
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
- VALUES ('null',
- 'null',
- 'CTable2',
- 'hgridshift',
- 0,
- 'proj-datumgrid',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('rgf93_ntf.gsb',
- 'ntf_r93.gsb', -- the PROJ grid is the reverse way of the EPSG one
- 'NTv2',
- 'hgridshift',
- 1,
- 'proj-datumgrid',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('NTv1_0.gsb',
- 'ntv1_can.dat',
- 'NTv1',
- 'hgridshift',
- 0,
- 'proj-datumgrid',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('NTv2_0.gsb',
- 'ntv2_0.gsb', -- just a case change
- 'NTv2',
- 'hgridshift',
- 0,
- 'proj-datumgrid-north-america',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('May76v20.gsb',
- 'MAY76V20.gsb', -- just a case change
- 'NTv2',
- 'hgridshift',
- 0,
- 'proj-datumgrid-north-america',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('BETA2007.gsb',
- 'BETA2007.gsb', -- no change. Just document the package
- 'NTv2',
- 'hgridshift',
- 0,
- 'proj-datumgrid',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('BWTA2017.gsb',
- 'BWTA2017.gsb', -- no change. Just document the package
- 'NTv2',
- 'hgridshift',
- 0,
- 'proj-datumgrid-europe',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('SeTa2016.gsb',
- 'SeTa2016.gsb', -- no change. Just document the package
- 'NTv2',
- 'hgridshift',
- 0,
- 'proj-datumgrid-europe',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('NTv2_SN.gsb',
- 'NTv2_SN.gsb', -- no change. Just document the package
- 'NTv2',
- 'hgridshift',
- 0,
- 'proj-datumgrid-europe',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('AT_GIS_GRID.gsb',
- 'AT_GIS_GRID.gsb', -- no change. Just document the package
- 'NTv2',
- 'hgridshift',
- 0,
- 'proj-datumgrid-europe',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('nzgd2kgrid0005.gsb',
- 'nzgd2kgrid0005.gsb', -- no change. Just document the package
- 'NTv2',
- 'hgridshift',
- 0,
- 'proj-datumgrid',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('OSTN15_NTv2_OSGBtoETRS.gsb',
- 'OSTN15_NTv2_OSGBtoETRS.gsb', -- no change. Just document the package
- 'NTv2',
- 'hgridshift',
- 0,
- 'proj-datumgrid-europe',
- NULL, NULL, NULL, NULL);
-
+VALUES
+-- the PROJ grid is the reverse way of the EPSG one
+('rgf93_ntf.gsb','fr_ign_ntf_r93.tif','ntf_r93.gsb','GTiff','hgridshift',1,NULL,'https://cdn.proj.org/fr_ign_ntf_r93.tif',1,1,NULL),
+('NTv1_0.gsb','ca_nrc_ntv1_can.tif','ntv1_can.dat','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ca_nrc_ntv1_can.tif',1,1,NULL),
+-- just a case change
+('NTv2_0.gsb','ca_nrc_ntv2_0.tif','ntv2_0.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ca_nrc_ntv2_0.tif',1,1,NULL),
+-- just a case change
+('May76v20.gsb','ca_nrc_MAY76V20.tif','MAY76V20.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ca_nrc_MAY76V20.tif',1,1,NULL),
+('BETA2007.gsb','de_adv_BETA2007.tif','BETA2007.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/de_adv_BETA2007.tif',1,1,NULL),
+('BWTA2017.gsb','de_lgl_bw_BWTA2017.tif','BWTA2017.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/de_lgl_bw_BWTA2017.tif',1,1,NULL),
+('SeTa2016.gsb','de_lgvl_saarland_SeTa2016.tif','SeTa2016.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/de_lgvl_saarland_SeTa2016.tif',1,1,NULL),
+('NTv2_SN.gsb','de_geosn_NTv2_SN.tif','NTv2_SN.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/de_geosn_NTv2_SN.tif',1,1,NULL),
+('AT_GIS_GRID.gsb','at_bev_AT_GIS_GRID.tif','AT_GIS_GRID.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/at_bev_AT_GIS_GRID.tif',1,1,NULL),
+('nzgd2kgrid0005.gsb','nz_linz_nzgd2kgrid0005.tif','nzgd2kgrid0005.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/nz_linz_nzgd2kgrid0005.tif',1,1,NULL),
+('OSTN15_NTv2_OSGBtoETRS.gsb','uk_os_OSTN15_NTv2_OSGBtoETRS.tif','OSTN15_NTv2_OSGBtoETRS.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/uk_os_OSTN15_NTv2_OSGBtoETRS.tif',1,1,NULL),
-- Continental USA VERTCON: NGVD (19)29 height to NAVD (19)88 height
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('vertconw.94',
- 'vertconw.gtx',
- 'GTX',
- 'vgridshift',
- 0,
- 'proj-datumgrid-north-america',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('vertconc.94',
- 'vertconc.gtx',
- 'GTX',
- 'vgridshift',
- 0,
- 'proj-datumgrid-north-america',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('vertcone.94',
- 'vertcone.gtx',
- 'GTX',
- 'vgridshift',
- 0,
- 'proj-datumgrid-north-america',
- NULL, NULL, NULL, NULL);
-
+('vertconw.94','us_noaa_vertconw.tif','vertconw.gtx','GTiff','vgridshift',0,NULL,'https://cdn.proj.org/us_noaa_vertconw.tif',1,1,NULL),
+('vertconc.94','us_noaa_vertconc.tif','vertconc.gtx','GTiff','vgridshift',0,NULL,'https://cdn.proj.org/us_noaa_vertconc.tif',1,1,NULL),
+('vertcone.94','us_noaa_vertcone.tif','vertcone.gtx','GTiff','vgridshift',0,NULL,'https://cdn.proj.org/us_noaa_vertcone.tif',1,1,NULL),
-- EGM models
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('WW15MGH.GRD',
- 'egm96_15.gtx',
- 'GTX',
- 'geoid_like',
- 0,
- 'proj-datumgrid',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('Und_min2.5x2.5_egm2008_isw=82_WGS84_TideFree.gz',
- 'egm08_25.gtx',
- 'GTX',
- 'geoid_like',
- 0,
- 'proj-datumgrid-world',
- NULL, NULL, NULL, NULL);
-
+('WW15MGH.GRD','us_nga_egm96_15.tif','egm96_15.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/us_nga_egm96_15.tif',1,1,NULL),
+('Und_min2.5x2.5_egm2008_isw=82_WGS84_TideFree.gz','us_nga_egm08_25.tif','egm08_25.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/us_nga_egm08_25.tif',1,1,NULL),
-- Greenland height models
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('gr2000g.gri',
- 'gvr2000.gtx',
- 'GTX',
- 'geoid_like',
- 0,
- 'proj-datumgrid-north-america',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('ggeoid16.gri',
- 'gvr2016.gtx',
- 'GTX',
- 'geoid_like',
- 0,
- 'proj-datumgrid-north-america',
- NULL, NULL, NULL, NULL);
-
+('gr2000g.gri','dk_sdfe_gvr2000.tif','gvr2000.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/dk_sdfe_gvr2000.tif',1,1,NULL),
+('ggeoid16.gri','dk_sdfe_gvr2016.tif','gvr2016.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/dk_sdfe_gvr2016.tif',1,1,NULL),
-- Denmark height models
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('dvr90.gtx',
- 'dvr90.gtx', -- no change. Just document the package
- 'GTX',
- 'geoid_like',
- 0,
- 'proj-datumgrid-europe',
- NULL, NULL, NULL, NULL);
-
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('dnn.gtx',
- 'dnn.gtx', -- no change. Just document the package
- 'GTX',
- 'geoid_like',
- 0,
- 'proj-datumgrid-europe',
- NULL, NULL, NULL, NULL);
-
--- Faroe islands height models
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('fvr09.gtx',
- 'fvr09.gtx', -- no change. Just document the package
- 'GTX',
- 'geoid_like',
- 0,
- 'proj-datumgrid-europe',
- NULL, NULL, NULL, NULL);
-
+('dvr90.gtx','dk_sdfe_dvr90.tif','dvr90.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/dk_sdfe_dvr90.tif',1,1,NULL),
+('dnn.gtx','dk_sdfe_dnn.tif','dnn.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/dk_sdfe_dnn.tif',1,1,NULL),
+-- Faroe islands height models
+('fvr09.gtx','dk_sdfe_fvr09.tif','fvr09.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/dk_sdfe_fvr09.tif',1,1,NULL),
-- Sweden height models
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('SWEN17_RH2000.gtx',
- 'SWEN17_RH2000.gtx', -- no change. Just document the package
- 'GTX',
- 'geoid_like',
- 0,
- 'proj-datumgrid-europe',
- NULL, NULL, NULL, NULL);
-
+('SWEN17_RH2000.gtx','se_lantmateriet_SWEN17_RH2000.tif','SWEN17_RH2000.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/se_lantmateriet_SWEN17_RH2000.tif',1,1,NULL),
-- Ireland: OSGM15 height, Malin head datum -> ETRS89 ellipsoidal heights
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('OSGM15_Malin.gri',
- 'OSGM15_Malin.gtx',
- 'GTX',
- 'geoid_like',
- 0,
- 'proj-datumgrid-europe',
- NULL, NULL, NULL, NULL);
-
+('OSGM15_Malin.gri','uk_os_OSGM15_Malin.tif','OSGM15_Malin.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/uk_os_OSGM15_Malin.tif',1,1,NULL),
-- Northern Ireland: OSGM15 height, Belfast height -> ETRS89 ellipsoidal heights
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('OSGM15_Belfast.gri',
- 'OSGM15_Belfast.gtx',
- 'GTX',
- 'geoid_like',
- 0,
- 'proj-datumgrid-europe',
- NULL, NULL, NULL, NULL);
-
-----------------------------
--- US GEOID99 height models
-----------------------------
-
-INSERT INTO grid_alternatives(original_grid_name, proj_grid_name, proj_grid_format, proj_method, inverse_direction, package_name, url, direct_download, open_license, directory)
- VALUES ('g1999u01.bin', 'g1999u01.gtx', 'GTX', 'geoid_like', 0, 'proj-datumgrid-north-america', NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name, proj_grid_name, proj_grid_format, proj_method, inverse_direction, package_name, url, direct_download, open_license, directory)
- VALUES ('g1999u02.bin', 'g1999u02.gtx', 'GTX', 'geoid_like', 0, 'proj-datumgrid-north-america', NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name, proj_grid_name, proj_grid_format, proj_method, inverse_direction, package_name, url, direct_download, open_license, directory)
- VALUES ('g1999u03.bin', 'g1999u03.gtx', 'GTX', 'geoid_like', 0, 'proj-datumgrid-north-america', NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name, proj_grid_name, proj_grid_format, proj_method, inverse_direction, package_name, url, direct_download, open_license, directory)
- VALUES ('g1999u04.bin', 'g1999u04.gtx', 'GTX', 'geoid_like', 0, 'proj-datumgrid-north-america', NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name, proj_grid_name, proj_grid_format, proj_method, inverse_direction, package_name, url, direct_download, open_license, directory)
- VALUES ('g1999u05.bin', 'g1999u05.gtx', 'GTX', 'geoid_like', 0, 'proj-datumgrid-north-america', NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name, proj_grid_name, proj_grid_format, proj_method, inverse_direction, package_name, url, direct_download, open_license, directory)
- VALUES ('g1999u06.bin', 'g1999u06.gtx', 'GTX', 'geoid_like', 0, 'proj-datumgrid-north-america', NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name, proj_grid_name, proj_grid_format, proj_method, inverse_direction, package_name, url, direct_download, open_license, directory)
- VALUES ('g1999u07.bin', 'g1999u07.gtx', 'GTX', 'geoid_like', 0, 'proj-datumgrid-north-america', NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name, proj_grid_name, proj_grid_format, proj_method, inverse_direction, package_name, url, direct_download, open_license, directory)
- VALUES ('g1999u08.bin', 'g1999u08.gtx', 'GTX', 'geoid_like', 0, 'proj-datumgrid-north-america', NULL, NULL, NULL, NULL);
-
--- Not mapped:
--- g1999a01.gtx to g1999a04.gtx : Alaska
--- g1999h01.gtx : Hawaii
--- g1999p01.gtx : Puerto Rico
-
-----------------------------
--- US GEOID03 height models
-----------------------------
-
-INSERT INTO grid_alternatives(original_grid_name, proj_grid_name, proj_grid_format, proj_method, inverse_direction, package_name, url, direct_download, open_license, directory)
- VALUES ('geoid03_conus.bin', 'geoid03_conus.gtx', 'GTX', 'geoid_like', 0, 'proj-datumgrid-north-america', NULL, NULL, NULL, NULL);
-
--- Not mapped:
--- g2003a01.gtx to g2003a04.gtx : Alaska
--- g2003h01.gtx : Hawaii
----g2003p01.gtx : Puerto Rico
-
-----------------------------
+('OSGM15_Belfast.gri','uk_os_OSGM15_Belfast.tif','OSGM15_Belfast.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/uk_os_OSGM15_Belfast.tif',1,1,NULL),
+-- US GEOID99 height models. Not mapped: Alaska: g1999a01.gtx to g1999a04.gtx. Hawaii: g1999h01.gtx, Puerto Rico: g1999p01.gtx
+('g1999u01.bin','us_noaa_g1999u01.tif','g1999u01.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/us_noaa_g1999u01.tif',1,1,NULL),
+('g1999u02.bin','us_noaa_g1999u02.tif','g1999u02.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/us_noaa_g1999u02.tif',1,1,NULL),
+('g1999u03.bin','us_noaa_g1999u03.tif','g1999u03.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/us_noaa_g1999u03.tif',1,1,NULL),
+('g1999u04.bin','us_noaa_g1999u04.tif','g1999u04.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/us_noaa_g1999u04.tif',1,1,NULL),
+('g1999u05.bin','us_noaa_g1999u05.tif','g1999u05.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/us_noaa_g1999u05.tif',1,1,NULL),
+('g1999u06.bin','us_noaa_g1999u06.tif','g1999u06.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/us_noaa_g1999u06.tif',1,1,NULL),
+('g1999u07.bin','us_noaa_g1999u07.tif','g1999u07.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/us_noaa_g1999u07.tif',1,1,NULL),
+('g1999u08.bin','us_noaa_g1999u08.tif','g1999u08.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/us_noaa_g1999u08.tif',1,1,NULL),
+-- US GEOID03 height models. Not mapped: Alaska: g2003a01.gtx to g2003a04.gtx. Hawaii: g2003h01.gtx. Puerto Rico: g2003p01.gtx
+('geoid03_conus.bin','us_noaa_geoid03_conus.tif','geoid03_conus.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/us_noaa_geoid03_conus.tif',1,1,NULL),
-- US GEOID06 height models
-----------------------------
-
-INSERT INTO grid_alternatives(original_grid_name, proj_grid_name, proj_grid_format, proj_method, inverse_direction, package_name, url, direct_download, open_license, directory)
- VALUES ('geoid06_ak.bin', 'geoid06_ak.gtx', 'GTX', 'geoid_like', 0, 'proj-datumgrid-north-america', NULL, NULL, NULL, NULL);
-
-----------------------------
--- US GEOID09 height models
-----------------------------
-
-INSERT INTO grid_alternatives(original_grid_name, proj_grid_name, proj_grid_format, proj_method, inverse_direction, package_name, url, direct_download, open_license, directory)
- VALUES ('geoid09_ak.bin', 'geoid09_ak.gtx', 'GTX', 'geoid_like', 0, 'proj-datumgrid-north-america', NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name, proj_grid_name, proj_grid_format, proj_method, inverse_direction, package_name, url, direct_download, open_license, directory)
- VALUES ('geoid09_conus.bin', 'geoid09_conus.gtx', 'GTX', 'geoid_like', 0, 'proj-datumgrid-north-america', NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name, proj_grid_name, proj_grid_format, proj_method, inverse_direction, package_name, url, direct_download, open_license, directory)
- VALUES ('g2009g01.bin', 'g2009g01.gtx', 'GTX', 'geoid_like', 0, 'proj-datumgrid-north-america', NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name, proj_grid_name, proj_grid_format, proj_method, inverse_direction, package_name, url, direct_download, open_license, directory)
- VALUES ('g2009s01.bin', 'g2009s01.gtx', 'GTX', 'geoid_like', 0, 'proj-datumgrid-north-america', NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name, proj_grid_name, proj_grid_format, proj_method, inverse_direction, package_name, url, direct_download, open_license, directory)
- VALUES ('g2009p01.bin', 'g2009p01.gtx', 'GTX', 'geoid_like', 0, 'proj-datumgrid-north-america', NULL, NULL, NULL, NULL);
-
--- Not mapped:
--- g2009h01.gtx : Hawaii
-
-----------------------------
+('geoid06_ak.bin','us_noaa_geoid06_ak.tif','geoid06_ak.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/us_noaa_geoid06_ak.tif',1,1,NULL),
+-- US GEOID09 height models.Not mapped: Hawaii: g2009h01.gtx
+('geoid09_ak.bin','us_noaa_geoid09_ak.tif','geoid09_ak.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/us_noaa_geoid09_ak.tif',1,1,NULL),
+('geoid09_conus.bin','us_noaa_geoid09_conus.tif','geoid09_conus.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/us_noaa_geoid09_conus.tif',1,1,NULL),
+('g2009g01.bin','us_noaa_g2009g01.tif','g2009g01.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/us_noaa_g2009g01.tif',1,1,NULL),
+('g2009s01.bin','us_noaa_g2009s01.tif','g2009s01.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/us_noaa_g2009s01.tif',1,1,NULL),
+('g2009p01.bin','us_noaa_g2009p01.tif','g2009p01.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/us_noaa_g2009p01.tif',1,1,NULL),
-- US GEOID12B height models
-----------------------------
-
+--
-- CONUS
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('g2012bu0.bin',
- 'g2012bu0.gtx',
- 'GTX',
- 'geoid_like',
- 0,
- 'proj-datumgrid-north-america',
- NULL, NULL, NULL, NULL);
-
+('g2012bu0.bin','us_noaa_g2012bu0.tif','g2012bu0.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/us_noaa_g2012bu0.tif',1,1,NULL),
-- Alaska
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('g2012ba0.bin',
- 'g2012ba0.gtx',
- 'GTX',
- 'geoid_like',
- 0,
- 'proj-datumgrid-north-america',
- NULL, NULL, NULL, NULL);
-
+('g2012ba0.bin','us_noaa_g2012ba0.tif','g2012ba0.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/us_noaa_g2012ba0.tif',1,1,NULL),
-- Puerto Rico
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('g2012bp0.bin',
- 'g2012bp0.gtx',
- 'GTX',
- 'geoid_like',
- 0,
- 'proj-datumgrid-north-america',
- NULL, NULL, NULL, NULL);
-
+('g2012bp0.bin','us_noaa_g2012bp0.tif','g2012bp0.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/us_noaa_g2012bp0.tif',1,1,NULL),
-- Guam
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('g2012bg0.bin',
- 'g2012bg0.gtx',
- 'GTX',
- 'geoid_like',
- 0,
- 'proj-datumgrid-north-america',
- NULL, NULL, NULL, NULL);
-
+('g2012bg0.bin','us_noaa_g2012bg0.tif','g2012bg0.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/us_noaa_g2012bg0.tif',1,1,NULL),
-- American Samoa
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('g2012bs0.bin',
- 'g2012bs0.gtx',
- 'GTX',
- 'geoid_like',
- 0,
- 'proj-datumgrid-north-america',
- NULL, NULL, NULL, NULL);
-
-----------------------------
+('g2012bs0.bin','us_noaa_g2012bs0.tif','g2012bs0.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/us_noaa_g2012bs0.tif',1,1,NULL),
-- US GEOID18 height models
-----------------------------
-
-INSERT INTO grid_alternatives(original_grid_name, proj_grid_name, proj_grid_format, proj_method, inverse_direction, package_name, url, direct_download, open_license, directory)
- VALUES ('g2018u0.bin', 'g2018u0.gtx', 'GTX', 'geoid_like', 0, 'proj-datumgrid-north-america', NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name, proj_grid_name, proj_grid_format, proj_method, inverse_direction, package_name, url, direct_download, open_license, directory)
- VALUES ('g2018p0.bin', 'g2018p0.gtx', 'GTX', 'geoid_like', 0, 'proj-datumgrid-north-america', NULL, NULL, NULL, NULL);
-
-----------------------------
+('g2018u0.bin','us_noaa_g2018u0.tif','g2018u0.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/us_noaa_g2018u0.tif',1,1,NULL),
-- French vertical grids
-----------------------------
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('RAF09.mnt',
- 'RAF09.gtx',
- 'GTX',
- 'geoid_like',
- 0,
- 'proj-datumgrid-europe',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('RAF18.tac',
- 'RAF18.gtx',
- 'GTX',
- 'geoid_like',
- 0,
- 'proj-datumgrid-europe',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('RAC09.mnt',
- 'RAC09.gtx',
- 'GTX',
- 'geoid_like',
- 0,
- 'proj-datumgrid-europe',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('ggm00.txt',
- 'ggm00v2.gtx',
- 'GTX',
- 'geoid_like',
- 0,
- 'proj-datumgrid-europe',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('ggg00.txt',
- 'ggg00v2.gtx',
- 'GTX',
- 'geoid_like',
- 0,
- 'proj-datumgrid-europe',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('ggg00_mg.txt',
- 'ggg00_mgv2.gtx',
- 'GTX',
- 'geoid_like',
- 0,
- 'proj-datumgrid-europe',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('ggg00_sm.txt',
- 'ggg00_smv2.gtx',
- 'GTX',
- 'geoid_like',
- 0,
- 'proj-datumgrid-europe',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('ggg00_ls.txt',
- 'ggg00_lsv2.gtx',
- 'GTX',
- 'geoid_like',
- 0,
- 'proj-datumgrid-europe',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('ggg00_ld.txt',
- 'RALDW842016.gtx',
- 'GTX',
- 'geoid_like',
- 0,
- 'proj-datumgrid-europe',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('RALDW842016.mnt',
- 'RALDW842016.gtx',
- 'GTX',
- 'geoid_like',
- 0,
- 'proj-datumgrid-europe',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('ggg00_sb.txt',
- 'ggg00_sbv2.gtx',
- 'GTX',
- 'geoid_like',
- 0,
- 'proj-datumgrid-europe',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('gg10_mart.txt',
- 'RAMART2016.gtx',
- 'GTX',
- 'geoid_like',
- 0,
- 'proj-datumgrid-europe',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('RAMART2016.mnt',
- 'RAMART2016.gtx',
- 'GTX',
- 'geoid_like',
- 0,
- 'proj-datumgrid-europe',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('gg10_gtbt.txt',
- 'RAGTBT2016.gtx',
- 'GTX',
- 'geoid_like',
- 0,
- 'proj-datumgrid-europe',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('RAGTBT2016.mnt',
- 'RAGTBT2016.gtx',
- 'GTX',
- 'geoid_like',
- 0,
- 'proj-datumgrid-europe',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('gg10_mg.txt',
- 'RAMG2016.gtx',
- 'GTX',
- 'geoid_like',
- 0,
- 'proj-datumgrid-europe',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('RAMG2016.mnt',
- 'RAMG2016.gtx',
- 'GTX',
- 'geoid_like',
- 0,
- 'proj-datumgrid-europe',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('gg10_sm.txt',
- 'gg10_smv2.gtx',
- 'GTX',
- 'geoid_like',
- 0,
- 'proj-datumgrid-europe',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('gg10_smv2.mnt',
- 'gg10_smv2.gtx',
- 'GTX',
- 'geoid_like',
- 0,
- 'proj-datumgrid-europe',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('gg10_ls.txt',
- 'RALS2016.gtx',
- 'GTX',
- 'geoid_like',
- 0,
- 'proj-datumgrid-europe',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('RALS2016.mnt',
- 'RALS2016.gtx',
- 'GTX',
- 'geoid_like',
- 0,
- 'proj-datumgrid-europe',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('gg10_ld.txt',
- 'RALD2016.gtx',
- 'GTX',
- 'geoid_like',
- 0,
- 'proj-datumgrid-europe',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('RALD2016.mnt',
- 'RALD2016.gtx',
- 'GTX',
- 'geoid_like',
- 0,
- 'proj-datumgrid-europe',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('gg10_sb.txt',
- 'gg10_sbv2.gtx',
- 'GTX',
- 'geoid_like',
- 0,
- 'proj-datumgrid-europe',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('gg10_sbv2.mnt',
- 'gg10_sbv2.gtx',
- 'GTX',
- 'geoid_like',
- 0,
- 'proj-datumgrid-europe',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('ggguy00.txt',
- 'ggguy15.gtx',
- 'GTX',
- 'geoid_like',
- 0,
- 'proj-datumgrid-europe',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('ggr99.txt',
- 'RAR07_bl.gtx',
- 'GTX',
- 'geoid_like',
- 0,
- 'proj-datumgrid-europe',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('GGSPM06v1.mnt',
- 'ggspm06v1.gtx',
- 'GTX',
- 'geoid_like',
- 0,
- 'proj-datumgrid-europe',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('RASPM2018.mnt',
- 'RASPM2018.gtx',
- 'GTX',
- 'geoid_like',
- 0,
- 'proj-datumgrid-europe',
- NULL, NULL, NULL, NULL);
-
-----------------------------
+('g2018p0.bin','us_noaa_g2018p0.tif','g2018p0.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/us_noaa_g2018p0.tif',1,1,NULL),
+('RAF09.mnt','fr_ign_RAF09.tif','RAF09.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_RAF09.tif',1,1,NULL),
+('RAF18.tac','fr_ign_RAF18.tif','RAF18.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_RAF18.tif',1,1,NULL),
+('RAC09.mnt','fr_ign_RAC09.tif','RAC09.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_RAC09.tif',1,1,NULL),
+('ggm00.txt','fr_ign_ggm00v2.tif','ggm00v2.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_ggm00v2.tif',1,1,NULL),
+('ggg00.txt','fr_ign_ggg00v2.tif','ggg00v2.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_ggg00v2.tif',1,1,NULL),
+('ggg00_mg.txt','fr_ign_ggg00_mgv2.tif','ggg00_mgv2.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_ggg00_mgv2.tif',1,1,NULL),
+('ggg00_sm.txt','fr_ign_ggg00_smv2.tif','ggg00_smv2.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_ggg00_smv2.tif',1,1,NULL),
+('ggg00_ls.txt','fr_ign_ggg00_lsv2.tif','ggg00_lsv2.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_ggg00_lsv2.tif',1,1,NULL),
+('ggg00_ld.txt','fr_ign_RALDW842016.tif','RALDW842016.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_RALDW842016.tif',1,1,NULL),
+('RALDW842016.mnt','fr_ign_RALDW842016.tif','RALDW842016.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_RALDW842016.tif',1,1,NULL),
+('ggg00_sb.txt','fr_ign_ggg00_sbv2.tif','ggg00_sbv2.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_ggg00_sbv2.tif',1,1,NULL),
+('gg10_mart.txt','fr_ign_RAMART2016.tif','RAMART2016.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_RAMART2016.tif',1,1,NULL),
+('RAMART2016.mnt','fr_ign_RAMART2016.tif','RAMART2016.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_RAMART2016.tif',1,1,NULL),
+('gg10_gtbt.txt','fr_ign_RAGTBT2016.tif','RAGTBT2016.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_RAGTBT2016.tif',1,1,NULL),
+('RAGTBT2016.mnt','fr_ign_RAGTBT2016.tif','RAGTBT2016.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_RAGTBT2016.tif',1,1,NULL),
+('gg10_mg.txt','fr_ign_RAMG2016.tif','RAMG2016.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_RAMG2016.tif',1,1,NULL),
+('RAMG2016.mnt','fr_ign_RAMG2016.tif','RAMG2016.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_RAMG2016.tif',1,1,NULL),
+('gg10_sm.txt','fr_ign_gg10_smv2.tif','gg10_smv2.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_gg10_smv2.tif',1,1,NULL),
+('gg10_smv2.mnt','fr_ign_gg10_smv2.tif','gg10_smv2.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_gg10_smv2.tif',1,1,NULL),
+('gg10_ls.txt','fr_ign_RALS2016.tif','RALS2016.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_RALS2016.tif',1,1,NULL),
+('RALS2016.mnt','fr_ign_RALS2016.tif','RALS2016.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_RALS2016.tif',1,1,NULL),
+('gg10_ld.txt','fr_ign_RALD2016.tif','RALD2016.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_RALD2016.tif',1,1,NULL),
+('RALD2016.mnt','fr_ign_RALD2016.tif','RALD2016.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_RALD2016.tif',1,1,NULL),
+('gg10_sb.txt','fr_ign_gg10_sbv2.tif','gg10_sbv2.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_gg10_sbv2.tif',1,1,NULL),
+('gg10_sbv2.mnt','fr_ign_gg10_sbv2.tif','gg10_sbv2.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_gg10_sbv2.tif',1,1,NULL),
+('ggguy00.txt','fr_ign_ggguy15.tif','ggguy15.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_ggguy15.tif',1,1,NULL),
+('ggr99.txt','fr_ign_RAR07_bl.tif','RAR07_bl.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_RAR07_bl.tif',1,1,NULL),
+('GGSPM06v1.mnt','fr_ign_ggspm06v1.tif','ggspm06v1.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_ggspm06v1.tif',1,1,NULL),
+('RASPM2018.mnt','fr_ign_RASPM2018.tif','RASPM2018.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/fr_ign_RASPM2018.tif',1,1,NULL),
-- Australian grids
-----------------------------
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('A66 National (13.09.01).gsb',
- 'A66_National_13_09_01.gsb',
- 'NTv2',
- 'hgridshift',
- 0,
- 'proj-datumgrid-oceania',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('National 84 (02.07.01).gsb',
- 'National_84_02_07_01.gsb',
- 'NTv2',
- 'hgridshift',
- 0,
- 'proj-datumgrid-oceania',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('GDA94_GDA2020_conformal.gsb',
- 'GDA94_GDA2020_conformal.gsb',
- 'NTv2',
- 'hgridshift',
- 0,
- 'proj-datumgrid-oceania',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('GDA94_GDA2020_conformal_and_distortion.gsb',
- 'GDA94_GDA2020_conformal_and_distortion.gsb',
- 'NTv2',
- 'hgridshift',
- 0,
- 'proj-datumgrid-oceania',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('GDA94_GDA2020_conformal_christmas_island.gsb',
- 'GDA94_GDA2020_conformal_christmas_island.gsb',
- 'NTv2',
- 'hgridshift',
- 0,
- 'proj-datumgrid-oceania',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('GDA94_GDA2020_conformal_cocos_island.gsb',
- 'GDA94_GDA2020_conformal_cocos_island.gsb',
- 'NTv2',
- 'hgridshift',
- 0,
- 'proj-datumgrid-oceania',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('AUSGeoid09_GDA94_V1.01_DOV_windows.gsb', -- source file contains undulation in first band, and deflection in 2nd and 3d band
- 'AUSGeoid09_V1.01.gtx',
- 'GTX',
- 'geoid_like',
- 0,
- 'proj-datumgrid-oceania',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('AUSGeoid2020_windows_binary.gsb', -- source file contains undulation in first band, and deflection in 2nd and 3d band
- 'AUSGeoid2020_20180201.gtx',
- 'GTX',
- 'geoid_like',
- 0,
- 'proj-datumgrid-oceania',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- SELECT grid_name,
- 'AUSGeoid98.gtx',
- 'GTX',
- 'geoid_like',
- 0,
- 'proj-datumgrid-oceania',
- NULL, NULL, NULL, NULL FROM grid_transformation WHERE
- grid_name LIKE '%DAT.htm' AND name LIKE 'GDA94 to AHD height%';
-
--- Netherlands / RDNAP (non-free grids)
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('naptrans2008.gtx',
- 'naptrans2008.gtx',
- 'GTX',
- 'geoid_like',
- 0,
- NULL, -- package name
- 'https://salsa.debian.org/debian-gis-team/proj-rdnap/raw/upstream/2008/naptrans2008.gtx',
- 1, -- direct download
- 0, -- non-freely licensed. See https://salsa.debian.org/debian-gis-team/proj-rdnap/raw/master/debian/copyright
- NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('rdtrans2008.gsb',
- 'rdtrans2008.gsb',
- 'NTv2',
- 'hgridshift',
- 0,
- NULL, -- package name
- 'https://salsa.debian.org/debian-gis-team/proj-rdnap/raw/upstream/2008/rdtrans2008.gsb',
- 1, -- direct download
- 0, -- non-freely licensed. See https://salsa.debian.org/debian-gis-team/proj-rdnap/raw/master/debian/copyright
- NULL);
-
+('A66 National (13.09.01).gsb','au_icsm_A66_National_13_09_01.tif','A66_National_13_09_01.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/au_icsm_A66_National_13_09_01.tif',1,1,NULL),
+('National 84 (02.07.01).gsb','au_icsm_National_84_02_07_01.tif','National_84_02_07_01.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/au_icsm_National_84_02_07_01.tif',1,1,NULL),
+('GDA94_GDA2020_conformal.gsb','au_icsm_GDA94_GDA2020_conformal.tif','GDA94_GDA2020_conformal.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/au_icsm_GDA94_GDA2020_conformal.tif',1,1,NULL),
+('GDA94_GDA2020_conformal_and_distortion.gsb','au_icsm_GDA94_GDA2020_conformal_and_distortion.tif','GDA94_GDA2020_conformal_and_distortion.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/au_icsm_GDA94_GDA2020_conformal_and_distortion.tif',1,1,NULL),
+('GDA94_GDA2020_conformal_christmas_island.gsb','au_icsm_GDA94_GDA2020_conformal_christmas_island.tif','GDA94_GDA2020_conformal_christmas_island.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/au_icsm_GDA94_GDA2020_conformal_christmas_island.tif',1,1,NULL),
+('GDA94_GDA2020_conformal_cocos_island.gsb','au_icsm_GDA94_GDA2020_conformal_cocos_island.tif','GDA94_GDA2020_conformal_cocos_island.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/au_icsm_GDA94_GDA2020_conformal_cocos_island.tif',1,1,NULL),
+-- source file contains undulation in first band, and deflection in 2nd and 3d band
+('AUSGeoid09_GDA94_V1.01_DOV_windows.gsb','au_ga_AUSGeoid09_V1.01.tif','AUSGeoid09_V1.01.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/au_ga_AUSGeoid09_V1.01.tif',1,1,NULL),
+-- source file contains undulation in first band, and deflection in 2nd and 3d band
+('AUSGeoid2020_windows_binary.gsb','au_ga_AUSGeoid2020_20180201.tif','AUSGeoid2020_20180201.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/au_ga_AUSGeoid2020_20180201.tif',1,1,NULL),
+-- Netherlands / RDNAP (non-free grids). See https://salsa.debian.org/debian-gis-team/proj-rdnap/raw/master/debian/copyright
+('naptrans2008.gtx','','naptrans2008.gtx','GTX','geoid_like',0,NULL,'https://salsa.debian.org/debian-gis-team/proj-rdnap/raw/upstream/2008/naptrans2008.gtx',1,0,NULL),
+('rdtrans2008.gsb','','rdtrans2008.gsb','NTv2','hgridshift',0,NULL,'https://salsa.debian.org/debian-gis-team/proj-rdnap/raw/upstream/2008/rdtrans2008.gsb',1,0,NULL),
-- Netherlands / RDNAP 2018
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('nlgeo2018.gtx',
- 'nlgeo2018.gtx',
- 'GTX',
- 'geoid_like',
- 0,
- 'proj-datumgrid-europe',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('rdtrans2018.gsb',
- 'rdtrans2018.gsb',
- 'NTv2',
- 'hgridshift',
- 0,
- 'proj-datumgrid-europe',
- NULL, NULL, NULL, NULL);
-
-
+('nlgeo2018.gtx','nl_nsgi_nlgeo2018.tif','nlgeo2018.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/nl_nsgi_nlgeo2018.tif',1,1,NULL),
+('rdtrans2018.gsb','nl_nsgi_rdtrans2018.tif','rdtrans2018.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/nl_nsgi_rdtrans2018.tif',1,1,NULL),
-- Belgium
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('bd72lb72_etrs89lb08.gsb',
- 'bd72lb72_etrs89lb08.gsb',
- 'NTv2',
- 'hgridshift',
- 0,
- 'proj-datumgrid-europe',
- NULL, NULL, NULL, NULL);
-
+('bd72lb72_etrs89lb08.gsb','be_ign_bd72lb72_etrs89lb08.tif','bd72lb72_etrs89lb08.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/be_ign_bd72lb72_etrs89lb08.tif',1,1,NULL),
-- Switzerland
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('CHENyx06a.gsb',
- 'CHENyx06a.gsb',
- 'NTv2',
- 'hgridshift',
- 0,
- 'proj-datumgrid-europe',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('CHENyx06_ETRS.gsb',
- 'CHENyx06_ETRS.gsb',
- 'NTv2',
- 'hgridshift',
- 0,
- 'proj-datumgrid-europe',
- NULL, NULL, NULL, NULL);
-
+('CHENyx06a.gsb','ch_swisstopo_CHENyx06a.tif','CHENyx06a.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ch_swisstopo_CHENyx06a.tif',1,1,NULL),
+('CHENyx06_ETRS.gsb','ch_swisstopo_CHENyx06_ETRS.tif','CHENyx06_ETRS.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ch_swisstopo_CHENyx06_ETRS.tif',1,1,NULL),
-- Spain
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('100800401.gsb',
- '100800401.gsb',
- 'NTv2',
- 'hgridshift',
- 0,
- 'proj-datumgrid-europe',
- NULL, NULL, NULL, NULL);
-
+('100800401.gsb','es_cat_icgc_100800401.tif','100800401.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/es_cat_icgc_100800401.tif',1,1,NULL),
-- Portugal
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('DLx_ETRS89_geo.gsb',
- 'DLx_ETRS89_geo.gsb',
- 'NTv2',
- 'hgridshift',
- 0,
- 'proj-datumgrid-europe',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('D73_ETRS89_geo.gsb',
- 'D73_ETRS89_geo.gsb',
- 'NTv2',
- 'hgridshift',
- 0,
- 'proj-datumgrid-europe',
- NULL, NULL, NULL, NULL);
-
+('DLx_ETRS89_geo.gsb','pt_dgt_DLx_ETRS89_geo.tif','DLx_ETRS89_geo.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/pt_dgt_DLx_ETRS89_geo.tif',1,1,NULL),
+('D73_ETRS89_geo.gsb','pt_dgt_D73_ETRS89_geo.tif','D73_ETRS89_geo.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/pt_dgt_D73_ETRS89_geo.tif',1,1,NULL),
-- Canada provincial grids
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('AB_CSRS.DAC',
- 'ABCSRSV4.GSB',
- 'NTv2',
- 'hgridshift',
- 0,
- 'proj-datumgrid-north-america',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('CRD27_00.GSB',
- 'CRD27_00.GSB',
- 'NTv2',
- 'hgridshift',
- 0,
- 'proj-datumgrid-north-america',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('CRD93_00.GSB',
- 'CRD93_00.GSB',
- 'NTv2',
- 'hgridshift',
- 0,
- 'proj-datumgrid-north-america',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('NVI93_05.GSB',
- 'NVI93_05.GSB',
- 'NTv2',
- 'hgridshift',
- 0,
- 'proj-datumgrid-north-america',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('BC_27_05.GSB',
- 'BC_27_05.GSB',
- 'NTv2',
- 'hgridshift',
- 0,
- 'proj-datumgrid-north-america',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('BC_93_05.GSB',
- 'BC_93_05.GSB',
- 'NTv2',
- 'hgridshift',
- 0,
- 'proj-datumgrid-north-america',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('NB7783v2.gsb', -- case difference on extension !
- 'NB7783v2.GSB',
- 'NTv2',
- 'hgridshift',
- 0,
- 'proj-datumgrid-north-america',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('NB2783v2.gsb', -- case difference on extension !
- 'NB2783v2.GSB',
- 'NTv2',
- 'hgridshift',
- 0,
- 'proj-datumgrid-north-america',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('GS7783.GSB',
- 'GS7783.GSB',
- 'NTv2',
- 'hgridshift',
- 0,
- 'proj-datumgrid-north-america',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('NS778302.gsb', -- case difference on extension !
- 'NS778302.GSB',
- 'NTv2',
- 'hgridshift',
- 0,
- 'proj-datumgrid-north-america',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('ON27CSv1.GSB',
- 'ON27CSv1.GSB',
- 'NTv2',
- 'hgridshift',
- 0,
- 'proj-datumgrid-north-america',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('ON76CSv1.GSB',
- 'ON76CSv1.GSB',
- 'NTv2',
- 'hgridshift',
- 0,
- 'proj-datumgrid-north-america',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('ON83CSv1.GSB',
- 'ON83CSv1.GSB',
- 'NTv2',
- 'hgridshift',
- 0,
- 'proj-datumgrid-north-america',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('TOR27CSv1.GSB',
- 'TO27CSv1.GSB',
- 'NTv2',
- 'hgridshift',
- 0,
- 'proj-datumgrid-north-america',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('PE7783V2.gsb', -- case difference on extension !
- 'PE7783V2.GSB',
- 'NTv2',
- 'hgridshift',
- 0,
- 'proj-datumgrid-north-america',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('NA27NA83.GSB',
- 'na27na83.gsb',
- 'NTv2',
- 'hgridshift',
- 0,
- 'proj-datumgrid-north-america',
- NULL, NULL, NULL, NULL);
-
+('AB_CSRS.DAC','ca_nrc_ABCSRSV4.tif','ABCSRSV4.GSB','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ca_nrc_ABCSRSV4.tif',1,1,NULL),
+('CRD27_00.GSB','ca_nrc_CRD27_00.tif','CRD27_00.GSB','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ca_nrc_CRD27_00.tif',1,1,NULL),
+('CRD93_00.GSB','ca_nrc_CRD93_00.tif','CRD93_00.GSB','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ca_nrc_CRD93_00.tif',1,1,NULL),
+('NVI93_05.GSB','ca_nrc_NVI93_05.tif','NVI93_05.GSB','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ca_nrc_NVI93_05.tif',1,1,NULL),
+('BC_27_05.GSB','ca_nrc_BC_27_05.tif','BC_27_05.GSB','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ca_nrc_BC_27_05.tif',1,1,NULL),
+('BC_93_05.GSB','ca_nrc_BC_93_05.tif','BC_93_05.GSB','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ca_nrc_BC_93_05.tif',1,1,NULL),
+('NB7783v2.gsb','ca_nrc_NB7783v2.tif','NB7783v2.GSB','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ca_nrc_NB7783v2.tif',1,1,NULL),
+('NB2783v2.gsb','ca_nrc_NB2783v2.tif','NB2783v2.GSB','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ca_nrc_NB2783v2.tif',1,1,NULL),
+('GS7783.GSB','ca_nrc_GS7783.tif','GS7783.GSB','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ca_nrc_GS7783.tif',1,1,NULL),
+('NS778302.gsb','ca_nrc_NS778302.tif','NS778302.GSB','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ca_nrc_NS778302.tif',1,1,NULL),
+('ON27CSv1.GSB','ca_nrc_ON27CSv1.tif','ON27CSv1.GSB','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ca_nrc_ON27CSv1.tif',1,1,NULL),
+('ON76CSv1.GSB','ca_nrc_ON76CSv1.tif','ON76CSv1.GSB','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ca_nrc_ON76CSv1.tif',1,1,NULL),
+('ON83CSv1.GSB','ca_nrc_ON83CSv1.tif','ON83CSv1.GSB','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ca_nrc_ON83CSv1.tif',1,1,NULL),
+('TOR27CSv1.GSB','ca_nrc_TO27CSv1.tif','TO27CSv1.GSB','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ca_nrc_TO27CSv1.tif',1,1,NULL),
+('PE7783V2.gsb','ca_nrc_PE7783V2.tif','PE7783V2.GSB','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ca_nrc_PE7783V2.tif',1,1,NULL),
-- two grid names in EPSG point to the same file distributed by NRCan
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('NA27SCRS.GSB',
- 'NA27SCRS.GSB',
- 'NTv2',
- 'hgridshift',
- 0,
- 'proj-datumgrid-north-america',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('QUE27-98.gsb',
- 'NA27SCRS.GSB',
- 'NTv2',
- 'hgridshift',
- 0,
- 'proj-datumgrid-north-america',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('CQ77NA83.GSB',
- 'cq77na83.gsb',
- 'NTv2',
- 'hgridshift',
- 0,
- 'proj-datumgrid-north-america',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('CGQ77-98.gsb',
- 'CQ77SCRS.GSB',
- 'NTv2',
- 'hgridshift',
- 0,
- 'proj-datumgrid-north-america',
- NULL, NULL, NULL, NULL);
-
- -- two grid names in EPSG point to the same file distributed by NRCan
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('NA83SCRS.GSB',
- 'NA83SCRS.GSB',
- 'NTv2',
- 'hgridshift',
- 0,
- 'proj-datumgrid-north-america',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('NAD83-98.gsb',
- 'NA83SCRS.GSB',
- 'NTv2',
- 'hgridshift',
- 0,
- 'proj-datumgrid-north-america',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('SK27-98.gsb', -- case difference on extension !
- 'SK27-98.GSB',
- 'NTv2',
- 'hgridshift',
- 0,
- 'proj-datumgrid-north-america',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('SK83-98.gsb', -- case difference on extension !
- 'SK83-98.GSB',
- 'NTv2',
- 'hgridshift',
- 0,
- 'proj-datumgrid-north-america',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('HT2_0.byn',
- 'HT2_2010v70.gtx',
- 'GTX',
- 'geoid_like',
- 0,
- 'proj-datumgrid-north-america',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('CGG2013i08a.byn',
- 'CGG2013ai08.gtx',
- 'GTX',
- 'geoid_like',
- 0,
- 'proj-datumgrid-north-america',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('CGG2013n83a.byn',
- 'CGG2013an83.gtx',
- 'GTX',
- 'geoid_like',
- 0,
- 'proj-datumgrid-north-america',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('CGG2013i83.byn',
- 'CGG2013i08.gtx',
- 'GTX',
- 'geoid_like',
- 0,
- 'proj-datumgrid-north-america',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('CGG2013n83.byn',
- 'CGG2013n83.gtx',
- 'GTX',
- 'geoid_like',
- 0,
- 'proj-datumgrid-north-america',
- NULL, NULL, NULL, NULL);
-
- -- Iceland
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('ISN93_ISN2016.gsb',
- 'ISN93_ISN2016.gsb',
- 'NTv2',
- 'hgridshift',
- 0,
- 'proj-datumgrid-europe',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('ISN2004_ISN2016.gsb',
- 'ISN2004_ISN2016.gsb',
- 'NTv2',
- 'hgridshift',
- 0,
- 'proj-datumgrid-europe',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('Icegeoid_ISN2004.gtx',
- 'Icegeoid_ISN2004.gtx',
- 'GTX',
- 'geoid_like',
- 0,
- 'proj-datumgrid-europe',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('Icegeoid_ISN93.gtx',
- 'Icegeoid_ISN93.gtx',
- 'GTX',
- 'geoid_like',
- 0,
- 'proj-datumgrid-europe',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('Icegeoid_ISN2016.gtx',
- 'Icegeoid_ISN2016.gtx',
- 'GTX',
- 'geoid_like',
- 0,
- 'proj-datumgrid-europe',
- NULL, NULL, NULL, NULL);
-
--- New Zealand grid shift models. EPSG names are not for GTX files (at time of writing)
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('auckland-1946-to-nzvd2016-conversion.csv',
- 'auckht1946-nzvd2016.gtx',
- 'GTX',
- 'vgridshift',
- 0,
- 'proj-datumgrid-oceania',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('bluff-1955-to-nzvd2016-conversion.csv',
- 'blufht1955-nzvd2016.gtx',
- 'GTX',
- 'vgridshift',
- 0,
- 'proj-datumgrid-oceania',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('dunedin-1958-to-nzvd2016-conversion.csv',
- 'duneht1958-nzvd2016.gtx',
- 'GTX',
- 'vgridshift',
- 0,
- 'proj-datumgrid-oceania',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('dunedin-bluff-1960-to-nzvd2016-conversion.csv',
- 'dublht1960-nzvd2016.gtx',
- 'GTX',
- 'vgridshift',
- 0,
- 'proj-datumgrid-oceania',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('gisborne-1926-to-nzvd2016-conversion.csv',
- 'gisbht1926-nzvd2016.gtx',
- 'GTX',
- 'vgridshift',
- 0,
- 'proj-datumgrid-oceania',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('lyttelton-1937-to-nzvd2016-conversion.csv',
- 'lyttht1937-nzvd2016.gtx',
- 'GTX',
- 'vgridshift',
- 0,
- 'proj-datumgrid-oceania',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('moturiki-1953-to-nzvd2016-conversion.csv',
- 'motuht1953-nzvd2016.gtx',
- 'GTX',
- 'vgridshift',
- 0,
- 'proj-datumgrid-oceania',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('napier-1962-to-nzvd2016-conversion.csv',
- 'napiht1962-nzvd2016.gtx',
- 'GTX',
- 'vgridshift',
- 0,
- 'proj-datumgrid-oceania',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('nelson-1955-to-nzvd2016-conversion.csv',
- 'nelsht1955-nzvd2016.gtx',
- 'GTX',
- 'vgridshift',
- 0,
- 'proj-datumgrid-oceania',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('onetreepoint-1964-to-nzvd2016-conversion.csv',
- 'ontpht1964-nzvd2016.gtx',
- 'GTX',
- 'vgridshift',
- 0,
- 'proj-datumgrid-oceania',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('stewartisland-1977-to-nzvd2016-conversion.csv',
- 'stisht1977-nzvd2016.gtx',
- 'GTX',
- 'vgridshift',
- 0,
- 'proj-datumgrid-oceania',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('taranaki-1970-to-nzvd2016-conversion.csv',
- 'taraht1970-nzvd2016.gtx',
- 'GTX',
- 'vgridshift',
- 0,
- 'proj-datumgrid-oceania',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('wellington-1953-to-nzvd2016-conversion.csv',
- 'wellht1953-nzvd2016.gtx',
- 'GTX',
- 'vgridshift',
- 0,
- 'proj-datumgrid-oceania',
- NULL, NULL, NULL, NULL);
-
--- WARNING: this builds the new entries from the above deprecated ones
--- A check has been added in commit.sql to verify that a mapping from
--- auckht1946-nzvd2016.gtx exists in this table, due to the below insert
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- SELECT proj_grid_name,
- proj_grid_name, 'GTX',
- 'vgridshift',
- 0,
- 'proj-datumgrid-oceania',
- NULL, NULL, NULL, NULL
- FROM grid_alternatives
- WHERE proj_grid_name LIKE '%-nzvd2016.gtx';
-
+('NA27NA83.GSB','ca_que_mern_na27na83.tif','na27na83.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ca_que_mern_na27na83.tif',1,1,NULL),
+('NA27SCRS.GSB','ca_nrc_NA27SCRS.tif','NA27SCRS.GSB','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ca_nrc_NA27SCRS.tif',1,1,NULL),
+('QUE27-98.gsb','ca_nrc_NA27SCRS.tif','NA27SCRS.GSB','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ca_nrc_NA27SCRS.tif',1,1,NULL),
+('CQ77NA83.GSB','ca_que_mern_cq77na83.tif','cq77na83.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ca_que_mern_cq77na83.tif',1,1,NULL),
+('CGQ77-98.gsb','ca_nrc_CQ77SCRS.tif','CQ77SCRS.GSB','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ca_nrc_CQ77SCRS.tif',1,1,NULL),
+-- two grid names in EPSG point to the same file distributed by NRCan
+('NA83SCRS.GSB','ca_nrc_NA83SCRS.tif','NA83SCRS.GSB','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ca_nrc_NA83SCRS.tif',1,1,NULL),
+('NAD83-98.gsb','ca_nrc_NA83SCRS.tif','NA83SCRS.GSB','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ca_nrc_NA83SCRS.tif',1,1,NULL),
+('SK27-98.gsb','ca_nrc_SK27-98.tif','SK27-98.GSB','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ca_nrc_SK27-98.tif',1,1,NULL),
+('SK83-98.gsb','ca_nrc_SK83-98.tif','SK83-98.GSB','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/ca_nrc_SK83-98.tif',1,1,NULL),
+('HT2_0.byn','ca_nrc_HT2_2010v70.tif','HT2_2010v70.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/ca_nrc_HT2_2010v70.tif',1,1,NULL),
+('CGG2013i08a.byn','ca_nrc_CGG2013ai08.tif','CGG2013ai08.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/ca_nrc_CGG2013ai08.tif',1,1,NULL),
+('CGG2013n83a.byn','ca_nrc_CGG2013an83.tif','CGG2013an83.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/ca_nrc_CGG2013an83.tif',1,1,NULL),
+('CGG2013i83.byn','ca_nrc_CGG2013i08.tif','CGG2013i08.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/ca_nrc_CGG2013i08.tif',1,1,NULL),
+('CGG2013n83.byn','ca_nrc_CGG2013n83.tif','CGG2013n83.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/ca_nrc_CGG2013n83.tif',1,1,NULL),
+-- Iceland
+('ISN93_ISN2016.gsb','is_lmi_ISN93_ISN2016.tif','ISN93_ISN2016.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/is_lmi_ISN93_ISN2016.tif',1,1,NULL),
+('ISN2004_ISN2016.gsb','is_lmi_ISN2004_ISN2016.tif','ISN2004_ISN2016.gsb','GTiff','hgridshift',0,NULL,'https://cdn.proj.org/is_lmi_ISN2004_ISN2016.tif',1,1,NULL),
+('Icegeoid_ISN2004.gtx','is_lmi_Icegeoid_ISN2004.tif','Icegeoid_ISN2004.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/is_lmi_Icegeoid_ISN2004.tif',1,1,NULL),
+('Icegeoid_ISN93.gtx','is_lmi_Icegeoid_ISN93.tif','Icegeoid_ISN93.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/is_lmi_Icegeoid_ISN93.tif',1,1,NULL),
+('Icegeoid_ISN2016.gtx','is_lmi_Icegeoid_ISN2016.tif','Icegeoid_ISN2016.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/is_lmi_Icegeoid_ISN2016.tif',1,1,NULL),
+-- New Zealand grid shift models.
+('auckland-1946-to-nzvd2016-conversion.csv','nz_linz_auckht1946-nzvd2016.tif','auckht1946-nzvd2016.gtx','GTiff','vgridshift',0,NULL,'https://cdn.proj.org/nz_linz_auckht1946-nzvd2016.tif',1,1,NULL),
+-- Superseded entries
+('bluff-1955-to-nzvd2016-conversion.csv','nz_linz_blufht1955-nzvd2016.tif','blufht1955-nzvd2016.gtx','GTiff','vgridshift',0,NULL,'https://cdn.proj.org/nz_linz_blufht1955-nzvd2016.tif',1,1,NULL),
+('dunedin-1958-to-nzvd2016-conversion.csv','nz_linz_duneht1958-nzvd2016.tif','duneht1958-nzvd2016.gtx','GTiff','vgridshift',0,NULL,'https://cdn.proj.org/nz_linz_duneht1958-nzvd2016.tif',1,1,NULL),
+('dunedin-bluff-1960-to-nzvd2016-conversion.csv','nz_linz_dublht1960-nzvd2016.tif','dublht1960-nzvd2016.gtx','GTiff','vgridshift',0,NULL,'https://cdn.proj.org/nz_linz_dublht1960-nzvd2016.tif',1,1,NULL),
+('gisborne-1926-to-nzvd2016-conversion.csv','nz_linz_gisbht1926-nzvd2016.tif','gisbht1926-nzvd2016.gtx','GTiff','vgridshift',0,NULL,'https://cdn.proj.org/nz_linz_gisbht1926-nzvd2016.tif',1,1,NULL),
+('lyttelton-1937-to-nzvd2016-conversion.csv','nz_linz_lyttht1937-nzvd2016.tif','lyttht1937-nzvd2016.gtx','GTiff','vgridshift',0,NULL,'https://cdn.proj.org/nz_linz_lyttht1937-nzvd2016.tif',1,1,NULL),
+('moturiki-1953-to-nzvd2016-conversion.csv','nz_linz_motuht1953-nzvd2016.tif','motuht1953-nzvd2016.gtx','GTiff','vgridshift',0,NULL,'https://cdn.proj.org/nz_linz_motuht1953-nzvd2016.tif',1,1,NULL),
+('napier-1962-to-nzvd2016-conversion.csv','nz_linz_napiht1962-nzvd2016.tif','napiht1962-nzvd2016.gtx','GTiff','vgridshift',0,NULL,'https://cdn.proj.org/nz_linz_napiht1962-nzvd2016.tif',1,1,NULL),
+('nelson-1955-to-nzvd2016-conversion.csv','nz_linz_nelsht1955-nzvd2016.tif','nelsht1955-nzvd2016.gtx','GTiff','vgridshift',0,NULL,'https://cdn.proj.org/nz_linz_nelsht1955-nzvd2016.tif',1,1,NULL),
+('onetreepoint-1964-to-nzvd2016-conversion.csv','nz_linz_ontpht1964-nzvd2016.tif','ontpht1964-nzvd2016.gtx','GTiff','vgridshift',0,NULL,'https://cdn.proj.org/nz_linz_ontpht1964-nzvd2016.tif',1,1,NULL),
+('stewartisland-1977-to-nzvd2016-conversion.csv','nz_linz_stisht1977-nzvd2016.tif','stisht1977-nzvd2016.gtx','GTiff','vgridshift',0,NULL,'https://cdn.proj.org/nz_linz_stisht1977-nzvd2016.tif',1,1,NULL),
+('taranaki-1970-to-nzvd2016-conversion.csv','nz_linz_taraht1970-nzvd2016.tif','taraht1970-nzvd2016.gtx','GTiff','vgridshift',0,NULL,'https://cdn.proj.org/nz_linz_taraht1970-nzvd2016.tif',1,1,NULL),
+('wellington-1953-to-nzvd2016-conversion.csv','nz_linz_wellht1953-nzvd2016.tif','wellht1953-nzvd2016.gtx','GTiff','vgridshift',0,NULL,'https://cdn.proj.org/nz_linz_wellht1953-nzvd2016.tif',1,1,NULL),
+('auckht1946-nzvd2016.gtx','nz_linz_auckht1946-nzvd2016.tif','auckht1946-nzvd2016.gtx','GTiff','vgridshift',0,NULL,'https://cdn.proj.org/nz_linz_auckht1946-nzvd2016.tif',1,1,NULL),
+('blufht1955-nzvd2016.gtx','nz_linz_blufht1955-nzvd2016.tif','blufht1955-nzvd2016.gtx','GTiff','vgridshift',0,NULL,'https://cdn.proj.org/nz_linz_blufht1955-nzvd2016.tif',1,1,NULL),
+('duneht1958-nzvd2016.gtx','nz_linz_duneht1958-nzvd2016.tif','duneht1958-nzvd2016.gtx','GTiff','vgridshift',0,NULL,'https://cdn.proj.org/nz_linz_duneht1958-nzvd2016.tif',1,1,NULL),
+('dublht1960-nzvd2016.gtx','nz_linz_dublht1960-nzvd2016.tif','dublht1960-nzvd2016.gtx','GTiff','vgridshift',0,NULL,'https://cdn.proj.org/nz_linz_dublht1960-nzvd2016.tif',1,1,NULL),
+('gisbht1926-nzvd2016.gtx','nz_linz_gisbht1926-nzvd2016.tif','gisbht1926-nzvd2016.gtx','GTiff','vgridshift',0,NULL,'https://cdn.proj.org/nz_linz_gisbht1926-nzvd2016.tif',1,1,NULL),
+('lyttht1937-nzvd2016.gtx','nz_linz_lyttht1937-nzvd2016.tif','lyttht1937-nzvd2016.gtx','GTiff','vgridshift',0,NULL,'https://cdn.proj.org/nz_linz_lyttht1937-nzvd2016.tif',1,1,NULL),
+('motuht1953-nzvd2016.gtx','nz_linz_motuht1953-nzvd2016.tif','motuht1953-nzvd2016.gtx','GTiff','vgridshift',0,NULL,'https://cdn.proj.org/nz_linz_motuht1953-nzvd2016.tif',1,1,NULL),
+('napiht1962-nzvd2016.gtx','nz_linz_napiht1962-nzvd2016.tif','napiht1962-nzvd2016.gtx','GTiff','vgridshift',0,NULL,'https://cdn.proj.org/nz_linz_napiht1962-nzvd2016.tif',1,1,NULL),
+('nelsht1955-nzvd2016.gtx','nz_linz_nelsht1955-nzvd2016.tif','nelsht1955-nzvd2016.gtx','GTiff','vgridshift',0,NULL,'https://cdn.proj.org/nz_linz_nelsht1955-nzvd2016.tif',1,1,NULL),
+('ontpht1964-nzvd2016.gtx','nz_linz_ontpht1964-nzvd2016.tif','ontpht1964-nzvd2016.gtx','GTiff','vgridshift',0,NULL,'https://cdn.proj.org/nz_linz_ontpht1964-nzvd2016.tif',1,1,NULL),
+('stisht1977-nzvd2016.gtx','nz_linz_stisht1977-nzvd2016.tif','stisht1977-nzvd2016.gtx','GTiff','vgridshift',0,NULL,'https://cdn.proj.org/nz_linz_stisht1977-nzvd2016.tif',1,1,NULL),
+('taraht1970-nzvd2016.gtx','nz_linz_taraht1970-nzvd2016.tif','taraht1970-nzvd2016.gtx','GTiff','vgridshift',0,NULL,'https://cdn.proj.org/nz_linz_taraht1970-nzvd2016.tif',1,1,NULL),
+('wellht1953-nzvd2016.gtx','nz_linz_wellht1953-nzvd2016.tif','wellht1953-nzvd2016.gtx','GTiff','vgridshift',0,NULL,'https://cdn.proj.org/nz_linz_wellht1953-nzvd2016.tif',1,1,NULL),
-- Superseded
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('New_Zealand_Quasigeoid_2016.csv',
- 'nzgeoid2016.gtx',
- 'GTX',
- 'geoid_like',
- 0,
- 'proj-datumgrid-oceania',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('nzgeoid2016.gtx',
- 'nzgeoid2016.gtx',
- 'GTX',
- 'geoid_like',
- 0,
- 'proj-datumgrid-oceania',
- NULL, NULL, NULL, NULL);
-
+('New_Zealand_Quasigeoid_2016.csv','nz_linz_nzgeoid2016.tif','nzgeoid2016.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/nz_linz_nzgeoid2016.tif',1,1,NULL),
+('nzgeoid2016.gtx','nz_linz_nzgeoid2016.tif','nzgeoid2016.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/nz_linz_nzgeoid2016.tif',1,1,NULL),
-- Superseded
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('nzgeoid09.sid',
- 'nzgeoid2009.gtx',
- 'GTX',
- 'geoid_like',
- 0,
- 'proj-datumgrid-oceania',
- NULL, NULL, NULL, NULL);
-
-INSERT INTO grid_alternatives(original_grid_name,
- proj_grid_name,
- proj_grid_format,
- proj_method,
- inverse_direction,
- package_name,
- url, direct_download, open_license, directory)
- VALUES ('nzgeoid2009.gtx',
- 'nzgeoid2009.gtx',
- 'GTX',
- 'geoid_like',
- 0,
- 'proj-datumgrid-oceania',
- NULL, NULL, NULL, NULL);
+('nzgeoid09.sid','nz_linz_nzgeoid2009.tif','nzgeoid2009.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/nz_linz_nzgeoid2009.tif',1,1,NULL),
+('nzgeoid2009.gtx','nz_linz_nzgeoid2009.tif','nzgeoid2009.gtx','GTiff','geoid_like',0,NULL,'https://cdn.proj.org/nz_linz_nzgeoid2009.tif',1,1,NULL)
+;
diff --git a/data/sql/grid_alternatives_generated.sql b/data/sql/grid_alternatives_generated_noaa.sql
index 1c2e6ae8..974aeae2 100644
--- a/data/sql/grid_alternatives_generated.sql
+++ b/data/sql/grid_alternatives_generated_noaa.sql
@@ -4,787 +4,899 @@
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('conus.las',
+ 'us_noaa_conus.tif',
'conus',
- 'CTable2',
+ 'GTiff',
'hgridshift',
0,
- 'proj-datumgrid',
- NULL, NULL, NULL, NULL);
+ NULL,
+ 'https://cdn.proj.org/us_noaa_conus.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('alaska.las',
+ 'us_noaa_alaska.tif',
'alaska',
- 'CTable2',
+ 'GTiff',
'hgridshift',
0,
- 'proj-datumgrid',
- NULL, NULL, NULL, NULL);
+ NULL,
+ 'https://cdn.proj.org/us_noaa_alaska.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('hawaii.las',
+ 'us_noaa_hawaii.tif',
'hawaii',
- 'CTable2',
+ 'GTiff',
'hgridshift',
0,
- 'proj-datumgrid',
- NULL, NULL, NULL, NULL);
+ NULL,
+ 'https://cdn.proj.org/us_noaa_hawaii.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('prvi.las',
+ 'us_noaa_prvi.tif',
'prvi',
- 'CTable2',
+ 'GTiff',
'hgridshift',
0,
- 'proj-datumgrid',
- NULL, NULL, NULL, NULL);
+ NULL,
+ 'https://cdn.proj.org/us_noaa_prvi.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('stgeorge.las',
+ 'us_noaa_stgeorge.tif',
'stgeorge',
- 'CTable2',
+ 'GTiff',
'hgridshift',
0,
- 'proj-datumgrid',
- NULL, NULL, NULL, NULL);
+ NULL,
+ 'https://cdn.proj.org/us_noaa_stgeorge.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('stlrnc.las',
+ 'us_noaa_stlrnc.tif',
'stlrnc',
- 'CTable2',
+ 'GTiff',
'hgridshift',
0,
- 'proj-datumgrid',
- NULL, NULL, NULL, NULL);
+ NULL,
+ 'https://cdn.proj.org/us_noaa_stlrnc.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('stpaul.las',
+ 'us_noaa_stpaul.tif',
'stpaul',
- 'CTable2',
+ 'GTiff',
'hgridshift',
0,
- 'proj-datumgrid',
- NULL, NULL, NULL, NULL);
+ NULL,
+ 'https://cdn.proj.org/us_noaa_stpaul.tif', 1, 1, NULL);
-- NAD83 -> NAD83(HPGN) entries
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('alhpgn.las',
+ 'us_noaa_alhpgn.tif',
'alhpgn.gsb',
- 'NTv2',
+ 'GTiff',
'hgridshift',
0,
- 'proj-datumgrid-north-america',
- NULL, NULL, NULL, NULL);
+ NULL,
+ 'https://cdn.proj.org/us_noaa_alhpgn.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('arhpgn.las',
+ 'us_noaa_arhpgn.tif',
'arhpgn.gsb',
- 'NTv2',
+ 'GTiff',
'hgridshift',
0,
- 'proj-datumgrid-north-america',
- NULL, NULL, NULL, NULL);
+ NULL,
+ 'https://cdn.proj.org/us_noaa_arhpgn.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('azhpgn.las',
+ 'us_noaa_azhpgn.tif',
'azhpgn.gsb',
- 'NTv2',
+ 'GTiff',
'hgridshift',
0,
- 'proj-datumgrid-north-america',
- NULL, NULL, NULL, NULL);
+ NULL,
+ 'https://cdn.proj.org/us_noaa_azhpgn.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('cnhpgn.las',
+ 'us_noaa_cnhpgn.tif',
'cnhpgn.gsb',
- 'NTv2',
+ 'GTiff',
'hgridshift',
0,
- 'proj-datumgrid-north-america',
- NULL, NULL, NULL, NULL);
+ NULL,
+ 'https://cdn.proj.org/us_noaa_cnhpgn.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('cohpgn.las',
+ 'us_noaa_cohpgn.tif',
'cohpgn.gsb',
- 'NTv2',
+ 'GTiff',
'hgridshift',
0,
- 'proj-datumgrid-north-america',
- NULL, NULL, NULL, NULL);
+ NULL,
+ 'https://cdn.proj.org/us_noaa_cohpgn.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('cshpgn.las',
+ 'us_noaa_cshpgn.tif',
'cshpgn.gsb',
- 'NTv2',
+ 'GTiff',
'hgridshift',
0,
- 'proj-datumgrid-north-america',
- NULL, NULL, NULL, NULL);
+ NULL,
+ 'https://cdn.proj.org/us_noaa_cshpgn.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('emhpgn.las',
+ 'us_noaa_emhpgn.tif',
'emhpgn.gsb',
- 'NTv2',
+ 'GTiff',
'hgridshift',
0,
- 'proj-datumgrid-north-america',
- NULL, NULL, NULL, NULL);
+ NULL,
+ 'https://cdn.proj.org/us_noaa_emhpgn.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('eshpgn.las',
+ 'us_noaa_eshpgn.tif',
'eshpgn.gsb',
- 'NTv2',
+ 'GTiff',
'hgridshift',
0,
- 'proj-datumgrid-north-america',
- NULL, NULL, NULL, NULL);
+ NULL,
+ 'https://cdn.proj.org/us_noaa_eshpgn.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('ethpgn.las',
+ 'us_noaa_ethpgn.tif',
'ethpgn.gsb',
- 'NTv2',
+ 'GTiff',
'hgridshift',
0,
- 'proj-datumgrid-north-america',
- NULL, NULL, NULL, NULL);
+ NULL,
+ 'https://cdn.proj.org/us_noaa_ethpgn.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('flhpgn.las',
+ 'us_noaa_FL.tif',
'FL',
- 'CTable2',
+ 'GTiff',
'hgridshift',
0,
- 'proj-datumgrid',
- NULL, NULL, NULL, NULL);
+ NULL,
+ 'https://cdn.proj.org/us_noaa_FL.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('gahpgn.las',
+ 'us_noaa_gahpgn.tif',
'gahpgn.gsb',
- 'NTv2',
+ 'GTiff',
'hgridshift',
0,
- 'proj-datumgrid-north-america',
- NULL, NULL, NULL, NULL);
+ NULL,
+ 'https://cdn.proj.org/us_noaa_gahpgn.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('guhpgn.las',
+ 'us_noaa_guhpgn.tif',
'guhpgn.gsb',
- 'NTv2',
+ 'GTiff',
'hgridshift',
0,
- 'proj-datumgrid-north-america',
- NULL, NULL, NULL, NULL);
+ NULL,
+ 'https://cdn.proj.org/us_noaa_guhpgn.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('hihpgn.las',
+ 'us_noaa_hihpgn.tif',
'hihpgn.gsb',
- 'NTv2',
+ 'GTiff',
'hgridshift',
0,
- 'proj-datumgrid-north-america',
- NULL, NULL, NULL, NULL);
+ NULL,
+ 'https://cdn.proj.org/us_noaa_hihpgn.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('iahpgn.las',
+ 'us_noaa_iahpgn.tif',
'iahpgn.gsb',
- 'NTv2',
+ 'GTiff',
'hgridshift',
0,
- 'proj-datumgrid-north-america',
- NULL, NULL, NULL, NULL);
+ NULL,
+ 'https://cdn.proj.org/us_noaa_iahpgn.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('ilhpgn.las',
+ 'us_noaa_ilhpgn.tif',
'ilhpgn.gsb',
- 'NTv2',
+ 'GTiff',
'hgridshift',
0,
- 'proj-datumgrid-north-america',
- NULL, NULL, NULL, NULL);
+ NULL,
+ 'https://cdn.proj.org/us_noaa_ilhpgn.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('inhpgn.las',
+ 'us_noaa_inhpgn.tif',
'inhpgn.gsb',
- 'NTv2',
+ 'GTiff',
'hgridshift',
0,
- 'proj-datumgrid-north-america',
- NULL, NULL, NULL, NULL);
+ NULL,
+ 'https://cdn.proj.org/us_noaa_inhpgn.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('kshpgn.las',
+ 'us_noaa_kshpgn.tif',
'kshpgn.gsb',
- 'NTv2',
+ 'GTiff',
'hgridshift',
0,
- 'proj-datumgrid-north-america',
- NULL, NULL, NULL, NULL);
+ NULL,
+ 'https://cdn.proj.org/us_noaa_kshpgn.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('kyhpgn.las',
+ 'us_noaa_kyhpgn.tif',
'kyhpgn.gsb',
- 'NTv2',
+ 'GTiff',
'hgridshift',
0,
- 'proj-datumgrid-north-america',
- NULL, NULL, NULL, NULL);
+ NULL,
+ 'https://cdn.proj.org/us_noaa_kyhpgn.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('lahpgn.las',
+ 'us_noaa_lahpgn.tif',
'lahpgn.gsb',
- 'NTv2',
+ 'GTiff',
'hgridshift',
0,
- 'proj-datumgrid-north-america',
- NULL, NULL, NULL, NULL);
+ NULL,
+ 'https://cdn.proj.org/us_noaa_lahpgn.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('mdhpgn.las',
+ 'us_noaa_MD.tif',
'MD',
- 'CTable2',
+ 'GTiff',
'hgridshift',
0,
- 'proj-datumgrid',
- NULL, NULL, NULL, NULL);
+ NULL,
+ 'https://cdn.proj.org/us_noaa_MD.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('mehpgn.las',
+ 'us_noaa_mehpgn.tif',
'mehpgn.gsb',
- 'NTv2',
+ 'GTiff',
'hgridshift',
0,
- 'proj-datumgrid-north-america',
- NULL, NULL, NULL, NULL);
+ NULL,
+ 'https://cdn.proj.org/us_noaa_mehpgn.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('mihpgn.las',
+ 'us_noaa_mihpgn.tif',
'mihpgn.gsb',
- 'NTv2',
+ 'GTiff',
'hgridshift',
0,
- 'proj-datumgrid-north-america',
- NULL, NULL, NULL, NULL);
+ NULL,
+ 'https://cdn.proj.org/us_noaa_mihpgn.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('mnhpgn.las',
+ 'us_noaa_mnhpgn.tif',
'mnhpgn.gsb',
- 'NTv2',
+ 'GTiff',
'hgridshift',
0,
- 'proj-datumgrid-north-america',
- NULL, NULL, NULL, NULL);
+ NULL,
+ 'https://cdn.proj.org/us_noaa_mnhpgn.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('mohpgn.las',
+ 'us_noaa_mohpgn.tif',
'mohpgn.gsb',
- 'NTv2',
+ 'GTiff',
'hgridshift',
0,
- 'proj-datumgrid-north-america',
- NULL, NULL, NULL, NULL);
+ NULL,
+ 'https://cdn.proj.org/us_noaa_mohpgn.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('mshpgn.las',
+ 'us_noaa_mshpgn.tif',
'mshpgn.gsb',
- 'NTv2',
+ 'GTiff',
'hgridshift',
0,
- 'proj-datumgrid-north-america',
- NULL, NULL, NULL, NULL);
+ NULL,
+ 'https://cdn.proj.org/us_noaa_mshpgn.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('nbhpgn.las',
+ 'us_noaa_nbhpgn.tif',
'nbhpgn.gsb',
- 'NTv2',
+ 'GTiff',
'hgridshift',
0,
- 'proj-datumgrid-north-america',
- NULL, NULL, NULL, NULL);
+ NULL,
+ 'https://cdn.proj.org/us_noaa_nbhpgn.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('nchpgn.las',
+ 'us_noaa_nchpgn.tif',
'nchpgn.gsb',
- 'NTv2',
+ 'GTiff',
'hgridshift',
0,
- 'proj-datumgrid-north-america',
- NULL, NULL, NULL, NULL);
+ NULL,
+ 'https://cdn.proj.org/us_noaa_nchpgn.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('ndhpgn.las',
+ 'us_noaa_ndhpgn.tif',
'ndhpgn.gsb',
- 'NTv2',
+ 'GTiff',
'hgridshift',
0,
- 'proj-datumgrid-north-america',
- NULL, NULL, NULL, NULL);
+ NULL,
+ 'https://cdn.proj.org/us_noaa_ndhpgn.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('nehpgn.las',
+ 'us_noaa_nehpgn.tif',
'nehpgn.gsb',
- 'NTv2',
+ 'GTiff',
'hgridshift',
0,
- 'proj-datumgrid-north-america',
- NULL, NULL, NULL, NULL);
+ NULL,
+ 'https://cdn.proj.org/us_noaa_nehpgn.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('njhpgn.las',
+ 'us_noaa_njhpgn.tif',
'njhpgn.gsb',
- 'NTv2',
+ 'GTiff',
'hgridshift',
0,
- 'proj-datumgrid-north-america',
- NULL, NULL, NULL, NULL);
+ NULL,
+ 'https://cdn.proj.org/us_noaa_njhpgn.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('nmhpgn.las',
+ 'us_noaa_nmhpgn.tif',
'nmhpgn.gsb',
- 'NTv2',
+ 'GTiff',
'hgridshift',
0,
- 'proj-datumgrid-north-america',
- NULL, NULL, NULL, NULL);
+ NULL,
+ 'https://cdn.proj.org/us_noaa_nmhpgn.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('nvhpgn.las',
+ 'us_noaa_nvhpgn.tif',
'nvhpgn.gsb',
- 'NTv2',
+ 'GTiff',
'hgridshift',
0,
- 'proj-datumgrid-north-america',
- NULL, NULL, NULL, NULL);
+ NULL,
+ 'https://cdn.proj.org/us_noaa_nvhpgn.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('nyhpgn.las',
+ 'us_noaa_nyhpgn.tif',
'nyhpgn.gsb',
- 'NTv2',
+ 'GTiff',
'hgridshift',
0,
- 'proj-datumgrid-north-america',
- NULL, NULL, NULL, NULL);
+ NULL,
+ 'https://cdn.proj.org/us_noaa_nyhpgn.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('ohhpgn.las',
+ 'us_noaa_ohhpgn.tif',
'ohhpgn.gsb',
- 'NTv2',
+ 'GTiff',
'hgridshift',
0,
- 'proj-datumgrid-north-america',
- NULL, NULL, NULL, NULL);
+ NULL,
+ 'https://cdn.proj.org/us_noaa_ohhpgn.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('okhpgn.las',
+ 'us_noaa_okhpgn.tif',
'okhpgn.gsb',
- 'NTv2',
+ 'GTiff',
'hgridshift',
0,
- 'proj-datumgrid-north-america',
- NULL, NULL, NULL, NULL);
+ NULL,
+ 'https://cdn.proj.org/us_noaa_okhpgn.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('pahpgn.las',
+ 'us_noaa_pahpgn.tif',
'pahpgn.gsb',
- 'NTv2',
+ 'GTiff',
'hgridshift',
0,
- 'proj-datumgrid-north-america',
- NULL, NULL, NULL, NULL);
+ NULL,
+ 'https://cdn.proj.org/us_noaa_pahpgn.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('pvhpgn.las',
+ 'us_noaa_pvhpgn.tif',
'pvhpgn.gsb',
- 'NTv2',
+ 'GTiff',
'hgridshift',
0,
- 'proj-datumgrid-north-america',
- NULL, NULL, NULL, NULL);
+ NULL,
+ 'https://cdn.proj.org/us_noaa_pvhpgn.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('schpgn.las',
+ 'us_noaa_schpgn.tif',
'schpgn.gsb',
- 'NTv2',
+ 'GTiff',
'hgridshift',
0,
- 'proj-datumgrid-north-america',
- NULL, NULL, NULL, NULL);
+ NULL,
+ 'https://cdn.proj.org/us_noaa_schpgn.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('sdhpgn.las',
+ 'us_noaa_sdhpgn.tif',
'sdhpgn.gsb',
- 'NTv2',
+ 'GTiff',
'hgridshift',
0,
- 'proj-datumgrid-north-america',
- NULL, NULL, NULL, NULL);
+ NULL,
+ 'https://cdn.proj.org/us_noaa_sdhpgn.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('tnhpgn.las',
+ 'us_noaa_TN.tif',
'TN',
- 'CTable2',
+ 'GTiff',
'hgridshift',
0,
- 'proj-datumgrid',
- NULL, NULL, NULL, NULL);
+ NULL,
+ 'https://cdn.proj.org/us_noaa_TN.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('uthpgn.las',
+ 'us_noaa_uthpgn.tif',
'uthpgn.gsb',
- 'NTv2',
+ 'GTiff',
'hgridshift',
0,
- 'proj-datumgrid-north-america',
- NULL, NULL, NULL, NULL);
+ NULL,
+ 'https://cdn.proj.org/us_noaa_uthpgn.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('vahpgn.las',
+ 'us_noaa_vahpgn.tif',
'vahpgn.gsb',
- 'NTv2',
+ 'GTiff',
'hgridshift',
0,
- 'proj-datumgrid-north-america',
- NULL, NULL, NULL, NULL);
+ NULL,
+ 'https://cdn.proj.org/us_noaa_vahpgn.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('wihpgn.las',
+ 'us_noaa_WI.tif',
'WI',
- 'CTable2',
+ 'GTiff',
'hgridshift',
0,
- 'proj-datumgrid',
- NULL, NULL, NULL, NULL);
+ NULL,
+ 'https://cdn.proj.org/us_noaa_WI.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('wmhpgn.las',
+ 'us_noaa_wmhpgn.tif',
'wmhpgn.gsb',
- 'NTv2',
+ 'GTiff',
'hgridshift',
0,
- 'proj-datumgrid-north-america',
- NULL, NULL, NULL, NULL);
+ NULL,
+ 'https://cdn.proj.org/us_noaa_wmhpgn.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('wohpgn.las',
+ 'us_noaa_WO.tif',
'WO',
- 'CTable2',
+ 'GTiff',
'hgridshift',
0,
- 'proj-datumgrid',
- NULL, NULL, NULL, NULL);
+ NULL,
+ 'https://cdn.proj.org/us_noaa_WO.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('wshpgn.las',
+ 'us_noaa_wshpgn.tif',
'wshpgn.gsb',
- 'NTv2',
+ 'GTiff',
'hgridshift',
0,
- 'proj-datumgrid-north-america',
- NULL, NULL, NULL, NULL);
+ NULL,
+ 'https://cdn.proj.org/us_noaa_wshpgn.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('wthpgn.las',
+ 'us_noaa_wthpgn.tif',
'wthpgn.gsb',
- 'NTv2',
+ 'GTiff',
'hgridshift',
0,
- 'proj-datumgrid-north-america',
- NULL, NULL, NULL, NULL);
+ NULL,
+ 'https://cdn.proj.org/us_noaa_wthpgn.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('wvhpgn.las',
+ 'us_noaa_wvhpgn.tif',
'wvhpgn.gsb',
- 'NTv2',
+ 'GTiff',
'hgridshift',
0,
- 'proj-datumgrid-north-america',
- NULL, NULL, NULL, NULL);
+ NULL,
+ 'https://cdn.proj.org/us_noaa_wvhpgn.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('wyhpgn.las',
+ 'us_noaa_wyhpgn.tif',
'wyhpgn.gsb',
- 'NTv2',
+ 'GTiff',
'hgridshift',
0,
- 'proj-datumgrid-north-america',
- NULL, NULL, NULL, NULL);
+ NULL,
+ 'https://cdn.proj.org/us_noaa_wyhpgn.tif', 1, 1, NULL);
diff --git a/data/sql/ignf.sql b/data/sql/ignf.sql
index c0ffbf50..babefe19 100644
--- a/data/sql/ignf.sql
+++ b/data/sql/ignf.sql
@@ -2673,425 +2673,485 @@ INSERT INTO "compound_crs" VALUES('IGNF','WGS84UTM32.IGN78C','WGS84 UTM NORD FUS
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('ntf_r93.gsb', -- as referenced by the IGNF registry
+ 'fr_ign_ntf_r93.tif',
'ntf_r93.gsb',
- 'NTv2',
+ 'GTiff',
'hgridshift',
0,
- 'proj-datumgrid',
- NULL, NULL, NULL, NULL);
+ NULL,
+ 'https://cdn.proj.org/fr_ign_ntf_r93.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('http://geodesie.ign.fr/contenu/fichiers/documentation/grilles/outremer/ggpf02-Huahine.mnt', -- as referenced by the IGNF registry
+ 'fr_ign_ggpf02-Huahine.tif',
'ggpf02-Huahine.gtx',
- 'GTX',
+ 'GTiff',
'geoid_like',
0,
- 'proj-datumgrid-europe',
- NULL, NULL, NULL, NULL);
+ NULL,
+ 'https://cdn.proj.org/fr_ign_ggpf02-Huahine.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('http://geodesie.ign.fr/contenu/fichiers/documentation/grilles/outremer/ggg00v2.mnt', -- as referenced by the IGNF registry
+ 'fr_ign_ggg00v2.tif',
'ggg00v2.gtx',
- 'GTX',
+ 'GTiff',
'geoid_like',
0,
- 'proj-datumgrid-europe',
- NULL, NULL, NULL, NULL);
+ NULL,
+ 'https://cdn.proj.org/fr_ign_ggg00v2.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('http://geodesie.ign.fr/contenu/fichiers/documentation/grilles/outremer/ggpf10-Tahiti.mnt', -- as referenced by the IGNF registry
+ 'fr_ign_ggpf10-Tahiti.tif',
'ggpf10-Tahiti.gtx',
- 'GTX',
+ 'GTiff',
'geoid_like',
0,
- 'proj-datumgrid-europe',
- NULL, NULL, NULL, NULL);
+ NULL,
+ 'https://cdn.proj.org/fr_ign_ggpf10-Tahiti.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('http://geodesie.ign.fr/contenu/fichiers/documentation/grilles/outremer/ggpf02-Raiatea.mnt', -- as referenced by the IGNF registry
+ 'fr_ign_ggpf02-Raiatea.tif',
'ggpf02-Raiatea.gtx',
- 'GTX',
+ 'GTiff',
'geoid_like',
0,
- 'proj-datumgrid-europe',
- NULL, NULL, NULL, NULL);
+ NULL,
+ 'https://cdn.proj.org/fr_ign_ggpf02-Raiatea.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('http://geodesie.ign.fr/contenu/fichiers/documentation/grilles/outremer/ggg00_sbv2.mnt', -- as referenced by the IGNF registry
+ 'fr_ign_ggg00_sbv2.tif',
'ggg00_sbv2.gtx',
- 'GTX',
+ 'GTiff',
'geoid_like',
0,
- 'proj-datumgrid-europe',
- NULL, NULL, NULL, NULL);
+ NULL,
+ 'https://cdn.proj.org/fr_ign_ggg00_sbv2.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('http://geodesie.ign.fr/contenu/fichiers/documentation/grilles/outremer/gg10_smv2.mnt', -- as referenced by the IGNF registry
+ 'fr_ign_gg10_smv2.tif',
'gg10_smv2.gtx',
- 'GTX',
+ 'GTiff',
'geoid_like',
0,
- 'proj-datumgrid-europe',
- NULL, NULL, NULL, NULL);
+ NULL,
+ 'https://cdn.proj.org/fr_ign_gg10_smv2.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('http://geodesie.ign.fr/contenu/fichiers/documentation/grilles/outremer/RAMG2016.mnt', -- as referenced by the IGNF registry
+ 'fr_ign_RAMG2016.tif',
'RAMG2016.gtx',
- 'GTX',
+ 'GTiff',
'geoid_like',
0,
- 'proj-datumgrid-europe',
- NULL, NULL, NULL, NULL);
+ NULL,
+ 'https://cdn.proj.org/fr_ign_RAMG2016.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('http://geodesie.ign.fr/contenu/fichiers/documentation/grilles/outremer/ggker08v2.mnt', -- as referenced by the IGNF registry
+ 'fr_ign_ggker08v2.tif',
'ggker08v2.gtx',
- 'GTX',
+ 'GTiff',
'geoid_like',
0,
- 'proj-datumgrid-europe',
- NULL, NULL, NULL, NULL);
+ NULL,
+ 'https://cdn.proj.org/fr_ign_ggker08v2.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('http://geodesie.ign.fr/contenu/fichiers/documentation/grilles/outremer/ggspm06v1.mnt', -- as referenced by the IGNF registry
+ 'fr_ign_ggspm06v1.tif',
'ggspm06v1.gtx',
- 'GTX',
+ 'GTiff',
'geoid_like',
0,
- 'proj-datumgrid-europe',
- NULL, NULL, NULL, NULL);
+ NULL,
+ 'https://cdn.proj.org/fr_ign_ggspm06v1.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('http://geodesie.ign.fr/contenu/fichiers/documentation/grilles/outremer/gg10_sbv2.mnt', -- as referenced by the IGNF registry
+ 'fr_ign_gg10_sbv2.tif',
'gg10_sbv2.gtx',
- 'GTX',
+ 'GTiff',
'geoid_like',
0,
- 'proj-datumgrid-europe',
- NULL, NULL, NULL, NULL);
+ NULL,
+ 'https://cdn.proj.org/fr_ign_gg10_sbv2.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('http://geodesie.ign.fr/contenu/fichiers/documentation/grilles/outremer/ggguy15.mnt', -- as referenced by the IGNF registry
+ 'fr_ign_ggguy15.tif',
'ggguy15.gtx',
- 'GTX',
+ 'GTiff',
'geoid_like',
0,
- 'proj-datumgrid-europe',
- NULL, NULL, NULL, NULL);
+ NULL,
+ 'https://cdn.proj.org/fr_ign_ggguy15.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('http://geodesie.ign.fr/contenu/fichiers/documentation/grilles/metropole/RAF09.mnt', -- as referenced by the IGNF registry
+ 'fr_ign_RAF09.tif',
'RAF09.gtx',
- 'GTX',
+ 'GTiff',
'geoid_like',
0,
- 'proj-datumgrid-europe',
- NULL, NULL, NULL, NULL);
+ NULL,
+ 'https://cdn.proj.org/fr_ign_RAF09.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('http://geodesie.ign.fr/contenu/fichiers/documentation/grilles/outremer/ggpf08-Fakarava.mnt', -- as referenced by the IGNF registry
+ 'fr_ign_ggpf08-Fakarava.tif',
'ggpf08-Fakarava.gtx',
- 'GTX',
+ 'GTiff',
'geoid_like',
0,
- 'proj-datumgrid-europe',
- NULL, NULL, NULL, NULL);
+ NULL,
+ 'https://cdn.proj.org/fr_ign_ggpf08-Fakarava.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('http://geodesie.ign.fr/contenu/fichiers/documentation/grilles/outremer/ggm00v2.mnt', -- as referenced by the IGNF registry
+ 'fr_ign_ggm00v2.tif',
'ggm00v2.gtx',
- 'GTX',
+ 'GTiff',
'geoid_like',
0,
- 'proj-datumgrid-europe',
- NULL, NULL, NULL, NULL);
+ NULL,
+ 'https://cdn.proj.org/fr_ign_ggm00v2.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('http://geodesie.ign.fr/contenu/fichiers/documentation/grilles/outremer/ggpf10-Moorea.mnt', -- as referenced by the IGNF registry
+ 'fr_ign_ggpf10-Moorea.tif',
'ggpf10-Moorea.gtx',
- 'GTX',
+ 'GTiff',
'geoid_like',
0,
- 'proj-datumgrid-europe',
- NULL, NULL, NULL, NULL);
+ NULL,
+ 'https://cdn.proj.org/fr_ign_ggpf10-Moorea.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('http://geodesie.ign.fr/contenu/fichiers/documentation/grilles/outremer/ggpf02-Maupiti.mnt', -- as referenced by the IGNF registry
+ 'fr_ign_ggpf02-Maupiti.tif',
'ggpf02-Maupiti.gtx',
- 'GTX',
+ 'GTiff',
'geoid_like',
0,
- 'proj-datumgrid-europe',
- NULL, NULL, NULL, NULL);
+ NULL,
+ 'https://cdn.proj.org/fr_ign_ggpf02-Maupiti.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('http://geodesie.ign.fr/contenu/fichiers/documentation/grilles/outremer/ggg00_lsv2.mnt', -- as referenced by the IGNF registry
+ 'fr_ign_ggg00_lsv2.tif',
'ggg00_lsv2.gtx',
- 'GTX',
+ 'GTiff',
'geoid_like',
0,
- 'proj-datumgrid-europe',
- NULL, NULL, NULL, NULL);
+ NULL,
+ 'https://cdn.proj.org/fr_ign_ggg00_lsv2.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('http://geodesie.ign.fr/contenu/fichiers/documentation/grilles/outremer/ggm04v1.mnt', -- as referenced by the IGNF registry
+ 'fr_ign_ggm04v1.tif',
'ggm04v1.gtx',
- 'GTX',
+ 'GTiff',
'geoid_like',
0,
- 'proj-datumgrid-europe',
- NULL, NULL, NULL, NULL);
+ NULL,
+ 'https://cdn.proj.org/fr_ign_ggm04v1.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('http://geodesie.ign.fr/contenu/fichiers/documentation/grilles/outremer/ggg00_smv2.mnt', -- as referenced by the IGNF registry
+ 'fr_ign_ggg00_smv2.tif',
'ggg00_smv2.gtx',
- 'GTX',
+ 'GTiff',
'geoid_like',
0,
- 'proj-datumgrid-europe',
- NULL, NULL, NULL, NULL);
+ NULL,
+ 'https://cdn.proj.org/fr_ign_ggg00_smv2.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('http://geodesie.ign.fr/contenu/fichiers/documentation/grilles/outremer/RALD2016.mnt', -- as referenced by the IGNF registry
+ 'fr_ign_RALD2016.tif',
'RALD2016.gtx',
- 'GTX',
+ 'GTiff',
'geoid_like',
0,
- 'proj-datumgrid-europe',
- NULL, NULL, NULL, NULL);
+ NULL,
+ 'https://cdn.proj.org/fr_ign_RALD2016.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('http://geodesie.ign.fr/contenu/fichiers/documentation/grilles/outremer/RAR07_bl.gra', -- as referenced by the IGNF registry
+ 'fr_ign_RAR07_bl.tif',
'RAR07_bl.gtx',
- 'GTX',
+ 'GTiff',
'geoid_like',
0,
- 'proj-datumgrid-europe',
- NULL, NULL, NULL, NULL);
+ NULL,
+ 'https://cdn.proj.org/fr_ign_RAR07_bl.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('http://geodesie.ign.fr/contenu/fichiers/documentation/grilles/outremer/RALS2016.mnt', -- as referenced by the IGNF registry
+ 'fr_ign_RALS2016.tif',
'RALS2016.gtx',
- 'GTX',
+ 'GTiff',
'geoid_like',
0,
- 'proj-datumgrid-europe',
- NULL, NULL, NULL, NULL);
+ NULL,
+ 'https://cdn.proj.org/fr_ign_RALS2016.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('http://geodesie.ign.fr/contenu/fichiers/documentation/grilles/outremer/RALDW842016.mnt', -- as referenced by the IGNF registry
+ 'fr_ign_RALDW842016.tif',
'RALDW842016.gtx',
- 'GTX',
+ 'GTiff',
'geoid_like',
0,
- 'proj-datumgrid-europe',
- NULL, NULL, NULL, NULL);
+ NULL,
+ 'https://cdn.proj.org/fr_ign_RALDW842016.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('http://geodesie.ign.fr/contenu/fichiers/documentation/grilles/outremer/ggpf02-Tahaa.mnt', -- as referenced by the IGNF registry
+ 'fr_ign_ggpf02-Tahaa.tif',
'ggpf02-Tahaa.gtx',
- 'GTX',
+ 'GTiff',
'geoid_like',
0,
- 'proj-datumgrid-europe',
- NULL, NULL, NULL, NULL);
+ NULL,
+ 'https://cdn.proj.org/fr_ign_ggpf02-Tahaa.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('http://geodesie.ign.fr/contenu/fichiers/documentation/grilles/outremer/RAGTBT2016.mnt', -- as referenced by the IGNF registry
+ 'fr_ign_RAGTBT2016.tif',
'RAGTBT2016.gtx',
- 'GTX',
+ 'GTiff',
'geoid_like',
0,
- 'proj-datumgrid-europe',
- NULL, NULL, NULL, NULL);
+ NULL,
+ 'https://cdn.proj.org/fr_ign_RAGTBT2016.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('http://geodesie.ign.fr/contenu/fichiers/documentation/grilles/metropole/RAC09.mnt', -- as referenced by the IGNF registry
+ 'fr_ign_RAC09.tif',
'RAC09.gtx',
- 'GTX',
+ 'GTiff',
'geoid_like',
0,
- 'proj-datumgrid-europe',
- NULL, NULL, NULL, NULL);
+ NULL,
+ 'https://cdn.proj.org/fr_ign_RAC09.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('http://geodesie.ign.fr/contenu/fichiers/documentation/grilles/outremer/RAMART2016.mnt', -- as referenced by the IGNF registry
+ 'fr_ign_RAMART2016.tif',
'RAMART2016.gtx',
- 'GTX',
+ 'GTiff',
'geoid_like',
0,
- 'proj-datumgrid-europe',
- NULL, NULL, NULL, NULL);
+ NULL,
+ 'https://cdn.proj.org/fr_ign_RAMART2016.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('https://geodesie.ign.fr/contenu/fichiers/documentation/grilles/metropole/RAF18.mnt', -- as referenced by the IGNF registry
+ 'fr_ign_RAF18.tif',
'RAF18.gtx',
- 'GTX',
+ 'GTiff',
'geoid_like',
0,
- 'proj-datumgrid-europe',
- NULL, NULL, NULL, NULL);
+ NULL,
+ 'https://cdn.proj.org/fr_ign_RAF18.tif', 1, 1, NULL);
INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('http://geodesie.ign.fr/contenu/fichiers/documentation/grilles/outremer/ggpf02-Bora.mnt', -- as referenced by the IGNF registry
+ 'fr_ign_ggpf02-Bora.tif',
'ggpf02-Bora.gtx',
- 'GTX',
+ 'GTiff',
'geoid_like',
0,
- 'proj-datumgrid-europe',
- NULL, NULL, NULL, NULL);
+ NULL,
+ 'https://cdn.proj.org/fr_ign_ggpf02-Bora.tif', 1, 1, NULL);
--- Null transformations between RRAF and WGS84 adapted from EPSG
diff --git a/data/sql/proj_db_table_defs.sql b/data/sql/proj_db_table_defs.sql
index 59cef3bc..cd545666 100644
--- a/data/sql/proj_db_table_defs.sql
+++ b/data/sql/proj_db_table_defs.sql
@@ -1090,27 +1090,30 @@ END;
-- Table that contain alternative names for original grid names coming from the authority
CREATE TABLE grid_alternatives(
original_grid_name TEXT NOT NULL PRIMARY KEY, -- original grid name (e.g. Und_min2.5x2.5_egm2008_isw=82_WGS84_TideFree.gz). For LOS/LAS format, the .las files
- proj_grid_name TEXT NOT NULL, -- PROJ grid name (e.g egm08_25.gtx)
- proj_grid_format TEXT NOT NULL, -- one of 'CTable2', 'NTv1', 'NTv2', 'GTX'
+ proj_grid_name TEXT NOT NULL, -- PROJ >= 7 grid name (e.g us_nga_egm08_25.tif)
+ old_proj_grid_name TEXT, -- PROJ < 7 grid name (e.g egm08_25.gtx)
+ proj_grid_format TEXT NOT NULL, -- 'GTiff', 'GTX', 'NTv2'
proj_method TEXT NOT NULL, -- hgridshift, vgridshift or geoid_like
inverse_direction BOOLEAN NOT NULL CHECK (inverse_direction IN (0, 1)), -- whether the PROJ grid direction is reversed w.r.t to the authority one (TRUE in that case)
- package_name TEXT, -- package name that contains the file
+ package_name TEXT, -- no longer used. Must be NULL
url TEXT, -- optional URL where to download the PROJ grid
direct_download BOOLEAN CHECK (direct_download IN (0, 1)), -- whether the URL can be used directly (if 0, authentication etc might be needed)
open_license BOOLEAN CHECK (open_license IN (0, 1)),
directory TEXT, -- optional directory where the file might be located
CONSTRAINT fk_grid_alternatives_grid_packages FOREIGN KEY (package_name) REFERENCES grid_packages(package_name),
- CONSTRAINT check_grid_alternatives_grid_fromat CHECK (proj_grid_format IN ('CTable2', 'NTv1', 'NTv2', 'GTX')),
+ CONSTRAINT check_grid_alternatives_grid_fromat CHECK (proj_grid_format IN ('GTiff', 'GTX', 'NTv2')),
CONSTRAINT check_grid_alternatives_proj_method CHECK (proj_method IN ('hgridshift', 'vgridshift', 'geoid_like')),
- CONSTRAINT check_grid_alternatives_not_hgridshift CHECK (NOT(proj_method != 'hgridshift' AND proj_grid_format IN ('CTable2', 'NTv1', 'NTv2'))),
- CONSTRAINT check_grid_alternatives_not_vgridshift CHECK (NOT(proj_method = 'hgridshift' AND proj_grid_format IN ('GTX'))),
CONSTRAINT check_grid_alternatives_inverse_direction CHECK (NOT(proj_method = 'geoid_like' AND inverse_direction = 1)),
- CONSTRAINT check_grid_alternatives_package_name_url CHECK (NOT(package_name IS NOT NULL AND url IS NOT NULL)),
+ CONSTRAINT check_grid_alternatives_package_name CHECK (package_name IS NULL),
CONSTRAINT check_grid_alternatives_direct_download_url CHECK (NOT(direct_download IS NULL AND url IS NOT NULL)),
- CONSTRAINT check_grid_alternatives_open_license_url CHECK (NOT(open_license IS NULL AND url IS NOT NULL))
+ CONSTRAINT check_grid_alternatives_open_license_url CHECK (NOT(open_license IS NULL AND url IS NOT NULL)),
+ CONSTRAINT check_grid_alternatives_constraint_cdn CHECK (NOT(url LIKE 'https://cdn.proj.org/%' AND (direct_download = 0 OR open_license = 0 OR url != 'https://cdn.proj.org/' || proj_grid_name)))
);
+CREATE INDEX idx_grid_alternatives_proj_grid_name ON grid_alternatives(proj_grid_name);
+CREATE INDEX idx_grid_alternatives_old_proj_grid_name ON grid_alternatives(old_proj_grid_name);
+
CREATE TRIGGER grid_alternatives_insert_trigger
BEFORE INSERT ON grid_alternatives
FOR EACH ROW BEGIN
diff --git a/data/sql_filelist.cmake b/data/sql_filelist.cmake
index 676a7a2c..041bdd74 100644
--- a/data/sql_filelist.cmake
+++ b/data/sql_filelist.cmake
@@ -29,7 +29,7 @@ set(SQL_FILES
"${SQL_DIR}/esri.sql"
"${SQL_DIR}/ignf.sql"
"${SQL_DIR}/grid_alternatives.sql"
- "${SQL_DIR}/grid_alternatives_generated.sql"
+ "${SQL_DIR}/grid_alternatives_generated_noaa.sql"
"${SQL_DIR}/customizations.sql"
"${SQL_DIR}/commit.sql"
)
diff --git a/include/proj/io.hpp b/include/proj/io.hpp
index e2f48dd4..3dcf7928 100644
--- a/include/proj/io.hpp
+++ b/include/proj/io.hpp
@@ -839,6 +839,11 @@ class PROJ_GCC_DLL DatabaseContext {
bool &gridAvailable) const;
PROJ_INTERNAL std::string
+ getProjGridName(const std::string &oldProjGridName);
+
+ PROJ_INTERNAL std::string getOldProjGridName(const std::string &gridName);
+
+ PROJ_INTERNAL std::string
getAliasFromOfficialName(const std::string &officialName,
const std::string &tableName,
const std::string &source) const;
diff --git a/scripts/build_db_create_ignf_from_xml.py b/scripts/build_db_create_ignf_from_xml.py
index f39f8d81..63e22770 100755
--- a/scripts/build_db_create_ignf_from_xml.py
+++ b/scripts/build_db_create_ignf_from_xml.py
@@ -1067,27 +1067,31 @@ all_sql.append("""--- Grid alternatives""")
all_sql.append('')
all_sql.append("""INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
package_name,
url, direct_download, open_license, directory)
VALUES ('ntf_r93.gsb', -- as referenced by the IGNF registry
+ 'fr_ign_ntf_r93.tif',
'ntf_r93.gsb',
- 'NTv2',
+ 'GTiff',
'hgridshift',
0,
- 'proj-datumgrid',
- NULL, NULL, NULL, NULL);
+ NULL,
+ 'https://cdn.proj.org/fr_ign_ntf_r93.tif', 1, 1, NULL);
""")
for grid in setVerticalGrids:
original_grid_name = grid
- proj_grid_name = grid[grid.rfind('/')+1:].replace('.txt', '.gtx').replace('.mnt', '.gtx').replace('.gra', '.gtx')
+ old_proj_grid_name = grid[grid.rfind('/')+1:].replace('.txt', '.gtx').replace('.mnt', '.gtx').replace('.gra', '.gtx')
+ gtiff_grid_name = 'fr_ign_' + old_proj_grid_name[0:-4] + '.tif'
all_sql.append("""INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
@@ -1095,11 +1099,12 @@ for grid in setVerticalGrids:
url, direct_download, open_license, directory)
VALUES ('%s', -- as referenced by the IGNF registry
'%s',
- 'GTX',
+ '%s',
+ 'GTiff',
'geoid_like',
0,
- 'proj-datumgrid-europe',
- NULL, NULL, NULL, NULL);""" % (original_grid_name, proj_grid_name))
+ NULL,
+ '%s', 1, 1, NULL);""" % (original_grid_name, gtiff_grid_name, old_proj_grid_name, 'https://cdn.proj.org/' + gtiff_grid_name))
all_sql.append('')
diff --git a/scripts/build_db_from_esri.py b/scripts/build_db_from_esri.py
index f4237b9b..500dc5d0 100755
--- a/scripts/build_db_from_esri.py
+++ b/scripts/build_db_from_esri.py
@@ -1568,12 +1568,14 @@ def import_geogtran():
all_sql.append(sql)
if filename in ('c1hpgn', 'c2hpgn'):
- sql = """INSERT INTO grid_alternatives VALUES ('%s', '%s', 'NTv2', 'hgridshift', 0, 'proj-datumgrid-north-america', NULL, NULL, NULL, NULL);""" % (
- filename, filename + '.gsb')
+ tiff_filename = 'us_noaa_' + filename + '.tif'
+ sql = """INSERT INTO grid_alternatives VALUES ('%s', '%s', '%s', 'GTiff', 'hgridshift', 0, NULL, '%s', 1, 1, NULL);""" % (
+ filename, tiff_filename, filename + '.gsb', 'https://cdn.proj.org/' + tiff_filename)
all_sql.append(sql)
elif filename == 'wohpgn':
- sql = """INSERT INTO grid_alternatives VALUES ('%s', '%s', 'CTable2', 'hgridshift', 0, 'proj-datumgrid', NULL, NULL, NULL, NULL);""" % (
- filename, 'WO')
+ tiff_filename = 'us_noaa_' + filename + '.tif'
+ sql = """INSERT INTO grid_alternatives VALUES ('%s', '%s', '%s', 'GTiff', 'hgridshift', , NULL, '%s', 1, 1, NULL);""" % (
+ filename, tiff_filename, 'WO', 'https://cdn.proj.org/' + tiff_filename)
all_sql.append(sql)
elif filename == 'prvi':
continue
diff --git a/scripts/build_grid_alternatives_generated.py b/scripts/build_grid_alternatives_generated_noaa.py
index 6570a771..96e12842 100755
--- a/scripts/build_grid_alternatives_generated.py
+++ b/scripts/build_grid_alternatives_generated_noaa.py
@@ -91,13 +91,15 @@ script_dir_name = os.path.dirname(os.path.realpath(__file__))
sql_dir_name = os.path.join(os.path.dirname(script_dir_name), 'data', 'sql')
f = open(os.path.join(sql_dir_name, 'grid_alternatives_generated') + '.sql', 'wb')
-f.write("--- This file has been generated by scripts/build_grid_alternatives_generated.py. DO NOT EDIT !\n\n".encode('UTF-8'))
+f.write("--- This file has been generated by scripts/build_grid_alternatives_generated_noaa.py. DO NOT EDIT !\n\n".encode('UTF-8'))
f.write("-- NADCON (NAD27 -> NAD83) entries\n\n".encode('UTF-8'))
for grid in nadcon_grids:
+ tiff_name = 'us_noaa_' + grid + '.tif'
sql = """INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
@@ -105,11 +107,12 @@ for grid in nadcon_grids:
url, direct_download, open_license, directory)
VALUES ('%s',
'%s',
- 'CTable2',
+ '%s',
+ 'GTiff',
'hgridshift',
0,
- 'proj-datumgrid',
- NULL, NULL, NULL, NULL);""" % (grid + '.las', grid)
+ NULL,
+ '%s', 1, 1, NULL);""" % (grid + '.las', tiff_name, grid, 'https://cdn.proj.org/' + tiff_name)
f.write((sql + '\n').encode('UTF-8'))
@@ -123,8 +126,10 @@ for row in hpgn_grids:
ctable2_name = None
las_filename = ntv2_name[0:-4] + ".las"
if ctable2_name:
+ tiff_name = 'us_noaa_' + ctable2_name+'.tif'
sql = """INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
@@ -132,14 +137,17 @@ for row in hpgn_grids:
url, direct_download, open_license, directory)
VALUES ('%s',
'%s',
- 'CTable2',
+ '%s',
+ 'GTiff',
'hgridshift',
0,
- 'proj-datumgrid',
- NULL, NULL, NULL, NULL);""" % (las_filename, ctable2_name)
+ NULL,
+ '%s', 1, 1, NULL);""" % (las_filename, tiff_name, ctable2_name, 'https://cdn.proj.org/' + tiff_name)
else:
+ tiff_name = 'us_noaa_' + ntv2_name[0:-4]+'.tif'
sql = """INSERT INTO grid_alternatives(original_grid_name,
proj_grid_name,
+ old_proj_grid_name,
proj_grid_format,
proj_method,
inverse_direction,
@@ -147,11 +155,12 @@ for row in hpgn_grids:
url, direct_download, open_license, directory)
VALUES ('%s',
'%s',
- 'NTv2',
+ '%s',
+ 'GTiff',
'hgridshift',
0,
- 'proj-datumgrid-north-america',
- NULL, NULL, NULL, NULL);""" % (las_filename, ntv2_name)
+ NULL,
+ '%s', 1, 1, NULL);""" % (las_filename, tiff_name, ntv2_name, 'https://cdn.proj.org/' + tiff_name)
f.write((sql + '\n').encode('UTF-8'))
f.close()
diff --git a/scripts/grid_checks.py b/scripts/grid_checks.py
index 3b748d2c..6177fd4a 100755
--- a/scripts/grid_checks.py
+++ b/scripts/grid_checks.py
@@ -35,21 +35,19 @@ import fnmatch
import os
import sqlite3
-parser = argparse.ArgumentParser(description='Check database and proj-datumgrid consistency.')
+parser = argparse.ArgumentParser(description='Check database and proj-datumgrid-geotiff consistency.')
parser.add_argument('path_to_proj_db',
help='Full pathname to proj.db')
parser.add_argument('path_to_proj_datumgrid',
- help='Full pathname to the root of the proj_datumgrid git repository')
+ help='Full pathname to the root of the proj_datumgrid_geotiff git repository')
group = parser.add_mutually_exclusive_group(required=True)
group.add_argument('--not-in-grid-alternatives', dest='not_in_grid_alternatives', action='store_true',
help='list grids mentionned in grid_transformation but missing in grid_alternatives')
-group.add_argument('--not-in-proj-datumgrid', dest='not_in_proj_datum_grid', action='store_true',
+group.add_argument('--not-in-proj-datumgrid-geotiff', dest='not_in_proj_datum_grid_geotiff', action='store_true',
help='list grids registered in grid_alternatives, but missing in proj-datumgrid')
group.add_argument('--not-in-db', dest='not_in_db', action='store_true',
help='list grids in proj-datumgrid, but not registered in grid_alternatives')
-group.add_argument('--check-filelist', dest='check_filelist', action='store_true',
- help='check consistency of proj-datumgrid filelist.csv')
args = parser.parse_args()
@@ -66,7 +64,7 @@ if args.not_in_grid_alternatives:
for row in res:
print(row)
-elif args.not_in_proj_datum_grid:
+elif args.not_in_proj_datum_grid_geotiff:
set_grids = set()
for root, dirnames, filenames in os.walk(proj_datumgrid):
@@ -97,157 +95,5 @@ elif args.not_in_db:
res = conn.execute("SELECT 1 FROM grid_alternatives WHERE proj_grid_name = ?", (filename,))
if not res.fetchone():
print('WARNING: grid ' + filename + ' in proj-datumgrid but missing in grid_alternatives')
-
-elif args.check_filelist:
-
- from osgeo import gdal
-
- set_grids = set()
- non_gsb_hgrids = ('ntv1_can.dat',
- 'alaska',
- 'conus',
- 'hawaii',
- 'prvi',
- 'stgeorge',
- 'stlrnc',
- 'stpaul',
- 'FL'.lower(),
- 'MD'.lower(),
- 'TN'.lower(),
- 'WI'.lower(),
- 'WO'.lower(),)
- for root, dirnames, filenames in os.walk(proj_datumgrid):
- if '.git' in root:
- continue
- for filename in fnmatch.filter(filenames, '*'):
- filename_lower = filename.lower()
- if '.aux.xml' in filename_lower:
- continue
- if '.gsb' in filename_lower or '.gtx' in filename_lower:
- set_grids.add(filename)
- elif filename_lower in non_gsb_hgrids:
- set_grids.add(filename)
-
- conn = sqlite3.connect(dbname)
-
- set_filenames_from_csv = set()
- with open(os.path.join(proj_datumgrid,'filelist.csv')) as f:
- reader = csv.reader(f)
- first_line = True
- for row in reader:
- if first_line:
- assert row == ['filename', 'type', 'area', 'unit', 'source_crs', 'target_crs', 'interpolation_crs', 'agency_name', 'source', 'licence']
- first_line = False
- continue
- filename, type, _, unit, source_crs, target_crs, interpolation_crs, _, _, _ = row
- if type in ('DEFORMATION_MODEL', 'VELOCITY_MODEL'):
- continue
- assert type in ('HORIZONTAL_OFFSET',
- 'VERTICAL_OFFSET_GEOGRAPHIC_TO_VERTICAL',
- 'VERTICAL_OFFSET_VERTICAL_TO_VERTICAL'), type
- set_filenames_from_csv.add(filename)
-
- assert filename in set_grids, filename
- if filename.lower().endswith('.gsb') or filename.lower() in non_gsb_hgrids:
- assert type == 'HORIZONTAL_OFFSET', (filename, type)
- else:
- assert type in ('VERTICAL_OFFSET_GEOGRAPHIC_TO_VERTICAL',
- 'VERTICAL_OFFSET_VERTICAL_TO_VERTICAL'), (filename, type)
-
- for dirname in ('.', 'europe', 'north-america', 'oceania', 'world'):
- filename_with_path_tmp = os.path.join(proj_datumgrid, dirname, filename)
- if os.path.exists(filename_with_path_tmp):
- filename_with_path = filename_with_path_tmp
- break
- assert filename_with_path
-
- ds = gdal.Open(filename_with_path)
- assert ds, filename
- gt = ds.GetGeoTransform()
- grid_w = gt[0]
- grid_n = gt[3]
- grid_e = gt[0] + gt[1] * ds.RasterXSize
- grid_s = gt[3] + gt[5] * ds.RasterYSize
- if grid_w > 180:
- grid_w -= 360
- grid_e -= 360
-
- source_crs_name = None
- target_crs_name = None
-
- if source_crs.startswith('EPSG:') or source_crs.startswith('IGNF:'):
- auth_name = source_crs[0:4]
- code = source_crs[len('EPSG:'):]
- res = conn.execute("SELECT name, table_name FROM crs_view WHERE auth_name = ? AND code = ?", (auth_name, code))
- source_crs_name, table_name = res.fetchone()
- if type == 'HORIZONTAL_OFFSET':
- assert table_name == 'geodetic_crs', (filename, table_name, code)
- res = conn.execute("SELECT type FROM geodetic_crs WHERE auth_name = ? AND code = ?", (auth_name, code))
- geodetic_crs_type, = res.fetchone()
- assert geodetic_crs_type == 'geographic 2D', (filename, geodetic_crs_type, code)
- elif type == 'VERTICAL_OFFSET_GEOGRAPHIC_TO_VERTICAL':
- assert table_name == 'geodetic_crs', (filename, table_name, code)
- res = conn.execute("SELECT type FROM geodetic_crs WHERE auth_name = ? AND code = ?", (auth_name, code))
- geodetic_crs_type, = res.fetchone()
- if code == '4269': # NAD 83
- assert geodetic_crs_type == 'geographic 2D', (filename, geodetic_crs_type, code)
- else:
- assert geodetic_crs_type == 'geographic 3D', (filename, geodetic_crs_type, code)
- elif type == 'VERTICAL_OFFSET_VERTICAL_TO_VERTICAL':
- assert table_name == 'vertical_crs', (filename, table_name, code)
-
- res = conn.execute("SELECT south_lat, north_lat, west_lon, east_lon FROM crs_view c, area a WHERE c.area_of_use_auth_name = a.auth_name AND c.area_of_use_code = a.code AND c.auth_name = ? AND c.code = ?", (auth_name, code))
- s, n, w, e = res.fetchone()
- if w > e:
- if grid_w > 0:
- e += 360
- else:
- w -= 360
- if filename not in ('c1hpgn.gsb', 'c2hpgn.gsb', 'guhpgn.gsb', 'g2009g01.gtx','g2009s01.gtx','g2012bg0.gtx', 'MAY76V20.gsb', ):
- assert grid_w < e, (filename, source_crs, grid_w, e)
- assert grid_e > w, (filename, source_crs, grid_e, w)
- assert grid_s < n, (filename, source_crs, grid_s, n)
- assert grid_n > s, (filename, source_crs, grid_n, s)
-
- else:
- assert False, (filename, source_crs)
-
- if target_crs.startswith('EPSG:') or target_crs.startswith('IGNF:'):
- auth_name = target_crs[0:4]
- code = target_crs[len('EPSG:'):]
- res = conn.execute("SELECT name, table_name FROM crs_view WHERE auth_name = ? AND code = ?", (auth_name, code))
- target_crs_name, table_name = res.fetchone()
- if type == 'HORIZONTAL_OFFSET':
- assert table_name == 'geodetic_crs', (filename, table_name, code)
- res = conn.execute("SELECT type FROM geodetic_crs WHERE auth_name = ? AND code = ?", (auth_name, code))
- geodetic_crs_type, = res.fetchone()
- assert geodetic_crs_type == 'geographic 2D', (filename, geodetic_crs_type, code)
- elif type in ('VERTICAL_OFFSET_GEOGRAPHIC_TO_VERTICAL', 'VERTICAL_OFFSET_VERTICAL_TO_VERTICAL'):
- assert table_name == 'vertical_crs', (filename, table_name, code)
-
- res = conn.execute("SELECT south_lat, north_lat, west_lon, east_lon FROM crs_view c, area a WHERE c.area_of_use_auth_name = a.auth_name AND c.area_of_use_code = a.code AND c.auth_name = ? AND c.code = ?", (auth_name, code))
- s, n, w, e = res.fetchone()
- if w > e:
- if grid_w > 0:
- e += 360
- else:
- w -= 360
- if filename not in ('c1hpgn.gsb', 'c2hpgn.gsb', 'guhpgn.gsb', 'ggpf08-Fakarava.gtx'):
- assert grid_w < e, (filename, target_crs, grid_w, e)
- assert grid_e > w, (filename, target_crs, grid_e, w)
- assert grid_s < n, (filename, target_crs, grid_s, n)
- assert grid_n > s, (filename, target_crs, grid_n, s)
-
- elif target_crs.startswith('VERTCRS['):
- assert type == 'VERTICAL_OFFSET_GEOGRAPHIC_TO_VERTICAL', (filename, target_crs)
- else:
- assert False, (filename, target_crs)
-
- #print(filename, source_crs_name, target_crs_name)
-
- for f in set_grids:
- if f not in set_filenames_from_csv:
- print(f + ' is missing in filelist.csv')
-
else:
raise Exception('unknown mode')
diff --git a/src/filemanager.cpp b/src/filemanager.cpp
index 005e734b..4218fde1 100644
--- a/src/filemanager.cpp
+++ b/src/filemanager.cpp
@@ -40,6 +40,8 @@
#include "filemanager.hpp"
#include "proj.h"
#include "proj/internal/internal.hpp"
+#include "proj/internal/io_internal.hpp"
+#include "proj/io.hpp"
#include "proj_internal.h"
#include <sys/stat.h>
@@ -1411,6 +1413,20 @@ static void *pj_open_file_with_manager(projCtx ctx, const char *name,
.release();
}
+// ---------------------------------------------------------------------------
+
+static NS_PROJ::io::DatabaseContextPtr getDBcontext(PJ_CONTEXT *ctx) {
+ try {
+ if (ctx->cpp_context == nullptr) {
+ ctx->cpp_context = new projCppContext(ctx);
+ }
+ return ctx->cpp_context->getDatabaseContext().as_nullable();
+ } catch (const std::exception &e) {
+ pj_log(ctx, PJ_LOG_DEBUG, "%s", e.what());
+ return nullptr;
+ }
+}
+
/************************************************************************/
/* FileManager::open_resource_file() */
/************************************************************************/
@@ -1426,27 +1442,54 @@ NS_PROJ::FileManager::open_resource_file(projCtx ctx, const char *name) {
reinterpret_cast<NS_PROJ::File *>(pj_open_lib_internal(
ctx, name, "rb", pj_open_file_with_manager, nullptr, 0)));
- // Retry with a .tif extension if the file name doesn't end with .tif
+ // Retry with the new proj grid name if the file name doesn't end with .tif
if (file == nullptr && !is_tilde_slash(name) &&
!is_rel_or_absolute_filename(name) && !starts_with(name, "http://") &&
!starts_with(name, "https://") && strcmp(name, "proj.db") != 0 &&
strstr(name, ".tif") == nullptr) {
- std::string filename(name);
- auto pos = filename.rfind('.');
- if (pos + 4 == filename.size()) {
- filename = filename.substr(0, pos) + ".tif";
- file.reset(reinterpret_cast<NS_PROJ::File *>(
- pj_open_lib_internal(ctx, filename.c_str(), "rb",
- pj_open_file_with_manager, nullptr, 0)));
- } else {
- // For example for resource files like 'alaska'
- filename += ".tif";
- file.reset(reinterpret_cast<NS_PROJ::File *>(
- pj_open_lib_internal(ctx, filename.c_str(), "rb",
- pj_open_file_with_manager, nullptr, 0)));
+
+ auto dbContext = getDBcontext(ctx);
+ if (dbContext) {
+ try {
+ auto filename = dbContext->getProjGridName(name);
+ if (!filename.empty()) {
+ file.reset(reinterpret_cast<NS_PROJ::File *>(
+ pj_open_lib_internal(ctx, filename.c_str(), "rb",
+ pj_open_file_with_manager, nullptr,
+ 0)));
+ if (file) {
+ pj_ctx_set_errno(ctx, 0);
+ }
+ }
+ } catch (const std::exception &e) {
+ pj_log(ctx, PJ_LOG_DEBUG, "%s", e.what());
+ return nullptr;
+ }
}
- if (file) {
- pj_ctx_set_errno(ctx, 0);
+ }
+ // Retry with the old proj grid name if the file name ends with .tif
+ else if (file == nullptr && !is_tilde_slash(name) &&
+ !is_rel_or_absolute_filename(name) &&
+ !starts_with(name, "http://") && !starts_with(name, "https://") &&
+ strstr(name, ".tif") != nullptr) {
+
+ auto dbContext = getDBcontext(ctx);
+ if (dbContext) {
+ try {
+ auto filename = dbContext->getOldProjGridName(name);
+ if (!filename.empty()) {
+ file.reset(reinterpret_cast<NS_PROJ::File *>(
+ pj_open_lib_internal(ctx, filename.c_str(), "rb",
+ pj_open_file_with_manager, nullptr,
+ 0)));
+ if (file) {
+ pj_ctx_set_errno(ctx, 0);
+ }
+ }
+ } catch (const std::exception &e) {
+ pj_log(ctx, PJ_LOG_DEBUG, "%s", e.what());
+ return nullptr;
+ }
}
}
@@ -1459,35 +1502,12 @@ NS_PROJ::FileManager::open_resource_file(projCtx ctx, const char *name) {
remote_file += '/';
}
remote_file += name;
- auto pos = remote_file.rfind('.');
- if (pos + 4 == remote_file.size()) {
- remote_file = remote_file.substr(0, pos) + ".tif";
- file = open(ctx, remote_file.c_str(),
- NS_PROJ::FileAccess::READ_ONLY);
- if (file) {
- pj_log(ctx, PJ_LOG_DEBUG_MAJOR, "Using %s",
- remote_file.c_str());
- pj_ctx_set_errno(ctx, 0);
- }
- } else {
- // For example for resource files like 'alaska'
- auto remote_file_tif = remote_file + ".tif";
- file = open(ctx, remote_file_tif.c_str(),
- NS_PROJ::FileAccess::READ_ONLY);
- if (file) {
- pj_log(ctx, PJ_LOG_DEBUG_MAJOR, "Using %s",
- remote_file_tif.c_str());
- pj_ctx_set_errno(ctx, 0);
- } else {
- // Init files
- file = open(ctx, remote_file.c_str(),
- NS_PROJ::FileAccess::READ_ONLY);
- if (file) {
- pj_log(ctx, PJ_LOG_DEBUG_MAJOR, "Using %s",
- remote_file.c_str());
- pj_ctx_set_errno(ctx, 0);
- }
- }
+ file =
+ open(ctx, remote_file.c_str(), NS_PROJ::FileAccess::READ_ONLY);
+ if (file) {
+ pj_log(ctx, PJ_LOG_DEBUG_MAJOR, "Using %s",
+ remote_file.c_str());
+ pj_ctx_set_errno(ctx, 0);
}
}
}
@@ -1522,7 +1542,8 @@ PAFile pj_open_lib(projCtx ctx, const char *name, const char *mode) {
* as a short filename.
*
* @param ctx context.
- * @param short_filename short filename (e.g. egm96_15.gtx). Must not be NULL.
+ * @param short_filename short filename (e.g. us_nga_egm96_15.tif).
+ * Must not be NULL.
* @param out_full_filename output buffer, of size out_full_filename_size, that
* will receive the full filename on success.
* Will be zero-terminated.
@@ -1531,14 +1552,33 @@ PAFile pj_open_lib(projCtx ctx, const char *name, const char *mode) {
*/
int pj_find_file(projCtx ctx, const char *short_filename,
char *out_full_filename, size_t out_full_filename_size) {
- auto f = reinterpret_cast<NS_PROJ::File *>(pj_open_lib_internal(
- ctx, short_filename, "rb", pj_open_file_with_manager, out_full_filename,
- out_full_filename_size));
- if (f != nullptr) {
- delete f;
- return 1;
+ auto file = std::unique_ptr<NS_PROJ::File>(
+ reinterpret_cast<NS_PROJ::File *>(pj_open_lib_internal(
+ ctx, short_filename, "rb", pj_open_file_with_manager,
+ out_full_filename, out_full_filename_size)));
+
+ // Retry with the old proj grid name if the file name ends with .tif
+ if (file == nullptr && strstr(short_filename, ".tif") != nullptr) {
+
+ auto dbContext = getDBcontext(ctx);
+ if (dbContext) {
+ try {
+ auto filename = dbContext->getOldProjGridName(short_filename);
+ if (!filename.empty()) {
+ file.reset(reinterpret_cast<NS_PROJ::File *>(
+ pj_open_lib_internal(ctx, filename.c_str(), "rb",
+ pj_open_file_with_manager,
+ out_full_filename,
+ out_full_filename_size)));
+ }
+ } catch (const std::exception &e) {
+ pj_log(ctx, PJ_LOG_DEBUG, "%s", e.what());
+ return false;
+ }
+ }
}
- return 0;
+
+ return file != nullptr;
}
/************************************************************************/
diff --git a/src/iso19111/coordinateoperation.cpp b/src/iso19111/coordinateoperation.cpp
index a8c7c902..6d97adc3 100644
--- a/src/iso19111/coordinateoperation.cpp
+++ b/src/iso19111/coordinateoperation.cpp
@@ -8448,6 +8448,29 @@ static const std::string &_getCTABLE2Filename(const Transformation *op,
//! @cond Doxygen_Suppress
static const std::string &
+_getHorizontalShiftGTIFFFilename(const Transformation *op, bool allowInverse) {
+ const auto &l_method = op->method();
+ const auto &methodName = l_method->nameStr();
+ if (ci_equal(methodName, PROJ_WKT2_NAME_METHOD_HORIZONTAL_SHIFT_GTIFF) ||
+ (allowInverse &&
+ ci_equal(methodName,
+ INVERSE_OF + PROJ_WKT2_NAME_METHOD_HORIZONTAL_SHIFT_GTIFF))) {
+ const auto &fileParameter = op->parameterValue(
+ EPSG_NAME_PARAMETER_LATITUDE_LONGITUDE_DIFFERENCE_FILE,
+ EPSG_CODE_PARAMETER_LATITUDE_LONGITUDE_DIFFERENCE_FILE);
+ if (fileParameter &&
+ fileParameter->type() == ParameterValue::Type::FILENAME) {
+ return fileParameter->valueFile();
+ }
+ }
+ return nullString;
+}
+//! @endcond
+
+// ---------------------------------------------------------------------------
+
+//! @cond Doxygen_Suppress
+static const std::string &
_getHeightToGeographic3DFilename(const Transformation *op, bool allowInverse) {
const auto &methodName = op->method()->nameStr();
@@ -8658,7 +8681,30 @@ TransformationNNPtr Transformation::substitutePROJAlternativeGridNames(
const auto &l_sourceCRS = sourceCRS();
const auto &l_targetCRS = targetCRS();
const auto &l_accuracies = coordinateOperationAccuracies();
- if (projGridFormat == "NTv1") {
+ if (projGridFormat == "GTiff") {
+ auto parameters =
+ std::vector<OperationParameterNNPtr>{createOpParamNameEPSGCode(
+ EPSG_CODE_PARAMETER_LATITUDE_LONGITUDE_DIFFERENCE_FILE)};
+ auto methodProperties = util::PropertyMap().set(
+ common::IdentifiedObject::NAME_KEY,
+ PROJ_WKT2_NAME_METHOD_HORIZONTAL_SHIFT_GTIFF);
+ auto values = std::vector<ParameterValueNNPtr>{
+ ParameterValue::createFilename(projFilename)};
+ if (inverseDirection) {
+ return create(createPropertiesForInverse(
+ self.as_nullable().get(), true, false),
+ l_targetCRS, l_sourceCRS, nullptr,
+ methodProperties, parameters, values,
+ l_accuracies)
+ ->inverseAsTransformation();
+
+ } else {
+ return create(createSimilarPropertiesTransformation(self),
+ l_sourceCRS, l_targetCRS, nullptr,
+ methodProperties, parameters, values,
+ l_accuracies);
+ }
+ } else if (projGridFormat == "NTv1") {
if (inverseDirection) {
return createNTv1(createPropertiesForInverse(
self.as_nullable().get(), true, false),
@@ -9336,10 +9382,14 @@ void Transformation::_exportToPROJString(
const auto &NTv1Filename = _getNTv1Filename(this, true);
const auto &NTv2Filename = _getNTv2Filename(this, true);
const auto &CTABLE2Filename = _getCTABLE2Filename(this, true);
+ const auto &HorizontalShiftGTIFFFilename =
+ _getHorizontalShiftGTIFFFilename(this, true);
const auto &hGridShiftFilename =
- !NTv1Filename.empty() ? NTv1Filename : !NTv2Filename.empty()
- ? NTv2Filename
- : CTABLE2Filename;
+ !HorizontalShiftGTIFFFilename.empty()
+ ? HorizontalShiftGTIFFFilename
+ : !NTv1Filename.empty() ? NTv1Filename : !NTv2Filename.empty()
+ ? NTv2Filename
+ : CTABLE2Filename;
if (!hGridShiftFilename.empty()) {
auto sourceCRSGeog =
dynamic_cast<const crs::GeographicCRS *>(sourceCRS().get());
@@ -9417,11 +9467,15 @@ void Transformation::_exportToPROJString(
if (fileParameter &&
fileParameter->type() == ParameterValue::Type::FILENAME) {
formatter->addStep("vgridshift");
- // The vertcon grids go from NGVD 29 to NAVD 88, with units
- // in millimeter (see
- // https://github.com/OSGeo/proj.4/issues/1071)
formatter->addParam("grids", fileParameter->valueFile());
- formatter->addParam("multiplier", 0.001);
+ if (fileParameter->valueFile().find(".tif") != std::string::npos) {
+ formatter->addParam("multiplier", 1.0);
+ } else {
+ // The vertcon grids go from NGVD 29 to NAVD 88, with units
+ // in millimeter (see
+ // https://github.com/OSGeo/proj.4/issues/1071), for gtx files
+ formatter->addParam("multiplier", 0.001);
+ }
return;
}
}
@@ -11155,7 +11209,9 @@ struct FilterResults {
!gridDesc.available) {
gridsAvailable = false;
}
- if (gridDesc.packageName.empty() && !gridDesc.available) {
+ if (gridDesc.packageName.empty() &&
+ !(!gridDesc.url.empty() && gridDesc.openLicense) &&
+ !gridDesc.available) {
gridsKnown = false;
}
}
diff --git a/src/iso19111/factory.cpp b/src/iso19111/factory.cpp
index 7e680d31..54aa993f 100644
--- a/src/iso19111/factory.cpp
+++ b/src/iso19111/factory.cpp
@@ -987,7 +987,8 @@ bool DatabaseContext::lookForGridInfo(
openLicense = (row[3].empty() ? row[4] : row[3]) == "1";
directDownload = (row[5].empty() ? row[6] : row[5]) == "1";
- if (considerKnownGridsAsAvailable && !packageName.empty()) {
+ if (considerKnownGridsAsAvailable &&
+ (!packageName.empty() || (!url.empty() && openLicense))) {
gridAvailable = true;
}
@@ -1012,6 +1013,30 @@ bool DatabaseContext::isKnownName(const std::string &name,
sql += "\" WHERE name = ? LIMIT 1";
return !d->run(sql, {name}).empty();
}
+// ---------------------------------------------------------------------------
+
+std::string
+DatabaseContext::getProjGridName(const std::string &oldProjGridName) {
+ auto res = d->run("SELECT proj_grid_name FROM grid_alternatives WHERE "
+ "old_proj_grid_name = ?",
+ {oldProjGridName});
+ if (res.empty()) {
+ return std::string();
+ }
+ return res.front()[0];
+}
+
+// ---------------------------------------------------------------------------
+
+std::string DatabaseContext::getOldProjGridName(const std::string &gridName) {
+ auto res = d->run("SELECT old_proj_grid_name FROM grid_alternatives WHERE "
+ "proj_grid_name = ?",
+ {gridName});
+ if (res.empty()) {
+ return std::string();
+ }
+ return res.front()[0];
+}
// ---------------------------------------------------------------------------
diff --git a/src/proj_constants.h b/src/proj_constants.h
index d5b484c6..54dc7873 100644
--- a/src/proj_constants.h
+++ b/src/proj_constants.h
@@ -508,6 +508,8 @@
#define PROJ_WKT2_NAME_METHOD_CTABLE2 "CTABLE2"
+#define PROJ_WKT2_NAME_METHOD_HORIZONTAL_SHIFT_GTIFF "HORIZONTAL_SHIFT_GTIFF"
+
/* ------------------------------------------------------------------------ */
#define EPSG_CODE_METHOD_VERTCON 9658
diff --git a/test/cli/testprojinfo_out.dist b/test/cli/testprojinfo_out.dist
index e7a92915..f06e13c7 100644
--- a/test/cli/testprojinfo_out.dist
+++ b/test/cli/testprojinfo_out.dist
@@ -287,7 +287,7 @@ Operation No. 1:
DERIVED_FROM(EPSG):1312, NAD27 to NAD83 (3), 2.0 m, Canada
PROJ string:
-+proj=pipeline +step +proj=axisswap +order=2,1 +step +proj=unitconvert +xy_in=deg +xy_out=rad +step +proj=hgridshift +grids=ntv1_can.dat +step +proj=unitconvert +xy_in=rad +xy_out=deg +step +proj=axisswap +order=2,1
++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 +xy_out=deg +step +proj=axisswap +order=2,1
WKT2:2019 string:
COORDINATEOPERATION["NAD27 to NAD83 (3)",
@@ -321,9 +321,8 @@ COORDINATEOPERATION["NAD27 to NAD83 (3)",
ORDER[2],
ANGLEUNIT["degree",0.0174532925199433]],
ID["EPSG",4269]]],
- METHOD["NTv1",
- ID["EPSG",9614]],
- PARAMETERFILE["Latitude and longitude difference file","ntv1_can.dat"],
+ METHOD["HORIZONTAL_SHIFT_GTIFF"],
+ PARAMETERFILE["Latitude and longitude difference file","ca_nrc_ntv1_can.tif"],
OPERATIONACCURACY[2.0],
USAGE[
SCOPE["Historic record only - now superseded - see remarks."],
@@ -337,7 +336,7 @@ Operation No. 2:
DERIVED_FROM(EPSG):1313, NAD27 to NAD83 (4), 1.5 m, Canada - NAD27
PROJ string:
-+proj=pipeline +step +proj=axisswap +order=2,1 +step +proj=unitconvert +xy_in=deg +xy_out=rad +step +proj=hgridshift +grids=ntv2_0.gsb +step +proj=unitconvert +xy_in=rad +xy_out=deg +step +proj=axisswap +order=2,1
++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 +xy_out=deg +step +proj=axisswap +order=2,1
WKT2:2019 string:
COORDINATEOPERATION["NAD27 to NAD83 (4)",
@@ -371,9 +370,8 @@ COORDINATEOPERATION["NAD27 to NAD83 (4)",
ORDER[2],
ANGLEUNIT["degree",0.0174532925199433]],
ID["EPSG",4269]]],
- METHOD["NTv2",
- ID["EPSG",9615]],
- PARAMETERFILE["Latitude and longitude difference file","ntv2_0.gsb"],
+ METHOD["HORIZONTAL_SHIFT_GTIFF"],
+ PARAMETERFILE["Latitude and longitude difference file","ca_nrc_ntv2_0.tif"],
OPERATIONACCURACY[1.5],
USAGE[
SCOPE["Accuracy 1-2 metres."],
@@ -387,7 +385,7 @@ Operation No. 3:
DERIVED_FROM(EPSG):1241, NAD27 to NAD83 (1), 0.15 m, USA - CONUS including EEZ
PROJ string:
-+proj=pipeline +step +proj=axisswap +order=2,1 +step +proj=unitconvert +xy_in=deg +xy_out=rad +step +proj=hgridshift +grids=conus +step +proj=unitconvert +xy_in=rad +xy_out=deg +step +proj=axisswap +order=2,1
++proj=pipeline +step +proj=axisswap +order=2,1 +step +proj=unitconvert +xy_in=deg +xy_out=rad +step +proj=hgridshift +grids=us_noaa_conus.tif +step +proj=unitconvert +xy_in=rad +xy_out=deg +step +proj=axisswap +order=2,1
WKT2:2019 string:
COORDINATEOPERATION["NAD27 to NAD83 (1)",
@@ -421,8 +419,8 @@ COORDINATEOPERATION["NAD27 to NAD83 (1)",
ORDER[2],
ANGLEUNIT["degree",0.0174532925199433]],
ID["EPSG",4269]]],
- METHOD["CTABLE2"],
- PARAMETERFILE["Latitude and longitude difference file","conus"],
+ METHOD["HORIZONTAL_SHIFT_GTIFF"],
+ PARAMETERFILE["Latitude and longitude difference file","us_noaa_conus.tif"],
OPERATIONACCURACY[0.15],
USAGE[
SCOPE["Accuracy at 67% confidence level is 0.15m onshore, 5m nearshore and undetermined farther offshore."],
@@ -436,7 +434,7 @@ Operation No. 4:
DERIVED_FROM(EPSG):1243, NAD27 to NAD83 (2), 0.5 m, USA - Alaska including EEZ
PROJ string:
-+proj=pipeline +step +proj=axisswap +order=2,1 +step +proj=unitconvert +xy_in=deg +xy_out=rad +step +proj=hgridshift +grids=alaska +step +proj=unitconvert +xy_in=rad +xy_out=deg +step +proj=axisswap +order=2,1
++proj=pipeline +step +proj=axisswap +order=2,1 +step +proj=unitconvert +xy_in=deg +xy_out=rad +step +proj=hgridshift +grids=us_noaa_alaska.tif +step +proj=unitconvert +xy_in=rad +xy_out=deg +step +proj=axisswap +order=2,1
WKT2:2019 string:
COORDINATEOPERATION["NAD27 to NAD83 (2)",
@@ -470,8 +468,8 @@ COORDINATEOPERATION["NAD27 to NAD83 (2)",
ORDER[2],
ANGLEUNIT["degree",0.0174532925199433]],
ID["EPSG",4269]]],
- METHOD["CTABLE2"],
- PARAMETERFILE["Latitude and longitude difference file","alaska"],
+ METHOD["HORIZONTAL_SHIFT_GTIFF"],
+ PARAMETERFILE["Latitude and longitude difference file","us_noaa_alaska.tif"],
OPERATIONACCURACY[0.5],
USAGE[
SCOPE["Accuracy at 67% confidence level is 0.5m onshore, 5m nearshore and undetermined farther offshore."],
@@ -485,7 +483,7 @@ Operation No. 5:
DERIVED_FROM(EPSG):1573, NAD27 to NAD83 (6), 1.5 m, Canada - Quebec
PROJ string:
-+proj=pipeline +step +proj=axisswap +order=2,1 +step +proj=unitconvert +xy_in=deg +xy_out=rad +step +proj=hgridshift +grids=na27na83.gsb +step +proj=unitconvert +xy_in=rad +xy_out=deg +step +proj=axisswap +order=2,1
++proj=pipeline +step +proj=axisswap +order=2,1 +step +proj=unitconvert +xy_in=deg +xy_out=rad +step +proj=hgridshift +grids=ca_que_mern_na27na83.tif +step +proj=unitconvert +xy_in=rad +xy_out=deg +step +proj=axisswap +order=2,1
WKT2:2019 string:
COORDINATEOPERATION["NAD27 to NAD83 (6)",
@@ -519,9 +517,8 @@ COORDINATEOPERATION["NAD27 to NAD83 (6)",
ORDER[2],
ANGLEUNIT["degree",0.0174532925199433]],
ID["EPSG",4269]]],
- METHOD["NTv2",
- ID["EPSG",9615]],
- PARAMETERFILE["Latitude and longitude difference file","na27na83.gsb"],
+ METHOD["HORIZONTAL_SHIFT_GTIFF"],
+ PARAMETERFILE["Latitude and longitude difference file","ca_que_mern_na27na83.tif"],
OPERATIONACCURACY[1.5],
USAGE[
SCOPE["Accuracy 1-2 metres."],
@@ -952,7 +949,7 @@ Operation No. 1:
unknown id, Inverse of NAD83(2011) to NAVD88 height (3), 0.015 m, USA - CONUS - onshore
PROJ string:
-+proj=pipeline +step +proj=axisswap +order=2,1 +step +proj=unitconvert +xy_in=deg +xy_out=rad +step +proj=vgridshift +grids=g2018u0.gtx +multiplier=1 +step +proj=unitconvert +xy_in=rad +xy_out=deg +step +proj=axisswap +order=2,1
++proj=pipeline +step +proj=axisswap +order=2,1 +step +proj=unitconvert +xy_in=deg +xy_out=rad +step +proj=vgridshift +grids=us_noaa_g2018u0.tif +multiplier=1 +step +proj=unitconvert +xy_in=rad +xy_out=deg +step +proj=axisswap +order=2,1
-------------------------------------
Operation No. 2:
@@ -960,7 +957,7 @@ Operation No. 2:
unknown id, Inverse of NAD83(2011) to NAVD88 height (2), 0.02 m, USA - Alaska
PROJ string:
-+proj=pipeline +step +proj=axisswap +order=2,1 +step +proj=unitconvert +xy_in=deg +xy_out=rad +step +proj=vgridshift +grids=g2012ba0.gtx +multiplier=1 +step +proj=unitconvert +xy_in=rad +xy_out=deg +step +proj=axisswap +order=2,1
++proj=pipeline +step +proj=axisswap +order=2,1 +step +proj=unitconvert +xy_in=deg +xy_out=rad +step +proj=vgridshift +grids=us_noaa_g2012ba0.tif +multiplier=1 +step +proj=unitconvert +xy_in=rad +xy_out=deg +step +proj=axisswap +order=2,1
Testing NGF IGN69 height to RGF93: projinfo -s EPSG:5720 -t EPSG:4965 -o PROJ
Candidate operations found: 2
@@ -970,7 +967,7 @@ Operation No. 1:
INVERSE(DERIVED_FROM(EPSG)):8885, Inverse of RGF93 to NGF IGN69 height (3), 0.01 m, France - mainland onshore
PROJ string:
-+proj=vgridshift +grids=RAF18.gtx +multiplier=1
++proj=vgridshift +grids=fr_ign_RAF18.tif +multiplier=1
-------------------------------------
Operation No. 2:
@@ -1084,7 +1081,7 @@ Operation No. 1:
DERIVED_FROM(EPSG):5656, GDA94 to AHD height (49), 0.03 m, Australia - mainland
PROJ string:
-+proj=pipeline +step +inv +proj=vgridshift +grids=AUSGeoid09_V1.01.gtx +multiplier=1
++proj=pipeline +step +inv +proj=vgridshift +grids=au_ga_AUSGeoid09_V1.01.tif +multiplier=1
Testing -s "GDA2020" -t "AHD height" --grid-check none -o PROJ --spatial-test intersects
Candidate operations found: 1
@@ -1094,7 +1091,7 @@ Operation No. 1:
DERIVED_FROM(EPSG):8451, GDA2020 to AHD height (1), 0.03 m, Australia Christmas and Cocos - onshore
PROJ string:
-+proj=pipeline +step +inv +proj=vgridshift +grids=AUSGeoid2020_20180201.gtx +multiplier=1
++proj=pipeline +step +inv +proj=vgridshift +grids=au_ga_AUSGeoid2020_20180201.tif +multiplier=1
Testing -k ellipsoid WGS84
PROJ string:
diff --git a/test/unit/test_c_api.cpp b/test/unit/test_c_api.cpp
index df0bffb0..b74e5cf0 100644
--- a/test/unit/test_c_api.cpp
+++ b/test/unit/test_c_api.cpp
@@ -1298,12 +1298,10 @@ TEST_F(CApi, proj_coordoperation_get_grid_used) {
ASSERT_NE(fullName, nullptr);
ASSERT_NE(packageName, nullptr);
ASSERT_NE(url, nullptr);
- EXPECT_EQ(shortName, std::string("ntv1_can.dat"));
+ EXPECT_EQ(shortName, std::string("ca_nrc_ntv1_can.tif"));
// EXPECT_EQ(fullName, std::string(""));
- EXPECT_EQ(packageName, std::string("proj-datumgrid"));
- EXPECT_TRUE(std::string(url).find(
- "https://download.osgeo.org/proj/proj-datumgrid-") == 0)
- << std::string(url);
+ EXPECT_EQ(packageName, std::string(""));
+ EXPECT_EQ(std::string(url), "https://cdn.proj.org/ca_nrc_ntv1_can.tif");
EXPECT_EQ(directDownload, 1);
EXPECT_EQ(openLicense, 1);
}
@@ -3105,8 +3103,8 @@ TEST_F(CApi, proj_grid_get_info_from_database) {
}
{
EXPECT_TRUE(proj_grid_get_info_from_database(
- m_ctxt, "GDA94_GDA2020_conformal.gsb", nullptr, nullptr, nullptr,
- nullptr, nullptr, nullptr));
+ m_ctxt, "au_icsm_GDA94_GDA2020_conformal.tif", nullptr, nullptr,
+ nullptr, nullptr, nullptr, nullptr));
}
{
const char *name = nullptr;
@@ -3116,8 +3114,8 @@ TEST_F(CApi, proj_grid_get_info_from_database) {
int open_license = 0;
int available = 0;
EXPECT_TRUE(proj_grid_get_info_from_database(
- m_ctxt, "GDA94_GDA2020_conformal.gsb", &name, &package_name, &url,
- &direct_download, &open_license, &available));
+ m_ctxt, "au_icsm_GDA94_GDA2020_conformal.tif", &name, &package_name,
+ &url, &direct_download, &open_license, &available));
ASSERT_NE(name, nullptr);
ASSERT_NE(package_name, nullptr);
ASSERT_NE(url, nullptr);
diff --git a/test/unit/test_factory.cpp b/test/unit/test_factory.cpp
index d49db5bf..10c06e81 100644
--- a/test/unit/test_factory.cpp
+++ b/test/unit/test_factory.cpp
@@ -2245,6 +2245,7 @@ TEST_F(FactoryWithTmpDatabase, lookForGridInfo) {
ASSERT_TRUE(execute("INSERT INTO grid_alternatives(original_grid_name,"
"proj_grid_name, "
+ "old_proj_grid_name, "
"proj_grid_format, "
"proj_method, "
"inverse_direction, "
@@ -2252,7 +2253,8 @@ TEST_F(FactoryWithTmpDatabase, lookForGridInfo) {
"url, direct_download, open_license, directory) "
"VALUES ('null', "
"'PROJ_fake_grid', "
- "'CTable2', "
+ "'old_PROJ_fake_grid', "
+ "'NTv2', "
"'hgridshift', "
"0, "
"NULL, "
diff --git a/test/unit/test_network.cpp b/test/unit/test_network.cpp
index 241e6bbc..35dd2b1e 100644
--- a/test/unit/test_network.cpp
+++ b/test/unit/test_network.cpp
@@ -65,7 +65,7 @@ TEST(networking, initial_check) {
if (!hCurlHandle)
return;
curl_easy_setopt(hCurlHandle, CURLOPT_URL,
- "https://cdn.proj.org/ntf_r93.tif");
+ "https://cdn.proj.org/fr_ign_ntf_r93.tif");
curl_easy_setopt(hCurlHandle, CURLOPT_RANGE, "0-1");
curl_easy_setopt(hCurlHandle, CURLOPT_WRITEFUNCTION, noop_curl_write_func);
@@ -95,7 +95,7 @@ TEST(networking, basic) {
const char *pipeline =
"+proj=pipeline "
"+step +proj=unitconvert +xy_in=deg +xy_out=rad "
- "+step +proj=hgridshift +grids=https://cdn.proj.org/ntf_r93.tif "
+ "+step +proj=hgridshift +grids=https://cdn.proj.org/fr_ign_ntf_r93.tif "
"+step +proj=unitconvert +xy_in=rad +xy_out=deg";
// network access disabled by default
@@ -1055,6 +1055,10 @@ TEST(networking, simul_file_change_while_opened) {
#ifdef CURL_ENABLED
TEST(networking, curl_hgridshift) {
+ if (!networkAccessOK) {
+ return;
+ }
+
auto ctx = proj_context_create();
proj_grid_cache_set_enable(ctx, false);
proj_context_set_enable_network(ctx, true);
@@ -1086,6 +1090,10 @@ TEST(networking, curl_hgridshift) {
#ifdef CURL_ENABLED
TEST(networking, curl_vgridshift) {
+ if (!networkAccessOK) {
+ return;
+ }
+
auto ctx = proj_context_create();
proj_grid_cache_set_enable(ctx, false);
proj_context_set_enable_network(ctx, true);
@@ -1118,6 +1126,10 @@ TEST(networking, curl_vgridshift) {
#ifdef CURL_ENABLED
TEST(networking, curl_vgridshift_vertcon) {
+ if (!networkAccessOK) {
+ return;
+ }
+
auto ctx = proj_context_create();
proj_grid_cache_set_enable(ctx, false);
proj_context_set_enable_network(ctx, true);
@@ -1239,7 +1251,7 @@ TEST(networking, cache_basic) {
const char *pipeline =
"+proj=pipeline "
"+step +proj=unitconvert +xy_in=deg +xy_out=rad "
- "+step +proj=hgridshift +grids=https://cdn.proj.org/ntf_r93.tif "
+ "+step +proj=hgridshift +grids=https://cdn.proj.org/fr_ign_ntf_r93.tif "
"+step +proj=unitconvert +xy_in=rad +xy_out=deg";
auto ctx = proj_context_create();
@@ -1265,7 +1277,7 @@ TEST(networking, cache_basic) {
const char *url =
reinterpret_cast<const char *>(sqlite3_column_text(hStmt, 0));
ASSERT_NE(url, nullptr);
- ASSERT_EQ(std::string(url), "https://cdn.proj.org/ntf_r93.tif");
+ ASSERT_EQ(std::string(url), "https://cdn.proj.org/fr_ign_ntf_r93.tif");
ASSERT_EQ(sqlite3_column_int64(hStmt, 1), 0);
sqlite3_finalize(hStmt);
sqlite3_close(hDB);
@@ -1292,7 +1304,7 @@ TEST(networking, proj_grid_cache_clear) {
const char *pipeline =
"+proj=pipeline "
"+step +proj=unitconvert +xy_in=deg +xy_out=rad "
- "+step +proj=hgridshift +grids=https://cdn.proj.org/ntf_r93.tif "
+ "+step +proj=hgridshift +grids=https://cdn.proj.org/fr_ign_ntf_r93.tif "
"+step +proj=unitconvert +xy_in=rad +xy_out=deg";
proj_cleanup();
@@ -1343,7 +1355,7 @@ TEST(networking, cache_saturation) {
const char *pipeline =
"+proj=pipeline "
"+step +proj=unitconvert +xy_in=deg +xy_out=rad "
- "+step +proj=hgridshift +grids=https://cdn.proj.org/ntf_r93.tif "
+ "+step +proj=hgridshift +grids=https://cdn.proj.org/fr_ign_ntf_r93.tif "
"+step +proj=unitconvert +xy_in=rad +xy_out=deg";
proj_cleanup();
@@ -1405,7 +1417,7 @@ TEST(networking, cache_ttl) {
const char *pipeline =
"+proj=pipeline "
"+step +proj=unitconvert +xy_in=deg +xy_out=rad "
- "+step +proj=hgridshift +grids=https://cdn.proj.org/ntf_r93.tif "
+ "+step +proj=hgridshift +grids=https://cdn.proj.org/fr_ign_ntf_r93.tif "
"+step +proj=unitconvert +xy_in=rad +xy_out=deg";
proj_cleanup();
@@ -1508,7 +1520,7 @@ TEST(networking, cache_lock) {
const char *pipeline =
"+proj=pipeline "
"+step +proj=unitconvert +xy_in=deg +xy_out=rad "
- "+step +proj=hgridshift +grids=https://cdn.proj.org/ntf_r93.tif "
+ "+step +proj=hgridshift +grids=https://cdn.proj.org/fr_ign_ntf_r93.tif "
"+step +proj=unitconvert +xy_in=rad +xy_out=deg";
proj_cleanup();
@@ -1574,7 +1586,7 @@ TEST(networking, download_whole_files) {
proj_cleanup();
unlink("proj_test_tmp/cache.db");
- unlink("proj_test_tmp/dvr90.tif");
+ unlink("proj_test_tmp/dk_sdfe_dvr90.tif");
rmdir("proj_test_tmp");
putenv(const_cast<char *>("PROJ_SKIP_READ_USER_WRITABLE_DIRECTORY="));
@@ -1583,11 +1595,12 @@ TEST(networking, download_whole_files) {
auto ctx = proj_context_create();
proj_context_set_enable_network(ctx, true);
- ASSERT_TRUE(proj_is_download_needed(ctx, "dvr90.gtx", false));
+ ASSERT_TRUE(proj_is_download_needed(ctx, "dk_sdfe_dvr90.tif", false));
- ASSERT_TRUE(proj_download_file(ctx, "dvr90.gtx", false, nullptr, nullptr));
+ ASSERT_TRUE(
+ proj_download_file(ctx, "dk_sdfe_dvr90.tif", false, nullptr, nullptr));
- FILE *f = fopen("proj_test_tmp/dvr90.tif", "rb");
+ FILE *f = fopen("proj_test_tmp/dk_sdfe_dvr90.tif", "rb");
ASSERT_NE(f, nullptr);
fclose(f);
@@ -1596,7 +1609,7 @@ TEST(networking, download_whole_files) {
const char *pipeline =
"+proj=pipeline "
"+step +proj=unitconvert +xy_in=deg +xy_out=rad "
- "+step +proj=vgridshift +grids=dvr90.gtx +multiplier=1 "
+ "+step +proj=vgridshift +grids=dk_sdfe_dvr90.tif +multiplier=1 "
"+step +proj=unitconvert +xy_in=rad +xy_out=deg";
auto P = proj_create(ctx, pipeline);
@@ -1612,7 +1625,7 @@ TEST(networking, download_whole_files) {
proj_context_set_enable_network(ctx, true);
- ASSERT_FALSE(proj_is_download_needed(ctx, "dvr90.gtx", false));
+ ASSERT_FALSE(proj_is_download_needed(ctx, "dk_sdfe_dvr90.tif", false));
{
sqlite3 *hDB = nullptr;
@@ -1631,7 +1644,7 @@ TEST(networking, download_whole_files) {
}
// If we ignore TTL settings, then no network access will be done
- ASSERT_FALSE(proj_is_download_needed(ctx, "dvr90.gtx", true));
+ ASSERT_FALSE(proj_is_download_needed(ctx, "dk_sdfe_dvr90.tif", true));
{
sqlite3 *hDB = nullptr;
@@ -1651,7 +1664,7 @@ TEST(networking, download_whole_files) {
}
// Should recheck from the CDN, update last_checked and do nothing
- ASSERT_FALSE(proj_is_download_needed(ctx, "dvr90.gtx", false));
+ ASSERT_FALSE(proj_is_download_needed(ctx, "dk_sdfe_dvr90.tif", false));
{
sqlite3 *hDB = nullptr;
@@ -1680,10 +1693,10 @@ TEST(networking, download_whole_files) {
sqlite3_close(hDB);
}
- ASSERT_TRUE(proj_is_download_needed(ctx, "dvr90.gtx", false));
+ ASSERT_TRUE(proj_is_download_needed(ctx, "dk_sdfe_dvr90.tif", false));
// Redo download with a progress callback this time.
- unlink("proj_test_tmp/dvr90.tif");
+ unlink("proj_test_tmp/dk_sdfe_dvr90.tif");
const auto cbk = [](PJ_CONTEXT *l_ctx, double pct, void *user_data) -> int {
auto vect = static_cast<std::vector<std::pair<PJ_CONTEXT *, double>> *>(
@@ -1693,7 +1706,8 @@ TEST(networking, download_whole_files) {
};
std::vector<std::pair<PJ_CONTEXT *, double>> vectPct;
- ASSERT_TRUE(proj_download_file(ctx, "dvr90.gtx", false, cbk, &vectPct));
+ ASSERT_TRUE(
+ proj_download_file(ctx, "dk_sdfe_dvr90.tif", false, cbk, &vectPct));
ASSERT_EQ(vectPct.size(), 3U);
ASSERT_EQ(vectPct.back().first, ctx);
ASSERT_EQ(vectPct.back().second, 1.0);
@@ -1703,7 +1717,7 @@ TEST(networking, download_whole_files) {
putenv(const_cast<char *>("PROJ_USER_WRITABLE_DIRECTORY="));
putenv(const_cast<char *>("PROJ_FULL_FILE_CHUNK_SIZE="));
unlink("proj_test_tmp/cache.db");
- unlink("proj_test_tmp/dvr90.tif");
+ unlink("proj_test_tmp/dk_sdfe_dvr90.tif");
rmdir("proj_test_tmp");
}
@@ -1716,7 +1730,7 @@ TEST(networking, file_api) {
proj_cleanup();
unlink("proj_test_tmp/cache.db");
- unlink("proj_test_tmp/dvr90.tif");
+ unlink("proj_test_tmp/dk_sdfe_dvr90.tif");
rmdir("proj_test_tmp");
putenv(const_cast<char *>("PROJ_SKIP_READ_USER_WRITABLE_DIRECTORY="));
@@ -1806,9 +1820,10 @@ TEST(networking, file_api) {
UserData userData;
ASSERT_TRUE(proj_context_set_fileapi(ctx, &api, &userData));
- ASSERT_TRUE(proj_is_download_needed(ctx, "dvr90.gtx", false));
+ ASSERT_TRUE(proj_is_download_needed(ctx, "dk_sdfe_dvr90.tif", false));
- ASSERT_TRUE(proj_download_file(ctx, "dvr90.gtx", false, nullptr, nullptr));
+ ASSERT_TRUE(
+ proj_download_file(ctx, "dk_sdfe_dvr90.tif", false, nullptr, nullptr));
ASSERT_TRUE(userData.in_open);
ASSERT_FALSE(userData.in_read);
@@ -1824,7 +1839,7 @@ TEST(networking, file_api) {
const char *pipeline =
"+proj=pipeline "
"+step +proj=unitconvert +xy_in=deg +xy_out=rad "
- "+step +proj=vgridshift +grids=dvr90.gtx +multiplier=1 "
+ "+step +proj=vgridshift +grids=dk_sdfe_dvr90.tif +multiplier=1 "
"+step +proj=unitconvert +xy_in=rad +xy_out=deg";
auto P = proj_create(ctx, pipeline);
@@ -1847,7 +1862,7 @@ TEST(networking, file_api) {
putenv(const_cast<char *>("PROJ_USER_WRITABLE_DIRECTORY="));
putenv(const_cast<char *>("PROJ_FULL_FILE_CHUNK_SIZE="));
unlink("proj_test_tmp/cache.db");
- unlink("proj_test_tmp/dvr90.tif");
+ unlink("proj_test_tmp/dk_sdfe_dvr90.tif");
rmdir("proj_test_tmp");
}
diff --git a/test/unit/test_operation.cpp b/test/unit/test_operation.cpp
index 495c80c3..ebd306ba 100644
--- a/test/unit/test_operation.cpp
+++ b/test/unit/test_operation.cpp
@@ -4460,7 +4460,8 @@ TEST(operation, geogCRS_to_geogCRS_context_inverse_needed) {
.get()),
"+proj=pipeline +step +proj=axisswap +order=2,1 +step "
"+proj=unitconvert +xy_in=deg +xy_out=rad +step "
- "+proj=hgridshift +grids=ntf_r93.gsb +step +proj=unitconvert "
+ "+proj=hgridshift +grids=fr_ign_ntf_r93.tif +step "
+ "+proj=unitconvert "
"+xy_in=rad +xy_out=deg +step +proj=axisswap +order=2,1");
}
{
@@ -4478,7 +4479,8 @@ TEST(operation, geogCRS_to_geogCRS_context_inverse_needed) {
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=ntf_r93.gsb +step +proj=unitconvert "
+ "+proj=hgridshift +grids=fr_ign_ntf_r93.tif +step "
+ "+proj=unitconvert "
"+xy_in=rad +xy_out=deg +step +proj=axisswap +order=2,1");
}
{
@@ -4496,7 +4498,8 @@ TEST(operation, geogCRS_to_geogCRS_context_inverse_needed) {
list[0]->exportToPROJString(PROJStringFormatter::create().get()),
"+proj=pipeline +step +proj=axisswap +order=2,1 +step "
"+proj=unitconvert +xy_in=deg +xy_out=rad +step +inv "
- "+proj=hgridshift +grids=ntf_r93.gsb +step +proj=unitconvert "
+ "+proj=hgridshift +grids=fr_ign_ntf_r93.tif +step "
+ "+proj=unitconvert "
"+xy_in=rad +xy_out=deg +step +proj=axisswap +order=2,1");
}
}
@@ -4521,17 +4524,18 @@ 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=ntv1_can.dat +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[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=ntv2_0.gsb +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[2]->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=conus +step +proj=unitconvert +xy_in=rad +xy_out=deg "
+ "+grids=us_noaa_conus.tif +step +proj=unitconvert +xy_in=rad "
+ "+xy_out=deg "
"+step +proj=axisswap +order=2,1");
}
@@ -4587,7 +4591,7 @@ TEST(operation, geogCRS_to_geogCRS_context_NAD27_to_WGS84_G1762) {
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=ntv2_0.gsb "
+ "+step +proj=hgridshift +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]->nameStr(),
@@ -4676,7 +4680,7 @@ TEST(operation, vertCRS_to_geogCRS_context) {
PROJStringFormatter::Convention::PROJ_5,
authFactory->databaseContext())
.get()),
- "+proj=vgridshift +grids=egm08_25.gtx +multiplier=1");
+ "+proj=vgridshift +grids=us_nga_egm08_25.tif +multiplier=1");
}
{
auto ctxt =
@@ -4689,7 +4693,7 @@ TEST(operation, vertCRS_to_geogCRS_context) {
ASSERT_EQ(list.size(), 2U);
EXPECT_EQ(
list[0]->exportToPROJString(PROJStringFormatter::create().get()),
- "+proj=vgridshift +grids=egm08_25.gtx +multiplier=1");
+ "+proj=vgridshift +grids=us_nga_egm08_25.tif +multiplier=1");
}
{
auto ctxt =
@@ -4702,7 +4706,8 @@ TEST(operation, vertCRS_to_geogCRS_context) {
ASSERT_EQ(list.size(), 2U);
EXPECT_EQ(
list[0]->exportToPROJString(PROJStringFormatter::create().get()),
- "+proj=pipeline +step +inv +proj=vgridshift +grids=egm08_25.gtx "
+ "+proj=pipeline +step +inv +proj=vgridshift "
+ "+grids=us_nga_egm08_25.tif "
"+multiplier=1");
}
{
@@ -4728,7 +4733,7 @@ TEST(operation, vertCRS_to_geogCRS_context) {
ASSERT_EQ(list.size(), 1U);
EXPECT_EQ(
list[0]->exportToPROJString(PROJStringFormatter::create().get()),
- "+proj=vgridshift +grids=nzgeoid2016.gtx +multiplier=1");
+ "+proj=vgridshift +grids=nz_linz_nzgeoid2016.tif +multiplier=1");
}
}
@@ -4827,7 +4832,7 @@ TEST(operation, geogCRS_to_geogCRS_context_concatenated_operation) {
"+proj=pipeline +step +proj=axisswap +order=2,1 +step "
"+proj=unitconvert +xy_in=grad +xy_out=rad +step +inv "
"+proj=longlat +ellps=clrk80ign +pm=paris +step +proj=hgridshift "
- "+grids=ntf_r93.gsb +step +proj=unitconvert +xy_in=rad "
+ "+grids=fr_ign_ntf_r93.tif +step +proj=unitconvert +xy_in=rad "
"+xy_out=deg +step +proj=axisswap +order=2,1");
EXPECT_TRUE(nn_dynamic_pointer_cast<ConcatenatedOperation>(list[0]) !=
@@ -4875,7 +4880,7 @@ TEST(operation, geogCRS_to_geogCRS_context_same_grid_name) {
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=BETA2007.gsb +step +proj=unitconvert +xy_in=rad "
+ "+grids=de_adv_BETA2007.tif +step +proj=unitconvert +xy_in=rad "
"+xy_out=deg +step +proj=axisswap +order=2,1");
}
@@ -4919,7 +4924,7 @@ TEST(operation, geogCRS_to_geogCRS_CH1903_to_CH1903plus_context) {
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=CHENyx06a.gsb "
+ "+step +proj=hgridshift +grids=ch_swisstopo_CHENyx06a.tif "
"+step +proj=unitconvert +xy_in=rad +xy_out=deg "
"+step +proj=axisswap +order=2,1");
@@ -4973,7 +4978,7 @@ TEST(operation, geogCRS_to_geogCRS_init_IGNF_to_init_IGNF_context) {
"NOUVELLE TRIANGULATION DE LA FRANCE (NTF) vers RGF93 (ETRS89)");
EXPECT_EQ(list[0]->exportToPROJString(PROJStringFormatter::create().get()),
"+proj=pipeline +step +proj=unitconvert +xy_in=deg +xy_out=rad "
- "+step +proj=hgridshift +grids=ntf_r93.gsb +step "
+ "+step +proj=hgridshift +grids=fr_ign_ntf_r93.tif +step "
"+proj=unitconvert +xy_in=rad +xy_out=deg");
}
@@ -5541,11 +5546,12 @@ TEST(operation,
"NTF (Paris) to NTF (1) + Inverse of WGS 84 to NTF (3) + UTM zone 31N");
ASSERT_EQ(list[0]->coordinateOperationAccuracies().size(), 1U);
EXPECT_EQ(list[0]->coordinateOperationAccuracies()[0]->value(), "1");
- EXPECT_EQ(list[0]->exportToPROJString(PROJStringFormatter::create().get()),
- "+proj=pipeline +step +proj=axisswap +order=2,1 +step "
- "+proj=unitconvert +xy_in=grad +xy_out=rad +step +inv "
- "+proj=longlat +ellps=clrk80ign +pm=paris +step +proj=hgridshift "
- "+grids=ntf_r93.gsb +step +proj=utm +zone=31 +ellps=WGS84");
+ EXPECT_EQ(
+ list[0]->exportToPROJString(PROJStringFormatter::create().get()),
+ "+proj=pipeline +step +proj=axisswap +order=2,1 +step "
+ "+proj=unitconvert +xy_in=grad +xy_out=rad +step +inv "
+ "+proj=longlat +ellps=clrk80ign +pm=paris +step +proj=hgridshift "
+ "+grids=fr_ign_ntf_r93.tif +step +proj=utm +zone=31 +ellps=WGS84");
}
// ---------------------------------------------------------------------------
@@ -6497,7 +6503,7 @@ static BoundCRSNNPtr createBoundVerticalCRS() {
auto transformation =
Transformation::createGravityRelatedHeightToGeographic3D(
PropertyMap(), vertCRS, GeographicCRS::EPSG_4979, nullptr,
- "egm08_25.gtx", std::vector<PositionalAccuracyNNPtr>());
+ "us_nga_egm08_25.tif", std::vector<PositionalAccuracyNNPtr>());
return BoundCRS::create(vertCRS, GeographicCRS::EPSG_4979, transformation);
}
@@ -6506,17 +6512,14 @@ static BoundCRSNNPtr createBoundVerticalCRS() {
TEST(operation, transformation_height_to_PROJ_string) {
auto transf = createBoundVerticalCRS()->transformation();
EXPECT_EQ(transf->exportToPROJString(PROJStringFormatter::create().get()),
- "+proj=vgridshift +grids=egm08_25.gtx +multiplier=1");
+ "+proj=vgridshift +grids=us_nga_egm08_25.tif +multiplier=1");
auto grids = transf->gridsNeeded(DatabaseContext::create(), false);
ASSERT_EQ(grids.size(), 1U);
auto gridDesc = *(grids.begin());
- EXPECT_EQ(gridDesc.shortName, "egm08_25.gtx");
- EXPECT_EQ(gridDesc.packageName, "proj-datumgrid-world");
- EXPECT_TRUE(gridDesc.url.find(
- "https://download.osgeo.org/proj/proj-datumgrid-world-") ==
- 0)
- << gridDesc.url;
+ EXPECT_EQ(gridDesc.shortName, "us_nga_egm08_25.tif");
+ EXPECT_TRUE(gridDesc.packageName.empty());
+ EXPECT_EQ(gridDesc.url, "https://cdn.proj.org/us_nga_egm08_25.tif");
if (gridDesc.available) {
EXPECT_TRUE(!gridDesc.fullName.empty()) << gridDesc.fullName;
EXPECT_TRUE(gridDesc.fullName.find(gridDesc.shortName) !=
@@ -6625,7 +6628,8 @@ TEST(operation, transformation_NZLVD_to_PROJ_string) {
PROJStringFormatter::create(
PROJStringFormatter::Convention::PROJ_5, dbContext)
.get()),
- "+proj=vgridshift +grids=auckht1946-nzvd2016.gtx +multiplier=1");
+ "+proj=vgridshift +grids=nz_linz_auckht1946-nzvd2016.tif "
+ "+multiplier=1");
}
// ---------------------------------------------------------------------------
@@ -6757,11 +6761,12 @@ TEST(operation, compoundCRS_with_boundVerticalCRS_to_geogCRS) {
auto op = CoordinateOperationFactory::create()->createOperation(
compound, GeographicCRS::EPSG_4979);
ASSERT_TRUE(op != nullptr);
- EXPECT_EQ(op->exportToPROJString(PROJStringFormatter::create().get()),
- "+proj=pipeline +step +proj=axisswap +order=2,1 +step "
- "+proj=unitconvert +xy_in=deg +xy_out=rad +step +proj=vgridshift "
- "+grids=egm08_25.gtx +multiplier=1 +step +proj=unitconvert "
- "+xy_in=rad +xy_out=deg +step +proj=axisswap +order=2,1");
+ EXPECT_EQ(
+ op->exportToPROJString(PROJStringFormatter::create().get()),
+ "+proj=pipeline +step +proj=axisswap +order=2,1 +step "
+ "+proj=unitconvert +xy_in=deg +xy_out=rad +step +proj=vgridshift "
+ "+grids=us_nga_egm08_25.tif +multiplier=1 +step +proj=unitconvert "
+ "+xy_in=rad +xy_out=deg +step +proj=axisswap +order=2,1");
}
// ---------------------------------------------------------------------------
@@ -6816,7 +6821,7 @@ TEST(operation, compoundCRS_with_boundGeogCRS_and_boundVerticalCRS_to_geogCRS) {
"+convention=position_vector "
"+step +inv +proj=cart +ellps=WGS84 "
"+step +proj=pop +v_3 "
- "+step +proj=vgridshift +grids=egm08_25.gtx +multiplier=1 "
+ "+step +proj=vgridshift +grids=us_nga_egm08_25.tif +multiplier=1 "
"+step +proj=unitconvert +xy_in=rad +xy_out=deg "
"+step +proj=axisswap +order=2,1");
@@ -6856,7 +6861,7 @@ TEST(operation, compoundCRS_with_boundProjCRS_and_boundVerticalCRS_to_geogCRS) {
"+convention=position_vector "
"+step +inv +proj=cart +ellps=WGS84 "
"+step +proj=pop +v_3 "
- "+step +proj=vgridshift +grids=egm08_25.gtx +multiplier=1 "
+ "+step +proj=vgridshift +grids=us_nga_egm08_25.tif +multiplier=1 "
"+step +proj=unitconvert +xy_in=rad +xy_out=deg "
"+step +proj=axisswap +order=2,1");
@@ -7095,13 +7100,14 @@ TEST(operation, compoundCRS_to_compoundCRS_context) {
EXPECT_EQ(list[0]->nameStr(), "NGVD29 height (ftUS) to NAVD88 height (3) + "
"NAD27 to WGS 84 (79) + Inverse of "
"NAD83(NSRS2007) to WGS 84 (1)");
- EXPECT_EQ(list[0]->exportToPROJString(PROJStringFormatter::create().get()),
- "+proj=pipeline +step +proj=axisswap +order=2,1 +step "
- "+proj=unitconvert +xy_in=deg +z_in=us-ft +xy_out=rad +z_out=m "
- "+step +proj=vgridshift +grids=vertcone.gtx +multiplier=0.001 "
- "+step +proj=hgridshift +grids=conus +step "
- "+proj=unitconvert +xy_in=rad +xy_out=deg +step +proj=axisswap "
- "+order=2,1");
+ EXPECT_EQ(
+ list[0]->exportToPROJString(PROJStringFormatter::create().get()),
+ "+proj=pipeline +step +proj=axisswap +order=2,1 +step "
+ "+proj=unitconvert +xy_in=deg +z_in=us-ft +xy_out=rad +z_out=m "
+ "+step +proj=vgridshift +grids=us_noaa_vertcone.tif +multiplier=1 "
+ "+step +proj=hgridshift +grids=us_noaa_conus.tif +step "
+ "+proj=unitconvert +xy_in=rad +xy_out=deg +step +proj=axisswap "
+ "+order=2,1");
{
// Test that we can round-trip this through WKT and still get the same
// PROJ string.
@@ -7132,12 +7138,13 @@ TEST(operation, compoundCRS_to_compoundCRS_context) {
"Transformation from NGVD29 height (ftUS) to NAVD88 "
"height (ballpark vertical transformation) + NAD27 to "
"WGS 84 (79) + Inverse of NAD83(NSRS2007) to WGS 84 (1)");
- EXPECT_EQ(projString,
- "+proj=pipeline +step +proj=axisswap +order=2,1 +step "
- "+proj=unitconvert +xy_in=deg +z_in=us-ft +xy_out=rad "
- "+z_out=m +step +proj=hgridshift +grids=conus "
- "+step +proj=unitconvert +xy_in=rad "
- "+xy_out=deg +step +proj=axisswap +order=2,1");
+ EXPECT_EQ(
+ projString,
+ "+proj=pipeline +step +proj=axisswap +order=2,1 +step "
+ "+proj=unitconvert +xy_in=deg +z_in=us-ft +xy_out=rad "
+ "+z_out=m +step +proj=hgridshift +grids=us_noaa_conus.tif "
+ "+step +proj=unitconvert +xy_in=rad "
+ "+xy_out=deg +step +proj=axisswap +order=2,1");
foundApprox = true;
break;
}
@@ -7247,7 +7254,7 @@ TEST(operation, vertCRS_to_vertCRS_context) {
ASSERT_EQ(list.size(), 3U);
EXPECT_EQ(list[0]->nameStr(), "NGVD29 height (m) to NAVD88 height (3)");
EXPECT_EQ(list[0]->exportToPROJString(PROJStringFormatter::create().get()),
- "+proj=vgridshift +grids=vertcone.gtx +multiplier=0.001");
+ "+proj=vgridshift +grids=us_noaa_vertcone.tif +multiplier=1");
}
// ---------------------------------------------------------------------------
@@ -7263,7 +7270,8 @@ TEST(operation, vertCRS_to_vertCRS_New_Zealand_context) {
authFactory->createCoordinateReferenceSystem("5759"), ctxt);
ASSERT_EQ(list.size(), 1U);
EXPECT_EQ(list[0]->exportToPROJString(PROJStringFormatter::create().get()),
- "+proj=vgridshift +grids=auckht1946-nzvd2016.gtx +multiplier=1");
+ "+proj=vgridshift +grids=nz_linz_auckht1946-nzvd2016.tif "
+ "+multiplier=1");
}
// ---------------------------------------------------------------------------
@@ -7334,7 +7342,8 @@ TEST(operation, compoundCRS_to_geogCRS_3D_context) {
.get()),
"+proj=pipeline +step +proj=axisswap +order=2,1 +step "
"+proj=unitconvert +xy_in=deg +xy_out=rad +step "
- "+proj=hgridshift +grids=conus +step +proj=unitconvert "
+ "+proj=hgridshift +grids=us_noaa_conus.tif "
+ "+step +proj=unitconvert "
"+xy_in=rad +z_in=us-ft +xy_out=deg +z_out=m +step "
"+proj=axisswap +order=2,1");
}
@@ -7365,7 +7374,7 @@ TEST(operation, compoundCRS_to_geogCRS_3D_context) {
"+proj=pipeline "
"+step +proj=axisswap +order=2,1 "
"+step +proj=unitconvert +xy_in=deg +xy_out=rad "
- "+step +proj=vgridshift +grids=geoid09_conus.gtx "
+ "+step +proj=vgridshift +grids=us_noaa_geoid09_conus.tif "
"+multiplier=1 "
"+step +proj=unitconvert +xy_in=rad +xy_out=deg "
"+step +proj=axisswap +order=2,1");
@@ -7406,7 +7415,7 @@ TEST(operation, compoundCRS_to_geogCRS_3D_context) {
"+proj=pipeline "
"+step +proj=axisswap +order=2,1 "
"+step +proj=unitconvert +xy_in=deg +xy_out=rad "
- "+step +proj=vgridshift +grids=geoid09_conus.gtx "
+ "+step +proj=vgridshift +grids=us_noaa_geoid09_conus.tif "
"+multiplier=1 "
"+step +proj=unitconvert +xy_in=rad +xy_out=deg "
"+step +proj=axisswap +order=2,1");
@@ -7446,7 +7455,7 @@ TEST(operation, compoundCRS_to_geogCRS_3D_context) {
"+proj=pipeline "
"+step +proj=axisswap +order=2,1 "
"+step +proj=unitconvert +xy_in=deg +xy_out=rad "
- "+step +proj=vgridshift +grids=g2018u0.gtx "
+ "+step +proj=vgridshift +grids=us_noaa_g2018u0.tif "
"+multiplier=1 "
"+step +proj=unitconvert +xy_in=rad +xy_out=deg "
"+step +proj=axisswap +order=2,1");
@@ -7464,9 +7473,9 @@ TEST(operation, compoundCRS_to_geogCRS_3D_context) {
"+proj=pipeline "
"+step +proj=axisswap +order=2,1 "
"+step +proj=unitconvert +xy_in=deg +xy_out=rad "
- "+step +proj=vgridshift +grids=g2018u0.gtx "
+ "+step +proj=vgridshift +grids=us_noaa_g2018u0.tif "
"+multiplier=1 "
- "+step +proj=hgridshift +grids=FL "
+ "+step +proj=hgridshift +grids=us_noaa_FL.tif "
"+step +proj=unitconvert +xy_in=rad +xy_out=deg "
"+step +proj=axisswap +order=2,1");
}
@@ -7550,7 +7559,8 @@ TEST(operation, compoundCRS_of_projCRS_to_geogCRS_2D_context) {
"+lat_1=41.6666666666667 +lat_2=40 +x_0=2000000.0001016 "
"+y_0=500000.0001016 +ellps=GRS80 "
"+step +proj=unitconvert +z_in=us-ft +z_out=m "
- "+step +proj=vgridshift +grids=geoid09_conus.gtx +multiplier=1 "
+ "+step +proj=vgridshift +grids=us_noaa_geoid09_conus.tif "
+ "+multiplier=1 "
"+step +proj=unitconvert +xy_in=rad +xy_out=deg "
"+step +proj=axisswap +order=2,1");
}
@@ -8006,14 +8016,15 @@ TEST(operation, compoundCRS_of_vertCRS_with_geoid_model_to_geogCRS) {
"Ballpark geographic offset from NAD83(2011) to NAD83");
auto op_proj =
list[0]->exportToPROJString(PROJStringFormatter::create().get());
- EXPECT_EQ(op_proj,
- "+proj=pipeline "
- "+step +inv +proj=lcc +lat_0=39.3333333333333 +lon_0=-77.75 "
- "+lat_1=40.9666666666667 +lat_2=39.9333333333333 +x_0=600000 "
- "+y_0=0 +ellps=GRS80 "
- "+step +proj=vgridshift +grids=g2012bu0.gtx +multiplier=1 "
- "+step +proj=unitconvert +xy_in=rad +xy_out=deg "
- "+step +proj=axisswap +order=2,1");
+ EXPECT_EQ(
+ op_proj,
+ "+proj=pipeline "
+ "+step +inv +proj=lcc +lat_0=39.3333333333333 +lon_0=-77.75 "
+ "+lat_1=40.9666666666667 +lat_2=39.9333333333333 +x_0=600000 "
+ "+y_0=0 +ellps=GRS80 "
+ "+step +proj=vgridshift +grids=us_noaa_g2012bu0.tif +multiplier=1 "
+ "+step +proj=unitconvert +xy_in=rad +xy_out=deg "
+ "+step +proj=axisswap +order=2,1");
}
// ---------------------------------------------------------------------------
@@ -8069,8 +8080,8 @@ TEST(operation, compoundCRS_from_WKT2_no_id_to_geogCRS_3D_context) {
"+proj=pipeline +step +inv +proj=sterea +lat_0=52.1561605555556 "
"+lon_0=5.38763888888889 +k=0.9999079 +x_0=155000 +y_0=463000 "
"+ellps=bessel "
- "+step +proj=hgridshift +grids=rdtrans2018.gsb "
- "+step +proj=vgridshift +grids=nlgeo2018.gtx +multiplier=1 "
+ "+step +proj=hgridshift +grids=nl_nsgi_rdtrans2018.tif "
+ "+step +proj=vgridshift +grids=nl_nsgi_nlgeo2018.tif +multiplier=1 "
"+step +proj=unitconvert +xy_in=rad +xy_out=deg "
"+step +proj=axisswap +order=2,1");
}
@@ -8194,7 +8205,7 @@ TEST(operation, IGNF_LAMB1_TO_EPSG_4326) {
"+proj=pipeline +step +inv +proj=lcc +lat_1=49.5 +lat_0=49.5 "
"+lon_0=0 +k_0=0.99987734 +x_0=600000 +y_0=200000 "
"+ellps=clrk80ign +pm=paris +step +proj=hgridshift "
- "+grids=ntf_r93.gsb +step +proj=unitconvert +xy_in=rad "
+ "+grids=fr_ign_ntf_r93.tif +step +proj=unitconvert +xy_in=rad "
"+xy_out=deg +step +proj=axisswap +order=2,1");
EXPECT_FALSE(list[1]->hasBallparkTransformation());
@@ -9616,15 +9627,16 @@ TEST(operation, normalizeForVisualization) {
auto op = list[1];
auto opNormalized = op->normalizeForVisualization();
EXPECT_FALSE(opNormalized->_isEquivalentTo(op.get()));
- EXPECT_EQ(opNormalized->exportToPROJString(
- PROJStringFormatter::create(
- PROJStringFormatter::Convention::PROJ_5,
- authFactory->databaseContext())
- .get()),
- "+proj=pipeline "
- "+step +proj=unitconvert +xy_in=deg +xy_out=rad "
- "+step +proj=vgridshift +grids=egm08_25.gtx +multiplier=1 "
- "+step +proj=unitconvert +xy_in=rad +xy_out=deg");
+ EXPECT_EQ(
+ opNormalized->exportToPROJString(
+ PROJStringFormatter::create(
+ PROJStringFormatter::Convention::PROJ_5,
+ authFactory->databaseContext())
+ .get()),
+ "+proj=pipeline "
+ "+step +proj=unitconvert +xy_in=deg +xy_out=rad "
+ "+step +proj=vgridshift +grids=us_nga_egm08_25.tif +multiplier=1 "
+ "+step +proj=unitconvert +xy_in=rad +xy_out=deg");
}
// Source(boundCRS) and target(geographic) must be inverted