Evaristo R

Técnico Administrador de Sistemas

AESA/EASA Ultralight Pilot License ULM - MAF

AESA/EASA RPAS Pilot License - A1/A3 - A2 - STS

Profesor e-Learning

Evaristo R

Técnico Administrador de Sistemas

AESA/EASA Ultralight Pilot License ULM - MAF

AESA/EASA RPAS Pilot License - A1/A3 - A2 - STS

Profesor e-Learning

Blog Post

Construyendo un asistente meteorológico con IA para pilotos ULM: LEMR Meteo

15 febrero, 2026 Design
Construyendo un asistente meteorológico con IA para pilotos ULM: LEMR Meteo

El problema

Volar un ultraligero requiere condiciones muy específicas: viento moderado, visibilidad decente, sin tormentas. Pero consultar METAR, AEMET, Windy y Open-Meteo por separado es tedioso. Y para un piloto novato, interpretar “LEAS 151730Z 27016KT 9999 SCT045 BKN100 14/02” al principio cuesta un poco más.

¿Y si una IA pudiera leer todo eso y decirte: “Hoy mejor no, rachas de 45 km/h. Mañana perfecto de 10:00 a 16:00”?

https://lemr-meteo.evaristorivieccio.es

El Resultado

contiene todo lo necesario para planificar el vuelo. Todos los recursos que normalmente consultamos en un solo sitio + un análisis IA.

La arquitectura (o: cómo hacer esto gratis)

  1. Datos meteorológicos (€0)
  • Open-Meteo API: Condiciones actuales + pronóstico 3 días. Sin API key, sin límites realistas.
  • AEMET OpenData: Mapas sinópticos + predicciones textuales. Gratis con registro.
  • Aviation Weather (NOAA): METAR del aeropuerto más cercano (LEAS).
  • Windy API: Point forecast con diferentes modelos numéricos (GFS, ICON-EU, AROME).

2. El cerebro: Cascada de modelos IA (€0)

Aquí está la magia. GitHub Models ofrece acceso gratuito a GPT-4o (50 peticiones/día) y otros modelos. El truco: sistema de cascada automática.

AI_MODEL_CASCADE = ['gpt-4o', 'gpt-4o-mini', 'meta-llama-3.1-405b-instruct', 'phi-4']

Si gpt-4o alcanza el límite diario (error 429), el sistema prueba automáticamente con gpt-4o-mini (150/día). Si ese también falla, pasa a Llama 3.1 405B, y finalmente Phi-4.

Rate-limit protection: El código detecta errores 429 y marca el modelo como “agotado” para ese ciclo, evitando reintentos inútiles.

3. El prompt: De “METAR” a “No vueles hoy, rachas de 23 kt”

El prompt tiene ~3300 tokens e incluye:

⏰ HORA ACTUAL: 17:32 (Europe/Madrid)

Open-Meteo CONDICIONES ACTUALES:
  - Viento: 24.1 km/h desde 268°
  - Rachas: 42.8 km/h
  - Nubosidad: 100%

Open-Meteo pronóstico 3 días: [...]
Windy próximas horas: [...]
AEMET Asturias HOY: [...]
METAR LEAS: [...]

Se definen varias pautas a seguir. Esto es solo un extracto, en realidad es mucho más largo:

Tu trabajo es analizar datos meteorológicos y proporcionar interpretaciones claras, concisas y útiles para pilotos de ultraligeros.

⚠️ REGLAS CRÍTICAS DE CONVERSIÓN DE UNIDADES (NO VIOLAR NUNCA):
1. Los METAR siempre reportan viento en NUDOS (kt)
2. Los pronósticos meteorológicos suelen usar KM/H
3. ANTES de cualquier cálculo matemático, CONVIERTE TODO A LA MISMA UNIDAD
4. Conversión: 1 kt = 1.852 km/h | 1 km/h = 0.54 kt
5. NUNCA uses directamente km/h en fórmulas que esperan nudos
6. MUESTRA SIEMPRE la conversión explícitamente antes de calcular

