diff options
| author | Nyall Dawson <nyall.dawson@gmail.com> | 2021-11-23 08:51:44 +1000 |
|---|---|---|
| committer | Nyall Dawson <nyall.dawson@gmail.com> | 2022-01-24 11:41:33 +1000 |
| commit | a048c9e09e3bae5d75b122ca8dc8b54a479d01ba (patch) | |
| tree | f13bc2476f5c519210565fd2ce4ddf861b749187 /scripts | |
| parent | 5f2a9a574b2793393e326c67c10c3cbb79ec40ea (diff) | |
| download | PROJ-a048c9e09e3bae5d75b122ca8dc8b54a479d01ba.tar.gz PROJ-a048c9e09e3bae5d75b122ca8dc8b54a479d01ba.zip | |
Map ESRI Equidistant_Cylindrical method to EPSG:1029 during ESRI projection engine db ingestion
Diffstat (limited to 'scripts')
| -rwxr-xr-x | scripts/build_db_from_esri.py | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/scripts/build_db_from_esri.py b/scripts/build_db_from_esri.py index 920c192e..c8a7c503 100755 --- a/scripts/build_db_from_esri.py +++ b/scripts/build_db_from_esri.py @@ -1514,6 +1514,56 @@ def import_projcs(): code, code, extent_auth_name, extent_code, 'EPSG', '1024') all_sql.append(sql) + elif method == 'Equidistant_Cylindrical': + 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='1029', epsg_name='Equidistant Cylindrical (Spherical)', + params=params, + param_mapping={ + 8823: 'Standard_Parallel_1', + 8802: 'Central_Meridian', + 8806: 'False_Easting', + 8807: '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! |
