Veneto/Guide e documentazione/Import: dalla CTRN Veneto a OSM

From OpenStreetMap Wiki
Jump to: navigation, search
Import dalla CTRN5000/10000 a OSM con SHP-to-OSM

In questa guida viene spiegato passo-passo uno dei metodi utilizzabili per importare in OSM i dati messi a disposizione dalla Regione Veneto nella la Carta Tecnica Regionale Numerica(CTRN).
Il processo in sé è molto semplice, dopo le prime importazioni diverrà meccanico e il problema più grosso consisterà nel mantenere un adeguato livello di... concentrazione!

Attenzione

Questa guida è rivolta principalmente a utenti Windows e GNU/Linux, tuttavia il software utilizzato è multi-piattaforma e il processo non dovrebbe differire molto per altri Sistemi Operativi. Integrazioni a questa guida sono bene accette e auspicate!

Perchè utilizzare un workflow

Un corretto workflow ha il principale vantaggio di introdurre con l'upload di ogni quadro d'unione il minor numero di errori possibili nel database di OSM, errori rappresentati principalmente da nodi duplicati e dalle geometrie sovrapposte.
Oltre a questo importante aspetto permette anche di manipolare di volta in volta tipologie di dati omogenei tra di loro.
Un esempio di workflow può considerare la suddivisione per tipologia di dati degli shapefiles in cinque principali gruppi:

Così facendo, e unendo di volta in volta in JOSM i layers così creati e preventivamente validati e corretti si otterrà un quadro d'unione pronto per l'upload estremamente pulito e che comporterà la creazione di nodi duplicati solamente in corrispondenza dei punti (nodi) di contatto con gli elementi dei quadri d'unione confinanti eventualmente presenti, rendendo la loro individuazione ed eliminazione al termine dell'upload estremamente semplice e veloce.

Cosa serve

  • JOSM con il plugin SimplifyArea e in caso di necessità OpenData (JOSM richiede Java per funzionare)
  • Un editor GIS. Per questa guida è stato utilizzato Quantum GIS 2.0.1
  • Lo script shp-to-osm (usate la versione 0.8.5)
  • Uno script bash, descritto più sotto (necessario solo agli utenti GNU/Linux)
  • Il file delle regole. Create un file vuoto di testo (.txt) e incollateci dentro tutto il testo del riquadro delle regole.

Scaricate e installate JOSM e QGIS. Assicuratevi che la variabile di sistema di Java sia correttamente impostata: per assicurarvi di ciò basta che apriate il prompt dei comandi di Windows e digitiate "java" seguito da INVIO. Se tutto è impostato correttamente vi appariranno un elenco di comandi altrimenti vi verrà notificato un messaggio di errore di comando: in questo caso seguite QUESTA guida per configurare correttamente il sistema.

Create una cartella a vostro piacere (consiglio una con una radice semplice es. "C:/Mappe") dove andrete a piazzare lo script (rinominatelo con un nome più semplice tipo shptoosm.jar) e il file delle regole.

Ora siete pronti ad iniziare il lavoro!

Gli shapefiles: download

Per vedere quali riquadri mancano all'upload, controllate la pagina Overlay confini CTR Veneto, cliccando "fabbricati" sulla destra. Tutti i riquadri non segnalati in rosso debbono essere ancora convertiti.

La materia prima, i files .shp, sono disponibili sul geoportale della Regione Veneto, liberamente scaricabili da chiunque in formato .zip, raggruppati in quadri d'unione selezionabili per Provincia o Comuni di appartenenza o Codice identificativo.
Le sottostanti Immagini 1 e 2 a illustrano il processo di download meglio di molte parole.

Immagine 1
Immagine 2

Cliccando sulla freccina verde a fianco dei quadri d'unione si aprirà un'altra finestra: click su fuso Ovest e salvare in una cartella dedicata.

Gli shapefiles: organizzazione (solo Linux)

Una volta scaricati gli .zip in un'unica directory estrarre il loro contenuto in altrettante subdirectory.

