Metodologia

Obiettivo dello studio

Valutare l'accessibilità del verde urbano a Palermo applicando il framework 3-30-300 (Konijnendijk, 2023) attraverso dataset aperti e metodologie replicabili in altri contesti urbani.

Nota metodologica: L'ordine di analisi inverte il framework originale, partendo dalla regola dei 300 metri (accessibilità del verde urbano) come indicatore prioritario di equità urbana.

1. Mappatura degli spazi verdi pubblici

Per mappare gli spazi verdi urbani accessibili sono stati utilizzati due dataset complementari: OpenStreetMap (dati collaborativi aggiornati dalla community) e Copernicus Urban Atlas (dati satellitari ufficiali dell'Agenzia Spaziale Europea). Entrambi i dataset sono stati filtrati per includere solo il verde pubblico accessibile, escludendo spazi privati e impianti sportivi.

1.1 Dataset OpenStreetMap

Fonte: OpenStreetMap

Tag selezionati:

Categoria A - Parchi e giardini:

Categoria B - Aree ricreative:

Categorie escluse:

Processing:

1. Estrazione dati con Overpass Turbo

Overpass Turbo è uno strumento web per interrogare il database OpenStreetMap. La seguente query estrae tutti gli spazi verdi pubblici di Palermo secondo i criteri definiti:

[out:json][timeout:60];
{{geocodeArea:Palermo}}->.searchArea;

// CATEGORY A - Parks & Gardens
(  
  way["leisure"="park"]["access"!="private"]["access"!="residents"](area.searchArea);
  relation["leisure"="park"]["access"!="private"]["access"!="residents"](area.searchArea);  
  way["leisure"="garden"]["garden:type"!="roof_garden"]["access"!="private"]
     ["access"!="residents"]["operator"!="condominium"](area.searchArea);
  relation["leisure"="garden"]["garden:type"!="roof_garden"]["access"!="private"]
     ["access"!="residents"](area.searchArea);
)->.catA;

// CATEGORY B - Recreation areas
(
  way["landuse"="recreation_ground"]["access"!="private"](area.searchArea);
  way["landuse"="village_green"]["access"!="private"](area.searchArea);
  way["leisure"="playground"]["access"!="private"](area.searchArea);
  way["leisure"="dog_park"]["access"!="private"](area.searchArea);
  way["leisure"="fitness_station"]["access"!="private"](area.searchArea);
  relation["landuse"="recreation_ground"]["access"!="private"](area.searchArea);
)->.catB;

(.catA; .catB;);
out geom;
>;
out skel qt;

Risultato estrazione: 479 spazi, superficie 4,51 km²

2. Filtraggio dimensionale

Sono stati esclusi gli spazi con area inferiore a 2.000 m² per rimuovere aiuole, verde ornamentale e piccole aree non fruibili.

Risultati:

1.2 Dataset Copernicus Urban Atlas 2021

Fonte: Copernicus Urban Atlas - FUA IT005L3 (Palermo)

Categoria selezionata:

Categorie escluse:

Processing:

  1. Download: FlatGeobuf da Copernicus Land Monitoring Service
  2. Conversione: FlatGeobuf → GeoJSON (via NeatoGeo)
  3. Filtraggio dimensionale: area ≥ 2.000 m² (184 → 181 spazi)
  4. Filtraggio geografico: solo territorio comunale (181 → 129 spazi)

Risultati:

1.3 Categorizzazione dimensionale

Entrambi i dataset sono stati categorizzati secondo cinque classi di superficie per valutare la tipologia degli spazi disponibili:

Categoria Soglia OSM Copernicus
Parco molto grande > 300.000 m² 1 (1,91 km²) 1 (0,35 km²)
Grande parco 100.000-300.000 m² 3 (0,47 km²) 8 (1,31 km²)
Parco di quartiere 30.000-100.000 m² 19 (1,19 km²) 14 (0,79 km²)
Giardino 10.000-30.000 m² 27 (0,42 km²) 34 (0,53 km²)
Piccolo spazio verde < 10.000 m² 68 (0,30 km²) 72 (0,38 km²)
Totale 118 (4,30 km²) 129 (3,36 km²)

2. Distribuzione della popolazione

Per calcolare quanti cittadini vivono entro 300 metri da uno spazio verde è necessario conoscere dove risiede la popolazione. Sono stati utilizzati i dati ISTAT sulle sezioni di censimento (l'unità territoriale comunale più piccola) incrociati con i dati demografici del Comune di Palermo.

Fonti:

Processing:

I dati ISTAT coprono l'intera Sicilia. Per estrarre solo le sezioni di Palermo è stato utilizzato il servizio gratuito MapShaper con il seguente filtro:

# Filtraggio sezioni ISTAT per Palermo
filter 'PRO_COM == "082053"'

Risultati:

3. Accessibilità degli spazi verdi (regola dei 300 m)

La regola dei 300 metri stabilisce che ogni persona dovrebbe avere accesso a uno spazio verde di qualità entro 300 metri da casa. Per verificare questa condizione sono stati combinati i dati sugli spazi verdi (capitolo 1) con la distribuzione della popolazione (capitolo 2).

3.1 Copertura cittadina

L'algoritmo, basato sul metodo dell'interpolazione ponderata per area (Area-Weighted Interpolation), calcola quanta popolazione risiede entro 300 metri dagli spazi verdi creando dei buffer circolari attorno a ciascuno spazio e calcolando l'intersezione con le sezioni di censimento. Per ogni sezione viene stimata la frazione di popolazione coperta in base alla frazione di area intersecata, assumendo distribuzione uniforme della popolazione all'interno della sezione.

Algoritmo:

import geopandas as gpd
from shapely.ops import unary_union

# 1. Buffer 300m attorno agli spazi verdi
buffers = spazi_verdi.buffer(300)
area_copertura = unary_union(buffers)

# 2. Calcolo per sezione
popolazione_coperta = 0
for idx, sezione in sezioni.iterrows():
    intersezione = sezione.geometry.intersection(area_copertura)
    frazione_coperta = intersezione.area / sezione.geometry.area
    pop_coperta = sezione['popolazione'] * frazione_coperta
    popolazione_coperta += pop_coperta

# 3. Percentuale
percentuale = (popolazione_coperta / popolazione_totale) * 100
Assunzioni:
  • Popolazione uniformemente distribuita nelle sezioni
  • Distanza euclidea (linea d'aria, senza considerare barriere fisiche o rete stradale)

Risultati:

Dataset Copertura Popolazione coperta Non coperta
OpenStreetMap 38,76% 246.293 abitanti 389.146 abitanti
Copernicus 48,38% 307.411 abitanti 328.028 abitanti

3.2 Copertura per quartiere

Il calcolo per quartiere riutilizza la stessa superficie di accessibilità cittadina (i buffer di tutti gli spazi verdi, uniti in un'unica geometria prima di qualsiasi ripartizione, in modo da non contare due volte la stessa sezione se ricade nel raggio di più spazi verdi). Ogni sezione di censimento viene assegnata al quartiere che ne contiene il centroide; la copertura di ciascun quartiere è poi calcolata aggregando la popolazione coperta e quella totale delle sole sezioni assegnate a quel quartiere.

3.3 Valutazione puntuale

L'utente inserisce il proprio indirizzo o condivide la propria posizione. Il sistema calcola la distanza minima dai bordi esterni degli spazi verdi e conta quanti spazi sono entro 300 metri. Se c'è almeno uno spazio, viene mostrato il nome, l'area e la distanza (feedback positivo). Se ci sono più spazi, viene mostrato il più grande con le stesse informazioni viste in precedenza. Se non ci sono spazi entro 300 metri, viene comunque indicata la distanza da quello più vicino (feedback negativo).

Input utente:

Calcolo distanza:

from shapely.geometry import Point

punto_utente = Point(lon, lat)
distanza_minima = min([
    punto_utente.distance(spazio.boundary) 
    for spazio in spazi_verdi
])

Output:

4. Copertura arborea (regola del 30%)

La regola del 30% stabilisce che almeno il 30% della superficie urbana dovrebbe essere coperta da chiome degli alberi (tree canopy) per garantire benefici ambientali e di salute pubblica ottimali. Il calcolo si basa su immagini satellitari ad alta risoluzione.

Fonte: Copernicus Tree Cover Density 2023
Risoluzione: 10m raster
Range: 0-100% per pixel

Calcolo città/quartiere:

import rasterio
import numpy as np

with rasterio.open('tcd_2023.tif') as src:
    data = src.read(1)
    mask = rasterio.features.geometry_mask(
        [area_interesse], 
        transform=src.transform, 
        invert=True, 
        out_shape=data.shape
    )
    copertura_media = np.mean(data[mask])

Questo calcolo viene eseguito separatamente per ciascuno dei 25 quartieri. Il dato cittadino non è una nuova mascheratura sull'intero territorio comunale, ma una media dei 25 valori di quartiere pesata per la superficie di ciascun quartiere, in modo che i quartieri più estesi contribuiscano proporzionalmente di più al risultato cittadino:

copertura_cittadina = sum(copertura_quartiere[i] * area_quartiere[i] for i in quartieri) / sum(area_quartiere)

Metriche derivate:

Per ogni quartiere viene calcolato il deficit arboreo (distanza dall'obiettivo 30%) e il numero stimato di alberi da piantare per raggiungerlo, assumendo una chioma media per albero maturo di 35 m²:

deficit_pct = 30 - copertura_media
area_da_coprire = area_quartiere * (deficit_pct / 100)
alberi_necessari = area_da_coprire / 35  # chioma 35 m²

Risultati:

5. Alberi visibili dalla finestra (regola del 3)

La regola del 3 stabilisce che chiunque dovrebbe poter vedere almeno 3 alberi dalla propria casa. Non esistendo dataset affidabili su questo aspetto, agli utenti è stato chiesto di contare gli alberi dalla propria finestra tramite una semplice interfaccia web.

Stack tecnico:

Metriche calcolate:

{
  total_responses: n,
  average_trees: sum(counts) / n,
  pct_meeting_rule: (count >= 3) / n * 100
}

6. Interazione utente e call to action

6.1 Sezione 300 metri (Accessibilità del verde urbano)

CTA primaria: "Inserisci il tuo indirizzo e scopri se hai accesso al verde urbano"

Funzionalità:

CTA secondaria: "Condividi i tuoi risultati"

6.2 Sezione 30% (Copertura arborea)

Visualizzazione: Analisi sulla copertura del tuo quartiere

Funzionalità:

CTA: "Contribuisci a piantare più alberi nella tua città" → Metropolitree

6.3 Sezione 3 (Alberi in visibilità)

CTA primaria: Inserimento del numero di alberi visibili dalla propria finestra

Funzionalità:

CTA secondaria: "Chiedi al Comune di Palermo di piantare più alberi" → invio email

7. Stack tecnologico

Data processing:

Frontend:

Formato dati:

8. Limitazioni

Dataset:

Calcoli:

9. Replicabilità

Per applicare la metodologia ad un'altra città è necessario seguire questi passaggi:

  1. Spazi verdi OpenStreetMap: Sostituire {{geocodeArea:Palermo}} nella query Overpass Turbo con il nome della città di interesse
  2. Spazi verdi Copernicus: Scaricare il dataset Urban Atlas 2021 relativo alla FUA (Functional Urban Area) della città dal portale Copernicus
  3. Copertura arborea: Scaricare il raster Tree Cover Density 2023 per l'area di interesse dal portale Copernicus
  4. Dati popolazione: Individuare il sistema di unità territoriali censuarie del paese (es. ISTAT per l'Italia) e scaricare:
    • Geometrie delle sezioni/unità minime territoriali
    • Dati demografici per sezione
  5. Confini quartieri: Definire i confini delle unità amministrative locali (quartieri, municipalità, distretti) tramite fonti ufficiali o community mapping (uMap, OpenStreetMap)
  6. Esecuzione script Python: Adattare i codici forniti utilizzando le librerie indicate nella sezione Stack Tecnologico
Codice sorgente: Tutto il codice di processing e l'applicazione web sono disponibili su GitHub con licenza MIT open source.

Riferimenti

← Torna alla pagina principale