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.
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).
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.
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.
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."
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.
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.
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.
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.
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:
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:
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.
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.
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):
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.
§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 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.
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.
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-fraction | Coastal dist. → harvest-concentration | Coastal dist. → events/1,000 | Income → 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:
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.
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.
| Intervention | Magnitude, with source | Caveat |
|---|---|---|
| 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.
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.
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.