1. HALE PER TRASFORMARE
DATI VERSO INSPIRE:
UN ESEMPIO DEL PLU DELLA
PROVINCIA DI TRENTO
ing. Silvia Franceschi
ing. Andrea Antonello
GFOSS-day, Bologna 10 Ottobre 2013
2. 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
3. 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
4. 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
5. 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
6. 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
8. 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
9. INTRODUZIONE A HALE
●
sono disponibili alcuni esempi di mappatura
●
selezionare Example Projects nella schermata di
benvenuto
10. INTRODUZIONE A HALE
●
sono disponibili alcuni esempi di mappatura verso i
tematismi INSPIRE più conosciuti
●
selezionare Example Projects nella schermata di
benvenuto
14. 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.
15. 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
17. 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
19. 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).
21. 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:
22. 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
23. 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)
24. 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
25. 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.
26. 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.”
28. 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.
29. 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.
30. 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.
31. PLU TARGET SCHEMA
Tutta la documentazione
ufficiale legata al piano
viene inserita nella
featureType
OfficialDocumentation.
32. IMPORT DEL TARGET SCHEMA
Lo schema di arrivo della trasformazione è quello fornito
da INSPIRE che si trova nella cartella target_schema.
33. 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.
36. 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.
37. 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.
38. 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
42. 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.
44. 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
45. 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
46. 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
51. 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
55. 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;}
59. 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.
60. 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)
63. 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.
65. 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)
68. 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)
71. 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.
73. 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
75. SupplementaryRegulation
Collegamento tra SupplementaryRegulation e SpatialPlan
Considerato 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 e
OfficialDocumentation
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).
77. 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
79. 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
83. 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