Ejemplo CORRECTO:
"Viento: 33.8 km/h = 18.3 kt (conversión: 33.8 ÷ 1.852)
Componente crosswind = 18.3 × sin(59°) = 15.7 kt"

Ejemplo INCORRECTO ❌:
"Viento: 33.8 km/h ≈ 18.3 kt
Componente crosswind = 33.8 × sin(59°) = 28.9 kt" ← ESTO ESTÁ MAL, usó km/h en vez de kt

LEGISLACIÓN ULM ACTUALIZADA 2024-2026 (OBLIGATORIO):
- ✈️ SOLO VUELO DIURNO: Entre salida y puesta de sol
- ❌ PROHIBIDO vuelo nocturno
- ✈️ Solo operaciones VFR (Visual Flight Rules)
- ✈️ Visibilidad mínima: 5 km
- ✈️ Distancia de nubes: mínimo 1500m horizontal, 300m vertical
- ✈️ Peso máximo ULM biplaza: 600 kg

LÍMITES OPERACIONALES TÍPICOS ULM (consultar manual específico de cada modelo):
- ⚠️ Viento medio máximo: 15-18 kt (modelos robustos hasta 20-22 kt)
- ⚠️ Rachas absolutas: NO SUPERAR 20-22 kt (peligro estructural)
- ⚠️ Diferencia rachas-viento medio: > 10 kt = ALTO RIESGO (turbulencia mecánica)
- ⚠️ Componente crosswind: Generalmente 10-12 kt máximo (consultar POH)
- ⚠️ Turbulencia moderada o superior: NO VOLAR
- ⚠️ Visibilidad < 5 km: MÍNIMO LEGAL (precaución extrema)
- ⚠️ Techo de nubes < 1000 ft AGL: MARGINAL VFR (solo pilotos experimentados)
- ⚠️ Precipitación activa (lluvia/nieve): NO VOLAR (pérdida sustentación, visibilidad)
- ⚠️ Nubosidad BKN/OVC < 3000 ft: PRECAUCIÓN (restricción vertical)

CONSIDERACIONES GENERALES ULM:
- Bajo peso: muy afectados por ráfagas y turbulencias
- Velocidades bajas: el análisis de viento es crítico
- Mayor sensibilidad a condiciones meteorológicas que aviación general
- Operaciones VFR exclusivamente

Cuando analices un METAR:
- EXPLICA cada componente de forma educativa
- Traduce códigos a lenguaje claro (ej: 27015KT = "viento de 270° a 15 nudos")
- Incluye SIEMPRE una versión ultracorta para novatos (1-2 líneas, pocas palabras)
- Formato sugerido corto: "Viento ..., visibilidad ..., nubes ..., presión ... → APTO/PRECAUCIÓN/NO APTO"
- **CONVERSIÓN DE UNIDADES OBLIGATORIA**: Si mezclas fuentes, convierte primero
- **ANÁLISIS DE RACHAS ES CRÍTICO**:
  1. Calcula diferencia entre rachas y viento medio
  2. Diferencia > 10 kt = TURBULENCIA MECÁNICA PELIGROSA
  3. Rachas absolutas > 20 kt = LÍMITE ESTRUCTURAL ULM
  4. Ejemplo: Viento 15G25KT → diferencia 10 kt = ⚠️ LÍMITE, rachas 25 kt = ⚠️ LÍMITE
- **ANÁLISIS DE NUBOSIDAD**:
  1. Techo < 1000 ft AGL = MARGINAL (solo exp.)
  2. BKN/OVC < 3000 ft = restricción vertical
  3. FEW/SCT a buen altura = ✅ óptimo VFR
- **ANÁLISIS DE PRECIPITACIÓN**:
  1. Lluvia/nieve activa = NO VOLAR (pérdida sustentación, visibilidad)
  2. -RA (ligera) = precaución extrema
  3. +RA (fuerte) = ❌ NO APTO
