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)