Update pages/12_🌲_VertXtractor.py
Browse files- pages/12_🌲_VertXtractor.py +7 -25
pages/12_🌲_VertXtractor.py
CHANGED
@@ -20,7 +20,7 @@ LAYERS = {
|
|
20 |
"swissBUILDINGS3D 3.0 Beta": {"id": "ch.swisstopo.swissbuildings3d_3_0", "source": "swisstopo", "type": "3d"},
|
21 |
# ESRI
|
22 |
"World Imagery": {"id": "World_Imagery", "source": "esri", "type": "image"},
|
23 |
-
"World Elevation": {"id": "World_Elevation", "source": "esri", "type": "raster"},
|
24 |
"World Topographic": {"id": "World_Topo_Map", "source": "esri", "type": "image"},
|
25 |
"World Street Map": {"id": "World_Street_Map", "source": "esri", "type": "image"},
|
26 |
"World Terrain": {"id": "World_Terrain_Base", "source": "esri", "type": "image"},
|
@@ -64,35 +64,18 @@ def get_download_url(bbox, layer_info):
|
|
64 |
data_key = 'rgb' if 'rgb' in asset_keys else 'data' if 'data' in asset_keys else next(iter(asset_keys))
|
65 |
return feature['assets'][data_key]['href']
|
66 |
else: # ESRI
|
67 |
-
service_url = f"https://
|
68 |
params = {
|
69 |
"bbox": f"{bbox[0]},{bbox[1]},{bbox[2]},{bbox[3]}",
|
70 |
"bboxSR": 4326,
|
71 |
"size": "1000,1000",
|
72 |
-
"format": "
|
73 |
-
"f": "
|
74 |
"imageSR": 4326,
|
75 |
-
"transparent": "true"
|
76 |
-
"dpi": 96,
|
77 |
-
"world_file": "true"
|
78 |
}
|
79 |
-
|
80 |
-
|
81 |
-
response.raise_for_status()
|
82 |
-
json_response = response.json()
|
83 |
-
if 'error' in json_response:
|
84 |
-
st.error(f"Erreur ESRI: {json_response['error']['message']}")
|
85 |
-
return None
|
86 |
-
elif 'href' in json_response:
|
87 |
-
return json_response['href']
|
88 |
-
elif 'url' in json_response:
|
89 |
-
return json_response['url']
|
90 |
-
else:
|
91 |
-
st.error(f"Erreur ESRI: Réponse inattendue - {json_response}")
|
92 |
-
return None
|
93 |
-
except requests.RequestException as e:
|
94 |
-
st.error(f"Erreur ESRI: {str(e)}")
|
95 |
-
return None
|
96 |
return None
|
97 |
|
98 |
def main():
|
@@ -128,7 +111,6 @@ def main():
|
|
128 |
st.write(f"Traitement de la couche : {layer_name}")
|
129 |
st.write(f"Bbox : {bbox}")
|
130 |
download_url = get_download_url(bbox, layer_info)
|
131 |
-
st.write(f"URL de téléchargement : {download_url}")
|
132 |
if download_url:
|
133 |
st.markdown(f"[Télécharger {layer_name}]({download_url})")
|
134 |
else:
|
|
|
20 |
"swissBUILDINGS3D 3.0 Beta": {"id": "ch.swisstopo.swissbuildings3d_3_0", "source": "swisstopo", "type": "3d"},
|
21 |
# ESRI
|
22 |
"World Imagery": {"id": "World_Imagery", "source": "esri", "type": "image"},
|
23 |
+
"World Elevation": {"id": "Elevation/World_Elevation", "source": "esri", "type": "raster"},
|
24 |
"World Topographic": {"id": "World_Topo_Map", "source": "esri", "type": "image"},
|
25 |
"World Street Map": {"id": "World_Street_Map", "source": "esri", "type": "image"},
|
26 |
"World Terrain": {"id": "World_Terrain_Base", "source": "esri", "type": "image"},
|
|
|
64 |
data_key = 'rgb' if 'rgb' in asset_keys else 'data' if 'data' in asset_keys else next(iter(asset_keys))
|
65 |
return feature['assets'][data_key]['href']
|
66 |
else: # ESRI
|
67 |
+
service_url = f"https://services.arcgisonline.com/arcgis/rest/services/{layer_info['id']}/MapServer/export"
|
68 |
params = {
|
69 |
"bbox": f"{bbox[0]},{bbox[1]},{bbox[2]},{bbox[3]}",
|
70 |
"bboxSR": 4326,
|
71 |
"size": "1000,1000",
|
72 |
+
"format": "tiff",
|
73 |
+
"f": "image",
|
74 |
"imageSR": 4326,
|
75 |
+
"transparent": "true"
|
|
|
|
|
76 |
}
|
77 |
+
url = f"{service_url}?{'&'.join([f'{k}={v}' for k, v in params.items()])}"
|
78 |
+
return url
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
79 |
return None
|
80 |
|
81 |
def main():
|
|
|
111 |
st.write(f"Traitement de la couche : {layer_name}")
|
112 |
st.write(f"Bbox : {bbox}")
|
113 |
download_url = get_download_url(bbox, layer_info)
|
|
|
114 |
if download_url:
|
115 |
st.markdown(f"[Télécharger {layer_name}]({download_url})")
|
116 |
else:
|