- CÁLCULO correcto de componentes de viento:
  1. Asegúrate que el viento está en NUDOS (kt)
  2. Calcula diferencia angular con la pista
  3. Headwind = velocidad_en_kt × cos(ángulo)
  4. Crosswind = velocidad_en_kt × sin(ángulo)
  5. Verifica que el resultado sea coherente
- Explica QNH y su importancia

INFORMACIÓN AERÓDROMO LA MORGAL (LEMR):
- 🛫 Pista 10/28 (orientación 100°/280° magnético)
- 🛫 Longitud: 890m | Elevación: 545 ft (180m)
- 🛫 Coordenadas: 43°25.833'N 005°49.617'W

🎯 ANÁLISIS DE PISTA ACTIVA (OBLIGATORIO EN CADA ANÁLISIS):
**SIEMPRE debes indicar qué pista usar según el viento actual/previsto**
(...)

Con esto conseguimos que nos de una respuesta coherente aunque sea un modelo de IA “pequeño”

Si utilizamos modelos de OpenAI de pago, los resultados mejoran, pues se le podrían enviar directamente los mapas para su análisis.

4 El VPS:

Podría seguir siendo casi gratis si lo montas en tu Raspberry pi favorita, pero en mi caso está desplegado en el mismo servidor que esta web, eso sí, al mejor precio del mercado gracias a https://www.hetzner.com en una máquina muy pequeñita (No me hagas un DDoS porfa)

Lo que aprendí (y lo que me sorprendió)

  1. GitHub Models es viable para pequeños proyectos (con cascada). 50 peticiones/día de gpt-4o + 150 de mini + Llama ilimitado = suficiente para un dashboard personal.
  2. Los modelos open-source son lentos pero funcionales. Llama 3.1 405B tarda ~90s pero da respuestas coherentes. Phi-4 es más rápido pero menos preciso.
  3. Distinguir timeout de rate-limit es crítico. Sin esto, el sistema bloqueaba modelos viables porque “tardaban mucho” (cuando en realidad solo necesitaban más tiempo).
  4. Comparar pronóstico vs realidad es clave. Decir “hoy viento 15 kt” sin contexto no ayuda. Decir “pronóstico era 12 kt, ahora son 23 kt, peor de lo esperado” sí.

Stack completo

Backend: Python, Flask, Gunicorn
IA: GitHub Models (GPT-4o, Llama 3.1 405B, Phi-4)
APIs: Open-Meteo, AEMET OpenData, Aviation Weather, Windy
Frontend: HTML/CSS/JS vanilla (sin frameworks, carga <50KB)
Deploy: Apache reverse proxy, systemd service, Linux VPS

El repo:

https://github.com/evaristorivi/lemr-meteo

Para Terminar

En 2026, construir herramientas especializadas con IA es absurdamente accesible. No necesitas infraestructura de AWS ni presupuesto de startup. Necesitas:

  1. Un problema real (decidir si volar)
  2. Datos disponibles (APIs meteorológicas)
  3. Un modelo que los interprete (cascada de modelos gratuitos)
  4. Un frontend decente (HTML/CSS/JS vanilla)

La democratización de la IA no es solo ChatGPT. Es poder crear tu propio “copiloto meteorológico” en un fin de semana, que entienda las particularidades de tu aeródromo local, y que funcione 24/7 sin coste.

¿Es perfecto? No. A veces el modelo se equivoca, a veces Open-Meteo no tiene datos, a veces AEMET cambia URLs. Pero es útil, y para un proyecto personal/comunitario, eso es suficiente.

Si llegaste hasta aquí: Gracias por leer. Y ya que estamos, aquí estamos aquí está mi primer aterrizaje en La Morgal en uno de esos días que esta app hubiera marcado como “✅ APTO” 😊

Tags:
Write a comment

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información. Si está interesado en leer el aviso de privacidad pinche aquí.

ACEPTAR
Aviso de cookies