Impacto de tempestade medido por satélite
Quanto de floresta a Tempestade Kristin derrubou em Leiria, medido pixel a pixel em imagens Sentinel-2.
- células de 1 ha analisadas
- 214 mil
- área com perda de vegetação
- 11.269 ha
- pior delta NDVI registrado
- -0,48
O problema
A Tempestade Kristin atingiu o concelho de Leiria, em Portugal, entre 25 e 27 de janeiro de 2026. Depois de um evento desses a pergunta prática é sempre a mesma, e sempre demora a ser respondida: onde, exatamente, a floresta caiu? Levantamento em campo cobre pouco território e leva semanas. Enquanto isso, quem precisa priorizar remoção de material caído, replantio ou vistoria de estradas decide no escuro.
A solução
Um pipeline que responde isso com imagem de satélite gratuita, sem trabalho de campo.
A ideia central é comparar o NDVI — índice que mede vigor da vegetação — antes e depois da tempestade, na mesma área e no mesmo pixel. Onde a vegetação sumiu, o índice despenca.
NDVI (Sentinel-2) → altimetria (DEM) → vento → uso do solo (OSM) → análise → mapa
Cada etapa é um módulo isolado, e o orquestrador pula o que já foi calculado. Isso importa mais do que parece: uma coleta de Sentinel-2 leva minutos e falha por rede com frequência. Pipeline que recomeça do zero a cada erro não termina nunca.
Como cada peça contribui
| Etapa | O que resolve |
|---|---|
| Sentinel-2 via STAC | Compõe a mediana de dois períodos (pré e pós), descartando pixel com nuvem ou sombra pela banda de classificação da própria imagem |
| DEM | Altitude e declive — encosta exposta sofre mais que vale abrigado |
| Open-Meteo | Reanálise horária de vento e chuva numa grade de 0,07° sobre o concelho, para cruzar dano com rajada |
| Meteostat / IPMA | Rajadas recorde oficiais por localidade, incluindo os 238 km/h de Lavos |
| OpenStreetMap | Separa o que é floresta do que é área urbana ou estrada, via Overpass |
| Análise | Classifica cada célula em cinco faixas de dano pelo delta de NDVI |
O resultado
De 214 mil células analisadas, 1.560 aparecem com dano alto e 183 com dano crítico. A leitura honesta do conjunto, porém, é mais interessante que o número de destaque: a maioria das células melhorou entre os dois períodos. O motivo é sazonal — a janela “depois” cai na primavera, quando a vegetação rebrota naturalmente. Isso significa que o sinal de dano real é o que sobrevive a essa maré de crescimento, e que comparar duas fotos de estações diferentes exige cautela antes de declarar causa.
É o tipo de detalhe que separa um número bonito de um número defensável.
Como isso chegou até aqui
Os 73 MB de GeoJSON gerados pelo pipeline não servem para web. Como a grade é regular, os dados
foram reescritos como raster: um PNG colorido para o desenho e um vetor de inteiros de 8 bits para
a leitura de valor sob o cursor. 287 KB no total, sem servidor e sem perda de informação
relevante — a conversão está em scripts/grid_to_raster.py neste repositório.
O mapa a seguir é a saída real do pipeline, com os dados do estudo. Não é ilustração.
Tecnologias
- Python
- Sentinel-2 / STAC
- NumPy
- GeoPandas
- Overpass API
- Open-Meteo
- Meteostat
- Docker