aboutsummaryrefslogtreecommitdiff
path: root/scripts/build_db_from_esri.py
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/build_db_from_esri.py')
-rwxr-xr-xscripts/build_db_from_esri.py306
1 files changed, 284 insertions, 22 deletions
diff --git a/scripts/build_db_from_esri.py b/scripts/build_db_from_esri.py
index 4f89f59f..69940798 100755
--- a/scripts/build_db_from_esri.py
+++ b/scripts/build_db_from_esri.py
@@ -51,10 +51,10 @@ cursor = conn.cursor()
all_sql = []
# TODO: update this !
-version = 'ArcMap 10.6.1 / ArcGISPro 2.2'
+version = 'ArcMap 10.7.0'
all_sql.append(
"""INSERT INTO "metadata" VALUES('ESRI.VERSION', '%s');""" % (version))
-date = '2018-09-19'
+date = '2019-03-25'
all_sql.append(
"""INSERT INTO "metadata" VALUES('ESRI.DATE', '%s');""" % (date))
@@ -246,8 +246,9 @@ def import_spheroid():
description = row[idx_description]
deprecated = 1 if row[idx_deprecated] == 'yes' else 0
- map_spheroid_esri_name_to_auth_code[esri_name] = [
- 'ESRI', latestWkid]
+ if esri_name not in map_spheroid_esri_name_to_auth_code:
+ map_spheroid_esri_name_to_auth_code[esri_name] = [
+ 'ESRI', code]
if abs(float(a) - 6375000) > 0.01 * 6375000:
pos = esri_name.find('_19')
@@ -267,7 +268,7 @@ def import_spheroid():
body_code = 'EARTH'
sql = """INSERT INTO ellipsoid VALUES('ESRI','%s','%s','%s','%s','%s',%s,'EPSG','9001',%s,NULL,%d);""" % (
- latestWkid, esri_name, description, body_auth, body_code, a, rf, deprecated)
+ code, esri_name, description, body_auth, body_code, a, rf, deprecated)
all_sql.append(sql)
########################
@@ -341,10 +342,11 @@ def import_prime_meridian():
deprecated = 1 if row[idx_deprecated] == 'yes' else 0
- map_pm_esri_name_to_auth_code[esri_name] = ['ESRI', latestWkid]
+ if esri_name not in map_pm_esri_name_to_auth_code:
+ map_pm_esri_name_to_auth_code[esri_name] = ['ESRI', code]
sql = """INSERT INTO "prime_meridian" VALUES('ESRI','%s','%s',%s,'EPSG','9110',%d);""" % (
- latestWkid, esri_name, value, deprecated)
+ code, esri_name, value, deprecated)
all_sql.append(sql)
@@ -411,7 +413,7 @@ def import_datum():
assert authority.upper() == 'ESRI', row
map_datum_esri_name_to_auth_code[esri_name] = [
- 'ESRI', latestWkid]
+ 'ESRI', code]
wkt = row[idx_wkt]
pos = wkt.find('SPHEROID["')
@@ -429,7 +431,7 @@ def import_datum():
description = row[idx_description]
deprecated = 1 if row[idx_deprecated] == 'yes' else 0
- map_datum_esri_to_parameters[latestWkid] = {
+ map_datum_esri_to_parameters[code] = {
'esri_name': esri_name,
'description': description,
'ellps_auth_name': ellps_auth_name,
@@ -568,6 +570,7 @@ def import_geogcs():
assert map_datum_esri_to_parameters[datum_code]['pm_auth_name'] == pm_auth_name, (
row, map_datum_esri_to_parameters[datum_code]['pm_auth_name'], pm_auth_name)
if map_datum_esri_to_parameters[datum_code]['pm_code'] != pm_code:
+ p = map_datum_esri_to_parameters[datum_code]
# Case of GCS_Voirol_Unifie_1960 and GCS_Voirol_Unifie_1960_Paris which use the same
# datum D_Voirol_Unifie_1960 but with different prime meridian
@@ -585,7 +588,6 @@ def import_geogcs():
'ellps_code': p['ellps_code'],
'deprecated': p['deprecated']
}
- p = map_datum_esri_to_parameters[datum_code]
sql = """INSERT INTO "geodetic_datum" VALUES('ESRI','%s','%s',NULL,'%s','%s','%s','%s','%s','%s','%s',%d);""" % (
datum_code, p['esri_name'], p['description'], p['ellps_auth_name'], p['ellps_code'], pm_auth_name, pm_code, area_auth_name, area_code, p['deprecated'])
@@ -603,11 +605,11 @@ def import_geogcs():
code, esri_name, cs_code, datum_auth_name, datum_code, area_auth_name, area_code, deprecated)
all_sql.append(sql)
- if deprecated and code != latestWkid:
+ if deprecated and code != latestWkid and code not in ('4305', '4812'): # Voirol 1960 no longer in EPSG
cursor.execute(
"SELECT name FROM geodetic_crs WHERE auth_name = 'EPSG' AND code = ?", (latestWkid,))
src_row = cursor.fetchone()
- assert src_row
+ assert src_row, (code, latestWkid)
sql = """INSERT INTO "supersession" VALUES('geodetic_crs','ESRI','%s','geodetic_crs','EPSG','%s','ESRI');""" % (
code, latestWkid)
@@ -615,9 +617,122 @@ def import_geogcs():
########################
+def parse_wkt(s, level):
+ if s[0] == '"':
+ return s
+ pos = s.find('[')
+ if pos < 0:
+ return s
+ return { s[0:pos] : parse_wkt_array(s[pos+1:-1], level + 1) }
+
+def parse_wkt_array(s, level = 0):
+ ar = []
+ in_string = False
+ cur_token = ''
+ indent_level = 0
+ for c in s:
+ if in_string:
+ if c == '"':
+ in_string = False
+ cur_token += c
+ elif c == '"':
+ cur_token += c
+ in_string = True
+ elif c == '[':
+ cur_token += c
+ indent_level += 1
+ elif c == ']':
+ cur_token += c
+ indent_level -= 1
+ assert indent_level >= 0
+ elif indent_level == 0 and c == ',':
+ ar.append(parse_wkt(cur_token, level + 1))
+ cur_token = ''
+ else:
+ cur_token += c
+ assert indent_level == 0
+ if cur_token:
+ ar.append(parse_wkt(cur_token, level + 1))
+
+ if level == 0:
+ d = {}
+ for elt in ar:
+ assert type(elt) == type({})
+ assert len(elt) == 1
+ if 'PROJECTION' in elt:
+ assert len(elt['PROJECTION']) == 1, elt['PROJECTION']
+ assert 'PROJECTION' not in d
+ name = elt['PROJECTION'][0]
+ assert name[0] == '"' and name[-1] == '"', name
+ name = name[1:-1]
+ d['PROJECTION'] = name
+ elif 'PARAMETER' in elt:
+ assert len(elt['PARAMETER']) == 2, elt['PARAMETER']
+ name = elt['PARAMETER'][0]
+ assert name[0] == '"' and name[-1] == '"', name
+ name = name[1:-1]
+ assert name not in d
+ d[name] = elt['PARAMETER'][1]
+ elif 'UNIT' in elt:
+ assert len(elt['UNIT']) == 2, elt['UNIT']
+ name = elt['UNIT'][0]
+ assert name[0] == '"' and name[-1] == '"', name
+ name = name[1:-1]
+ assert 'UNIT_NAME' not in d
+ d['UNIT_NAME'] = name
+ d['UNIT_VALUE'] = elt['UNIT'][1]
+ else:
+ assert True
+ return d
+ else:
+ return ar
-map_projcs_esri_name_to_auth_code = {}
+########################
+
+def get_cs(parsed_conv_wkt):
+
+ UNIT_NAME = parsed_conv_wkt['UNIT_NAME']
+ UNIT_VALUE = parsed_conv_wkt['UNIT_VALUE']
+
+ if UNIT_NAME == 'Meter':
+ uom_code = '9001'
+ cs_auth_name = 'EPSG'
+ cs_code = '4400'
+ assert UNIT_VALUE == '1.0', UNIT_VALUE
+ elif UNIT_NAME == 'Foot':
+ uom_code = '9002'
+ cs_auth_name = 'ESRI'
+ cs_code = UNIT_NAME
+ assert UNIT_VALUE == '0.3048', UNIT_VALUE
+ elif UNIT_NAME == 'Foot_US':
+ uom_code = '9003'
+ cs_auth_name = 'ESRI'
+ cs_code = UNIT_NAME
+ assert UNIT_VALUE == '0.3048006096012192', UNIT_VALUE
+ elif UNIT_NAME == 'Yard_Indian_1937':
+ uom_code = '9085'
+ cs_auth_name = 'ESRI'
+ cs_code = UNIT_NAME
+ assert UNIT_VALUE == '0.91439523', UNIT_VALUE
+ else:
+ assert False, UNIT_NAME
+
+ if cs_auth_name == 'ESRI' and cs_code not in set_esri_cs_code:
+ sql = """INSERT INTO "coordinate_system" VALUES('ESRI','%s','Cartesian',2);""" % cs_code
+ all_sql.append(sql)
+ sql = """INSERT INTO "axis" VALUES('ESRI','%d','Easting','E','east','ESRI','%s',1,'EPSG','%s');""" % (2 * len(set_esri_cs_code) + 1, cs_code, uom_code)
+ all_sql.append(sql)
+ sql = """INSERT INTO "axis" VALUES('ESRI','%d','Northing','N','north','ESRI','%s',2,'EPSG','%s');""" % (2 * len(set_esri_cs_code) + 2, cs_code, uom_code)
+ all_sql.append(sql)
+ set_esri_cs_code.add(cs_code)
+
+ return cs_auth_name, cs_code, uom_code
+
+########################
+map_projcs_esri_name_to_auth_code = {}
+set_esri_cs_code = set()
+map_conversion_sql_to_code = {}
def import_projcs():
with open(os.path.join(path_to_csv, 'pe_list_projcs.csv'), 'rt') as csvfile:
@@ -705,6 +820,10 @@ def import_projcs():
end_pos += pos
geogcs_name = wkt[pos:end_pos]
+ pos = wkt.find('PROJECTION[')
+ assert pos >= 0
+ parsed_conv_wkt = parse_wkt_array(wkt[pos:-1])
+
assert geogcs_name in map_geogcs_esri_name_to_auth_code, (
geogcs_name, row)
geogcs_auth_name, geogcs_code = map_geogcs_esri_name_to_auth_code[geogcs_name]
@@ -716,9 +835,152 @@ def import_projcs():
deprecated = 1 if row[idx_deprecated] == 'yes' else 0
- sql = """INSERT INTO "projected_crs" VALUES('ESRI','%s','%s',NULL,NULL,NULL,NULL,'%s','%s',NULL,NULL,'%s','%s','%s',%d);""" % (
- code, esri_name, geogcs_auth_name, geogcs_code, area_auth_name, area_code, escape_literal(wkt), deprecated)
- all_sql.append(sql)
+ method = parsed_conv_wkt['PROJECTION']
+
+ if 'UNIT["Degree",' in wkt:
+ ang_uom_code = '9102'
+ elif 'UNIT["Grad",' in wkt:
+ ang_uom_code = '9105'
+ else:
+ assert False, wkt
+
+ if method in ('Transverse_Mercator', 'Gauss_Kruger'):
+ assert len(parsed_conv_wkt) == 1 + 5 + 2
+ False_Easting = parsed_conv_wkt['False_Easting']
+ False_Northing = parsed_conv_wkt['False_Northing']
+ Central_Meridian = parsed_conv_wkt['Central_Meridian']
+ Scale_Factor = parsed_conv_wkt['Scale_Factor']
+ Latitude_Of_Origin = parsed_conv_wkt['Latitude_Of_Origin']
+
+ cs_auth_name, cs_code, uom_code = get_cs(parsed_conv_wkt)
+
+ conv_name = 'unnamed'
+ if method == 'Gauss_Kruger' and 'GK_' not in esri_name and 'Gauss' not in esri_name:
+ conv_name = esri_name + " (Gauss Kruger)"
+
+ cursor.execute(
+ """SELECT code FROM conversion WHERE auth_name = 'EPSG' AND
+ method_code = '9807' AND
+ param1_code = '8801' AND param1_value = ? AND param1_uom_code = ? AND
+ param2_code = '8802' AND param2_value = ? AND param2_uom_code = ? AND
+ param3_code = '8805' AND param3_value = ? AND param3_uom_code = '9201' AND
+ param4_code = '8806' AND param4_value = ? AND param4_uom_code = ? AND
+ param5_code = '8807' AND param5_value = ? AND param5_uom_code = ?""", (Latitude_Of_Origin, ang_uom_code, Central_Meridian, ang_uom_code, Scale_Factor, False_Easting, uom_code, False_Northing, uom_code))
+ src_row = cursor.fetchone()
+ if conv_name == 'unnamed' and src_row:
+ conv_auth_name = 'EPSG'
+ conv_code = src_row[0]
+ else:
+ conv_auth_name = 'ESRI'
+ conv_code = code
+
+ sql = """INSERT INTO "conversion" VALUES('ESRI','%s','%s',NULL,NULL,'%s','%s','EPSG','9807','Transverse Mercator','EPSG','8801','Latitude of natural origin',%s,'EPSG','%s','EPSG','8802','Longitude of natural origin',%s,'EPSG','%s','EPSG','8805','Scale factor at natural origin',%s,'EPSG','9201','EPSG','8806','False easting',%s,'EPSG','%s','EPSG','8807','False northing',%s,'EPSG','%s',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,%d);""" % (
+ code, conv_name, area_auth_name, area_code, Latitude_Of_Origin, ang_uom_code, Central_Meridian, ang_uom_code, Scale_Factor, False_Easting, uom_code, False_Northing, uom_code, deprecated)
+
+ sql_extract = sql[sql.find('NULL,NULL'):]
+ if conv_name != 'unnamed' or sql_extract not in map_conversion_sql_to_code:
+ all_sql.append(sql)
+ map_conversion_sql_to_code[sql_extract] = conv_code
+ else:
+ conv_code = map_conversion_sql_to_code[sql_extract]
+
+ sql = """INSERT INTO "projected_crs" VALUES('ESRI','%s','%s',NULL,NULL,'%s','%s','%s','%s','%s','%s','%s','%s',NULL,%d);""" % (
+ code, esri_name, cs_auth_name, cs_code, geogcs_auth_name, geogcs_code, conv_auth_name, conv_code, area_auth_name, area_code, deprecated)
+ all_sql.append(sql)
+
+ elif method == 'Hotine_Oblique_Mercator_Azimuth_Natural_Origin':
+ assert len(parsed_conv_wkt) == 1 + 6 + 2
+ False_Easting = parsed_conv_wkt['False_Easting']
+ False_Northing = parsed_conv_wkt['False_Northing']
+ Scale_Factor = parsed_conv_wkt['Scale_Factor']
+ Azimuth = parsed_conv_wkt['Azimuth']
+ Longitude_Of_Center = parsed_conv_wkt['Longitude_Of_Center']
+ Latitude_Of_Center = parsed_conv_wkt['Latitude_Of_Center']
+
+ cs_auth_name, cs_code, uom_code = get_cs(parsed_conv_wkt)
+
+ conv_name = 'unnamed'
+ conv_auth_name = 'ESRI'
+ conv_code = code
+
+ sql = """INSERT INTO "conversion" VALUES('ESRI','%s','%s',NULL,NULL,'%s','%s','EPSG','9812','Hotine Oblique Mercator (variant A)','EPSG','8811','Latitude of projection centre',%s,'EPSG','%s','EPSG','8812','Longitude of projection centre',%s,'EPSG','%s','EPSG','8813','Azimuth of initial line',%s,'EPSG','%s','EPSG','8814','Angle from Rectified to Skew Grid',%s,'EPSG','%s','EPSG','8815','Scale factor on initial line',%s,'EPSG','9201','EPSG','8806','False easting',%s,'EPSG','%s','EPSG','8807','False northing',%s,'EPSG','%s',%d);""" % (
+ code, conv_name, area_auth_name, area_code, Latitude_Of_Center, ang_uom_code, Longitude_Of_Center, ang_uom_code, Azimuth, ang_uom_code, Azimuth, ang_uom_code, Scale_Factor, False_Easting, uom_code, False_Northing, uom_code, deprecated)
+
+ sql_extract = sql[sql.find('NULL,NULL'):]
+ if conv_name != 'unnamed' or sql_extract not in map_conversion_sql_to_code:
+ all_sql.append(sql)
+ map_conversion_sql_to_code[sql_extract] = conv_code
+ else:
+ conv_code = map_conversion_sql_to_code[sql_extract]
+
+ sql = """INSERT INTO "projected_crs" VALUES('ESRI','%s','%s',NULL,NULL,'%s','%s','%s','%s','%s','%s','%s','%s',NULL,%d);""" % (
+ code, esri_name, cs_auth_name, cs_code, geogcs_auth_name, geogcs_code, conv_auth_name, conv_code, area_auth_name, area_code, deprecated)
+ all_sql.append(sql)
+
+ elif method == 'Lambert_Conformal_Conic' and 'Standard_Parallel_2' in parsed_conv_wkt:
+ assert len(parsed_conv_wkt) == 1 + 6 + 2
+ False_Easting = parsed_conv_wkt['False_Easting']
+ False_Northing = parsed_conv_wkt['False_Northing']
+ Central_Meridian = parsed_conv_wkt['Central_Meridian']
+ Standard_Parallel_1 = parsed_conv_wkt['Standard_Parallel_1']
+ Standard_Parallel_2 = parsed_conv_wkt['Standard_Parallel_2']
+ Latitude_Of_Origin = parsed_conv_wkt['Latitude_Of_Origin']
+
+ cs_auth_name, cs_code, uom_code = get_cs(parsed_conv_wkt)
+
+ conv_name = 'unnamed'
+ conv_auth_name = 'ESRI'
+ conv_code = code
+
+ sql = """INSERT INTO "conversion" VALUES('ESRI','%s','%s',NULL,NULL,'%s','%s','EPSG','9802','Lambert Conic Conformal (2SP)','EPSG','8821','Latitude of false origin',%s,'EPSG','%s','EPSG','8822','Longitude of false origin',%s,'EPSG','%s','EPSG','8823','Latitude of 1st standard parallel',%s,'EPSG','%s','EPSG','8824','Latitude of 2nd standard parallel',%s,'EPSG','%s','EPSG','8826','Easting at false origin',%s,'EPSG','%s','EPSG','8827','Northing at false origin',%s,'EPSG','%s',NULL,NULL,NULL,NULL,NULL,NULL,%d);""" % (
+ code, conv_name, area_auth_name, area_code, Latitude_Of_Origin, ang_uom_code, Central_Meridian, ang_uom_code, Standard_Parallel_1, ang_uom_code, Standard_Parallel_2, ang_uom_code, False_Easting, uom_code, False_Northing, uom_code, deprecated)
+
+ sql_extract = sql[sql.find('NULL,NULL'):]
+ if conv_name != 'unnamed' or sql_extract not in map_conversion_sql_to_code:
+ all_sql.append(sql)
+ map_conversion_sql_to_code[sql_extract] = conv_code
+ else:
+ conv_code = map_conversion_sql_to_code[sql_extract]
+
+ sql = """INSERT INTO "projected_crs" VALUES('ESRI','%s','%s',NULL,NULL,'%s','%s','%s','%s','%s','%s','%s','%s',NULL,%d);""" % (
+ code, esri_name, cs_auth_name, cs_code, geogcs_auth_name, geogcs_code, conv_auth_name, conv_code, area_auth_name, area_code, deprecated)
+ all_sql.append(sql)
+
+ elif method == 'Lambert_Conformal_Conic' and 'Scale_Factor' in parsed_conv_wkt:
+ assert len(parsed_conv_wkt) == 1 + 6 + 2
+ False_Easting = parsed_conv_wkt['False_Easting']
+ False_Northing = parsed_conv_wkt['False_Northing']
+ Central_Meridian = parsed_conv_wkt['Central_Meridian']
+ Standard_Parallel_1 = parsed_conv_wkt['Standard_Parallel_1']
+ Scale_Factor = parsed_conv_wkt['Scale_Factor']
+ Latitude_Of_Origin = parsed_conv_wkt['Latitude_Of_Origin']
+ assert Standard_Parallel_1 == Latitude_Of_Origin
+
+ cs_auth_name, cs_code, uom_code = get_cs(parsed_conv_wkt)
+
+ conv_name = 'unnamed'
+ conv_auth_name = 'ESRI'
+ conv_code = code
+
+ sql = """INSERT INTO "conversion" VALUES('ESRI','%s','%s',NULL,NULL,'%s','%s','EPSG','9801','Lambert Conic Conformal (1SP)','EPSG','8801','Latitude of natural origin',%s,'EPSG','%s','EPSG','8802','Longitude of natural origin',%s,'EPSG','%s','EPSG','8805','Scale factor at natural origin',%s,'EPSG','9201','EPSG','8806','False easting',%s,'EPSG','%s','EPSG','8807','False northing',%s,'EPSG','%s',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,%d);""" % (
+ code, conv_name, area_auth_name, area_code, Latitude_Of_Origin, ang_uom_code, Central_Meridian, ang_uom_code, Scale_Factor, False_Easting, uom_code, False_Northing, uom_code, deprecated)
+
+ sql_extract = sql[sql.find('NULL,NULL'):]
+ if conv_name != 'unnamed' or sql_extract not in map_conversion_sql_to_code:
+ all_sql.append(sql)
+ map_conversion_sql_to_code[sql_extract] = conv_code
+ else:
+ conv_code = map_conversion_sql_to_code[sql_extract]
+
+ sql = """INSERT INTO "projected_crs" VALUES('ESRI','%s','%s',NULL,NULL,'%s','%s','%s','%s','%s','%s','%s','%s',NULL,%d);""" % (
+ code, esri_name, cs_auth_name, cs_code, geogcs_auth_name, geogcs_code, conv_auth_name, conv_code, area_auth_name, area_code, deprecated)
+ all_sql.append(sql)
+
+ else:
+
+ sql = """INSERT INTO "projected_crs" VALUES('ESRI','%s','%s',NULL,NULL,NULL,NULL,'%s','%s',NULL,NULL,'%s','%s','%s',%d);""" % (
+ code, esri_name, geogcs_auth_name, geogcs_code, area_auth_name, area_code, escape_literal(wkt), deprecated)
+ all_sql.append(sql)
if deprecated and code != latestWkid:
mapDeprecatedToNonDeprecated[code] = latestWkid
@@ -1210,7 +1472,7 @@ def import_geogtran():
method_code = '9606'
method_name = 'Position Vector transformation (geog2D domain)'
- sql = """INSERT INTO "helmert_transformation" VALUES('ESRI','%s','%s',NULL,NULL,'EPSG','%s','%s','%s','%s','%s','%s','%s','%s',%s,%s,%s,%s,'EPSG','9001',%s,%s,%s,'EPSG','9104',%s,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,%d);""" % (
+ sql = """INSERT INTO "helmert_transformation" VALUES('ESRI','%s','%s',NULL,NULL,'EPSG','%s','%s','%s','%s','%s','%s','%s','%s',%s,%s,%s,%s,'EPSG','9001',%s,%s,%s,'EPSG','9104',%s,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,%d);""" % (
wkid, esri_name, method_code, method_name, src_crs_auth_name, src_crs_code, dst_crs_auth_name, dst_crs_code, area_auth_name, area_code, accuracy, x, y, z, rx, ry, rz, s, deprecated)
all_sql.append(sql)
@@ -1232,7 +1494,7 @@ def import_geogtran():
method_code = '9636'
method_name = 'Molodensky-Badekas (CF geog2D domain)'
- sql = """INSERT INTO "helmert_transformation" VALUES('ESRI','%s','%s',NULL,NULL,'EPSG','%s','%s','%s','%s','%s','%s','%s','%s',%s,%s,%s,%s,'EPSG','9001',%s,%s,%s,'EPSG','9104',%s,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,%s,%s,%s,'EPSG','9001',%d);""" % (
+ sql = """INSERT INTO "helmert_transformation" VALUES('ESRI','%s','%s',NULL,NULL,'EPSG','%s','%s','%s','%s','%s','%s','%s','%s',%s,%s,%s,%s,'EPSG','9001',%s,%s,%s,'EPSG','9104',%s,'EPSG','9202',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,%s,%s,%s,'EPSG','9001',NULL,%d);""" % (
wkid, esri_name, method_code, method_name, src_crs_auth_name, src_crs_code, dst_crs_auth_name, dst_crs_code, area_auth_name, area_code, accuracy, x, y, z, rx, ry, rz, s, px, py, pz, deprecated)
all_sql.append(sql)
@@ -1245,7 +1507,7 @@ def import_geogtran():
method_code = '9603'
method_name = 'Geocentric translations (geog2D domain)'
- sql = """INSERT INTO "helmert_transformation" VALUES('ESRI','%s','%s',NULL,NULL,'EPSG','%s','%s','%s','%s','%s','%s','%s','%s',%s,%s,%s,%s,'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,%d);""" % (
+ sql = """INSERT INTO "helmert_transformation" VALUES('ESRI','%s','%s',NULL,NULL,'EPSG','%s','%s','%s','%s','%s','%s','%s','%s',%s,%s,%s,%s,'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,%d);""" % (
wkid, esri_name, method_code, method_name, src_crs_auth_name, src_crs_code, dst_crs_auth_name, dst_crs_code, area_auth_name, area_code, accuracy, x, y, z, deprecated)
all_sql.append(sql)
@@ -1260,7 +1522,7 @@ def import_geogtran():
lat_offset = get_parameter(wkt, 'Latitude_Offset')
assert wkt.count('PARAMETER[') == 2
- sql = """INSERT INTO "other_transformation" VALUES('ESRI','%s','%s',NULL,NULL,'EPSG','9619','Geographic2D offsets','%s','%s','%s','%s','%s','%s',%s,'EPSG','8601','Latitude offset',%s,'EPSG','9104','EPSG','8602','Longitude offset',%s,'EPSG','9104',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,%d);""" % (
+ sql = """INSERT INTO "other_transformation" VALUES('ESRI','%s','%s',NULL,NULL,'EPSG','9619','Geographic2D offsets','%s','%s','%s','%s','%s','%s',%s,'EPSG','8601','Latitude offset',%s,'EPSG','9104','EPSG','8602','Longitude offset',%s,'EPSG','9104',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,%d);""" % (
wkid, esri_name, src_crs_auth_name, src_crs_code, dst_crs_auth_name, dst_crs_code, area_auth_name, area_code, accuracy, lat_offset, long_offset, deprecated)
all_sql.append(sql)
@@ -1269,7 +1531,7 @@ def import_geogtran():
lat_offset = '0'
assert wkt.count('PARAMETER[') == 0
- sql = """INSERT INTO "other_transformation" VALUES('ESRI','%s','%s',NULL,NULL,'EPSG','9619','Geographic2D offsets','%s','%s','%s','%s','%s','%s',%s,'EPSG','8601','Latitude offset',%s,'EPSG','9104','EPSG','8602','Longitude offset',%s,'EPSG','9104',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,%d);""" % (
+ sql = """INSERT INTO "other_transformation" VALUES('ESRI','%s','%s',NULL,NULL,'EPSG','9619','Geographic2D offsets','%s','%s','%s','%s','%s','%s',%s,'EPSG','8601','Latitude offset',%s,'EPSG','9104','EPSG','8602','Longitude offset',%s,'EPSG','9104',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,%d);""" % (
wkid, esri_name, src_crs_auth_name, src_crs_code, dst_crs_auth_name, dst_crs_code, area_auth_name, area_code, accuracy, lat_offset, long_offset, deprecated)
all_sql.append(sql)
@@ -1299,7 +1561,7 @@ def import_geogtran():
print('A grid_transformation (%s, using grid %s) is already known for the equivalent of %s (%s:%s --> %s:%s) for area %s, which uses grid %s. Skipping it' % (src_row[0], src_row[1], esri_name, src_crs_auth_name, src_crs_code, dst_crs_auth_name, dst_crs_code, row[idx_areaname], filename))
continue
- sql = """INSERT INTO "grid_transformation" VALUES('ESRI','%s','%s',NULL,NULL,'EPSG','9615','NTv2','%s','%s','%s','%s','%s','%s',%s,'EPSG','8656','Latitude and longitude difference file','%s',NULL,NULL,NULL,NULL,NULL,NULL,%d);""" % (
+ sql = """INSERT INTO "grid_transformation" VALUES('ESRI','%s','%s',NULL,NULL,'EPSG','9615','NTv2','%s','%s','%s','%s','%s','%s',%s,'EPSG','8656','Latitude and longitude difference file','%s',NULL,NULL,NULL,NULL,NULL,NULL,NULL,%d);""" % (
wkid, esri_name, src_crs_auth_name, src_crs_code, dst_crs_auth_name, dst_crs_code, area_auth_name, area_code, accuracy, filename, deprecated)
all_sql.append(sql)