IT:Biking-Improver-Import/Plan Outline

From OpenStreetMap Wiki
Jump to navigation Jump to search

Biking-Improver-Import è un'importazione dei dataset recuperato da un mapathon organizzato utilizzando Biking-Improver come strumento. Questo set di dati contiene nuovi tag riguardanti vie e nodi di una città.

Il desiderio del progetto è quello di aumentare i dati riguardanti la ciclabilità all'interno di OSM.

Informazioni sulla banca dati

Il dataset viene creato considerando diversi nodi e percorsi all'interno di OSM. Se in un percorso o in un nodo mancano determinati tag relativi alla ciclabilità, viene creata una domanda. Gli utenti possono rispondere alle domande all'interno dell'app Web e una volta che ciò accade, la risposta viene tradotta in un tag OSM. Una volta che una risposta riceve 2 convalide, il tag aggiornato è pronto per essere inviato a OSM.

Nella tabella sottostante è possibile vedere una parte di come è strutturata la tabella del database relativa alle domande:

TYPE QUESTION ID SCORE VALIDATING ANSWERS ICON TAGANSWER ANSWER USERANSWERED NUMBEROFVALIDATIONS USERSWHOVALIDATED SENT TIME
WAY Posso usare la bicicletta in questo modo? 22986084 1 no sì,no pedal_bike bicycle 0 no 0
  • TYPE: rappresenta il tipo della geometria (può essere nodo o via)
  • QUESTION: la domanda a cui l'utente deve rispondere
  • ID: l'id della geometria
  • SCORE: il punteggio ottenuto dall'utente dopo aver risposto
  • VALIDATING: se si tratta o meno di domande di validazione (le domande di validazione vengono utilizzate solo nella web-app e i dati non vengono inviati a OSM)
  • ANSWERS: le possibili risposte che l'utente può dare
  • ICON: utilizzata dalla webapp, mostra un'icona vicino alla domanda
  • TAGANSWER: il tag collegato alla risposta. Quindi nell'esempio i dati inviati a OSM sarebbero "bicicletta: risposta" dove la risposta può essere sì o no
  • ANSWER: la risposta data dall'utente
  • USERANSWERED: l'utente che ha risposto alla domanda. Se l'utente ha effettuato l'accesso tramite OSM, i dati in OSM verranno aggiornati utilizzando le sue credenziali, altrimenti un account personalizzato invierà i dati a OSM
  • NUMBEROFVALIDATIONS: il numero di volte in cui gli utenti hanno convalidato la risposta. Quando questo valore raggiunge 2 i dati possono essere inviati a OSM. Se questi dati non raggiungono almeno 2, i dati non verranno inviati a OSM
  • USERSWHOVALIDATED: gli utenti che hanno validato la risposta
  • SENT: se la risposta è stata inviata o meno a OSM
  • TIME: un valore utilizzato per verificare se inviare o meno i dati utilizzando le credenziali dell'utente o un account personalizzato.

C'è anche un'altra tabella che salva il changeset e le importazioni create e inviate a OSM. Questa tabella è simile alla seguente:

CHANGESETID NEWDATAIMPORT ID TYPE
  • CHANGESETID: l'id del changeset creato prima dell'importazione
  • NEWDATAIMPORT: I nuovi tag che sono stati importati in OSM. (ad esempio: bicicletta: sì)
  • ID: l'ID della geometria
  • TYPE: Il tipo della geometria

Obiettivi

L'obiettivo dell'importazione è incrementare i dati relativi alla ciclabilità all'interno di OSM. L'obiettivo è aggiornare solo i tag senza influenzare le geometrie.

Le importazioni verranno effettuate durante il mapathon una volta ogni ora. Le importazioni verranno effettuate utilizzando un account personalizzato o utilizzando gli account degli utenti.

Programma

Le importazioni verranno effettuate entro la fine di settembre o l'inizio di novembre, la data esatta deve ancora essere decisa

Import dei dati

Background

Sito di origine dati: https://bikingimprover.gisdev.io, i dati sono all'interno del database contenuto nella web-app.
Licenza dati: https://github.com/DigitalCommonsLab/bikingimprover/blob/main/LICENSE
Tipo di licenza (se applicabile): Licenza ODbl.
Link all'autorizzazione (se richiesto): Stiamo utilizzando i dati OSM, quindi ODbl, https://www.openstreetmap.org/copyright
Conformità ODbL verificata:

File dati OSM

I file OSM vengono generati partendo dal database e creando un file .osm pronto per essere utilizzato per una chiamata put all'API OSM. Vengono aggiornati solo i tag. Poiché il database è archiviato all'interno della web-app, il dataset non è disponibile pubblicamente, è comunque possibile verificare come vengono creati i dati dal repository su https://github.com/DigitalCommonsLab/bikingimprover/


Tipo di importazione