Sfortunatamente, la denominazione dei files non è sempre uniforme: si possono avere files tutti col nome MAIUSCOLO, tutti in minuscolo e altri ancora con uno stile MiStO. Per evitare inconvenienti durante i successivi passaggi del processo di conversione è necessario (almeno per chi utilizza una distribuzione GNU/Linux Debian-based) rinominare tutti i files uniformandoli ad un unico stile.
Per fare questo si può utilizzare un piccolo script bash che andrà fatto girare all'interno di ogni subdirectory. Creare quindi un nuovo file con un editor di testo, contentente le seguenti righe di codice:

    #!/bin/bash
    #converte in maiuscolo i nomi dei files contenuti nella cartella

    for i in *; do mv $i $(echo $i | tr [:lower:] [:upper:]); done

Salvarlo con nome, ad es. MAIUSCOLE.SH, e renderlo eseguibile. Se si sta pianificando l'import di numerosi quadri d'unione si può considerare la creazione di un alias per un richiamo più spiccio dello script.
A questo punto si può procedere alla conversione degli .shp.

Conversione da .shp a .osm con QGIS e script

QGIS - Il sistema di riferimento

Si procederà adesso all'impostazione del Sistema di Riferimento (SR) dei files .shp in un formato compatibile con OSM. Per far ciò useremo Quantum GIS (QGIS).

Attenzione

Questo può non essere il metodo più sbrigativo per effettuare suddetta conversione, tuttavia, dal momento che QGIS tornerà utile più avanti, seguire questo procedimento ha il vantaggio di costringere l'utente ad un primo, superficiale quality-check dei dati che si appresta a manipolare.

  1. Avviare QGIS (Immagine 1).
  2. Aprire lo shapefile che interessa, in questo caso "FABBRIC.SHP", anche semplicemente trascinando il file all'interno del programma. Selezionare dall'elenco il SR "Monte Mario / Italy zone 1" ("zone 2" nel caso si fosse costretti ad utilizzare il fuso Est) che si trova nella categoria "Sistemi Coordinate Proiettate->Transverse Mercator", utilizzando anche la funzione filtro per trovarlo più velocemente e cliccate OK (Immagine 2).
Immagine 1
Immagine 2

QGIS - Prima pulizia del file

  1. Dalla barra dei Menù selezionale Layer->Apri Tabella attributi (Immagine 3)
  2. Dall'elenco (colonna DESCRZ) vanno eliminati i seguenti elementi:
  • edificio civile (pertinenza)
  • edificio industriale (pertinenza)
  • isolato
  • cortile interno

Inoltre controllare se nella colonna DATA_MOD è presente una data (es. 199911), se è presente eliminare tutti gli elementi che hanno quel dato in quella colonna (ATTENZIONE a non confonderlo con la colonna DATA_CRE).

