import pandas as pd, requests, io
# Set location and time
lat, lon = -6.000, 38.758
start, end = '20150101', '20241231'
# Fetch daily rainfall (PRECTOT) from NASA POWER
url = (f"https://power.larc.nasa.gov/api/temporal/daily/point?"
f"parameters=PRECTOT&start={start}&end={end}&latitude={lat}&longitude={lon}&format=CSV")
csv = requests.get(url).text.splitlines()
# Load into DataFrame
df = pd.read_csv(io.StringIO("\n".join(csv[10:]))) # skip metadata
df['DATE'] = pd.to_datetime(df[['YEAR','MO','DY']])
# Monthly total rainfall
monthly = df.groupby(df['DATE'].dt.to_period('M'))['PRECTOT'].sum().reset_index()
monthly.columns = ['Month', 'Rainfall_mm']
monthly['Month'] = monthly['Month'].astype(str)
# Annual total rainfall
annual = df.groupby(df['DATE'].dt.year)['PRECTOT'].sum().reset_index()
annual.columns = ['Year', 'Rainfall_mm']
# Export
monthly.to_csv("saadani_monthly_rainfall_2015_2024.csv", index=False)
annual.to_csv("saadani_annual_rainfall_2015_2024.csv", index=False)