Spaces:
Sleeping
Sleeping
import requests | |
import polars as pl | |
def fetch_weather(location, start_date, end_date, variable="temperature_2m", timezone="America/Denver"): | |
base_url = "https://api.open-meteo.com/v1/forecast" | |
params = { | |
"latitude": location['lat'], | |
"longitude": location['lon'], | |
"start_date": start_date, | |
"end_date": end_date, | |
"hourly": variable, | |
"timezone": timezone | |
} | |
response = requests.get(base_url, params=params) | |
if response.status_code == 200: | |
data = response.json() | |
hourly_data = data['hourly'] | |
if variable == "temperature_2m": | |
df = pl.DataFrame({ | |
"datetime": hourly_data['time'], | |
variable: [temp * 9 / 5 + 32 for temp in hourly_data[variable]] | |
}) | |
else: | |
df = pl.DataFrame({ | |
"datetime": hourly_data['time'], | |
variable: hourly_data[variable] | |
}) | |
return df | |
else: | |
raise Exception(f"API request failed: {response.status_code}") | |