Workshope HALE GFOSS-it

Post on 06-Jul-2015

207 views 0 download

description

Workshop presentato al GFOSS-it su HALE

Transcript of Workshope HALE GFOSS-it

HALE PER TRASFORMARE DATI VERSO INSPIRE:

UN ESEMPIO DEL PLU DELLA PROVINCIA DI TRENTO

ing. Silvia Franceschiing. Andrea Antonello

GFOSS-day, Bologna 10 Ottobre 2013

HUMBOLDT Alignment Editor (HALE) è uno strumento per fare mappature tra diversi modelli/schemi di dati

È distribuito con licenza Open Source GNU LGPL.

INTRODUZIONE A HALE

Inizialmente è stato sviluppato nell'ambito del progetto HUMBOLDT.

Lo sviluppo è proseguito con progetti di ricerca e nella community del data harmonisation panel

INTRODUZIONE A HALE

INTRODUZIONE A HALE

● HALE è scaricabile dal sito

http://www.esdi-community.eu/projects/hale/files

● sul sito è disponibile anche la documentazione ed un video con il quale poter iniziare ad usare gli strumenti principali del software

INTRODUZIONE A HALE

✔ HALE è composto da un'interfaccia grafica semplice e chiara con la possibilità di visualizzare mappe e comparare i dati originali con quelli trasformati

INTRODUZIONE A HALE

✔ HALE dà un feedback continuo sull'esito della mappatura e sull'esistenza di eventuali problemi nel processo di trasformazione con messaggi che aiutano l'utente nella risoluzione degli errori

✔ trasformazione diretta dei dati di prova✔ visualizzazione feedbacks:✔ completezza della mappatura✔ trasformazione delle geometrie

INTRODUZIONE A HALE

✔ validazione on line passo passo✔ confronto tra i dati sorgenti e quelli

trasformati

INTRODUZIONE A HALE

● avviare HALE cliccando sul file

HALE.exe

● all'avvio del programma compare la schermata di benvenuto

● cliccare in alto a destra per entrare nell'ambiente di lavoro

INTRODUZIONE A HALE

● sono disponibili alcuni esempi di mappatura● selezionare Example Projects nella schermata di benvenuto

INTRODUZIONE A HALE

● sono disponibili alcuni esempi di mappatura verso i tematismi INSPIRE più conosciuti

● selezionare Example Projects nella schermata di benvenuto

INTRODUZIONE A HALE

Vista di default

INTRODUZIONE A HALE

Vista di dati

INTRODUZIONE A HALE

Vista di mappa

USECASE

L'esempio di applicazione riguarda un caso reale di mappatura e trasformazione dei dati di un piano regionale di uso del suolo dal formato originale (nazionale) al formato richiesto da Insprire.

SOURCE SCHEMA

Il piano di riferimento è il PGUAP (Piano Generale di Utilizzazione delle Acque Pubbliche) della Provincia di Trento, approvato nel Febbraio 2006. Di questo piano si considerano le geometrie di due diversi aggiornamenti.

Dati disponibili:

● shapefile dell'uso del suolo: si considerano gli ultimi due aggiornamenti dell'uso del suolo, il più recente, approvato con delibera del Febbraio 2013 ed il precedente, approvato nel Luglio 2011

● shapefile delle mappe di rischio idrogeologico: si considerano le geometrie dell'ultimo aggiornamento

● principale documentazione ufficiale

Uso suolo

Uso suolo

Gli attributi disponibili per lo shapefile dell'uso del suolo sono:

● AREA: contiene l'informazione relativa all'area di ciascun poligono● PERIMETER: contiene l'informazione relativa al perimetro di

ciascun poligono● USO_POL_: contiene un identificativo ID delle geometrie nel

database in uso● USO_POL_ID: contiene un identificativo ID delle geometrie nel

vecchio database● COD_TOT: contiene la classe di uso del suolo● PESOPOL: contiene l'informazione relativa all'importanza

