Alexandre Chainho · Architecture SIG et automatisation opérationnelle

Des problèmes réels transformés en systèmes qui fonctionnent.

Un portfolio unifié de plateformes opérationnelles, cartographie des incendies, automatisation, produits numériques, jeux et IA — de la collecte de données sur le terrain à la décision, au rapport et à la notification.

61Entrées
46Cartographie technique
6Plateformes GNR / UEPS
9Produits, jeux et outils

À propos / Présentation générale

Je transforme les goulets d'étranglement opérationnels en technologies fonctionnelles, du terrain au centre de décision.

Je suis Alexandre Chainho, analyste/développeur et élément opérationnel au sein de la Cellule de Support Technique d'Urgence (CSTE) de l'Unité d'Urgence de Protection et de Secours (UEPS), à Coimbra. J'exerce en tant qu'analyste et concepteur de solutions technologiques appliquées aux opérations, conjuguant expérience du terrain, ingénierie de systèmes d'information géographique, automatisation de données et outils d'aide à la décision. J'appartiens à la Garde Nationale Républicaine depuis le 14 novembre 2005. En mai 2006, j'ai été affecté au Groupe d'Intervention de Protection et de Secours (GIPS), unité au sein de laquelle j'ai servi jusqu'à sa transition, en 2018, vers l'Unité d'Urgence de Protection et de Secours (UEPS). Ma formation technique est entièrement autodidacte, guidée et affinée par les nécessités concrètes des opérations de secours et de sécurité civile. Mon parcours a débuté en 2011 par la structuration des statistiques et des méthodes de géoréférencement opérationnel sur tableur, avant d'évoluer vers la gestion de bases de données relationnelles et la maîtrise approfondie de l'écosystème SIG Esri — notamment ArcGIS Online, ArcGIS Pro, Field Maps, Survey123, QuickCapture et Experience Builder. Au cours de plus d'une décennie dans ce domaine, j'ai conçu, déployé et maintenu des plateformes d'envergure nationale, dont la plateforme SIG de l'Opération Floresta Segura de la GNR, la Plateforme Intégrée de Gestion des Urgences (PIGE) de l'UEPS, les systèmes Alertes EMEIF et DIVDIR du SEPNA, ainsi que la plateforme de suivi des chantiers post-tempête Kristin au sein du CIPO. Chacune de ces réalisations répond à des enjeux concrets : de la collecte mobile structurée sur le terrain au contrôle des règles métier, jusqu'à la restitution sur tableaux de bord tactiques en temps réel et la génération automatisée de rapports officiels multi-formats. Parallèlement aux plateformes SIG, j'ai développé plusieurs dizaines d'outils d'automatisation et d'intégration de données en Python : pipelines ETL tolérants aux coupures réseau, connecteurs d'APIs météorologiques (IPMA, ECMWF, ERA5-Land), moteurs de téléchargement et d'alignement d'orthophotographies et de modèles numériques de terrain, algorithmes d'évaluation du risque d'incendie, traitement de nuages de points LiDAR et photogrammétrie par drone pour le contrôle des bandes d'obligation légale de débroussaillement, ainsi que des dispositifs de notification opérationnelle via bots Telegram et WhatsApp. Depuis la fin de l'année 2022, j'intègre l'intelligence artificielle de manière rigoureuse dans mes flux de travail, l'utilisant comme accélérateur cognitif pour l'assimilation rapide de nouvelles stacks, la validation d'architectures et la production logicielle. Cette méthodologie m'a permis d'étendre mon champ d'action au développement d'applications web complètes (React, Next.js), d'applications mobiles (Flutter) et à l'ingénierie de solutions d'IA souveraines : architectures RAG (Retrieval-Augmented Generation) sur corpus documentaire technique et orchestration de modèles de langage locaux (GGUF via llama-server avec accélération GPU), garantissant une conformité stricte avec les exigences de confidentialité et de souveraineté des données en milieu opérationnel et de sécurité.

Jalons du parcours technique

  1. Statistiques opérationnelles et géoréférencementRapports Excel avec coordonnées, consolidation en VBA et création de KML : les premières données géoréférencées du GIPS.
  2. Contrôle préventif des terrainsProjet pilote à Porto de Mós et Alcanena pour la prévention des feux de forêt.
  3. Opération Floresta SeguraConception, développement et maintenance de plateformes nationales de prévention.
    Flux Floresta SeguraEnregistrer sous…
    Voir les détails
    Dans le cadre de l'opération publique Floresta Segura de la GNR, sous la responsabilité du SEPNA, mon rôle est de concevoir et maintenir l'architecture SIG reliant l'activité des militaires sur le terrain au suivi et au compte-rendu de l'opération. J'ai conçu les cartes utilisées dans Field Maps pour chaque signalement : elles collectent la localisation, calculent automatiquement la paroisse (freguesia), la commune (concelho) et le district, identifient la parcelle cadastrale dans le registre DGT ou BUPi, signalent l'infraction potentielle, enregistrent le poste du militaire et permettent d'associer d'une à quatre photographies. Le tableau de bord développé avec ArcGIS Experience Builder permet de suivre l'opération en temps réel. Il comprend une page d'édition contrôlée, limitée aux champs autorisés ; une page d'exportation CSV sous forme de tableau ; des graphiques ; et un espace de planification avec éditeur. Au poste de travail, un processus hebdomadaire en Python et ArcGIS Pro crée la sauvegarde et génère des rapports PDF, Excel et shapefiles des signalements par paroisse, commune ou district. Les résultats sont diffusés via SharePoint. Cette solution est l'aboutissement des premières méthodes de géoréférencement développées entre 2011 et 2017, devenue aujourd'hui la plateforme nationale en service.
  4. Évolution des outils SIGTransition vers QGIS, ArcMap, ArcGIS Online et Pro ; début avec Python en 2022 et avec les outils propres en 2023.
  5. Plateforme intégrée de gestion des urgencesPIGE de l’UEPS/GNR, avec collecte opérationnelle, tableaux de bord et automatisation des rapports et statistiques.
    PIGE — ArcGISEnregistrer sous…
    PIGE Next-Gen — ReactEnregistrer sous…
    Voir les détails
    La PIGE suit l'activité opérationnelle quotidienne de l'UEPS et soutient la prise de décision de l'Unité. Les équipes terrestres et héliportées utilisent des smartphones équipés de QuickCapture et Field Maps d'Esri. Dans QuickCapture, chaque mission dispose de ses propres projets ; sont collectés le début, l'arrivée et le départ des patrouilles, les photographies d'approche — particulièrement cruciales pour la décision héliportée —, de courtes vidéos, la position à intervalles adaptés à la vitesse terrestre ou aérienne, l'indicatif radio, le poste et les autres paramètres fournis par l'application. Un bouton dédié permet de demander des renforts sur place, avec confirmation mais par un circuit accéléré. Dans Field Maps, les cartes appuient l'opération Floresta Segura, la validation des points d'eau stratégiques pour les moyens héliportés et la représentation des données associées aux incendies. Le tableau de bord, développé sous ArcGIS Experience Builder et relié à d'autres vues par navigation fluide, restitue l'activité en temps réel avec un délai d'une à deux minutes : rubans chronologiques distincts pour les enregistrements terrestres et héliportés, carte des 12 dernières heures filtrable entre une et cinq heures, position des équipements dans les trois dernières minutes, photos et vidéos, carte secondaire de la dernière heure et calculs d'identification des patrouilles les plus proches. Il intègre également une page dédiée aux patrouilles planifiées, une page de demandes de moyens avec statut, carte, moyen et poste les plus proches et champ de résolution, des liens vers des cartes thématiques et de risque, ainsi qu'une analyse historique avec filtres pluriannuels. PIGE Next-Gen réplique les informations de la page principale au sein d'une application React. Un serveur complémentaire charge et conserve les données localement, accélérant et fluidifiant la consultation, tout en permettant la lecture directe des vidéos sur la page — une fonction indisponible sous Experience Builder. En soutien à cet écosystème, j'administre un conteneur Docker avec Evolution Manager pour router automatiquement les données collectées par QuickCapture vers des groupes WhatsApp prédéfinis.
  6. Plateformes SIG du SEPNA/GNRDIVDIR et Alertes EMEIF pour l'enregistrement, la surveillance et l'appui au commandement des incendies.
    Voir les détails
    Le SEPNA est une unité de la GNR et, au titre de ses compétences, dispose de deux plateformes complémentaires : Alertes EMEIF, pour l'enregistrement structuré, et DIVDIR, comme plateforme centrale de suivi et d'aide au commandement. Alertes EMEIF — Les militaires y enregistrent tous les événements liés aux feux de forêt et d'espaces naturels. L'origine peut provenir d'une surveillance fixe — vigies et vidéosurveillance forestière —, d'une surveillance mobile par patrouilles de la GNR, de l'UEPS, des pompiers, des équipes municipales, de l'ICNF, de l'Armée et d'autres entités ; de la vigilance citoyenne via les appels au 112 ; ou d'une surveillance aérienne par drones de la GNR et de la Force Aérienne ainsi que par les équipes héliportées. La solution comprend un tableau de bord par typologie de surveillance, une carte avec filtres, une liste exhaustive des enregistrements avec filtres et export CSV, un module de vérification des erreurs de calcul et une interface d'édition où le militaire pointe le lieu sur la carte et complète le formulaire dédié. DIVDIR — La page principale présente un ruban chronologique des feux de forêt actifs suivis par l'ANEPC, les indicateurs des alertes du jour, des filtres, les comptes-rendus des équipes héliportées de l'UEPS, photos et vidéos, la planification des drones de la Force Aérienne et, sur la carte, les zones de visibilité des postes de vigie et du réseau de vidéosurveillance. La page d'analyse permet d'interroger l'historique des alertes et des interventions héliportées de l'UEPS. Des liaisons existent également vers le PROCIV de l'ANEPC et les flux météorologiques, complétées par un éditeur pour actualiser l'état opérationnel et les effectifs des postes de vigie et de la vidéosurveillance. Un bot Telegram local automatise en outre le traitement des rapports CAPVI et des données IPMA reçus : il convertit les classeurs Excel en couches géographiques (feature layers), applique les paramètres arrêtés par l'AGIF et publie le résultat dans DIVDIR. Ainsi, le registre source et la vision de commandement restent synchronisés, réduisant les manipulations manuelles et renforçant la cohérence des données.
  7. Plateforme CIPOSuivi des travaux sur ArcGIS Online et Field Maps, avec partage via la PLIS de l'AGIF pour les CIM et les municipalités.
    Voir les détails
    La tempête Kristin a durement frappé le Centre du Portugal au début de l'année 2026. Dans le cadre de la réponse opérationnelle consécutive, le CIPO — Commandement Intégré de Prévention et d'Opérations — a renforcé les actions de prévention et le dégagement du réseau viaire forestier afin d'atténuer le risque d'incendie. Au titre de la contribution de la GNR à cette mission, j'ai été chargé de concevoir la plateforme de suivi et de monitoring des travaux. La plateforme regroupe les zones et le réseau routier touchés, les besoins remontés par les municipalités, la planification pluri-institutionnelle et les chantiers validés sur le terrain. J'ai élaboré une couche Field Maps permettant aux équipes opérationnelles d'enregistrer et de valider directement les zones et tronçons traités, sans nécessiter de démarche de reporting distincte. La planification partagée sur Google Sheets entre la GNR, la FEPS, l'UEPS, l'ICNF, les Forces Armées et les municipalités est convertie par un script en couches spatiales sur ArcGIS Online. La plateforme restitue à la fois cette programmation et l'exécution effectivement validée. En fin de journée, un second processus croise planification et réalisation, renseigne les données administratives manquantes — paroisse, commune, district et NUTS —, génère le rapport de situation (SITREP) quotidien, crée et remplace la couche publiée, la transmet au système GeoSiFOR de l'AGIF et produit une sauvegarde locale synchronisée via Google Drive. Le résultat offre une vision unifiée, actualisée et partageable de la planification et de l'exécution, développée sous forte contrainte opérationnelle pour faciliter la coordination interservices.

