ClimApp is a Flask-based web application built for precise meteorological monitoring across the Community of Madrid. It integrates directly with the official AEMET OpenData API to retrieve live weather observations, then uses the Haversine formula to match your GPS coordinates with the nearest official monitoring station — delivering temperature, humidity, wind speed, atmospheric pressure, precipitation, and critical alerts in one unified interface. Beyond live queries, ClimApp is designed for users who collect their own measurements. Whether you operate a home weather station or log readings manually, the platform lets you store, review, and audit your data against AEMET’s official figures. The result is a practical tool for citizens, researchers, and meteorology enthusiasts who need both real-time awareness and a reliable record of past conditions.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/elenacarino-max/mas-climapp/llms.txt
Use this file to discover all available pages before exploring further.
Core features
Real-time weather
Geolocates your position and retrieves live data from the nearest AEMET station, including temperature extremes, humidity, wind, pressure, and precipitation.
Manual logging
Record your own measurements at
/registro, validated against physical plausibility ranges before being saved to both JSON and SQLite storage.Historical data
Browse and filter every stored observation at
/consulta by municipality or date, with full alert history included in the results.AEMET comparison
Audit your manual readings against official AEMET data at
/comparar, with per-variable deviation shown for temperature, humidity, wind, and rainfall.Architecture
ClimApp follows a strict layered architecture — controllers handle routing, services own business logic, repositories abstract storage, and models define the data structures that flow between them.Architecture overview
Controllers, services, repositories, models, and utils — how the layers fit together.
Data flow
The double-request AEMET handshake, Haversine station matching, normalization, and persistence pipeline.
Alerts
Six threshold-based alert levels from frost and high humidity to red heat warnings and strong wind.