From 5f2a9a574b2793393e326c67c10c3cbb79ec40ea Mon Sep 17 00:00:00 2001 From: Nyall Dawson Date: Tue, 23 Nov 2021 08:48:44 +1000 Subject: Map ESRI IGAC_Plano_Cartesiano method to EPSG:1052 during ESRI projection engine db ingestion --- scripts/build_db_from_esri.py | 51 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) (limited to 'scripts/build_db_from_esri.py') diff --git a/scripts/build_db_from_esri.py b/scripts/build_db_from_esri.py index df421f63..920c192e 100755 --- a/scripts/build_db_from_esri.py +++ b/scripts/build_db_from_esri.py @@ -1463,6 +1463,57 @@ def import_projcs(): code, code, extent_auth_name, extent_code, 'EPSG', '1024') all_sql.append(sql) + elif method == 'IGAC_Plano_Cartesiano': + 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='1052', epsg_name='Colombia Urban', + params=params, + param_mapping={ + 8801: 'Latitude_Of_Center', + 8802: 'Longitude_Of_Center', + 8806: 'False_Easting', + 8807: 'False_Northing', + 1039: 'Height' + }, + 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! -- cgit v1.2.3