Map urban heat islands anywhere in the world — using only free, open data.
🇮🇹 Versione italiana più sotto — Italian version below
This tool automatically produces Surface Urban Heat Island Intensity (SUHII) maps for any city — no satellite expertise required.
You type a city name → the tool does the rest → you get maps + report
It uses three free data sources — no accounts required except one free API key:
| Data | Source | Account? |
|---|---|---|
| 🛰️ Thermal satellite imagery | Landsat C2 L2 via Microsoft Planetary Computer | ✅ No |
| 🗺️ Land use & urban areas | OpenStreetMap via Overpass API | ✅ No |
| ⛰️ Elevation | SRTM GL1 DEM via OpenTopography |
LST ≠ air temperature. The tool measures Land Surface Temperature: how hot surfaces (asphalt, rooftops, soil) get as seen from space — not the air temperature you feel outside.
For each city, the tool saves these files to data/<city>/Output/:
| File | What it shows |
|---|---|
warm_<year>_LST_MEAN.tif |
Average surface temperature (°C) |
warm_<year>_thermal_anomaly.tif |
How much hotter urban is vs rural (°C) |
warm_<year>_SUHI.tif |
Heat island intensity index (0–1) |
warm_<year>_anomaly_classified.tif |
6-class severity map |
warm_<year>_priority_map.tif |
Where to intervene first (0–1) |
warm_<year>_distance_green_areas.tif |
Distance from green areas (m) |
warm_<year>_anomaly_classified.geojson |
GIS vector export |
warm_<year>_priority_map.geojson |
GIS vector export |
warm_<year>_city_stats.csv |
Summary statistics |
<city>_warm_<year>_report.html |
✨ Full interactive HTML report |
We would love to hear how you are using the workflow! Your contribution helps us improve the tools and enhance practical applications.
We are building SUHII_mapping as an open, useful tool that is truly rooted in the needs of the community.
That is why we have created a short form: filling it out helps us improve the code, understand how it is used and, above all, give a voice to those who participate.
Our goal is to create grassroots practices, a bridge between science and citizenship, where researchers, professionals, students, administrators and curious minds can contribute together to the public good.
At the same time, we are also developing a web platform to facilitate connections between users, offer more accessible tools and create a space for ongoing discussion.
Filling out the form means:
🛠️ telling us what works and what we can improve
🌍 contributing to an open and participatory process of knowledge
💬 helping us shape the space for dialogue we are creating
If you want to contribute to the project — with code, ideas, feedback or collaborations — you are welcome!
👉 Fill out the feedback form to share your experience. Your ideas matter!
If you wish, you can also tell us your user story and the impact of your results. Thank you for contributing.
- Docker Desktop — that's it. (After the installation, remember to launch it!)
- A free OpenTopography API key (takes 2 minutes to get).
Option A — Download ZIP (easiest, no Git needed)
- Go to github.com/Officina-SCIFT/SUHII_mapping_tool
- Click the green Code button → Download ZIP
- Extract the ZIP somewhere easy to find (e.g. your Desktop or Documents)
Option B — Git clone (if you have Git installed)
Open a terminal and run:
git clone https://github.com/Officina-SCIFT/SUHII_mapping_tool.git💡 How to open a terminal on your system:
- Windows → press
Win + R, typepowershell, press Enter- Mac → press
Cmd + Space, typeTerminal, press Enter- Linux → press
Ctrl + Alt + T
- Go to opentopography.org
- Register (free, takes 2 minutes)
- Copy the API key from your profile
Navigate to the project folder, in the folder config.
Now open config/credentials.yml with any text editor (Notepad, TextEdit, VS Code…)
and replace the placeholder with your key (inside the quotation marks, do not remove them):
opentopography:
api_key: "paste-your-key-here"Open a terminal inside the project folder.
Easiest way — no typing required:
- Windows: open the project folder in File Explorer, right-click on empty space, and choose "Open in Terminal".
- Mac: open the project folder in Finder, right-click on empty space, and choose "New Terminal at Folder". (If you don't see this option, enable it once in System Settings → Keyboard → Keyboard Shortcuts → Services.)
If that option is not available:
-
Open the project folder — the same one you downloaded/extracted in Step 1. It could be in
Desktop,Downloads,Documents, or anywhere else you chose. -
Copy its full path:
- Windows: click once in the address bar at the top of File Explorer (it turns into editable text showing the full path) and copy it.
- Mac: drag the folder icon directly into the terminal window — the path is typed in automatically.
-
In the terminal, type
cd(with a space after it), paste the path, and press Enter.Example, in my PC is (your own path will be different, depending on where do you have your unzipped folder):
cd C:\Users\chiara\Downloads\SUHII_mapping_tool
Then run:
docker-compose up --build⏳ The first build takes 10–15 minutes — this happens only once. Docker is downloading R, Quarto, and all required packages (~1 GB). You will see a long stream of installation messages: this is normal, not an error. Do not close the terminal.
All subsequent starts take under 30 seconds.
When you see this line in the terminal, the app is ready:
suhii_app | [INFO] Starting listener on 0.0.0.0:3838
or also
[WARN] shiny-server - Running as root unnecessarily is a security risk! You could be running more securely as non-root.
⏳ The first build takes 10–15 minutes — this happens only once. Docker is downloading R, Quarto, and all required packages (~1 GB). You will see a long stream of installation messages: this is normal, not an error. Do not close the terminal.
All subsequent starts take under 30 seconds.
When you see this line in the terminal, the app is ready:
suhii_app | [INFO] Starting listener on 0.0.0.0:3838
- Type a city name (use the name as it appears in OpenStreetMap)
→ For small towns, add the province:
Bologna - Click Run analysis
- Watch the progress log on the left sidebar
☕ Go grab a coffee — this takes a few minutes.
A typical analysis runs in 5–20 minutes depending on city size. This is not a page loading: the tool is downloading satellite imagery, processing it, and computing thermal maps from scratch. The progress log keeps you updated while it works. Large cities (e.g. Moscow) can take up to ~2 hours.
| Tab | What's there |
|---|---|
| Maps | Four interactive Leaflet maps |
| Charts | SUHII class distribution, urban vs rural LST |
| Report | Full illustrated HTML report |
| Downloads | Download buttons for every output file |
All files are also saved locally in the data/ folder.
Go back to the terminal where the app is running and press Ctrl + C to stop it.
Then run:
Windows (PowerShell)
docker-compose downMac / Linux (Terminal)
docker-compose downYour data in data/ is preserved.
"Cannot geocode city"
→ The city name must match its OpenStreetMap entry exactly.
Add the province for small towns: Bologna.
Check at nominatim.openstreetmap.org.
"OpenTopography API key missing"
→ Check that config/credentials.yml exists and contains your key — not the placeholder text.
"No Landsat scenes found" → The warm-season window for this city may lack enough cloud-free scenes. This is normal for cities with persistent summer cloud cover. The tool only uses scenes with cloud cover ≤ 30%.
App does not start
→ Make sure Docker Desktop is running.
Try docker-compose down, then docker-compose up --build.
┌─────────────────────────────────────────────────────────────────┐
│ 0) User input → city name + local folder path │
├─────────────────────────────────────────────────────────────────┤
│ 1) Preliminary → load libraries, set bounding box, │
│ operations detect warm season via Köppen-Geiger │
├─────────────────────────────────────────────────────────────────┤
│ 2) Data download → Landsat 8-9 (ST + QA bands) │
│ Digital Elevation Model (SRTM) │
│ Urban & rural areas (OpenStreetMap) │
├─────────────────────────────────────────────────────────────────┤
│ 3) Pre-processing → cloud masking, offset & scaling, │
│ LST conversion (°C), season mean │
├─────────────────────────────────────────────────────────────────┤
│ 4) Thermal → LST anomaly per 100 m elevation band │
│ anomaly (urban LST − rural LST reference) │
├─────────────────────────────────────────────────────────────────┤
│ 5) SUHII index → normalized index (0–1) │
│ + green access distance from green urban areas map │
└─────────────────────────────────────────────────────────────────┘
The tool segments the city into 100 m elevation bands and computes thermal anomalies within each band independently. This corrects for altitude differences between urban and rural areas, making results reliable for hilly and mountainous cities too.
| Class | LST anomaly vs rural |
|---|---|
| 🔵 Cool island | < 0 °C |
| ⚪ Neutral | 0–1 °C |
| 🟡 Weak | 1–2.5 °C |
| 🟠 Moderate | 2.5–4.5 °C |
| 🔴 Strong | 4.5–6.5 °C |
| 🟣 Extreme | > 6.5 °C |
Global average daytime SUHII across 419 cities: 1.5 ± 1.2 °C (Peng et al. 2012). Rule of thumb: LST anomaly ÷ 2 ≈ air temperature anomaly (Voogt & Oke 2003).
Priority = 0.50 × norm(thermal anomaly)
+ 0.30 × norm(green access deficit)
+ 0.20 × urban mask
Weights follow Maragkogiannis et al. (2024) and Morabito et al. (2015, Sci Rep).
Adjustable in R/functions/fn_outputs.R.
The green area distance layer implements the 300 m accessibility component of the 3-30-300 rule (Konijnendijk 2022, J. For. Res. 34:821–830).
Tested on Windows 11 Pro — 32 GB RAM, AMD Ryzen 7 2700X 3.70 GHz — across 40 cities worldwide.
| Metric | Average | Range |
|---|---|---|
| ⏱️ Total processing time | ~11 min | 4 min – 2 h |
| 💾 RAM usage | ~17 GB | up to ~27 GB |
| 🗺️ Area processed | ~2 160 km² | varies widely |
Most of the time is spent on downloads, not computation:
OSM download [================ ] ~4.6 min
Landsat download [================ ] ~4.6 min
DEM download [= ] ~0.3 min
LST processing [== ] ~0.5 min
SUHII calculation [==== ] ~1.3 min
Other [ ] < 0.1 min
Large cities with extensive OSM data (e.g. Moscow) can reach ~120 min. Download time is not simply proportional to city area — it depends on how OpenStreetMap maps the area (aggregated polygons vs individual building footprints).
All outputs are based on the associated peer-reviewed publication. Any use — for analysis, modelling, visualisation, or integration into other projects — must cite the original paper:
Richiardi, C., Caroscio, L., Crescini, E., De Marchi, M., De Pieri, G. M., Ceresi, C., Baldo, F., Francobaldi, M., & Pappalardo, S. E. (2025). A global downstream approach to mapping surface urban heat islands using open data and collaborative technology. Sustainable Geosciences: People, Planet and Prosperity, 100006. https://doi.org/10.1016/j.susgeo.2025.100006
This tool was born within SCIFT — Laboratory of Science, Climactivism, Imagination, Fostering Knowledge and Technology — a collaborative space between academic research and social and territorial activism, based in Bologna (Vicolo Bolognetti 2) with a global vocation.
SCIFT was founded in 2024, emerging from the meeting of a group of PhD students and citizens at the Reclaim The Tech festival in Bologna — a festival dedicated to the conscious reappropriation of technology. From that encounter came the idea of a participatory initiative to tackle the growing problem of Urban Heat Islands through a digital platform based on open data, enabling citizens, researchers, planners, and administrators to work together to monitor and respond to UHI effects.
The name is not just an acronym — it reflects a precise vision:
- Science — open, democratic, and accessible, oriented toward social and climate justice
- Climactivism — collective political action that goes beyond the narrative of the climate crisis
- Imagination — a central political practice for building alternative futures
- Fostering Knowledge — horizontal, situated education as a common good
- Technology — critically reappropriated, not delegated blindly to "technological progress"
Released under GNU General Public License v3.0 (GPL 3.0). Aligns with SDG 11 (Sustainable Cities) and SDG 17 (Partnerships for the Goals).
All code, data processing steps, and documentation are openly shared to facilitate collaboration across research institutions, policy sectors, and geographic regions.
We would love to hear how you are using this tool.
Want to contribute with code, ideas, or data? Open an issue or submit a pull request.
Developed by SCIFT — Laboratory of Science, Climactivism, Imagination, Fostering Knowledge and Technology.
🌐 municipiozero.it/scift · 📷 @scift_officina · ✉️ scift@gmail.com
Mappa le isole di calore urbane in qualsiasi città del mondo — con soli dati aperti e gratuiti.
(Versione italiana)
Produce automaticamente mappe di Surface Urban Heat Island Intensity (SUHII) per qualsiasi città — senza bisogno di competenze satellitari.
Scrivi il nome di una città → lo strumento fa tutto → ottieni mappe + report
Usa tre fonti di dati gratuite — nessun account necessario tranne una chiave API gratuita:
| Dato | Fonte | Account? |
|---|---|---|
| 🛰️ Immagini termiche satellitari | Landsat C2 L2 via Microsoft Planetary Computer | ✅ No |
| 🗺️ Uso del suolo e aree urbane | OpenStreetMap via Overpass API | ✅ No |
| ⛰️ Quota altimetrica | SRTM GL1 DEM via OpenTopography |
LST ≠ temperatura dell'aria. Lo strumento misura la Land Surface Temperature: quanto si scaldano le superfici (asfalto, tetti, suolo) viste dallo spazio — non la temperatura percepita all'esterno.
Per ogni città, i file vengono salvati in data/<città>/Output/:
| File | Cosa mostra |
|---|---|
warm_<anno>_LST_MEAN.tif |
Temperatura superficiale media (°C) |
warm_<anno>_thermal_anomaly.tif |
Quanto l'urbano è più caldo del rurale (°C) |
warm_<anno>_SUHI.tif |
Indice di intensità dell'isola di calore (0–1) |
warm_<anno>_anomaly_classified.tif |
Mappa di severità a 6 classi |
warm_<anno>_priority_map.tif |
Dove intervenire prima (0–1) |
warm_<anno>_distance_green_areas.tif |
Distanza dalle aree verdi (m) |
warm_<anno>_anomaly_classified.geojson |
Export vettoriale GIS |
warm_<anno>_priority_map.geojson |
Export vettoriale GIS |
warm_<anno>_city_stats.csv |
Statistiche di sintesi |
<città>_warm_<anno>_report.html |
✨ Report HTML interattivo completo |
Per domande o contributi, apri una issue, invia una pull request o contattaci via mail.
Ci piacerebbe sapere come utilizzi il flusso di lavoro. Il tuo contributo ci aiuta a migliorarlo e a metterne in evidenza le applicazioni nel mondo reale.
👉 Dedica qualche minuto alla compilazione del nostro modulo di feedback utente.
Se lo desideri, puoi anche condividere la tua esperienza sull'utilizzo del flusso di lavoro e sull'impatto dei risultati ottenuti.
Grazie per il tuo contributo nel rendere questo progetto più aperto, utile e collaborativo! 🌍
- Docker Desktop — tutto qui. Nessun R, nessun Python, nessun pacchetto da installare manualmente. (Dopo l'installazione, avvialo!).
- Una chiave API OpenTopography gratuita (ci vogliono 2 minuti).
Opzione A — Scarica lo ZIP (più semplice, non serve Git)
- Vai su github.com/Officina-SCIFT/SUHII_mapping_tool
- Clicca il pulsante verde Code → Download ZIP
- Estrai lo ZIP in una posizione facile da trovare (es. Desktop o Documenti)
Opzione B — Git clone (se hai Git installato)
Apri un terminale e lancia:
git clone https://github.com/Officina-SCIFT/SUHII_mapping_tool.git💡 Come aprire un terminale sul tuo sistema:
- Windows → premi
Win + R, scrivipowershell, premi Invio- Mac → premi
Cmd + Spazio, scriviTerminale, premi Invio- Linux → premi
Ctrl + Alt + T
- Vai su opentopography.org/developers
- Registrati (gratuito, 2 minuti)
- Copia la chiave API dalla pagina del tuo profilo
Accedi alla cartella del progetto, all'interno della cartella config.
Ora apri il file config/credentials.yml con un editor di testo a tua scelta (Blocco note, TextEdit, VS Code…)
e sostituisci il segnaposto con la tua chiave (all'interno delle virgolette, non rimuoverle):
apri config/credentials.yml con un qualsiasi editor di testo (Blocco Note, TextEdit, VS Code…)
e sostituisci il placeholder con la tua chiave:
opentopography:
api_key: "incolla-la-tua-chiave-qui"Apri un terminale dentro la cartella del progetto e lancia:
Windows (PowerShell)
cd C:\Users\TuoNome\Desktop\SUHII_mapping_tool
docker-compose up --buildMac / Linux (Terminale)
cd ~/Desktop/SUHII_mapping_tool
docker-compose up --build💡 Trucco — apri il terminale direttamente nella cartella: In Esplora File (Windows) o Finder (Mac), apri la cartella del progetto, poi fai clic destro su uno spazio vuoto e scegli:
- Windows → Apri in Terminale (o Apri finestra PowerShell qui)
- Mac → Nuovo Terminale nella Cartella (abilitalo in Impostazioni di Sistema → Tastiera → Abbreviazioni → Servizi)
⏳ Il primo avvio richiede 10–15 minuti — succede solo la prima volta. Docker sta scaricando R, Quarto e tutti i pacchetti necessari (~1 GB). Nel terminale scorre un lungo flusso di messaggi di installazione: è normale, non è un errore. Non chiudere il terminale.
Gli avvii successivi richiedono meno di 30 secondi.
Quando vedi questa riga nel terminale, l'app è pronta:
suhii_app | [INFO] Starting listener on 0.0.0.0:3838
- Scrivi il nome della città (usa il nome come appare in OpenStreetMap)
→ Per comuni piccoli aggiungi la provincia:
Bologna - Clicca Run analysis
- Segui il log di avanzamento nella barra laterale sinistra
☕ Vai a farti un caffè — ci vogliono alcuni minuti.
Un'analisi tipica richiede 5–20 minuti a seconda della dimensione della città. Non è una pagina che si carica: lo strumento sta scaricando immagini satellitari, elaborandole e calcolando le mappe termiche da zero. Il log di avanzamento ti aggiorna in tempo reale. Le città più grandi (es. Mosca) possono richiedere fino a ~2 ore.
| Scheda | Cosa trovi |
|---|---|
| Maps | Quattro mappe Leaflet interattive |
| Charts | Distribuzione classi SUHII, confronto urbano/rurale |
| Report | Report HTML illustrato completo |
| Downloads | Pulsanti di download per ogni file di output |
Tutti i file sono salvati anche nella cartella data/ sul tuo computer.
Torna al terminale dove l'app è in esecuzione e premi Ctrl + C per interromperla.
Poi esegui:
Windows (PowerShell)
docker-compose downMac / Linux (Terminale)
docker-compose downI dati nella cartella data/ vengono conservati.
"Cannot geocode city"
→ Il nome della città deve corrispondere esattamente alla voce in OpenStreetMap.
Per comuni piccoli aggiungi la provincia: Bologna.
Verifica su nominatim.openstreetmap.org.
"OpenTopography API key missing"
→ Controlla che il file config/credentials.yml esista e contenga la tua chiave — non il testo placeholder.
"No Landsat scenes found" → La finestra stagionale calda di questa città potrebbe non avere abbastanza scene prive di nuvole. È normale per città con copertura nuvolosa persistente in estate. Lo strumento usa solo scene con cloud cover ≤ 30%.
L'app non si avvia
→ Verifica che Docker Desktop sia in esecuzione.
Prova docker-compose down e poi docker-compose up --build.
┌─────────────────────────────────────────────────────────────────┐
│ 0) Input utente → nome città + cartella di lavoro │
├─────────────────────────────────────────────────────────────────┤
│ 1) Operazioni → carica librerie, bounding box, │
│ preliminari rileva stagione calda via Köppen-Geiger │
├─────────────────────────────────────────────────────────────────┤
│ 2) Download dati → Landsat 8-9 (bande ST + QA) │
│ Modello digitale del terreno (SRTM) │
│ Aree urbane e rurali (OpenStreetMap) │
├─────────────────────────────────────────────────────────────────┤
│ 3) Pre-processing → mascheratura nuvole, scaling, │
│ conversione LST (°C), media stagionale │
├─────────────────────────────────────────────────────────────────┤
│ 4) Anomalia → LST anomaly per fascia altimetrica 100 m │
│ termica (LST urbana − riferimento rurale) │
├─────────────────────────────────────────────────────────────────┤
│ 5) Indice SUHII → indice normalizzato (0–1) │
│ + verde mappa distanza dalle aree verdi │
└─────────────────────────────────────────────────────────────────┘
Lo strumento divide la città in fasce altimetriche da 100 m e calcola le anomalie termiche indipendentemente per ciascuna fascia. Questo corregge le differenze di quota tra aree urbane e rurali, rendendo i risultati affidabili anche per città collinari e montane.
| Classe | Anomalia LST rispetto al rurale |
|---|---|
| 🔵 Isola fresca | < 0 °C |
| ⚪ Neutrale | 0–1 °C |
| 🟡 Debole | 1–2,5 °C |
| 🟠 Moderata | 2,5–4,5 °C |
| 🔴 Forte | 4,5–6,5 °C |
| 🟣 Estrema | > 6,5 °C |
Media globale diurna su 419 città: 1,5 ± 1,2 °C (Peng et al. 2012). Regola empirica: anomalia LST ÷ 2 ≈ anomalia temperatura dell'aria (Voogt & Oke 2003).
Priorità = 0,50 × norm(anomalia termica)
+ 0,30 × norm(deficit accesso al verde)
+ 0,20 × maschera urbana
Pesi da Maragkogiannis et al. (2024) e Morabito et al. (2015, Sci Rep).
Modificabili in R/functions/fn_outputs.R.
Lo strato di distanza dal verde implementa la componente dei 300 m di accessibilità della regola 3-30-300 (Konijnendijk 2022, J. For. Res. 34:821–830).
Testato su Windows 11 Pro — 32 GB RAM, AMD Ryzen 7 2700X 3,70 GHz — su 40 città nel mondo.
| Metrica | Media | Range |
|---|---|---|
| ⏱️ Tempo totale di elaborazione | ~11 min | 4 min – 2 h |
| 💾 Utilizzo RAM | ~17 GB | fino a ~27 GB |
| 🗺️ Area processata | ~2 160 km² | molto variabile |
La maggior parte del tempo è impiegata nei download, non nel calcolo:
Download OSM [================ ] ~4,6 min
Download Landsat [================ ] ~4,6 min
Download DEM [= ] ~0,3 min
Elaborazione LST [== ] ~0,5 min
Calcolo SUHII [==== ] ~1,3 min
Altro [ ] < 0,1 min
Le città più grandi con molti dati OSM (es. Mosca) possono raggiungere ~120 min. Il tempo di download non è semplicemente proporzionale all'area — dipende da come OpenStreetMap mappa la zona (poligoni aggregati vs singoli edifici).
Tutti gli output si basano sulla pubblicazione scientifica associata. Qualsiasi utilizzo — per analisi, modellazioni, visualizzazioni o integrazione in altri progetti — deve includere la citazione del lavoro originale:
Richiardi, C., Caroscio, L., Crescini, E., De Marchi, M., De Pieri, G. M., Ceresi, C., Baldo, F., Francobaldi, M., & Pappalardo, S. E. (2025). A global downstream approach to mapping surface urban heat islands using open data and collaborative technology. Sustainable Geosciences: People, Planet and Prosperity, 100006. https://doi.org/10.1016/j.susgeo.2025.100006
Questo strumento è nato all'interno di SCIFT — Officina di Scienza, Climattivismo, Immaginazione, Formazione e Tecnologia — uno spazio collaborativo tra ricerca accademica e attivismo sociale e territoriale, con sede a Bologna (Vicolo Bolognetti 2) e vocazione globale.
SCIFT è nata nel 2024, dall'incontro di un gruppo di dottorande e dottorandi e cittadine e cittadini al festival Reclaim The Tech di Bologna — un festival dedicato alla riappropriazione consapevole della tecnologia. Da quell'incontro è emersa l'idea di un'iniziativa partecipativa per affrontare il crescente problema delle isole di calore urbane attraverso una piattaforma digitale basata su dati aperti, che permette a cittadine/i, ricercatrici/ori, pianificatrici/ori e amministratrici/ori di collaborare per monitorare e rispondere agli effetti delle UHI.
Il nome non è solo un acronimo — riflette una visione precisa:
- Scienza — aperta, democratica e accessibile, orientata alla giustizia sociale e climatica
- Climattivismo — azione politica collettiva che va oltre la narrazione della crisi climatica
- Immaginazione — pratica politica centrale per costruire futuri alternativi
- Formazione — educazione orizzontale e situata come bene comune
- Tecnologia — riappropriata criticamente, non delegata ciecamente al "progresso tecnologico"
Rilasciato sotto licenza GNU General Public License v3.0 (GPL 3.0). Si allinea con SDG 11 (Città sostenibili) e SDG 17 (Partnership per gli obiettivi).
Tutto il codice, i passaggi di elaborazione e la documentazione sono condivisi pubblicamente per facilitare la collaborazione tra istituzioni di ricerca, settori politici e regioni geografiche.
Ci piacerebbe sapere come stai utilizzando questo strumento.
👉 Compila il modulo di feedback
Vuoi contribuire con codice, idee o dati? Apri una issue o invia una pull request.
Sviluppato da SCIFT — Officina di Scienza, Climattivismo, Immaginazione, Formazione e Tecnologia.
🌐 municipiozero.it/scift · 📷 @scift_officina · ✉️ scift@gmail.com
