User:Groppo/Bozza Import edifici CTR Veneto

From OpenStreetMap Wiki
Jump to navigation Jump to search

Gli shape file dei fabbricati della CTR del Veneto possono essere importati in OSM:

  • trasformandoli in tracce gpx e poi elaborandoli con JOSM,
  • usando il programma Shp-to-osm, che restituisce un file osm con i tags già compilati in base agli attributi dello shape d'origine (tipologia e altezza dell'edificio).

Questa pagina descrive la seconda procedura.

Programmi e files necessari

Verrà usato lo shapefile FABBRIC (composto da FABBRIC.shp, FABBRIC.dbf, FABBRIC.shx).
N.B. Su GNU/Linux occorre rinominare fabbric.dbf in FABBRIC.dbf, i nomi dei files devono essere tutti in maiuscolo o tutti minuscolo.

Conversione dello shape in dati OSM

Riproiezione dello shape

Lo shape FABBRIC.shp deve prima essere portato al sistema di riferimento WGS84. Questo può essere fatto in due modi:

  1. Via terminale. Scaricare il programma ogr2ogr (su Ubuntu installare il pacchetto "gdal-bin") e dare il comando:
    • ogr2ogr -t_srs EPSG:4326 -s_srs "+proj=tmerc +lat_0=0 +lon_0=9 +k=0.999600 +x_0=1500000 +y_0=0 +ellps=intl +units=m +towgs84=-104.1,-49.1,-9.9,0.971,-2.917,0.714,-11.68" shp_riproiettato FABBRIC.shp
    N.B. D'ora in poi usare i file riproiettati che sono stati creati nella cartella shp_riproiettato.
  2. Via interfaccia grafica. Avviare Qgis:
    • Menù: "Layer" --> "Aggiungi vettore..." --> aprire FABBRIC.shp
    • "Layer" --> "Proprietà" --> "Generale" --> "Specifica CRS" --> "Sistemi coordinate proiettate" --> "Transverse Merkator" --> "Italy mainland zone 1 GB Roma40" (zone 2 se si usa il fuso est)
    • "Layer" --> "Salva con nome..." FABBRIC.shp--> CRS "Sfoglia" --> "Sistemi coordinate geografiche" -> WGS 84
    N.B. D'ora in poi usare il nuovi file riproiettati.

Aggiunta delle altezze dei fabbricati allo shape

Attenzione: I valori delle altezze negli shape non sembrano molto affidabili, essendo in alcuni casi negativi. Considerare se aggiungere o meno questo dato.

  1. Aprire il file "FABBRIC.dbf" con OpenOffice Calc, rispondendo "OK" alla finestra "Importazione Database"
  2. Clic destro su "P" (intestazione della colonna P) --> "Inserisci colonna"
    • scrivere in cella P1: ALTEZZA,C,10
    • scrivere in P2 la formula: =CONCATENA(TESTO(O2-N2;"####,##");" m")
    • applicare la formula alle celle sottostanti (Copia P2, seleziona P3, clic + SHIFT sull'ultima cella della colonna P, Incolla)
  3. Chiudere e Salvare il file rispondendo "Mantieni il formato corrente" quando viene richiesto.

Correzione dello shape con Qgis

  1. Aprire in Qgis FABBRIC.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 con Shp-to-osm

Dopo aver creato il file delle regole, posizionarsi nella cartella del programma:

cd  <directory dove è salvato shp-to-osm>

Supponendo che "edifici.shp" sia nella stessa directory, lanciare il programma con il seguente comando:

java -cp shp-to-osm-0.8.1-jar-with-dependencies.jar com.yellowbkpk.geo.shp.Main --shapefile ./edifici.shp --rulesfile ./rules_FABBRIC_CTR_Veneto --osmfile edifici --outputFormat osm
  • Se il programma risponde "Done." ed il file edifici0.xml creato si apre normalmente da Josm dovrebbe essere tutto a posto.
  • Se la risposta è "point must form a closed linestring" ricontrollare la correzione degli errori con Qgis e riprovare.

Rinominare il file creato "edifici0.xml" in "edifici.osm".

Consiglio: a seconda del numero di edifici presenti il file creato potrebbe essere troppo pesante per JOSM, dando problemi di lentezza nell'uso e nel caricamento dei dati sul server. In questo caso si consiglia d'importare un quartiere per volta: esportando con QGis una selezione dei fabbricati dello shape ("Layer"-->"Esporta la selezione come vettore...") ed applicando su questo la conversione di Shp-to-osm ed i passi successivi.

Correzione errori in JOSM

  1. Aprire edifici.osm in JOSM e selezionare tutto (Ctrl + A),
  2. 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 un auto-zoom quando si clicca su un errore/avvertimento, impostare "validator.autozoom=true" tra le "Proprietà avanzate" di JOSM.
  3. Ultimi controlli:
    • togliere nodi inutili, es. su una tratto rettilineo,
    • controllare eventuali sovrapposizioni con edifici già presenti in OSM,
    • 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.


Quando si è sicuri della correttezza del file caricarlo su OSM:

  • Nel Commento al changeset indicare l'origine dei dati, ad es."Aggiunti fabbricati. Source= Regione_del_Veneto_LR28_16.7.1976_Formazione_CTR_auth_39164-5700-1100_23.01.2009"