wildfire-exposure-eo

A layer-centric, thematic wildfire-exposure browser over Iberia. Read it top-to-bottom as a pipeline: open-EO model inputs → interim spectral detections → the output exposure-ranked critical infrastructure → independent validation layers → current operational fire weather. The pilot ranks … OSM-derived assets; every number is reproducible from the repository.

The exposure score is a relative, AOI-normalised screening rank — not a fire probability, not a forecast, not an operational service. Public-data demonstrator.

Layers

Basemap

Esri World Imagery (key-less, attribution-bearing). Highest-value under the input and interim raster layers — vegetation texture and forest edges aid interpretation. Google satellite tiles are not used (no key-less, ToS-compliant path).

Fly to AOI

Camera bookmarks. Pick a scored AOI to fly there, draw its outline, and surface that AOI's infrastructure with its AOI-relative exposure rank (rank 1 = most exposed within that AOI, not comparable across AOIs); the attribute table scopes to it. Pick Whole Iberia to reset the camera to the full extent. The per-AOI exposure layer is separate from the merged Iberia output below.

ICNF Áreas Ardidas perimeters (1990–2025) for the selected AOI, shown with it (2025 vintage outlined). Observed historical burned-area polygons (© ICNF) — not a probability, not a forecast. This is 35 years of cumulative burned area (it covers much of each AOI); it is not directly comparable to the burn-scar layer, which detects only scars still spectrally visible in recent imagery. Streamed from Cloudflare R2 on demand.

    Inputs input

    The relative model inputs the exposure rank is built from, as full-Iberia EPSG:3857 display COGs from Cloudflare R2 (load on toggle). Relative / observed inputs — not a probability, not a forecast.

    EFFIS NFFL fuel-model classes, pan-European (~250 m native) — neighbourhood fuel character, not parcel-level precision. A relative model input, not a probability. (Portugal scoring additionally refines fuel with DGT COSc land cover; this full-Iberia display layer is raw EFFIS.)

    Terrain slope (°) from the Copernicus DEM (full Iberia). Steeper slopes carry fire faster uphill — a relative model input, not a probability. NEAREST-warped display copy.

    Sentinel-2 / GEDI canopy height (m) over the full Iberia extent. Taller, denser canopy is more fuel-loaded — a relative model input, not a probability.

    Current observed fire weather.

    The operational second axis: current observed reanalysis fire weather from the CEMS Early Warning Data Store (Canadian FWI system). Regional context over the Iberian Peninsula on a coarse 0.25° grid (≈25 km cells), ~2-day lag — not a per-asset score, not a probability, not a forecast. Ocean / no-coverage cells are transparent. Streamed from Cloudflare R2 (loads on toggle).

    Interim interim

    Intermediate spectral detections across the pilot + 4 study areas (all tiles shown under one toggle). Streamed from Cloudflare R2 on toggle.

    Burn-scar mosaic — recent-scar DETECTION from Sentinel-2 (Prithvi, de-gridded stride-256; painted only where score ≥ 0.60, which suppresses the low-score wash), 3 study areas. Detects fire scars still spectrally visible in recent imagery — not cumulative history, so compare against recent ICNF vintages, not the full 1990–2025 perimeters. Monchique and the pilot tiles are withheld (residual ViT-tiling / a wash with no coherent recent footprint). A relative model score, not a probability/forecast.

    Change in Normalized Burn Ratio over the scoring window: positive (red) = vegetation loss / burn-severity signal, negative (green) = regrowth. A relative spectral input, not a probability and not a fire forecast.

    Output output

    The merged full-extent exposed-infrastructure layer, coloured by impact severity (viridis; brightest = highest). Loads on first toggle (~9 MB from Cloudflare R2). Relative within-AOI exposure × asset criticality, normalised across study areas — NOT an absolute cross-region risk or probability.

    The per-AOI scored assets, coloured by AOI-relative exposure rank (viridis; brightest = rank 1, most exposed within that AOI). Follows the AOI bookmark above. Same encoding as the repository's fig1. A screening rank, not a probability.

    Selected AOI outline (EPSG:4326). The pilot is frozen at data/aoi/pilot.geojson.

    The same critical-infrastructure assets without the rank encoding (frozen OSM taxonomy; © OpenStreetMap contributors).

    Validation validation

    Observed historical burned-area perimeters across Iberia, styled by source. Loads on toggle (~MB from Cloudflare R2).

    A SOTA relative wildfire-risk rank to read the exposure rank against. Loads on toggle from Cloudflare R2.

    ICNF Áreas Ardidas 1990–2025 inside the pilot AOI (© ICNF). The 2025 vintage is the validation label set. Fetched from Cloudflare R2 (~8 MB; loads on toggle).

    Display

    Show a tooltip under the cursor with layer attributes (asset class and rank, fuel class, raster score, ICNF vintage). Default off — disable if it competes with click popups or slows the raster layers. Raster reads stream a tile range request per hover.

    Legend

    Impact severity (Iberia output) colour

    0 (low)1 (high)

    Relative within-AOI exposure × asset criticality, normalised across study areas — NOT an absolute cross-region risk or probability.

    Exposure rank (selected AOI) colour

    rank n (least exposed)rank 1 (most exposed)

    Relative, AOI-normalised screening rank — not a probability. Marker shape = asset class; marker colour = exposure rank (the per-class glyph itself is viridis-tinted by its rank).

    Asset class shape

      Hand-authored CC0 glyphs (this repository; no third-party icon font). Lines/areas keep their geometry; points use the per-class glyph.

      Burn-scar inference score

      0.6 (alpha-ramp start)1 (relative model score)

      Fuel classes (EFFIS NFFL)

        Canopy height colour

        minmax

        Slope colour

        minmax

        NBR-delta (ΔNBR) colour

        minmax

        FireScope risk rank colour

        0254

        Burn history by source

          Fire weather (FWI)

          minmax

          Process (as a deliverable)

          The pipeline read temporally: the input window, the validation horizon strictly after it, the current fire-weather snapshot, and the exact code commit. Every step is reproducible from the repository.

            Validation headline

            Loading…

            Full tables, ablation and caveats: validation report.

            Asset analyser

            A filterable, sortable table of every scored critical-infrastructure asset across the AOIs opens as a floating attribute table over the map (classic GIS style): drag it by its header, dock it to a side, collapse it, or resize it. Impact severity = exposure score × importance — a transparent relative within-AOI triage rank that floats the most-exposed important assets (e.g. high-voltage lines and substations) to the top. Not a probability. Sort by it or filter, then click a row to fly the map there; clicking an asset on the map scrolls the table to its row. Roads/highways are not in the scored set — see the note in the table.

            (also via the ☷ button at the top of the map).

            Scope boundaries

            • Rank, not probability. The score orders assets within this AOI; it makes no calibrated-probability or forecast claim.
            • AOI-relative. Features are percentile-ranked within the evaluated AOI; scores are not comparable across AOIs.
            • Public-data demonstrator — not an operational service.
            • Burn scars ≠ ignition prediction. The Prithvi layer detects spectral signatures of fires that already happened.

            Download the geodata

              The scored GeoParquet and fuel COG are committed STAC assets; oversized rasters/vectors are hosted on Cloudflare R2. Catalog: stac/.

              Reproduce it

              CPU demo path (smoke AOI, ~2.5 min cache-warm): docs/demo.md — audit → fetch-osm → fetch-rasters → fetch-burns → fuel-layer → score → validate. GPU burn-scar route (pre-baked COG): prompts/09_burn_scar_inference.md. Method: docs/methodology.md.

              Pipeline diagrams

              Rendering diagrams…

              Display projection: Web Mercator (EPSG:3857). Vector layers are EPSG:4326 GeoJSON; raster overlays are display copies warped to EPSG:3857 (nearest resampling, no resolution loss) from the authoritative EPSG:32629 / EPSG:4326 STAC COGs.

              © OpenStreetMap contributors (streets basemap, assets) · Esri World Imagery (optional satellite basemap; Source: Esri, Maxar, Earthstar Geographics, and the GIS User Community) · Sentinel-2 © ESA/Copernicus · ICNF · EFFIS/CEMS · DGT · ETH GCH (Lang et al. 2023) · MIT.

              ☷ Attribute table