venerdì 15 luglio 2011

Grazie Big G!

Una recente attività in cui sono stato coinvolto ha riguardato la localizzazione di una serie di punti attraverso la definizione dell'indirizzo costituito da toponimo della via, numero civico (dove presente) e comune.
Mi è già capitato altre volte di dover posizionare una serie di punti attraverso un sistema di coordinate (perchè generalizzando ed estremizzando il concetto, si può definire così) in cui ogni punto, al posto delle classiche coordinate x/y oppure latitudine/longitudine, è definito attraverso un indirizzo.
Il processo che porta alla localizzazione di una serie di punti definiti da questo tipo di coordinate va sotto il nome di geocoding (sempre geo ma diverso dal geotagging di cui ho trattato nel post precedente).
La differenza sostanziale, rispetto ad un sistema di coordinate x/y o lat/long, sta nel fatto che questo sistema ha bisogno di una base di appoggio per posizionare i punti perchè le informazioni che ne permettono la localizzazione nello spazio sono definite a partire da un sistema di riferimento che nel caso specifico è costituito da uno stradario. Uno stradario è in sostanza un grafo stradale formato da una serie di archi interconnessi tra loro. Gli attributi che individuano ogni singolo tratto di strada sono: il toponimo (con l'eventuale indicazione del tipo di strada), la numerazione civica definita attraverso il concetto di from/to (cioè da che numero a che numero va la numerazione civica su quel tratto di strada) e dall'ambito di appartenza del tratto stradale (solitamente in Italia sono il comune o al massimo la frazione). Tali attributi sono fondamentali per il processo di geocoding.
Nell'intraprendere questo processo bisogna tenere conto di due ordini di problemi: uno più generale che è costituito dalla base di riferimento che permette la localizzazione degli oggetti (lo stradario di poco fa) e uno più specifico che riguarda gli indirizzi relativi ai punti che si vogliono localizzare.
La base di riferimento, ovvero lo stradario, deve essere il più aggiornata possibile sia in termini di strade che in termini, ovviamente, di toponomastica e numerazione civica.
Gli indirizzi, che individuano gli oggetti da localizzare invece, devono necessariamente essere scritti nel miglior modo possibile. Per miglior modo possibile intendo dire che devono essere conguenti con la base di riferimento che utilizzerò per posizionarli, detto in altri termini devono essere normalizzati.
Per ovviare a questi inconvenienti ho deciso di utilizzare un servizio web offerto da Google (da qui il titolo del post) che a partire da un spreadsheet caricato su Google Docs contenente un campo ID (identificativo) e un campo Indirizzo (non deve necessariamente chiamarsi così) genera le coordinate lat/long per ogni punto contenuto nel foglio di calcolo. In questo modo i diversi punti vengono localizzati su Google Maps attraverso un sistema di coordinate assoluto che non ha più bisogno del prerequisito fondamentale costituito dalla base di riferimento (lo stradario della viabilità).
Il vantaggio di utilizzare come base di riferimento lo stradario di Maps è duplice: abbiamo una base aggiornata, o meglio, costantemente aggiornata e il lavoro di normalizzazione degli indirizzi viene fatto in realtime dal motore di Google. Questo vuol dire che tutto il lavoro di normalizzazione per rendere le due basi dati conguenti e che dovrebbe essere fatto a monte del processo di localizzazione non è più necessario. Potrò così avere un indirizzo scritto come via Cesare Battisti 1, Torino e un altro scritto come via Battisti Cesare 3, Torino: i due punti saranno sì ben distinti perchè si riferiscono a due numeri civici diversi ma saranno correttamente sulla stessa via.
Giusto per dare qualche numero sui risultati: su un totale di poco più di 2.000 indirizzi, circa il 90% è stato localizzato e posizionato in maniera corretta, il restante 10% è formato da oggetti non localizzati o da oggetti che richiedono un controllo più puntuale per essere validati.
Lo stesso lavoro, affrontato con un approccio diverso, ha invece portato ad una prima localizzazione corretta di circa il 50% dei punti, la localizzazione del restante 50% avrebbe richiesto un lavoro di normalizzazione e di armonizzazione della base dati di partenza non indifferente.
Concludo con un piccola riflessione: quello che per molti è un semplice strumento per ricercare indirizzi, luoghi, punti di interesse e per pianificare percorsi, può diventare uno strumento di lavoro avanzato, efficace ed economico all'interno di realtà diverse che quotidianamente hanno a che fare con dati spaziali.
Il think big, start small è anche questo.
Chissà se in quel di Mountain View, qualche anno fa, avranno pensato proprio in questo modo ... a giudicare dai risultati credo proprio di sì!

Nessun commento:

Posta un commento