Spaces:
Runtime error
Runtime error
| """ | |
| Archivo: weather.py | |
| Fecha de modificación: 03/06/2026 | |
| Autor: Equipo AgroVisión | |
| Descripción: | |
| Router de clima (`/api/weather`). Devuelve la serie agroclimática mensual (precipitación, | |
| temperatura media, radiación) por coordenadas usando Open-Meteo (sin llave). Por defecto | |
| cubre los últimos 5 años, para cruzarse con la serie NDVI en Teledetección. | |
| Estructura Interna: | |
| - `POST /api/weather`. | |
| Entradas / Dependencias: | |
| - `backend.services.weather`. | |
| Ejemplo de Integración: | |
| from backend.api.weather import router | |
| """ | |
| from __future__ import annotations | |
| from fastapi import APIRouter | |
| from pydantic import BaseModel, Field | |
| from backend.services import weather | |
| router = APIRouter(prefix="/api/weather", tags=["clima"]) | |
| class WeatherRequest(BaseModel): | |
| """Petición de clima por coordenadas y rango opcional (default últimos 5 años).""" | |
| lat: float = Field(ge=-90, le=90) | |
| lon: float = Field(ge=-180, le=180) | |
| start: str | None = None | |
| end: str | None = None | |
| async def weather_series(body: WeatherRequest) -> dict: | |
| """Devuelve la serie climática mensual de las coordenadas indicadas.""" | |
| series = await weather.weather_series(body.lat, body.lon, body.start, body.end) | |
| return {"series": series} | |