dell'oggetto nella valutazione del rischio idrogeologico● PLAN_FROM: contiene la data di prima approvazione del piano

generale PGUAP● AGGIORN_6: contiene la data dell'aggiornamento di cui fanno

parte le geometrie● PLAN_NAME: contiene il nome del piano

Cartografia rischio

DOCUMENTAZIONE

Un'operazione preliminare utile per la mappatura è quella di creare una libreria di informazioni e di link per la documentazione del piano.Queste informazioni vengono salvate in un file CSV che dovrà contenere almeno le informazioni di base richieste nello schema INSPIRE per OfficialDocumentation:● un identificativo● legislationCitation: riferimento ai documenti che

contengono il testo delle leggi del piano● DocumentCitation: riferimento alle mappe del piano ed

altri allegati grafici che possono essere sia georeferenziate che non (immagini raster, disegni vettoriali o testi scansionati).

DOCUMENTAZIONE

ID DOCUMENTCITATION LEGISLATIONCITATIONDoc_1 http://pguap.provincia.tn.it/GIS/tiff/

uso.htmlhttp://www.delibere.provincia.tn.it/CercaSpecifica.asp?Modalita=Delibere&anno=2013&numero=228

Doc_2 http://www.delibere.provincia.tn.it/CercaSpecifica.asp?Modalita=Delibere&anno=2011&numero=1551

Doc_3 http://pguap.provincia.tn.it/pdf/Piano/0IndiceGenerale.pdf

IMPORT SOURCE SCHEMA AND DATA

La prima operazione da fare è scompattare il pacchetto dati dedicato al workshop

01_example_plu-1.zip

I dati che si useranno, nonché il progetto di partenza e la mappatura finale sono contenuti nella cartella:

IMPORT SOURCE SCHEMA AND DATA

Ora che abbiamo tutti i dati dobbiamo importare lo schema dei dati sorgente dalla cartella data gli schemi dei dati sorgente in ordine:● uso_pol_part2.shp● rispol_part_subset_attr.shp● officialDocumentation.csv

IMPORT SOURCE SCHEMA AND DATA

HALE può importare schemi di dati da:● shapefile● XML● CSV

E dati da:● shapefile● GML file (.gml, .xml)● CSV● Gziped XML file (.xml.gz, .gz)● XML● Gziped GML file (gml.gz, .xml.gz, .xml)

IMPORT SOURCE SCHEMA AND DATA

Dalla cartella sample i set di dati su cui effettuare la validazione step by step della mappatura (piccolo per velocizzare le operazioni di trasformazione on line). ● uso_pol_part2.shp● rispol_part_subset_attr.shp● uso_pol_5A_part_attr2.shp

IMPORT SOURCE SCHEMA AND DATA

Al momento dell'importazione dei dati ci viene richiesto di specificare a quale schema appartengono ed HALE propone gli schemi per cui il dato è compatibile (in caso anche la % di compatibilità)

Si utilizza per entrambi gli shapefile contenenti gli aggiornamenti dell'uso del suolo.

La documentazione si deve prendere dal file originale CSV nella cartella data.

PLU TARGET SCHEMA

“Inspire PLU conceptual schema corresponds to a dataset that corresponds to a spatial planning document.

Geographic information as well as the informative or descriptive parts contained in a spatial planning documents are taken into consideration in the LandUse data application schema.

Only the spatial planning documents that are or have to be legally adopted by an authority and are opposable to third parties are considered within INSPIRE.”

PLU TARGET SCHEMA

PLU TARGET SCHEMA

Il documento completo relativo all'estensione ed alle caratteristiche del piano corrisponde alla featureType SpatialPlan.Lo SpatialPlan richiede attributi specifici relativi al nome, data di inizio validità del documento, autorità che ha adottato il piano.

PLU TARGET SCHEMA