Compétences démontrées

Géotraitement

Rasters et vecteurs à l'échelle nationale : mosaïques à 10 m pour le Portugal continental, reprojection, découpage selon une grille de secteurs, algèbre cartographique.
rasterio · geopandas · GDAL · shapely · pyproj

Modélisation du risque

Indices FWI/CFFDRS, équations de Rothermel, scores composites avec pondérations justifiées, classification supervisée.
numpy · scipy · scikit-learn · XGBoost

Intégration de systèmes

API REST authentifiées, publication sur ArcGIS Online, ETL vers MySQL, tolérance aux pannes réseau et pagination de milliers d'enregistrements.
requests · SQLAlchemy · arcpy · ArcGIS REST

Automatisation en production

Tâches planifiées de 10 minutes à hebdomadaires, avec verrous, reprises, audit et notification des défaillances à l'opérateur.
Planificateur de tâches · Docker · journalisation structurée

Interfaces

Tableaux de bord en temps réel, application mobile, outils bureautiques en Tkinter pour les utilisateurs sans terminal.
Next.js 14 · React · Flutter/Dart · Tkinter · Plotly

IA appliquée

RAG local sur documentation interne, génération de rapports avec modèle hébergé directement sur la machine, sans dépendance au cloud.
LangChain · ChromaDB · Ollama · llama.cpp

61 projets

Aucun projet ne correspond au filtre.

Modélisation du risque d'incendie

6 projets

Les zones susceptibles de brûler, avec quelle intensité et le délai restant avant le prochain cycle. Chaque modèle génère une cartographie qui oriente directement les décisions de patrouille.

Période
Mai 2026
Commits
7
Python
2 237 L
Statut
Terminé

Carte de récurrence des incendies

Carte du risque de réincendie pour le Portugal continental, calculée pixel par pixel à partir de 50 ans de périmètres brûlés.

Problème
L'historique des surfaces brûlées existe depuis 1975, mais sous la forme de milliers de polygones annuels — il ne répond pas à la question opérationnelle « ce site risque-t-il de brûler à nouveau ? ».
Approche
Rastérisation de l'ensemble de l'historique et calcul d'un score de 0 à 100 avec trois composantes pondérées : temps écoulé depuis le dernier incendie normalisé selon le type de végétation (50 %), fréquence d'occurrence depuis 1975 (25 %) et décalage par rapport au cycle de feu typique de cette végétation (25 %).
Résultat
Raster national à 10 m avec six classes de risque, réutilisé comme couche d'entrée par d'autres projets de classification quotidienne du risque.
  • Python
  • geopandas
  • rasterio
  • numpy
  • matplotlib
  • python-pptx
Période
Jun – Jul 2026
Commits
62
Python
7 653 L
Statut
Actif

PoF Portugal — Probabilité d'incendie

Modèle d'apprentissage automatique estimant la probabilité d'éclosion par pixel, inspiré du AI Probability of Fire de l'ECMWF et adapté aux données nationales.

Problème
Les indices météorologiques classiques décrivent des conditions propices au feu, mais n'intègrent pas le combustible, la topographie, la présence humaine ni l'âge de la végétation — variables déterminantes pour qu'une éclosion donne lieu à un incendie.
Approche
Pipeline téléchargeant la réanalyse ERA5-Land, calculant les indices du système canadien FWI et les croisant avec le combustible, la pente, la proximité des routes et des localités ainsi que les années écoulées depuis le dernier incendie ; entraînement par gradient boosting sur l'historique des départs de feu.
Résultat
Raster quotidien de probabilité 0–1 pour le Portugal continental, avec stockage intermédiaire au format Parquet et persistance des résultats en base de données.
  • XGBoost
  • scikit-learn
  • xarray
  • netCDF4
  • cdsapi (ERA5-Land)
  • rasterio
  • pyarrow
  • MySQL
Période
Janv – Fév 2026
Commits
8
Python
5 608 L
Statut
Annulé

Fire Simulator Portugal

Système de modélisation de la propagation des feux de forêt reposant sur les équations de Rothermel (1972).

Projet interrompu avant l'entrée en production.

Problème
Les simulateurs de référence exigent un ensemble de rasters rigoureusement alignés (combustible, canopée, pente, exposition) et une grille météorologique cohérente — une préparation manuelle qui prend plus de temps que la simulation elle-même.
Approche
Couche de préparation automatique : calcul de pente et d'exposition par blocs pour les grands rasters, réalignement et correction du couvert forestier, construction de grilles météorologiques et clients personnalisés pour deux sources de prévision avec fallback entre elles.
Résultat
Scénarios de simulation générés à partir d'une date et d'une zone, avec les modèles de combustible définis dans un fichier de configuration plutôt qu'intégrés en dur dans le code.
  • Python
  • rasterio
  • numpy
  • Rothermel
  • API IPMA
  • Open-Meteo
Période
Fév – Juin 2026
Commits
20
Python
11 475 L
Statut
Annulé

Pipeline de modèles de combustible (LiDAR)

Génération automatique de la cartographie des modèles de combustible NFFL et de la hauteur de canopée à partir du LiDAR national, couvrant 1 013 polygones.