Per eliminare gli elementi, attivate la modalità Modifica (CTRL+E o pulsante con l'icona matita), selezionatelo e premente il pulsante con l'icona con il quadrato rosso e la x (scorciatoia CTRL+D). Quando avete fatto, uscite dalla modalità Modifica e premete il tasto "Save".

Immagine 3

QGIS - Riproiezione e salvataggio del file

Quando avete effettuato la pulizia, dal menù Layer a sinistra, click tasto destro->Salva con nome (Immagine 4). Impostare il tipo di file, il nome e il percorso di salvataggio e il SR. Quest'ultimo è fondamentale sia il "WGS84" (Immagine 5).Click su "OK".

Immagine 4
Immagine 5

Conversione in .xml

Ora non resta che convertire il file .shp appena salvato in un formato che possa essere aperto e gestito con JOSM, per poi essere unito agli altri files appartenenti allo stesso quadro d'unione e infine caricato nel database di OSM.

Attenzione

È possibile, quando ci appresta a convertire shapefiles contenenti punti, che shp-to-osm fallisca nell'operazione. In questi casi si può utilizzare una differente procedura descritta successivamente.

Il file .shp da convertire deve trovarsi nella stessa directory del file shp-to-osm-0.8.1-with-dependencies.jar e del rispettivo file delle regole.

  • Aprire il terminale ed incollare quanto segue:

<pre\> java -cp C:/Maps/shp-to-osm-0.8.5-with-dependencies.jar com.yellowbkpk.geo.shp.Main --shapefile "C:/Maps/NOMEFILE.shp" --rulesfile C:/Maps/regole.txt --osmfile NOMEFILE --outputFormat osm --outdir C:/Maps </pre>

Ovviamente se si usa una versione successiva alla 0.8.5 va modificato il comando inserendo la corretta versione. Gli utenti windows devono inserire anche l'estensione (.txt) del file delle regole.

Il NOMEFILE.shp dev'essere il nome usato al momento del salvataggio in QGIS (Immagine 6), mentre il nomefileoutput può essere assegnato a piacere. La creazione di un alias rende l'operazione più agevole e veloce.
Il risultato ottenuto sarà un file .xml pronto per JOSM e il cui contenuto risulterà taggato secondo quando definito nel file delle regole per shp-to-osm. È opportuno rinominare immediatamente il file .xml appena creato per evitare sovrascritture e una conseguente perdita di dati in caso di successive conversioni.

Se tutto andrà bene apparirà il messaggio "Writing out to file C:\Maps\NOMEFILE.xml. Done."

Cambiate l'estensione da .xml a .osm e proseguite con JOSM. In caso di errori seguite le istruzioni qui sotto.

Terminale di Windows

OPZIONALE: correzione dello shape con Qgis

È possibile che alcuni files .shp contengano errori che impediscono la conversione con shp-to-osm. In tal caso, seguire la procedura sottostante e ritentare.

  1. Aprire in Qgis il file .shp
  2. Menù: "Vettore"-->"Strumenti di Geometria"-->"Controllo validità geometria"-->"OK"
    • Gli errori del tipo: "La geometria x interseca se stessa", possono essere al momento trascurati e corretti più tardi in Josm
    • Gli errori: "La geometria x non è chiusa", vanno corretti per poter poi usare Shp-to-osm. Prendere nota dei numeri x delle geometrie errate
    1. "Layer"-->"Attiva/Disattiva modifica"
    2. "Layer" -->"Apri tabella attributi". Cliccare sul numero di riga x e sull'icona "Zoom mappa alle righe selezionate"
    3. "Modifica"-->"Semplifica geometria". Il cursore diventa un "+"
    4. Cliccare sulla geometria prima selezionata e impostare la tolleranza tutta a sinistra nella finestra che si apre. In questo modo la geometria viene corretta senza cambiarne la forma.
    5. "Layer"-->"Attiva/Disattiva modifica"-->"Save"
  3. Salvare lo shape come nuovo file di nome "edifici" ("Layer"-->"Salva con nome...", Formato: "ESRI Shape file"). Senza questo passo Shp-to-osm potrebbe segnalare degli errori.
  4. Chiudere Qgis rispondendo "No" alla domanda "Salvare progetto?".

OPZIONALE: Conversione in .xml (punti)

Per ricavate i dati da questo tipo di .shp si utilizzerà QGIS e un online converter, GPS Visualizer, che usa come backend GPSBabel.

  1. Avviare QGIS e creare un file .shp vuoto (Immagine 7)
  2. Immettere nel campo "Nome" un valore qualsiasi, premendo un tasto a caso della tastiera, per l'occasione il tasto "r" (Immagine 8)
  3. Click su "Aggiungi alla lista degli attributi" (Immagine 8) e poi su "OK" salvando il file (per l'occasione chiamato "base.shp") nella directory desiderata
  4. Click col tasto destro (Immagine 4) e mettere la spunta sulla voce "Modifica"
  5. Aprire il file .shp dal quale si estrarranno i punti (in questo caso il file "SIM_IDRO")
  6. Click sulla voce "Apri tabella attributi" (Immagine 9)
  7. Selezionare gli elementi che si intende estrarre dalla tabella utilizzando lo strumento di ricerca integrato (Immagine 10)
  8. Copia/incolla nel file "base"
  9. Chiudere la tabella attributi
  10. Togliere la spunta dalla voce "Modifica" del file "base" salvando le modifiche
  11. Impostare il SR "Italy mainland zone 1 GB Roma40"
  12. Salvarlo in formato .kml nella directory desiderata (Immagine 11)
Immagine 7
Immagine 8
Immagine 9
Immagine 10
Immagine 11

Per evitare di far confusione è preferibile preparare singoli files .kml per tipologia di elemento estratto (ad esempio "pozzi.kml" per i pozzi o "fontane.kml" per le fontane) per poi successivamente convertirli in un formato compatibile con JOSM.

Si convertono infine i files .kml in .xml tramite il form di GPS Visualizer.

JOSM: validazione, correzione errori e semplificazione geometria

Appena aperto il vostro file, la primissima operazione da fare è effettuare un controllo col validatore, che troverete nel riquadro più in basso a destra di JOSM. Selezionate "Convalida" e dopo il controllo appariranno gli errori presenti nel vostro file .osm.

Validatore JOSM

Ora andremo a correggere le varie tipologie di errore:

Correzioni Automatiche

Questi sono errori che JOSM può risolvere automaticamente con un solo click. A questa categoria appartengono i seguenti errori:

  • Errori -> Nodi duplicati di edifici - Nodi duplicati
  • Avvertimenti -> Nodi duplicati

Questi errori devono essere SEMPRE risolti! Selezionate la categoria e premete il tasto "Correggi" presente nel box.

Correzioni Manuali

Edificio interno ad altro edificio e Edifici Sovrapposti

In questo caso la geometria di un edificio è leggermente sconfinante in quella di uno adiacente (spesso dovete zoomare per vedere il problema). Se vi sono due nodi vicini come nell'esempio, selezionateli entrambi e uniteli tramite Strumenti->Unisci Nodi (scorciatoia tasto "M"). Nel caso fosse solo un nodo vicino a uno percorso, selezionatelo e unitelo al segmento adiacente tramite Strumenti->Unisci il nodo al percorso (scorciatoia tasto "J").

Edifici sovrapposti

ALTRI ERRORI VERRANNO AGGIUNTI...

Edifici tagliati ai bordi

Nel caso vi occupiate di più riquadri contemporaneamente, vi potreste ritrovare con alcuni edifici tagliati ai bordi del file e se aprite il riquadro adiacente, spesso troverete l'altra metà. In questo caso si effettua l'unione della geometria, selezionando da un livello il poligono tagliato, lo si copia (CTRL+C), ci si sposta sull'altro livello e lo si incolla (CTRL+V). Si uniscono i nodi sovrapposti (selezionateli e premete M) e si unisce la geometria selezionando entrambi i poligoni e premendo SHIFT+J. È meglio effettuare questa operazione prima dell'upload, altrimenti si dovrà intervenire a mano post- caricamento!

Edifici tagliati ai bordi

Semplificazione Geometria

Dopo aver risolto tutti gli errori, si può procedere alla semplificazione della geometria utilizzando il plugin SimplifyArea. Per scaricarlo, andate su Modifica->Preferenze. Spostatevi su Estensioni (icona della presa di corrente) e selezionate dall'elenco SimplifyArea tramite il segno di spunta. Dando ok vi verrà chiesto di riavviare JOSM. Sempre da Modifica->Preferenze spostatevi sulla nuova sezione "Semplifica area" e impostate i valori come nell'immagine.

Riaprite il file osm su cui lavorate, selezionate tutto (CTRL+A) e effettuate la semplificazione tramite Ulteriori Strumenti->Semplifica Area (scorciatoia CTRL+MAIUSC+Y).

Rifate un controllo col validatore per essere sicuri che non vi siano nuovi errori.

Configurazione plugin SimplifyArea

JOSM: riallineamento PCN2006

Dopo aver corretto tutti gli errori e semplificato la geometria è necessario riallineare tutto il file tramite le ortofoto aeree PCN2006.

Attenzione

È OBBLIGATORIO riallineare tramite le ortofoto PCN2006. Non caricate dati non allineati con queste foto e soprattutto NON DOVETE RIALLINEARE con Bing (troppa differenza con la realtà)!.

Su Modifica->Preferenze andate su Impostazioni delle immagini aeree e controllate che PCN2006 Italia sia presente nel menù in basso. Se non lo fosse, cercatelo da quello appena più sopra e attivatelo tramite il pulsante "Attiva". Uscite con OK.

Ora, aprite il vostro file osm e dalla barra dei menu selezionate Immagini aeree-> PCN 2006 Italia. Dopo qualche istante cominceranno ad apparire le immagini aeree sulle quali effettuerete il riallineamento. Selezionate tutto con CTRL+A e spostatelo in modo tale da far combaciare la geometria con le fotografie. Ovviamente non potrà esserci un riallineamento al 100%, basta che controlliate in vari punti che esso sia accettabile. Salvate il file.osm.

Riallineamento con le ortofoto

JOSM: integrazione con dati esistenti

Riaprite nuovamente il file .osm ora corretto, semplificato e riallineato. Dalla barra dei Menu, selezionate File->Scarica da OSM (scorciatoia CTRL+MAIUSC+Tasto Giù), selezionate in basso a destra "Scarica come nuovo livello" e premete Scarica. Si creerà un nuovo livello in cui potrete vedere cosa c'è già presente sui server OSM. Prima dell'upload finale controllate che:

  • Non vi siano edifici presenti che si sovrappongano con quelli presenti nel vostro file. Nel caso siano presenti, tramite Bing controllate che non siano più recenti rispetto a quelli presenti nei dati del veneto. Se si, cancellateli dal vostro file convertito.
  • Controllate anche per edifici mal disegnati/ricalcati dalle ortofoto presenti nei server OSM: ricordatevi che se dovete cancellarli chiedete sempre l'autorizzazione a chi li aveva creati. Per scoprire chi è, selezionate l'edificio interessato e nella colonna di destra, riquadro Cronologia, premete Visualizza. Vi si aprirà una finestra con tutte le modifiche effettuate su quella geometria e chi le ha fatte. Se clickate sul nickname, vi si aprirà il sito OSM, da cui potrete inviare un messaggio per chiedere l'autorizzazione a modificarlo/eliminarlo.
  • Integrate i dati presenti con i vostri: nel caso di chiese, cimiteri, impianti sportivi , campi di gioco e/o scuole, copiate i valori dei tag, selezionando il punto/geometria dal livello del server OSM, premete CTRL+C, spostatevi sul vostro livello e incollate le etichette tramite CTLR+SHIFT+V sulla geometria interessata. Eliminate poi il vecchio dato dal livello del server OSM.

Quando avete fatto pulizia, caricate il livello dei server OSM modificato tramite il tasto Carica/Upload e come messaggio potete utilizzare "Pulizia zona XXXXX" dove XXXXX è il nome del riquadro su cui avete lavorato.

Livello dati server OSM
Finestra Cronologia

Caricamento dei dati

Al momento di caricare i dati sul server configurare la finestra di caricamento come segue.

  • Commento, es. "Upload zona XXXXX" dove XXXXX è il nome del riquadro che caricate. Se volete essere ancora più precisi, potete usare "Upload zona XXXXX (CTR YYYYYY)" dove YYYYYYY è il numero del riquadro che caricate
  • Scheda "Etichette del nuovo gruppo di modifiche". Aggiungere la coppia chiave = valore:
  • source = Regione Veneto, License IODL-2.0 (http://dati.veneto.it/?q=content/elementi-ctr-vettoriale-alla-scala-15000)
  • Scheda "Avanzate" --> Carica i dati in raggruppamenti di oggetti. --> 250.
Attenzione

È OBBLIGATORIO inserire la chiave source dato che in quella esplicitiamo da dove provengono i dati e soprattutto il tipo di licenza a cui sono soggetti.

Premete "Carica le Modifiche" e attendete la fine.

Finestra di Upload
Inserimento chiave "source"

Aggiornamento Tabelle CTR

Per tenere traccia del lavoro effettuato, dopo ogni ciclo di upload bisogna aggiornare le tabelle presenti QUI, andando nella colonna FABBRIC e aggiungendo la parola "Si" (senza virgolette). In questo modo verrà anche aggiornato periodicamente il file Overlay Confini CTR Veneto


Riconoscimenti e fonti

Questa guida non sarebbe stata creata senza il contributo anche indiretto ma fondamentale di alcuni users, che attraverso le Mailing List nazionale e regionale e questo stesso wiki hanno in passato condiviso le proprie conoscenze con la community, gettandone di fatto le basi.