Come usare i dati OSM – 1^parte

OpenStreetMap (OSM) è sicuramente la più nota ed importante fonte di geodati liberi (open geodata) del mondo. Nata e cresciuta come progetto collaborativo in cui tutti possono contribuire per registrare ed aggiornare i dati in essa presenti, in molti casi è l’unica risorsa disponibile per ottenere gratuitamente informazioni geografiche sulle entità (strade, edifici, monumenti, stazioni, sorgenti, … etc) presenti in una determinata area geografica. Ma per poter utilizzare al meglio questi dati, è auspicabile sapere come sono strutturati ed è di questo che vi voglio parlare in questo articolo.

Per chi ancora non lo sapesse OSM è mantenuta da un esercito di mapper volontari sparsi in tutto il mondo che aggiornano i dati partendo da rilevazioni sul campo (rilevazioni tracce e punti con il GPS) oppure da immagini aeree e satellitari. Esiste poi un numero residuo di dati che provengono da cosiddette donazioni da parte di fonti governative (per es. alcune nostre Regioni hanno permesso il travaso di geodati presenti nei loro webSIT) e di organizzazioni commerciali (per es. Bing consente l’uso delle ortofoto aeree per l’editing degli elementi di mappa). Nell’elenco delle potenziali fonti di dati ci sono le possibili fonti utilizzabili per l’Italia.

Qualità dei dati OSM

Naturalmente volendo usare i dati OSM, bisogna avere consapevolezza di quale sia la loro affidabilità e la loro precisione, soprattutto considerando che la digitalizzazione a video può essere stata fatta su foto non correttamente ortorettificate. Diciamo che pur non essendo “dati ufficiali” garantiti da un ente pubblico che li certifica, come hanno dimostrato anche alcuni studi (per certe aree sono stati confrontati i dati OSM con quelli della cartografia ufficiale) la loro affidabilità è mediamente buona.

E’ la stessa comunità di OSM che grazie al meccanismo della condivisione e del controllo reciproco, convalida i dati registrati dai mapper. Per fare questo esistono tutta una serie di strumenti che aiutano ad effettuare i controlli: uno di questi è incluso in uno dei più usati editor di dati OSM ed interviene quindi già in fase di registrazione (JOSM Validator). Altri possibili strumenti di controllo li trovate indicati nella pagina di Quality Assurance.

Capite bene che, essendo un progetto gestito da volontari, non tutte le aree geografiche sono coperte con lo stesso livello di qualità, sia perchè varia il numero di mappers sià perchè varia la loro capacità/esperienza di mappare.

In definitiva, la scelta di usare o meno i dati OSM dipende esclusivamente dall’uso che ne dovete fare e quindi dalla precisione che vi serve, anche se in diverse situazioni può capitarvi di non avere alternative e che, buoni o meno buoni che siano, i dati OSM siano l’unica possibilità per ricavare informazioni di una certa zona geografica. Per fare un esempio, se vi serve di conoscere quali siano i “bar” presenti in una​ data area metropolitana, forse a parte Google Maps (che non è open data), l’unica possibilità sia appunto OSM.

La licenza

Il fatto di disporre di dati totalmente liberi è uno dei principali punti di forza di OSM. E’ possibile usare i dati OpenStreetMap per qualsiasi scopo, anche quelli commerciali, con il solo vincolo di citare il progetto (OSM attribution) e usare la stessa licenza per eventuali dati derivati.
Inizialmente le condizioni d’uso di OSM erano dettate dalla CC-BY-SA 2.0; dal 2012 per i dati si è passati alla licenza ODbL (Open Database License 1.0). La CC-BY-SA ad oggi continua a valere per la cartografia.

ODbL

Senza scendere nei dettagli di cosa dice la ODbL, siete liberi di copiare, distribuire, trasmettere e adattare i dati, finché li attribuisci a OpenStreetMap e ai suoi contributori, quindi con attribuzione a “© OpenStreetMap contributors”. Se alterate o ne create di nuovi basandoti su di essi, potete rendere disponibili i risultati solo sotto la stessa licenza. Poi ovviamente, come tutti i progetti “aperti” sostenuti con il contributo volontario, una donazione è sempre gradita!

Per ulteriori informazioni e per leggere le FAQ sulla licenza di OSM, potete guardare nella pagina OSM License.

La struttura dei dati

I dati OSM sono mantenuti in un database PostgreSQL accessibile all’esterno (in lettura e scrittura) tramite le apposite API di OSM. La sua organizzazione è abbastanza complessa, ma non la tratteremo in questo articolo; interessa invece descrivere quali siano gli elementi topologici usati per memorizzare i dati e come vengano salvate le informazioni ad essi associate (i cosiddetti attributi, utilizzati in ambiente GIS).