Problème
La cartographie des combustibles disponible est sommaire et obsolète ; le LiDAR national offre la résolution requise mais est distribué en plus de mille dalles indépendantes, impossibles à traiter manuellement.
Approche
Pipeline par polygone extrayant la hauteur de la végétation et le couvert arboré à partir du LiDAR et classant chaque pixel selon l'un des 13 modèles NFFL, suivi d'un mosaïquage pour une couverture nationale continue.
Résultat
Trois rasters à 10 m par polygone (modèle de combustible, hauteur, couvert végétal) ainsi que la mosaïque nationale — la couche d'entrée utilisée par les simulateurs de propagation.
  • Python
  • LiDAR
  • rasterio
  • GDAL
  • numpy
  • NFFL
Période
Août 2025 – Août 2026
Commits
24
Python
7 152 L
Statut
Production · hebdomadaire

CAPVI — Mise à jour des priorités de surveillance

Workflow hebdomadaire qui convertit la cartographie des priorités de surveillance en cartes, rapports et couches publiées, avec envoi automatique par e-mail.

Problème
La mise à jour hebdomadaire impliquait des dizaines d'étapes manuelles sous SIG, répétées par différentes personnes lors de deux phases de la semaine — un processus lent et exposé à des divergences entre opérateurs.
Approche
Menu unique fixant l'utilisateur et la phase, puis assurant l'ensemble des tâches : fusion des shapefiles finaux, rapport textuel listant les dix communes prioritaires par jour, cartes choroplèthes en PNG, mise à jour des couches en ligne et préparation du courriel.
Résultat
Cycle hebdomadaire réduit à deux exécutions guidées, garantissant un résultat identique quel que soit l'opérateur exécutant le processus.
  • Python
  • geopandas
  • matplotlib
  • ArcGIS Online
  • pywin32
  • Tkinter
Période
Mar 2026
Commits
1
Python
3 979 L
Statut
En développement

Système de risque unifié (Planification hivernale)

Modèle de risque à double domaine — hydrologique et feux de forêt — pour la planification des patrouilles tout au long de l'année.

Problème
L'effort de patrouille n'était planifié que pour la saison des feux, laissant le semestre humide sans critère objectif, bien que le risque existe sous une autre forme — crues et épisodes hydrologiques.
Approche
Modèle v5.0 maintenant les deux domaines de risque en parallèle, appliquant des pondérations saisonnières à chacun et déclenchant des alertes automatiques lorsqu'un seuil est franchi.
Résultat
Critère unique de priorité valable sur les douze mois, alimenté par le référentiel météorologique dédié.
  • Python
  • geopandas
  • numpy
  • MySQL

Météorologie et satellite

6 projets

Acquisition continue de données d'observation et de prévision, des API publiques aux produits satellitaires géostationnaires, enregistrées sous un format propre afin de ne pas dépendre de la disponibilité de la source.

Période
Fév – Juin 2026
Commits
2
Python
3 358 L
Statut
Production · horaire

MeteoDataHub

Dépôt central de données météorologiques horaires pour le Portugal continental, mis à disposition de tous les autres projets.

Problème
Chaque projet interrogeait les API météorologiques pour son propre compte : requêtes répétées, quotas d'utilisation atteints et valeurs divergentes pour la même heure selon le moment de la requête.
Approche
Grille fixe d'environ 300 points à 12 km, collecte automatique d'archives et de prévisions vers MySQL, avec couche d'API interne pour consommation par les autres systèmes.
Résultat
Source unique de vérité météorologique, dotée de son propre historique indépendant de la fenêtre de rétention de l'API externe.
  • Python
  • MySQL
  • Open-Meteo
  • pandas
  • geopandas
  • Task Scheduler
Période
Oct. 2025
Commits
3
Python
6 336 L
Statut
Terminé

Fire Weather Data Collector

Application de collecte météorologique pour l'analyse des incendies, avec calcul intégral des indices CFFDRS étalonnés pour le Portugal.

Problème
Les indices de danger d'incendie dépendent des valeurs cumulées des jours précédents : une lecture ponctuelle produit un résultat erroné, et aucune source isolée n'est suffisamment fiable pour un service opérationnel.
Approche
Intégration de cinq sources météorologiques avec fallback automatique entre elles, assortie de 90 jours de remplissage d'historique pour que les indices cumulés (FFMC, DMC, DC) soient correctement initialisés, avec ajustements saisonniers adaptés au climat méditerranéen.
Résultat
Plus de 25 paramètres par localisation, de −12 h à +24 h, exportés au format CSV avec métadonnées ; interface graphique utilisable par des non-programmeurs.
  • Python
  • CFFDRS / FWI
  • asyncio · aiohttp
  • ECMWF EarthKit
  • Tkinter
  • scipy
Période
Jul 2026
Commits
7
Python
1 137 L
Statut
Production · 10 min

MTG FRP — Foyers actifs par satellite

Collecte en temps réel de hotspots de puissance radiative des feux de Meteosat troisième génération, découpées pour le Portugal.

Problème
Le produit officiel couvre l'ensemble du disque visible du satellite et est publié sous forme compressée toutes les dix minutes — tout télécharger et conserver pour n'exploiter qu'une infime fraction est intenable en espace disque et en temps.
Approche
Décompression du flux en mémoire et filtrage spatial immédiat par l'emprise englobante du Portugal continental plus 50 km, éliminant le reste avant toute écriture sur disque.
Résultat
GeoJSON et CSV mis à jour toutes les dix minutes, prêts à être consommés par les SIG et par les plateformes d'image opérationnelle commune (COP).
  • Python
  • GeoJSON
  • requests
  • geopandas
  • SQLAlchemy
  • MySQL
Période
Jun 2026
Commits
3
Format
10 études
Statut
Terminé

LSA SAF — Catalogue d'applications opérationnelles

Étude systématique des produits satellitaires disponibles et de l'application concrète de chacun aux missions de protection civile.

Problème
Le catalogue de produits satellitaires est vaste et décrit en langage scientifique ; sans transposition vers des cas d'usage, il reste inexploité.
Approche
Dix fiches, une par produit — risque quotidien, foyers actifs, surface brûlée, indice d'état de la végétation (VCI), indice d'état thermique (TCI), indice de santé de la végétation (VHI), carte dynamique de récurrence des feux, risque composite pour les patrouilles, neige et crues — chacune précisant sa source, sa fréquence de mise à jour, ses limites et la décision qu'elle éclaire.
Résultat
Spécification d'origine pour les projets d'acquisition qui ont suivi, y compris le collecteur de foyers actifs.
  • Analyse des exigences
  • LSA SAF
  • Télédétection
Période
Jan 2026
Commits
1
Python
1 115 L
Statut
Terminé

Wind Mapper

Outil de champ de vent sur une zone tracée par l'utilisateur, avec affichage par flèches sur fond satellite et relief.

Problème
Analyser le vent sur une zone d'opération imposait de consulter les valeurs point par point, sans appréhender la structure spatiale expliquant le comportement du feu sur le terrain.
Approche
Définition de la zone par coordonnées, shapefile ou carte interactive ; génération d'un maillage régulier à résolution paramétrable ; interrogation de la vitesse et de la direction historiques pour chaque nœud.
Résultat
Champ vectoriel tracé sur image satellite et modèle numérique d'élévation, exportable pour analyse ultérieure.
  • Python
  • cartopy
  • tkintermapview
  • rasterio
  • Open-Meteo
Période
Oct. 2025
Commits
1
Python
3 L
Statut
Archivé

Météorologie

Ébauche initiale de collecte météorologique, abandonnée au profit d'une solution centralisée.

Problème
Première tentative de résolution de l'acquisition météorologique point par point, au sein d'un projet consommateur.
Approche
Inscrit ici par souci d'honnêteté d'inventaire : cette orientation a été rapidement écartée, lorsqu'il est apparu que le problème nécessitait un service partagé plutôt qu'une fonction locale.
Résultat
Remplacé par le MeteoDataHub, qui dessert aujourd'hui l'ensemble des projets.
  • Python

Automatisation SIG et ArcGIS

13 projets

Travail de plateforme : synchroniser, publier, exporter et auditer des couches géographiques par API REST, sans dépendre du logiciel bureautique ni de la présence d'un opérateur.

Période
Août 2026
Commits
8
Python
6 934 L
Statut
Production

ArcGIS Reports

Génération massive et parallèle de rapports d'intervention en PDF à partir de couches en ligne.

Problème
Générer manuellement des centaines de rapports d'intervention, un par un, dans l'application bureautique — des journées entières de travail, et la moindre coupure réseau imposait de recommencer.
Approche
Téléchargement et traitement parallélisés avec la bibliothèque native d'ArcGIS, utilisant les modèles d'impression officiels comme templates, avec gestion explicite des pannes réseau et reprise des tâches en suspens.
Résultat
Des centaines de PDF générés en une seule exécution, avec une mise en page identique à celle approuvée institutionnellement.
  • Python
  • arcpy
  • ArcGIS Pro
  • Traitement parallèle
  • Pillow
  • tqdm
