Loading…
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.
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.
- National Authority: ANEPC — National Authority for Emergency and Civil Protection
- Agency for Rural Fires: AGIF — Agency for the Integrated Management of Rural Fires
- Meteorological information: IPMA — Portuguese Institute for Sea and Atmosphere
- Conservation/Resources: ICNF — Institute for Nature Conservation and Forests
- Security forces: GNR (incl. SEPNA) and PSP
- Armed Forces: Air Force, Army, Navy
- Maritime Authority: AMN / Maritime Police
- Health and Relief: INEM and Portuguese Red Cross
- Firefighter structures: Portuguese Firefighters League and National Firefighters Association
- Municipalities and local civil protection (forestry technical offices and local teams)
- Community and Citizenship: VOST Portugal, volunteering platforms and citizens who report, validate and responsibly share information
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