aboutsummaryrefslogtreecommitdiff
path: root/scripts/build_db_from_esri.py
diff options
context:
space:
mode:
authorNyall Dawson <nyall.dawson@gmail.com>2021-11-23 08:44:39 +1000
committerNyall Dawson <nyall.dawson@gmail.com>2022-01-24 11:41:33 +1000
commit837857386bcf62e42cbde402385e81f727cc674a (patch)
treebbb24baf2d554d255f9ad486f274f7f7c510a1a3 /scripts/build_db_from_esri.py
parent89846ece92d0e30476e532a44d47a61abe7ec210 (diff)
downloadPROJ-837857386bcf62e42cbde402385e81f727cc674a.tar.gz
PROJ-837857386bcf62e42cbde402385e81f727cc674a.zip
Map ESRI Albers method to EPSG:9822 during ESRI projection engine db ingestion
Diffstat (limited to 'scripts/build_db_from_esri.py')
-rwxr-xr-xscripts/build_db_from_esri.py52
1 files changed, 52 insertions, 0 deletions
diff --git a/scripts/build_db_from_esri.py b/scripts/build_db_from_esri.py
index d6ec1321..df421f63 100755
--- a/scripts/build_db_from_esri.py
+++ b/scripts/build_db_from_esri.py
@@ -1411,6 +1411,58 @@ def import_projcs():
sql = """INSERT INTO "usage" VALUES('ESRI', 'PCRS_%s_USAGE','projected_crs','ESRI','%s','%s','%s','%s','%s');""" % (code, code, extent_auth_name, extent_code, 'EPSG', '1024')
all_sql.append(sql)
+ elif method == 'Albers':
+ params = get_parameter_values(parsed_conv_wkt2['CONVERSION'][1])
+
+ assert params['False_Easting'].unit.cs_auth_name == params[
+ 'False_Northing'].unit.cs_auth_name, 'Cannot handle False_Easting CS auth {} != False_Northing CS auth {}'.format(
+ params['False_Easting'].unit.cs_auth_name, params['False_Northing'].unit.cs_auth_name)
+ cs_auth_name = params['False_Easting'].unit.cs_auth_name
+
+ assert params['False_Easting'].unit.cs_code == params[
+ 'False_Northing'].unit.cs_code, 'Cannot handle False_Easting CS code {} != False_Northing CS code {}'.format(
+ params['False_Easting'].unit.cs_code, params['False_Northing'].unit.cs_code)
+ cs_code = params['False_Easting'].unit.cs_code
+
+ conv_name = 'unnamed'
+ conv_auth_name = 'ESRI'
+ conv_code = code
+
+ sql = insert_conversion_sql(esri_code=code, esri_name=conv_name,
+ epsg_code='9822', epsg_name='Albers Equal Area',
+ params=params,
+ param_mapping={
+ 8821: 'Latitude_Of_Origin',
+ 8822: 'Central_Meridian',
+ 8823: 'Standard_Parallel_1',
+ 8824: 'Standard_Parallel_2',
+ 8826: 'False_Easting',
+ 8827: 'False_Northing',
+ },
+ deprecated=bool(deprecated)
+ )
+
+ sql_extract = sql[sql.find('NULL'):]
+ if conv_name != 'unnamed' or sql_extract not in map_conversion_sql_to_code:
+ all_sql.append(sql)
+
+ sql = """INSERT INTO "usage" VALUES('ESRI', 'CONV_%s_USAGE','conversion','ESRI','%s','%s','%s','%s','%s');""" % (
+ code, code, extent_auth_name, extent_code, 'EPSG', '1024')
+ 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,'%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, deprecated)
+ all_sql.append(sql)
+
+ sql = """INSERT INTO "usage" VALUES('ESRI', 'PCRS_%s_USAGE','projected_crs','ESRI','%s','%s','%s','%s','%s');""" % (
+ code, code, extent_auth_name, extent_code, 'EPSG', '1024')
+ all_sql.append(sql)
+
else:
# TODO -- add more method mapping!