IT:Importazioni/Software

From OpenStreetMap Wiki
Jump to navigation Jump to search

A seconda del formato dei vostri dati di origine, avrete bisogno di un software per convertirlo nel formato OSM.


Processo

Questo è un esempio di come si può fare il processo di importazione. Le singole importazioni possono essere diverse.

  1. Guarda i dati sorgente e determina la mappatura dagli attributi usati nei dati sorgente ai tag usati per OSM.
  2. Scrivere un software nuovo o adattare quello esistente per fare la mappatura dai dati sorgente a uno o più file XML OSM. Usare ID negativi univoci per i nodi, le vie e le relazioni.
  3. Caricare il file OSM XML in JOSM e controllare i dati. Ripetere i passi da 1 a 3 fino a quando tutto appare corretto.
  4. Caricare i dati usando JOSM o il caricatore di massa.


ID negativi

Ogni oggetto nel database OSM ha un ID unico. Esso viene assegnato dal database OSM quando l'oggetto viene creato. Gli ID degli oggetti sono, ad esempio, utilizzati per mettere in relazione i modi con i nodi che contengono.

Quando si crea un proprio file XML OSM con dati che dovrebbero essere caricati non è possibile utilizzare gli ID normali. Dopotutto, il database centrale non conosce ancora gli oggetti. Ma bisogna comunque dare al proprio oggetto un ID, altrimenti non si possono creare le giuste relazioni tra nodi, vie e relazioni.

Il trucco comune per risolvere questo problema è usare ID negativi per i file locali. Al momento del caricamento, gli oggetti vengono creati uno ad uno nel database. Otterrai l'ID corretto dal database e in futuro userai quello al posto del tuo ID negativo.

Questo modo di fare è usato da JOSM, per esempio.


Importazione di dati

Ci sono diversi modi per aggiungere dati in massa a OSM. Ognuno ha i suoi punti di forza e le sue debolezze. Una cosa è di fondamentale importanza - non fare test contro le API live. Ci sono development instances del server openstreetmap a tua disposizione per verificare che il tuo processo/metodo/script funzioni per primo.

Qui ci sono vari metodi per fare un'importazione di massa.

via JOSM

Una delle prime e più comuni forme di importazione all'ingrosso è tramite JOSM. Alcuni programmi prendono i dati di importazione e li convertono in JOSM file format. Un utente può quindi aprire JOSM, caricare il file e premere il pulsante di caricamento.

Questo metodo è abbastanza affidabile e permette all'utente di visualizzare e manipolare i dati prima del caricamento. Lo svantaggio è che JOSM deve essere in grado di caricare i dati, il che diventa impraticabile una volta che i dati raggiungono diversi megabyte. Inoltre ci sono state segnalazioni che quando si caricano molti dati, il processo di solito si blocca dopo qualche migliaio di oggetti, il che lo rende poco utile per i caricamenti su larga scala.

Questo non può essere eseguito sul server perché JOSM è un programma interattivo.

via JOSM supportato da osmsync

osmsync è una libreria per confrontare i dati esterni con quelli già presenti in osm, producendo poi un file JOSM per la revisione umana. L'utilità funziona al meglio con specifici set di dati progettati per la manutenzione a lungo termine tramite osmsync.

via manipolazione diretta delle API

Questo metodo è piuttosto raro in generale, tuttavia è usato da Almien coastlines. Lì lo shapefile viene elaborato record per record e crea immediatamente gli oggetti. Il principale svantaggio di questo metodo è che generalmente nessuna registrazione è fatta di ciò che è stato caricato e creato e poiché viene fatto al volo, qualsiasi interruzione generalmente non sa a che punto è arrivata. Il changeset effettivo è ambiguo perché viene generato al volo.

In generale questo metodo dovrebbe essere scoraggiato.

via Osmosis

Osmosis è un programma che fa una manipolazione generale dei dati OSM. Tra le sue molte altre caratteristiche permette l'applicazione di un "file di modifica" ad un database. Comprende il formato di file osmChange.

Tuttavia, può essere applicato solo direttamente ad un database, non all'API e attualmente manca di caratteristiche come i segnaposto durante la creazione di oggetti (ID negativi) e l'integrità referenziale degli oggetti del database. Tuttavia, per l'applicazione di modifiche in cui gli ID degli oggetti sono noti in anticipo e ad un database locale è imbattibile.

Questi strumenti sono molto promettenti a lungo termine.

(FIXME: Spiegare perché questo è un modo promettente per fare grandi upload, visto che non può assolutamente fare upload).

via bulk_upload.py

bulk_upload.py è uno strumento scritto in Python che ha lo scopo di sostituire bulk_upload.pl e supportare le API v0.6. (che bulk_upload.pl non ha). Come bulk_upload.pl, memorizza in modo intelligente i progressi. Inoltre divide i cambiamenti in parti in modo che i compiti di caricamento siano più piccoli. Tuttavia, non sembra supportare il formato osmChange e quindi non può essere utilizzato per le modifiche.

via bulk_upload.pl (obsoleto)

Lo script Perl bulk_upload.pl è stato utilizzato sia per l'importazione AND e TIGER che per il caricamento di alcune linee di costa. Questo metodo segue fondamentalmente il concetto di prendere un changefile e applicarlo al database OSM. bulk_upload.pl non funziona più con la versione attuale delle API. (a meno che qualcuno non lo riscriva per creare dei changeset)

Con la rete di server OSM

Grandi fonti di dati (come TIGER) possono talvolta essere caricate da clienti con latenza molto bassa e larghezza di banda molto elevata sui principali server OSM.

See also