ZoningElement fa riferimento alle geometrie di uso del suolo e fornisce le modalità con cui si dovrà evolvere l'uso del suolo. I poligoni devono essere adiacenti e non possono sovrapporsi.La featureType ZoningElement contiene alcuni attributi specifici (nature of regulation, dimension, rules, …) e la classificazione dell'uso del suolo secondo le specifiche Inspire hilucslanduse.

PLU TARGET SCHEMA

Informazioni aggiuntive relative a zone dove sono valide altre leggi specifiche che vanno oltre le regole dettate dal piano vengono inserite nella featureType SupplementaryRegulation.

PLU TARGET SCHEMA

Tutta la documentazione ufficiale legata al piano viene inserita nella featureType OfficialDocumentation.

IMPORT DEL TARGET SCHEMA

Lo schema di arrivo della trasformazione è quello fornito da INSPIRE che si trova nella cartella target_schema.

CLASSIFICAZIONE HILUCS

Inspire richiede una classificazione specifica dell'uso del suolo che sia omogenea in tutta Europa, questa classificazione è denominata HILUCS (Hierarchical Inspire Land Use Classification).

Il PLU della Provincia di Trento è classificato con una classificazione locale.

È quindi necessario effettuare una riclassificazione di ciascuna classe locale (specific) alla corrispondente classe in HILUCS. Questa classificazione viene salvata in un file CSV.

Una classificazione in HALE può essere fatta manualmente per ciascuna classe, oppure è possibile caricare un file CSV contenente la corrispondenza tra le classi.

CLASSIFICAZIONE HILUCS

COD_TOT DESCRIPTION HILUCS CLASSIFICATION1 Aree Residenziali 5_1_PermanentResidentialUse

2 Aree Produttive 2_SecondaryProduction

3 Aree Ricreative 3_4_4_OpenAirRecreationalArea

4 Aree Agricole 1_1_1_CommercialAgriculturalProduction

5 Improduttivo 6_3_1_LandAreasNotInOtherEconomicUse

6 Campeggi 5_3_OtherResidentialUse

7 Depuratori e Discariche 4_3_3_WasteTreatment

8 Aree Sciabili 3_4_3_SportsInfrastructure

9 Aree a bosco, prato e prateria alpina

1_2_Forestry

101 Strade di importanza primaria 4_1_1_RoadTransport

102 Ferrovie 4_1_2_RailwayTransport

103 Strade di importanza secondaria

4_1_1_RoadTransport

MAPPING

Ora siamo pronti per iniziare la mappatura....

ALIGNMENT E MAPPING

Considerando i dati a disposizione le FeatureType del target schema che ci interessano sono:

● ZoningElement: contiene le informazioni delle geometrie dell'uso del suolo

● SpatialPlan: contiene tutte le informazioni relative al documento principale di piano

● OfficialDocumentation: contiene tutti i link ed i riferimenti alla documentazione ufficiale

● SupplementaryRegulation: contiene le informazioni riguardanti regolamentazioni aggiuntive che si sovrappongono all'uso del suolo ed alla normativa del piano.

ALIGNMENT AND MAPPING

Cominciamo a mappare come primo TIPO di dato lo shapefile dell'uso del suolo che contiene informazioni che andranno a confluire sia in ZoningElement che in SpatialPlan.

Tutto il processo di mappatura e basato sulle operazioni tra tipi di cui il retype è la più comune ed implica che il tipo di dato sorgente e target siano semanticamente uguali: ovvero ad ogni elemento del tipo sorgente è associato un elemento del tipo target.

Altre relazioni tra tipi sono:● merge: unisce diversi oggetti del tipo sorgente in un unico oggetto

del tipo target basandosi su uno o più attributi comuni● join: unisce diversi oggetti di tipi diversi di sorgente in un unico

oggetto del tipo target basandosi su uno o più attributi comuni● create: crea un oggetto di un tipo particolare.

OPERAZIONI DI RETYPE

Le operazioni di retype si possono fare tra:

