aboutsummaryrefslogtreecommitdiff
path: root/scripts/build_grid_alternatives_generated_noaa.py
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/build_grid_alternatives_generated_noaa.py')
-rwxr-xr-xscripts/build_grid_alternatives_generated_noaa.py166
1 files changed, 166 insertions, 0 deletions
diff --git a/scripts/build_grid_alternatives_generated_noaa.py b/scripts/build_grid_alternatives_generated_noaa.py
new file mode 100755
index 00000000..96e12842
--- /dev/null
+++ b/scripts/build_grid_alternatives_generated_noaa.py
@@ -0,0 +1,166 @@
+#!/usr/bin/env python
+###############################################################################
+# $Id$
+#
+# Project: PROJ
+# Purpose: Populate grid_alternatives with NAD83 -> NAD83(HPGN/HARN) grids
+# Author: Even Rouault <even.rouault at spatialys.com>
+#
+###############################################################################
+# Copyright (c) 2018, Even Rouault <even.rouault at spatialys.com>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the "Software"),
+# to deal in the Software without restriction, including without limitation
+# the rights to use, copy, modify, merge, publish, distribute, sublicense,
+# and/or sell copies of the Software, and to permit persons to whom the
+# Software is furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+# DEALINGS IN THE SOFTWARE.
+###############################################################################
+
+import os
+
+nadcon_grids = ['conus', 'alaska', 'hawaii',
+ 'prvi', 'stgeorge', 'stlrnc', 'stpaul']
+
+hpgn_grids = [
+ 'alhpgn.gsb',
+ 'arhpgn.gsb',
+ 'azhpgn.gsb',
+ #'c1hpgn.gsb', -- Not used in EPSG
+ #'c2hpgn.gsb', -- Not used in EPSG
+ 'cnhpgn.gsb',
+ 'cohpgn.gsb',
+ 'cshpgn.gsb',
+ 'emhpgn.gsb',
+ 'eshpgn.gsb',
+ 'ethpgn.gsb',
+ ('flhpgn.gsb', 'FL'),
+ 'gahpgn.gsb',
+ 'guhpgn.gsb',
+ 'hihpgn.gsb',
+ 'iahpgn.gsb',
+ 'ilhpgn.gsb',
+ 'inhpgn.gsb',
+ 'kshpgn.gsb',
+ 'kyhpgn.gsb',
+ 'lahpgn.gsb',
+ ('mdhpgn.gsb', 'MD'),
+ 'mehpgn.gsb',
+ 'mihpgn.gsb',
+ 'mnhpgn.gsb',
+ 'mohpgn.gsb',
+ 'mshpgn.gsb',
+ 'nbhpgn.gsb',
+ 'nchpgn.gsb',
+ 'ndhpgn.gsb',
+ 'nehpgn.gsb',
+ 'njhpgn.gsb',
+ 'nmhpgn.gsb',
+ 'nvhpgn.gsb',
+ 'nyhpgn.gsb',
+ 'ohhpgn.gsb',
+ 'okhpgn.gsb',
+ 'pahpgn.gsb',
+ 'pvhpgn.gsb',
+ 'schpgn.gsb',
+ 'sdhpgn.gsb',
+ ('tnhpgn.gsb', 'TN'),
+ 'uthpgn.gsb',
+ 'vahpgn.gsb',
+ ('wihpgn.gsb', 'WI'),
+ 'wmhpgn.gsb',
+ ('wohpgn.gsb', 'WO'),
+ 'wshpgn.gsb',
+ 'wthpgn.gsb',
+ 'wvhpgn.gsb',
+ 'wyhpgn.gsb',
+]
+
+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_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,
+ package_name,
+ url, direct_download, open_license, directory)
+ VALUES ('%s',
+ '%s',
+ '%s',
+ 'GTiff',
+ 'hgridshift',
+ 0,
+ NULL,
+ '%s', 1, 1, NULL);""" % (grid + '.las', tiff_name, grid, 'https://cdn.proj.org/' + tiff_name)
+ f.write((sql + '\n').encode('UTF-8'))
+
+
+f.write("-- NAD83 -> NAD83(HPGN) entries\n\n".encode('UTF-8'))
+
+for row in hpgn_grids:
+ try:
+ ntv2_name, ctable2_name = row
+ except:
+ ntv2_name = row
+ 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,
+ package_name,
+ url, direct_download, open_license, directory)
+ VALUES ('%s',
+ '%s',
+ '%s',
+ 'GTiff',
+ 'hgridshift',
+ 0,
+ 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,
+ package_name,
+ url, direct_download, open_license, directory)
+ VALUES ('%s',
+ '%s',
+ '%s',
+ 'GTiff',
+ 'hgridshift',
+ 0,
+ 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()