Le importazioni verranno effettuate durante gli eventi organizzati e verranno effettuate ogni 40 minuti dall'inizio dell'evento. Le importazioni verranno effettuate automaticamente quando una risposta data da un utente raggiunge 2 o più convalide. Se l'API OSM restituisce errori, non viene applicata alcuna modifica. Il metodo utilizzato per le importazioni è l'utilizzo dell'API OSM. In particolare recuperiamo gli elementi che andremo ad aggiornare, aggiungiamo i nuovi tag, creiamo un changeset, eseguiamo l'importazione e chiudiamo il changeset.

Preparazione dei dati

Riduzione e semplificazione dei dati

Poiché le importazioni riguardano solo la modifica di tag e chiavi, stiamo aggiornando solo i tag. Per prima cosa controlliamo che il tag non sia già presente nell'elemento, se lo è allora scartiamo il nostro nuovo tag e poi procediamo a controllare gli altri.

Viene organizzata una mappa in cui gli utenti devono rispondere a semplici domande sulla ciclabilità. Le domande sono tutte collegate ad un attributo tag OSM in modo da poter inviare facilmente la risposta al database OSM. I tag inviati a OSM saranno compatibili con il sistema di tagging OSM.

Tagging plans

Viene organizzata una mapathon in cui gli utenti devono rispondere a semplici domande sulla ciclabilità. Le domande sono tutte collegate ad un attributo tag OSM in modo da poter inviare facilmente la risposta al database OSM. I tag inviati a OSM saranno compatibili con il sistema di tagging OSM.

Tag del changeset

L'importazione verrà effettuata utilizzando un account impostato per biking-improver. Verrà aggiunto un tag contenente la fonte e un tag con il commento “aggiungi tag…”. Utilizziamo anche il tag "bot":"yes".

Trasformazione dei dati

Per convertire i dati del database in formato osm utilizziamo uno script js. In particolare stiamo creando il file osm da inviare alla osm api estraendo i tag ed i relativi valori. Quindi vengono aggiunti il tag commento e la sorgente.

Risultati della trasformazione dei dati

I risultati sono simili a questi: Set di modifiche:

  <osm>
    <changeset>
    <tag k="source" v="Biking-Improver" />
    <tag k="bot" v="sì" />
    <tag k="comment" v="Aggiunta di tag ad alcuni elementi OSM. I tag riguardano la ciclabilità e sono stati convalidati dagli utenti utilizzando Biking-Improver." />
    </changeset>
  </osm>

Import:

 <osm version="0.6">
   <changeset>
   <tag k="source" v="BikingImprover"/>
   <tag k="comment" v="Adding tags tagsList with values valuesList using Biking-Improver"/>
   </changeset>
   <type id="id" changeset="changesetID" version="version" ${type === 'node' ? ` lat="lat" lon="lon"` : }>
       <tag k="segregated" v="yes"/>
       <tag k="oneway" v="yes"/>
   </type>
 </osm>

Workflow per l'unione dei dati

Approccio di squadra

Ciò verrà fatto automaticamente da uno script durante l'evento organizzato.

Riferimenti

L'importazione viene eseguita automaticamente, se sono presenti errori l'importazione non viene eseguita. Se l'API OSM restituisce errori, l'importazione viene annullata e non viene apportata alcuna modifica.

Flusso di lavoro

Istruzioni passo passo: - Ottieni l'xml della città da qui: https://osmit-estratti.wmcloud.org/. Il database viene creato seguendo le istruzioni nella pagina github: https://github.com/DigitalCommonsLab/bikingimprover. - Gli utenti rispondono alle domande utilizzando l'app web: https://bikingimprover.gisdev.io/. - Ogni 40 minuti l'app controllerà se le risposte hanno ricevuto o meno 2 annullamenti. - Le risposte che hanno ricevuto 2 convalide vengono raggruppate in base al giocatore che ha dato la risposta. - Quindi l'app web invierà i dati a OSM utilizzando il token dell'utente se ha effettuato l'accesso tramite OSM, altrimenti i dati verranno inviati tramite il nostro account personalizzato. - Prima che i dati vengano inviati viene eseguita una chiamata GET all'API OSM relativa al percorso o al nodo modificato (per verificare se il nodo o il percorso è ancora in OSM). - Se questa chiamata get riceve errori, gli aggiornamenti relativi a quel determinato elemento vengono scartati. - Se non ci sono errori allora confrontiamo i dati ricevuti dalla chiamata GET con i nuovi dati che importeremo. - Aggiungiamo i nuovi tag che le cose fatte a un elemento vengono salvate nel database sotto la tabella “changeset”, in modo che se un elemento deve essere ripristinato possiamo facilmente verificare quali dati sono stati modificati e ripristinarli rimuovendo i nuovi tag.

Vedi anche

la discussione sulla modalità di importazione si è svolta in questo forum della community italiana

 https://community.openstreetmap.org/t/importing-data-bikingimprover/104275