La relazione tra le proprietà ha effetto solo all'interno di un'operazione tra tipi. Prima di tutto si deve quindi definire una relazione tra tipi e quindi si possono specificare le relazioni tra le proprietà all'interno dei tipi.

SOURCE TARGET

uso_pol_part2 ZoningElement

rispol_part_subset_attr SupplementaryRegulation

officialDocumentation OfficialDocumentation

OPERAZIONI DI RETYPE

uso_pol_part2 → ZoningElement

OPERAZIONI DI RETYPE

rispol_part_subset_attr → SupplementaryRegulation

OPERAZIONI DI RETYPE

officialDocumentation → OfficialDocumentation

OPERAZIONE DI MERGE

Un'altra operazione possibile tra TIPI è l'operazione di merge.Questa funzione unisce più oggetti della sorgente in un unico oggetto nel target in funzione di una o più relazioni.

MAPPING FINALE DEI TIPI

OPERAZIONI TRA PROPRIETÁ

Dopo la mappatura dei TIPI si passa a quella delle proprietà interne ad ogni tipo. Alcuni esempi sono:

rename rinomina semplicemente una proprietà della sorgente con un altro nome nel target, HALE dà la possibilità di usare il rename su proprietà che contengono sotto proprietà e quindi di mappare automaticamente le corrispondenze interne usando structural rename

date extraction estrae le date dal formato locale a quello richiesto in output

crea un identificativo unico di tipo Inspire generate inspireId

assigns assegna delle proprietà ad un valore particolare, anche quelle predefinite per esempio regulationNature (definedInLegislation)

generate unique ID genera un ID unico per ogni elemento

OPERAZIONI TRA PROPRIETÁ

La lista completa delle operazioni tra le proprietà comprende:●Ordinates to Point●Network Expansion●Calculate Length●Calculate Area●Centroid●Compute Extent●Groovy Script●Inspire Identifier●Geographical Name●Mathematical Expression●Generate sequential ID●Regex Analysis●Classification●Formatted String●Inline Transformation

ZoningElement

● rinominare con uno structural rename le geometrie dello shape in quelle del target: the_geom → geometry

● estrarre la data con l'operazione date extraction dall'attributo relativo alla data di entrata in vigore dell'aggiornamento al formato richiesto: AGGIORN_6 → validFrom

● rinominare con il rename semplice il campo contenente la classificazione di uso suolo locale nel relativo campo predisposto da INSPIRE: COD_TOT → specificLandUse

● creare un identificativo di tipo INSPIRE con Inspire Identifier usando le informazioni del campo ID originale per generare quello richiesto: USO_POL_ID → inspireId

ZoningElement

the_geom → geometry

ZoningElement

AGGIORN_6 → validFrom

ZoningElement

COD_TOT → specificLandUse

ZoningElement

USO_POL_ID → inspireId

ZoningElement

● assegnare tutte le proprietà richieste da INSPIRE e contrassegnate da una stella rossa:

● aggiungere assigns a regulationNature (definedInLegislation)● generare un identificativo unico nel dataset del target con

generate unique id per id● aggiungere assing a hilucsLandUse.codeSpace al link fornito

da INSPIRE:● http://inspire.ec.europa.eu/codeList/HILUCSValue

ZoningElement

regulationNature

ZoningElement

generate unique ID

ZoningElement

hilucsLandUse.codeSpace

ZoningElement

● aggiungere la riclassificazione con reclassification usando come base il file CSV: COD_TOT → hilucsLandUse

● considerato che hilucslanduse è un campo obbligatorio e non può quindi essere null, è importante specificare che per I valori non mappati si deve utilizzare un valore fisso, per esempio 6_6_NotKnownUse

● utilizzare uno script Groovy script per assegnare al campo validTo degli elementi dei due diversi aggiornamenti due valori differenti: il campo validTo è definito come il giorno precedente all'entrata in vigore del nuovo aggiornamento, si fa quindi dipendere dal campo AGGIORN_6 dello shapefile dell'uso del suolo seguendo la sintassi specifica:

if(AGGIORN_6.equals("2011-07-18")) { return "2013-02-26"; } else { return null;}

ZoningElement

HILUCS Classification

ZoningElement

validTo (Groovy Script)

ZoningElement

Mapping finale ZoningElement

SpatialPlan

Il tipo SpatialPlan è stato creato attraverso l'operazione di merge delle features dello shapefile dell'uso del suolo.

Anche per lo SpatialPlan si può ora procedere alla mappatura delle singole proprietà del tipo.

SpatialPlan

● usare l'operazione date extraction per associare la data di validità del piano: PLAN_FROM → validFrom

● creare un identificativo INSPIRE con Inspire Identifier usando PLAN_NAME come riferimento per generare inspireId●rinominare con rename l'attributo relativo al nome del piano: PLAN_NAME → officialTitle●utilizzare sempre il nome del piano per creare l'identificativo dello SpatialPlan: rename PLAN_NAME → id of SpatialPlan

● generare l'area di validità del piano utilizzando compute extent sulle geometrie dello shapefile dell'uso del suolo: the_geom → extent (boundingbox)

● assegnare alcuni parametri obbligatori per lo SpatialPlan●levelOfSpatialPlan (regional)●planTypeName (PianoRegionale)

SpatialPlan

Estensione del piano

SpatialPlan

Mapping finale SpatialPlan

SpatialPlan - ZoningElement

Collegamento tra ZoningElement e SpatialPlan

Considerato che tutti i poligoni di uso del suolo fanno parte dello stesso piano (PGUAP) si può utilizzare un assign diretto per assegnare a plan → href in ZoningElement il nome del piano di riferimento.

SpatialPlan - ZoningElement

Collegamento tra SpatialPlan e ZoningElement

OfficialDocumentation

Un aspetto molto importante che INSPIRE richiede è l'inserimento di tutti riferimenti alla documentazione ufficiale del piano. I dati inseriti precedentemente nel file CSV fanno già riferimento ad elementi essenziali del tipo OfficialDocumentation, le operazioni di mappatura sono quindi:● rinominare con uno structural rename documentationCitation a

planDocument → DocumentCitation → DocumentCitation → link● creare un identificativo INSPIRE con Inspire identifier usando le

informazioni contenute nel campo INSPIREID della sorgente per generare inspireId del target

● rinominare con rename semplice il campo id: INSPIREID → id della OfficialDocumentation

● rinominare con uno structural rename legislationCitation a LegislationCitation → LegislationCitation → link

● assegnare le altre proprietà obbligatorie:●assign legislationCitation → level (SubNational)●generate unique ID per id in LegislationCitation●generate sequential ID per il nome dei documenti: name in LegislationCitation (Official_Document_)●generate unique ID per id in DocumentCitation●assign name in DocumentCitation (Trentino Planned Land Use)

OfficialDocumentation

Generate sequentialID

OfficialDocumentation

Mapping finale OfficialDocumentation

SpatialPlan - OfficialDocumentation

Collegamento tra SpatialPlan e OfficialDocumentation

Tutti i documenti che abbiamo inserito nel file CSV relativo alla documentazione ufficiale si riferiscono al piano e quindi andranno collegati a SpatialPlan → officialDocumentation → href.

In questo caso particolare dovremmo prima creare altre due istanze della stessa proprietà officialDocumentation in SpatialPlan e successivamente assegnare ad ognuna di esse il link ad uno specifico documento utilizzando il simbolo # prima del nome del documento (es. #Doc_3)

SpatialPlan - OfficialDocumentation

Aggiunta di più istanze della stessa proprietà

SpatialPlan - OfficialDocumentation

Mapping finale di SpatialPlan

ZoningElement - OfficialDocumentation

Collegamento tra ZoningElement e OfficialDocumentation

