Web app professionale in Python + Streamlit per il predimensionamento del sistema di smaltimento dell’acqua di piattaforma stradale di un ponte, con focus sulla distribuzione delle bocchette di scolo.
La v1.2 è dedicata all’opzione A: maggiore realismo idraulico, cioè al miglioramento della rappresentazione del profilo longitudinale del ponte.
Questa versione introduce:
- profilo longitudinale segmentato a tratti definito direttamente dall’utente;
- identificazione automatica di nodi topologici (estremità, minimi locali, massimi locali, nodi passanti);
- costruzione automatica dei bacini idraulici che drenano verso minimi locali o verso le estremità della zona utile;
- layout delle bocchette guidato dal recapito del singolo bacino e non più da un unico schema globale.
L’obiettivo di questa versione è rendere la logica del layout più vicina a un comportamento idraulico reale, superando il semplice schema “ponte che drena tutto verso una sola estremità” oppure “profilo idealizzato simmetrico”.
La v1.2 consente quindi di modellare ponti con:
- alternanza di tratti in salita e discesa;
- punti di minimo o massimo locale;
- più recapiti idraulici interni alla lunghezza del ponte.
Il profilo longitudinale viene definito tramite righe nel formato:
x_inizio, x_fine, pendenza_pct
Esempio:
0, 25, 1.20
25, 60, -0.80
60, 95, 0.60
95, 120, -1.10
Da questa informazione l’app:
- ricostruisce il profilo relativo a tratti;
- determina il verso di drenaggio di ciascun segmento;
- individua i nodi tra i segmenti;
- classifica i nodi come:
- estremità;
- minimo locale;
- massimo locale;
- nodo passante;
- costruisce i bacini che drenano verso ciascun recapito.
La logica generale resta coerente con i principi della progettazione del bridge deck drainage richiamati dalla manualistica FHWA e DOT:
- il progetto del drenaggio di impalcato deve combinare capacità idraulica, design spread, sicurezza e vincoli pratici;
- la disposizione di inlets/scuppers è legata alla spaziatura idraulica e al contenimento dello spread;
- nella pratica, l’ingegnere deve coordinare il layout con profilo, dettagli strutturali e manutenzione.
La v1.2 traduce questi principi in una logica computazionale più realistica: invece di assumere un ponte omogeneo, riconosce che il profilo longitudinale può creare bacini differenti.
Importante: anche questa v1.2 resta uno strumento di predimensionamento e layout preliminare. Non sostituisce una verifica normativa completa o una modellazione idraulica dettagliata del manufatto.
La v1.1 lavorava ancora con schemi semplificati di profilo (verso inizio, verso fine, schiena d'asino, cunetta centrale).
La v1.2 invece usa un profilo segmentato esplicito, molto più flessibile.
L’app individua automaticamente:
- estremità del ponte;
- minimi locali;
- massimi locali;
- nodi passanti.
I bacini vengono costruiti automaticamente a partire dai minimi locali e dalle estremità utili, con recapito coerente con la topologia del profilo.
Per ogni bacino, l’app calcola una pendenza media ponderata e la usa nel controllo idraulico di spread / capacità del bordo ponte.
DrenaggioPonte/
├── app.py
├── src.py
├── requirements.txt
├── readme.md
└── prompt.txt
src.py→ parsing del profilo, topologia, bacini, idraulica, layout, tabelle e commenti;app.py→ UI Streamlit e grafici Plotly;requirements.txt→ dipendenze Python;readme.md→ documentazione tecnica;prompt.txt→ specifica per iterazioni future.
- lunghezza del ponte [m];
- numero corsie [-];
- larghezza corsia [m];
- larghezza laterale sinistra [m];
- larghezza laterale destra [m];
- schema di drenaggio (uno o due lati).
- coefficiente di deflusso
C[-]; - intensità di pioggia
i [mm/h]; - tempo di ritorno [anni] (informativo).
- criterio spread manuale o preset AASHTO-like;
- velocità di progetto [km/h];
- spread SX e DX se modalità manuale.
- preset bocchetta;
- capacità nominale [l/s];
- coefficiente di intasamento [-];
- coefficiente di sicurezza sulla portata [-];
- rugosità di Manning
n[-].
- offset dalle spalle [m];
- passo minimo [m];
- passo massimo costruttivo [m];
- punti vietati [m];
- semiampiezza delle zone vietate [m].
- righe nel formato
x_inizio, x_fine, pendenza_pct.
L’app restituisce:
- numero totale di bocchette;
- portata totale del ponte [l/s];
- capacità effettiva della bocchetta [l/s];
- tabella di sintesi generale;
- tabella dei segmenti del profilo;
- tabella dei nodi topologici;
- tabella delle finestre utili residue;
- tabella dei bacini idraulici per lato;
- tabella delle bocchette con chainage;
- grafico Plotly del profilo longitudinale ricostruito;
- grafico Plotly del layout longitudinale;
- grafici Plotly di confronto per lato e per bacino;
- export CSV della sintesi e del layout.
L’app legge il profilo a tratti e ne controlla:
- continuità;
- copertura completa da
0aL; - assenza di segmenti con lunghezza non positiva.
Ogni nodo è classificato in funzione del verso di drenaggio dei segmenti adiacenti.
I bacini vengono costruiti tra offset di spalla e punti di minimo locale, oppure fino alle estremità utili.
La portata di ciascun bacino è calcolata con una forma del metodo razionale sulla superficie tributaria del lato considerato.
Il passo massimo di progetto in ogni bacino deriva dal minimo tra:
- limite da capacità della bocchetta;
- limite da spread ammissibile;
- limite costruttivo massimo imposto.
Le bocchette vengono distribuite nelle finestre utili del singolo bacino, orientando il layout verso il recapito del bacino stesso.
La v1.2 verifica almeno:
- coerenza geometrica di base;
- coerenza dei coefficienti;
- compatibilità tra offset e lunghezza del ponte;
- coerenza del profilo segmentato;
- coerenza tra passo minimo e passo massimo costruttivo;
- supporto dei criteri di spread disponibili.
Le evoluzioni naturali della v1.3 / v2 sono:
- quote assolute e non solo relative;
- supporto a più linee di drenaggio o corsie con sezioni differenziate;
- dettaglio di recapiti, discendenti e tubazioni;
- criteri normativi più aderenti al contesto progettuale reale;
- integrazione con dettagli strutturali (giunti, pile, apparecchi, barriere);
- report PDF automatico.
pip install -r requirements.txt
streamlit run app.pyLa v1.2 rappresenta il primo vero passo verso un modello più realistico del comportamento idraulico del ponte, pur restando nel dominio del predimensionamento tecnico. È pensata per aiutare il progettista a ragionare su dove l’acqua converge realmente e su come ciò influenzi la densità e la posizione delle bocchette di scolo.