UjjwalKGupta commited on
Commit
de03756
·
verified ·
1 Parent(s): 63b30d1

Add ESRI Imagery in Comparison Maps

Browse files
Files changed (1) hide show
  1. app.py +15 -11
app.py CHANGED
@@ -174,28 +174,32 @@ def get_wayback_data():
174
  url = "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/MapServer/WMTS/1.0.0/WMTSCapabilities.xml"
175
  response = requests.get(url)
176
  response.raise_for_status() # Ensure request was successful
177
-
178
  # Parse XML
179
  root = ET.fromstring(response.content)
180
-
181
  ns = {
182
- "wmts": "http://www.opengis.net/wmts/1.0",
183
- "ows": "http://www.opengis.net/ows/1.1",
184
- "xlink": "http://www.w3.org/1999/xlink",
185
  }
186
-
 
 
187
  layers = root.findall(".//wmts:Contents/wmts:Layer", ns)
188
-
189
  layer_data = []
190
  for layer in layers:
191
  title = layer.find("ows:Title", ns)
192
- resource = layer.find("wmts:ResourceURL", ns)
193
-
 
194
  title_text = title.text if title is not None else "N/A"
 
195
  url_template = resource.get("template") if resource is not None else "N/A"
196
-
197
  layer_data.append({"Title": title_text, "ResourceURL_Template": url_template})
198
-
199
  wayback_df = pd.DataFrame(layer_data)
200
  wayback_df["date"] = pd.to_datetime(wayback_df["Title"].str.extract(r"(\d{4}-\d{2}-\d{2})").squeeze(), errors="coerce")
201
  wayback_df.set_index("date", inplace=True)
 
174
  url = "https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/MapServer/WMTS/1.0.0/WMTSCapabilities.xml"
175
  response = requests.get(url)
176
  response.raise_for_status() # Ensure request was successful
177
+
178
  # Parse XML
179
  root = ET.fromstring(response.content)
180
+
181
  ns = {
182
+ "wmts": "https://www.opengis.net/wmts/1.0",
183
+ "ows": "https://www.opengis.net/ows/1.1",
184
+ "xlink": "https://www.w3.org/1999/xlink",
185
  }
186
+
187
+ # Use a robust XPath to find all 'Layer' elements anywhere in the document.
188
+ # This is less brittle than specifying the full path.
189
  layers = root.findall(".//wmts:Contents/wmts:Layer", ns)
190
+
191
  layer_data = []
192
  for layer in layers:
193
  title = layer.find("ows:Title", ns)
194
+ identifier = layer.find("ows:Identifier", ns)
195
+ resource = layer.find("wmts:ResourceURL", ns) # Tile URL template
196
+
197
  title_text = title.text if title is not None else "N/A"
198
+ identifier_text = identifier.text if identifier is not None else "N/A"
199
  url_template = resource.get("template") if resource is not None else "N/A"
200
+
201
  layer_data.append({"Title": title_text, "ResourceURL_Template": url_template})
202
+
203
  wayback_df = pd.DataFrame(layer_data)
204
  wayback_df["date"] = pd.to_datetime(wayback_df["Title"].str.extract(r"(\d{4}-\d{2}-\d{2})").squeeze(), errors="coerce")
205
  wayback_df.set_index("date", inplace=True)