Credits, Methodology, Mission and Recommendations

P7CO® EcoResupply aims to democratize access to critical environmental information, with accuracy and transparency. The Fire Map shows, in near real time, the active occurrences in Portugal (mainland and islands), based on public data.

  • Primary source: Fogos.pt (citizen platform) which aggregates the official data from ANEPC.
  • Automatic update: periodic cycles; the lag clock reflects the latency ANEPC → Fogos.pt → P7CO.
  • Approximate geolocation: coordinates may be generalized/anonimized at source for safety.

Severe fire: essential guidelines

  • Immediate danger: Move quickly away from fire fronts. Always follow local authority instructions and do not return to homes or land at risk. Official information.
  • Alert/report: If you spot a fire, immediately call 112. You may also contact the GNR or the local fire brigade.
  • Evacuation: Follow all evacuation warnings issued by ANEPC / Civil Protection. Leave calmly and orderly, helping elderly or mobility-impaired neighbors.
  • If trapped by fire: Seek already burnt areas or open spaces without vegetation. Protect yourself with cotton clothing, keep low to avoid inhaling smoke, and cover nose and mouth with a damp cloth.
  • Smoke and health: Avoid physical exertion in dense smoke. Keep doors and windows closed at home to reduce particle entry. In case of respiratory symptoms call SNS 24 (808 24 24 24). Directorate-General of Health.
  • Vulnerable groups: Children, the elderly, pregnant women and people with respiratory or heart diseases should be given priority protection and evacuated from smoke-affected areas.
  • Reliable information: Consult only official sources: ANEPC, IPMA, local radios or authority statements. Be wary of social media rumors.

These guidelines are reproduced from official sources (ANEPC, DGS, GNR, IPMA, ePortugal). Always check the latest information from the competent authorities.

VOST vs. Copernicus — rules, styles and semantics

VOST is always Area of Interest (AOI) — never “Delineation”. Polygons display only area popups (badge per source), and the pins remain official ANEPC/Fogos.pt (no VOST info on the pin).

Copernicus — Delineation (solid blue, with pulse) Copernicus — AOI (solid blue) VOST — AOI (solid red)
  • Popup (areas only): blue badge for Copernicus, red for VOST, metrics (area, perimeter, radius), date (if in KML), and note “approximate values”.
  • Pins: “Ongoing” uses flame icon; other statuses use soft dot (official data only).
  • Heatmap: cop-delineation = 1.0, cop-aoi = 0.25, vost-aoi = 0.20, half-life 24–36 h.

Technical documentation of the map (EN)

0) Dependencies (Leaflet and Heatmap)

<script src="https://unpkg.com/leaflet/dist/leaflet.js"></script>
<script src="https://unpkg.com/leaflet.heat/dist/leaflet-heat.js"></script>
Example: A Leaflet map with one density layer and one pulsing hotspot layer.

1) Encapsulation and base configuration

(function(){ "use strict";
const API_URL = 'https://api.fogos.pt/new/fires';
const PT_CENTER = [39.7,-8.0], PT_ZOOM = 6.4;
})();
Example: Center on mainland Portugal, zoom ≈ 6.4.

2) Status weights & time decay

Exemplo: Resolução, t=8h, h=8h ⇒ f_rec=0.5; w_s=0.55.

3) Raw incident intensity

Example: 80 personnel, 20 ground, 2 air, “Ongoing” (w=1), t=6h, h=12h ⇒ I_raw≈72.9.

4) Percentile P95 normalization

Example: P95=60; I_raw=72.9 ⇒ I_norm=1.215.

5) Polygon contribution score

Example: Copernicus Delineation: k=1.0, t=12h ⇒ f_rec=0.707; c=0.80; f_area=1.10 ⇒ S≈0.622.

6) Radial sampling for heat distribution

Example: r=112 ⇒ R_km≈13.6.

7) KML kind mapping (enum + date extraction)

// 'cop-delineation' | 'cop-aoi' | 'vost-aoi' | 'generic'
function parseKmlKindAndDate(kmlText){
  const t = String(kmlText||''); const tl = t.toLowerCase();
  const isVost = /vost/i.test(t);
  const isCopDel = /(burnt|affected|delineation|monit)/.test(tl);
  const isAOI = /(área de interesse|area of interest|aoi)/.test(tl);
  const kind = isVost ? 'vost-aoi' : isCopDel ? 'cop-delineation' : isAOI ? 'cop-aoi' : 'generic';
  const m = tl.match(/(\d{1,2})[\/\.-](\d{1,2})[\/\.-](\d{2,4}).{0,6}(\d{1,2})[:h](\d{2})/);
  let date = null;
  if(m){
    const dd=+m[1], mm=+m[2]-1, yy=+m[3] < 100 ? 2000+ +m[3] : +m[3];
    const hh=+m[4], mi=+m[5]; date = new Date(yy,mm,dd,hh,mi,0);
  }
  return { kind, date };
}

8) Style tokens (aligned with production map)

/* Copernicus Delineation: solid blue; pulse handled by JS */
.areas-poly--cop-del{ stroke:#2563eb; fill: color-mix(in oklab, #2563eb 22%, white); }
/* Copernicus AOI: solid blue (no dash) */
.areas-poly--cop-aoi{ stroke:#2563eb; /* no dash */ fill: color-mix(in oklab, #2563eb 12%, white); }
/* VOST AOI: solid red (no dash) */
.areas-poly--vost-aoi{ stroke:#dc2626; /* no dash */ fill: rgba(220,38,38,.10); }

Participants (authorities, forces and civil society)

We acknowledge the work of all institutions and citizens who contribute to prevention, monitoring, firefighting and recovery.

Sources, licenses and rights

  • Fire data: Fogos.pt / ANEPC — Creative Commons BY 4.0 (mandatory attribution).
    We re-present the information as received, with visible credits.
  • Base maps: OpenStreetMap / CARTO / OpenTopoMap (OSM, CC BY-SA 3.0).
  • Client code (JS/UX): MIT (reuse allowed with P7CO® copyright notice).
  • Brands and logos are property of their respective owners.

Methodology (summary)

  • We show only active occurrences published by ANEPC/Fogos.pt.
  • Intensity (heatmap): \( I_\text{raw}= (1 + 1\cdot\text{personnel} + 0.5\cdot\text{vehicles} + 6\cdot\text{aircraft}) \cdot w(\text{status}) \cdot 0.5^{\Delta t/h} \). Example: 80, 20, 2; “Ongoing”; \(\Delta t=6h, h=12h\) ⇒ \(I_\text{raw}\approx 72.9\).
  • Normalization: \( I_{\mathrm{norm}} = \min(1.35, I_{\mathrm{raw}}/P95) \). Example: \(P95=60\), \(I_\text{raw}=72.9\) ⇒ \(1.215\).
  • Visual distribution: \( R_{\mathrm{km}} = 2 + 1.1\sqrt{r} \). Example: \(r=112\) ⇒ \(R_{\mathrm{km}}\approx 13.6\ \text{km}\).
Source & license: ANEPC & Fogos.pt — CC BY 4.0 · Maps: OSM / CARTO / OpenTopoMap.
Last revision of this page: 2025-09-25 01:13