noise-barrier-calc
Calcolatore di attenuazione barriere acustiche: ISO 9613-2 §7.4 + Maekawa selezionabili, per banda di ottava. Tool live a /tools/calcolo-barriere/.
Codice su GitHub ↗noise-barrier-calc è uno strumento dimostrativo per la verifica di una barriera acustica direttamente nel browser. Sorgente lineare/areale/puntuale, barriera definita come polilinea con altezza uniforme, griglia di ricevitori più fino a 5 ricevitori manuali: il tool calcola la perdita di inserzione per banda di ottava applicando la diffrazione ISO 9613-2:2024 §7.4 (edizione vigente, implementata; la 1996 è disponibile come modalità di confronto) o Maekawa, condividendo il motore fisico con il tool gemello acmap. Status attuale: v0.9.3 working — tool funzionante disponibile su /tools/calcolo-barriere/. Questa pagina sintetizza il README e documenta metodo, assunzioni e lettura dei risultati; il riferimento autoritativo del codice resta GitHub.
Stato e roadmap
Il tool è in stato v0.9.3 working (aggiornamento 25 agosto 2026): il repo standalone e il tool web condividono lo stesso motore, generato dai sorgenti TypeScript del sito e verificato da un presidio numerico che congela 64 valori di riferimento. Disponibile come tool web eseguibile su /tools/calcolo-barriere/, oltre che come codice open source su GitHub.
Roadmap:
- v0.9.1 — Motore aggiornato a ISO 9613-2:2024 (Dz e Kmet §7.4.1); modalità 1996 disponibile come opzione di confronto
- v0.9.2 — Diffrazione laterale §7.4.3 attorno ai bordi verticali della barriera + combining §7.4.4 (formula 25), col metodo ISO 9613-2:2024
- v0.9.3 — Quattro correzioni del modello dopo una revisione: A_bar = D_z − A_gr (§7.4: lo schermo sostituisce l’effetto suolo, prima si sommavano entrambi e l’IL era sovrastimato di A_gr, fino a ~4,6 dB su terreno assorbente a 500 m); K_met con la distanza schermo–ricevitore invece di quella totale; discretizzazione delle sorgenti che conserva la potenza (lineare per lunghezza tributaria, areale su griglia che copre il rettangolo); spettri sorgente normalizzati a 0 dB
- Supporto multi-barriera in cascata (C3 ≠ 1 ISO 9613-2)
- Effetto suolo per banda di ottava (oggi è frequenza-indipendente — vedi Assunzioni)
- Caricamento spettri sorgente da CSV reali (non solo preset)
Perché un tool separato
Tecnicamente il calcolo di una barriera è un caso particolare della diffrazione su edifici già implementata in acmap. Ma il caso d’uso del Tecnico Competente in Acustica è specifico e frequente: “se metto una barriera di 3 metri qui, riesco a scendere sotto il limite?”. Tool dedicato significa UI più pulita, niente switch di modalità, output immediato (perdita di inserzione in dB).
Cosa fa
Mappa Leaflet con sorgente piazzabile (Lw, altezza, spettro tra 6 preset: strada urbana, extraurbana, autostrada, treno passeggeri, treno merci, industriale), barriera disegnabile come polilinea blu con altezza uniforme, griglia di ricevitori configurabile. Calcolo della perdita di inserzione IL = Leq_senza_barriera − Leq_con_barriera per banda di ottava (8 bande, 63 Hz – 8 kHz) con tre metodi di diffrazione selezionabili: ISO 9613-2:2024 §7.4 (default, edizione vigente), ISO 9613-2:1996 §7.4 (modalità di confronto, con K_met) o Maekawa 1968 (originale). Il passaggio del default dalla 1996 alla 2024 sposta i valori di 0,00-0,21 dB sulla griglia di verifica del repo: sotto l’incertezza di qualsiasi misura in campo, ma è un cambiamento reale — per riprodurre esattamente risultati precedenti alla v0.9 si seleziona la 1996.
Visualizzazione professionale a bande riempite 5 dB sovrapposte alla mappa OSM, isolinee, legenda gradient con tick, cursore con readout live dei valori al puntatore. Tooltip FFT al passaggio del mouse su ogni ricevitore della griglia: mini-grafico dello spettro per banda di ottava nei due scenari (senza / con barriera), così si vede per quale frequenza la barriera attenua. Sezione verticale 2D interattiva (click su un ricevitore → SVG con geometria sorgente→barriera→ricevitore, path diretto e diffratto, valori path-difference e IL, più lo spettro FFT senza/con barriera del ricevitore). Export CSV ricevitori, cattura schermata PNG (Screen Capture API, cattura i pixel realmente disegnati) e stampa/PDF con layout dedicato. Calcolo eseguito in un Web Worker dedicato (la UI non si blocca durante il loop sulla griglia) con spinner di progresso; griglia metrica overlay zoom-adaptive (5–25 m).
I grafici a bande di ottava (spettro sorgente, tooltip ricevitori, sezione verticale) sono a doppia serie: barra dello spettro lineare (carattere fisico, non pesato) accanto a quella pesata A (contributo effettivo al Leq in dBA). Il confronto rende esplicito quanto la ponderazione A schiacci le componenti a bassa frequenza.
Dalla v0.8: griglia ricevitori adattiva al bbox sorgente + buffer per lato (era 300×300 m fissa) con espansione radiale (i ricevitori oltre il buffer dalla sorgente più vicina vengono scartati); fino a 5 ricevitori manuali in punti specifici (es. facciate sensibili) con tabella risultati dedicata e marker numerati trascinabili; griglia ricevitori mostrata di default; download automatico degli edifici OSM quando si attiva “edifici nel calcolo”; note esplicative sulle statistiche + statistiche supplementari “solo diffratti”; re-render automatico al cambio view-mode (IL / Leq con / Leq senza); fix difensivo sul campo altezza barriera vuoto (prima generava IL = ∞).
Dalla v0.9 (maggio 2026): Insertion Loss corretta — lo scenario senza barriera include ora la diffrazione degli edifici (quando partecipano al calcolo), così l’IL isola il solo effetto della barriera e non lo schermaggio combinato barriera + edifici; export schermata via Screen Capture API (PNG dei pixel realmente renderizzati) e stampa/PDF con layout dedicato (mappa + parametri, A4 orizzontale, una pagina); FFT a doppia serie nei tooltip e nella sezione; barriera disegnata in blu, pulsanti Calcola/Reset spostati sotto la mappa.
Metodo di calcolo
Il motore è condiviso con acmap (modulo @lib/physics/). Per ogni banda di ottava f ∈ {63, 125, 250, 500, 1000, 2000, 4000, 8000} Hz si calcola il livello di pressione sonora al ricevitore:
dove:
Lw(f) = Lw + ΔL_spettro(f)— potenza sonora di banda.Lwè la potenza totale (per la sorgente lineare/areale ricavata daLw′/Lw″+ 10·log₁₀ della lunghezza/area);ΔL_spettro(f)è la forma relativa del preset selezionato.A_div = 20·log₁₀(d) + 11— divergenza geometrica (irradiazione sferica, ISO 9613-2;din metri dalla sorgente puntuale o sub-sorgente).A_atm(f) = α(f, T, RH)·d— assorbimento atmosferico. Il coefficienteαsegue ISO 9613-1 e dipende da frequenza, temperatura e umidità: cresce molto con la frequenza (gli acuti si attenuano in fretta, i bassi viaggiano lontano).A_gr— effetto suolo, modello a G-factor (G = 0suolo riflettente/duro …G = 1suolo assorbente/soffice). In questo motore è frequenza-indipendente (semplificazione rispetto all’Agr per banda dell’ISO 9613-2 completo).A_bar(f)— attenuazione di diffrazione della barriera/ostacolo;0se la linea di vista è libera.
Il livello totale è la somma energetica sulle bande, con la ponderazione w(f):
Il tool barriere usa la ponderazione A (w(f) = curva A, IEC 61672) → risultati in dB(A).
Diffrazione
La barriera intercetta la linea di vista quando il suo bordo superiore supera il raggio diretto sorgente→ricevitore. La differenza di cammino è δ = (d_SB + d_BR) − d_SR: il percorso extra che l’onda diffratta compie passando sopra il bordo, rispetto alla linea retta.
- Maekawa (1968):
D = 10·log₁₀(3 + 20·N), numero di FresnelN = 2δ/λ, lunghezza d’ondaλ = c/f. Schermo singolo, infinitamente lungo, nessuna correzione meteo. Cap a 25 dB. - ISO 9613-2:1996 §7.4:
Dz = 10·log₁₀(3 + (C₂/λ)·C₃·z·K_met), conC₂ = 20,C₃ = 1(barriera singola),zdifferenza di cammino,K_metcorrezione meteorologica downwind. Cap a 20 dB (singola). - ISO 9613-2:2024 §7.4.1 — metodo di default: stessa struttura, Dz e K_met dell’edizione vigente. È anche il solo metodo che calcola la diffrazione laterale attorno ai bordi verticali (§7.4.3) e la combina col bordo superiore (§7.4.4). Quanto cambia rispetto alla 1996 è quantificato più sotto: poco.
La dipendenza da λ = c/f è il cuore del comportamento: a bassa frequenza λ è grande, N è piccolo, l’attenuazione è modesta — il suono “aggira” la barriera; ad alta frequenza succede il contrario.
Sorgenti e griglia
- Puntuale → un solo punto. Lineare → discretizzata in sub-sorgenti puntuali lungo la polilinea. Areale → discretizzata in una griglia di punti sul footprint.
- Ogni ricevitore somma energeticamente i contributi di tutte le sub-sorgenti.
- Con barriera ed edifici, per ogni coppia sorgente–ricevitore vale il modello worst-screen wins (vedi sotto): contribuisce il solo ostacolo con
δmaggiore. - Insertion Loss e edifici (v0.9): lo scenario senza barriera include comunque la diffrazione degli edifici, se partecipano al calcolo. Gli edifici ci sono in entrambi gli scenari →
IL = Leq_no − Leq_wisola il solo contributo della barriera, non lo schermaggio combinato barriera + edifici. Senza edifici nel calcolo, senza barriera resta campo libero.
Dove mettere la barriera
A parità di altezza e di costo, la posizione lungo la campata cambia il risultato più di quanto si immagini. Il motore lo mostra su una geometria fissa: barriera alta 4 m, sorgente e ricettore a 130 m l’uno dall’altro, e la barriera che scorre fra i due.
Nel caso più comune — sorgente bassa (1 m, una carreggiata) e ricettore in quota (4 m, un primo piano) — la curva è monotona:
| Barriera a | δ | Dz a 500 Hz | Dz a 1 kHz |
|---|---|---|---|
| 10 m dalla sorgente | 0,406 m | 11,7 dB | 14,3 dB |
| 25 m | 0,145 m | 8,6 dB | 10,6 dB |
| 40 m | 0,078 m | 7,2 dB | 8,8 dB |
| 65 m (metà) | 0,035 m | 6,0 dB | 7,0 dB |
| 90 m | 0,015 m | 5,4 dB | 5,9 dB |
| 120 m dalla sorgente | 0,003 m | 4,9 dB | 5,0 dB |
Fra il posizionamento migliore e il peggiore ci sono 6,8 dB a 500 Hz, a parità di barriera. Il motivo è geometrico: la linea di vista sale da 1 a 4 m, quindi vicino alla sorgente sta in basso e un bordo a 4 m la scavalca di quasi tre metri, mentre vicino al ricettore la linea di vista è già a quota bordo e l’eccedenza utile si annulla.
Con sorgente e ricettore alla stessa quota il quadro cambia forma, e diventa la regola pratica che si trova nei manuali:
| Barriera a | δ | Dz a 500 Hz |
|---|---|---|
| 10 m | 0,215 m | 9,7 dB |
| 25 m | 0,099 m | 7,7 dB |
| 40 m | 0,072 m | 7,1 dB |
| 65 m (metà) | 0,062 m | 6,8 dB |
| 90 m | 0,072 m | 7,1 dB |
| 105 m | 0,099 m | 7,7 dB |
| 120 m | 0,215 m | 9,7 dB |
La curva è simmetrica e ha il minimo a metà campata: 2,9 dB peggio che agli estremi. La ragione è aritmetica: con l’eccedenza sopra la linea di vista costante, la somma dei due cammini obliqui è minima quando i due tratti sono uguali. La regola che ne segue — la barriera va il più vicino possibile alla sorgente o al ricettore, mai a mezza strada — vale in entrambi i casi mostrati. Va però detto il perimetro: è la conclusione della geometria bidimensionale ideale usata qui, con sorgente puntuale, ricettore singolo, terreno piano, barriera di altezza fissa, nessun cammino laterale e nessuna riflessione. Su una strada reale la sorgente è estesa, i ricettori sono molti e a quote diverse, la diffrazione laterale conta, il terreno varia e ci sono accessi: il lato preferibile va verificato, non assunto. Anche il «vince il lato della sorgente» dipende dall’asimmetria di quote di questo esempio, e invertendola può invertirsi.
Diffrazione laterale, e perché toglie attenuazione
Una barriera reale ha una lunghezza finita, quindi due bordi verticali. Oltre al cammino sopra il bordo superiore, il suono ne trova due attorno ai fianchi. La ISO 9613-2 li tratta al §7.4.3 e li combina col cammino superiore al §7.4.4, formula 25, che è una somma in energia dei tre percorsi:
Il segno conta: aggiungere percorsi riduce l’attenuazione totale, perché aggiunge vie all’energia. Un calcolo che considera solo il bordo superiore sovrastima la barriera, e lo fa tanto più quanto il ricettore è vicino a un’estremità.
Il motore lo mostra su una barriera lunga 60 m, sorgente 20 m prima e ricettore 40 m dopo, spostando il ricettore lateralmente a partire dal centro:
| Offset laterale | Dz solo bordo superiore | Dz combinato | Perdita a 500 Hz | Perdita a 8 kHz |
|---|---|---|---|---|
| 0–30 m | 8,7 dB | 8,7 dB | 0,0 dB | 0,0 dB |
| 40 m | 8,7 dB | 8,3 dB | −0,4 dB | −2,4 dB |
| 50 m | 8,7 dB | 8,3 dB | −0,4 dB | −2,4 dB |
| 60 m | 8,7 dB | 7,9 dB | −0,8 dB | −2,4 dB |
| 80 m | 8,7 dB | 5,0 dB | −3,7 dB | −4,3 dB |
Dentro l’ombra geometrica della barriera i cammini laterali sono così lunghi che il loro contributo energetico è trascurabile, e il motore li scarta: le prime righe sono identiche. Appena il ricettore si sposta oltre l’estremità, il cammino attorno al fianco vicino si accorcia e il conto cambia — fino a 3,7 dB a 500 Hz e 4,3 dB a 8 kHz persi rispetto al calcolo a bordo singolo. La perdita è maggiore sugli acuti, perché è lì che il bordo superiore rendeva di più e quindi ha più da perdere.
La conseguenza progettuale è la ragione per cui le barriere reali si prolungano oltre l’area da proteggere: gli ultimi metri di barriera non servono al ricettore che sta di fronte, servono a allontanare il bordo verticale dai ricettori laterali. Nello strumento questo si vede sulla mappa come una frangia di IL ridotto attorno alle estremità.
1996, 2024 e Maekawa: quanto cambia davvero
Il motore implementa tre metodi, e la scelta fra i tre pesa sul risultato. Fra la 2024 e la modalità legacy 1996 lo scarto massimo che ho misurato è di 0,38 dB, su una griglia che scende fino a δ = 0,05 m; sulla griglia più ristretta del presidio numerico del repo (δ da 0,2 a 6 m) resta 0,21 dB. In entrambi i casi sempre nel senso di un’attenuazione appena maggiore per la 2024, e sempre meno dell’incertezza di qualunque dato d’ingresso.
Due avvertenze su come leggere quel confronto. La prima: la modalità 1996 del motore non è la ISO 9613-2:1996 canonica — il codice dichiara di omettere un termine del K_met e la mantiene invariata per conservare la comparabilità coi risultati storici del tool. Confronta quindi versioni dello strumento, non le due edizioni della norma. La seconda: i 64 valori congelati del presidio sono un test di regressione, non di validazione — dicono che il codice non e’ cambiato, non che coincide con la norma. La ragione per preferire la 2024 non è il numero: è che è l’edizione vigente.
Fra ISO e Maekawa, invece:
| δ | 500 Hz (1996) | 500 Hz (2024) | 500 Hz (Maekawa) |
|---|---|---|---|
| 0,2 m | 9,3 dB | 9,5 dB | 11,7 dB |
| 1 m | 15,0 dB | 15,1 dB | 17,9 dB |
| 3 m | 19,5 dB | 19,6 dB | 22,5 dB |
Due o tre decibel di differenza sistematica, e cinque ai valori di saturazione, dove Maekawa si ferma a 25 dB e l’ISO a 20 per bordo singolo. La scelta del metodo pesa dieci volte la scelta dell’edizione: dichiararla è più importante di dichiarare quale ISO. Il dettaglio delle formule e delle costanti sta nella wiki sulla diffrazione di Maekawa.
Sul confronto fra le edizioni pesa un fatto in arrivo: un emendamento in bozza — ISO 9613-2:2024/DAmd 1, in votazione DIS — riporta D_z e K_met della 2024 alla forma del 1996, e la K_met canonica del 1996 torna a essere quella in vigore. Il motore resta com’è finché l’emendamento non è pubblicato; le formule affiancate e lo scarto per geometria stanno in ISO 9613-2:2024/DAmd 1: la diffrazione torna al 1996.
Assunzioni del modello
Sapere cosa il modello assume è il presupposto per leggerne i risultati:
- 8 bande di ottava, 63 Hz – 8 kHz. Non terzi d’ottava; contributi fuori banda non modellati.
- Sorgenti come punti (o insiemi di sub-punti per linea/area) con irradiazione sferica. Niente direttività.
- Atmosfera omogenea, T e RH costanti su tutto il dominio. Niente gradienti di temperatura/vento, niente turbolenza, niente rifrazione.
- Diffrazione: sopra il bordo superiore con tutti i metodi; laterale attorno ai bordi verticali estremi della barriera (§7.4.3, combinata via §7.4.4) solo col metodo ISO 9613-2:2024. Niente diffrazione laterale attorno agli edifici.
- Barriera acusticamente opaca: nessuna trasmissione attraverso il pannello, nessun ponte acustico o fessura. Lo strumento chiede solo polilinea, altezza e quota base: non conosce materiale, massa superficiale, giunti, porte o tenuta al piede, e tratta come perfettamente schermante qualunque barriera disegnata. La ISO pone invece requisiti perché un oggetto sia schermante (massa superficiale sufficiente, superficie chiusa, estensione adeguata alla lunghezza d’onda), e la prestazione reale di un dispositivo stradale si caratterizza con la serie EN 1793 — non con l’R_w, grandezza da elementi edilizi. Una barriera geometrica da 3 m e una barriera reale da 3 m non sono la stessa cosa.
- Niente riflessioni (né su edifici, né sul lato sorgente, né sul terreno come raggio speculare esplicito).
- Effetto suolo frequenza-indipendente — semplificazione rispetto all’Agr per banda dello standard.
- Multi-ostacolo “worst-screen wins”: NON è il calcolo multi-screen rigoroso ISO 9613-2.
- I ricevitori con livello fisico trascurabile (sotto cutoff numerico di visualizzazione, circa 25 dB(A)) vengono scartati dalla griglia. Non è una soglia di udibilità, che dipende da spettro, rumore di fondo e ascoltatore: è una soglia dell’interfaccia, e scartare punti altera anche le statistiche globali.
Come leggere i risultati
- IL (Insertion Loss) è la differenza
Leq_senza − Leq_conin un punto. Per barriere realistiche ci si aspettano valori da pochi dB fino a ~10–20 dB; il termine di diffrazione è cappato (20 dB per la ISO a bordo singolo, 25 dB il clamp Maekawa dell’implementazione): un IL vicino a quei valori segnala una geometria molto favorevole, non necessariamente realistica. Da non confondere le tre grandezze: D_z è il termine di diffrazione; A_bar è l’attenuazione della barriera, che per la diffrazione sopra il bordo con A_gr > 0 vale D_z − A_gr (§7.4); l’IL è la differenza fra i livelli con e senza barriera e include l’effetto suolo, i cammini laterali combinati col §7.4.4 e la somma energetica sullo spettro. Il cap limita il primo, non l’ultimo. - L’IL dipende dalla frequenza. È alto sugli acuti (λ corta → tanta diffrazione) e basso sui bassi (il suono aggira). Il tooltip spettrale — chiamato «FFT» nell’interfaccia, ma sono otto bande d’ottava, non una trasformata: non risolvono componenti tonali — e lo spettro della sezione verticale mostrano questo direttamente: confronta le barre senza/con barriera banda per banda.
- Lineare vs pesato A. Nei grafici a doppia serie, la barra lineare è il carattere fisico della sorgente, quella pesata A il contributo al dB(A). Una sorgente a bassa frequenza appare alta nel lineare e crollata nel pesato: è l’effetto della curva A, non un errore.
- Statistiche generali vs “solo diffratti”. Le statistiche su tutta la griglia includono ricevitori in zone dove la barriera non interferisce (IL ≈ 0): l’IL medio globale è quindi diluito. Le statistiche “solo diffratti” misurano l’efficacia reale della barriera dove conta.
- Bias, ma non una garanzia. Con edifici nel calcolo, il modello worst-screen wins tende a sottostimare l’attenuazione di ostacoli multipli, quindi a sovrastimare il rumore residuo: nella maggior parte dei casi è il verso prudente. Non è però dimostrabile a priori come bias conservativo: la ISO tratta la diffrazione multipla con una geometria specifica dei bordi rilevanti, non con max(δᵢ), e in presenza di cammini laterali, riflessioni, interazione suolo-barriera e ostacoli parziali il segno dell’errore non è garantito. I numeri non sono peritali.
- Celle in ombra profonda o lontane appaiono sbiadite o assenti: sono sotto la soglia di udibilità del modello, non un bug.
Come si usa
Flusso base — griglia ricevitori
- Sezione 1 — Tipo sorgente: scegli Lineare (strada/ferrovia), Areale (zona industriale) o Puntuale (macchinario). Imposta
Lw, altezza sorgentehs, e seleziona lo spettro fra i 6 preset (il pulsante ⓘ apre un popover con descrizione, formula e mini-grafico dello spettro). - Sezione 2 — Disegna sorgente: bottone Disegna sulla mappa → click sui vertici (line/area) o un singolo click (point); doppio click per terminare il disegno di una linea.
- Sezione 3 — Barriera: imposta altezza
he quota base (m); Disegna sulla mappa → polilinea blu con altezza uniforme. Se lascihvuoto, il tool entra in modalità “barriera assente” con warning chiaro nello status. - Sezione 3b — Metodo: ISO 9613-2 §7.4 (default, conservativo, con
K_met) o Maekawa 1968 (originale). - Sezione 4 — Griglia ricevitori: altezza
hr, buffer attorno alla sorgente (m), passo griglia, G suolo. - Sezione 5 — Atmosfera: T (°C), RH (%).
- Sezione 6 — Limite normativo: classe DPCM 14/11/1997 (I–VI) per la statistica “sotto limite”.
- Sezione 7 — Edifici OSM (opzionale): Scarica edifici nell’area visibile; il toggle Edifici partecipano al calcolo, se attivato senza edifici già caricati, avvia da solo il download.
- Sezione 8 — Visualizzazione: scegli cosa mostrare (bande, isolinee, punti ricevitori — attivi di default, griglia metrica, mappa OSM) e il view-mode (IL / Leq con / Leq senza).
- Sezione 9 — Ricevitori manuali (opzionale, max 5): bottone Aggiungi ricevitore → click sulla mappa per posizionarlo (ESC per annullare). Marker numerati R1..R5, trascinabili, etichetta personalizzabile.
- Calcola: il pulsante Calcola (e Reset tutto) sono nella barra azioni sotto la mappa. Il calcolo gira in un Web Worker con spinner di progresso. A calcolo completato: mappa con bande/isolinee, statistiche generali + “solo diffratti”, tabella Risultati ricevitori manuali.
Dopo il calcolo
- Cambio view-mode dalla tendina (IL / Leq con / Leq senza) → la mappa si ridisegna automaticamente senza un nuovo “Calcola”.
- Tooltip FFT: passa il mouse su un punto della griglia → Leq senza/con, IL e i due mini-spettri per banda di ottava.
- Sezione verticale: click su un ricevitore (manuale) → SVG con geometria source→barriera→receiver, path diretto e diffratto, valori
δeIL, e lo spettro FFT senza/con barriera del ricevitore. - Export CSV ricevitori: scarica tutti i ricevitori (griglia + manuali) con header
label,lat,lon,distance_m,leq_no_barrier_dBA,leq_with_barrier_dBA,insertion_loss_dB,diffracted,manual+ intestazione#con timestamp UTC, URL e disclaimer demo. - Screenshot (📷): genera un PNG composito mappa + legenda + risultati, con la mappa renderizzata e tutti gli overlay.
- Reset tutto: cancella sorgente, barriera, risultati e ricevitori manuali (gli altri pulsanti di clear preservano i manuali).
Edifici OpenStreetMap come ostacoli
Il tool può scaricare gli edifici reali dall’area visibile della mappa via Overpass API, interrogando way["building"] nel bounding box corrente. Per ogni edificio si estrae footprint poligonale e altezza:
building:heightse presente (metri, tag esplicito)building:levels× 3 m/piano come fallback- valore di default impostato dall’utente (“Altezza default”) se entrambi i tag mancano
Una volta scaricati, gli edifici sono visibili sulla mappa come poligoni semitrasparenti. Possono opzionalmente partecipare al calcolo come ostacoli passivi (toggle dedicato, che avvia il download se serve).
Modello “worst-screen wins”
Per ogni coppia sorgente–ricevitore, l’algoritmo cerca tutti gli ostacoli che intersecano la linea di vista (edifici OSM + eventuale barriera disegnata) e applica l’attenuazione di diffrazione del solo ostacolo con maggior path-difference. Gli altri vengono ignorati.
Questo approccio è non rigoroso ISO 9613-2 multi-screen: lo standard prevede formule specifiche per ostacoli multipli in cascata (composizione delle path-difference effettive, non semplice “max”). Nel mondo reale, multipli ostacoli in cascata danno attenuazione maggiore di quella stimata qui — il tool è quindi conservativo nel senso giusto per valutazioni preliminari (sovrastima il rumore residuo), ma non sostituisce un calcolo certificato.
Limiti dati OSM
- Footprint OSM completezza variabile per zona (centri urbani europei ben coperti, aree industriali periferiche meno)
- Altezze: pochi edifici taggati con
building:height, molti senzabuilding:levels→ fallback al default utente, che può essere inaccurato - OSM rappresenta lo stato attuale: rilievi storici o progetti futuri vanno modellati manualmente come barriere
Cosa non fa
Multi-barriera in cascata (calcolo multi-screen rigoroso), diffrazione laterale attorno agli edifici, trasmissione attraverso la barriera (assunta acusticamente opaca), riflessioni sul lato sorgente, profili meteo (gradienti di temperatura/vento, turbolenza), spettri sorgente caricabili da CSV reale (solo i 6 preset disponibili oggi). La diffrazione laterale attorno ai bordi verticali della barriera è invece calcolata (§7.4.3, metodo 2024).
Avvertenze
- Tool dimostrativo, non peritale. noise-barrier-calc non è certificato per uso peritale, validazione di limiti normativi, o presentazione in sede giudiziaria. Per quegli usi servono due cose distinte, che non si sostituiscono a vicenda: un modello di calcolo adeguato alla metodologia richiesta — CadnaA, SoundPLAN e NoiseModelling sono esempi diffusi, ma la normativa italiana non istituisce una categoria di «software certificato»: il DM 29/11/2000 fissa requisiti funzionali al modello — e un tecnico competente in acustica iscritto all’ENTECA, che è la figura professionale responsabile. Il software è uno strumento, non un’alternativa al professionista.
- Modello “worst-screen wins” — non rigoroso ISO 9613-2 multi-screen. Quando edifici OSM partecipano al calcolo, viene applicata l’attenuazione del SOLO ostacolo con maggior path-difference per ogni coppia sorgente–ricevitore. Lo standard prevede formule diverse per ostacoli in cascata; nella realtà l’attenuazione è in genere maggiore → il tool sovrastima il rumore residuo.
- Barriera ideale, opaca. Trasmissione acustica attraverso la barriera non modellata. Pannelli fonoassorbenti, fessure costruttive, ponti acustici NON sono coperti.
- Diffrazione laterale solo col metodo 2024. La diffrazione attorno ai bordi verticali estremi della barriera (§7.4.3) è calcolata solo con ISO 9613-2:2024; con 1996 e Maekawa il calcolo resta sul solo bordo superiore. Non è modellata la diffrazione laterale attorno agli edifici.
- Effetto suolo semplificato. Modello a G-factor frequenza-indipendente, non l’Agr per banda di ottava dell’ISO 9613-2 completo.
- Spettri sorgente preimpostati. 6 preset; caricamento da CSV reali in roadmap.
- Dati OSM e altezze stimate. Vedi Limiti dati OSM. Con altezze in gran parte stimate (default 9 m), il risultato è solo orientativo.
- Niente backend, niente backend. Le query Overpass partono dal tuo browser ai mirror OSM (terzi); CSV e screenshot sono generati lato client.
Stack tecnico
Stesso stack di acmap: Leaflet 1.9.4 + d3-contour 4.0.2 (vendored locale in vendor/). Motore fisico ISO 9613-2 condiviso tra i due tool del sito (modulo @lib/physics/). Il loop di propagazione sulla griglia gira in un Web Worker dedicato. JavaScript vanilla, single file HTML nel repo standalone; nel sito Astro emette il bundle in /_assets/.
Licenza
Apache-2.0 con patent grant. Authorship Stefano Fante personale, parte delle attività Open Lab di ST-LINE (STLINE S.r.l.)
Un progetto simile?
Acustica, embedded, strumenti di calcolo: se hai un caso d’uso vicino, parliamone.