Vertdure commited on
Commit
c04a722
1 Parent(s): cc56db8

Update pages/12_🌲_VertXtractor.py

Browse files
Files changed (1) hide show
  1. 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://server.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": "png",
73
- "f": "json",
74
  "imageSR": 4326,
75
- "transparent": "true",
76
- "dpi": 96,
77
- "world_file": "true"
78
  }
79
- try:
80
- response = requests.get(service_url, params=params)
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: