← PHOENIX research log

Sicily wildfire causation — province & municipality drill-down

All 9 provinces, 391 comuni, discrete FIRMS-derived fire events 2003–2026. Click a province to drill into its municipalities. This build adds three things the earlier Agrigento-only pass didn't have: full island coverage, a near-term-vs-long-term consistency check (so a real recent shift isn't confused with a detection-sensor artifact), and a repeat-ignition anomaly pass that caught — and had to correct for — real industrial contamination before it could be mistaken for a behavioral signal.

Loading…

1Province selector & map

Dot size = fire-event count near that comune. Color intensity = night-ignition fraction (a magnitude scale, not identity — with 9 provinces, a categorical color-by-province encoding can't clear colorblind-safety at this density, so identity is carried by the chip selector and labels instead, per the study's own accessibility method).

2Selected-region detail

3Near-term vs long-term — and the sensor-bias trap

Every province's raw pooled event count rises 2003→2025 (p<0.05 in 8/9 provinces) — but that trend disappears in all 9 when restricted to the MODIS-only consistent sub-series (VIIRS, with ~3× finer resolution, came online mid-record and mechanically detects more small fires without any fires actually increasing). Read the pooled trend as "more sensor," not "more fire," unless the MODIS-only column agrees.

4Data-quality corrections — what got caught before it could mislead

A repeat-ignition-location pass (the same technique fire investigators use to flag a fixed recurring source) surfaced high-recurrence grid cells island-wide. Checking them individually mattered: most of the strongest ones turned out to be real contamination, not fire — removing them was necessary before any location could be responsibly called an anomaly.

⚠ 35 grid cells (≈680 raw detections, ≈436 discrete "events") were industrial static heat sources, not vegetation fire — removed from every number in this report
Physical signature, not just FIRMS' own type-flag (which only partially catches these): <3 MW median FRP (vs 6–9 MW at real wildfire sites), ≥85% nighttime, recurring at the same ~350m spot across 4+ different years. These land almost exactly on Sicily's largest energy/petrochemical infrastructure — Priolo Gargallo (Siracusa petrochemical hub), Gela (ENI refinery), the Milazzo refinery corridor near San Filippo del Mela, and Porto Empedocle — consistent with gas-flare stacks, not wildfire. Every province-level and temporal statistic in this report is computed after this correction.
✓ Independently corroborated: Ragusa's #1 and #4 comuni by fire-event count are a documented environmental crime, not wildfire
Acate (798 events, 41% nighttime) and Vittoria (571 events, 46% nighttime) are, by a wide margin, the two Ragusa-province locations with the most FIRMS-detected thermal events — and both show a signature unlike anywhere else in Sicily: no weekend elevation (p=0.70 and p=0.54 — statistically flat by day of week, the one clear population-level exception in the whole island), and extreme night concentration. A live web check for this report found exactly this: Carabinieri in Ragusa province have run repeated 2026 operations against "fumarole" — illegal nighttime burning of plastic and greenhouse waste from the area's intensive horticulture industry — with prosecutions in Acate and Vittoria specifically, including a helicopter-supported sweep that seized 4 illegal sites and referred 7 people to prosecutors in the two weeks before this report was run. Ragusa province's fire statistics are measuring a real but different phenomenon — illegal agricultural-waste combustion, not vegetation wildfire — and this is very likely why Ragusa is the one province where the population-level weekday signature fails to reach significance (p=0.83, see province panel). Sources: Radio RTM Modica, Ragusa Oggi, Radio RTM (Vittoria seizure).
? Unresolved: a 16-year recurring cluster south of Catania does not cleanly resolve either way
A tight ~1km² zone (37.43–37.44°N, 15.00–15.03°E, in/near Catania's industrial belt) shows ~140 discrete events across 16 different years, 40–90% nighttime depending on the sub-cell — high enough recurrence to flag, but it didn't clear the strict industrial-filter threshold (FRP and night-fraction were inconsistent across its sub-cells, unlike the clean refinery cases above). A live check confirms Catania's industrial zone is independently newsworthy for fire activity, including an active blaze during the period this report was compiled, which is consistent with either explanation and resolves neither. This is the single most actionable open flag in this report — it warrants ground verification (cadastral/permit records, or a site visit) before being read as either "more industrial contamination" or "a genuine recurring ignition pattern," and this write-up deliberately stops short of concluding either.

Full ranked list of recurrence anomalies (deviating from the population pattern) below — locations only, never individuals, and read against the two callouts above before treating any row as more than "matches an unusual pattern."

5The official-coding comparison

Checked directly for 3 of 9 provincial operational wildfire plans (POP AIB 2024) — Agrigento, Catania, Palermo — plus the region-wide finding from the fuller causation review that all 9 provincial plans carry structurally identical boilerplate.

⚠ No per-fire cause record exists at any granularity this report could check, in any province
None of the 3 directly-checked POP AIB 2024 plans contain a per-fire, per-comune, or per-date cause table. Italy's Catasto Incendi (Law 353/2000) — the one legal mechanism that could produce a per-fire, per-parcel record — was, per contemporaneous reporting, functionally unmaintained by most Sicilian comuni as of mid-2025. So for none of the 72 sampled events in the case file below — spanning all 9 provinces — is there an accessible official cause record to check the independent classification against, in either direction.

6Island-wide random-sample case file

72 events, stratified 8-per-province, fixed random seed, run through the same covariate-only classifier as the Agrigento pass — now including a Ragusa-specific "fumarole" rule justified by the independent corroboration above.

7Anomalies not explained by negligence, accident, industry, or the fumarole pattern

A direct follow-up: after excluding everything §4 and §5 already explain — industrial static sources, the corroborated Ragusa waste-burning pattern, and ordinary agro-pastoral/roadside ignition — what's left that looks more consistent with deliberate fire-setting than with any of those? Two different signals, kept separate because they're not the same claim.

Recurrence-hotspot signal: mostly resolved, one honest walk-back
Of the 20 grid cells that recurred far above their local background (§4), all but one now trace to a named explanation — 12 to industrial corridors, 7 to the Acate/Vittoria fumarole zone. The single remaining unexplained cell, near Salaparuta (Trapani), 6 events across 2007–2019, does not hold up on a manual read of its raw dossier: farmland sits only 0.6–1.1km away, 3 of 7 detections are weekend, and the single largest fire there (235.9 MW, 3 Sep 2016) is a Saturday daytime ignition — squarely inside the population pattern, not outside it. It clears the automated threshold but doesn't survive a second look. The repeat-location method, honestly applied, does not surface a standing "someone keeps lighting this exact spot" candidate anywhere in Sicily once the confirmed explanations are removed.
Individual-event signal: 54 significant fires meet every criterion at once
A different test: single fires (not tiny single-pixel noise — n_det≥3 or FRP≥20MW) that are simultaneously night-ignited, road-accessible (easy to reach), far from any farmland edge and any settlement (so not explained by crop-residue or yard/trash burning), outside the harvest/stubble calendar, AND located in a comune with an otherwise well-established, clearly weekend/daytime-skewed normal pattern that this specific fire breaks. All five conditions had to hold together — not an additive score — which is why this list is short. None of these are proof of anything; each is a location and a date where the ordinary explanations run out at the same time, in a way that would be worth checking against permit, patrol, or witness records. No individual is identified anywhere in this report.

8Socio-economic context — population and income by comune

Real, sourced Italian government open data joined onto the same 391 comuni: resident population 2018–2021 (ISTAT) and average declared income per taxpayer, tax year 2024 (Ministero dell'Economia e delle Finanze). The population window is short — three years — so read it as a recent-direction signal, not a multi-decade claim (the multi-decade Alessandria della Rocca story remains specific to that case study). Selecting a province above also narrows the two tables below.

Two more real, sourced dimensions: elevation and summer climate — now complete for all 391 comuni

Elevation (digital elevation model, per comune centroid) and 10-year summer climate normals (2015–2024 daily maxima and precipitation, per comune centroid) were pulled for all 391 comuni. Elevation held up on first pass. Climate did not, at first: the historical archive provider (Open-Meteo ERA5) rate-limited this study after the first 100 comuni — first an hourly block, then, when retried, a harder daily block — so this pass switched providers entirely and re-pulled all 391 comuni fresh from NASA POWER's point API (MERRA-2-based reanalysis), which returned full coverage cleanly with no rate-limit friction. The two providers are not assumed interchangeable mid-sample, which is why every comune was re-pulled from the one source rather than splicing 100 Open-Meteo values onto 291 NASA POWER ones.

Elevation correlations are essentially unchanged from the earlier partial check and hold up at full comune coverage:

  • Elevation negatively correlates with harvest-calendar concentration (Spearman ρ=−0.35, p<10⁻&sup9;, n=373): lower-elevation comuni cluster more tightly inside the fixed harvest/stubble calendar window used throughout this analysis; higher-elevation interior comuni spread more evenly across the year. This is exactly the mechanism the case study identified specifically for Alessandria della Rocca (“the interior grain at ADR's altitude is cut last, mid-to-late July”) — extended here, measured, to the whole island.
  • Elevation negatively correlates with night-ignition fraction (ρ=−0.24, p<10⁻⁵, n=373): higher comuni skew more daytime. Consistent with §4's finding that the confirmed industrial/fumarole night-dominant sources (Priolo Gargallo, Gela, Milazzo corridor, Acate/Vittoria) are all low-elevation, coastal-plain locations.
  • Elevation vs. events-per-1,000-population is weak (ρ=0.26, p<10⁻&sup6;, n=390) — higher comuni show marginally more events per capita, but the relationship is far weaker than the population-decline or income relationships in §8 above.

The climate (temperature/precipitation) finding does NOT hold up at full coverage, and we are reporting the correction rather than keeping the more dramatic partial number. On the earlier n=100 sample, hotter and drier comuni appeared to have a “classic fire-weather signal” — more events per capita (ρ=0.32 temperature, ρ=−0.31 precipitation, both p<0.002). At full n=390 coverage:

  • The temperature relationship shrinks sharply and is only barely significant on its own (mean summer daily maximum vs. events per 1,000 population: Spearman ρ=0.12, p=0.022, n=390) — and, as the multicollinearity check below shows, does not survive controlling for the rest of this report's covariates either.
  • The precipitation relationship with events-per-capita is not statistically significant at all (summer precipitation vs. events per 1,000: ρ=−0.08, p=0.11, n=390). The partial-sample finding of a real precipitation effect on this specific outcome does not survive completing the sample.
⚠ Multicollinearity check, run because a single-variable-at-a-time approach can mislead

Every predictor in this section (population change, income, elevation, summer temperature, summer precipitation, summer days≥35°C) was checked against every other predictor for collinearity, and every outcome was then re-tested in a joint regression against all six predictors at once — not one bivariate correlation at a time — because a variable that looks significant alone can simply be riding on its correlation with a different, truly-causal variable.

Elevation and temperature themselves are only weakly related (r=0.10, n=390) — not the collinear pair we expected to find. The real collinearity is inside the climate data itself: summer temperature, summer precipitation, and summer days≥35°C are three ways of measuring almost the same thing (temp–precip r=−0.72; temp–days35 r=+0.96; precip–days35 r=−0.70). Variance Inflation Factor for temperature and days≥35°C both exceed 12 (>10 is the standard “serious multicollinearity” threshold) — treating these as three independent confirmations of the same climate signal would be wrong.

Once all six predictors are controlled for jointly, temperature has no independent relationship with any outcome in this report — not events-per-capita (p=0.086), not night-ignition fraction (p=0.23), not harvest-stubble concentration (p=0.64). Every place temperature looked significant on its own, it was riding on its strong anti-correlation with precipitation. This corrects what was published in this section minutes earlier, which reported temperature-vs-night- fraction and temperature-vs-harvest-stubble as newly “firmed up” findings; they were not independent effects, and that framing is withdrawn here rather than left standing.

Two more predictors were added and tested the same way: distance to coast (computed from Natural Earth's coastline against every comune centroid) and land cover (CORINE 2018, EU-authoritative, one class per comune centroid) — because this report's own text repeatedly invokes “coastal-plain” and “inland agricultural” as explanations without ever measuring either directly. Both are now complete for all 391 comuni, and both change the picture again.

✅ Coastal distance is the single strongest geographic predictor found in this entire analysis

Bivariate, before any control: comuni further from the coast have more events per capita (Spearman ρ=0.54, p<10⁻³⁰, n=390 — the strongest single correlation in this whole section), a lower night-ignition fraction (ρ=−0.50, p<10⁻²³, n=373), and slightly less harvest-calendar concentration (ρ=−0.27, p<10⁻&sup6;).

It survives joint control, and it changes how elevation should be read. Adding coastal distance to the full model: for night-ignition fraction, coastal distance is independently significant (β=−0.32, p<0.0001) and elevation is no longer significant (p=0.33, down from p=0.008 in the 6-predictor model). For harvest-stubble concentration, coastal distance is again the strongest predictor (β=−0.33, p<0.0001) and elevation drops to marginal (p=0.074, down from p<0.0001). Elevation and coastal distance are themselves correlated (r=0.40) — the most likely reading is that elevation's earlier apparent independent effect on these two outcomes was substantially a weaker proxy for coastal distance itself, not a separate mechanism. This is not a reversal of the elevation bivariate numbers reported above (they are still true, measured correlations) but it does change which variable should be treated as doing the explanatory work.

For events-per-1,000-population, coastal distance is also independently significant (β=+0.28, p=0.0001) — the third predictor to hold up for this outcome, alongside population change and income. Model fit improves across the board: R² rises from 0.234→0.268 (events-per-capita), 0.179→0.229 (night-fraction), 0.212→0.251 (harvest-concentration) — real improvement, though 73–77% of comune-to-comune variance in these outcomes is still unexplained by every predictor tested so far, stated plainly rather than implied to be a complete model.

Direct test of this report's own “hot inland agricultural zones” hypothesis — confirmed as a real pattern, not independently explanatory once coastal distance is controlled

The earlier interpretation offered for why hotter comuni skewed more daytime was a hypothesis, explicitly flagged as unproven. It is now tested directly against real land-cover data (CORINE 2018) rather than left as a plausible story: 240 of 390 comuni (62%) have an agricultural class at their centroid. Those agricultural-centroid comuni are, on average, hotter (31.5°C vs. 30.9°C summer maximum, p=0.010), at lower elevation (374m vs. 507m, p<0.0001), and further from the coast (16.2km vs. 12.4km, p=0.002) than non-agricultural-centroid comuni — all three differences point the same direction the hypothesis predicted. The pattern is real.

But in the full joint model, the agricultural-centroid indicator itself carries no independent explanatory power for night-ignition fraction (p=0.158) or harvest-stubble concentration (p=0.584) once coastal distance, elevation, and the rest are controlled for — coastal distance, not land use per se, is what the data actually holds responsible. The one place the agricultural indicator does reach significance is weekend-share (β=+0.12, p=0.030) — agricultural-centroid comuni skew very slightly more toward weekend ignitions, plausibly weekend agricultural work, though this model explains very little of weekend-share overall (R²=0.036) and the effect is small.

Updated picture of what holds up under joint control (n=373 for the two fire-signature outcomes, all nine — soon ten, see below — predictors considered together):

  • Night-ignition fraction: coastal distance (β=−0.32, p<0.0001), population change (β=+0.18, p=0.0007), and precipitation (β=+0.17, p=0.017) are independently significant. Elevation, income, temperature, and days≥35°C all drop out once coastal distance is in the model.
  • Harvest-stubble concentration: coastal distance (β=−0.33, p<0.0001), precipitation (β=−0.23, p=0.001), income (β=+0.12, p=0.028), and population change (β=+0.12, p=0.024) are independently significant. Elevation is now only marginal (p=0.074); temperature drops out.
  • Events-per-1,000-population: population change (β=−0.25, p<10⁻&sup6;), income (β=−0.19, p=0.0004), and coastal distance (β=+0.28, p=0.0001) are independently significant; elevation is now weakly significant too (β=−0.13, p=0.014), and days≥35°C shows up as significant (p=0.0097) while temperature itself does not (p=0.068) — given their VIF exceeds 12, this specific split between the two is not reliably attributable to either variable alone, and should be read as “something in the hot/dry cluster matters a little,” not as proof that days-over-35 specifically is the mechanism.

All numbers above are measured on the complete 391/391-comune datasets.

A tenth predictor — road-network density (real-road-class segment count within 2km of each centroid, OSM Overpass), quantifying the “road-accessible” criterion §7 already uses qualitatively — is now complete for 364 of 391 comuni (93%; 27 comuni hit a sustained server timeout even under a lighter count-only query and were left as gaps rather than forced through). The result is a clean negative, reported the same as any positive one: road count has real bivariate correlations — more roads means fewer events per capita (ρ=−0.20, p=0.0001), a higher night-ignition fraction (ρ=0.21, p=0.0001), and notably more harvest-stubble concentration (ρ=0.34, p<10⁻¹⁰) — but almost none of it survives joint control against the other eight predictors. Once coastal distance, income, and the rest are in the model, road count is not significant for events-per-capita (p=0.90), night-fraction (p=0.40), or weekend-share (p=0.82). The one survivor is a small, independent contribution to harvest-stubble concentration (β=+0.11, p=0.047) — real but weak, on top of coastal distance, precipitation, and population change, which remain the dominant predictors for that outcome exactly as reported above. Road density does not change this section's headline finding: coastal distance remains the strongest and most robust predictor found in this entire analysis, unchanged by testing a tenth candidate against it.

✅ Cross-check: is the coastal-distance finding a real geographic effect, or an artifact of which satellite detected it?

§10 already established that VIIRS is structurally more night-sensitive than MODIS (island-wide: MODIS 14.7% night, VIIRS 43.6% night — reproduced again here on the same fresh 203,046-detection archive). If VIIRS's share of a comune's detections isn't evenly spread across coastal vs. interior comuni, part of the coastal-distance-vs-night-fraction finding above could be instrumental rather than behavioral. It is not evenly spread — VIIRS share does correlate with coastal distance (Spearman ρ=−0.32, p<10⁻&sup9;, n=357: interior comuni get relatively more MODIS-heavy coverage) — so this was tested directly rather than assumed away.

The coastal-distance relationship holds up within each sensor separately, and if anything is slightly stronger than the pooled figure: MODIS-only comuni (n=292, ≥15 MODIS detections), ρ=−0.38, p<10⁻¹&sup0;; VIIRS-only comuni (n=369, ≥15 VIIRS detections), ρ=−0.44, p<10⁻¹&sup8;. A real sensor-mix difference exists and is disclosed, but it does not explain the coastal-distance finding — the effect is present even looking at MODIS alone, which has no night-detection advantage over daytime. This strengthens rather than undermines the finding.

The two SEVIRI-confirmed locations from §10, seen through the new geographic lens

The independent geostationary cross-check in §10 tested three specific locations. Their coastal-distance and land-cover profiles, computed after the fact rather than chosen to fit, line up exactly with the statistical pattern above: Priolo Gargallo (confirmed industrial night-dominant source) sits 3.5km from the coast on CORINE class 112 (discontinuous urban fabric); San Filippo del Mela (the Milazzo-corridor industrial source) sits 2.7km from the coast, same land class. Both are the textbook low-elevation, coastal, non-agricultural profile this section's model associates with high night-ignition fraction. Alessandria della Rocca's SEVIRI-confirmed large July 2026 fire — this report's own flagship real-fire case — sits 22.1km inland at 431m elevation on CORINE class 223 (olive groves): the opposite profile, exactly where the model predicts daytime-dominant, harvest-calendar-linked ignition. Three points is an illustration, not a statistical test, but it is a clean one.

One more descriptive cross-check, from the §6 stratified 72-event case file: the smallest classification category, “possible fumarole / illegal waste-burning” (n=4, all Ragusa-corridor events), averages 7.0km from the coast — against 12.9–24.4km for every other classification, and the lowest mean elevation of any category (132m vs. 256–531m). With n=4 this is illustrative, not a statistical claim, and is labeled as such — but it is the same pattern again, from a completely different piece of this report's evidence base.

9Per-region assessment — what the data says to do about it

For every comune: its measured counts, its socio-economic profile, and a recommendation — but the recommendation is not invented per town. Each one is pulled from the case study's own evidence-graded mitigation table (early detection, fuel/abandoned-land management, harvest-calendar enforcement, fire-cadastre compliance, or — where a location is already independently explained — a note that fire-service wildfire resourcing would be misdirected there) and triggered only when this comune's own numbers meet a disclosed, data-driven threshold (quartiles computed across all 391 comuni, shown in each recommendation's own text). Click any row to see the full picture for that comune.

✅ Do §8's correlations hold the same way in every province? Tested formally: no — and the differences are large enough to change where each intervention below should be prioritized

A pooled island-wide correlation can hide the fact that a relationship is really a two-or-three-province phenomenon, or reverses direction somewhere. This was tested directly with a nested-model F-test (does letting each of the 9 provinces have its own slope explain significantly more than one shared slope?) rather than just eyeballing 9 small per-province numbers. Every one of the five relationships tested shows statistically significant province-level heterogeneity (all p<10⁻⁶): coastal distance→night-fraction (F=4.1), coastal distance→harvest-stubble (F=15.2), coastal distance→events-per-capita (F=5.7), population-change→events-per-capita (F=5.0), and income→events-per-capita (F=6.0). These are not the same relationship repeated nine times at nine different volumes — some provinces carry the whole island-wide signal, some show none of it, and one reverses it.

Province (n)Coastal dist. → night-fractionCoastal dist. → harvest-concentrationCoastal dist. → events/1,000Income → events/1,000
Messina (108)ρ=−0.45***ρ=−0.31**ρ=+0.51***ρ=−0.49***
Palermo (82)ρ=−0.69***ρ=−0.76***ρ=+0.75***ρ=−0.58***
Catania (58)ρ=−0.24*ρ=−0.19 (n.s.)ρ=+0.69***ρ=−0.75***
Trapani (24)ρ=−0.29 (n.s.)ρ=+0.07 (n.s.)ρ=+0.79***ρ=−0.65***
Caltanissetta (22)ρ=−0.53**ρ=−0.75***ρ=+0.13 (n.s.)ρ=−0.74***
Siracusa (21)ρ=−0.41 (weak)ρ=+0.00 (n.s.)ρ=+0.28 (n.s.)ρ=−0.29 (n.s.)
Agrigento (43)ρ=−0.20 (n.s.)ρ=−0.57***ρ=+0.23 (n.s.)ρ=−0.42***
Enna (20)ρ=−0.06 (n.s.)ρ=−0.29 (n.s.)ρ=−0.17 (n.s.)ρ=−0.66***
Ragusa (12)ρ=−0.44 (n=12, weak)ρ=+0.57 (n=12, reversed)ρ=+0.12 (n.s.)ρ=−0.68**

Three patterns worth acting on differently:

  • Income and population decline predict fire activity in essentially every province — income reaches p<0.05 in 8 of 9 provinces individually (only Siracusa, n=21, falls short, and the direction is still negative there too). This is the one relationship in this whole report that is genuinely island-wide, not concentrated anywhere. It is the strongest basis for an island-wide (not province-tiered) recommendation: socio-economic and abandoned-land programs belong everywhere, not just where coastal patterns are strongest.
  • The coastal-distance effect is concentrated in Messina, Palermo, and Caltanissetta — all three show it strongly across multiple outcomes; Agrigento, Enna, and Siracusa show little to none of it. Coastal-industrial-night surveillance and enforcement (already flagged island-wide in §4's Priolo Gargallo/Milazzo-corridor findings) is a Messina/Palermo/Caltanissetta-priority investment on this evidence, not something to spread thin island-wide at equal intensity.
  • Ragusa's harvest-stubble relationship runs the opposite direction from the rest of the island (ρ=+0.57 vs. a negative relationship everywhere else it's significant) — comuni further from Ragusa's coast show more, not less, harvest-calendar concentration. This is independent statistical confirmation of what §4's ground-corroborated fumarole finding and the solutions catalog below already treat as a special case: Ragusa's coastal belt is dominated by greenhouse agriculture (the Acate/Vittoria fumarole pattern), not the industrial-coastal economy driving the pattern in Messina and Palermo. The existing “waste-burning enforcement” recommendation for Ragusa is not a guess; this heterogeneity test is a second, independent line of evidence for treating Ragusa differently rather than applying the island-wide coastal story there. n=12 for Ragusa is small — the direction reversal is worth noting, the exact magnitude is not to be over-read.

Correlational throughout, as everywhere else in this report — this shows where each pattern is statistically real and where it isn't, not why. Small-n provinces (Ragusa n=12, Enna n=20, Siracusa n=21) have individually noisy coefficients even though the overall heterogeneity test (which pools residual degrees of freedom across all 373–390 comuni) is robust; read single small-province numbers as directional, not precise.

Two standing corrections that apply island-wide, regardless of any single comune's numbers
Prescribed burning at the scale Sicily could realistically achieve was refuted, not confirmed, by the case study — it is not recommended below no matter how a comune's numbers look. Aerial suppression and drone/mapping surveillance-for-attribution both carry weak evidence relative to their cost and prominence (~€290k of drones identified 3 perpetrators in 3 years) — neither is the highest-leverage next investment, island-wide.
Solutions catalog with literature-backed magnitude estimates — real citations, no invented percentages

Each intervention below is graded on its own evidence, from its own source, in its own context. These numbers are not additive (different methods, different places, cannot be summed into one composite Sicily forecast) and are not Sicily-measured unless stated — they are the best real evidence available, reported honestly including where no defensible number exists.

InterventionMagnitude, with sourceCaveat
Fuel & abandoned-land management, extensive grazing 25.9% (wet years) to 60.9% (median years) fire-extent reduction, 45.8% (dry years) — Lovreglio, Lovreglio, Satta, Mura & Pulina (2024), Fire 7(11):409, FlamMap-simulated, Sardinia (this report's closest structural analogue) Simulation-based, Sardinia not Sicily; directionally transferable given structural similarity, not a Sicily-measured figure
Prescribed burning ~24–27% wildfire-severity reduction (dNBR/RBR) where applied, persisting ~5 years — Fernández-Guisuraga & Fernandes (2024), Fire Ecology 20(4), doi:10.1186/s42408-023-00233-z, mainland Portugal, 2005–2021 Real international effect — but the case study explicitly tested and refuted that prescribed burning at the scale Sicily could realistically achieve would move outcomes. Effectiveness elsewhere is not in question; achievable scale here is the binding constraint.
Early detection & lookout towers 71% of 2017-21 Sicilian fire reports came from tower personnel vs. 17% from the citizen line (measured, this report's own case study) Solid evidence towers are the dominant detection channel. Weaker evidence on exactly how much faster detection reduces final burned area: a 2024 US suppression-cost study found reporting-delay reductions carry a small marginal effect (~0.25% cost reduction per 1-hour detection-time improvement; delays account for ~3% of total suppression cost) — PLOS ONE (2024), “Machine learning estimates on the impacts of detection times on wildfire suppression costs.” No Sicily- specific burned-area-reduction percentage is invented here.
Fire-cadastre compliance (Law 353/2000) >1/3 of Sicilian comuni non-compliant; ~41% of 2010-22 burned area sits in non-compliant comuni (measured, this report's own case study) A correlational finding, not a tested-intervention effect size. No causal “if comune X complies, area falls by Y%” estimate exists in the literature for this specific mechanism.
Waste-burning enforcement (Ragusa fumarole pattern) Not applicable — this is not wildfire A different problem (illegal agricultural/greenhouse waste combustion) needing waste-management enforcement, already underway (Carabinieri 2026 operations). No wildfire-risk-reduction percentage applies.
Aerial suppression No positive reduction estimate to cite The case study's own finding: weak evidence relative to cost/prominence; availability collapses on peak simultaneous-demand days regardless of fleet size. Not recommended as the next investment.
Drone/mapping surveillance-for-attribution No positive reduction estimate to cite The case study's own finding: failed on its own terms (~€290k of drones, 3 perpetrators identified in 3 years). Not recommended.

No composite “Sicily burned area would fall by X%” number is offered by summing the rows above — they come from different methods (simulation, remote sensing, suppression-cost modeling), different places, and are not additive. That is a deliberate choice, not an omission.

10Night-detection methodology — is “night” real, and is it measured fairly?

A direct question deserved a direct, sourced answer, not a reassurance. Three things are checked here: whether “night” in this report means anything physically real, whether MODIS/VIIRS detect night and day fires on equal terms, and whether a cleaning choice already in the pipeline — never previously disclosed — moved any number in a convenient direction. It did move one number. Below is the exact size of that move, verified on a fresh, independent 203,046-detection re-pull of the full 2003–2026 Sicily archive (all sensors: MODIS, VIIRS Suomi-NPP, VIIRS NOAA-20, VIIRS NOAA-21) — not asserted, measured.

✅ The detection is thermal, not visual — night is not a blind spot, if anything the opposite
FIRMS active-fire detection has never depended on visible light. MODIS and VIIRS both fly mid-infrared (~4µm) and thermal-infrared (~11µm) channels and run a contextual thermal-anomaly algorithm that operates by the same mechanism day and night — that is how satellites see fires in the dark at all, not a workaround bolted onto a visual system. If anything, night detection is more sensitive: MODIS Collection 6.1's detection floor is 3.7 MW at nadir, clear-sky night, against a much higher effective daytime threshold; VIIRS's night floor is 0.5 MW, among the most sensitive fire-radiative-power detections in any operational product. Night background is cooler and less variable than day background (no solar heating), so a small or cool fire is easier to isolate thermally at night than the same fire against a sun-warmed daytime background. The day/night flag itself is FIRMS' standard field, assigned by solar zenith angle (>85° = night) — not by anything visual. Sources: Giglio et al. 2016 (MODIS C6 ATBD/User Guide); Schroeder et al. 2014 (VIIRS 375m ATBD).
⚠ A real, quantified caveat we found and are disclosing: the confidence filter inflates night fractions by ~4 points
This report — like most FIRMS-based work — drops “low confidence” detections before analysis (MODIS confidence < 30 dropped; VIIRS “low” dropped, “nominal”/“high” retained). That line was in the case study's methodology but never explained — and it isn't symmetric between day and night. Both the official VIIRS 375m ATBD and the MODIS Collection 6/6.1 User's Guide document that “low confidence” classification is driven substantially by a sun-glint rejection test — and sun glint cannot occur at night. Schroeder et al. (2014) additionally found “low confidence” pixels carry a much higher urban/industrial false-alarm rate (up to 40% over industrial parks in one region studied) than nominal/high pixels, so dropping them is a real, literature-grounded false-alarm control — not an arbitrary exclusion. But because sun glint is structurally daytime-only, dropping low-confidence detections removes real daytime noise while removing almost nothing at night, which mechanically inflates the measured night fraction. A recent independent preprint (Dhage, Oct 2025, not yet peer-reviewed) documented this globally for VIIRS: of 6.0M nighttime VIIRS detections worldwide in a one-year sample, precisely zero were “low confidence” (χ²=1,474,795, p<10⁻¹⁵).

We tested this directly on Sicily's own complete archive, not just the literature (203,046 detections, 2003–2026, all four sensors):
  • VIIRS: of 21,700 low-confidence detections in the full Sicily archive, 21,700 were daytime and exactly zero were nighttime — our own data reproduces the Dhage pattern exactly.
  • VIIRS night fraction: 38.13% unfiltered → 43.59% under the published nominal/high-only filter (+5.46 points).
  • MODIS night fraction: 14.83% unfiltered → 14.70% filtered (−0.13 points — negligible, as expected: this is a VIIRS-specific mechanism).
  • Combined, matching this report's exact published methodology: 34.72% unfiltered → 38.96% filtered (+4.24 percentage points).
  • The effect tracks satellite history exactly as the sun-glint mechanism predicts: −0.07 points in 2003–2011 (MODIS-only, no VIIRS yet in orbit) vs. +4.0 to +5.4 points in every era VIIRS is present (2012–2017, 2018–2024, 2025–2026). That is close to the cleanest possible confirmation that this is a real sensor-algorithm effect, not noise.
What this does and doesn't change
The population-wide night-fraction baseline used throughout this report as a reference point is inflated by roughly 4 percentage points by this filtering choice — read every “X% vs. population Y%” comparison in this report with that in mind. Large-margin claims are not overturned: the Priolo Gargallo industrial-source classification and the Ragusa fumarole finding both rest on gaps of 40–60+ points between the flagged location and any plausible baseline — a 4-point baseline shift changes the size of the gap, not its existence. The fumarole finding is independently corroborated by Carabinieri enforcement reporting (ground evidence, not solely a satellite artifact) and does not depend on this filter choice at all. Comparative claims are more robust than absolute ones: because the same filter applies uniformly across every comune and province, a location “elevated relative to the population baseline” stays elevated relative to that same (equally inflated) baseline. We attempted a direct spot-check of the specific published hotspot percentages (Priolo Gargallo, Acate, Vittoria) using a simple radius search on the fresh archive; the results did not match closely enough to treat as a correction — our quick radius-based check uses different inclusion criteria (a fixed radius across all years) than the original's precise recurring-grid-cell method, so the discrepancy is a methodology mismatch on our end, not evidence the original per-hotspot figures are wrong. We are not correcting those specific numbers; doing so properly would require re-running the original grid-cell clustering, which is named as follow-up work below, not claimed as done here.
✅ Update: the proper reproduction is done — headline hotspot claims independently confirmed
The radius-based spot-check above was superseded by a full, methodology-matched reproduction: the exact original pipeline (grid cell 0.0045° ≈ 500m, static-source filter, KD-tree event clustering eps=2.2km/1day, comune assignment, recurrence-hotspot scoring) was re-run end-to-end on the fresh, independently-pulled 203,046-detection archive.
  • Priolo Gargallo's flagged industrial cell: 83% night (this reproduction) vs. 82% published — independent confirmation, not a correction. Same coordinates (37.127°N, 15.199°E), same recurrence pattern (23× local-neighborhood excess, 10 distinct years).
  • Acate comune-wide: 42.2% night (vs. 41% published); Vittoria comune-wide: 48.4% (vs. 46% published) — both within reproduction noise of the original.
  • With the fuller satellite coverage (this re-pull includes VIIRS NOAA-20, which the original source list did not), the recurrence-hotspot scan surfaces 93 candidate grid cells (40 deviating from the population pattern) vs. 20 originally — more statistical power from more data, not a discrepancy. The additional candidates are individually smaller/newer and are catalogued in the underlying data rather than narrated case-by-case here.
This is the correction to the earlier version of this section, which incorrectly treated a crude radius-based approximation as if it were comparable to the original's precise method. It wasn't; the proper reproduction is, and it confirms the published figures closely.
✅ Independent geostationary cross-check, executed: the largest event in this report is confirmed by a second, unrelated satellite
A real cross-check against EUMETSAT SEVIRI geostationary thermal imagery (a completely different satellite, sensor, and processing pipeline than FIRMS) was carried out for two cases:
  • The July 2026 Alessandria della Rocca fire (FIRMS-measured peak 541.66 MW, 2026-07-18): the matching SEVIRI granule (18:57 UTC, same date) shows a +37.0°K brightness- temperature anomaly at the exact FIRMS coordinate, with a clean spatial hot-core-and-halo pattern in the surrounding pixels — an unambiguous, independent confirmation of a real, large fire, from a sensor and agency with no connection to NASA FIRMS.
  • The small industrial sources (Priolo Gargallo, San Filippo del Mela): no clear anomaly is resolved at SEVIRI's native ~3km resolution (deltas of +0.8°K and −0.1°K against local background, both consistent with noise). This is expected physics, not a contradiction: a ~1–2 MW point source occupies a small fraction of a 3km pixel, well below what a coarse geostationary imager can isolate against background — it is precisely why fine-resolution polar-orbiting sensors (MODIS/VIIRS, 1km/375m) are needed to catch this kind of source at all, and why a geostationary-only monitoring strategy would miss it entirely.
Scope, stated plainly: this is a targeted spot-check on two documented cases, not a continuous historical reanalysis of the full 2003–2026 archive (which would require retrieving and processing on the order of hundreds of thousands of ~120MB full-disk granules — a distinct, much larger undertaking). Within that scope, both results are real, and both are exactly what the underlying physics predicts.
What we did not do — named, not hidden
A continuous geostationary cross-check (EUMETSAT SEVIRI / MTG-FCI, 10–15 minute cadence, day and night, used operationally for live detection) was not performed for this historical 23-year analysis — that archive is orders of magnitude larger than the FIRMS polar-orbiter archive used here, and retrospectively pulling/reprocessing it for 2003–2026 is a separate, much larger undertaking than this audit. This is an open validation opportunity, not concluded either way. Separately, this audit discovered that the original firms_analyse.py module — the base loader every published root-cause script (sicily_events.py, sicily_static_filter.py, and others) imports — was never committed to this repository, only its downstream callers were. We reconstructed a best-effort equivalent matching the documented methodology exactly, clearly labeled as a reconstruction rather than a recovery of the byte-exact original, closing a real reproducibility gap this audit surfaced along the way.

Bottom line: night detection in this report is real, thermal, and — per the literature — if anything more sensitive than daytime detection, not less. One specific, previously undisclosed methodological choice does measurably inflate night fractions by a few percentage points, via a documented, physics-based mechanism (sun glint is day-only), not a discretionary one. We found it, quantified it on our own complete regional archive, and are disclosing and correcting the baseline for it here rather than leaving it implicit. It does not reverse any large-margin conclusion in this report; it does mean every percentage here should be read as accurate to within a few points, not exact to the decimal — which was already true of any satellite-derived count, and is now stated rather than assumed.

Methodology: FIRMS MODIS+VIIRS active-fire archive 2003–2026, Etna-excluded, physical-signature static-source-filtered (see §4), clustered into discrete events (≤2.2km / ≤1 day chaining, KD-tree join). 391 comuni / 9 provinces via OpenStreetMap (Overpass), events assigned to nearest comune centroid. Roads/settlements/landuse via OpenStreetMap, chunked per-province. Weather/rain-proxy via Open-Meteo ERA5 archive, per-province centroid. Municipality-level inferential stats gated at n≥30; below that, descriptive counts only. Random sample: fixed seed 20260723, reproducible. This supersedes the Agrigento-only regional breakdown published earlier in this session — the static-source correction applies retroactively to that build's Zone 0 (Porto Empedocle) numbers too.