p horton machine
TRANSCRIPT
Analisi Idro-Geomorfologica con iJGrasstools e le Horton Machine
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
“Free Software . . . you shouldthink of ‘free’ as in ‘free speech’,not as in ‘free beer’. ”
Richard Stallman
1
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
Le Horton Machine
Le Horton Machine sono un pacchetto sviluppato con l’obbiettivo difornire degli strumenti quantitativi e qualitativi per indagare lamorfologia di un bacino idrografico.å Analisi Geomorfologica
L’obbiettivo è analizzare i processi di erosione dei canali fluviali e lapossibilità di innesco di frane superficiali.
Questo viene fatto considerando che i processi geomorfologici principaliin un bacino siano:
Erosione diffusiva dei pendiiProcessi di incisione da parte dei canaliTrasporto dei sedimenti nei canaliFrane
2
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
Le Horton Machine
Le Horton Machine sono un pacchetto sviluppato con l’obbiettivo difornire degli strumenti quantitativi e qualitativi per indagare lamorfologia di un bacino idrografico.å Analisi Geomorfologica
L’obbiettivo è analizzare i processi di erosione dei canali fluviali e lapossibilità di innesco di frane superficiali.
Questo viene fatto considerando che i processi geomorfologici principaliin un bacino siano:
Erosione diffusiva dei pendiiProcessi di incisione da parte dei canaliTrasporto dei sedimenti nei canaliFrane
2
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
Le Horton Machine
I comandi delle HortonMachine sono statisuddisi in 7 categorie:
Analisi del reticolo idrograficoå Network
Analisi relative al bacinoå Hydro-Geomorphology
Indici idro-geomorfologiciå Basin
Attributi del bacinoå Geomorphology
Analisi dei versantiå Hillslope
Manipolazione dei DEMå DEM Manipulation
Statisticheå Statistics 3
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
Le Horton Machine
Analisi del reticoloidrograficoå Network
Comandi che permettono dideterminare alcuneproprietà del reticoloidrografico.
4
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
Le Horton Machine
Analisi relative al bacinoå Hydro-Geomorphology
Comandi che permettono di svolgereanalisi di un bacino idrografico.
Indici idro-geomorfologiciå Basin
Comandi che permettono di determinarealcuni indici relativi al bacino idrografico.
5
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
Le Horton Machine
Attributi del bacinoå Geomorphology
Comandi che permettono di calcolarealcuni attributi del bacino quali pendenza,direzioni di drenaggio, aree contribuenti.
Analisi dei versantiå Hillslope
Comandi che permettono di calcolarealcune caratteristiche dei versanti delbacino e di determinare una classificazionein base alle loro proprietà morfologiche.
6
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
Le Horton Machine
Manipolazione dei DEMå DEM Manipulation
Comandi che permettono di svolgereanalisi preliminari sui modelli digitali delterreno.
Statisticheå Statistics
Comandi che permettono di condurrealcune analisi statistiche sui bacini.
7
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
La morfologia
La topografia è rappresentata mediante una funzione continuabivariata z = f (x, y) e con le sue derivate fino al secondo ordine.
8
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
Modelli Digitali del Terreno
La forma più comune ed efficiente dirappresentare un Modello Digitale delTerreno (D.T.M.) è mediante una grigliaquadrata di dati.
Ipotesi:valori significativigriglia quadrata regolaretopografia ad 8 direzioni
I dati in questa forma,chiamata raster,rappresentano la coordinataverticale z per una serie dipunti successivi lungo undeterminato profilo spaziale.
9
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
Operazioni preliminari
Prima di poter operare sul DTM con i comandi delle Horton Machineè necessario:
1 creare l’ambiente di lavoro location2 assicurarsi di lavorare di lavorare all’interno della location in
formato GRASS,å generalmente il DTM è in formato raster ascii, come un .ascå assicurarsi di trattarlo in modo da prendere in input il file
.asc (con associato .prj) e settare l’outputall’interno della location (cartella cell)
Dopodichè l’obbiettivo principale è quello di estrarre il bacinod’interesse, sono necessarie alcune elaborazioni del dtm di partenza:
5 Riempimento delle depressioni Pitfiller6 Calcolo delle direzioni di drenaggio Flowdirection/Draindir7 Estrazione del reticolo idrografico ExtractNetwork8 Estrazione del bacino idrografico Wateroutlet
10
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
Operazioni preliminari
Prima di poter operare sul DTM con i comandi delle Horton Machineè necessario:
1 creare l’ambiente di lavoro location2 assicurarsi di lavorare di lavorare all’interno della location in
formato GRASS,å generalmente il DTM è in formato raster ascii, come un .ascå assicurarsi di trattarlo in modo da prendere in input il file
.asc (con associato .prj) e settare l’outputall’interno della location (cartella cell)
Dopodichè l’obbiettivo principale è quello di estrarre il bacinod’interesse, sono necessarie alcune elaborazioni del dtm di partenza:
5 Riempimento delle depressioni Pitfiller6 Calcolo delle direzioni di drenaggio Flowdirection/Draindir7 Estrazione del reticolo idrografico ExtractNetwork8 Estrazione del bacino idrografico Wateroutlet
10
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
Operazioni preliminari: Pitfiller
La prima operazione da fare è riempire i punti di depressione presentinel dtm in modo da poter poi definire univocamente le direzioni didrenaggio in ogni punto.
Il comando che si utilizza per questo sfrutta l’algoritmo di Tarboton.å Dem Manipulation -> Pitfiller
Analisi a riguardo di questo argomento hanno dimostrato che questaelaborazione riguarda meno dell’1% dei punti egeneralmente questi punti di depressioneprovengono da errori di calcolo nella fase di creazione del dtm.å Generalmente non si tratta di reali depressioni
11
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
Operazioni preliminari: Pitfiller
La prima operazione da fare è riempire i punti di depressione presentinel dtm in modo da poter poi definire univocamente le direzioni didrenaggio in ogni punto.
Il comando che si utilizza per questo sfrutta l’algoritmo di Tarboton.å Dem Manipulation -> Pitfiller
Analisi a riguardo di questo argomento hanno dimostrato che questaelaborazione riguarda meno dell’1% dei punti egeneralmente questi punti di depressioneprovengono da errori di calcolo nella fase di creazione del dtm.å Generalmente non si tratta di reali depressioni
11
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
Operazioni preliminari: Pitfiller
La prima operazione da fare è riempire i punti di depressione presentinel dtm in modo da poter poi definire univocamente le direzioni didrenaggio in ogni punto.
Il comando che si utilizza per questo sfrutta l’algoritmo di Tarboton.å Dem Manipulation -> Pitfiller
Analisi a riguardo di questo argomento hanno dimostrato che questaelaborazione riguarda meno dell’1% dei punti egeneralmente questi punti di depressioneprovengono da errori di calcolo nella fase di creazione del dtm.å Generalmente non si tratta di reali depressioni
11
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
Pitfiller: utilizzo del comando
Per far girare questo comando,come tutti gli altri comandi, ènecessario definire gli inputs e glioutputs negli appositi tab posti infondo alla finestra degli SpatialToolbox.
Si può vedere che è inoltre presenteun terzo tab contenente una rapidadescrizione del comando, degliinputs necessari, degli outputsforniti e delle sintassi per utilizzareil comando in uno script.
12
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
Pitfiller: utilizzo del comando
Per far girare questo comando,come tutti gli altri comandi, ènecessario definire gli inputs e glioutputs negli appositi tab posti infondo alla finestra degli SpatialToolbox.
Si può vedere che è inoltre presenteun terzo tab contenente una rapidadescrizione del comando, degliinputs necessari, degli outputsforniti e delle sintassi per utilizzareil comando in uno script.
12
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
Pitfiller: inputs
L’input necessario per questocomando è il dtm stesso.
Per fornire una mappa bisognacliccare sull’apposito bottone ...accanto al nome della mapparichiesta nel tab inputs.
Si aprirà così una finestra di inputper indicare dove è collocata lamappa, quindi il suo path.
13
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
Pitfiller: inputs
L’input necessario per questocomando è il dtm stesso.
Per fornire una mappa bisognacliccare sull’apposito bottone ...accanto al nome della mapparichiesta nel tab inputs.
Si aprirà così una finestra di inputper indicare dove è collocata lamappa, quindi il suo path.
13
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
Pitfiller: inputs
L’input necessario per questocomando è il dtm stesso.
Per fornire una mappa bisognacliccare sull’apposito bottone ...accanto al nome della mapparichiesta nel tab inputs.
Si aprirà così una finestra di inputper indicare dove è collocata lamappa, quindi il suo path.
13
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
Pitfiller: inputs
Lavorando all’interno di unalocation GRASS/JGrass per fornirein input una mappa è necessarioindicare il percorso del filecorrispondente alla mappa nellacartella cell contenuta nellalocation.
Questo si può agevolmenteidentificare mediante la finestra dinavigazione dei files che comparecliccando sul pulsante ... accantoal campo dedicato al path.
14
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
Pitfiller: output
Successivamente è necessarioindicare le opzioni di output dainserire nel tab output.
L’output di questo comando, co-me di molti comandi dei JGras-stools, è la mappaelaborata dal comando stesso.
‘E quindi necessario indicare nellafinestra di output che si aprecliccando sul bottone ... il nomedella mappa di output ed ilpercorso dove salvarla.
15
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
Pitfiller: output
Inoltre lavorando all’interno di unalocation il percorso di salvataggioda indicare dovrà essere sempre lacartella cell all’interno dellalocation stessa.
Questo percorso può essere sempreagevolmente identificato mediantela finestra di navigazione dei filesche compare cliccando sul pulsante... accanto al campo dedicato alpath.
Il nome con cui salvare la mappa dioutput del comando può inveceessere inserito nell’apposito camposenza scrivere nessuna estensione.
16
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
Pitfiller: ASCII input & output
Se invece che lavorare in una location GRASS/JGrass si vuole lavorarein formato ESRI ASCII le mappe sono dei semplici file .asc.
Nella selezione dell’input èsufficiente selezionare il file .asccorrispondente alla mappa, mentrenell’indicare l’output si può indicareun percorso di salvataggio apiacere: è però necessario indicarel’estensione .asc nel nome del file.
Questo formato raster ha però alcuni svantaggi nella gestione della“cartella di lavoro”, dei Sistemi di Riferimento delle mappe e nel“trasferire l’intero lavoro” tra diversi programmi GIS
17
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
Pitfiller: proiezione (.prj file) & ASCII format
Un file raster in formato ascii non puòcontenere nessuna informazione relativa alSistema di Riferimento della mappa.Ogni mappa in formato .asc deve essereaccompagnato dal file .prj contenete leinfiormazioni del SdR.Il file .prj deve avere lo stesso nomedel file .asc (ovviamente ad eccezionedell’estensione)Se non si dispone di tale file lo si puòscaricare da http://spatialreference.org(ricercando l’opportuno SdR) e rinominareN.B. anche quando si lavora in una lo-cation gli eventuali imput .asc devonoessere accompagnati dal corretto file .prj
18
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
Pitfiller: esecuzione del comando
Inserite tutte le opzioni necessarie èpossibile eseguire il comandocliccando sul bottone I Run theselected module in alto a destranella finestra degli Spatial Toolbox.Il comando viene quindi eseguitomostrando in Console laprogressione; terminatal’esecuzione, la nuova mappa vienesalvata nella location (oppure i file.asc e .prj).T.W.: il salvataggio della primamappa nella location (specificandola creazione della cartella cell)creerà nella location un serie di altrecartelle accessorie necessarie.
19
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
Pitfiller: esecuzione del comando
å poi imortarla e visualizzarla in un GIS spetterà a noi!Visualizzazione della mappa output di Pitfiller in QGIS
20
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
Analisi dei valori di una mappa: RasterSummary
Ora che abbiamo visto come si utilizza un comando attraverso gliSpatial Toolbox e creata la nostra prima mappa vediamo un utilecomando che fornisce le statistiche riassuntive relative ad una mappa.
Questo comando non appartiene alle Horton Mchine masemplicemente ai moduli generici di Raster Processingil comando RasterSummary calcola le statistiche dei valori di unamappa raster
Nello specifico il comado calcolaalcune grandezze riassuntive dell’intera mappa: valore minimo,valore massimo, valore media, deviazione standard, somma di tuttii valori, la quantità di no dataoltre a fornire tutti i dati per costruire l’istogramma delladistribuzione dei valori contenuti nella mappa
21
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
Analisi dei valori di una mappa: RasterSummary
Ora che abbiamo visto come si utilizza un comando attraverso gliSpatial Toolbox e creata la nostra prima mappa vediamo un utilecomando che fornisce le statistiche riassuntive relative ad una mappa.
Questo comando non appartiene alle Horton Mchine masemplicemente ai moduli generici di Raster Processingil comando RasterSummary calcola le statistiche dei valori di unamappa raster
Nello specifico il comado calcolaalcune grandezze riassuntive dell’intera mappa: valore minimo,valore massimo, valore media, deviazione standard, somma di tuttii valori, la quantità di no dataoltre a fornire tutti i dati per costruire l’istogramma delladistribuzione dei valori contenuti nella mappa
21
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
RasterSummary: input
Questo particolare comandorichiede in input:
la mappa su cui calcolare lestatistichenumero di intervalli in cuidividere il range di valoridella mappa per calcolarel’istogrammail check per indicare dicalcolare tutti i datidell’istogramma
22
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
RasterSummary: output
I valori in output vengono stampatinella vista Console, possono quindiessere facilmente salvati in un filedi testo puro (mediante un copia &incolla) in formato ASCII (adesempio: disth.txt), che unqualsiasi foglio elettronico, o R (!),può leggere facilmente.Stampa, in ordine da sx a dx:
la media nell’intervallo deivalori della mappa mappail numero di pixel della mappanell’intervallola percentuale di pixel dellamappa nell’intervallo
23
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
Esempio di plot dei risultati
Questo è un esempio di plot con R della distribuzione delle quote deipunti del dtm in esame, prima con ordinata i pixel, poi la percentuale.
read.table(“disth.txt”)->dhplot(dh[,1],dh[,2],type=“l”,ylab=“Area [pixel]”,xlab=“Quote [m]”,main=“Distribuzione delle quote”)
24
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
Le direzioni di drenaggio
Le direzioni di drenaggio definiscono come l’acqua si muove sullasuperficie del terreno in relazione alla topografia della regione in analisi.
IpotesiOgni cella del dtm può drenaresolo in una delle sue 8 celleadiacenti, quelle adiacenti,soprastanti, sottostanti o diagonali,nella direzione di massima pendenzadiscendente.
Solo 8 possibili direzioni per il flussoå Questo è un limite nella
modellazione del flusso naturale
25
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
FlowDirection
Questo comando calcola le direzionidi drenaggio nella direzione dellamassima pendenza discendenteidentificando per ogni cella del dtmuna delle 8 vicine.
L’input necessario è la mappadel dtm depittato.
I numeri convenzionali cherappresentano le direzioni didrenaggio nella mappa di outputsono dall’1 all’8, dove 1 corrispondealla direzione est.
26
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
FlowDirection
Mappa di output dove ogni colore rappresenta una delle 8 direzioni.
27
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
FlowDirection
Corrispondenza tra colori della mappa, numeri convenzionali e direzioni
1//
2??3OO4 __
5 oo
6��
7�� 8
��
28
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
Correzione alle direzioni di drenaggio
Il metodo finora descritto e utilizzato prende il nome D8. L’utilizzo diquesto metodo per la determinazione delle direzioni di drenaggio generaun effetto di deviazione dalla reale direzione identificata dal gradiente
Questo metodo può essere corretto con un algoritmo che calcola ledirezioni di drenaggio minimizzando la deviazione della direzione delflusso determinato da quella del flusso reale. Questa deviazione vienecalcolata partendo dal punto a quote maggiori, procedendo verso quoteminori.
La deviazione è calcolata mediante una costruzione triangolare e puòquindi essere espressa come:
Deviazione Angolare metodo D8-LADDistanza Trasversale metodo D8-LTD
Questo metodo utilizza un parametro λ per pesare la correzione.
Metodo sviluppato da S. Orlandi29
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
Correzione alle direzioni di drenaggio
Metodo D8-LAD Deviazione Angolare valutata con αMetodo D8-LTD Distanza Trasversale valutata con δ
La deviazione è calcolatacumulandola dal punto a quotamaggiore, discendendo; la direzioneD8 viene corretta indirizzandolaverso la direzione reale quando ilvalore supera una certa soglia.Questa soglia viene assegnatamediante il parametro λ; se λ = 0 ilcontatore non ha memoria e quindii punti precedenti non influenzanola correzione.
30
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
DrainDir: input
I minimi input necessari sono:la mappa del dtm depittatola mappa delle direzioni didrenaggio precedentementecreata con FlowDirection
È inoltre possibile modificare ilparametro λ e la modalità LADo LTD.
Lavorando in modalità standard,quindi senza fissare la reteidrografica, non è necessario fornirela mappa delle direzioni didrenaggio lungo la rete.
31
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
DrainDir: output
Questo comando restituisce inoutput la mappa delle areecontribuenti, oltre alla mapparappresentante le direzioni didrenaggio corrette.
La mappa che rappresenta le areecontribuenti può esserealternativamente ottenuta con ilcomando Geomorphology -> Tca
Nella prossima slide si illustreràcosa rappresentano le areecontribuenti e la loro utilità.
32
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
Aree contribuenti
L’ Area Contribuente Totale -tca- rappresenta l’area che contribuisceall’afflusso in un punto del bacino.
È una quantità molto importante nell’analisi geomorfologica edidrologica di un bacino idrografico: è strettamente collegata al flusso inuscita attraverso i differenti punti del bacino in condizioni diprecipitazione uniforme.
La maggior parte di metodi diffusivi utilizzati per estrarre la reteidrografica a partire dal dtm sono basati su questa quantità.
Ai =∑
Aj ×Wj ; dove Wj ={1 se il j-esimo pixel drena nell’i-esimo0 negli altri casi
33
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
Aree contribuenti
Zoom della mappa delle tca, visualizzata dopo un opporunatrasformazione in scala di colori logaritmica. Visto l’ordine digrandezza dei valori si consiglia di visualizzare le tca in scala
logaritmica; invece per visualizzare la sola asta principale dalla mappanon logaritmica accertarsi che i limiti della scala colori siano impostati
ai valori estermi min/max.
34
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
MapCalc: un’applicazione alle direzioni di drenaggio
Per trasformare i valori della mappa tca in scala logaritmicautilizziamol o strumento:Raster Processing -> MapCalc,utile per eseguire operazioni logico-aritmetiche su mappe rasterper applicare il logaritmo (base 10) al valore di ciascun pixeluseremo (come mostrato nel box di destra) la funzione:log(mapname,base)
images {map_tca = read;result = write;}result =log(map_tca,10); }
35
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
MapCalc: un’applicazione alle direzioni di drenaggio
Per trasformare i valori della mappa tca in scala logaritmicautilizziamol o strumento:Raster Processing -> MapCalc,utile per eseguire operazioni logico-aritmetiche su mappe rasterper applicare il logaritmo (base 10) al valore di ciascun pixeluseremo (come mostrato nel box di destra) la funzione:log(mapname,base)
images {map_tca = read;result = write;}result =log(map_tca,10); }
35
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
MapCalc: un’applicazione alle direzioni di drenaggio
Attualmente il Map Calculator, strumento che permette di eseguireoperazioni aritmetiche e logiche sulle mappe, utilizza il linguaggio Jiffle.
1 per prima cosa bisogna selezionare come sempre le mappe di inpute la mappa di output), cioè tutte le mappe coinvolte nei calcoli
2 successivamente bisogna anche scrivere il codice per definire questemappe come variabili
3 quindi va scritta la sintassi per eseguire le operazioni desiderate suqueste mappe, ad es. alcune comuni sono:
assegnazionioperazioni aritmetichecontrollo di flusso ifgestione dei punti senza valori: NaN/null
4 in Jiffle sono presenti molte funzioni e sintassi non visibilidall’interfaccia di STAGE, si veda questa guida introduttiva:http://jaitools.org/docs/jiffle/latest/userguide/html/
36
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
MapCalc: definizione delle variabili
Gli input (i.e. ciascuna mappa coinvolta nei calcoli) devono essereprima inserite come in qualunque altro comando (e anche l’output),ma devono essere poi dichiarati anche nella sintassi del MapCalc
images {foce_drain = read;result = write;}
Sintassi per definire le mappe di inputcome variabili.Per gli input, cioè le mappe da leggere, ilnome della variabile deve essere uguale aquello della mappa.È inoltre necessario definire la variabile dioutput, cioè la mappa da scrivere. Questonome non deve necessariamente essereuguale a quello della mappa di output;quest’ultimo va come al solito, inseritonell’apposito tab outputs insieme al path.
37
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
MapCalc: assegnazione & operazioni aritmetiche
Questi sono treesempi diassegnazione dellavariabile di output,chiamata out:
result = null;
result = 91;
result=foce_drain;
Un’assegnazione si esegue sempre con unasintassi composta, in ordine:
1 dal nome della variabile in cuiassegnare
2 dall’operatore di assegnazione =3 dalla quantità da assegnare alla
variabile.Negli esempi si vedono tre diversi tipi diquantità da assegnare alla variabile out:
1 nessun valore null2 un valore costante3 i valori presenti in un’altra mappa
å questi tipi di quantità si possonocombinare con gli operatori + - * /
38
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
MapCalc: controllo di flusso if
if (test) {operazioni daeseguire se iltest è vero;
} else {operazioni daeseguire se iltest è falso;
};
Il test deve essere un’equazione logica cherestituisca Vero o Falso.
Può quindi essere imposto comeuguaglianza (Attenzione: ==),disuguaglianza o con appositi comandi cherestituiscano Vero o Falso che vedremodopo.
Le operazioni da eseguire possono essereuna o più istruzioni, analoghe a quelle chesi scriverebbero al di fuori dell’ambienteif.å come operazioni da eseguire possono
anche essere annidati altri controlli if
39
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
MapCalc: gestione dei punti senza valori: NaN/null
Questi sono degliesempi di utilizzo dispecifici comandi pergestire i punti a cuinon è assegnato alcunvalore.
isnan(foce_drain)
out = null
Nei primi si vede l’uso del comandoisnan{}, che restituisce Vero quando ilsuo argomento non contiene valori.Più precisamente quando ha valoreNot A Number, valore assegnato di defaultdai JGrasstools nei punti in cui non èpresente alcun dato.Restituendo un valore booleano risultaparticolarmente comodo da usare cometest in un controllo if.
Nel secondo si vede invece l’assegnazionead una variabile (quindi ad una mappa) di”nessun valore” grazie all’appositocomando null che assegna valore null.
40
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
MapCalc: un’applicazione alle direzioni di drenaggio
Ritorniamo a trasformare mappa tca in scala logaritmicautilizziamol o strumento:Raster Processing -> MapCalc,utile per eseguire operazioni logico-aritmetiche su mappe rasterper applicare il logaritmo (base 10) al valore di ciascun pixeluseremo (come mostrato nel box di destra) la funzione:log(mapname,base)
images {map_tca = read;result = write;}result =log(map_tca,10); }
41
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
MapCalc: un’applicazione alle direzioni di drenaggio
Ritorniamo a trasformare mappa tca in scala logaritmicautilizziamol o strumento:Raster Processing -> MapCalc,utile per eseguire operazioni logico-aritmetiche su mappe rasterper applicare il logaritmo (base 10) al valore di ciascun pixeluseremo (come mostrato nel box di destra) la funzione:log(mapname,base)
images {map_tca = read;result = write;}result =log(map_tca,10); }
41
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
MapCalc: un’applicazione alle direzioni di drenaggio
Zoom della mappa delle tca, visualizzata opportunamente dopo latrasformazione logarirtmica dei valori.
42
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
Markoutlets
L’applicazione di molti comandiper essere eseguita correttamenterichiede che la mappa delledirezioni di drenaggio abbia unulteriore valore.Questo nuovo valore rappresenta laclasse dei punti che rappresentanogli outlets del bacino: questi sono ipunti che drenano all’esterno delbacino in analisi.Il comando Dem Manipulation-> Markoutlets marca glioutlets con un valoreconvenzionale 10, e richiede ininput le direzioni di drenaggio,meglio se calcolate con DrainDir
43
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
Estrazione della rete idrografica
Nel comando Network -> ExtractNetwork sono implementati 3metodi per estrarre i canali che compongono la rete idrografica:
0 mediante una soglia sulle aree contribuenti (solo i punti con areacontribuente maggiore della soglia danno luogo alla formazione dicanali)
1 mediante soglia sul prodotto tra aree contribuenti e pendenza(questa quantità stima lo sforzo tangenziale)
2 mediante soglia analoga alla precedente considerando solo i punticonvergenti
Dopo aver individuato i punti di formazione dei canali, con una diqueste tre soglie, la rete viene costruita considerando tutti gli altripunti posti a quote minori.
44
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
ExtractNetwork: modo 1
Si potrebbe ora procedere conl’estrazione utilizzando il primometodo: soglia sulle sole areecontribuenti, preferiamo peròandare oltre nell’analisi al fine diottenere una rete più accurata.
Sarebbero necessari in input lamappa delle direzioni di dre-naggio, meglio se calcolate conDrainDir, e delle TCA.È inoltre necessario impostare ilvalore di soglia e specificare ilmetodo da utilizzare: tca.
45
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
Pendenze: Slope
Il comando Geomorphology -> Slope calcola la pendenza dellasuperficie topografica in ogni punto lungo le direzioni di drenaggio.
Questo comando calcola la differenza di quota tra ogni pixel e quelloadiacente immediatamente a valle. Successivamente divide questagrandezza per la dimensione del pixel, oppure della sua diagonale, aseconda della posizione reciproca dei due pixel considerati.
Il valore restituito rappresenta quindi la tangente dell’angolorappresentante la pendenza. Si può ottenere il valore dell’angolooperando con MapCalc, il cui funzionamento verrà illustrato più avanti.
46
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
Slope
Richiede in input le mappe:del dtm depittatodelle direzioni di drenaggio,meglio se calcolate conDrainDir
47
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
ExtractNetwork: modo 2
Avremmo già ora le mappenecessarie ad estrarre le reteidrografica con il secondo tipo disoglia, basata su tca e pendenze;proseguiamo invece nell’analisi alfine di estarre la rete con l’ultimo, epiù raffinato, metodo.
Sarebbe quindi necessario fornireun ulteriore input oltre a quelligià visti, ovvero la mappa dellependenze appena calcolata.Bisogna specificare il metodo
corretto: tca and slope.
48
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
Curvature
Le curvature rappresentano la deviazione del vettore gradiente perunità di lunghezza lungo particolari curve tracciate sulla superficie inesame f(x,y).La Curvatura Longitudinale rappresenta la deviazione delgradiente andando da valle verso monte seguendo l’inviluppo deigradienti. È negativa se il gradiente aumenta.La Curvatura Piana si ottiene sezionando la superficie con un pianoparallelo al piano (x,y) ed è la variazione dei vettori tangenti alle lineedi livello passanti per il punto in esame. Misura la convergenza (se> 0) o la divergenza (se < 0) del flusso.La Curvatura Tangenziale è determinata sulla curva diintersezione tra un piano perpendicolare alla direzione del gradiente etangente alle linee di livello nel punto considerato.Curvatura tangente e piana sono tra loro proporzionali e la lorodistribuzione spaziale è la stessa.
49
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
Curvatura tangenziale (o normale)
Curvatura negativa - convessa:questo caso è tipico di zone diversante dove il flusso vienesuddiviso sui pixel vicini di quotainferiore secondo il metodo dellamassima pendenza.
Topografia localmente divergente
50
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
Curvature
Il comando Geomorfology ->Curvatures permette di calcolarequesti 3 tipi di curvature come 3diverse mappe di output.
Longitudinaleå Profile o Longitudinal
Pianaå Planar
Tangenzialeå Tangential o Normal
Questo comando richiede in inputla sola mappa del dtm depittato
51
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
Curvature
Curvatura Longitudinale e suo zoom Curvatura Tangenziale e suo zoom
52
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
Classi Topografiche
Permettono di attribuire ad ognipixel una delle 9 classi topografiche,ottenute con l’intersezione dei tretipi di curvature longitudinali e deitre di curvature planari.
È anche possibile aggregare questeclassi in tre categorie fondamentali:
siti concavisiti convessisiti piani
53
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
Classi Topografiche
Nomi identificativi ecorrispondenti valori per le9 classi (a lato) e per le 3classi aggregate (sotto) conspecificate le riclassificazioni.
10 planare parallelo20 convesso parallelo30 concavo parallelo40 planare divergente50 convesso divergente60 concavo divergente70 planare convergente80 convesso convergente90 concavo convergente
15 concavo, unione delle classi 30, 70 e 9025 planare, corrispondente alla classe 1035 convesso, unione delle restanti classi
54
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
Tc
Il comando che permette di crearele due mappe contenenti questeclassificazioni è Hillslope -> Tc.
Richiede in input le due mappedelle:
curvature longitudinalicurvature normali
È inoltre necessario definire duesoglie che definiscono la condizio-ne di planarità.
Restituisce in output le due mappecon 9 e 3 classi.
55
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
Tc
Mappa 9 classi morfologiche Mappa 3 classi fondamentali
56
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
ExtractNetwork: modo 3
Abbiamo ora tutte le mappenecessarie ad estrarre le reteidrografica con il terzo tipo disoglia, cioè sullo sforzo tangenzialesolo sui siti convergenti.
È quindi necessaria in input unaulteriore mappa, oltre alle pri-me due, delle classi topograficheaggregate (con sole 3 classi).È inoltre necessario indicare ilmetodo corretto, l’ultimo.La soglia dipende sempre, come pergli altri metodi, dalla dimensionedei pixel e dagli attributitopografici del bacino.
57
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
ExtractNetwork: output
Mappa di output rappresentante i canali della rete idrografica
Ai puntiappartenentiai canali èassegnatovalore 2,mentre a tuttigli altri puntiè assegnatono value, cioènessun valore.
58
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
Estrazione del bacino di interesse: chiusura
A questo punto abbiamo tutto quello che ci occorre per estrarre ilbacino idrografico d’interesse. Manca solo un’informazione: l’outlet,cioè il punto di chiusura di questo bacino.Tale punto deve appartenere alla rete idrografica, quindi bisognerà chesulla mappa restituita da ExtractNetwork abbia valore 2.
1 Individuare il punto sulla mappa, se si dispone di uno shapefilecontenente tale punto è comodo importarlo per individuarlo confacilità.
2 Interrogare il valore della mappa utilizzando lo strumento info diQGIS, cliccando sul punto in esame (strumento infocontrassegnato dall’icona i©↖ nella barra degli strumenti)
3 Nella finestra info verifcare che il valore (Band 1) sia 2 e copiare lecoordinate del punto:click dx su (clicked coordinates) -> Copy attribute value
59
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
Estrazione del bacino di interesse: chiusura
Zoom della rete dei canali e vista informazioni per individuare l’outlet
60
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
Estrazione del bacino di interesse: Wateroutlet
Ora possiamo estrarre il bacino diinteresse con il comando DemManipulation -> Wateroutlet.
In input sono necessari:le coordinate del punto dichiusura appena individuatela mappa delle direzioni didrenaggio, meglio secalcolata con DrainDir
Copiate le coordinate nei duerispettivi campiNB: la prima cooridnata in QGISè la coordinate est (x)
61
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
Estrazione del bacino di interesse: Wateroutlet
Restituisce in output una mascheradel bacino estratto con valore 1all’interno e no value all’esterno.Si può verificare come il confine delbacino estratto passi effettivamenteper il punto di chiusura.
62
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
Ritaglio delle mappe sul bacino di interesse
Ora dobbiamo ritagliare sul bacino estratto anche tutte le altre mappefino ad ora elaborate.Le opzioni di lavoro sarebbero due:
calcolare di nuovo le grandezze sul DTM del bacino estrattoritagliare le mappe sulla maschera del bacino estratto
La prima opzione prevede di ricalcolare la mappa delleelevazioni depittata e le direzioni di drenaggio. Questo può
comportare incompatibilità con il dato di partenza.
Per ottenere correttamente tutte le mappe relative al bacino ritagliatosarà necessaria anche un’ulteriore operazione successiva: rilanciare ilcomando Dem Manipulation -> Markoutletssulla mappa delle direzioni di drenaggio ritagliata, in quanto gli outletsdel bacino ritagliato saranno differenti.
63
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
Ritaglio delle mappe sul bacino di interesse
Ora dobbiamo ritagliare sul bacino estratto anche tutte le altre mappefino ad ora elaborate.Le opzioni di lavoro sarebbero due:
calcolare di nuovo le grandezze sul DTM del bacino estrattoritagliare le mappe sulla maschera del bacino estratto
La prima opzione prevede di ricalcolare la mappa delleelevazioni depittata e le direzioni di drenaggio. Questo può
comportare incompatibilità con il dato di partenza.
Per ottenere correttamente tutte le mappe relative al bacino ritagliatosarà necessaria anche un’ulteriore operazione successiva: rilanciare ilcomando Dem Manipulation -> Markoutletssulla mappa delle direzioni di drenaggio ritagliata, in quanto gli outletsdel bacino ritagliato saranno differenti.
63
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
Ritaglio delle mappe sul bacino di interesse
Ora dobbiamo ritagliare sul bacino estratto anche tutte le altre mappefino ad ora elaborate.Le opzioni di lavoro sarebbero due:
calcolare di nuovo le grandezze sul DTM del bacino estrattoritagliare le mappe sulla maschera del bacino estratto
La prima opzione prevede di ricalcolare la mappa delleelevazioni depittata e le direzioni di drenaggio. Questo può
comportare incompatibilità con il dato di partenza.
Per ottenere correttamente tutte le mappe relative al bacino ritagliatosarà necessaria anche un’ulteriore operazione successiva: rilanciare ilcomando Dem Manipulation -> Markoutletssulla mappa delle direzioni di drenaggio ritagliata, in quanto gli outletsdel bacino ritagliato saranno differenti.
63
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
CutOut
Utilizzando il comando CutOutscegliamo quindi di ritagliare lemappe già create:
dtm depittatodirezioni di drenaggiotcareticolo idrografico(pendenze)(curvature)(classi topografiche)
Gli input necessari sono la mappada usare come maschera e quella daritagliare, senza soglie.
64
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
Struttura di drenaggio e sottobacini
Ora che abbiamo estratto il bacino d’interesse e ritagliato le mappe dibase su questo, possiamo eseguire alcuni altri comandi al fine diottenere la struttura della rete di drenaggio e dei sottobacini relativi albacino di interesse.In particolare si vogliono ottenere le mappe dei sottobacini e della rete didrenaggio, quest’ultima anche in formato vettoriali in quanto da questa èpossibile estrarre (e poi interrogare) informazioni geometriche utili.Lo strumento fondamentale sarà il comando che permette di numerarela rete di drenaggio ed estrarre i corrispondenti sottobaciniå Network -> NetNumbering
Utilizzeremo inoltre alcuni altri utili strumenti per le mappe vettoriali:Network -> NetworkAttributesBuilder vettorializzazionedella reteVector Processing -> VectorReshaper manipolazione dimappe vettoriali
65
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
Struttura di drenaggio e sottobacini
Ora che abbiamo estratto il bacino d’interesse e ritagliato le mappe dibase su questo, possiamo eseguire alcuni altri comandi al fine diottenere la struttura della rete di drenaggio e dei sottobacini relativi albacino di interesse.In particolare si vogliono ottenere le mappe dei sottobacini e della rete didrenaggio, quest’ultima anche in formato vettoriali in quanto da questa èpossibile estrarre (e poi interrogare) informazioni geometriche utili.Lo strumento fondamentale sarà il comando che permette di numerarela rete di drenaggio ed estrarre i corrispondenti sottobaciniå Network -> NetNumbering
Utilizzeremo inoltre alcuni altri utili strumenti per le mappe vettoriali:Network -> NetworkAttributesBuilder vettorializzazionedella reteVector Processing -> VectorReshaper manipolazione dimappe vettoriali
65
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
Struttura di drenaggio e sottobacini
Ora che abbiamo estratto il bacino d’interesse e ritagliato le mappe dibase su questo, possiamo eseguire alcuni altri comandi al fine diottenere la struttura della rete di drenaggio e dei sottobacini relativi albacino di interesse.In particolare si vogliono ottenere le mappe dei sottobacini e della rete didrenaggio, quest’ultima anche in formato vettoriali in quanto da questa èpossibile estrarre (e poi interrogare) informazioni geometriche utili.Lo strumento fondamentale sarà il comando che permette di numerarela rete di drenaggio ed estrarre i corrispondenti sottobaciniå Network -> NetNumbering
Utilizzeremo inoltre alcuni altri utili strumenti per le mappe vettoriali:Network -> NetworkAttributesBuilder vettorializzazionedella reteVector Processing -> VectorReshaper manipolazione dimappe vettoriali
65
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
Rete di drenaggio del bacino di interesse
Per prima cosa estraiamo la rete didrenaggio relativa al solo bacino diinteresse, analogamente a come giàfatto per l’intero dtm.Questo in modo da utilizzaresempre il metodo più raffinato esettare accuratamente la soglia.Gli input sono quelli già visti,ovviamente utilizzando tutte lemappe ritagliate.
È ora molto importante scegliereaccuratamente il valore della soglia,da questo dipende quanto sarà fittae quindi quanti rami e conseguentisottobacini si otterranno.
66
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
NetworkAttributesBuilder: mappa vettoriale .shp della rete
Se desideriamo ora possiamoottenere la mappa vettoriale dellarete nel nostro bacino di interersse.Per questo usiamo il comandoNetworkAttributesBuilder, chene estrae anche una serie di utiliattributi.Gli input si indicano come diconsueto.Invece l’output vettoriale .shp vaindicato diversamente. Si de-ve indicare il nome della map-pa, l’estensione -che deve essereshp- e un percorso a piacere do-ve salvarlo (non all’interno dellalocation). 67
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
Mappa vettoriale .shp della rete idrografica
Mappa vettorialedella rete, e attributidi ogni featurecontenuti nellatabella attributi(visualizzabile inQGIS).Come si vede è moltoutile per distinguere isingoli rami e capirequanti sonoesattamente, perchècoincideranno con isottobacini cheestrarremo.
68
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
VectorReshaper: estrazione delle lunghezze dei rami
Sfruttiamo ora le potenzialità della mappa vettoriale della rete perestarrre le lunghezze di ogni singolo ramo.Per fare questo useremo il comando generico per analisi vettorialiVectorReshaper, non appartenente quindi alla categoria delleHorton Machine ma ai Vector Processing.Questo comando vuole in input una mappa vettoriale e restituisceun’altra mappa vettoriale derivata grazie a funzioni ecql (unasintassi ampliata del cql, semplificazione del linquaggio sql) con:
1 nuovi campi di attributi2 attributi derivati dalle caratteristiche geometriche delle feature3 nuove feature geometriche derivate da quelle originali
Si inserisce il vettoriale in input intuitivamente andando a selezionare ilfile con estensione .shp su cui si desidera lavorare.La sintassi per estrarre le lunghezze è: len=geomLength(the_geom)
Documentazione sull’ecql [1] e una buona lista di funzioni cql [2]:[1] http://docs.geotools.org/latest/userguide/library/cql/ecql.html[2] http://udig.github.io/docs/user/concepts/Constraint%20Query%20Language.html
69
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
VectorReshaper: estrazione delle lunghezze dei rami
Sfruttiamo ora le potenzialità della mappa vettoriale della rete perestarrre le lunghezze di ogni singolo ramo.Per fare questo useremo il comando generico per analisi vettorialiVectorReshaper, non appartenente quindi alla categoria delleHorton Machine ma ai Vector Processing.Questo comando vuole in input una mappa vettoriale e restituisceun’altra mappa vettoriale derivata grazie a funzioni ecql (unasintassi ampliata del cql, semplificazione del linquaggio sql) con:
1 nuovi campi di attributi2 attributi derivati dalle caratteristiche geometriche delle feature3 nuove feature geometriche derivate da quelle originali
Si inserisce il vettoriale in input intuitivamente andando a selezionare ilfile con estensione .shp su cui si desidera lavorare.La sintassi per estrarre le lunghezze è: len=geomLength(the_geom)
Documentazione sull’ecql [1] e una buona lista di funzioni cql [2]:[1] http://docs.geotools.org/latest/userguide/library/cql/ecql.html[2] http://udig.github.io/docs/user/concepts/Constraint%20Query%20Language.html
69
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
VectorReshaper: estrazione delle lunghezze dei rami
Sfruttiamo ora le potenzialità della mappa vettoriale della rete perestarrre le lunghezze di ogni singolo ramo.Per fare questo useremo il comando generico per analisi vettorialiVectorReshaper, non appartenente quindi alla categoria delleHorton Machine ma ai Vector Processing.Questo comando vuole in input una mappa vettoriale e restituisceun’altra mappa vettoriale derivata grazie a funzioni ecql (unasintassi ampliata del cql, semplificazione del linquaggio sql) con:
1 nuovi campi di attributi2 attributi derivati dalle caratteristiche geometriche delle feature3 nuove feature geometriche derivate da quelle originali
Si inserisce il vettoriale in input intuitivamente andando a selezionare ilfile con estensione .shp su cui si desidera lavorare.La sintassi per estrarre le lunghezze è: len=geomLength(the_geom)
Documentazione sull’ecql [1] e una buona lista di funzioni cql [2]:[1] http://docs.geotools.org/latest/userguide/library/cql/ecql.html[2] http://udig.github.io/docs/user/concepts/Constraint%20Query%20Language.html
69
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
VectorReshaper: estrazione delle lunghezze dei rami
Interfaccia del comando (stage) settato per caloclare le lunghezze(sinistra) e il nuovo vettoriale della rete con il nuovo campo delle
lunghezze: len
70
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
NetNumbering: numerazione della rete ed estazione sottobacini
Utilizziamo ora il comandoNetwork -> NetNumbering al finedi estrarre i sottobacini, oltre allamappa della rete numerata.
I primi 3 inputs sono quellinecessari, a questo puntodovrebbero essere tutti diimmediata comprensione.Nella modalità in cui utilizzere-mo il comando non è necessarioinserire la quarta mappa ininput.Gli outputs sono tutti mappe ra-ster, dovremo inserirli entrambi.
71
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
NetNumbering: settaggio della soglia
(Se) Il comando lavora in modalitàsoglia sulle TCA (threshold onTCA), bisonerà quindi inserire unopportuno valore nel campo sogliaÈ sempre e comunque necessa-rio utilizzare in input una mappadella rete con un adeguato livellodi ramificazioni, quindi preceden-temente estratta con una sogliaadeguata (ad es: TCA=1000)Inoltre è necessario settare anchequa la soglia sulle TCA, percoerenza alemno uguale o maggiorea quella con cui era stata estrattala rete (ad es: TCA=10000)
72
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
NetNumberin: output del comando
Le due mappe output di NetNumbering: rete numerata e sottobacini
73
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
Mappa vettoriale dei sottobacini
analogamente a quanto detto per la rete idrografica è altrettantocomoda una mappa vettoriale dei contorni dei sottobaciniquesta operazione è fatta egregiamente dal comando BasinShape,purtroppo questo non è presente nell’attuale versione di STAGEun operazione simile può essere fatta con il classico modulo diconversione da raster a vettoriale che è presente inVector Processing -> Vectorizerquesto comando ha però alcuni problemi (come in GRASS) allecongiunzioni tra due sottobacini, dove vengono erroneamentecreati sottobacini (feature) di pochi pixel non presentiil comando ha però un utile opzione di soglia sulla dimensioneminima (in pixel) che devono avere le feature per essere createå si può quindi giocare con il valore di questa soglia per cercare
di ottenere una mappa vettoriale dei sottobacini correttaLe 4 slide seguenti sono comunque riportate per completezza o per centroidi da Vectorizer
74
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
BasinShape: vettorializzazione dei contorni dei sottobacini
Vogliamo ora ottenere la mappavettoriale .shp dei contorni deisottobacini, che sarà comoda perestrarre varie informazioni, comegià visto per la mappa della rete.Questo comando vuole in inputdue mappe raster:
la mappa del dtm depittatoe quella dei sottobaciniottenuta con NetNumbering
. . . e restituisce in output lamappa vettoriale dei sottobacini.Gli input raster si inseriscono comegià visto in precedenza e l’outputvettoriale come visto per la rete.
75
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
Mappa vettoriale .shp dei sottobacini
Mappa vettoriale deisottobacini, si puòvedere che ilcomando ha giacalcolato moltiattributi utili perogni sottobacino:
areaperimetronumerazionequota massimaquota minimaquota mediaquota dell’uscita
76
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
VectorReshaper: centroidi dei sottobacini
Sfruttiamo ancora il comandoVectorReshaper per ottenere unanuova mappa contenente i centroididi ogni singolo bacino.
Le mappe vettoriali in input eoutput si inseriscono come vistoprima per lo stesso comando.
La nuova mappa deve conteneredelle nuove features geometrichederivate, i centroidi.
La sintassi ecql dovrà riscrivereil campo the_geom, sarà quindi:the_geom=centroid(the_geom)
77
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
VectorReshaper: Mappa vettoriale .shp dei centroidi
Mappa vettoriale deicentroidi di ognisottobacino.
È ben evidente comequesto comandoabbia creato unanuova mappa confeature geometrichedi tipo differente,ovvero i puntirappresentanti icentroidi, derivatidalle feature originali(aree deisottobacini).
78
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
Attributi derivati
Ora che abbiamo concluso l’analisi idrologica di base, estraendo ilbacino d’interesse, la rete di drenaggio ed i sottobacini, possiamoeseguire una serie di altri comandi delle Horton Machine al fine diottenere alcune mappe utili per una analisi idro-geomorfologica piùcompleta del bacino. Ne vedremo ora un paio a titolo di esempio.
Esposizione Geomorphology -> Aspect
Modulo del vettore gradiente Geomorphology -> Gradient
(Pendenza lungo la rete Geomorphology ->Slope)(Curvature Geomorphology -> Curvatures)Area di drenaggio Geomorphology -> Ab
(Classi topografiche Hillslope -> Tc)Distanza dalla chiusura Basin -> RescaledDistance
Indice topografico Basin -> TopIndex
79
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
Attributi derivati
Ora che abbiamo concluso l’analisi idrologica di base, estraendo ilbacino d’interesse, la rete di drenaggio ed i sottobacini, possiamoeseguire una serie di altri comandi delle Horton Machine al fine diottenere alcune mappe utili per una analisi idro-geomorfologica piùcompleta del bacino. Ne vedremo ora un paio a titolo di esempio.
Esposizione Geomorphology -> Aspect
Modulo del vettore gradiente Geomorphology -> Gradient
(Pendenza lungo la rete Geomorphology ->Slope)(Curvature Geomorphology -> Curvatures)Area di drenaggio Geomorphology -> Ab
(Classi topografiche Hillslope -> Tc)Distanza dalla chiusura Basin -> RescaledDistance
Indice topografico Basin -> TopIndex
79
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
Indice topografico
TI = log Ab |∇z|
esprime la tendenza di un pixel a saturarsiå aree con valori elevati di indice topografico si saturano
prima di aree a basso indice topograficodipende solo dalla morfologia
è proporzionale al rapporto tra area cumulata nel pixel e pendenza
Si calcola con il comando Basin -> TopIndex che richiede in input:la mappa delle tcala mappa delle pendenze calcolata con Slope
80
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
Indice topografico
TI = log Ab |∇z|
esprime la tendenza di un pixel a saturarsiå aree con valori elevati di indice topografico si saturano
prima di aree a basso indice topograficodipende solo dalla morfologia
è proporzionale al rapporto tra area cumulata nel pixel e pendenza
Si calcola con il comando Basin -> TopIndex che richiede in input:la mappa delle tcala mappa delle pendenze calcolata con Slope
80
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
Calcolo dell’indice topografico: TopIndex input
81
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
Calcolo dell’indice topografico: TopIndex output
82
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
Calcolo dell’indice topografico: MapCalc
Pixel con pendenza bassa hanno elevata propensione allasaturazione a parità di area cumulataci sono zone all’interno del bacinodove non è definito l’indice topograficoå sono quelle con pendenza pari a zero per cui il rapporto
area cumulata su pendenza tende ad infinito
Si assegna ai pixel convalore nullo di indicetopografico il valoremassimo caratteristicodella mappa utilizzandoRaster Processing ->MapCalc, sfruttando,con le modalità già viste,la seguente sintassi:
images{ pass_mytop=read;pass_mybas=read; out=write;}if (isnan( pass_mybas )) {out = null;} else { if (isnan( pass_mytop )) {out = 25;} else {out = pass_mytop; } ; };
83
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
Calcolo dell’indice topografico: MapCalc
84
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
Distanze riscalate: RescaledDistance
Il comando RescaledDistance permette di calcolare le distanzedall’uscita del bacino (outlet), calcolate lungo le direzioni di drenaggio.Queste distanze possono essere riscalate, cioè calcolate considerandovelocità diverse nei versanti e nella rete idrografica.Per calcolare queste distanze viene quindi introdotto il parametro r ,definito come il rapporto tra la velocità nei canali e nei versanti:
r = ucuh
con uc : velocità nei canali e uh : velocità nei versanti
Questo comando richiede in input le mappe:delle direzioni di drenaggio, calcolate con DrainDir e con glioutlets marcati con MarkOutlets
della rete idrografica, calcolata con ExtractNetwork scegliendouno dei tre tipi di soglie (sempre meglio se il tipo 2)
Richiede inoltre il parametro r (se r = 1 le distanze saranno semplici)85
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
Distanze riscalate: RescaledDistance
Il comando RescaledDistance permette di calcolare le distanzedall’uscita del bacino (outlet), calcolate lungo le direzioni di drenaggio.Queste distanze possono essere riscalate, cioè calcolate considerandovelocità diverse nei versanti e nella rete idrografica.Per calcolare queste distanze viene quindi introdotto il parametro r ,definito come il rapporto tra la velocità nei canali e nei versanti:
r = ucuh
con uc : velocità nei canali e uh : velocità nei versanti
Questo comando richiede in input le mappe:delle direzioni di drenaggio, calcolate con DrainDir e con glioutlets marcati con MarkOutlets
della rete idrografica, calcolata con ExtractNetwork scegliendouno dei tre tipi di soglie (sempre meglio se il tipo 2)
Richiede inoltre il parametro r (se r = 1 le distanze saranno semplici)85
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
Distanze riscalate: RescaledDistance
Il comando RescaledDistance permette di calcolare le distanzedall’uscita del bacino (outlet), calcolate lungo le direzioni di drenaggio.Queste distanze possono essere riscalate, cioè calcolate considerandovelocità diverse nei versanti e nella rete idrografica.Per calcolare queste distanze viene quindi introdotto il parametro r ,definito come il rapporto tra la velocità nei canali e nei versanti:
r = ucuh
con uc : velocità nei canali e uh : velocità nei versanti
Questo comando richiede in input le mappe:delle direzioni di drenaggio, calcolate con DrainDir e con glioutlets marcati con MarkOutlets
della rete idrografica, calcolata con ExtractNetwork scegliendouno dei tre tipi di soglie (sempre meglio se il tipo 2)
Richiede inoltre il parametro r (se r = 1 le distanze saranno semplici)85
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
Distanze riscalate: RescaledDistance
Calcolo delle mappa delle distanze semplici con r = 1
86
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
RescaledDistance
Calcolo delle mappa delle distanze riscalate con r = 10
87
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
Funzione di ampiezza del bacino idrografico
Ora che abbiamo calcolato le mappe delle distanze e distanze riscalatevogliamo ottenere la distribuzione di questi valori sulle mappe, il graficodi queste rappresenterà la funzione d’ampiezza semplice e riscalata.
La distribuzione dei valori su una mappa potrebbe essereugualmente ottenuta con il comando RasterSummary, che
abbiamo già visto all’inizio di questa trattazione.Preferiamo invece ora utilizzare il più evoluto comando
Statistics -> Cb (delle Horton Machine).In questa applicazione fornisce un analogo risultato, però può
essere sfruttato per ottenere più complesse statisticheincrociate tra due mappe.
Per ottenere comunque la semplice distribuzione dei valori di unamappa è sufficiente utilizzarlo fornendo la stessa mappa in input perentrambe le mappe.
88
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
Funzione di ampiezza del bacino idrografico
Ora che abbiamo calcolato le mappe delle distanze e distanze riscalatevogliamo ottenere la distribuzione di questi valori sulle mappe, il graficodi queste rappresenterà la funzione d’ampiezza semplice e riscalata.
La distribuzione dei valori su una mappa potrebbe essereugualmente ottenuta con il comando RasterSummary, che
abbiamo già visto all’inizio di questa trattazione.Preferiamo invece ora utilizzare il più evoluto comando
Statistics -> Cb (delle Horton Machine).In questa applicazione fornisce un analogo risultato, però può
essere sfruttato per ottenere più complesse statisticheincrociate tra due mappe.
Per ottenere comunque la semplice distribuzione dei valori di unamappa è sufficiente utilizzarlo fornendo la stessa mappa in input perentrambe le mappe.
88
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
Funzione di ampiezza del bacino idrografico
Ora che abbiamo calcolato le mappe delle distanze e distanze riscalatevogliamo ottenere la distribuzione di questi valori sulle mappe, il graficodi queste rappresenterà la funzione d’ampiezza semplice e riscalata.
La distribuzione dei valori su una mappa potrebbe essereugualmente ottenuta con il comando RasterSummary, che
abbiamo già visto all’inizio di questa trattazione.Preferiamo invece ora utilizzare il più evoluto comando
Statistics -> Cb (delle Horton Machine).In questa applicazione fornisce un analogo risultato, però può
essere sfruttato per ottenere più complesse statisticheincrociate tra due mappe.
Per ottenere comunque la semplice distribuzione dei valori di unamappa è sufficiente utilizzarlo fornendo la stessa mappa in input perentrambe le mappe.
88
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
Analisi dei valori di una mappa: Cb
Il comando Statistics -> Cb calcola le statistiche dei valori diuna mappa rispetto a quelli contenuti in un’altra mappa
i dati della prima mappa vengono raggruppati in un numeroprefissato di intervalli e viene calcolato il valore medio dellavariabile indipendente in ciascun intervalload ogni intervallo corrisponde un set di valori nella secondamappa, dei quali viene calcolata la media e gli altri momentirichiesti dall’utente
il comando restituisce nella vista Console tutti questi valori perogni intervallo, associati al numero di pixel contenuti nell’intervallo
I valori stampati in output possono essere facilmente salvati in un file ditesto puro (mediante un copia & incolla) in formato ASCII che unqualsiasi foglio elettronico o R può leggere facilmente.
89
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
Cb: input
Questo particolare comandorichiede in input:
le due mappe su cuicalcolare le statistichenumero di intervalli in cuidividere il range di valoridella prima mappail primo e l’ultimo ordine deimomenti da calcolare
Le due mappe possono anche esserela stessa mappa se si vuole ottenerela distribuzione dei valori contenutinella mappa sul bacino (va sempreinserita in entrambe i campi).
90
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
Cb: output
Questo particolare comandostampa, in ordine da sx a dx:
la media nell’intervallo deivalori della prima mappail numero di pixel della primamappa nell’intervalloil momento di primo ordine(media) dei valori dellaseconda mappail momento di secondo ordine(varianza) dei valori dellaseconda mappase richiesti, i momenti diordine superiore dei valoridella seconda mappa
91
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
Esempio di plot dei risultati
Questo è un esempio di plot con R della distribuzione delle distanze deipunti del bacino: rappresenta la funzione d’ampiezza del bacino.
read.table(“filename.txt”)->rd1plot(rd1[,1],rd1[,2],type=“l”,ylab=“Area [pixel]”,xlab=“Distanza [m]”,main=“Distanze Riscalate”)
92
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
Scriptare i JGrasstools
Se lanciare tutti questi comandi in successione e dover inserire ognivolta tutti gli input e gli output vi è sembrato molto noioso, visuggerisco di provare a scriptare!
Tutte le operazioni che abbiamo fatto da interfaccia grafica sipossono completamente implementare in semplici codici che
eseguono in successione una serie di comandi.I JGrasstools si possono scriptare con linguaggio Geoscript,
pensato per scrivere codici con sintassi groovy su moduli JavaUno script può essere scritto e lanciato in vari modi,
agevolmente all’interno di STAGE, ma anche attraverso shellscript completamente da riga di comando (termianle)!
Un pò di documentazione (spesso riferita al vecchio uDig, ma non cambia):jgrasstechtips.blogspot.it/2013/01/proposal-geoscript-console-in-udig.htmljgrasstechtips.blogspot.it/2013/01/course-java-open-source-gis-development.htmljgrasstechtips.blogspot.it/2013/03/course-geographic-scripting-in-udig.html
93
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
Indice dei simboli
Simbolo Nome udmTI Indice topografico -A Area totale al di sopra di ogni punto L2
b Lunghezza della parte di pixelinteressata dal drenaggio L
∇z Pendenza -x Distanza di un punto del bacino dall’uscita
misurata lungo le direzioni di drenaggio Lx ′ Distanza dall’uscita riscalata Lxc Distanza di un punto del canale dall’uscita Lxh Distanza di un punto dal canale
a cui afferisce (lungo le linee di drenaggio) Lr Rapporto tra celerità dell’onda di piena
nei canali e nei versanti -uc Celerità del deflusso nei canali L T−1
uh Celerità del deflusso superficiale L T−1
94
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
Indice dei comandi
Comando Breve DescrizioneCb Calcola le le statistiche delle mappeCurvature Calcola le curvature longitudinali e trasversaliCutOut Ritaglia una mappa rasterDrainDir Stima le direzioni di drenaggio corretteExtractNetwork Estrae il reticolo idrograficoFlowDirection Stima le direzioni di drenaggio con D8 puroMapCalc Esegue calcoli sui rasterMarkOutlet Marca l’uscita del bacino in esamePitfiller Riempie le depressioni di un DEMRescaledDistance Calcola la funzione di ampiezza riscalataSlope Calcola il modulo della pendenzaTc Calcola le classi topograficheTca Calcola le aree contribuentiTopIndex Calcola l’indice topograficoWaterOutlet Estrae il bacino idrografico
95
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
Credits
La Horton Machine è il frutto del lavoro di ricercacongiunto di cudam ed Hydrologis s.r.l.
96
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
Credits
Questa presentazione è stata scritta da:Silvia Franceschi (Hydrologis and Ispra)Leonardo Perathoner (Università di Trento)Matteo Toro (Università di Trento)Giuseppe Formetta (Università di Trento)
La redazione di questa presentazione è stata supportata da Ispranell’ambito del progetto Danube Flood Risk e dalla ProvinciaAutonoma di Bolzano, nell’ambito del progetto HydroAlp.
Per quanto possibile, questa presentazione è stata redatta con l’uso disoftware libero. LATEX per a scrittura, per il quale Leonardo Perathonerha approntato un apposito stile. Il programma statistico R(http://cran.r-project.org/) per l’elaborazione delle figure nonprodotte da STAGE e QGIS.
97
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015
Grazie dell’attenzione
JGrassTools Mailinglist:https://groups.google.com/forum/?fromgroups#!forum/jgrasstools
E-mail esercitazioni:[email protected]
98
S. Franceschi, L. Perathoner, M. Toro, G. Formetta
30 marzo 2015