Spaces:
Paused
Paused
import requests | |
import json | |
import datetime | |
from pprint import pprint | |
from datetime import date | |
from dotenv import load_dotenv | |
import os | |
load_dotenv() | |
def get_weather(city, date): | |
agro_api_key = os.getenv("AGRO_API_KEY") | |
opencage_api_key = os.getenv("OPENCAGE_API_KEY") | |
# On récupère les lat et lon de la ville | |
geocode_url = f"https://api.opencagedata.com/geocode/v1/json?q={city}&key={opencage_api_key}" | |
geocode_response = requests.get(geocode_url) | |
geocode_data = geocode_response.json() | |
latitude = geocode_data['results'][0]['geometry']['lat'] | |
longitude = geocode_data['results'][0]['geometry']['lng'] | |
# On demande la météo pour cette ville | |
forecast_url = f"http://api.agromonitoring.com/agro/1.0/weather/forecast?lat={latitude}&lon={longitude}&appid={agro_api_key}" | |
forecast_response = requests.get(forecast_url) | |
if forecast_response.status_code == 200: | |
forecast_data = forecast_response.json() | |
d={} | |
for forecast in forecast_data: | |
datew = datetime.datetime.fromtimestamp(forecast['dt']) | |
temperature = forecast['main']['temp'] | |
weather_description = forecast['weather'][0]['description'] | |
if str(datew).split(' ')[0]==str(date) : | |
d[str(datew)]=f"Location : {city}, Temperature: {round(temperature-273.15,2)}°C, Weather: {weather_description}" | |
return d, latitude, longitude | |
else: | |
print(f"Error: {forecast_response.status_code}") | |
# #exemple | |
# today = date.today() | |
# today = today.strftime("%Y-%m-%d") | |
# a=get_weather('Paris',today) | |
# print(a) |