Dai file CSV ai volumi idrometrici: la mia App per calcoli speditivi

Dai file CSV ai volumi idrometrici: la mia App per calcoli speditivi

Se tornassi indietro di soli due o tre anni, l’idea di creare da zero un’app per gestire i dati del mio lavoro mi sarebbe sembrata pura fantascienza. Anzi, a essere onesti, non mi sarei nemmeno chiesto cosa fosse una 'web app'. Per ottenere un risultato del genere avrei dovuto studiare tre libri di programmazione e passare settimane a sbattere la testa su codici incomprensibili. E alla fine, probabilmente, avrei tirato fuori qualcosa di graficamente imbarazzante e difficilissimo da usare

Invece, ecco qui un esperimento: portate.danielesturla.it.

Dalla noia alla soluzione (passando per l'AI)

Il mio lavoro è un altro, non faccio il programmatore. Ma ogni giorno mi scontravo con la stessa seccatura: file CSV esportati dallo SCADA con i punti decimali al posto delle virgole. Un formato che l'Excel "italiano" non digerisce, costringendomi a noiose operazioni manuali di pulizia prima di poter fare qualsiasi calcolo.

Un pomeriggio ho deciso di provare una strada diversa. Ho aperto Claude e Gemini e ho dato istruzioni semplici:

  • "Prendi questi file, ci sono dati di potata istantanea, scambia i punti con le virgole."
  • "Già che ci siamo calcolami il volume totale usando questa formula."
  • "Ora crea un'interfaccia moderna in Python per gestire tutto."

Il cuore tecnico: Calcoli Speditivi e Analisi Idraulica

L'app non è solo un convertitore, ma uno strumento per fare calcoli speditivi direttamente sul campo o in ufficio. Concettualmente, l'applicativo analizza le portate istantanee (espresse in l/s) che passano in una condotta d'acquedotto in un determinato intervallo temporale.

L'app genera automaticamente il grafico di queste portate nel tempo e ne calcola l'integrale per determinare il volume totale transitato. Invece di trascinare formule infinite su Excel, il sistema fa un piccolo calcolo numerico per restituire il volume totale in metricubi.

Ma il problema è che solitamente i dati reali hanno anomalie. Spesso i sensori hanno dei "buchi" di trasmissione, manca la comunicazione, il dato non è registrato. Per questo il calcolo è impostato cosi:

  • Validazione Oraria: Il calcolo viene eseguito determinando la portata media per ogni singola ora. Se in un'ora non ci sono punti o ce ne sono troppo pochi (dati mancanti), l'app scarta quel lasso temporale per non falsare la media.
  • Riproporzionamento Giornaliero: In fase di riepilogo giornaliero, l'app somma le ore valide. Se mancano dei pezzi, il sistema riproporziona il volume sulle 24 ore effettive, fornendo così un dato statistico coerente invece di un semplice totale parziale (che sarebbe sempre sottostimato).
  • Indice di affidabilità: L'app ti avvisa chiaramente se il dato che stai vedendo è stato ripropozionato o se è basato su un set di dati completo.

La formula che ho impostato per il calcolo dei volumi orari è lo standard per l'integrazione numerica:

Il volume giornaliero è dato dalla somma delle portate orarie.

In circa 4 o 5 ore di lavoro — di cui più della metà passate a sistemare "cavolate grafiche", colori e icone perché anche l'occhio vuole la sua parte — ho ottenuto uno strumento che pulisce i dati, crea grafici interattivi, calcola i volumi ed esporta tutto in Excel in un colpo solo.

Calcolo portata oraria a partire dell'istantanea
Calcolo portata oraria

Un esperimento in corso

Ovviamente, lo dico chiaramente: questo è un esperimento.

L'app è nata per imparare Python perchè penso mi sarà utile e per risolvere un problema pratico, ma ci sono ancora dei limiti. Ad esempio, devo ancora affinare la gestione dei "dati di partenza sballati": mancanze di misure per lunghi periodi o quegli errori di lettura dei sensori che possono sporcare il calcolo finale. È un cantiere aperto, ma è un cantiere che già produce risultati utili.

Perché lo condivido?

Perché è incredibile come oggi, con l'aiuto dell'intelligenza artificiale, chiunque possa smettere di essere "vittima" di un software che non funziona come vorrebbe e costruirsi i propri strumenti su misura.

La vera rivoluzione

In passato succedeva troppo spesso di dover fare quello che diceva il software, o meglio, quello che aveva in mente chi lo aveva progettato (spesso con logiche incomprensibili o lontane dalla tua realtà aziendale).

Oggi, grazie all'AI, il paradigma si è invertito: ora il software fa quello che vuoi fare tu (più o meno).

Se vi va di provarla, testarla o semplicemente vedere com'è venuta, fate un salto qui:

👉portate.danielesturla.it

Appendice Tecnica

Per chi vuole sbirciare "sotto il cofano", ecco lo stack utilizzato:

  • Linguaggio: Python con framework Streamlit per l'interfaccia web.
  • Librerie: Pandas per i dati e Plotly per i grafici interattivi.
  • Infrastruttura: L'app gira all'interno di un container Docker su un mio VPS dedicato. Al suo interno lavora un'istanza "mini-Linux" ottimizzata per far girare Python in modo leggero e veloce.

Qui c'è il codice da scaricare liberamente (qualche baco ci sarà di certo!)