In OSM gli elementi base adoperati per modellizzare gli oggetti e le entità reali presenti nel territorio sono:

  • nodo (node): un singolo punto geografico individuato da una coppia di coordinate (lat, long);
  • percorso (way): una interconnessione ordinata di almeno 2 ed al massimo 2000 nodi, cioè quello che con altra terminologia viene anche chiamato polilinea; viene individuato dalla sequenza ordinata (o array) delle coordinate dei suoi nodi;
  • relazione (relation): un raggruppamento di diversi elementi quali nodi, percorsi e in alcuni casi anche di altre relazioni, che insieme definiscono un’entità geografica più o meno articolata sul terreno.

Non abbiamo menzionato l’elemento area o poligono: in OSM l’area viene considerata come un caso particolare di percorso, ovvero un percorso chiuso. Fatta questa precisazione, l’area può comunque essere considerata come un quarto tipo di elemento (elemento derivato). Tuttavia, poiché non è detto che tutti i percorsi chiusi siano delle aree, le “vere” aree vengono specificate con appositi tag (la spiegazione a riguardo tra due capitoli) che le caratterizzano come tali; solitamente viene usato il tag: area=yes.

elementi OSM

Diciamo che, a parte le relazioni, si tratta degli elementi topologici caratteristici per modellare geodati vettoriali in tutti i sistemi geografici.

Le relazioni

Le relazioni servono per descrivere elementi complessi o articolati che sono composti da più membri tra loro correlati; per capirci meglio con qualche esempio, si può rappresentare con una relazione:

  • un edificio composto da più elementi (multi-poligono) e magari con delle strade di collegamento;
  • una linea bus, fatta dal percorso più le fermate;
  • un ponte, o meglio i diversi elementi che lo compongono;
  • i limiti amministrativi

Ogni membro può avere opzionalmente un ruolo (testo descrittivo) che spiega qual’è la sua funzione all’interno della relazione. Per esempio, la figura seguente mostra una relazione che modella due edifici con cortili (è di tipo multipoligono) i cui membri sono delle linee (way) alcune esterne (role=outer) ed altre interne (role=inner):

membri relazione

Esistono diversi tipi di relazioni che nella pagina Types of Relation sono indicati tutti, sia quelli già riconosciuti che i proposti; tra i tipi più usati ci sono probabilmente:

  • associatedStreet per mettere in relazione le vie con i numeri civici;
  • multipolygon per creare poligoni complessi che si compongono di più di una way (per esempio un’area con un buco come un lago con un’isola in mezzo);
  • restriction per vietare le svolte;
  • boundary per raggruppare aree e creare enclavi ed exclavi;
  • route per creare dei percorsi, possono essere pedonali, ciclabili, linee di trasporti pubblici … etc;
  • enforcement per inserire elementi per misurare e documentare le violazioni veicolari;
  • destination sign per dare informazioni sulle destinazioni agli incroci e alle svolte (molto utile per i programmi di routing).

esempio relazione

E’ chiaro che quando un mapper deve decidere se una certa entità nel territorio deve essere registrata come relazione oppure no, non esistendo una regola rigorosa, il dubbio può sempre esserci. In questi casi gioca molto l’esperienza e l’esempio di come sono stati risolti altri casi simili.

Il sistema dei Tag

Le informazioni associate ai singoli elementi topologici sono espresse in OSM con i cosiddetti tag che in pratica sono delle coppie chiave=valore (key=value); solitamente la chiave descrive una famiglia di caratteristiche, che poi viene specificata dal valore. I tag sono assimilabili ai tipici attributi dei dati vettoriali.

Non esiste un numero fissato di tag da usare per descrivere un dato elemento (nodo, linea, area o relazione); se ne possono scegliere quanti se ne ritiene opportuno, anche se esistono delle pratiche consigliate. Qui di seguito vediamo per esempio i tag usati per descrivere una strada cittadina ed una scuola:

esempio OSM tag

La guida fondamentale per scegliere i tag più appropriati la trovate nella pagina Map features. Essa contiene un elenco dei principali tag di OSM raggruppati per categorie, dove per ciascun tag sono indicati, oltre alla descrizione, i tipi di oggetto con cui può essere usato, l’icona (se c’è) con cui viene rappresentato sulla mappa, un’immagine esempio dell’entità reale che rappresenta e, in alcuni casi, anche il conteggio degli elementi già presenti in OSM con quel tag.

OSM tabella tag standard

Da questo elenco poi si può accedere alle schede dettagliate dei tag, precisamente:

  • cliccando sulla key (prima colonna) si accede su una pagina dedicata ad essa (key con tutti i possibili value);
  • cliccando sul value (seconda colonna),  si accede alla scheda monografica del tag vero e proprio (coppia key=value).

