Land Fire Alerts (LFA) - Surveillance Internationale

Plateforme de surveillance satellitaire des feux de forêt en temps réel, développée pour NOAA, NASA, AFoCO, le Royal Forest Department et l'Université de Kasetsart. Déployée en production dans 4 pays (Thaïlande, Cambodge, Laos, Vietnam), utilisée quotidiennement par des responsables gouvernementaux et des décideurs de haut niveau pour la gestion de crises environnementales.
Pipeline de Data Engineering

Daemon ETL entièrement autonome fonctionnant 24h/24 et 7j/7, interrogeant l'API Gmail toutes les 5 minutes pour récupérer les données de détection de feux des capteurs VIIRS & MODIS embarqués sur les satellites NOAA-20, NOAA-21 et S-NPP (résolution 375m).
- Ingestion de pièces jointes CSV/KML et normalisation de formats de données hétérogènes (schémas NASA vs. NOAA)
- Déduplication des alertes par géolocalisation et date à travers les passages satellites simultanés
- Enrichissement spatial via PostGIS par requêtes point-dans-polygone sur 6 couches de limites géographiques : provinces, districts, sous-districts, aires protégées, forêts classées et 14 zones de gestion forestière
- Insertion en masse dans PostgreSQL avec résolution
ON CONFLICTgarantissant l'intégrité des données
Visualisation Géospatiale

Génération de cartes interactives Folium/Leaflet affichant jusqu'à ~3 500 marqueurs de feux simultanés, plafonnés et priorisés par fraîcheur pour la performance navigateur.
- Couches d'alertes temporelles : dernières 6h, aujourd'hui, hier
- Code couleur par satellite avec icônes personnalisées pour les zones protégées (parcs nationaux, forêts classées)
- Popups détaillées : double affichage de coordonnées (WGS84 + UTM), noms administratifs en thaï et anglais, scores de confiance, puissance radiative du feu (FRP) et lien direct Google Maps
- 6 couches GeoJSON superposables avec infobulles au survol
Alertes & Opérations
Système de notification multicanal avec résilience complète grâce à des décorateurs de retry avec backoff exponentiel sur tous les appels externes.
- LINE Bot : enregistrement automatique des utilisateurs et groupes via webhook, envoi d'alertes push aux parties prenantes avec liens directs vers la carte
- Webhooks Discord : routage par niveau de sévérité sur 3 canaux (critique / erreur / info), fichiers de log en pièce jointe et métriques automatisées de taux de succès par exécution du pipeline
Application Web

Frontend Flask + Jinja2 servant l'interface opérationnelle.
- Panneau d'administration avec session et toggles de configuration en temps réel (consommés par le daemon via API REST)
- Navigateur d'archives de cartes avec navigation chronologique par année/mois
- Export Excel : feuilles par satellite avec enrichissement des noms géographiques depuis les lookups PostGIS
- Nettoyage automatique des cartes et exports de plus de 3 jours
Déploiement & Fiabilité
Conçu pour un fonctionnement ininterrompu 24h/24 sur une VM Linux derrière Apache WSGI.
- Logging structuré multi-niveaux : logs globaux du daemon, logs par traitement d'email et logs d'événements bot
- Gestion explicite de la mémoire avec nettoyage des variables à chaque itération de boucle pour prévenir les fuites dans les processus longue durée
- Cache de données géographiques (PostGIS → CSV avec sérialisation WKT) minimisant la charge base de données sur les exécutions répétées