Descripción General del Sistema
CanaryConditions está construido sobre una base de WordPress altamente optimizada, utilizando una arquitectura de plugin personalizada para manejar agregación, procesamiento y visualización de datos complejos. A diferencia de los sitios WordPress estándar, tratamos el CMS principalmente como un framework de aplicación y motor de entrega de contenido.
Motor Principal
Construido a medida canary-conditions-core plugin que maneja toda la lógica de negocio, tipos de publicación personalizados y endpoints de API REST.
Pipeline de Datos
Ingestión orquestada desde OpenWeatherMap, AEMET y sensores regionales con manejo inteligente de fallos.
Rendimiento
Frontend en JavaScript vanilla con Leaflet.js para mapeo, asegurando tiempos de carga sub-segundo e interactividad fluida.
Gestión Inteligente de Datos
Uno de nuestros mayores desafíos de ingeniería fue manejar datos meteorológicos de alta frecuencia para más de 50 ubicaciones sin exceder los límites de tasa de API o ralentizar la base de datos. Implementamos una estrategia de caché basada en ubicación que revolucionó nuestra eficiencia de datos.
Optimizado de 800 a ~120 llamadas/día al desacoplar puntos de estaciones de monitoreo.
Reducidas las inserciones diarias de filas de 16,000 a 4,800 mediante almacenamiento combinado de pronósticos.
Los trabajos cron en tiempo real aseguran que los datos nunca tengan más de 15 minutos de antigüedad.
El Patrón de "Obtención Combinada"
Desarrollamos un fetch_and_cache_combined() método propietario en nuestro Gestor de Pronósticos. En lugar de hacer llamadas API separadas para condiciones actuales y pronósticos de 5 días, recuperamos un único conjunto de datos completo. Estos datos se analizan para poblar tanto las tablas de estado en tiempo real como el caché de pronóstico a largo plazo simultáneamente, asegurando una sincronización perfecta entre lo que los usuarios ven ahora y lo que esperan después.
Inteligencia Algorítmica
Los datos brutos son inútiles sin contexto. Nuestros motores de puntuación traducen métricas meteorológicas complejas en consejos accionables.
📸 Algoritmo de Puntuación Fotográfica
Calcula una puntuación de 0-10 basada en:
- Penalización por Calima: Decaimiento exponencial basado en niveles de PM10.
- Cobertura de Nubes: Puntuación de curva de campana (algunas nubes son mejores que ninguna).
- Hora Dorada: Aumenta la puntuación durante las ventanas de amanecer/atardecer.
- Precipitación: Fuertes penalizaciones para probabilidad de lluvia > 20%.
⛰️ Calificación de Seguridad para Senderismo
Determina el estado Seguro/Precaución/Inseguro basado en:
- Velocidad del Viento: Umbrales en 30km/h (Precaución) y 50km/h (Inseguro).
- Estrés Térmico: Análisis combinado de índice de calor/humedad.
- Calidad del Aire: Niveles de PM10 > 100µg/m³ activan advertencias de seguridad.
- Visibilidad: Baja visibilidad (< 2km) marca automáticamente senderos como Inseguros.
La Pila Tecnológica
- Backend: PHP 8.1, WordPress 6.4+
- Base de Datos: MySQL 8.0 (Tablas personalizadas para datos de series temporales)
- Frontend: HTML5, CSS3 (Variables CSS), JavaScript Vanilla ES6
- Mapeo: Leaflet.js v1.9.4, OpenStreetMap
- APIs: OpenWeatherMap One Call 3.0, SunCalc.js
- Infraestructura: WP-CLI para procesamiento en segundo plano y mantenimiento