Période
Jun 2026
Commits
2
Python
1 021 L
Statut
Production

Surfaces brûlées de l'ICNF

Synchronisation des couches officielles de surfaces brûlées et de points de départ d'incendie pour copie locale et pour des couches propres en ligne.

Problème
La couche officielle sert de référence, mais échappe au contrôle de l'utilisateur : pannes et modifications de schéma rendent inopérant tout ce qui en dépend en temps réel.
Approche
Requête REST paginée en GeoJSON, écriture d'une copie hors-ligne en GeoPackage et mise à jour incrémentielle des couches internes par opération d'insertion-ou-mise à jour, avec journalisation des couches sources centralisée dans un module unique.
Résultat
Données toujours disponibles localement et couches internes synchronisées, avec tests automatisés sur l'ensemble du processus.
  • Python
  • ArcGIS REST
  • GeoPackage
  • pyogrio
  • pytest
Période
Mar 2026
Commits
5
Python
1 723 L
Statut
Production · quotidien

Enregistrement des traces de patrouille

Audit automatique vérifiant si les patrouilles ont activé la géolocalisation durant leur service.

Problème
Sans géolocalisation active, il n'y a aucune trace de patrouille, mais vérifier patrouille par patrouille, jour après jour, était irréalisable — et n'était donc pas fait.
Approche
Moteur d'appariement reliant chaque patrouille à son itinéraire respectif par indicatif radio et unité, doté d'une pagination robuste pour des milliers d'enregistrements et d'une détection automatique des jours manquants dans l'historique, en ne retraitant que ceux-ci.
Résultat
Précision de correspondance d'environ 95 % et tableaux de bord HTML interactifs quotidien, mensuel et annuel.
  • Python
  • plotly
  • ArcGIS Online
  • pandas
Période
Août 2026
Commits
9
Python
1 832 L
Statut
Terminé

Ortos DGT

Téléchargement automatique des orthophotoplans nationaux organisés selon la grille des coupures cartographiques.

Problème
Chaque collection annuelle d'orthophotographies est publiée sous un type de service différent — ce qui imposait une procédure manuelle distincte par an et rendait impossible la collecte uniforme de séries temporelles.
Approche
Architecture hybride intégrant un orchestrateur qui détecte le type de service de chaque collection et sélectionne le moteur d'acquisition adéquat, maintenant la même interface de sortie pour la collection actuelle et pour les années historiques.
Résultat
Acquisition uniforme par secteur pour toute année publiée, sans intervention manuelle.
  • Python
  • requests
  • GDAL
  • WMS/WMTS
  • shapefile de secteurs
Période
Mai 2026
Commits
1
Python
332 L
Statut
Production · 01h00

RCM / PIR — Risque de combustibilité municipal

Publication quotidienne du risque municipal pour les 68 communes couvertes par des zones intégrées de gestion du paysage (AIGP).

Problème
La source fournissait le risque via un service d'imagerie temporelle instable et dépourvu de contrôle fiable de la dimension temporelle — inutilisable pour générer le produit du jour et celui du lendemain.
Approche
Consommation directe de l'API de données plutôt que du service d'imagerie, jointure avec la cartographie administrative et publication automatique, avec deux fichiers distincts pour le jour même et le lendemain.
Résultat
Livrable quotidien fiable à 01h00, avec historique maîtrisé par le diffuseur.
  • Python
  • API IPMA
  • geopandas
  • GeoPackage
  • ArcGIS Online
Période
Fév 2026
Commits
3
Python
696 L
Statut
Production · 2–4 h

Portugal Road Closures

Collecte et publication automatiques des routes coupées et à circulation restreinte au Portugal continental.

Problème
Lors d'épisodes de crue ou d'incendie, savoir quelles routes sont coupées est déterminant pour l'acheminement des moyens — or l'information était dispersée dans des alertes textuelles.
Approche
Interrogation périodique de l'API d'incidents de trafic, contournant la limite de zone par requête grâce à une grille de 18 mailles couvrant l'ensemble du territoire continental, et consolidation des incidents pertinents en une couche unique.
Résultat
Couche géographique mise à jour toutes les deux à quatre heures, prête à être superposée à la cartographie opérationnelle.
  • Python
  • TomTom Traffic API
  • ArcGIS Online
  • requests
Période
Août 2026
Commits
1
Python
746 L
Statut
Actif

Auditer les signalisations

Audit continu d'une couche de verbalisation/contrôle, avec restauration automatique des enregistrements supprimés par erreur.

Problème
Des enregistrements opérationnels disparaissaient de la couche partagée sans laisser de trace de l'auteur ni du motif, compromettant les objectifs annuels d'activité fondés sur ce décompte.
Approche
Vérification périodique de l'ensemble attendu des enregistrements par rapport à ce qui est publié, avec réintégration automatique des éléments manquants à partir de la copie de référence.
Résultat
Intégrité garantie du jeu d'enregistrements de l'année, sans surveillance manuelle.
  • Python
  • ArcGIS REST
  • audit de données
Période
Mai 2026
Commits
3
Python
425 L
Statut
Terminé

RPA Export

Exportation d'une couche opérationnelle vers six formats géographiques à partir de l'API REST.

Problème
Chaque destinataire demandait le même jeu de données dans un format différent — GPS de terrain, SIG de bureau, visualiseur de terrain — et la conversion était effectuée manuellement, un par un.
Approche
Exportateur unique qui s'authentifie sur le portail, lit la couche par API et génère du GeoJSON, JSON, GeoPackage, shapefile, KMZ et GPX, avec les identifiants externalisés du code dans un fichier d'environnement.
Résultat
Une seule commande répond à toutes les demandes de formats, sans passer par le logiciel bureautique.
  • Python
  • simplekml
  • gpxpy
  • fiona
  • python-dotenv
Période
Mai 2026
Commits
4
Python
595 L
Statut
Terminé

Outils ArcGIS

Ensemble d'utilitaires de gestion de couches via API REST, sans licence bureautique ni bibliothèques propriétaires.

Problème
Les opérations courantes de maintenance des données imposaient d'ouvrir l'application bureautique sur un poste sous licence — impraticable sur un serveur et pour des tâches planifiées.
Approche
Un script par tâche (suppression sélective, exportation, mise à jour des champs calculés), chacun autonome et dépendant uniquement de bibliothèques libres.
Résultat
Maintenance des données exécutable sur n'importe quelle machine, y compris de manière planifiée sans session interactive.
  • Python
  • ArcGIS REST
  • geopandas
  • openpyxl
Période
Août 2026
Commits
2
Python
450 L
Statut
Terminé

pat_igini — Patrouilles × Départs de feu

Exportation de données opérationnelles vers GeoPackage, prêtes à être ouvertes dans un SIG libre.

Projet interrompu avant l'entrée en production.

Problème
Croiser l'activité de patrouille avec les départs de feu enregistrés imposait d'extraire les données de la base à chaque analyse, toujours avec des requêtes légèrement divergentes.
Approche
Trois scripts indépendants qui lisent la base opérationnelle, filtrent par période et écrivent des couches de points dans un système de coordonnées unique — patrouilles, départs de feu et croisement des deux.
Résultat
Analyse reproductible : même période, même résultat, sans SQL ad hoc.
  • Python
  • MySQL
  • GeoPackage
  • QGIS
Période
Sept. 2025
Commits
1
Python
4 465 L
Statut
Annulé

Agglomérations

Application de bureau produisant des cahiers cartographiques d'agglomérations en PDF.

Problème
La caractérisation d'une agglomération à des fins de protection exigeait d'assembler manuellement plusieurs mises en page — zone bâtie, interface habitat-forêt, localités — puis de les regrouper dans un document unique.
Approche
Interface graphique reposant sur un ensemble de générateurs de mise en page réutilisables, avec échelle graphique, exportation de la mise en page principale et des quadrillages de détail, et fusion finale en un seul PDF.
Résultat
Atlas cartographique complet par agglomération, généré à partir de la sélection d'un dossier et d'un nom.
  • Python
  • Tkinter
  • matplotlib
  • geopandas
  • PDF
Période
Fév – Avr 2026
Commits
11
Python
48 286 L
Statut
Actif

Workspace d'automatisation (Python)

Dépôt de travail regroupant la collection de scripts d'automatisation quotidienne, organisés par entité et par thématique.