Entrambe le schede sono molto utili (specialmente ai mapper) per avere informazioni più approfondite su cosa rappresentano i tag, statistiche d’uso e quando adoperarli.

Tra le categorie con cui sono classificati i tag, ci sono quelle indicate come “altre proprietà” che sono di carattere generale, ovvero relative a tag usabili con qualunque tipo di entità/oggetto e tra queste abbiamo in particolare:

  • il gruppo name che contiene tutti i possibili nomi con cui può essere identificato un elemento;
  • il gruppo properties che contiene delle generiche proprietà che possono essere utili per caratterizzare un elemento.

Le key ‘area’ ed ‘ele’

Tra le properties troviamo per esempio il tag area=yes, che serve per specificare quando un percorso chiuso rappresenta un area. Se si apre la scheda relativa sono presenti altre indicazioni sul suo uso ed anche due elenchi di tag: uno relativo a percorsi chiusi che restano tali (no aree) e l’altro relativo a tag che intrinsecamente rappresentano delle aree, senza bisogno di specificare il tag area=yes.

OSM tag area

Sempre tra le properties si trova un altro tag particolare: ele=numero che è associabile solo ai nodi (in alcuni casi anche alle aree) e rappresenta la quota espressa in metri, quindi permette di aggiungere la terza dimensione. Va detto che in OSM questa altitudine è espressa secondo il sistema WGS84/EGM96 (cioè usando come riferimento il geoide EGM96) che è differente dalla quota normalmente restituita dai dispositivi GPS (questi usano l’ellissoide WGS84). Nella pagina Key:ele viene spiegato tutto ed è presente una tabella in cui sono elencati i diversi sistemi di riferimento altimetrico dei vari paesi: per l’Italia il riferimento nazionale è il mareografo di Genova.

Eventualmente se si vuole esprimere la quota adoperando un diverso sistema altimetrico (uno locale) bisogna adoperare il tag ele:local=numero.

Tag liberi!

I tag elencati nella pagina Map features sono quelli approvati dalla comunità di OSM e da considerarsi informalmente i tag standard: quelli che OSM consiglia di usare. Tuttavia il sistema dei tag di OSM è libero, cioè tutti gli utenti possono proporre nuovi tag per migliorare la descrizione degli elementi o anche per consentire delle analisi spaziali basate su caratteristiche non ancora supportate dai tag già definiti.

Questa sorprendente caratteristica consente di mappare con estrema versatilità qualunque cosa in qualunque parte del mondo, associandogli un insieme di tag opportuni (ricordiamo che non c’è un limite al numero di tag usabili per ciascun elemento). Naturalmente la “buona prassi” è quella di partire dai tag standard, ma quando tra questi non si trovano quelli adatti per descrivere compiutamente l’oggetto mappato, se ne possono proporre di nuovi.

Nella pagina Proposal process ci sono le indicazioni su come si procede per proporre dei nuovi tag e nella pagina Proposed features si trovano catalogati tutti i tag che sono stati già proposti, raggruppati per comodità o per stage (attivi, inattivi, proposti) o per status (approvati, abbandonati, cancellati, obsoleti, … etc).

Comunque questo è un argomento che interessa di più gli editor di dati OSM; come semplici utilizzatori interessa invece sapere come districarsi in questa giungla di tag ed eventualmente risalire al loro significato quando è ignoto. Oltretutto nella mappa ufficiale di OSM vengono rappresentati solo gli elementi marcati con i tag cosiddetti “standard”, ma ciò non toglie che sia possibile realizzare delle cartografie specializzate o tematiche che riportino anche elementi con tag meno comuni ma inerenti lo scopo della mappa.

Esistono delle risorse on-line (vedi la pagina Finding your tag) che aiutano a cercare i tag di OSM per conoscerne il significato; tra queste quelle che consigliamo sono Taginfo e TagFinder. Naturalmente inutile dire che la ricerca inizialmente va sempre fatta nell’elenco dei tag standard (che sono i più frequenti).

Bene, per adesso ci fermiamo qui.

In un prossimo articolo vedremo quali sono i formati-file e gli strumenti con cui è possibile estrarre (esportare) i dati OSM e quindi come utilizzarli. Un’idea? Con il software open source QGIS.

Fonte revisionata: Geomappando

2 Comments

  1. Andreas

    Rispondi

    Come mapper io vi avrei già segnalato che nel name il “nome” va messo per esteso come da convenzione. Quindi name=Giacomo Leopardi non G. Leopardi 😉😂😁

  2. Marco Tagliabue

    Rispondi

    Grazie Andreas per l’appunto e per il fatto di seguirci! Un confronto costruttivo è sempre utile con chi ha esperienza nel settore

Leave Comment

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *