MeteoSurf: un esercizio di Problem Solving
La premessa
Sono nato (molti) anni fa a poche centinaia di metri dalla battigia, sul litorale romano. Da quel momento, l’eco dello sciabordio dell’acqua sulla terraferma, il ruggito delle onde durante una perturbazione invernale e il gigantesco specchio solare sulle calme acque delle limpide giornate primaverili sarebbero stati fraterni compagni della mia vita. Non in senso sportivo o professionale (mi sono sempre occupato di tutt’altro, tranne il servizio militare come Ufficiale di Marina), ma su uno strato molto più profondo. Chi nasce e vive nei pressi del mare, sa sempre che quando lo sguardo viene liberato sulle acque e verso l’orizzonte, la mente apre le sue stanze più remote senza timore, cercando nelle gocce salmastre veleggianti nell’aria, le risposte che non sanno giungere nei momenti più difficili. Anche quando è lontano, il mare è comunque con te. L’acqua trova la sua strada in ogni situazione impervia, talvolta lentamente ma sempre con inarrestabile determinazione.
Nei mesi scorsi, per ragioni professionali e di studio, mi sono trovato nella condizione di dover scegliere un obiettivo per la progettazione e realizzazione di un software per dispositivi mobili (un’App, nel linguaggio comune) che sfruttasse le caratteristiche di una nuova tecnologia informatica di recente concepimento (le Progressive Web App di Google ). Il mare non era mai entrato direttamente nel mio mondo professionale, perciò ho pensato finalmente di realizzare questo “ponte” che attendeva il giusto momento per essere edificato. D’altronde, proprio grazie ai luoghi di origine, un gran numero di amicizie orbita nell’ambito degli sport del mare e infine – a ulteriore riprova di un’ineluttabile influenza genetica – il mio primogenito cavalca le onde marine di tutti i continenti sulla tavola da surf da quando era adolescente. È nata così l’app MeteoSurf. Poca fantasia nel nome, ma rendeva l’idea.
Avevo quindi l’obiettivo: un’applicazione in grado di fornire un ausilio metereologico a chiunque svolgesse un’attività sportiva sulle coste (ho preferito limitarmi al Mediterraneo) oppure – se non sportivo – fosse nella necessità di conoscere la situazione a breve termine sui litorali del “Mare Nostrum” fino alle coste atlantiche del Portogallo, Spagna e Francia. Ricorrendo alla terminologia tecnica in voga, avevo quindi trovato il “Problem“, ora occorreva inventare il “Solving“.
Il percorso
Le esigenze di MeteoSurf non erano quelle di una comune applicazione di meteorologia. Agli sportivi non interessa molto se fa freddo o caldo, se piove o c’è il sole. Interessa invece l’altezza dell’onda, la sua direzione, il periodo tra un picco e l’altro, la divergenza tra direzione d’onda e direzione del vento, e intensità di quest’ultimo. Dati molto precisi, quindi, in grado di essere letti da occhi esperti che cercano avidamente tra numeri e simboli la loro “giornata perfetta“. Da quanto ho capito frequentando questi giovani appassionati, la “giornata perfetta” però non esiste: è sempre quella che arriverà poi, domani.
Occorreva perciò ricercare le sorgenti di questi dati e, non essendomi mai occupato di meteo/climatologia marina, ho cercato di studiare a fondo la materia e l’accessibilità dei dati. Dopo settimane di ricerche e di letture ho scoperto un mondo sorprendente di dati con server sparsi in tutto il mondo, che registrano parametri da sensori, satelliti, boe marine e stazioni climatologiche in ogni angolo del globo. L’approccio a questi dati deve necessariamente essere molto tecnico, quindi si è trattato di studiare protocolli di comunicazione, formati di dati prettamente scientifici e insiemi standard di notazioni simboliche.
Uno dei maggiori centri è rappresentato dal NOAA (National Oceanic and Atmospheric Administration), un’agenzia federale statunitense che si interessa di meteorologia. Per l’accesso alle “tonnellate” di dati scientifici erogati, il NOAA mette a disposizione dei server nel formato ERDDAP con la possibilità di interrogare e fare ricerca su sottoinsiemi di dati scientifici tabellari, detti “dataset”. A titolo di esempio, su questo link si può visualizzare un breve elenco (circa 8000) dataset disponibili al NOAA.
Dopo aver acquisito la necessaria conoscenza delle tecniche d’indagine nei dataset metereologici del NOAA, ho creduto però necessario spingere le ricerche verso una sorgente dati più puntualmente orientata verso il Mediterraneo, e non sugli oceani in generale. Sono così giunto alla scoperta di Copernicus, o meglio del CMEMS (Copernicus Marine Environment Monitoring Service). Copernicus è il programma europeo nato per la realizzazione di una capacità europea per l’osservazione e il monitoraggio della Terra e comprende 3 componenti: la componente spaziale (satelliti “Sentinel” in orbita), la componente “in-situ” (stazioni terrestri e boe marine) e la componente di servizio (monitoraggio marino, atmosferico e climatologico). Dall’insieme di queste tre componenti, vengono rilevate informazioni molto estese sulle acque del Mediterraneo (concentrazione di plancton, inquinamento, correnti, densità del mare, ecc.), tra cui quelle necessarie ad alimentare l’applicazione MeteoSurf.
I dati quindi erano a disposizione, ma dopo aver realizzato una banca dati di circa novecento località d’interesse (“spot“) determinai che, per la definizione richiesta, questi rappresentavano una quantità eccessiva per poter essere gestiti online dall’applicazione (circa 200mila informazioni). Attraverso opportuni programmi e accorgimenti procedurali ho perciò realizzato un server che – in orari notturni – scarica ed elabora i dati necessari all’applicazione (vedi schema in figura) utilizzando tecniche e protocolli piuttosto innovativi. Si trattava ora solo di gestire la parte grafica delle mappe: anche in questo caso occorreva però trovare un bilanciamento tra gli strumenti a disposizione, la leggerezza necessaria per un’applicazione portatile e le prestazioni di una mappa grafica. Con qualche ulteriore giornata di studio, la soluzione adottata mi è sembrata cogliere il giusto compromesso ed equilibrio.
Per il resto, si è trattato di normale pratica tecnica del software, ma per questo ci sono i manuali.
A conferma della validità delle scelte è poi giunta inaspettata un’informazione direttamente dallo staff del progetto Copernicus: una volta pubblicato online, MeteoSurf è stato segnalato e promosso direttamente dal CMEMS nella loro pagina “MetOcean Conditions For Surfers“. Il documento completo del CMEMS sulla promozione di MeteoSurf può essere scaricato direttamente qui in formato PDF. È rilevante vedere come l’icona di MeteoSurf appaia oggi sulla pagina degli “Use Cases” di Copernicus insieme a molti altri simboli i quali racchiudono alla proprie spalle intere aziende o enti dotati di strutture tecnico/economiche ben più rilevanti.
Le Conclusioni
L’applicazione MeteoSurf, nata per caso da un’esigenza di approfondimento tecnico/scientifico “estivo“, si è poi rivelata un’opportunità per ampliare alcuni settori di conoscenza e soprattutto un utile esercizio di “Problem Solving” con approccio transdisciplinare. Non ho volutamente trattato nel dettaglio i principali temi tecnici che hanno coinvolto le soluzioni adottate, in quanto non nell’interesse di questo articolo, ma sono disponibile a qualunque approfondimento necessario, attraverso la sezione “Contatti” di questo blog.