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 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!

Contents

Cosa serve

In ordine di utilizzo:

  • Gli shapefiles.shp liberamente scaricabili dal geoportale della Regione Veneto
  • Uno script bash, descritto più sotto (necessario solo agli utenti GNU/Linux)
  • Quantum GIS (versione utilizzata per la stesura di questa guida:1.7 Wroclaw)
  • shp-to-osm (scaricare il file shp-to-osm-0.8.1-with-dependencies.jar o una delle versioni successive, eccetto la 0.8.6 che genera file che JOSM non riesce ad aprire)
  • Il file delle regole per shp-to-osm creato appositamente per l'utilizzo con le CTRN Veneto
  • GPS Visualizer
  • JOSM

Gli shapefiles: download

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.

Attenzione
Alcune zone, le meno popolose della regione, non sono coperte dalla CTRN5000 e non sono perciò disponibili al download sebbene appaiano nella mappa dei quadri d'unione. L'unica soluzione è l'utilizzo delle CTRN10000 che, sebbene condividano con le sorelle minori le stesse tipologie di dati, comportano due svantaggi: il dover manipolare una maggiore mole di dati per singolo upload e una traslazione di circa 1,5 metri verso Nord che va corretta a mano prima di ogni caricamento, allineando il tutto con le CTRN5000 già presenti. Morale della favola: per quanto possibile, meglio utilizzare le CTRN5000!

Gli shapefiles: organizzazione

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.

Da .shp a .osm

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
  2. Aprire lo shapefile che interessa, in questo caso "FABBRIC.SHP" (Immagine 3)
  3. Click col tasto destro del mouse e selezionare la voce "Imposta il SR del layer" (Immagine 4)
  4. 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 Proietatte->Transverse Mercator" (Immagine 5)
  5. Click su "OK".
  6. Col tasto destro del mouse selezionare "Salva con nome" (Immagine 4)
  7. Impostare il tipo di file, il nome e il percorso di salvataggio e il SR. Quest'ultimo è fondamentale sia il "WGS84" (Immagine 6).
    Se si usa Linux e QGis 1.8 bisogna selezionare un sistema di riferimento personalizzato, dopo averlo creato tramite:
    Impostazioni --> SR personalizzato...
    Nome:
    Gauss-Boaga 7PAR
    Parametri: (click su icona Stella)
    +proj=tmerc +lat_0=0 +lon_0=9 +k=0.9996 +x_0=1500000 +y_0=0 +ellps=intl +units=m +no_defs +towgs84=-104.1,-49.1,-9.9,0.971,-2.917,0.714,-11.68 (click su icona Salva)
  8. Click su "OK".
Immagine 3
Immagine 4
Immagine 5
Immagine 6

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:
java -cp shp-to-osm-0.8.1-jar-with-dependencies.jar com.yellowbkpk.geo.shp.Main --shapefile ./nomefile.shp --rulesfile ./rules_CTR_Veneto --osmfile nomefileoutput --outputFormat osm

Ovviamente se si usa una versione successiva alla 0.8.1 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.

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?".

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.

Workflow

Un corretto workflow ha il principale vantaggio di introdurre con l'upload di ogni quadro d'unione il minor numero di bugs possibile nel database di OSM, bugs rappresentati principalmente da nodi duplicati. Il tool online Duplicate Nodes permette di rilevarne la presenza in un'area d'interesse e di intervenire per la loro eliminazione.
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:

  • Edifici ed elementi divisori
  • Viabilità
  • Infrastrutture
  • Idrografia
  • Vegetazione e terreno

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.

Suggerimenti per un sereno upload

  • I dati contenuti nelle CTRN risalgono ad un periodo che va dal 1997 al 2001. Sebbene si possano ancora considerare molto validi è bene valutarne l'attualità confrontandoli con la propria conoscenza del territorio o almeno con strumenti più recenti, quali le ortofoto del PCN risalenti al 2006. In caso di incertezza meglio evitare l'upload.

Correzione errori in JOSM

  • Alcuni shapefiles possono contenere errori (ad esempio, edifici o elementi divisori sdoppiati o inesistenti) è perciò buona abitudine controllarli singolarmente. Un check visivo normalmente è sufficiente per individuare la presenza di questi errori.
  • Validate, validate, validate! Appena aperto il file in JOSM per prima cosa validatelo! Validatelo dopo che avete terminato di manipolarlo, prima di unirlo ad un altro layer e dopo che l'avete unito! Quando pensate che il file sia pronto per l'import prima validatelo!

Qui sotto, sono elencati i controlli da fare preferibilmente:

  1. Attivare il plugin Validator e cliccare "Convalida". Correggere manualmente gli "Errori" e "Avvertimenti" segnalati, ad esempio:
    • correggere i nodi duplicati, selezionando l'errore "Nodi duplicati" e cliccando su "Correggi",
    • convertire le scale (Modifica-->Cerca-->"steps") da poligono a linea, dividendo il percorso in due ed eliminandone uno,
    • correggere gli "Edifici sovrapposti". Per ciascun avvertimento, selezionare i nodi presenti su il lato comune ai due edifici e premere "j".
    Consiglio: per avere l'auto-zoom quando si clicca su un errore/avvertimento, impostare "validator.autozoom=true" in "Preferenze" --> "Impostazione diretta delle preferenze".
  2. Ultimi controlli:
    • per ogni edificio taggato come school, hospital o church, dev'essere presente un'area (che racchiude i poligoni che lo compongono) oppure un singolo nodo, taggati con il tag "amenity" (vedi l'esempio per una scuola). Cercare gli edifici (es. Modifica-->Cerca--> school), ed aggiungere eventuali amenity=* (school, hospital, place_of_worship) mancanti.
    • controllare eventuali sovrapposizioni con edifici già presenti in OSM,
    • togliere nodi inutili, es. su una tratto rettilineo,
    • se si nota uno scostamento rispetto alla base degli edifici delle foto aeree (PCN), e se nel territorio c'è una buona corrispondenza tra gpx e PCN, si possono spostare gli edifici per farli corrispondere alle foto.

Caricamento dei dati

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

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.

Personal tools
Namespaces

Variants
Actions
site
Toolbox