diff options
Diffstat (limited to 'ishtar_common/ignf_utils.py')
-rw-r--r-- | ishtar_common/ignf_utils.py | 181 |
1 files changed, 181 insertions, 0 deletions
diff --git a/ishtar_common/ignf_utils.py b/ishtar_common/ignf_utils.py new file mode 100644 index 000000000..2f167299c --- /dev/null +++ b/ishtar_common/ignf_utils.py @@ -0,0 +1,181 @@ +import xml.etree.ElementTree as ET + + +# from the bellow script +IGNF = { + "BORA01": 5607, + "CAD97": 4473, + "CAD97UTM38S": 5879, + "MAYO50UTM38S": 2980, + "CSG67UTM21": 3312, + "CSG67UTM22": 2971, + "STPM50": 5792, + "ED50UTM30": 23030, + "ED50UTM32": 23032, + "ED50UTM31": 23031, + "ETRS89": 4936, + "ETRS89LAEA": 3035, + "ETRS89LCC": 3034, + "ETRS89UTM28": 25828, + "ETRS89UTM29": 25829, + "ETRS89UTM30": 25830, + "ETRS89UTM31": 25831, + "ETRS89UTM32": 25832, + "ETRS89UTM33": 25833, + "ETRS89UTM34": 25834, + "ETRS89UTM35": 25835, + "ETRS89UTM36": 25836, + "ETRS89UTM37": 25837, + "EVRF2000": 5730, + "EVRF2007": 5621, + "GUADFMUTM20": 2969, + "GUADANNUTM20": 2970, + "HUAH01": 5605, + "ATUO63UTM7S": 3302, + "TAHITI66": 5601, + "MART87": 5756, + "GUAD88": 5757, + "GUAD88LS": 5616, + "GUAD88MG": 5617, + "GUAD88SB": 5619, + "GUAD88SM": 5620, + "REUN89": 5758, + "GUAD92LD": 5618, + "IGN72UTM58S": 3060, + "KERG62UTM42S": 3336, + "LIFOU56UT58S": 2981, + "MARE53UTM58S": 2995, + "MARTFDUTM20": 2973, + "MAUPITIUTM5S": 3306, + "MAUPITI01": 5604, + "MOOREA81": 5602, + "MOORE87UTM6S": 3305, + "NEA74LBTNM2": 3166, + "IGN69": 5720, + "IGN78C": 5721, + "NGF84": 5719, + "GUYA77": 5755, + "NGC48": 5791, + "NCAL69": 5753, + "NNLUX": 5774, + "LURESGKL": 2169, + "NTFLAMB1": 27561, + "NTFLAMB1C": 27571, + "NTFLAMB2": 27562, + "NTFLAMB2C": 27572, + "NTFLAMB2E": 27572, + "NTFLAMB3": 27563, + "NTFLAMB3C": 27573, + "NTFLAMB4": 27564, + "NTFLAMB4C": 27574, + "PETRE72SPSTA": 2985, + "RAIA01": 5603, + "RGAF09": 5487, + "RGAF09GEODD": 7085, + "RGAF09GDD": 7086, + "RGAF09G": 7086, + "RGAF09GEO": 7085, + "RGAF09UTM20": 5490, + "RGF93": 4964, + "RGF93CC42": 3942, + "RGF93CC43": 3943, + "RGF93CC44": 3944, + "RGF93CC45": 3945, + "RGF93CC46": 3946, + "RGF93CC47": 3947, + "RGF93CC48": 3948, + "RGF93CC49": 3949, + "RGF93CC50": 3950, + "RGF93GDD": 7084, + "RGF93GEODD": 7042, + "RGF93GEO": 7042, + "RGF93G": 7084, + "RGFG95": 4966, + "RGFG95GDD": 7041, + "RGFG95GEODD": 7040, + "RGFG95G": 7041, + "RGFG95GEO": 7040, + "RGFG95UTM21": 3313, + "RGFG95UTM22": 2972, + "RGM04": 4468, + "RGM04GDD": 7039, + "RGM04GEODD": 7038, + "RGM04G": 7039, + "RGM04GEO": 7038, + "RGM04UTM38S": 4471, + "RGNC": 4906, + "RGNCLAMBNC": 3163, + "RGNCUTM57S": 3169, + "RGNCUTM58S": 3170, + "RGNCUTM59S": 3171, + "RGPF": 4998, + "RGPFUTM5S": 3296, + "RGPFUTM6S": 3297, + "RGPFUTM7S": 3298, + "RGPFUTM8S": 3299, + "RGR92": 4970, + "RGR92GEODD": 7036, + "RGR92GDD": 7037, + "RGR92GEO": 7036, + "RGR92G": 7037, + "RGR92UTM40S": 2975, + "RGSPM06": 4465, + "RGSPM06GDD": 7035, + "RGSPM06GEODD": 7034, + "RGSPM06GEO": 7034, + "RGSPM06G": 7035, + "RGSPM06U21": 4467, + "RGTAAF07": 7071, + "RGTAAFGEODD": 7087, + "RGTAAF07GDD": 7133, + "RGTAAF07G": 7133, + "RGTAAFGEO": 7087, + "RGTAAFUTM37S": 7074, + "RGTAAFUTM39S": 7076, + "RGTAAFUTM42S": 7079, + "RGTAAFUTM43S": 7080, + "MAYO53": 5793, + "ST84UTM58S": 2996, + "ST87UTM58S": 3164, + "STPM50UTM21": 2987, + "TAHAA01": 5606, + "TAHI79UTM6S": 3304, + "TAHI51UTM6S": 2976, + "PGP50STEREPS": 2986, + "WALL78UTM1S": 2988, + "WGS72": 4984, + "WGS72UTM30": 32230, + "WGS72UTM31": 32231, + "WGS72UTM32": 32232, + "WGS72UTM1S": 32301, + "WGS84": 4978, + "WGS84UTM30": 32630, + "WGS84UTM31": 32631, + "WGS84UTM32": 32632, + "WGS84UTM1S": 32701, + "WGS84UTM39S": 32739, + "WGS84UTM42S": 32742, + "WGS84WMSV": 3857, +} + + +def extract_from_csv(filename): + tree = ET.parse(filename) + root = tree.getroot() + ns = "{http://www.isotc211.org/2005/gmx}" + ns_gml = "{http://www.opengis.net/gml}" + equiv = {} + base_srid = "urn:ogc:def:crs:EPSG:9.1.1:" + + for crs_type in root.findall(f"{ns}crs"): + for crs in list(crs_type): + ignf_id = crs.attrib[f"{ns_gml}id"] + for epsg in crs.findall(f"{ns_gml}name"): + if epsg.text.startswith(base_srid): + equiv[ignf_id] = epsg.text[len(base_srid) :] + return equiv + + +if __name__ == "__main__": + equiv = extract_from_csv("IGNF.xml") + print(equiv) |