Si può utilizzare uno script di groovy per assegnare a ciascuna delle feature dello ZoningElement il relativo documento presente in OfficialDocumentation.Consideriamo i documenti di adozione dei due aggiornamenti disponibili, l'associazione con le features può essere fatta partendo dalla data contenuta nell'attributo dello shapefile AGGIORN_6.Le due entità da collegare sono AGGIORN_6 e officialDocument → href di ZoningElement, lo script diventa:

if(AGGIORN_6.equals("2011-07-18")) { return "#Doc_2"; } else { return "#Doc_1";}

dove #Doc_1 e #Doc_2 sono i riferimenti agli ID dei due documenti nel file CSV dell'OfficialDocumentation.

ZoningElement - OfficialDocumentation

Mapping finale di ZoningElement

SupplementaryRegulation

L'ultima informazione da mappare sono le SupplementaryRegulation che rappresentano leggi aggiuntive da sovrapporre all'uso del suolo, in questo caso si tratta dello shapefile del rischio idrogeologico.

La mappatura prevede:● rinominare con structural rename the_geom → geometry● creare un identificativo INSPIRE con Inspire Identifier usando come

riferimento RISPOL_ID per generare inspireId● rinominare RISPOL_ID → id● estrarre la data dall'attributo UPDATE → validFrom● rinominare il campo della classe di rischio con rename tra CLASSE →

specificSupplementaryRegulation → codeSpace ● aggiungere gli altri parametri obbligatori per SupplementaryRegulation

●assign a regulationNature (generallyBinding)●assign a supplementaryRegulation (2_1_2_FloodRiskManagementZone)●assign a supplementaryRegulation → codeSpace

http://inspire.ec.europa.eu/codeList/SupplementaryRegulationValue

SupplementaryRegulation

Mapping finale di SupplementaryRegulation

SupplementaryRegulation

Collegamento tra SupplementaryRegulation e SpatialPlanConsiderato che tutti i poligoni del rischio che abbiamo nello shapefile fanno parte dello stesso piano possiamo direttamente assegnare assign il nome del piano in plan → href in SupplementaryRegulation (#PGUAP).

Collegamento tra SupplementaryRegulation eOfficialDocumentation

Anche in questo caso le cose sono semplificate perché tutti i poligoni del rischio fanno parte dello stesso aggiornamento del PGUAP, quindi si può assegnare direttamente il nome del documento relativo all'aggiornamento in officialDocument → href di SupplementaryRegulation t (#Doc_1).

SupplementaryRegulation

Mapping finale di SupplementaryRegulation

CONSULTAZIONE DATI

Nella vista Data si possono consultare i dati e verificare le trasformazioni e gli eventuali errori presenti:● visualizzazione di un numero da 1 a 5 di elementi del tipo

selezionato● selezione del tipo di dato da visualizzare● selezione della modalità di visualizzazione tra sorgente e target● possibilità di fare filtri e verificare elementi particolari utilizzando

espressioni SQL

CONSULTAZIONE DATI

Visualizzazione e filtro dati originali e trasformati

CONSULTAZIONE DATI

Nella vista Mappa si possono consultare graficamente i dati sulla mappa:● per visualizzare la mappa di base serve una connessione internet● sono possibili le principali operazioni su mappa (zoom, pan, zoom

alla selezione, selezione da mappa o da tabella)● è possibile inserire uno stile di visualizzazione dei piani

CONSULTAZIONE DATI

Visualizzazione su mappa dei dati originali e trasformati

CONSULTAZIONE DATI

Personalizzazione dello stile di visualizzazione

CONSULTAZIONE DATI

Personalizzazione dello stile di visualizzazione

EXPORT RISULTATI

HALE permette di esportare diversi risultati del lavoro di mappatura che è stato fatto:● mappatura (alignment)● stili delle mappe● progetto in formato compresso● dati trasformati

EXPORT RISULTATI

Possibilità di Export

EXPORT RISULTATI

Export dati

silvia.franceschi@hydrologis.eu