| 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
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)
 |