Problème
Des dizaines de petites routines — extractions, vérifications, conversions — qui ne justifient pas un dépôt dédié mais doivent être versionnées et facilement localisables.
Approche
Organisation par source de données et par thématique (interventions, plans municipaux, sensibilité, requêtes SQL, données d'effectifs), avec dépendances déclarées dans un fichier unique pour l'ensemble.
Résultat
Socle à partir duquel plusieurs routines ont mûri avant de migrer vers leur propre dépôt — c'est ici que débutent les projets.
  • Python
  • geopandas
  • OWSLib
  • reportlab
  • opencv
  • SQL
Période
Fév – Juil 2026
Commits
8
Python
37 238 L
Statut
Actif

Workspace ArcPy (Conda)

Ensemble parallèle de routines dépendant de la bibliothèque propriétaire ArcGIS, isolé dans son propre environnement.

Problème
La bibliothèque native d'ArcGIS requiert son propre interpréteur et entre en conflit avec l'environnement géospatial open source — combiner les deux familles de scripts entraînait le dysfonctionnement de chacune.
Approche
Séparation délibérée par environnement, avec recensement documenté des 26 dépendances externes réparties sur 72 fichiers et instructions d'installation reproductibles.
Résultat
Deux environnements stables au lieu d'un instable, avec une frontière explicite dans la structure du dépôt.
  • Python
  • arcpy
  • Conda
  • ruff

Systèmes opérationnels et rapports

8 projets

Applications de bout en bout exploitées par les opérateurs : on saisit un numéro d'incident, on obtient le dossier complet. C'est ici que se concentre le volume de code.

Période
Sept. 2025 – Juil. 2026
Commits
475
Python
52 032 L
Statut
Production

Activation GTO — Analyse du théâtre d'opérations

Système d'analyse géospatiale qui transforme l'enregistrement d'une intervention en un dossier territorial complet en 5 à 10 minutes. Le projet le plus important de l'ensemble.

Problème
Lorsqu'une équipe est mobilisée pour un théâtre d'opérations, l'information nécessaire — cartographie, météo, combustible, voies d'accès — existe, mais dispersée entre des dizaines de systèmes. La réunir manuellement exige des heures que l'urgence de l'intervention ne permet pas.
Approche
Pipeline unique partant du numéro d'intervention, résolvant la localisation, collectant les données météorologiques historiques et de prévision, calculant la susceptibilité, préparant les fichiers d'entrée des simulateurs de propagation et composant la cartographie ; le rapport final est rédigé par un modèle de langage hébergé localement. L'horloge du processus est figée à un instant précis afin que tous les modules exploitent le même repère temporel — auparavant, une exécution de 11 minutes apparaissait étalée sur plusieurs heures distinctes.
Résultat
Plus de 39 cartes thématiques, analyse météorologique, cartes de susceptibilité, données prêtes pour simulateur et rapport avec analyse automatique — le tout dans le temps d'un déplacement.
  • Python 3.13
  • geopandas
  • rasterio
  • scikit-learn
  • contextily
  • folium
  • Open-Meteo
  • LLM local
  • Telegram
Période
2025 – 2026
Commits
—
Python
9 628 L
Statut
Production · v1.2.5

App Recherches

Système d'automatisation pour le traitement des opérations de recherche et de sauvetage.

Problème
Lors d'une recherche, le produit cartographique et la reconstitution temporelle des mouvements des équipes sont nécessaires pendant le déroulement de l'opération — pas le lendemain.
Approche
Traitement spatial automatisé des données d'opération, avec génération de frises chronologiques ordonnant la série d'événements et permettant de visualiser la progression des recherches dans le temps.
Résultat
Application en production, avec gestion des versions et documentation technique des concepts appliqués, maintenue au fil d'opérations réelles successives.
  • Python
  • arcpy
  • analyse temporelle
  • cartographie automatique
Période
Jul 2026
Commits
5
Python
16 301 L
Statut
Production

Rapports d'incendie

Génération d'un rapport complet de feu de forêt à partir d'un numéro unique d'intervention.

Problème
Chaque rapport nécessitait de consulter six systèmes différents et de copier manuellement les valeurs de l'un à l'autre, avec le risque d'erreurs de transcription à chaque étape.
Approche
Vingt-huit étapes enchaînées : l'opérateur saisit le numéro, le système lit la date, extrait les données météorologiques d'observation et de réanalyse, la cartographie, les couches en ligne et les rasters locaux, puis assemble un classeur Excel avec images et cartes intégrées. La collecte sur les portails sans API s'effectue par automatisation de navigateur.
Résultat
Dossier de rapport complet par intervention, avec traçabilité de l'origine des données au lieu de simples valeurs copiées.
  • Python
  • playwright
  • openpyxl
  • rasterio
  • contextily
  • ECMWF
Période
Jan – Jul 2026
Commits
11
Python
2 924 L
Statut
Production

Bordereaux de livraison — Détection d'anomalies

Détection automatique des erreurs dans les bordereaux de livraison et notification individuelle des responsables.

Problème
Les erreurs de saisie n'apparaissaient que lors de la consolidation mensuelle, quand il était déjà trop tard pour corriger, et la notification générale diluait la responsabilité auprès de personnes qui n'avaient rien à rectifier.
Approche
Migration d'un flux reposant sur des feuilles de calcul vers une lecture directe de la base de données, avec regroupement des anomalies par destinataire, régulation du débit d'envoi pour ne pas déclencher les défenses du serveur de messagerie, et journal d'audit de tout ce qui a été envoyé. L'ancien flux a été conservé comme solution de repli.
Résultat
Chaque responsable ne reçoit que ses propres anomalies, le jour même, avec une traçabilité de ce qui a été communiqué à chacun.
  • Python
  • MySQL
  • SMTP
  • pandas
  • audit
Période
Avr. – Juil. 2026
Commits
21
Python
11 746 L
Statut
Actif

Gestion de l'Opération Kristin

Ensemble de routines de gestion opérationnelle axées sur le réseau des pistes forestières et les points de situation.

Problème
Une opération prolongée génère des rapports de situation à périodicité fixe, et la qualification du réseau routier forestier évolue au fur et à mesure que le terrain est parcouru — sans automatisation, l'effort de reporting rogne sur le temps d'opération.
Approche
Quatre domaines fonctionnels : traitement du réseau de pistes forestières, production des points de situation (SITREP), consolidation des données d'opération et aide à la décision quotidienne, avec une configuration machine documentée pour être répliquée sur un autre poste.
Résultat
Reporting périodique généré à partir des données déjà enregistrées, plutôt que collecté à nouveau à chaque cycle.
  • Python
  • pandas
  • geopandas
  • SIG
Période
Avr. – Juin 2026
Commits
14
Python
3 927 L
Statut
Production

Vérifier le service — Qualité des données

Validation systématique des données opérationnelles par rapport aux règles métier, avec rapport navigable des erreurs détectées.

Problème
Les données alimentant tous les rapports proviennent d'une saisie manuelle ; sans vérification systématique, les erreurs ne sont décelées que lorsque le total final ne concorde pas.
Approche
Moteur de règles opérant sur cinq tables de la base opérationnelle, capable également de fonctionner sur une copie locale pour les utilisateurs sans accès au réseau interne, avec des tests automatisés sur les règles elles-mêmes.
Résultat
Rapport HTML interactif qui cible l'enregistrement précis à corriger, au lieu de simplement signaler l'existence d'un problème.
  • Python
  • MySQL
  • SQLite
  • pytest
  • HTML
Période
Sept. 2025
Commits
2
Python
1 077 L
Statut
Terminé

Préparation des données pour simulateur

Automatise la préparation du dossier de données d'entrée pour la simulation de propagation sur une zone d'opérations.

Projet interrompu avant l'entrée en production.

Problème
Les simulateurs de propagation requièrent un ensemble strict de fichiers — rasters découpés et alignés, humidité des combustibles, séries de vent — dont la préparation manuelle est fastidieuse et échoue silencieusement en cas de désalignement.
Approche
Flux guidé qui crée l'arborescence des dossiers du projet, résout la localisation par numéro d'intervention ou coordonnées, télécharge les météogrammes, découpe et aligne les rasters, génère un point et une zone tampon, et écrit les fichiers d'humidité et de vent dans les formats exigés.
Résultat
Outil portable : copier le dossier sur un autre poste et configurer les chemins d'accès une seule fois depuis l'interface.
  • Python
  • GDAL
  • rasterio
  • playwright
  • Tkinter
Période
Mar 2026
Commits
1
Python
583 L
Statut
Annulé

Calcul des mutations

Calcul automatique des affectations à partir de la liste des demandes et des postes vacants disponibles, en deux implémentations.

Projet interrompu avant l'entrée en production.

Problème
L'affectation était effectuée manuellement sur des feuilles de calcul, avec le risque d'attribuer la même place à deux reprises ou d'appliquer les critères de manière incohérente d'un dossier à l'autre.
Approche
Deux versions du même algorithme — une en Python, l'autre en macro de feuille de calcul — pour fonctionner même sur des postes où aucune installation n'est possible, produisant un fichier final mis en page à partir d'un modèle.
Résultat
Résultat reproductible et vérifiable, la version en macro garantissant l'exécution du processus sur n'importe quel poste.
  • Python
  • pandas
  • openpyxl
  • VBA

Bots et notifications

4 projets

La couche de diffusion : acheminer le résultat sur le téléphone portable du décideur, via le canal qu'il utilise déjà, sans lui imposer l'apprentissage d'un nouvel outil.

Période
Juil – Août 2026
Commits
12
Python
1 498 L
Statut
Production

Bot de soutien à la salle de situation

Interface de communication automatique diffusant des rapports de synthèse exécutive sur un canal de messagerie.

Problème
Le coordinateur n'est pas devant l'ordinateur : il demandait par téléphone des chiffres déjà enregistrés dans la base de données, et quelqu'un devait aller les chercher et les retranscrire.
Approche
Six commandes officielles interrogeant la base de données opérationnelle, délivrées aux discussions et canaux autorisés, avec un service fonctionnant en continu sur la machine et une planification native du système.
Résultat
En production : synthèse exécutive à la demande, sur mobile, sans intermédiaire humain.
  • Python 3.13
  • python-telegram-bot
  • MySQL
  • SQLAlchemy
  • Windows Service
Période
Juil – Août 2026
Commits
29
Python
3 400 L
Statut
Actif

Hub de Bots (architecture de plugins)

Un bot partagé unique qui héberge les plugins de plusieurs projets, au lieu d'un bot par projet.

Problème
Chaque projet souhaitant envoyer des notifications créait son propre bot, dupliquant les listes d'autorisations, la gestion des erreurs et la diffusion des fichiers — tout en contraignant le destinataire à gérer plusieurs conversations.
Approche
Cœur agnostique au domaine métier qui prend en charge une fois pour toutes les fonctions communes — autorisation, verrouillage des exécutions concurrentes, exécution des tâches, transmission des résultats, rapport de progression et annulation — et expose une interface de plug-in permettant à chaque projet d'enregistrer ses commandes.
Résultat
Chaque nouveau projet bénéficie de ses propres commandes sans nouvelle infrastructure, et l'utilisateur dispose d'un fil de conversation unique.
  • Python
  • python-telegram-bot
  • architecture de plugins
  • API Bot auto-hébergée
Période
Fév – Sept 2026
Commits
33
Code
3 529 L JS
Statut
En développement

ArcGIS → WhatsApp

Service de notifications automatiques par WhatsApp déclenchées par des modifications de couches géographiques.

Problème
Tout le monde sur le terrain n'utilise pas l'application de messagerie institutionnelle, mais pratiquement tout le monde utilise WhatsApp — et l'information utile naît dans une couche géographique, pas dans une conversation.
Approche
Service en Node.js qui surveille des couches en ligne et achemine les événements pertinents vers une API WhatsApp auto-hébergée en conteneur, avec sa propre base de données pour l'état et les destinataires.
Résultat
Alertes géographiques délivrées directement sur le canal déjà ouvert par les équipes ; il s'agit actuellement du projet le plus actif de la gamme.
  • Node.js
  • Docker
  • PostgreSQL
  • Evolution API
  • ArcGIS Online
Période
Mai 2026 (fork)
Commits
805 · 1 branche
Python
1 739 L
Statut
Actif

Réplique locale des données d'incidents

Branche propre d'un projet public de données d'incendies, dédiée à la synchronisation locale comme ressource alternative.

Problème
Un service public de données d'incidents est excellent jusqu'au jour où il devient indisponible — ce qui correspond généralement au jour précis où il est le plus indispensable.
Approche
Contribution sur une branche distincte du projet d'origine, avec un synchroniseur qui réplique les incidents actifs vers une base de données locale, maintenant la source intacte et préservant l'historique du projet public.
Résultat
Disponibilité des données garantie même en cas d'indisponibilité de la source. L'essentiel des 805 commits provient du projet d'origine — la contribution personnelle réside dans le synchroniseur.
  • Python
  • MySQL
  • fork open-source

Web et mobile

3 projets

Interfaces pour une consultation en temps réel, à l'intérieur et à l'extérieur du poste de commandement — le seul volet du portfolio hors Python.

Période
Mars – Août 2026
Commits
199
Code
15 733 L TS/JS
Statut
Actif

Tableau de bord de gestion des urgences

Tableau de bord opérationnel en temps réel des moyens, missions et interventions, avec carte interactive, frise chronologique et panneau multimédia.

Problème
Le suivi d'une opération nécessitait d'ouvrir plusieurs applications en parallèle, chacune détenant sa version de la situation et aucune n'offrant la chronologie des faits survenus.
Approche
Application Next.js avec rendu côté serveur et routes d'API dédiées, intégrant les couches géographiques officielles au sein d'une vue unique, dotée d'une authentification de session validée côté serveur et d'une frise chronologique interactive sur les événements.
Résultat
Vue opérationnelle unique, avec 199 commits d'itérations continues issues d'une utilisation réelle. Deuxième génération du projet.
  • Next.js 14
  • React
  • TypeScript
  • ArcGIS Online
  • authentification par session
Période
Déc 2025 – Mar 2026
Commits
32
Code
9 620 L TS/JS
Statut
Remplacé

Tableau de bord des urgences — 1re génération

Première version du tableau de bord opérationnel, ayant posé le modèle de données et l'identité visuelle.

Problème
Démontrer la faisabilité de regrouper moyens, registres et interventions dans une vue unique avant d'investir dans une architecture définitive.
Approche
Prototype fonctionnel en Next.js, déployé en situation réelle d'utilisation pour mettre en lumière les exigences qui n'apparaissent qu'en opération.
Résultat
A validé le concept et a été délibérément remplacé par la deuxième génération — la décision de réécrire est documentée au lieu d'avoir bricolé le prototype indéfiniment.
  • Next.js
  • React
  • ArcGIS Online
Période
Déc 2025
Commits
4
Code
3 805 L Dart
Statut
En développement

Application mobile pour opérations héliportées

Application Flutter pour l'enregistrement des opérations par hélicoptère, conçue pour fonctionner hors réseau.

Problème
L'enregistrement de ces opérations s'effectue sur papier puis est transcrit ultérieurement, car sur le lieu d'intervention, l'absence de couverture réseau ne permet pas de soutenir une application connectée.
Approche
Architecture axée local-first avec base de données sur l'appareil et gestion réactive de l'état, synchronisée avec les services géospatiaux dès que le réseau est disponible ; système de conception documenté avant l'implémentation.
Résultat
Application en cours de développement avec journalisation détaillée des modifications et documentation des patrons de conception employés — repository et singleton — réalisée à des fins d'apprentissage personnel.
  • Flutter
  • Dart
  • Riverpod
  • SQLite · Drift
  • ArcGIS

Drone et LiDAR

3 projets

De l'imagerie aérienne au produit à valeur juridique : photogrammétrie automatisée et analyse de conformité de la végétation au regard de la loi.

Période
Fév 2026
Commits
4
Python
1 703 L
Statut
Terminé

Hauteur des combustibles — Conformité légale

Vérifie, à partir de vols de drones, si la végétation aux abords des infrastructures critiques est en infraction avec les bandes de protection légales.

Problème
Le contrôle des bandes de gestion du combustible le long des routes, des lignes électriques et des gazoducs s'effectue à pied, par échantillonnage, et la preuve de l'infraction dépend de mesures sur le terrain.
Approche
Calcul du modèle de hauteur de canopée par la différence entre surface et terrain issus du vol, et confrontation de la hauteur de chaque pixel avec la limite légale applicable à la bande concernée — régimes distincts pour le réseau routier, le réseau électrique et les gazoducs.
Résultat
Identification objective des zones en infraction, avec le critère légal explicitement intégré dans le code au lieu de dépendre de l'appréciation de l'opérateur.
  • Python
  • rasterio
  • numpy
  • photogrammétrie
  • CHM
Période
Avr. 2026
Commits
1
Intégration
WebODM
Statut
Actif

Traitement drone — WebODM

Installation locale de photogrammétrie avec automatisation de bout en bout : choisir le dossier, traiter, ouvrir les résultats.

Problème
Le traitement photogrammétrique via un service externe implique d'envoyer les images d'opérations vers l'extérieur et d'attendre dans une file d'attente ; localement, il exige une série d'étapes manuelles dans l'interface.
Approche
Plateforme ouverte déployée dans des conteneurs sur la machine, avec une couche d'automatisation au-dessus de son API qui soumet le vol, supervise le traitement et récupère les livrables finaux.
Résultat
Orthomosaïques et modèles 3D générés localement, sans transmission de données opérationnelles vers l'extérieur. Alimente l'analyse de conformité de la végétation.
  • Docker
  • WebODM
  • Python
  • pyodm
Période
Fév 2026
Commits
1
Python
439 L
Statut
Remplacé

Traitement drone — 1re version

Première approche d'automatisation du traitement photogrammétrique, en ligne de commande.

Problème
Identifier quelle part du traitement photogrammétrique méritait d'être automatisée avant de déployer une infrastructure lourde.
Approche
Orchestration directe des conteneurs de traitement, avec configuration par fichier et suivi de la progression dans la console.
Résultat
A servi d'étude préalable ; remplacée par la version avec interface web deux mois plus tard.
  • Python
  • Docker SDK
  • PyYAML

IA locale et outils de développement

3 projets

Infrastructure dédiée pour exploiter des modèles de langage sur la documentation et les données internes sans que rien ne quitte la machine.

Période
Juil – Août 2026
Commits
6
Code
3 644 L Py · 2 301 L JS
Statut
En développement

RAG local sur documentation interne

Système de questions-réponses sur la documentation de la section, avec interrogation des données en langage naturel — fonctionnant intégralement sur la machine.

Problème
La documentation technique accumulée est volumineuse et l'information est disponible, mais la retrouver exige de savoir où chercher. Transférer des documents de service vers un service cloud n'est pas envisageable.
Approche
Indexation vectorielle de documents sous plusieurs formats avec un modèle hébergé localement, couche d'agent capable d'effectuer de petites modifications de fichiers et de traduire des questions en requêtes SQL, et interface web locale.
Résultat
Fonctionne sans connexion vers l'extérieur ; aucun document ne quitte la machine. En phase de consolidation.
  • Python
  • LangChain
  • ChromaDB
  • Ollama
  • PyMuPDF
  • WebUI locale
Période
Août – Sept. 2026
Commits
7
Python
3 826 L
Statut
Actif

Serveur LLM local

Serveur de modèles de langage compatible avec l'interface standard, avec gestion graphique du cycle de vie.

Problème
Plusieurs projets ont besoin d'un modèle de langage, mais chacun lançant son propre serveur entrait en concurrence pour la même carte graphique et le même port — avec de réelles collisions de ports coupant les services d'autres projets.
Approche
Un serveur partagé unique qui expose l'interface standard du secteur, avec démarrage et arrêt via interface graphique et sélection du modèle à charger ; le port occupé est désormais documenté dans l'inventaire de la machine.
Résultat
Tout projet cible le même point d'accès et peut changer de modèle sans modification de code. Utilisé par le générateur de rapports et le système RAG.
  • Python
  • llama.cpp
  • API compatible OpenAI
  • Tkinter
Période
Fév – Avr 2026
Commits
6
Format
Configuration
Statut
Actif

Configuration d'assistants de codage

Règles, commandes et modèles de projets versionnés, partagés entre trois assistants de programmation différents.

Problème
Les règles de travail purement mémorisées ne survivent pas à un changement de machine ni au remplacement d'un outil, et chaque assistant enregistre sa configuration dans son propre format.
Approche
Dépôt unique regroupant les règles globales, les commandes et les modèles d'arborescence de projet, installés par liens vers les chemins attendus par chaque outil — une source, trois destinations.
Résultat
Méthode de travail reproductible à n'importe quel poste et suffisamment explicite pour être examinée et améliorée, plutôt qu'implicite.
  • Markdown
  • outils d'IA
  • automatisation de l'environnement

Plateformes institutionnelles GNR / UEPS

6 projets indépendants

Systèmes à vocation opérationnelle décrits dans le portfolio GNR/UEPS. Ils sont présentés séparément des fiches techniques précédentes : ils partagent des données, processus ou intégrations avec plusieurs d'entre elles, mais chaque plateforme constitue un projet autonome.

Périmètre
National
Domaine
Prévention en milieu rural
Papier
Architecture de bout en bout
Statut
Usage opérationnel

Floresta Segura — Plateforme SIG nationale

Pipeline complet, de la collecte sur le terrain à la diffusion des rapports pour l'opération nationale de prévention des feux de forêt.

Problème
Les équipes de terrain doivent enregistrer les contrôles, valider les points d'eau et cartographier les incendies avec des informations administratives et cadastrales cohérentes.
Approche
Formulaires Field Maps et QuickCapture, calcul automatique commune/municipalité/district, croisement avec DGT/BUPi, signalement des infractions potentielles et tableau de bord dans ArcGIS Experience Builder.
Résultat
Suivi en temps réel, édition contrôlée et planification ; un processus Python/ArcGIS Pro génère des sauvegardes ainsi que des rapports PDF, Excel et shapefile, distribués via SharePoint.
Relation
S'articule avec les fiches d'automatisation SIG, les rapports ArcGIS et la prévention rurale de ce portfolio, tout en figurant ici comme plateforme institutionnelle indépendante.
  • ArcGIS Online
  • Field Maps
  • QuickCapture
  • Python
  • SharePoint
Périmètre
Portugal continental
Domaine
Opérations UEPS
Papier
Architecture de bout en bout
Statut
Usage quotidien

PIGE — Plateforme de gestion opérationnelle en temps réel

Tableau opérationnel quotidien pour le suivi des équipes terrestres et héliportées et l'aide à la décision du commandement.

Problème
L'activité, la géolocalisation, les ressources multimédias, les indicatifs et les demandes urgentes étaient dispersés et ne constituaient pas une situation opérationnelle commune.
Approche
QuickCapture et Field Maps collectent les mouvements, photos, vidéos, positions GPS et demandes de moyens ; Experience Builder centralise l'activité en direct, la carte des 12 dernières heures, la planification, les requêtes et l'historique.
Résultat
Une vue coordonnée entre les équipes terrestres et aériennes, avec un décalage de 1 à 2 minutes, le calcul de la patrouille la plus proche, des filtres temporels et l'accès aux couches de risque d'incendie.
Relation
Se connecte aux couches de risque et aux fiches d'enregistrement des patrouilles déjà répertoriées ; constitue la plateforme opérationnelle d'origine de l'évolution PIGE Next-Gen.
  • ArcGIS Experience Builder
  • QuickCapture
  • Field Maps
  • GPS
  • Multimédia
Périmètre
Opérationnel
Domaine
Tableau de bord web
Papier
Full-stack
Statut
Nouvelle génération

PIGE Next-Gen — Tableau de bord React

Reconstruction indépendante de la vue principale de la PIGE pour s'affranchir des limites de performance et d'interface du générateur low-code.

Problème
Les requêtes directes à ArcGIS Online à chaque chargement limitaient la vitesse, le contrôle de l'interface et la lecture native des vidéos capturées sur le terrain.
Approche
Frontend React adossé à un serveur dédié maintenant un cache local à jour ; intégration WhatsApp auto-hébergée sous Docker avec Evolution API.
Résultat
Temps de chargement plus rapides, interaction plus fluide, lecture vidéo directement sur la page et acheminement automatique des données QuickCapture vers les groupes opérationnels.
Relation
Fait évoluer l'expérience du PIGE et s'articule avec l'automatisation WhatsApp déjà documentée, mais est traité comme un projet distinct en raison de la nouvelle architecture.
  • React
  • Backend cache
  • ArcGIS Online
  • Docker
  • Evolution API
Périmètre
Multi-entités
Domaine
Enregistrement des alertes
Papier
Architecture de bout en bout
Statut
Plateforme d'accès

SEPNA — EMEIF · Enregistrement des alertes

Plateforme d'enregistrement des interventions en milieu rural et forestier détectées par quatre types de surveillance.

Problème
Les alertes des vigies et de la vidéosurveillance, les patrouilles de multiples entités, les appels au 112 et les moyens aériens ont des exigences distinctes, mais requièrent un enregistrement cohérent.
Approche
Modèle partagé et flexible avec tableau de bord par type de surveillance, carte filtrable, liste complète avec export CSV, vérification des erreurs de calcul et éditeur géographique structuré.
Résultat
Un point d'entrée principal avec des données plus cohérentes pour la surveillance des incendies et les systèmes d'aide au commandement.
Relation
Alimente l'écosystème de suivi des incendies, notamment le DIVDIR ; demeure une plateforme d'enregistrement indépendante.
  • ArcGIS
  • Dashboard
  • Éditeur géographique
  • CSV
  • Multi-entités
Périmètre
Commandement
Domaine
Incendie rural
Papier
Architecture de bout en bout
Statut
Aide à la décision

DIVDIR — Tableau de bord d'appui au commandement

Vision opérationnelle consolidée des événements, moyens et systèmes de surveillance liés aux incendies rurais et de forêt.

Problème
Les décideurs devaient consulter sur une vue unique les interventions de l'ANEPC, les alertes, l'activité héliportée, la planification des drones et la couverture de surveillance.
Approche
Tableau de bord avec frise chronologique, compteurs et filtres ; modules d'historique, liens externes et édition des statuts ; bot Telegram local pour convertir les rapports CAPVI/IPMA en couches publiées.
Résultat
Une vision opérationnelle actualisée, avec photographies et vidéos du terrain, planification aérienne et automatisation de l'ingestion de rapports définis selon les paramètres de l'AGIF.
Relation
Reçoit les données de l'EMEIF et s'articule avec les fiches CAPVI, l'IPMA, les bots et la surveillance des incendies, tout en restant un tableau de bord autonome.
  • ANEPC
  • ArcGIS
  • Telegram
  • CAPVI / IPMA
  • AGIF
Période
2026
Domaine
Rétablissement post-tempête
Papier
Architecture de bout en bout
Statut
Mission opérationnelle

CIPO — Suivi des travaux de réhabilitation

Plateforme conçue pour la participation de la GNR au commandement interministériel de rétablissement après la tempête Kristin.

Problème
Il était nécessaire de coordonner les besoins municipaux, la planification de multiples entités et la validation sur le terrain du nettoyage des pistes forestières endommagées.
Approche
Field Maps pour la validation des travaux ; synchronisation continue de la planification depuis Google Sheets vers les couches ArcGIS ; traitement quotidien des données administratives.
Résultat
Plateforme publique comparant le planifié et le réalisé, avec génération automatique du SITREP, copie locale sur Google Drive et republication vers le GeoSiFOR de l'AGIF.
Relation
S'articule avec les fiches consacrées à Kristin, au réseau routier, à la synchronisation et aux rapports opérationnels ; elle est présentée comme mission et plateforme autonome.
  • Field Maps
  • Google Sheets
  • ArcGIS
  • SITREP
  • GeoSiFOR

Produits numériques et commerce

1 projet

Produits orientés utilisateur final, avec exploitation, données et parcours d'achat intégrés.

Domaine
Commerce en ligne
Stack
Web + données
Statut
Planification
Plateforme
Web responsive

bcariobomvalor

Boutique en ligne de produits Boticário avec catalogue, commandes et pipeline dédié de préparation de données.

Problème
Mettre en place une activité de commerce électronique à faible coût, en maintenant catalogue, factures, clients et commandes au sein d'une base cohérente.
Approche
Site web responsive en Next.js, base de données SQLite et pipeline Python pour lire des factures PDF et enrichir les descriptions de produits.
Résultat
Architecture, exigences et fondations techniques définies pour une boutique avec paiements manuels par MB WAY ou virement.
  • Next.js
  • React
  • TypeScript
  • Python
  • SQLite

Services civiques

1 projet

Technologie visant à rapprocher les citoyens et l'administration locale via un flux unique de signalement et de réponse.

Domaine
Participation citoyenne
Stack
Flutter + Firebase
Statut
Fonctionnel
Plateformes
Android + gestion

Notre Paroisse

Projet unique de communication entre les citoyens et la paroisse civile de Nossa Senhora das Misericórdias, à Ourém.

Problème
Faciliter le signalement structuré des problèmes, suggestions et événements, et suivre les réponses apportées par les services de la commune.
Approche
Application Flutter destinée aux citoyens avec GPS, photographies et notifications, interconnectée au module de gestion utilisé par les agents.
Résultat
Un flux intégré depuis le signalement sur smartphone jusqu'à l'analyse, la résolution et la notification du statut au citoyen.
  • Flutter
  • Firebase
  • GPS
  • Android
  • Gestion des interventions

Jeux et expériences éducatives

4 projets

Jeux de société, expériences familiales et apprentissage interactif sur différentes plateformes.

Type
Jeu de plateau
Moteur
Godot 4
Statut
En développement
Joueurs
2–10

Industrie du jeu

Jeu de société familial sur le monde industriel, avec hôte sur ordinateur de bureau et clients sur le réseau local.

Problème
Adapter une expérience complète de jeu de société à un format numérique partagé entre plusieurs appareils.
Approche
Projet Godot 4 avec règles en GDScript, dé 3D physique et communication WebSocket entre hôte et clients.
Résultat
Menu et lancer de dé validés ; l'implémentation du plateau jouable est en cours.
  • Godot 4
  • GDScript
  • WebSocket
  • 3D
Type
Jeu de plateau
Framework
Flutter
Statut
Structuré
Joueurs
Jusqu'à 8

Monopoly Famille Portugal

Jeu multijoueur avec villes portugaises, conçu pour la télévision, la tablette, l'ordinateur et les smartphones.

Problème
Permettre à une famille de partager le même plateau sans concentrer toutes les interactions sur un seul écran.
Approche
Un appareil hôte affiche le plateau et les joueurs se connectent par QR Code, en communiquant par WebSocket sur le réseau Wi-Fi.
Résultat
Architecture multiplateforme définie pour Android, Windows et web, avec messagerie instantanée et enregistrement des parties.
  • Flutter
  • WebSocket
  • QR Code
  • Android
  • Windows
Type
Jeu éducatif
Version
0.8.0
Statut
Jouable
Public
1re et 2e année

Robot Quest

Aventure 2D en pixel art associant exploration et exercices de portugais et de mathématiques.

Problème
Créer une expérience d'apprentissage adaptée aux jeunes enfants sans dissocier exercice et jeu.
Approche
Exploration en vue du dessus (top-down), brouillard de guerre et batailles résolues par des questions, avec commandes au clavier et tactiles.
Résultat
Jeu fonctionnel pour Windows et Android, avec difficulté et progression sauvegardées automatiquement.
  • Flutter
  • Dart
  • Pixel art
  • Windows
  • Android
Type
Jeu de plateau
Phase
Conception
Statut
Exploration
Support
Modèles + IA

Race Board

Jeu de plateau en cours de développement, appuyé par des modèles et une documentation structurée.

Problème
Transformer le concept de course en un système de jeu de plateau cohérent, documenté et prêt à évoluer.
Approche
Modélisation des règles et des composants avec documentation de projet et assistance d'outils d'IA.
Résultat
Base de conception organisée pour valider les mécaniques avant l'implémentation complète.
  • Jeu de plateau
  • Modèles
  • IA
  • Documentation

Automatisation et intégrations

1 projet

Expérimentation appliquée à l'automatisation de tâches et de services dans le cadre domestique.

Domaine
Maison connectée
Stack
Node.js
Statut
En évolution
Qualité
Tests dédiés

OpenClaw Casa

Base Node.js pour la domotique, les intégrations et le traitement de données.

Problème
Centraliser les automatisations et intégrations domotiques dans un projet maîtrisable et testable.
Approche
Séparation explicite entre code source, données, configuration et tests automatisés.
Résultat
Structure technique versionnée pour développer de nouvelles automatisations sans mélanger la logique et les données opérationnelles.
  • Node.js
  • Automatisation
  • Intégrations
  • Tests

IA et outils de développement

2 projets

Infrastructure pour exécuter des modèles en toute confidentialité et réutiliser les connaissances entre différents assistants d'IA.

Domaine
Inférence d'IA
Runtime
llama.cpp
Statut
Opérationnel
Hardware
AMD + Vulkan

LLM avec llama-server et Vulkan

Environnement d'exécution, de mise à disposition et d'évaluation de modèles GGUF sur matériel dédié.

Problème
Utiliser des modèles de langage en maîtrisant les coûts, les données et les ressources GPU, sans dépendre d'un service externe.
Approche
llama-server accéléré par Vulkan, catalogue de modèles, sélection contrôlée et bancs d'essai de vitesse et de qualité.
Résultat
Point de terminaison compatible avec les API courantes, réutilisable pour le RAG, les rapports et d'autres outils exigeant un traitement confidentiel.
  • llama.cpp
  • Vulkan
  • GGUF
  • Qwen
  • Python
Domaine
Outils pour agents
Stack
Python + TypeScript
Statut
Versionné
Licence
MIT

Universal Skills Framework

Framework ouvert permettant d'écrire un skill une fois et de le réutiliser entre différents agents et environnements.

Problème
Chaque fournisseur représente les instructions, les compétences et la mémoire sous un format différent, ce qui oblige à doubler la maintenance.
Approche
Format Markdown/YAML portable, mémoire basée sur Obsidian, validateurs et synchronisation vers les outils pris en charge.
Résultat
Une source versionnée pour les skills et le contexte persistant, exploitée par des implémentations en Python et TypeScript.
  • Python
  • TypeScript
  • Obsidian
  • CLI
  • MIT