19 ottobre 2012

OpenStreetMap: aggiungere e modificare i dati


Seconda puntata scritta oggi pomeriggio per darvi subito qualche idea per passare il finesettimana. (Beh è  un hobby che vi suggerisce anche di uscire per completare l'esperienza, che volete di più... :P)

Elementi di base


Alla base della struttura dati di OpenStreetMap ci sono quattro concetti: il nodo, la linea (way), la relazione e il tag.

Un nodo è un semplice punto, definito dalle due coordinate geografiche (latitudine e longitudine).
Una linea è una lista ordinata di nodi.
Una relazione è composta da membri, siano essi nodi o linee, che hanno un ruolo all'interno di essa.
Un tag è una coppia chiave=valore che definisce un concetto e che va associato ad un nodo, una linea o una relazione.

Vi chiederete, come descrivo le aree? Non esiste un elemento nativo che corrisponde direttamente ad un'area ma ci sono linee chiuse per le quali è implicato il suo essere area (ad esempio un edificio) o che vengono forzate ad essere area tramite un tag (area=yes), oppure ancora, nei casi di aree complicate, si usano più linee chiuse associate in una relazione (ad esempio un edificio con un androne, o un'isola)

Facciamo degli esempi per capire meglio:
-un supermercato:
shop=supermarket (identifica un supermercato di medie dimensioni, i piccoli market possono essere shop=convenience ad esempio)
name=Carrefour Market (il nome)
brand=Carrefour (la catena a cui appartiene)
operator=Tiziocaio SRL (quello che si legge sullo scontrino)

