| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- import requests
- import json
- import time
- def alt(longitude, latitude):
- if len(longitude) != len(latitude):
- print ("Les tableaux de longitude et de latitude doivent avoir la même taille.")
- return "error"
- total_elements = len(longitude)
- batch_size = 100
- start = 0
- res=[]
- i=0
- while start < total_elements:
- print(i,"/",total_elements/batch_size)
- i=i+1
- end = min(start + batch_size, total_elements)
-
- longitude_batch = longitude[start:end]
- latitude_batch = latitude[start:end]
- res=res+req(longitude_batch, latitude_batch, len(longitude_batch))
- # Mettez à jour l'indice de début pour le prochain lot
- start = end
- return res
-
- def req(latitude, longitude,nb):
- longi=""
- latti=""
- for i in range(nb):
- if i > 0:
- longi += ","
- latti += ","
-
- longi += str(longitude[i])
- latti += str(latitude[i])
-
-
- url = f'https://api.open-meteo.com/v1/elevation?latitude={latti}&longitude={longi}'
-
- rd=0
- while(1):
- print(rd)
- rd=rd+1
- try:
- response = requests.get(url)
-
- if response.status_code == 200:
- try:
- data = json.loads(response.text)
-
- if 'elevation' in data:
- elevation = data['elevation']
- return elevation
- else:
- print("Impossible d'obtenir l'altitude pour les coordonnées spécifiées.")
- except:
- print(url)
- print(latitude,",",longitude)
- time.sleep(1)
- else:
- print(f"Erreur de réponse de l'API. Code de statut : {response.status_code}")
- except requests.exceptions.RequestException as e:
- print(f"Une erreur s'est produite lors de la requête : {e}")
|