GRASS 5.3 esercitazione Marco Negretti Politecnico di Milano Polo Regionale di Como e-mail: marco@geomatica.como.polimi.it http://geomatica.como.polimi.it - tel +39.031.332.7524 v 1.0.2 04/05/04
struttura dell'archivio location: -sistema di riferimento -estensione geografica -risoluzione directory principale mapset: area di lavoro degli utenti dati
avvio di GRASS da linea di comando: # grass53 indico l'area di lavoro
avvio di GRASS da linea di comando: # grass53 se la location indicata non esiste......posso crearla
avvio di GRASS da linea di comando: # grass53 specificando il sistema di riferimento a seconda del sistema di coordinate scelto: datum, ellissoide,...
avvio di GRASS da linea di comando: # grass53 estensione geografica
introduzione Possiamo operare in due modi: da linea di comando # g.comando t param1=valore1 param2=valore2 utilizzando l'interfaccia grafica tcltkgrass per ottenere informazioni sul comando (funzionalità, elenco parametri,...): # g.comando help
avvio di GRASS interfaccia grafica: # tcltkgrass
importazione carta raster da formato GRID ASCII di GRASS a formato binario nome e path del file ascii nome della carta raster # r.in.ascii input=/path/como.ascii output=comodtm
importazione carta raster all'interno del mapset corrente viene generata la carta raster importata in ogni directory del mapset comparirà un file con i dati relativi alla carta raster
visualizzazione carte per poter visualizzare un qualsiasi contenuto cartografico è necessario avviare preventivamente un monitor di visualizzazione nome del monitor # d.mon start=x0
visualizzazione carte si possono avviare più monitor quando si lancia un comando di visualizzazione la carta viene mostrata sul monitor corrente # d.mon select=x0 per cambiare il monitor corrente # d.mon stop=x0 per chiudere un monitor # d.erase per cancellare il contenuto # d.mon -l elenco dei monitor
visualizzazione carte nome carta raster # d.rast map=comodtm carta raster la regione di visualizzazione è più grande della carta visualizzata
visualizzazione carte nome carta vettoriale colore di visualizzazione categorie da visualizzare # d.vect map=strade color=green nome file site colore di visualizzazione dimensione e stile punto # d.sites sitefile=slope70a type=diamond color=red
zoom interattivo si indicano direttamente sul monitor tasto sinistro: primo angolo tasto centrale secondo angolo tasto destro: esci dalla modalità di zoom # d.zoom
impostare i colori di una carta raster carta raster tavole di colori predefiniti in questo esempio si associa alla carta comodtm una scala di colori verde-giallo-rosso copiare la tavola di colori da un'altra carta raster # r.colors map=comodtm color=gyr
impostare i colori di una carta raster per generare una tavola dei colori personalizzata è necessario utilizzare il comando in linea # r.colors map=comodtm color=rules esempio valore rosso valore verde valore blu categoria definisco: - degli intervalli di valore - ad ogni intervallo associo un colore (notazione RGB) - il colore associato ai valori interni di un intervallo è determinato mediante interpolazione dei valori agli estremi
impostare i colori di una carta raster per generare una tavola dei colori personalizzata è necessario utilizzare il comando in linea # r.colors map=comodtm color=rules esempio
interrogare una carta Interrogazione con il mouse dal monitor nome del/dei raster da interrogare cliccare sul monitor in corrispondenza del punto di interesse per ottenere le informazioni puntuali della carta # d.what.rast map=comodtm
interrogare una carta Interrogazione con il mouse dal monitor tasto sx sinistro per interrogare tasto dx per terminare coordinate del punto raster e mapset valore cliccare sul monitor in corrispondenza del punto di interesse per ottenere le informazioni puntuali della carta # d.what.rast map=comodtm
interrogare una carta in modo analogo si possono interrogare carte vettoriali e site file interroga la carta vettoriale strade # d.what.vect map=strade interroga il site file citta # d.what.sites map=citta si possono interrogare più carte site e raster contemporaneamente # d.what.rast map=comodtm,comoslp # d.what.sites map=citta,stazioni
carta delle pendenze e delle esposizioni DTM in ingresso nome carta pendenze nome carta delle esposizioni # r.slope.aspect format=degrees elevation=comodtm slope=como.slope aspect=como.aspect
carta delle pendenze e delle esposizioni como.slope como.aspect
carte derivate: r.mapcalc Le carte raster sono matrici numeriche è possibile compiere qualsiasi tipo di operazione logico/aritmetica sui valori delle celle GRASS dispone di un potente comando per eseguire questo tipo di operazioni: r.mapcalc Definendo in modo opportuno una espressione logico/aritmetica diventa possibile realizzare filtri, maschere, riclassificazioni, sovrapposizioni di diverse carte raster,...
Alcuni esempi r.mapcalc carta risultante determinata dalla media dei valori di due carte media=(carta1+carta2)/2 maschera como_res=if(mask==1,comodtm,null( )) comodtm mask bianco= null rosso=1
Alcuni esempi como_res r.mapcalc carta risultante determinata dalla media dei valori di due carte media=(carta1+carta2)/2 maschera como_res=if(mask==1,comodtm,null( )) mask bianco= null rosso=1
Alcuni esempi r.mapcalc media dei valori di un intorno 3x3 res=(comodtm[-1,0]+ comodtm[0,0]+ comodtm[1,0]+ comodtm[-1,1]+ comodtm[0,1]+ comodtm[1,1]+ comodtm[-1,-1]+ comodtm[0,-1]+ comodtm[1,-1])/9-1,1-1,0 1,-1 0,1 0,0 0,-1 1,1 1,0 1,-1 nome_raster[r,c] offset di riga (r) e colonna(c) rispetto alla cella corrente valutazione di più espressioni res=eval(p1=if(comodtm==0,null(),comodtm),p2=p1+100) Si definiscono una serie di risultati intermedi che concorrono al risultato finale Assegna alla carta finale res, il valore dell'ultima espressione specificata
Alcuni Operatori / divisione && * prodotto + addizione - sottrazione == uguaglianza logica!= disuguaglianza logica > maggiore di >= maggiore o uguale < minore di <= minore o uguale r.mapcalc Alcune Funzioni abs(x) valore assoluto di x eval([x,y,...,]z) valuta il risultato delle espressioni tra parentesi float(x) convete x in formato virgola mobile if(x) se x è diverso da zero il risultato è 1, altrimentiè 0 if(x,a) se x è diverso da zero il risultato è a, altrimentiè 0 if(x,a,b) se x è diverso da zero il risultato è a, altrimentiè b if(x,a,b,c) se x è maggiore di zero il risultato è a, se x è 0 il risultato è b, se x è minore di 0 il risultato è c. isnull(x) controlla se il valore di x è nullo and logico or logico Variabili interne null() valore nullo row() riga corrente col() colonna corrente x() coord x correnti y() coord y correnti ewres() risol. corrente x nsres() risol. corrente y elenco completo in: http://grass.itc.it/gdp/html_grass5/html/r.mapcalc.html
r.mapcalc utilizzo di r.mapcalc - interattivo: si lancia il comando e poi si lavora direttamente sulla shell si indicano in sequenza le espressioni da calcolare
r.mapcalc utilizzo di r.mapcalc - interattivo: si lancia il comando e poi si lavora direttamente sulla shell - si specifica l'espressione di seguito al comando
r.mapcalc utilizzo di r.mapcalc - interattivo: si lancia il comando e poi si lavora direttamente sulla shell - si specifica l'espressione di seguito al comando - si utilizza come fonte un file di testo con la sequenza di espressioni da valutare soluzione consigliata nel caso di espressioni complesse o utilizzo frequente
la regione corrente Il comando g.region serve per visualizzare/modificare la regione corrente (estensione geografica e risoluzione) viene visualizzata la porzione di una carta compresa all'interno della regione corrente le operazioni di calcolo sui raster (r.slope.aspect, r.mapcalc,...) sono effettuate sulla estensione geografica e alla risoluzione specificate nella regione corrente
la regione corrente Si può utilizzare in comando: in modo interattivo # g.region
la regione corrente Si può utilizzare in comando: in modo interattivo in linea, specificando di seguito i parametri in modo opportuno # g.region nsres=0:01:00 ewres=0:01:00
la regione corrente Si può utilizzare in comando: in modo interattivo in linea, specificando di seguito i parametri in modo opportuno tramite l'interfaccia grafica tcltkgrass
la regione corrente specificare una nuova regione # g.region n=46:10n s=46:00n e=9:05e w=8:59e
la regione corrente specificare una nuova regione # g.region n=46:10n s=46:00n e=9:05e w=8:59e
la regione corrente utilizzare i dati di una carta raster, vettoriale,... # g.region raster=comodtm # g.region vector=strade
la regione corrente salvare la regione corrente # g.region save=reg_comodtm
la regione corrente caricare i dati salvati # g.region region=reg_comodtm
estrazione e visualizzazione curve di livello r.contour: estrae da una carta raster le curve di livello nome carta raster nome output vettoriale intervallo curve di livello definizione intervallo # r.contour input=comodtm output=como_quote step=50
estrazione e visualizzazione curve di livello visualizzando in sequenza la carta raster e quella vettoriale derivata si ottiene:
estrazione e visualizzazione curve di livello si può indicare un sottoinsieme di oggetti vettoriali da visualizzare # d.vect como_quote catnum=0,500,1000,1500,2000,2500
estrazione e visualizzazione curve di livello Visualizzare le etichette associate ad una carta vettoriale # d.vect.labels como_quote attr=cat size=10 color=red
gestione dell'archivio All'interno di un mapset le informazioni relative ad una singola carta sono distribuite in più directory Esistono una serie di strumenti per copiare, rinominare, cancellare agevolmente i dati copia la carta raster comodtm dal mapset marco al mapset corrente # g.copy rast=comodtm@marco,comodtm In modo simile si opera per copiare da un mapset all'altro o all'interno del medesimo mapset carte vettoriali, punti sparsi, definizioni di regioni,...
gestione dell'archivio rinomina la carta vettoriale, da strade a strade_old # g.rename vect=strade,strade_old In modo simile si opera per rinominare carte raster, punti sparsi, definizioni di regioni,...
gestione dell'archivio elimina le carte raster como.slope e como.aspect # g.remove rast=como.slope,como.aspect In modo simile si opera per eliminare carte vettoriali, punti sparsi, definizioni di regioni,... Nota: è possibile scrivere solo sul mapset corrente
r.los Genera una carta raster con tutte le celle che sono visibili da un punto di osservazione fissato Tipicamente: input modello digitale di terreno punto di osservazione antenna output area coperta dall'antenna E' possibile inoltre specificare: l'altezza dell'antenna un file di maschera per individuare la zona di interesse il raggio massimo di calcolo
Esempio r.los 2. 1.
Esempio r.los # r.los input=italia32a output=prova_sight01 coordinate=510423,5076075 obs_elev=20 max_dist=10000
Esempio r.los # r.los input=italia32a output=prova_sight02 coordinate=503893,5074865 obs_elev=20 max_dist=10000
Bibliografia GRASS Development Team, 2004. "GRASS 5.0 Users Manual". ITC-irst, Trento, Italy. Electronic document: http://grass.itc.it/gdp/html_grass5/ GRASS Development Team, 2004. GRASS 5.0 Programmer's Manual. ITC-irst, Trento, Italy. Electronic document: http://grass.itc.it/grassdevel.html#prog Home page GRASS: Home page GRASS Italia: link utili http://grass.itc.it/ http://www.geo.unipr.it/~gis Tutorial on-line: http://www.ing.unitn.it/~grass/docs/tutorial/italiano/