-una strada:
highway=tertiary (una strada che in città è di attraversamento)
name=Corso Buenos Aires (il nome)
maxspeed=50 (velocità massima, se c'è il cartello ad esempio)
oneway=yes (è a senso unico)
sidewalk=both (ci sono i marciapiedi in entrambi i lati)
surface=asphalt (la superficie è asfaltata)

Ovviamente per sapere quale tag usare c'è l'aiutino: gli editor principali hanno i Preset che aiutano a compilare con delle maschere, ma c'è l'amica wiki (la pagina Map Features ad esempio contiene un sacco di schemi di tag ufficializzati) e il TagInfo che fornisce statistiche sull'utilizzo dei tag.
Una delle cose belle di OSM (e per alcuni è sofferenza) è la non-esistenza di obblighi per descrivere gli oggetti: si parla di "free tagging" visto che un giorno mi posso svegliare e decidere che voglio inserire su OSM il LUG della mia città come amenity=linux_user_group. Lo puoi fare si, ma non è una cosa sensata, visto che qualcuno ci ha già pensato prima (http://wiki.openstreetmap.org/wiki/Linux_User_Group) è meglio usare un tag già documentato. Nel caso non trovassi assolutamente una cosa che ti soddisfi, puoi formulare una proposta e documentarla sul wiki.

Gli strumenti per contattare la comunità


La comunità si parla solitamente tramite Mailing List (http://lists.openstreetmap.org/listinfo, quella italiana principale è talk-it) o tramite IRC (il canale italiano è #osm-it su irc.oftc.net), esiste anche un forum (http://forum.openstreetmap.org/) ma non è usato dalla comunità italiana -ci sono io che redireziono gli utenti ^^-.
Da qualche tempo c'è una pagina su Google+ (http://gplus.to/OSMItalia) e una pagina su Facebook (http://www.facebook.com/OpenStreetMap.Italia).
Generalmente se avete dubbi, vi basta contattare un utente molto attivo nella vostra zona e vi risponderà.

Creare un account


Per iniziare a mettere le mani in pasta, bisogna crearsi un account accedendo a questa pagina (anche accedendo tramite OpenID) e confermare la mail che arriverà. Accedendo con l'account appena creato, possiamo andare sul nostro profilo (http://www.openstreetmap.org/user/pincopallino), da dove possiamo consultare le modifiche che abbiamo fatto, le tracce gps che abbiamo caricato (da http://www.openstreetmap.org/traces), scrivere una nuova voce del diario (una specie di blog) e modificare le impostazioni, tra le quali consiglio almeno di modificare la propria posizione, semplicemente per così scoprire gli utenti più vicini nel caso si voglia organizzarsi per andare e girare insieme (i Mapping Party sono eventi organizzati in cui più persone vanno a mappare un determinato posto).

Contribuire: gli strumenti


Perchè esiste la possibilità di caricare le tracce gps? OSM non è una raccolta di percorsi consigliati (come può essere BikeMap -che per inciso usa OSM come sfondo), ma è possibile caricare le tracce in formato GPX e taggarle per avere (e dare la possibilità agli altri) una guida nel tracciare ad esempio dei sentieri. Ciò è utile specialmente se si possiede un GPS che registra tracce con una buona approssimazione (io uso un cellulare e quindi le tracce le tengo per me perchè fanno pena). I punti raccolti poi sono disponibili anche al download, vedi ad esempio questa infografica.

Dicevamo, si possono raccogliere informazioni sul campo in diversi modi:
-con un gps
-con una fotocamera (scattando una foto ai cartelli stradali ad esempio)
-con carta e penna

I GPS

Per GPS si intende un sistema di posizionamento basato su una costellazione di satelliti americani (ci sono sistemi alternativi di cui il principale è quello russo, il GLONASS, che viene ricevuto anche da certi modelli di cellulare): il ricevitore si collega ad un certo numero di satelliti -minimo 3- e dalle risposte dei satelliti "agganciati" riesce a desumere la propria posizione e altitudine (quest'ultima con un minimo di 4 satelliti), e la mostra o la salva a seconda di come la impostiamo.
I ricevitori 'standalone' sono generalmente i più precisi, e si distinguono in data logger e ricevitori (qui una lista): i ricevitori di solito hanno uno schermo e funzioni più avanzate, come la navigazione, mentre i data logger raccolgono solo i punti.
Gli smartphone hanno quasi tutti un modulo GPS che, anche se meno preciso di un ricevitore, permette di utilizzare applicazioni di navigazione, ma anche di raccolta dati.
Senza fare una rassegna (che magari sarà oggetto di altri articoli), per Android uso Geopaparazzi, ma andando sul più semplice c'è anche OsmTracker.

Come si raccoglie una traccia? Innanzitutto bisogna accendere il GPS un po' di tempo prima della partenza ed aspettare che faccia il 'fix' (si colleghi come detto ad almeno a tre-quattro satelliti) e raggiunga una buona approssimazione (io aspetto che si attesti sui 4-8 metri di errore prima di partire); attivando la tracciatura e camminando bisogna cercare di mantenere sempre una buona visuale del cielo, per migliorare la precisione (entrando in luoghi chiusi si perde quasi sicuramente il segnale! e così anche in luoghi circondati da 'pareti' come può essere un vicolo o una foresta). Durante la passeggiata si possono prendere note: molte app (tra cui quelle segnalate) permettono di georeferire appunti, foto o registrazioni audio.

Esportare la traccia su pc è il passo successivo: la si potrà utilizzare come aiuto nell'editor di nostra scelta o caricare su OpenStreetMap.
Attenzione a non usare direttamente le tracce! Servono solo come sfondo ricalcabile!

Carta e penna

A supporto dei rilievi sul campo in assenza di gps sono stati inventati da Stamen Design i Walking Papers e l'iterazione successiva, i Field Papers.
In pratica il servizio permette di stamparsi una mappa della situazione attuale inquadrando in una finestra il campo dove andremo a mappare: scelto lo sfondo (il livello normale che si trova sul sito principale o le foto aeree) e il formato della stampa, ci permetterà di scaricare un pdf che ha sopra un QR-Code.
Su questa stampa prenderemo le note a matita o penna mentre stiamo facendo i rilievi e, tornati a casa, la metteremo nello scanner (o faremo una foto leggibile). Le immagini risultanti le carichiamo sul servizio ed esse saranno disponibili sull'editor tramite un plugin come se fosse una traccia (o una foto satellitare) che possiamo ricalcare.

Mettiamo le mani in pasta!

Finalmente siamo pronti per procedere ad inserire dati su OpenStreetMap: dobbiamo solo scegliere un programma, e la nostra scelta ricade su JOSM, editor basato su Java e quindi disponibile su tutte le piattaforme.
Se siete RMS c'è un editor nativo, che si chiama Merkaartor; se invece non volete scaricarvi niente, c'è Potlatch2 disponibile direttamente dal menù Modifica nella pagina principale di openstreetmap.org.
Parlando in prima persona, il primo non l'ho mai considerato, Potlatch2 invece dicono che sia l'editor più semplice per chi inizia, ma non ci ho mai capito granchè e ci sono riuscito a fare solo un paio di semplici modifiche.

Su Linux basta dare
sudo wget -O /usr/share/josm/josm-tested.jar http://josm.openstreetmap.de/josm-tested.jar
e crearsi un file in /usr/bin/ chiamato "josm" contenente
java -jar /usr/share/josm/josm-tested.jar

Ora avviatelo e... scoprite voi come funziona!
Guide passo passo ne esistono in abbondanza e non ripeterò, sennò diventa troppo lungo e c'è il rischio che spieghi male, vi lascio un paio di link e qualche nota:
-La sezione su JOSM della Guida per Principianti
-LearnOSM

-Per scaricare e caricare si usano il terzo e quarto bottone della barra degli strumenti
-Per aprire una traccia gps la potete trascinare nell'area principale
-Potete zoomare con la rotellina del mouse, e fare il pan tenendo premuto il tasto destro.
-con F3 si accede ad un elenco di Preset ricercabili, che sono gli stessi del menu Presets: questi definiscono degli oggetti particolari e danno la possibilità di aggiungere tag compilando una maschera apposita
-Immagini satellitari: dalla scheda WMS TMS possiamo attivare ulteriori fornitori di immagini su cui ricalcare. Per l'Italia abbiamo le dettagliatissime foto di Bing (occhio però che non sono ortorettificate, quindi bisogna allinearle specialmente in zone montuose; si fa da Immagini aeree -> Scostamento e trascinando in corrispondenza di punti conosciuti), le ortofoto del Portale Cartografico Nazionale (2006 e in certe regioni 2008), ortofoto per Lodi, Lombardia e Sicilia. Per usare un livello di immagini, selezionarlo da Immagini Aeree.
-Accedete alle preferenze con F12: sulla sinistra vedete delle schede, nella seconda potete salvare le credenziali (che vengono trasmesse in chiaro), nella quarta installare qualche plugin (io uso principalmente measurement, pbf, piclayer, restart, turnrestrictions, utilsplugin2, walkingpapers -se decidete di applicare il metodo 'carta e penna')

Le Relazioni

Le relazioni servono a rappresentare oggetti complessi (non sono categorie!): ad esempio una strada particolarmente lunga, un percorso ciclabile ufficializzato, un edificio 'bucato', una linea dell'autobus, una restrizione di svolta.
Per capire meglio facciamo degli esempi:
-Consideriamo un edificio quadrato con un giardino in mezzo: normalmente tracceremmo un quadrato taggandolo building=yes, solo che così perdiamo l'informazione sulla presenza del 'buco'. Ci viene in aiuto la relazione multipoligono: tracciamo il 'buco' e selezioniamo questo e il percorso esterno, dai preset andiamo su Relazioni -> Multipoligono, inseriamo l'eventuale nome dell'edificio e clicchiamo Nuova relazione. Ci si presenta una finestra con tre pannelli: in quello superiore vediamo una tabella in cui inseriremo i tag (ad esempio se è una scuola inseriremo amenity a sinistra e school a destra), in basso a destra vediamo l'elenco degli oggetti selezionati e a sinistra l'elenco dei membri della relazione (che in questo caso coincidono alla selezione). Nella colonna ruolo attribuiamo all'anello esterno il ruolo outer, a quello interno il ruolo inner.

-Adesso diamo una occhiata ad una strada, per esempio la Via Aurelia (Relazione): ha 1355 segmenti di strada come membri, ed ha diversi tag:
type=route (è una relazione che definsce un percorso)
route=road (questo percorso è una strada)
ref=SS1 (la sigla è SS1)
operator=ANAS (è gestita dall'ANAS)

Conclusione

Ora potete iniziare ad editare la vostra città o qualunque posto vi venga in mente.
Nelle prossime puntate vedremo come utilizzare i dati e quali servizi esistono.

5 commenti:

  1. non è proprio banale...

    RispondiElimina
  2. @Anonimo

    Dimmi cosa non è chiaro che cerco di spiegarlo meglio :)

    RispondiElimina
  3. ottima idea la tua introduzione!
    L'anonimo lo capisco: non è proprio banale come aggiungere una foto su Facebook o correggere una pagina su Wikipedia. Per questo mi fa piacere che ci siano in giro introduzioni il più semplici possibile

    RispondiElimina
  4. @zioluc

    Grazie! Sulla non banalità me ne rendo conto, sia io sia quelli che sviluppano l'infrastruttura (infatti qualcosa si sta muovendo..)..

    Adesso ho associato il profilo al mio account Google+, quindi se ci sono domande particolari basta cerchiarmi :-)

    RispondiElimina
  5. Salve. Potete aiutarmi ad individuare una app (IOS o Android) che abbia le funzioni "turn by turn - voice guidance" anche in modalità off-line, per i sentieri delle mappe OSM ?
    Grazie

    RispondiElimina

Licenza
Licenza Creative Commons

Quest' opera è distribuita con licenza Creative Commons Attribuzione - Non commerciale - Non opere derivate 3.0 Unported. Questo blog non rappresenta una testata giornalistica, in quanto viene aggiornato senza alcuna periodicità. Non può, pertanto, considerarsi un prodotto editoriale, ai sensi della legge n. 62 del 7/03/2001

Disclaimer immagini

Le immagini utilizzate in questo blog appartengono ai loro rispettivi autori e sono utilizzati per scopi educativi, personali e senza scopo di lucro. Ogni eventuale violazione del copyright non è intenzionale, ma se si riconosce un'immagine protetta da copyright, fatemelo sapere qui, e sarò lieto di aggiungere i credits o modificarla o rimuoverla.

Disclaimer images

Images used on this blog belong to their respective authors and are used for educational, personal and no profit purposes. Any eventual copyright infringement is not intentional, but if you recognize a copyrighted image, please let me know here, and I'll happily provide to add the right credits or modify or remove it.