JGrass 2.0 Manuale Utente HydroloGIS Andrea Antonello & Silvia Franceschi In collaborazione con il CUDAM Riccardo Rigon & Alfonso Vitti Maggio 2006 ISBN 10: 88-8443-144-1 ISBN 13: 978-88-8443-144-8 Andrea Antonello [email protected] Silvia Franceschi [email protected] Riccardo Rigon [email protected] Alfonso Vitti [email protected] HydroloGIS www.hydrologis.com Grazie a Vanna Antonello, l’utente paziente “cavia” In JGrass we trust... Readme Questo libro elettronico è stato scritto da Silvia Franceschi, Andrea Antonello, Riccardo Rigon e Alfonso Vitti (HydroloGIS - Università degli Studi di Trento, Dipartimento di Ingegneria Civile e Ambientale). Il libro viene distribuito con licenza CREATIVE COMMONS detta: Attribuzione - Non Opere Derivate 2.5. Secondo questo tipo di licenza si ha il permesso di: • riprodurre, distribuire, comunicare al pubblico, esporre in pubblico, rappresentare, eseguire o recitare l’opera • di usare l’opera a fini commerciali Alle seguenti condizioni: • Attribuzione. Si deve attribuire la paternità dell’opera nei modi indicati dall’autore o da chi ha fornito l’opera in licenza. • Chiunque distribuisca quest’opera, deve farlo secondo i termini di questa licenza, che va comunicata con chiarezza. • È possibile concordare col titolare dei diritti d’autore utilizzi di quest’opera non consentiti da questa licenza. • Non è possibile alterare, trasformare o sviluppare quest’opera. Le utilizzazioni libere dell’opera e gli altri diritti non sono in nessun modo limitati da quanto sopra. La forma integrale della licenza è consultabile al sito: http://creativecommons.org/licenses/by-nd/2.5/legalcode.it 8 Indice 1 Introduzione 1 1.1 Il GIS JGrass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 Sviluppi futuri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.3 Altre informazioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2 Introduzione ai GIS 5 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.1.1 Definizione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.1.2 GIS e SIT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.2 Modello dei dati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.3 Tipologia di dati geografici . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.4 Funzionalità . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.5 Glossario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.1 3 Installazione 15 3.1 Requisiti del sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 3.2 Installazione del software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 3.3 3.2.1 Installazione da file jar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 3.2.2 Il processo di installazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Programmi esterni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 3.3.1 I pacchetti di R usati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 3.4 Struttura delle cartelle di installazione . . . . . . . . . . . . . . . . . . . . . . . . . . 23 3.5 Struttura dei dati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 4 Primo avvio del programma 29 4.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 4.2 L’interfaccia grafica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 4.2.1 La barra degli strumenti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 i INDICE 4.2.2 Il menu principale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 4.2.3 L’ambiente di lavoro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 4.2.4 La barra degli strumenti del monitor . . . . . . . . . . . . . . . . . . . . . . . 34 4.2.5 La barra dei menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 4.3 Personalizzazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 4.4 Proprietà di visualizzazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 5 Primi passi con JGrass 49 5.1 Il set di dati di prova Spearfish . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 5.2 Parametri della regione 5.2.1 5.3 5.4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 Proprietà della regione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 Visualizzazione dei dati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 5.3.1 Dati raster . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 5.3.2 Dati vettoriali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 Interrogazione delle mappe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 5.4.1 Interrogazione di mappe raster . . . . . . . . . . . . . . . . . . . . . . . . . . 63 5.4.2 Interrogazione di mappe vettoriali . . . . . . . . . . . . . . . . . . . . . . . . 64 5.5 Tracciamento del profilo delle mappe . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 5.6 Gestione delle mappe raster . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 5.6.1 Copiare una mappa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 5.6.2 Rinominare una mappa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 5.6.3 Cancellare una mappa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 5.7 Creazione della tavola dei colori di una mappa raster . . . . . . . . . . . . . . . . . . 73 5.8 Calcoli con mappe raster . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 5.9 Creazione della lista delle categorie . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 5.10 Modifica dei valori di mappe raster . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 5.10.1 Editing manuale di mappe raster . . . . . . . . . . . . . . . . . . . . . . . . . 82 5.10.2 Modifica di mappe raster attraverso la creazione di poligoni . . . . . . . . . . 83 6 Creazione di un nuovo ambiente di lavoro 6.1 87 Creazione di una location . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 6.1.1 Caricamento di una location preesistente . . . . . . . . . . . . . . . . . . . . . 94 6.2 Scelta del sistema di riferimento e della proiezione cartografica . . . . . . . . . . . . 94 6.3 Importazione di dati raster . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 6.3.1 Import di mappe raster . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 ii INDICE 6.3.2 6.4 Import di mappe vettoriali . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 Riproiezione dei dati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 7 Elaborazioni particolari 109 7.1 Creazione delle linee di livello partendo dal dem . . . . . . . . . . . . . . . . . . . . . 109 7.2 Creazione di un dem partendo dalle curve di livello . . . . . . . . . . . . . . . . . . . 110 8 Database ambientali 8.1 8.2 113 Installazione e utilizzo del client di database . . . . . . . . . . . . . . . . . . . . . . . 113 8.1.1 Creazione delle connessioni a database remoti . . . . . . . . . . . . . . . . . . 114 8.1.2 Connessione e visualizzazione dei dati . . . . . . . . . . . . . . . . . . . . . . 116 Come interfacciare JGrass ai database . . . . . . . . . . . . . . . . . . . . . . . . . . 118 8.2.1 Interfaccia per database di punti . . . . . . . . . . . . . . . . . . . . . . . . . 118 8.2.2 Interfaccia per database spaziali . . . . . . . . . . . . . . . . . . . . . . . . . 125 9 Uso della console 129 9.1 Esecuzione in console dei comandi di JGrass . . . . . . . . . . . . . . . . . . . . . . . 129 9.2 Scripting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 9.3 Esecuzione in console dei comandi di GRASS . . . . . . . . . . . . . . . . . . . . . . 133 9.4 Indice dei comandi GRASS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 10 Elaborazione statistica 145 10.1 Elaborazioni statistiche di mappe di punti . . . . . . . . . . . . . . . . . . . . . . . . 145 10.2 Report statistico del set di dati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 10.3 Funzione densità di probabilità . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 10.4 Funzione densità di probabilità cumulata . . . . . . . . . . . . . . . . . . . . . . . . 151 10.5 Interpolazione geostatistica con l’interpolatore kriging . . . . . . . . . . . . . . . . . 152 11 Stampa 159 12 Disinstallazione 163 iii INDICE iv 1 Introduzione Da diverso tempo ci viene chiesto di scrivere un manuale di JGrass, e ora abbiamo finalmente deciso di scriverlo. Il manuale che vi presentiamo segue un po’ la logica d’uso di JGrass partendo dalla presentazione del programma e degli algoritmi principali che sono stati implementati fino alla definizione di particolari parametri ambientali (in particolare idrologici e geomorfologici). Il manuale vi mostrerà una panoramica generale sulle capacità di JGrass e vi darà qualche spunto per risolvere alcuni problemi spaziali. Nella versione HTML [http://geoserver.ing.unitn.it/jgrass]del manuale ci sono due modi di procedere: le pagine sono ordinate secondo un ordine lineare. All’inizio e alla fine di ogni pagina ci sono quattro direzioni da prendere. La freccia a sinistra riporta alla pagina precedente (che non è necessariamente l’ultima pagina vista) mentre la freccia a destra permette di proseguire con il manuale. Cliccando sul link all’indice si visualizza la pagina con i contenuti del manuale con una breve descrizione di ogni capitolo. Infine il link ’A-Z’ vi porterà a visualizzare l’indice analogico di tutti i moduli di JGrass. 1.1 Il GIS JGrass La base della ricerca per lo sviluppo degli algoritmi contenuti in JGrass è il Dipartimento di Ingegneria Civile e Ambientale dell’Università di Trento e il CUDAM (Centro Universitario per la Difesa dell’Ambiente Montano) che ha sede sempre a Trento. Il centro dello sviluppo è HydroloGIS di Bolzano, ci sono comunque altri sviluppatori presso il CUDAM di Trento e l’ICENS di Kingston. La base di partenza di JGrass è il GIS GRASS, che attualmente rappresenta il maggiore progetto Open Source nel campo dei GIS. GRASS sta pian piano evolvendo verso una soluzione appetibile nei settori commerciali e di produzione. Il maggiore ostacolo alla fioritura commerciale di GRASS è senza dubbio il problema della portabilità. Un gran numero di professionisti utilizza Windows e Mac-OS come piattaforme preferenziali e le strutture aziendali non prevedono la possibilità di usare Linux (che è il sistema operativo su cui si basa lo sviluppo di GRASS). JGrass, sviluppato per semplificare l’utilizzo di GRASS sulle varie piattaforme si pone i seguenti obietivi: • portabilità - la possibilità di utilizzare GRASS su Windows, Unix/Linux e Mac-OS indifferentemente (write once, run everywhere) 1. Introduzione • possibilità per chiunque, attraverso il framework creato, di sviluppare con semplicità moduli aggiuntivi, funzioni particolari e interfacce dedicate attraverso lo scripting XML (interfacce application oriented) • scripting - possibilità di usare un linguaggio di scripting su base Java per automatizzare processi (programmer’s and scientific work oriented) • semplicità nell’utilizzo - barre del menu, degli strumenti e icone atte a semplificare l’interfaccia (end-user friendly) Negli ultimi anni sono stati vari i tentativi di unire le forze di Java e GRASS, primo fra tutti il lavoro di wrapping delle librerie di GRASS in java di Alexandre Sorokine. Poco dopo, al Centro di Scienze Ambientali e Nucleari dell’Università of the West Indies (Jamaica), John Preston dette il via allo sviluppo di un’applicazione Java/swing incentrata sulla visualizzazione di mappe geochimiche. All’inizio del 2003 il Dr. Rigon del Dipartimento di Ingegneria Civile ed Ambientale di Trento / CUDAM, decide di supportare il progetto Jamaicano in modo concreto fornendo sia dei fondi che uno sviluppatore, e coordinandosi con il gruppo di ricerca all’ITC che comprende anche Markus Neteler, e da cosı̀ inizio allo sviluppo di JGrass. Allo stato attuale JGrass è un’applicazione eseguibile in locale, anche se prevede l’implementazione futura della gestione remota. È un’applicazione Java/Swing basata su MDI (multiple document interface) e fornisce delle modalità standardizzate di interazione tra le interfacce e il kernel di GRASS. Anche se il tentativo è quello di mantenere JGrass il più possibile in pure Java, alcune parti sono ancora scritte in linguaggio nativo di GRASS tramite l’utilizzo della API JNI della Sun. Nell’architettura di JGrass vi sono un display monitor 2D/3D basato su tecnologia OpenGl (GL4java, Jogl) e una console, dalla quale si ha la possibilità di lanciare applicazioni e tutti i comandi originari di GRASS. Sono inoltre fornite delle barre di strumenti e una barra di menu utilizzabili in sostituzione della console. Viene presentato nel manuale il progetto che allo stato attuale implementa la visualizzazione di mappe raster, file vettoriali, sites e anche shapefiles (ESRI), visualizzazione 2D e 3D e alcune utilità di stampa e di esportazione. 1.2 Sviluppi futuri JGrass si è evoluto molto in questi ultimi due anni grazie all’esperienza acquisita dagli sviluppatori e all’interesse di molte persone. Esso si candida in un prossimo futuro ad essere un GIS 2 1. Introduzione completo per le analisi ambientali e semplice da usare, paragonabile al più famoso ArcView. È previsto a breve lo sviluppo di un ambiente vettoriale completo comprensivo anche dell’editing di vettori e il suo utilizzo come strumento di visualizzazione delle mappe in remoto, ovvero la creazione di un WebGIS completo per l’analisi e il calcolo su mappe in un database centralizzato. Un altro filone di sviluppo è la parte di trattamento di grandi moli di dati. I rilievi LIDAR (Laser Scanner) sono ormai molto diffusi e permettono di rappresentare il territorio con una precisione notevole e di ottenere un modello delle elevazioni a risoluzione fino a 1m x 1m. Si tratta quindi di una quantità ingente di dati delicata sia da visualizzare che da elaborare per le analisi territoriali. Quello che verrà introdotto in JGrass è un sistema innovativo per la visualizzazione dei dati, del tipo usato presso i Livermore Laboratories di San Francisco, e un sistema efficiente di mappatura dei dati su harddisk per l’elaborazione delle routines di calcolo. 1.3 Altre informazioni Sul progetto JGrass si sta lavorando da qualche anno ormai e sono attivi tutta una serie di strumenti che possono essere utilizzati sia dagli utenti che dai programmatori. Questi strumenti sono: • mailing list: per utenti e programmatori i cui indirizzi e modalità di iscrizione si trovano al sito http://www.hydrologis.com/jgrassml.html nella sezione Tools. • bug tracker: per segnalare i bachi nell’uso del software, per inviare un messaggio è sufficiente collegarsi a https://sourceforge.net/tracker/?group id=144497&atid=758942 e seguire le istruzioni • altri manuali scritti dal personale del CUDAM e Diprartimento di Ingegneria Civile e Ambientale dell’Università di Trento. 3 1. Introduzione 4 2 Introduzione ai GIS In questo manuale non si dà particolare spazio alla descrizione dei Sistemi Informativi Geografici e allo sviluppo che hanno avuto nell’ultimo periodo. Si presuppone che l’utente che si avvicina a JGrass abbia un’infarinatura di GIS e per questo vengono proposti di seguito solamente i termini cardine che verranno utilizzati di seguito nel manuale. La parte di introduzione ai Sistemi Informativi Geografici riportata nel seguente capitolo fa riferimento a quanto riportato sull’argomento al sito di Wikipedia1 , l’enciclopedia libera. Maggiori informazioni si possono trovare sulla pagina inglese della stessa enciclopedia2 . 2.1 Introduzione I Sistemi Informativi Geografici (GIS - Geographic Information System) sono dei sistemi informatizzati (ovvero basati sui computer) e vengono usati per rappresentare su supporto digitale e analizzare le caratteristiche e gli elementi presenti sulla superficie della terra, nonché gli eventi che avvengono su di essi. Ogni oggetto presente sulla superficie della terra può essere geo-riferito, che significa che può essere collocato spazialmente in una posizione ben precisa sul globo terrestre, questo è il concetto di base che permette di associare ogni database a un GIS. In questa sede il termine database è associato a un insieme di informazioni riguardanti un oggetto e la sua relazione con altri “oggetti”, mentre il termine georeferenziazione si riferisce alla posizione di un oggetto nello spazio definito attraverso un sistema di coordinate. Quello che si vorrebbe chiarire prima di affrontare lo studio dei GIS è che in essi non ci sono soluzioni già preconfezionate per ogni sorta di problema spaziale. Tutto dipende dalla capacità dell’utente, è la capacità dell’utente di aggregare le operazioni in una particolare sequenza o secondo un particolare schema che permette di ottenere i risultati migliori. 2.1.1 Definizione Un Sistema Informativo Geografico (GIS) è un sistema informativo computerizzato che permette l’acquisizione, la registrazione, l’analisi, la visualizzazione e la restituzione di informazioni derivanti da dati geografici (geo-referenziati). 1 2 http://it.wikipedia.org/wiki/Sistema informativo territoriale http://en.wikipedia.org/wiki/GIS 2. Introduzione ai GIS 2.1.2 GIS e SIT Secondo la definizione di Burrough (1986) il GIS è composto da una serie di strumenti software per acquisire, memorizzare, estrarre, trasformare e visualizzare dati spaziali dal mondo reale. Si tratta di un sistema informatico in grado di produrre, gestire e analizzare dati spaziali associando a ciascun elemento geografico una o più descrizioni alfanumeriche. Il GIS può essere visto come una forma di DBMS (Database Management System, Sistema di Gestione di basi di dati), in grado di gestire dati geografici. Sebbene sia uso comune utilizzare indistintamente i termini GIS e SIT (Sistema Informativo Territoriale) molti Autori sono concordi nel ritenere che le due definizioni non coincidono. Il termine SIT infatti, essendo riferito al territorio, è riduttivo rispetto al termine GIS. Mogorovich (1988) ha definito il SIT: Il complesso di uomini, strumenti e procedure (spesso informali) che permettono l’acquisizione e la distribuzione dei dati nell’ambito dell’organizzazione e che li rendono disponibili nel momento in cui sono richiesti a chi ne ha la necessità per svolgere una qualsivoglia attività. 2.2 Modello dei dati Per la rappresentazione dei dati in un sistema informatico occorre formalizzare un modello rappresentativo flessibile che si adatti ai fenomeni reali. Nel GIS ci sono tre tipologie di informazioni: • Informazioni Geometriche: relative alla rappresentazione cartografica degli oggetti rappresentati; quali la forma (punto, linea poligono), la dimensione e la posizione geografica; • Topologiche: riferite alle relazioni reciproche tra gli oggetti (connessione, adiacenza, inclusione ecc...); • Informative: riguardanti i dati (numerici, testuali ecc...) associati ad ogni oggetto. Il GIS prevede la gestione di queste informazioni in un database relazionale. L’aspetto che caratterizza il GIS è quello geometrico: esso memorizza la posizione del dato impiegando un sistema di proiezione reale che definisce la posizione geografica dell’oggetto. Il GIS gestisce contemporaneamente i dati provenienti da diversi sistemi di proiezione e riferimento (es. UTM o Gauss Boaga) A differenza della cartografia su carta la scala, in un GIS, è un parametro di qualità del dato e non di visualizzazione. Il valore della scala, esprime le cifre significative che si devono considerare valide delle coordinate di georeferimento. 6 2. Introduzione ai GIS 2.3 Tipologia di dati geografici Il mondo reale può essere rappresentato in un Sistema Informativo Geografico attraverso due tipologie principali di dato: il dato vettoriale e il dato raster. I dati vettoriali sono costituiti da elementi semplici quali punti, linee e poligoni, codificati e memorizzati sulla base delle loro coordinate. Un punto viene individuato in un Sistema Informativo Geografico attraverso le sue coordinate reali (x1, y1); una linea o un poligono attraverso la posizione dei suoi nodi (x1, y1; x2, y2; ...). A ciascun elemento è associato un record del database informativo che contiene tutti gli attributi dell’oggetto rappresentato. Il dato raster permette di rappresentare il mondo reale attraverso una matrice di celle, generalmente di forma quadrata o rettangolare, dette pixel. A ciascun pixel sono associate le informazione relative a ciò che esso rappresenta sul territorio. La dimensione del pixel (detta anche pixel size), generalmente espressa nell’unità di misura della carta (metri, chilometri etc.), è strettamente relazionata alla precisione del dato. I dati vettoriali e i dati raster si adattano ad usi diversi. La cartografia vettoriale è particolarmente adatta alla rappresentazione di dati che variano in modo discreto (ad esempio l’ubicazione dei cassonetti dei rifiuti di una città o la rappresentazione delle strade o una carta dell’uso del suolo), la cartografia raster è più adatta alla rappresentazione di dati con variabilità continua (ad esempio un modello digitale di elevazione o una carta di acclività del versante). 2.4 Funzionalità Il GIS consente di mettere in relazione tra di loro dati diversi, sulla base del loro comune riferimento geografico in modo da creare nuove informazioni a partire dai dati esistenti. Il GIS offre ampie possibilità di interazione con l’utente e un insieme di strumenti che ne facilitano la personalizzazione e l’adattamento alle problematiche specifiche dell’utente. I GIS presentano normalmente delle funzionalità di analisi spaziale ovvero di trasformazione ed elaborazione degli elementi geografici degli attributi. Esempi di queste elaborazioni sono: • L’overlay topologico: in cui si effettua una sovrapposizione tra gli elementi dei due temi per creare un nuovo tematismo (ad esempio per sovrappore il tema dei confini di un parco con i confini dei comuni per determinare le superfici di competenza di ogni amministrazione o la percentuale di area comunale protetta); • Le query spaziali, ovvero delle interrogazioni di basi di dati a partire da criteri spaziali 7 2. Introduzione ai GIS (vicinanza, inclusione, sovrapposizione etc.) • Il buffering: da un tema puntuale, lineare o poligonale definire un poligono di rispetto ad una distanza fissa o variabile in funzione degli attributi dell’elemento • La segmentazione: algoritmi di solito applicati su temi lineari per determinare un punto ad una determinata lunghezza dall’inizio del tema; • La Network Analysis: algoritmi che da una rete di elementi lineari (es. rete stradale) determinano i percorsi minimi tra due punti. 2.5 Glossario Le definizioni contenute in questa sezione fanno riferimento al glossario dei termini GIS on line al sito: http://www.glossari.it/glossariogis.html dove si può trovare la versione completa e aggiornata. A Attributo - Informazione descrittiva associata ad un oggetto geografico e che lo caratterizza. Generalmente nei GIS indica le caratteristiche non grafiche dell’elemento o quelle grafiche non rappresentabili nella scala d’acquisizione. Ad esempio potrebbero essere attributi di un elemento lineare (arco) che rappresenta una strada: il tipo di pavimentazione, il numero medio di veicoli in transito, la larghezza, ecc. C Campo - Un una tabella di attributi, indica una posizione all’interno di un record dedicata ad una sola caratteristica di ciascun elemento della tabella. Carta geografica - Una carta geografica è una rappresentazione grafica di elementi geografici o altri fenomeni spaziali (laghi, fiumi, strade, città...) che fornisce due tipi di informazioni circa l’area rappresentata: la posizione e l’aspetto. La posizione consente di capire dov’è un particolare elemento geografico sulla superficie della terra e quali sono le sue relazioni con gli altri elementi. L’aspetto ci illustra sia le caratteristiche qualitative (nome, tipo .. .) che quelle quantitative (area, 8 2. Introduzione ai GIS lunghezza ...) dell’elemento rappresentato. Ciascuna carta geografica presenta, oltre alle informazioni spaziali e descrittive, alcune caratteristiche tecniche che la definiscono e ne determinano l’uso. Tali caratteristiche includono la scala, l’accuratezza, il sistema di proiezione, il sistema di coordinate. Cartografia digitale - Nella versione digitale di una carta geografica tradizionale, la posizione e la descrizione degli elementi sono memorizzate in una serie di file su computer. Per individuare la posizione degli elementi geografici è utilizzato un sistema di coordinate cartesiane x,y o x,y,z: ogni punto è rappresentato con una singola coppia di coordinate x,y; ogni linea è memorizzata come una serie ordinata di coordinate x,y; ogni area è memorizzata come una serie ordinata di coordinate x,y che definiscono i segmenti perimetrali della figura chiusa. Con le coordinate x,y è possibile rappresentare punti, linee e poligoni come liste di coordinate, invece che come un disegno. Nella maggior parte dei casi, la memorizzazione degli elementi geografici utilizza coordinate del mondo reale: queste coordinate rappresentano una localizzazione reale sulla superficie della terra, in uno dei tanti sistemi di coordinate. Le relazioni tra elementi geografici sono espresse, su una carta digitale, con l’uso della topologia. Le caratteristiche degli elementi geografici sono memorizzate nel computer in un file, detto generalmente tabella, come set di numeri e caratteri. Cartografia di base - È l’insieme delle carte che riguardano un certo territorio, costruite con tecniche topografiche e fotogrammetriche, che rappresentano le planimetrie (corsi d’acqua, strade, ferrovie, ponti, case, ecc.) e l’altimetria composta da punti quotati o curve di livello. D Database - Per database (base dati, banca dati o archivio) si intende un insieme di informazioni di diverso tipo. Questi dati sono organizzati secondo criteri ben precisi che permettono una rapida consultazione. Database geografico - Database dedicato a informazioni di tipo territoriale. Dati spaziali - Dati geometrici caratterizzati da un riferimento geografico. 9 2. Introduzione ai GIS F Formato raster - [vedi raster] Fotointerpretazione - Tecnica che consente ad esperti di determinare e classificare fenomeni territoriali dalla lettura di foto aeree o immagini telerilevate, quali ad esempio, tipi di vegetazione, determinazione di faglie o aggiornamento di basi cartografiche esistenti. G Gauss-Boaga - E’ un sistema di coordinate in proiezione cilindrica inversa tipicamente utilizzata per la cartografia del territorio in Italia (IGMI, Catasto, Carte Tecniche Regionali, ecc.). Georeferenziare - Procedura software che consiste nel posizionare, mediante punti a coordinate note (punti di controllo), dati vettoriali o un’immagine raster nella rispettiva zona del territorio reale secondo un determinato sistema di riferimento. GIS (Geographical Information System) - Un insieme complesso di componenti hardware, software, umane ed intellettive per acquisire, processare, analizzare, immagazzinare e restituire in forma grafica ed alfanumerica dati riferiti ad un territorio. GPS (Global Positioning System) - E’ un sistema che consente, per mezzo di un ricevitore, un software dedicato e una costellazione di satelliti, di determinare la posizione al suolo e l’altimetria di un punto, con una precisione che varia da pochi millimetri ad alcuni metri in funzione del tipo di apparecchiatura e delle procedure operative di rilievo. I Image processing - Insieme di attività riguardanti l’elaborazione di immagini in formato raster. Molte delle tecniche impiegate in questa disciplina richiedono procedimenti matematici complessi con l’obiettivo di determinare i fenomeni descritti dall’immagine quali ad esempio, nel GIS, inquinamento, umidità e temperatura al suolo, vegetazione, ecc. 10 2. Introduzione ai GIS Immagine raster - Qualsiasi immagine può essere pensata come formata da un insieme di piccole aree uguali (pixel), ordinate secondo linee e colonne, tali da costituire una matrice. I valori associati ad ogni cella possono esprimere sia informazioni di tipo grafico (colore, tono di grigio, ecc) sia di tipo descrittivo (temperatura, pendenza, ecc). L Layer - [vedi strato informativo] Legenda - E’ uno strumento presente sulle carte che associa i simboli grafici utilizzati ai singoli tematismi, per consentirne la lettura. Longitudine - [vedi proiezione geografica] M Mosaicatura - E’ l’insieme di operazioni che, in ambito GIS, consente di unire tra loro più mappe in formato digitale per realizzare una continuità territoriale. O Overlay (topologico) - Procedura di analisi spaziale che consente di sovrapporre e intersecare gli strati informativi (layer) unendo cosı̀ le informazioni associate a ciascuno di essi per produrre un nuovo strato di sintesi. R Raster - [vedi immagine raster] 11 2. Introduzione ai GIS Rasterizzazione - Operazione che consente in modo automatico di ricavare un’immagine raster a partire da dati vettoriali o da documenti cartacei (scanner). Record - Gruppo di posizioni contigue (campi) di informazioni, anche disomogenee, alle quali è possibile accedere secondo differenti modalità. Risoluzione - E’ un parametro di qualità locale di una cartografia e corrisponde alle dimensioni del più piccolo particolare rappresentato nella cartografia vettoriale e alla lunghezza del lato della cella (pixel) nel formato raster. S Scala nominale - E’ un parametro che definisce la scala di riferimento di una cartografia numerica in funzione della corrispondente scala di una cartografia tradizionale realizzata seguendo gli stessi requisiti di precisione metrica. Scala - La scala di una carta geografica indica, in pratica, quante volte una porzione della superficie terrestre è stata ridotta per poter essere rappresentata su un foglio di carta. E espressa, in genere, come il rapporto tra una distanza sulla carta e la corrispondente distanza sul terreno. Il rapporto di scala utilizzato per una carta geografica determina il contenuto di informazioni e la dimensione dell’area che può ragionevolmente essere rappresentata. Si definiscono carte a grande scala (1:500, 1:1000, 1:2000), a media scala (1:5000, 1 :10000) e a piccola scala (da 1:25000 in poi). Sistema di coordinate - [vedi sistema di riferimento] Sistema di riferimento - Ogni proiezione ha un proprio sistema di riferimento, dal quale si parte per calcolare le distanze. Ad esempio la Proiezione Geografica ha come riferimenti l’incrocio tra il meridiano di Greenwich e l’Equatore, la UTM prevede spicchi predeterminati di sei gradi detti fusi a loro volta divisi in zone (L’ltalia è a cavallo dei fusi 32, 33 e 34), la GAUSS-BOAGA, tutta italiana, parte da Monte Mario (a Roma) e utilizza coordinate chilometriche misurate convenzionalmente partendo da 1500 a sinistra e da 2520 a destra del meridiano di riferimento. SIT (Sistema Informativo Territoriale) - Acronimo italiano corrispondente all’anglosassone 12 2. Introduzione ai GIS GIS. SPOT (Système Probatoire d’Observation de la Terre) - Famiglia di satelliti multispettrali per il remote sensing con sistema di puntamento mobile. La definizione a terra è di 20 metri per il multispettrale e di 10 metri per il pancromatico. Il primo lancio di questo sistema francese risale al 1986. T Tabella di attributi - Le tabelle sono una parte integrante dello strato informativo. Ogni tabella è relativa ad un gruppo omogeneo di elementi geografici della carta (le strade, i fiumi, le curve di livello, ecc.) ed è costituita da un numero variabile di righe e colonne. Ogni riga (record) contiene la descrizione di un singolo elemento geografico ed ogni colonna (campo o attributo) memorizza uno specifico tipo di informazione. Le caratteristiche degli elementi geografici sono generalmente tradotte in codici numerici o alfabetici, prima di essere inserite nella relativa tabella. Tematismo - Rappresentazione di una cartografia raster o vettoriale nella quale punti, linee o superfici sono associati a simboli, retini o colori che rappresentano il risultato di un’analisi di qualità (uso del suolo, zone di piano regolatore, intensità del traffico su una strada, ecc.). Topologia - La topologia è un insieme di regole per definire in maniera esplicita le relazioni, i rapporti di connessione e di contiguità tra gli elementi spaziali e per collegare tali elementi alle relative descrizioni (attributi). In un modello dati topologico, ad esempio, è possibile riconoscere le aree contigue e identificare le linee che delimitano ciascuna superficie (confini). V Vettoriale - E’ un sistema di archiviazione di dati grafici secondo il quale gli oggetti vengono memorizzati in base alle coordinate cartesiane dei punti e linee che li compongono. Vettorializzazione - Operazione che consente in modo automatico o semiautomatico (cioè con l’assistenza di un operatore) di ricavare un insieme di vettori a partire da una immagine raster. 13 2. Introduzione ai GIS 14 3 Installazione Si ricorda che JGrass è un software multipiattaforma e quindi è possibile installare la stessa versione del software sui principali sistemi operativi dove ci sia Java funzionante. Prima di procedere con l’installazione vengono presentati i requisiti di base del sistema necessari per un buon funzionamento del software. L’installazione è poi particolare per ogni sistema operativo e ne segue gli standard. 3.1 Requisiti del sistema In tabella 3.1 sono riportati i requisiti del sistema necessari per l’esecuzione di JGrass, versione 2.0. Requisito Processore Sistema operativo Memoria RAM Spazio sul disco disponibile per il software (no dati) Scheda Video Java Runtime Environment Linux 1400 MHz Windows 1400 MHz qualsiasi 512 Mb 90 Mb Windows XP 512 Mb 90 Mb MacOSX Power Mac G4 500 MHz Tiger 512 Mb 90 Mb con supporto pbuffer jre 1.5.05 con supporto pbuffer jre 1.5.05 con supporto pbuffer jre 1.5.05 Tabella 3.1: Requisiti di sistema necessari per l’esecuzione di JGrass. 3.2 Installazione del software È possibile scaricare il software dal sito di HydroloGIS 1 oppure richiedendo il CD autoinstallante. Se vi trovate in possesso di un CD autoinstallante e l’opzione “autorun” è attiva saltate direttamente alla Sezione 3.2.2, altrimenti dovrete proseguire con la Sezione 3.2.1. 1 www.hydrologis.com 3. Installazione 3.2.1 Installazione da file jar Se avete scaricato l’installatore di JGrass dal sito vi trovate in possesso di un file archivio di estensione “jar” (di default il suo nome è jgrass installer.jar”). Windows Su alcune versioni di windows se scaricate il file “jar” dal sito, questo viene automaticamente rinominato con l’estensione “.zip”. Se il file mantiene questa estensione non sarà possibile procedere con l’installazione, per procedere sarà quindi sufficiente rinominare il file con l’estensione corretta e potrete procedere con l’operazione. È solo un po’ di spirito di iniziativa tipico di windows... Il file è un archivio java eseguibile e dovrebbe bastare un doppio click per lanciare l’installazione. Nonostante questo, in alcune versioni di Windows non viene riconosciuta l’associazione all’esecuzione tramite java. In questo caso è necessario lanciare l’installatore da console2 attraverso il comando: java -jar jgrass_installer.jar In molti casi è sufficiente settare tra le opzioni del file la possibilità di esecuzione come applicazione Java e quindi doppio clic sul file e partirà l’installatore. Linux In ambiente linux quasi nessun browser supporta l’esecuzione di file jar. Quindi, se non foste fra i pochi fortunati, aprite una console, spostatevi nella cartella contenente il file di installazione ed eseguite il comando; java -jar jgrass_installer.jar MacOSX L’ambiente MacOSX supporta l’esecuzione di file jar, quindi sarà sufficiente eseguire il file di installazione attraverso un doppio click. Per le versioni stabili di JGrass viene sempre confezionato un pacchetto di installazione apposito per questo sistema operativo, il pacchetto è un pacchetto “dmg” contenente l’applicazione. Sarà 2 La console in windows può essere aperta attraverso la combinazione di tasti “tasto windows + r”. Questo aprirà la finestra di dialogo “Esegui”. Da lı̀ basterà scrivere “cmd” e premere invio. È quindi necessario spostarsi nella cartella contenente il file di installazione di JGrass. Un’alternativa per i meno esperti è quella di scegliere dal menu avvio - accessori - prompt di MSDOS 16 3. Installazione sufficiente cliccare sul pacchetto scaricato per avviare tutta la procedura di installazione cosı̀ come per qualsiasi altra applicazione MacOSX. 3.2.2 Il processo di installazione Se il processo di installazione è cominciato, vi trovate davanti alla schermata di Figura 3.1. Figura 3.1: Il primo pannello della procedura di installazione. Vi viene immediatamente data la possibilità di decidere la lingua da usare nel processo di installazione che può essere scelta dal menu a tendina nella parte inferiore3 . Seguono quindi alcune schermate di carattere informativo. Per proseguire basterà cliccare sul tasto “avanti”. Verrà quindi chiesto di accettare la forma di licenza scelta per JGrass, e cioè la General Public License (GPL)4 . Segue quindi una schermata riportante i cambiamenti delle diverse versioni di JGrass e quindi anche le novità della versione attuale e i problemi noti. La schermata seguente (Figura 3.3) riporta alcune informazioni riguardanti l’installazione in situazioni e per configurazioni particolari. Normalmente non è necessario seguire le linee guida proposte nel seguito. 3 4 N.B. il logo può essere diverso da quello riportato nell’immagine a seconda della versione del software. www.gnu.org 17 3. Installazione Figura 3.2: Il pannello riportante la licenza del software. Figura 3.3: Il pannello riportante le configurazioni particolari di installazione. La schermata successiva (Figura: 3.4) è la più importante del processo di installazione. Essa è suddivisa in tre parti: 1. ambiente java installato: è stato implementato un metodo di riconoscimento automatico della posizione e della versione di java installata. Se questo dovesse fallire e la casella di testo non 18 3. Installazione riportasse il percorso assoluto dell’ambiente java, sarà necessario inserirlo manualmente5 . 2. linguaggio con cui verrà installato il programma inserendone la sigla corrispondente. 3. parametri di memoria minimo e il massimo del range di memoria per l’esecuzione di JGrass. Questi due parametri sono importanti perchè definiscono le risorse di memoria dedicate a JGrass. Settare bene questi parametri in fase di installazione tenendo conto della memoria RAM a disposizione evita spiacevoli sorprese del tipo “Out of memory error” durante l’esecuzione. 4. interconnessioni fra JGrass e alcuni programmi esterni. Se i programmi riportati non fossero installati sul sistema, basterà lasciare inalterato quanto riportato nelle caselle di testo (di default vi è un punto). Maggiori dettagli su questo punto verranno definiti nel Paragrafo 3.3: Programmi esterni. Figura 3.4: Il pannello riportante le opzioni di installazione. Nella schermata seguente i parametri selezionati vengono riassunti per un ultimo controllo prima dell’installazione vera e propria. A questo punto è ancora possibile tornare indietro e modificare le impostazioni. Il passo successivo riguarda la selezione dei pacchetti da installare (Figura: 3.5): 5 Il percorso da inserire è quello contenente la cartella “bin” che a sua volta deve contenere l’eseguibile “java”. Nel caso di Linux e MacOSX l’eseguibile si chiama “java”, mentre nel caso di Windows è java.exe 19 3. Installazione • binary - il pacchetto base per l’esecuzione di JGrass • windowsbinaries - pacchetto dei comandi di GRASS precompilati per Windows • src - il codice sorgente di JGrass • testdataset - un set di dati da utilizzare per un primo avvio di JGrass Figura 3.5: Il pannello riportante i pacchetti installabili di JGrass. A selezione eseguita e dopo aver cliccato il pulsante “avanti”, verrà chiesto il percorso di installazione di JGrass. Se il programma viene installato sopra una versione preesistente verrà avvertito l’utente che tutti i files verranno sovrascritti, mentre se viene creata una nuova cartella per l’installazione verrà avvertito l’utente della creazione di una nuova cartella sul filesystem. Una nota pratica per l’aggiornamento di JGrass: se la nuova versione viene installata nella stessa cartella della versione precedentemente installata verranno mantenute le configurazioni dell’utente definite per la vecchia versione. Questo evita di dover ricreare gli ambienti di lavoro, tuttavia è sconveniente nei casi in cui nella nuova versione siano stati implementati nuovi comandi o nuove barre degli strumenti, in questo caso le configurazioni, rimanendo quelle della versione precedente, non permettono di vedere le novità implementate. Quindi sarà necessario cancellare il workspace dalla lista di quelli disponibili (ciò permette di non cancellare i dati salvati su disco) e ricrearlo caricando cosı̀ le nuove barre degli strumenti. Per cancellare un workspace è sufficiente cliccare sul nome del workspace che si desidera cancellare nella finestra di caricamento iniziale degli workspace. Al termine dell’installazione per gli utenti windows e linux è possibile configurare l’inserimento 20 3. Installazione di JGrass nel menu di avvio (Figura: 3.6) mentre per gli utenti MacOSX viene automaticamente creata un’icona nella barra delle applicazioni. Figura 3.6: Il pannello riportante i settaggi per lo shortcut di JGrass. Un’ultima schermata vi avvertirà della avvenuta installazione e vi mostrerà il percorso del file di disinstallazione. Sarà sufficiente cliccare sul pulsante di fine per terminare l’installazione. L’installazione è quindi completata e sarà possibile eseguire il JGrass. 3.3 Programmi esterni I programmi esterni che possono essere collegati a JGrass sono due: GRASS6 e R7 . Le interconnessioni con questi programmi sono gestite in modo diverso a seconda del sistema operativo utilizzato. In particolare se si usa: • Windows: – GRASS : dalla versione 1.5 di JGrass è possibile installare gli applicativi di GRASS precompilati per Windows. Se si desidera installarli (opzione che viene consigliata) è necessario lasciare indicato nella schermata di Figura 3.4, nella riga corrispondente a 6 7 www.grass.itc.it www.r-project.org 21 3. Installazione GRASS, il punto e installare il pacchetto dei Binari per Windows che si trova nella schermata successiva (Figura 3.5). – R: è necessario avere installato il software di elaborazione statistica R sul proprio pc. Nella schermata relativa alle opzioni di installazione di Figura 3.5, nello spazio corrispondente a R è necessario inserire il percorso completo della cartella dove si trovano l’eseguibile di R e l’applicativo per la connessione a JGrass chiamato Rserve.exe. Quello che bisogna scrivere nella casella corrispondente a R sarà dunque: C:\Documents and Settings\Utente\R\bin\Rserve.exe L’applicativo Rserve.exe può essere installato nella schermata successiva evidenziando la voce R-engine e successivamente copiato nella cartella dove si trova l’eseguibile di R. • MacOSX e Linux: si devono avere i due programmi già preinstallati: – GRASS : inserire il percorso completo di installazione dei comandi di GRASS alla schermata di Figura 3.4, nella riga corrispondente a GRASS. – R: inserire il percorso dell’eseguibile R alla schermata di Figura 3.4, nella riga corrispondente a R. In questi sistemi operativi il pacchetto Rserver viene installato come ogni altro pacchetto di R scaricandolo dal sito web8 per questo si inserisce direttamente il percorso dell’eseguibile di R e non del pacchetto Rserve. 3.3.1 I pacchetti di R usati I programmi sviluppati in JGrass che sfruttano la connessione ad R utilizzano comandi specifici di alcuni pacchetti di R. Purtroppo non tutti questi pacchetti fanno parte della versione base di R e quindi dovranno essere installati come pacchetti9 secondo le specifiche proprie di R, diverse per ogni sistema operativo10 . Questi pacchetti sono: • akima: contiene gli algoritmi per l’interpolazione di dati spaziali distribuiti in modo irregolare sul territorio • GRASS: rappresenta l’interfaccia tra GRASS 5.0 e R • gridBase: integrazione per la creazione di grafici 8 http://stats.math.uni-augsburg.de/Rserve/. Questi pacchetti sono scaricabili dal sito http://cran.r-project.org/ nella sezione Contributed extention packages 10 www.r-project.org cercare nella sezione Manuals il manuale di installazione e amministrazione di R (R Installation and Administration). L’installazione dei pacchetti viene spiegata nel capitolo 6 di questo manuale per i tre sistemi operativi 9 22 3. Installazione • gstat: modelli geostatistici di previsione e simulazione • sgeostat: un ambiente di lavoro Object-oriented Framework per la modellazione geostatistica • VR (in alcune nuove versioni di R questo pacchetto fa parte della versione base...): unione di alcuni pacchetti base di R come MASS, class, nnet, spatial 3.4 Struttura delle cartelle di installazione Una volta installato JGrass verrà creata nel percorso scelto dall’utente la cartella JGrass che conterrà tutti i files e gli eseguibili necessari per far funzionare il programma. Le cartelle che vengono create sono: • etc: contiene tutti i files di configurazione dell’interfaccia grafica e del profilo utente di JGrass • jars: contiene le librerie in Java dei pacchetti che compongono JGrass • lib: contiene le librerie native del sistema • spearfish: contiene il pacchetto di dati di test installato con l’installazione di JGrass • uninstaller: cartella con gli eseguibili per disinstallare l’applicazione. • grasscommands: contiene gli eseguibili per il sistema operativo Windows dei comandi nativi di GRASS • src: contiene il codice sorgente Premettendo che la modifica dei files XML di configurazione è raccomandata solo all’utente esperto, generalmente le cose più interessanti per migliorare e personalizzare l’utilizzo di JGrass le troviamo nella cartella etc. Da segnalare sicuramente sono le sotto - cartelle: • prop: contiene i files di configurazione dei comandi e dell’interfaccia grafica nelle diverse lingue (ad esempio è possibile modificare il numero di celle visualizzate nel caso di correzione di una mappa con il comando r.correct modificando il numero contenuto nel file r correct.properties.) • scripts: contiene tutti gli script eseguibili direttamente da JGrass • workspace: contiene le configurazioni dell’ambiente di lavoro e dei singoli utenti (si fa notare che non è ancora attiva la possibilità di creare più utenti e di differenziare l’accesso ai dati del singolo utente. I files più importanti di questa sessione sono il file config.xml e workspace.wks. 23 3. Installazione che contengono i settaggi del programma (dimensioni dei caratteri, posizione delle barre degli strumenti, posizione e dimensioni della scala e della legenda...) e degli ambienti di lavoro che verranno creati. Tutto ciò premesso quello che ci teniamo a consigliare è di usare la cartella JGrass come “contenitore dell’applicativo e di mettere tutti i dati su cui si lavora, i cosiddetti workspace in una cartella a parte sul vostro harddisk che potete chiamare appunto workspace oppure jgrassdata, jgrassdb o semplicemente data. Questo piccolo accorgimento permette, nel caso venisse installata una nuova versione di JGrass, di mantenere i dati invariati e le configurazioni settate nella versione precedente semplicemente installando JGrass nella stessa cartella nella quale era precedentemente installato. Solo i dati d’esempio vengono installati nella cartella madre di JGrass perché vengono installati ad ogni nuova installazione e possono essere sovrascritti senza problemi. 3.5 Struttura dei dati La struttura con cui i dati vengono scritti per essere trattati in JGrass si basa su quella di GRASS ed è stata studiata in modo tale che l’utente non debba avere spesso a che fare con essa. In ogni caso è importante conoscere la struttura dei dati perché aiuta nelle procedure di import e export degli stessi. I dati che vengono utilizzati in JGrass devono essere salvati in una cartella denominata DATABASE che l’utente crea sul filesystem indipendentemente da JGrass. All’interno del DATABASE i dati possono essere organizzati per area o per progetto e salvati in sottocartelle che sono chiamate location. Una location è definita mediante il suo sistema di coordinate, la proiezione cartografica e i limiti geografici entro i quali si estende la regione di lavoro. Tutte le sottocartelle e i files che definiscono una location sono creati automaticamente quando si procede alla creazione di una nuova location in JGrass (Paragrafo 6.1). Ogni location contiene uno o più mapset che sono le cartelle in cui effettivamente vengono salvati i dati. La motivazione originale per cui era stato introdotto il concetto di mapset era quella dell’approccio multiutente ai dati. Per ogni utente che accede ai dati, nell’accezione originale, dovrebbe corrispondere un mapset. Questo approccio viene mantenuto non tanto per il concetto di multiutenza, che realmente si verifica in pochi casi, ma perché è possibile salvare in ogni mapset i dati relativi ai diversi progetti o alle sotto regioni di calcolo. Da ogni mapset è possibile leggere le 24 3. Installazione mappe contenute negli altri mapset ma non modificarle, ogni elaborazione deve essere salvata nel mapset corrente. Quando si crea una nuova location automaticamente viene creato il mapset PERMANENT dove possono essere salvati i dati di base del progetto, o meglio i dati comuni a tutti i mapset. Generalmente non vengono utilizzati i dati direttamente dal mapset PERMANENT ma vengono copiati nel mapset di lavoro per le successive elaborazioni. Nel mapset PERMANENT sono contenute anche le impostazioni generali della location e in particolare la definizione della regione di default, mentre in ogni mapset vengono definiti i confini della regione di calcolo e della propria risoluzione di lavoro. Dell’organizzazione e della gestione dei files all’interno di location e mapset si occupa JGrass, tutte le operazioni che richiedono l’interazione con la struttura interna dei dati devono essere fatte sempre con JGrass, solo l’utente più esperto può cercare di modificare a mano i files direttamente dal filesystem, anche se rimane un’operazione sconsigliata nella maggior parte dei casi. Uno schema di utilizzo del database di JGrass viene riportato in Figura 3.7, tutte le voci riportate nell’immagine corrispondono a cartelle sul filesystem. Figura 3.7: Schematizzazione della struttura dei dati usati in JGrass. Per comprendere la struttura dei dati di JGrass è importante sapere che tutte le mappe, ad eccezione dei sites, vengono salvate in una serie di files separati che contengono i dati, le categorie, i limiti della mappa, la risoluzione e altre informazioni. Le cartelle che vengono create in una location di JGrass sono le seguenti (scriviamo qui una brevissima descrizione, per maggiori dettagli consultare il sito di GRASS11 oppure il libro Open Source GIS: a GRASS Approach12 : 11 12 www.grass.itc.it Neteler Mitasova - Edizioni CAP 25 3. Installazione 1. cartelle per la gestione dei dati raster, in ognuna di queste cartelle ci sono dei files corrispondenti alle mappe create in JGrass che contengono informazioni particolari: • cats: contiene i files con le specifiche delle categorie create per le mappe • cell e tutte le cartelle che contengono il nome cell (cell misc, cellhd e fcell): contengono tutti dati delle mappe raster • colr : contiene le tabelle dei colori relative alle mappe raster 2. cartelle per la gestione dei dati vettoriali: queste cartelle servono per la gestione dei vettori nel formato nativo di GRASS, generalmente in JGrass si usa lo standard shapefile che non necessita di particolari strutture di dati per il salvataggio su disco • dig e tutte le cartelle che contengono il nome dig contengono le specifiche delle mappe vettoriali nel formato nativo di GRASS • dig ASCII : contiene i files vettoriali in formato ASCII e quindi consultabili dall’utente 3. cartelle proprie di JGrass per la gestione di formati particolari delle mappe raster: • esriasciigrid : cartella contenente i files in formato ASCII della ESRI (ArcView) per la lettura diretta da JGrass, evitando le operazioni di import • fluidturtleascii : cartella contenente i files in formato Fluidturtle (formato di interscambio per particolari applicativi sviluppati presso il CUDAM, in particolare per il modello idrologico distribuito GeoTop) per la lettura diretta da JGrass, evitando le operazioni di import • grassascii : cartella contenente i files in formato ASCII di GRASS per la lettura diretta da JGrass, evitando le operazioni di import 4. hortonmachine: cartella in cui vengono messi i files risultanti dalle elaborazioni idro-geomorfologiche fatte con le Horton all’interno di JGrass. In questa cartella non vengono messe le mappe raster ma solo i files che vengono creati in alcune delle Horton 5. jgrassgroup: cartella contenente la definizione dei gruppi di mappe (da usare per interrogazioni verticali...) creata con il comando group.create. La parte relativa ai gruppi è ancora in fase di sviluppo quindi non completamente utilizzabile. 6. site lists: cartella dove sono contenuti i sites, ovvero le mappe di punti 7. sql : cartella con le informazioni per la connessione a database via sql 26 3. Installazione 8. alcuni files che contengono informazioni molto importanti: • DEFAULT WIND: contiene i parametri della regione di default • MYNAME: contiene il nome della location di partenza • PROJ INFO: contiene tutte le informazioni sulla proiezione geografica dei dati • PROJ UNITS: contiene le unità di misura usate nella proiezione • WIND: contiene i parametri della regione attiva Come avrete potuto notare la struttura di salvataggio dei dati è abbastanza complicata, tenete presente che solo raramente si ha a che fare con essa, se si accede ai dati attraverso JGrass non ci sono problemi, è il programma a sapere dove prendere e salvare i dati richiesti. Il solo caso in cui l’utente accede alla struttura è il caso delle cartelle proprie di JGrass usate per accelerare le procedure di import e export dei dati nei formati particolari descritti sopra. Per salvare i dati in queste cartelle sarà sufficiente indicare come destinazione della mappa di output la cartella corrispondente al formato desiderato, oppure proseguire con il formato standard di GRASS e poi copiare i dati nella cartella corrispondente al nuovo formato in un momento successivo. Per accedere ai dati di queste cartelle sarà sufficiente scegliere come formato di partenza quello desiderato scorrendo il menu a tendina che dà come opzione di default il formato di GRASS. 27 3. Installazione 28 4 Primo avvio del programma 4.1 Introduzione Per avviare l’applicazione JGrass, si devono seguire i seguenti passi nei diversi sistemi operativi. Windows 1. entrare nel menu di avvio di Windows 2. nella sezione “Tutti i programmi” troverete la voce “HydroloGIS” 3. selezionate al suo interno l’icona JGrass 4. eventualmente creare un collegamento all’icona sul Desktop Linux (se non avete creato un’icona sul desktop) 1. entrare nella cartella di installazione di JGrass 2. eseguire il comando jgrass.linux.exe 3. eventualmente fare un link all’eseguibile dove desiderate MacOSX (se non avete creato l’icona nella barra delle applicazioni) 1. entrare nella cartella di installazione di JGrass 2. eseguire il comando jgrass.macosx.exe 3. eventualmente fare un link all’eseguibile dove desiderate All’avvio di JGrass viene fatto un controllo sulla versione di Java installata. Dalla versione di JGrass2.0 infatti viene garantito il funzionamento ottimale del programma solo con Java Virtual Machine 1.5 e successive. Questo non implica che con le versioni precedenti di Java l’applicativo non funzioni del tutto, ma ci potrebbero essere moduli e funzionalità non perfettamente funzionanti. Se la versione di Java non è quella richiesta dal programma vi apparirà una schermata di avvertimento del tipo di quella in Figura 4.1. Nel caso specifico mostrato sul PC è stata installata la versione di Java 1.5.0 04 mentre viene richiesta la versione Java 1.5.0 05. 4. Primo avvio del programma Viene lasciata all’utente la possibilità di continuare con l’apertura del programma oppure di chiudere temporaneamente l’applicativo e installare la versione di Java richiesta scaricabile dal sito http://java.sun.com/j2se/1.5.0/download.jsp. Se, come nel caso mostrato in Figura 4.1, la versione installata è comunque una Java 1.5 si può tranquillamente proseguire con l’esecuzione, senza incorrere in disfunzioni del programma. Quindi cliccato sul pulsante “ok” si avvia l’applicazione. Figura 4.1: Il messaggio di avvertimento di JGrass per il controllo della versione di Java installata. A questo punto vi trovate davanti all’interfaccia base di JGrass (vedi Figura 4.2). Figura 4.2: L’interfaccia grafica di JGrass al suo primo avvio con la barra degli strumenti elementare. 4.2 L’interfaccia grafica L’interfaccia di JGrass, riportata in Figura 4.2, si presenta con il menu principale e la barra degli strumenti. 30 4. Primo avvio del programma 4.2.1 La barra degli strumenti La barra degli strumenti iniziale contiene tre icone: • caricamento di un workspace precedentemente creato • lancia il dialogo di stampa (non usabile in questa fase) • lancia il manuale dei comandi integrati in JGrass 4.2.2 Il menu principale Nella barra dei menu in alto compare il menu principale che è composto dalle tendine: File e Aiuto. Nel menu File sono disponibili i comandi per creare e caricare un ambiente di lavoro e per definire i settaggi del programma. Nella sezione Preferenze infatti si trovano tutte le configurazioni particolari ed avanzate dell’applicativo. Nel menu Aiuto sono disponibili i report HTML che descrivono i comandi di JGrass divisi nelle diverse categorie di lavoro e una sezione about nella quale ci sono alcune informazioni utili sul programma: i nomi degli sviluppatori, dei finanziatori e le caratteristiche principali del programma. Se si accede al menu di Aiuto si possono vedere tutti i comandi disponibili. Le categorie dei comandi seguono lo schema utilizzato da GRASS: • general : comprende tutti i comandi di gestione generale del GIS • display: comprende tutti i comandi necessari per la visualizzazione delle mappe e la gestione dell’ambiente grafico • raster : comprende tutti i comandi per l’analisi di dati in formato raster • vector : comprende tutti i comandi per l’analisi di dati in formato vettoriale • point: comprende tutti i comandi per la gestione di dati puntuali (quelli che in GRASS5 erano chiamati sites) • group: comandi per la gestione di gruppi di dati (in fase di sviluppo) • hydro: comandi di analisi idro-geomorfologica delle mappe raster 31 4. Primo avvio del programma 4.2.3 L’ambiente di lavoro L’ambiente di lavoro è uno spazio virtuale, nel quale si definiscono le risorse da utilizzare e il senso del lavoro da compiere. In questo ambiente sono contenute le configurazioni personalizzate dell’utente proprietario. Vi sono altresı̀ contenuti i menu e le barre degli strumenti che l’utente decide di usare. Nell’ambiente di lavoro si definiscono anche i limiti geografici, la proiezione utilizzata e le mappe caricabili. Come già anticipato nel capitolo precedente le configurazioni personalizzate dell’utente si trovano, sul filesystem nella cartella di installazione di JGrass, nel percorso relativo “etc/wokspace/nome utente”. Al suo interno vi sono due file, config.xml, contenente le configurazione dell’applicazione, e workspace.wks, contenente la descrizione degli ambienti geografici, i menu e le barre degli strumenti utilizzati. Apertura di un ambiente di lavoro Il pacchetto di installazione di JGrass fornisce un ambiente di lavoro preimpostato. Questo contiene il set di dati liberi chiamato Spearfish. Quindi cliccando sulla prima icona a sinistra, si apre la finestra che presenta tutti gli ambienti di lavoro preinstallati e configurati. Al primo avvio la lista è composta di un solo elemento: “jgrass test database”. Selezionando il suddetto elemento e cliccando il pulsante “Fine”, avviene il caricamento dell’ambiente di lavoro. Figura 4.3: Il caricamento del ambiente di lavoro “JGRASS Test Database”. Se il caricamento è andato a buon fine, si saranno aggiunte delle tendine al menu principale e 32 4. Primo avvio del programma una barra degli strumenti. Inoltre, come si può vedere in Figura 4.3 una parte del monitor è di color bianco e l’altra verde. La regione verde delimita l’area di calcolo dei comandi integrati in JGrass. I comandi eseguiti tengono quindi conto della sola area compresa all’interno del riquadro verde, ovvero l’area bianca del monitor. La regione bianca centrale è la cosiddetta regione attiva, mentre la regione in verde comprende la regione di default, ovvero la massima regione visualizzabile. Nella parte inferiore della finestra di JGrass sono visualizzate alcune informazioni utili durante le elaborazioni, come mostrato in Figura 4.4: Figura 4.4: Descrizione della parte inferiore del monitor con indicazione delle principali informazioni visualizzate. • la scala di visualizzazione della mappa • la risoluzione corrente • le coordinate geografiche del cursore • il nome dell’ambiente di lavoro nel quale si sta lavorando e degli altri ambienti eventualmente aperti • la barra di stato di JGrass con indicata l’azione attiva al momento • una progressbar per indicare lo stato dell’evoluzione delle elaborazioni sia grafiche che numeriche • il controllo della memoria RAM disponibile per il programma • eventuali report HTML aperti e che si possono consultare semplicemente cliccando su questo pulsante e non richiamando l’elaborazione che li crea 33 4. Primo avvio del programma • un’icona a forma di orologio che indica se il programma è in fase di elaborazione oppure è in attesa di una nuova istruzione. 4.2.4 La barra degli strumenti del monitor La barra degli strumenti del monitor contiene dodici icone, che eseguono i seguenti comandi: Figura 4.5: La barra degli strumenti del monitor. 1. attivazione/disattivazione della console 2. attivazione/disattivazione del pannello della legenda 3. definizione della finestra di dati visibile 4. configurazione del puntatore del mouse alla sua condizione di default 5. definizione dello zoom alla regione di default 6. zoom in 7. zoom out 8. zoom per trascinamento con il mouse: basta tenere cliccato il tasto sinistro del mouse e spostare il cursore verso l’altro o verso il basso per ottenere un ingrandimento o una riduzione delle dimensioni dell’immagine 9. 10. zoom precedente zoom successivo, nel caso si lavori molto con visualizzazioni a scala diversa delle mappe può essere utile poter alternare gli zoom e non necessariamente solo ritornare alla visualizzazione precedente 11. zoom a finestra, permette di definire l’estensione della zona visualizzata sullo schermo 12. panning, dà la possibilità di spostare la mappa trascinandola con il mouse 34 4. Primo avvio del programma Ci permettiamo di farvi notare che: se il mouse è in modalità standard è possibile ingrandire o rimpicciolire la mappa ruotando la rotella del mouse, mentre il panning viene fatto cliccando sulla rotella del mouse e tenendola premuta fino alla nuova posizione. 4.2.5 La barra dei menu Nella barra dei menu vengono caricate tutte le operazioni che possono essere fatte in JGrass, se durante la procedura di installazione avete scelto di caricare tutte le barre degli strumenti saranno visualizzate otto voci distinte che sono: File, Visualizza, GIS, Raster, Vettoriale, Extra, HortonMachine, Aiuto. Di seguito ne viene riportata la descrizione. File Figura 4.6: Le opzioni del menu File. Questa sezione del menu contiene tutti gli strumenti necessari per creare un nuovo ambiente di lavoro, caricarne uno giá esistente, salvare le impostazioni della finestra di lavoro e modificare i settaggi del programma, vedi Figura 4.6. Per maggiori dettagli sulla possibilità di personalizzare JGrass si rimanda al Paragrafo 4.3. 35 4. Primo avvio del programma Visualizza Figura 4.7: Le opzioni del menu Visualizza. La sezione Visualizza contiene tutti gli strumenti di visualizzazione delle mappe sia raster che vettoriali. In particolare, estraendo la barra degli strumenti (come in Figura 4.8), con un clic del mouse sulla prima opzione del menu a tendina Strumenti di Visualizzazione delle mappe (Figura 4.7), si ottiene una barra flottante: Figura 4.8: La barra degli strumenti di visualizzazione. Gli elementi contenuti nella barra sono: • visualizza una mappa raster scegliendola dall’elenco delle mappe dell’ambiente di lavoro. • visualizza mappe vettoriali disponibili in formato shapefile presenti in qualsiasi cartella di lavoro (non devono essere spostati nell’ambiente di lavoro). • visualizza una mappa di punti nel formato nativo di GRASS5 come sites (queste mappe sono quelle contenute nella cartella site lists introdotta nel Paragrafo 3.5). • visualizza una mappa vettoriale da un database PostgreSQL remoto. • pulisce lo schermo cancellando tutte le mappe visualizzate. 36 4. Primo avvio del programma • ridisegna tutte le mappe precedentemente caricate, questo pulsante è molto utile perché spesso nella visualizzazione di più mappe ci sono dei problemi di sovrapposizione. Se doveste accorgervi di avere di questi problemi sarà sufficiente ridisegnare le mappe cliccando su questo pulsante per risolvere la situazione. GIS Figura 4.9: Le opzioni del menu GIS. In questa sezione sono contenuti gli strumenti base del GIS, come gli strumenti di importazione ed exportazione delle mappe nei diversi formati disponibili, anche commerciali, e gli strumenti per definire la regione di lavoro e le sue proprietà (vedi Figura 4.9). Come già accennato in precedenza per regione di lavoro/attiva si intendono i limiti della zona di calcolo, mentre per regione di default si intendono i limiti massimi di visualizzazione delle mappe. La regione di lavoro deve essere minore o uguale della regione di default, non è ammissibile il contrario. In JGrass la gestione della regione è lasciata all’utente, tuttavia se si cerca di visualizzare una mappa al di fuori della regione di default apparirà un messaggio d’errore che invita l’utente a modificare i limiti della propria regione per visualizzare correttamente la mappa selezionata (Figura 4.10). Figura 4.10: Messaggio di avvertimento per la visualizzazione di una mappa esterna alla regione di default. In particolare quanto fin’ora implementato in JGrass in questo ambito comprende le seguenti possibilità: 37 4. Primo avvio del programma Figura 4.11: La barra degli strumenti GIS. • importa dati esterni a JGrass. Il formato dei dati che si possono importare con questo algoritmo sono i formati di dati ASCII grid di ArcView e ASCII di GRASS. • esporta i dati da JGrass per essere utilizzati in altri programmi esterni. Il formato dei dati supportato in questo algoritmo comprende il formato ASCII di GRASS, di ArcView e di Surfer e la possibilità di esportare triplette di dati nel formato x,y,z. • importa in JGrass i dati provenienti da rilievi laser altimetrici, o comunque triplette di dati nel formato x,y,z. I dati possono essere forniti su un grigliato regolare oppure come punti distribuiti in modo irregolare sul territorio, in questo modo, sfruttando la connessione a R i dati verranno interpolati per ottenere un modello su griglia regolare del terreno. • importa in JGrass tutti i dati supportati dalle librerie Open Source GDAL1 . • riproietta i dati contenuti in altre location (con sistema di riferimento diverso) nel sistema di riferimento della location attuale. Facciamo notare che riproiettare un dato comporta normalmente una distorsione dell’immagine dovuta per l’appunto alla variazione del sistema di riferimento. 1 www.gdal.org 38 4. Primo avvio del programma Raster Figura 4.12: Le opzioni del menu Raster. In questa sezione sono contenuti tutti gli strumenti di base per gestire le mappe raster. Le principali funzioni che sono contenute (come mostrato in Figura 4.12) sono quelle per i calcoli di tipo non idro-geomorfologico su raster e per la modifica delle proprietà delle mappe stesse (modifica del nome o del mapset). Le opzioni presenti nella barra degli strumenti Raster sono: Figura 4.13: La barra degli strumenti del menu Raster. • r.mapcalc: per effettuare calcoli tra mappe raster. Sono state implementate la principali operazioni matematiche che si possono utilizzare come operazioni di addizione e di moltiplicazione/divisione ma anche operazioni più complesse tipo quelle trigonometriche. È stato inoltre implementato un algoritmo per introdurre cicli di calcolo per fare calcoli su più mappe. • r.profile: per tracciare i profili di una mappa raster. • r.colors: per creare, modificare o cancellare la tavola dei colori di una mappa raster. • r.cats: per creare, modificare o cancellare le categorie dei dati di una mappa raster. • r.correct: per modificare una mappa raster editando le celle di cui cambiare il valore. 39 4. Primo avvio del programma • r.correctpolygon: per modificare una mappa raster disegnando un poligono all’interno del quale cambiare il valore della mappa. • r.dem2contour: per creare la mappa delle curve di livello (vettoriale) partendo dal dem (raster). • d.what.rast: per interrogare le mappe raster. • r.remove: per cancellare mappe raster. • r.rename: per rinominare mappe raster. • r.copy: per copiare mappe raster in altre mappe raster dello stesso mapset, di mapset diversi o di cartelle diverse. Un appunto molto importante si fa sul comando r.copy che, come anticipato nel capitolo precedente, permette di copiare mappe raster in cartelle diverse da quelle standard di JGrass. In questo modo è possibile eseguire l’export delle mappe direttamente attraverso questo comando senza ricorrere ai comandi di export specifici. Nella cartella dello workspace creata da JGrass si trovano in particolare (come descritto nel Paragrafo 3.5) anche altre cartelle chiamate esriasciigrid, fluidturtleascii, grassascii. Copiare un raster in una di queste cartelle significa “esportare” i files nel formato specificato dalla cartella di destinazione. Vettoriali Figura 4.14: Le opzioni del menu Vettoriali. In JGrass originariamente venivano trattate solo mappe raster, ed è stato per molto tempo un GIS distribuito dedicato unicamente all’analisi ambientale idrologica e geomorfologica. Tra gli sviluppi futuri più prossimi c’è lo sviluppo di tutto un ambiente per il trattamento di dati vettoriali che va dalla visualizzazione all’inserimento e modifica di punti, linee e poligoni. Per lo 40 4. Primo avvio del programma sviluppo di questa parte abbiamo scelto di seguire gli standard dettati dall’Open GIS Consortium che prevede come formato di salvataggio e di scambio delle mappe vettoriali il formato shapefile. Questa politica va un po’ in contrapposizione con quella scelta da GRASS, tuttavia viene assicurata la piena compatibilità per la parte vettoriale di GRASS5, per il momento ancora non del tutto completa quella con GRASS6. In questa sezione, per il momento, ci sono unicamente due comandi, quello che permette di interrogare le mappe e quindi di “vedere” la tabella di dati associata (Figura 4.14) e un comando di analisi vettoriale vera e propria che permette di trasformare, attraverso una procedura di interpolazione, le linee di livello in dem (raster). Il comando è v.contour2dem e l’icona corrispondente, che per ora si trova solo nel menu, è . L’interrogazione di mappe vettoriali permette di ottenere, cliccando sull’entità di cui si vogliono le informazioni, tutte le informazioni relative alla sola entità selezionata sia essa un punto, una linea o un poligono. Per visualizzare la tabella contenente le informazioni di tutto il vettoriale è sufficiente, una volta visualizzata la mappa, cliccare con il tasto destro sul nome della mappa nella sezione dedicata alla legenda e selezionare l’opzione Visualizza i dati come mostrato in Figura 4.15. Figura 4.15: Visualizzazione di uno shapefile in JGrass e possibilità di visualizzare i dati contenuti. 41 4. Primo avvio del programma Extra Figura 4.16: Le opzioni del menu Extra. In questa sezione sono presenti gli strumenti Extra integrati in JGrass. Di questi fanno parte sia gli strumenti statistici utilizzabili attraverso la connessione al software di analisi statistica Open Source R, che gli strumenti per la visualizzazione grafica delle elaborazioni. Per ora quanto integrato è riportato in Figura 4.16. HortonMachine Figura 4.17: Le opzioni del menu HortonMachine. 42 4. Primo avvio del programma La sezione delle elaborazioni idro-geomorfologiche contiene tutti gli algoritmi di analisi del territorio propedeutici alla delimitazione delle aree a rischio idro-geomorfologico. Non vengono spiegate in dettaglio tutte le opzioni di questo menu, per la loro definizione completa si rimanda al Tutorial delle HortonMachine e al “The Manuale Horton”. Aiuto Figura 4.18: Le opzioni del menu Aiuto. In questa parte ci sono le principali indicazioni riguardanti i comandi e i riferimenti particolari di sviluppatori, finanziatori e partecipanti al progetto Open Source JGrass. Quanto riportato, come già accennato nel Paragrafo 4.2.2, viene visualizzato anche in Figura 4.18. 4.3 Personalizzazione L’ambiente grafico di JGrass e tutte le configurazioni per la connessione ai programmi esterni sono configurabili dall’utente entrando nella Sezione Preferenze del menu File (vedi Figura 4.6). Premesso che questa sezione è riservata agli utenti più esperti e che le configurazioni di “default” sono già valide, se si decide di procedere con la personalizzazione si otterrà a video una finestra del tipo di quella mostrata in Figura 4.19 formata dalle cartelle: • Framework : per la gestione dell’interfaccia grafica • GRASS Environment: per la configurazione della connessione con GRASS • Monitor : per la gestione delle proprietà di visualizzazione • Cluster : opzione attualmente non attiva • Console: per la gestione della configurazione della console di JGrass 43 4. Primo avvio del programma Figura 4.19: La finestra iniziale del pannello di configurazione Preferenze. Framework È la sezione di partenza per le configurazioni, in essa si possono configurare, ad esempio, le impostazioni dei caratteri, dimensione e tipo di carattere, e la lingua utilizzata nella visualizzazione. In particolare segnaliamo: • resourcebundle locale = it: indica che la lingua utilizzata nell’interfaccia grafica è l’italiano, è possibile cambiare lingua scegliendo tra quelle disponibili in JGrass: inglese (en), spagnolo (es), tedesco (de) e francese (fr) (alcune voci saranno in inglese perché è rimasto incompleto lo sviluppo, se qualcuno che conosce il francese volesse contribuire...). • template value = etc/template: localizzazione dei template di stampa definiti dall’utente • workspace value = etc/workspace: localizzazione dei settaggi dell’ambiente di lavoro GRASS Environment È la sezione dove si possono visualizzare le impostazioni per la connessione ai comandi di GRASS. Come spiegato nel Paragrafo 3.3 è stato sviluppato un meccanismo per cui in tutti i sistemi operativi è possibile eseguire i comandi nativi di GRASS all’interno di JGrass. Quanto contenuto in questa finestra per quel che concerne i sistemi Linux e MacOSX è visualizzato in Figura 4.20, mentre in ambiente Windows la finestra appare come quella di Figura 4.21. Come si può osservare si possono 44 4. Primo avvio del programma variare le impostazioni inserite in fase di installazione del programma nonché alcune impostazioni standard di JGrass. In particolare: • gisbase: percorso di riferimento per gli eseguibili dei comandi di GRASS6.0. È qui la sostanziale differenza per i tre diversi sistemi operativi, in Linux e MacOSX, dove GRASS deve essere installato a parte in questa casella si deve inserire il percorso di installazione di GRASS, in Windows, dove vengono forniti già i binari dei comandi, è sufficiente lasciare indicato il punto, esattamente come spiegato in fase di installazione del programma. • scriptpath: cartella dove inserire gli script eseguibili da JGrass. • libpath: percorso delle librerie di GRASS. • binpath: percorso dei binari dei comandi di GRASS. • esrigridpath: cartella dove salvare i files in formato ESRI ASCII Grid per la gestione diretta in JGrass • fluidturtleasciipath: cartella dove salvare i files in formato Fluidturtle (formato di interscambio tra JGrass e GeoTop, applicativo per la determinazione del bilancio idrologico dei bacini idrografici dedicato soprattutto ai piccoli bacini montani) per la gestione diretta in JGrass. • grassasciipath: cartella dove salvare i files in formato ASCII di GRASS per la gestione diretta in JGrass • shapepath: cartella dove inserire i file in formato shapefile per la visualizzazione in JGrass attraverso il comando d.vect. Si tratta di un’opzione superata con il nuovo comando d.shapefile che permette di visualizzare questo tipo di file da qualsiasi cartella del filesystem. • sqldbpath: cartella dove inserire i files contenenti la definizione delle query per il database. Anche questa opzione è parzialmente superata attraverso la connessione diretta con database PostGIS. • jgrassgrouppath: cartella usata per la gestione dei gruppi di mappe raster creati in JGrass. Ancora in fase di elaborazione. • commands: nome del file di definizione dei comandi eseguibili in JGrass. • epsgdata: percorso del file con la definizione delle proiezioni cartografiche fornito dall’EPSG2 . 2 www.epsg.org 45 4. Primo avvio del programma Figura 4.20: La finestra del pannello di configurazione GRASS per i sistemi operativi Linux e MacOSX. Figura 4.21: La finestra del pannello di configurazione GRASS per il sistema operativo Windows. Monitor In questa sezione vengono definite le opzioni di visualizzazione. Sottolineiamo ancora una volta che molte di queste specifiche sono modificabili solamente da chi ha molta familiarità con il sistema operativo e con l’applicativo. Quello che trovate in questa sezione è riportato in Figura 4.22. La cosa più importante da segnalare in questa sezione è la possibilità di cambiare il “motore” dell’ambiente grafico. JGrass può avere problemi di visualizzazione delle mappe per particolari combinazioni di sistema operativo e scheda grafica, quando il motore principale su cui si basa il 46 4. Primo avvio del programma Figura 4.22: La finestra del pannello di configurazione Monitor. monitor, ovvero le OpenGL, non sia ottimizzato. Nel caso vi sia un problema di visualizzazione si può passare dalla visualizzazione basata sulle OpenGL a quella ottenuta con Java2D (leggermente più lenta). Questo passaggio si opera semplicemente scrivendo false nella sezione Value della voce Useoffscreenbuffer, come mostrato in Figura 4.22. Console In questa sezione, come mostrato in Figura 4.23, si può definire la configurazione della console, i caratteri, il colore del testo e dello sfondo e la modalità del prompt dei comandi. 4.4 Proprietà di visualizzazione Alcune proprietà di visualizzazione delle mappe si possono definire semplicemente cliccando con il tasto destro del mouse sul monitor principale di JGrass (per intenderci quello verde e bianco). In questo modo appare un menu nel quale si possono attivare o disattivare alcune particolarità utili soprattutto in fase di stampa. Di queste fanno parte: • Scala della mappa: visualizza la scala della mappa all’interno del monitor. La scala non è nel formato classico (ad esempio 1 : 10000) ma in formato grafico, ovvero viene riportata una misura di riferimento per la valutazione delle dimensioni della mappa. 47 4. Primo avvio del programma Figura 4.23: La finestra del pannello di configurazione Console. Figura 4.24: Il menu delle opzioni di visualizzazione proprie del monitor. • Rosa dei venti: visualizza a video la rosa dei venti con l’indicazione della posizione del Nord. • Finestra dei dati: permette di visualizzare i limiti della regione attiva imponendo il colore verde (opzione di default) alla parte esterna alla finestra dei dati. Disattivando questa opzione tutto lo schermo diventa di colore bianco anche se i calcoli vengono fatti comunque solamente sulla regione attiva. • Abilita la legenda: permette di togliere dalla visualizzazione la legenda e di visualizzarla quando siano state definite tutte le opzioni necessarie. • Ridisegna mappa automaticamente: attiva la funzione di ridisegno automatico delle mappe ogni volta che vengono fatte operazioni di variazione della visualizzazione, ad esempio quando viene cambiato lo zoom o caricata una nuova mappa. La definizione delle proprietà degli elementi selezionati non può avvenire partendo da questo menu, per questa operazione si rimanda al Paragrafo 5.3.1 - Opzioni di visualizzazione. 48 5 Primi passi con JGrass 5.1 Il set di dati di prova Spearfish Il pacchetto di dati “libero” denominato Spearfish, che viene installato automaticamente con l’installazione di JGrass, contiene dati sia in formato raster che vettoriale nonché dati puntuali. Questo nome deriva dal nome della località del Sud Dakota (USA) alla quale i dati si riferiscono. I dati sono forniti in proiezione UTM conica, con ellissoide Clarke66, e datum NAD27. Questi dati di proiezione potrebbero sembrare strani per un utente italiano, ma sono quelli comunemente usati negli USA. Inoltre il tipo di proiezione utilizzato non è un fattore fondamentale nelle elaborazioni all’interno di un ambiente di lavoro purché coerente con i dati che si stanno utilizzando, esso diventa di fondamentale importanza se si usano mappe provenienti da altri workspace. 5.2 Parametri della regione Se si vogliono visualizzare i limiti della regione attiva, finestra bianca del monitor, e di quella di default, la parte massima visualizzabile, selezionare dal menu GIS l’opzione Strumenti della regione e successivamente Gestione della regione. Apparirà la schermata di Figura 5.1 dove nella parte superiore sono riportate le caratteristiche della regione attiva mentre in quella inferiore quelle della regione di default. Figura 5.1: La finestra contenente le informazioni sulla regione attiva e su quella di default correnti. 5. Primi passi con JGrass Presupponendo che la regione di default non debba essere modificata dall’utente inizialmente è disattivata ogni possibilità di variazione, per procedere a una sua variazione è sufficiente spuntare l’opzione Modifica corrispondente. Le informazioni contenute nella finestra della regione sono: • Setta ad una mappa: per settare la regione attiva a quella di una delle mappe salvate, il comando funziona solamente se viene selezionata una mappa nel menu Seleziona una mappa. • Estendi con mappa: per estendere la regione attiva fino a comprendere una mappa totalmente o parzialmente esterna ad essa. • Celle attive: per calcolare il numero di valori validi di una mappa all’interno della regione attiva, il comando funziona solamente se viene selezionata una mappa nel menu Seleziona una mappa. Il numero di celle attive è utile per calcolare l’area della mappa nella regione attiva, valore che si ottiene moltiplicando il numero di celle attive per la risoluzione in x e y. • Limiti della regione: coordinate dei limiti della regione, il comando funziona solamente se viene selezionata una mappa nel menu Seleziona una mappa. • Risoluzione: dimensione dei pixel della mappa in x e y. • Numero di righe e colonne: numero di righe e di colonne della mappa alla risoluzione visualizzata. • Seleziona la mappa: menu di selezione della mappa alla quale settare la regione, estenderla oppure di cui calcolare le celle attive. Quanto descritto per la regione attiva vale anche per la regione di default una volta selezionato il tasto Modifica. I valori modificati possono essere salvati su disco. Il salvataggio dei dati non è automatico, l’utente deve spuntare l’apposito quadratino nella parte inferiore della finestra per salvare sia la configurazione della regione attiva che quella della regione di default. Se i dati non vengono scritti su disco le opzioni scelte saranno attive durante le elaborazioni, ma verranno cancellate alla successiva riapertura di JGrass. 5.2.1 Proprietà della regione Se dal menu GIS - Strumenti della regione, si sceglie l’opzione Proprietà della regione è possibile variare i parametri dei confini della regione attraverso semplici operazioni grafiche con il mouse 50 5. Primi passi con JGrass invece di dover inserire i dati manualmente nelle finestre viste nell’interfaccia di Figura 5.1. La barra degli strumenti che appare sul monitor selezionando questa funzione è riportata in Figura 5.2. Figura 5.2: La barra degli strumenti della sezione Proprietà della regione. In questa fase si possono selezionare i bordi da variare e cliccare sulla posizione desiderata del monitor, oppure selezionare la finestra da usare come regione attiva (quinto tasto a partire da sinistra), spostare la finestra sulla zona desiderata e settare la risoluzione. Attenzione: questa barra degli strumenti deve essere chiusa cliccando sul pulsantino ad x rosso in alto a destra una volta definiti i limiti della sezione desiderati e comunque prima di eseguire ogni altra operazione in JGrass. Mantenere la barra aperta potrebbe comportare problemi dal punto di vista informatico nelle elaborazioni successive per la sovrapposizione di processi di tipo diverso. 51 5. Primi passi con JGrass 5.3 Visualizzazione dei dati I dati contenuti in Spearfish si possono visualizzare attraverso gli strumenti della barra degli strumenti di visualizzazione. 5.3.1 Dati raster Cliccando sull’icona si attiva la procedura guidata per la visualizzazione di una mappa raster. La schermata di avvio prevede la possibilità di scegliere il tipo di dato da visualizzare. Nel menu a tendina si trovano (vedi Figura 5.3) le diverse opzioni di visualizzazione. Figura 5.3: La prima finestra della procedura guidata per la visualizzazione di una mappa raster. In questo caso specifico ci sono mappe solamente nella cartella di GRASS, ovvero memorizzate secondo la logica utilizzata da GRASS. Questa è la modalità standard con cui lavora JGrass, se si vuole caricare un dato presente in una delle altre cartelle (grassascii, esriasciigrid o fluidturtleascii) è sufficiente scegliere il nome corrispondente dal menu a tendina. Lasciando selezionata l’opzione GRASS e cliccando su Avanti appare una schermata nella quale si può scegliere il mapset nel quale è salvata la mappa. Questa opzione è caratteristica di JGrass in quanto il programma può lavorare in modalità multi-mapset in un unico workspace. Questa modalità risulta molto comoda in fase di definizione di un proprio ambiente di lavoro e di scelta delle mappe di partenza per le elaborazioni in quanto è possibile accedere a più fonti di dati. Tuttavia consigliamo di utilizzare workspace con più mapset solo in questa fase e di procedere poi con le elaborazioni in workspace con un unico mapset. Questo permette di utilizzare senza problemi i comandi nativi di GRASS (vedi Paragrafo 6.1) e di “risparmiare” tempo nelle elaborazioni dove altrimenti è necessario ogni volta procedere alla selezione del mapset da cui leggere le mappe e in cui salvare le mappe ottenute dalle elaborazioni. 52 5. Primi passi con JGrass Figura 5.4: La seconda finestra della procedura guidata per la visualizzazione di una mappa raster, elenco delle mappe disponibili. Per visualizzare l’elenco, in ordine alfabetico, delle mappe contenute nel mapset desiderato cliccare sul pulsante con il segno + davanti al nome del mapset. Per Spearfish è sufficiente cliccare sul pulsante che precede il nome PERMANENT e verranno visualizzate le mappe contenute come mostrato in Figura 5.4. A questo punto è sufficiente selezionare la mappa che si desidera visualizzare (nell’esempio si è scelto di visualizzare la mappa elevation.dem) e cliccare sul pulsante Avanti. In JGrass le mappe non vengono visualizzate per parti successive, ma tutte in un unico blocco, è quindi necessario che il programma legga tutta la mappa, la carichi in memoria e poi la visualizzi. L’evoluzione della procedura di visualizzazione della mappa è riportata nella Progressbar di JGrass presente nella parte inferiore del monitor (vedi Figura 4.4). La mappa visualizzata nell’esempio appare come in Figura 5.5. Se ripetiamo l’operazione di visualizzazione scegliendo la mappa aspect otteniamo quanto riportato in Figura 5.6. Aspect è la mappa dell’esposizione dei versanti, essa viene spesso visualizzata come base per l’elaborazione delle immagini in JGrass in quanto dà l’impressione di lavorare in un ambiente 3D. Si possono visualizzare in questo modo tutte le mappe presenti nel mapset caricato. In JGrass ogni mappa visualizzata in momenti successivi viene sovrapposta a quelle già visualizzate assegnando a ognuna un certo fattore di trasparenza in modo che siano sovrapponibili quante più mappe possibile. Attenzione: dalla versione di JGrass2.0 sono stati risolti molti dei problemi di visualizzazione legati alle schede video. Nonostante questo, se in ambiente Windows ci dovessero essere problemi di visualizzazione delle mappe o si dovesse chiudere il programma durante la visualizzazione di una mappa è necessario diminuire l’accelerazione grafica della scheda video. 53 5. Primi passi con JGrass Figura 5.5: Visualizzazione all’interno di JGrass della mappa delle elevazioni del dataset Spearfish Figura 5.6: Visualizzazione all’interno di JGrass delle mappe delle elevazioni e dell’esposizione del dataset Spearfish Attenzione: In alcuni casi la visualizzazione di nuove mappe può comportare uno sfasamento del display, in questo caso è sufficiente ricaricare la visualizzazione delle mappe cliccando sul pulsante e tutto verrà ricaricato e visualizzato in modo corretto. Questa operazione è necessaria anche ogni volta che si ricorre a zoom particolarmente diversi o a visualizzazioni molto diverse per assestare 54 5. Primi passi con JGrass la visualizzazione ai dati effettivamente caricati. È anche possibile attivare la modalità Ridisegna mappa automaticamente, come mostrato nel Paragrafo 4.4, affinché queste operazioni vengano fatte automaticamente dal programma. Questa è una scelta conveniente se si ha a che fare con pochi dati, rende tutto più lento se si devono gestire molti dati o se vengono caricate molte mappe. Opzioni di visualizzazione Per controllare le opzioni di visualizzazione delle mappe è necessario visualizzare la schermata della Legenda, cliccando sul tasto . In questa sezione si può decidere se visualizzare o meno una mappa caricata, semplicemente spuntando il quadratino che precede il nome, oppure cancellare le mappe caricate per rendere più veloce la visualizzazione quando non sono più necessarie. Per cancellare una mappa caricata nel menu è sufficiente cliccare sul nome con il tasto destro del mouse e scegliere l’opzione Cancella “nome della mappa”. Quest’operazione non cancella i dati dal filesystem ma solo dalla memoria RAM, in questo modo si evitano sovraccarichi di memoria del pc che inducono un rallentamento delle operazioni di visualizzazione e di calcolo. Le mappe cancellate possono essere comunque rivisualizzate, caricandole dal disco, in momenti successivi quando si rendessero necessarie. Sempre facendo ricorso al tasto destro del mouse, in corrispondenza del nome della mappa, si può anche definire la trasparenza da assegnare alla mappa. In Figura 5.7 viene riportato un esempio nel quale la mappa geology è stata caricata ma non visualizzata a video. Nella stessa figura vengono mostrati anche il menu che si ottiene cliccando con il tasto destro del mouse sulla mappa aspect e la finestra grafica che si otterrebbe selezionando l’opzione Proprietà. In questa finestra viene definito il parametro di trasparenza (alpha) del raster dove il valore 1 indica che la mappa non è trasparente mentre la trasparenza aumenta al diminuire del valore del fattore alpha. Proprietá di visualizzazione Visualizzando la sezione dedicata alla legenda, come anticipato nel paragrafo precedente, si possono anche definire molte delle proprietà di visualizzazione già viste nel Paragrafo 4.4. Questo si può fare cliccando sulla cartellina denominata Proprietà che si trova nella parte inferiore del pannello. In questa sezione vengono ripresentate le opzioni che si sono viste anche in Figura 5.7 e per ognuna di esse è possibile personalizzare i parametri specificati di default. Per fare questo è necessario visualizzare il contenuto di ciascuna opzione cliccando sul pulsantino con il + che precede il nome e poi semplicemente cliccare con il tasto destro in corrispondenza dell’opzione scelta. Nel 55 5. Primi passi con JGrass Figura 5.7: Opzioni di visualizzazione delle mappe raster caricate in JGrass. Figura 5.8: Proprietà di visualizzazione di JGrass. menu Proprietà è poi possibile definire i nuovi parametri, in Figura 5.8 è riportato l’esempio di visualizzazione di: • Griglia della mappa con risoluzione NS e EO di 1000 m. • Visualizzazione della Rosa dei Venti, che in questo caso potrebbe essere chiamata semplice56 5. Primi passi con JGrass mente indicazione del Nord. • Visualizzazione della Scala della Mappa definendo i parametri di posizione in modo da collocarla in basso a sinistra dello schermo • Griglia dei valori della mappa: questa non è stata visualizzata perché l’opzione non è ancora attiva completamente. Si consiglia comunque di visualizzare la griglia dei valori solo per porzioni molto piccole di mappe in quanto l’operazione potrebbe richiedere un po’ di tempo. Legenda delle mappe Per visualizzare la legenda delle mappe non è sufficiente attivare l’opzione che si trova nel menu del monitor di Figura 4.24, questo tasto funziona solamente in un secondo momento, quando sono già stati definiti tutti i parametri per la creazione della legenda. Per definire questi parametri è necessario selezionare dalla lista delle Proprietà l’opzione Legend e definirne le proprietà. Se vogliamo creare la legenda per la mappa elevation.dem dovremo specificarlo nell’interfaccia di Figura 5.9. Figura 5.9: Definizione delle proprietà della legenda. Come potete notare è possibile definire la posizione della legenda, il fattore di trasparenza e la grandezza del rettangolo contenente la legenda. La legenda apparirà di tipo diverso a seconda della mappa a cui si fa riferimento, non solo nei valori, ma anche nella forma. Le legende create per le mappe elevation.dem e geology riportate in Figura 5.10 e 5.11 sono molto diverse tra loro: la prima è una legenda di tipo “continuo” nella quale viene riportata la scala di colori utilizzata nella mappa e alcuni valori di riferimento, mentre la seconda è una mappa di tipo “discreto” nella 57 5. Primi passi con JGrass quale ad ogni particolare colore è associato un valore o in questo caso il nome della formazione geologica corrispondente. Questa differenza deriva dal fatto che per la mappa geology i dati sono stati categorizzati e quindi la legenda fa riferimento alle categorie. Figura 5.10: Visualizzazione in JGrass della mappa delle elevazioni e della relativa legenda creata con i parametri di Figura 5.9. Figura 5.11: Visualizzazione in JGrass della mappa delle formazioni geologiche e della relativa legenda. Attenzione: La visualizzazione della legenda è condizionata alla visualizzazione della mappa cor58 5. Primi passi con JGrass rispondente. In altre parole per vedere la legenda creata è necessario che venga visualizzata anche la mappa a cui essa si riferisce, oltre eventualmente ad altre mappe. 5.3.2 Dati vettoriali Cliccando sull’icona si attiva la procedura guidata per la visualizzazione di una mappa vettoriale in formato shapefile. La schermata di avvio prevede la possibilità di scegliere il percorso del file da visualizzare, visto che per questo tipo di dato viene lasciata all’utente la possibilità di caricarlo da qualsiasi cartella del filesystem. Per il dataset di Spearfish è stata creata una cartella all’interno della location Spearfish con il nome shapefiles. Per visualizzare questi dati si deve quindi selezionare nella maschera di Figura 5.12 il percorso dove è installato JGrass e successivamente .../spearfish/PERMANENT/shapefiles, qui si trovano gli shapefile disponibili. Figura 5.12: Schermata per la selezione dello shapefile da visualizzare in JGrass. Proprietà di visualizzazione Ripetendo la procedura che permette di visualizzare roads e streams si potrà vedere che queste mappe vengono visualizzate come mostrato in Figura 5.13, che non differenzi i due dati. Per distinguere le strade dai corsi d’acqua è necessario cambiare le impostazioni di visualizzazione di una o di entrambe le mappe. Questa operazione si fa analogamente a quanto visto per i dati raster (Paragrafo 5.3.1) cliccando sul nome della mappa con il tasto destro del mouse nella sezione legenda. Le opzioni attive per i dati vettoriali sono tre: 1. Cancella + “nome della mappa”: per cancellare la mappa dalla visualizzazione in JGrass, 59 5. Primi passi con JGrass Figura 5.13: Visualizzazione di due shapefile con impostazioni predefinite in JGrass. questo, come nel caso dei raster, non compromette il file su disco. 2. Visualizza i dati : per visualizzare l’intera tabella di dati associata alla mappa vettoriale. 3. Proprietà: per modificare le proprietà di visualizzazione della mappa. Cliccando dunque su Proprietà, apparirà la finestra contenente i parametri correnti, come quella mostrata in Figura 5.14. Tale finestra permette di modificare le impostazioni semplicemente variando il numero corrispondente alla caratteristica che si desidera modificare oppure cliccando sul colore per modificare il colore di visualizzazione. In Figura 5.14 viene anche mostrata la finestra per la scelta del colore di visualizzazione. I parametri che possono essere variati (mostrati in Figura 5.15) sono diversi a seconda del tipo dell’entità contenuta nel file, ovvero se si ha a che fare con poligoni (aree) oppure semplicemente linee o punti. 60 5. Primi passi con JGrass Figura 5.14: Impostazione delle proprietà di visualizzazione di una mappa vettoriale in JGrass. Figura 5.15: Elenco delle proprietà di visualizzazione di una mappa vettoriale in JGrass differenziata per entità visualizzata. Scegliendo come colore di visualizzazione della mappa roads il rosso e portando lo spessore delle linee a tre si ottiene la visualizzazione riportata in Figura 5.16 Se si vogliono visualizzare tutti i dati collegati alla mappa caricata basterà selezionare dal menu l’opzione Visualizza i dati. I dati vengono visualizzati in forma tabellare e per ogni entità dello shapefile è possibile accedere agli attributi ad essa collegati. La tabella visualizzata per lo shapefile roads è riportata in Figura 5.17. Nell’esempio gli attributi collegati sono il numero identificativo ID e la categoria della strada in CAT ID. Come si può osservare non ci sono dati nella colonna relativa alla descrizione della strada. 61 5. Primi passi con JGrass Figura 5.16: Visualizzazione in JGrass di due shapefile con impostazioni personali dell’utente. Figura 5.17: Visualizzazione degli attributi collegati ad uno shapefile in JGrass. 62 5. Primi passi con JGrass 5.4 Interrogazione delle mappe Tutte le mappe visualizzate in JGrass, siano esse in formato raster o vettoriale, possono essere interrogate, ovvero di ogni mappa è possibile conoscere il valore in un punto preciso. 5.4.1 Interrogazione di mappe raster Il comando usato per interrogare mappe raster è d.what.rast che si trova nel menu Raster alla voce Interrogazioni di mappe raster (Figura 5.18). Figura 5.18: Menu per la scelta del comando per interrogare mappe raster. Il comando di interrogazione di mappe raster ha una comoda interfaccia grafica che permette di scegliere la mappa e interrogarla semplicemente cliccando con il mouse sul punto di cui si vuole conoscere il valore. Con questo comando si possono interrogare anche mappe non visualizzate e si possono interrogare più mappe contemporaneamente selezionandole contemporaneamente dal menu delle mappe disponibili. Ad ogni clic del mouse sulla mappa apparirà il valore del punto selezionato, eventualmente anche più valori, se si interrogano più mappe. Rimane rappresentato anche il valore cliccato precedentemente con le rispettive coordinate e la distanza tra i due punti (il punto cliccato precedentemente e quello attuale). L’interfaccia grafica è presentata in Figura 5.19 dove vengono interrogate contemporaneamente le mappe elevation.dem e geology (che non è visualizzata). Per chiudere il comando cliccare sul pulsante uscita. 63 5. Primi passi con JGrass Figura 5.19: Interfaccia grafica del comando per l’interrogazione di mappe raster. 5.4.2 Interrogazione di mappe vettoriali Il comando per interrogare le mappe vettoriali è l’unico comando di analisi vettoriale al momento integrato in JGrass e si trova nel menu Vettoriali (come mostrato in Figura 4.14). Anche per il comando d.what.vect è stata implementata un’interfaccia grafica simile a quella vista per il comando d.what.rast (Figura 5.20) in cui sono contenute le mappe disponibili (in questo caso solamente le mappe caricate visto che il comando interroga shapefile) le coordinate e gli attributi del punto cliccato e la distanze tra due punti selezionati successivamente. L’unica particolarità del comando per i vettoriali rispetto a quello dedicato ai raster è il numero scritto in alto a sinistra che viene chiamato snap. Questo rappresenta la distanza massima a cui è possibile cliccare per poter selezionare l’oggetto. Il valore di snap è particolare per ogni mappa, anche se indicativamente vi si può assegnare come valore di partenza la risoluzione di lavoro. Quando si clicca in un punto e vengono visualizzati i dati relativi a due entità diverse significa che entrambe distano meno dello snap dal punto cliccato. A questo punto per selezionarne una in particolare sarà sufficiente diminuire il valore dello snap. Nel caso del comando di interrogazione di mappe vettoriali non è possibile selezionare più mappe dall’elenco: si può interrogare solo una mappa alla volta. Per uscire dal comando premere il pulsante uscita. Come ripasso di una parte di ciò che è stato visto nei paragrafi precedenti si può visualiz64 5. Primi passi con JGrass Figura 5.20: Interfaccia grafica del comando per l’interrogazione di mappe vettoriali. zare la mappa elevation.dem come in Figura 5.21 modificando le impostazioni standard per la visualizzazione della scala della mappa e le impostazioni di trasparenza delle mappe visualizzate. Figura 5.21: Visualizzazione in JGrass della scala della mappa con configurazioni particolari dell’utente. 65 5. Primi passi con JGrass 5.5 Tracciamento del profilo delle mappe In JGrass è possibile ottenere il profilo di una mappa in una sezione disegnata a video semplicemente con il comando r.profile che si trova nel menu Raster - Elaborazioni su raster . L’interfaccia grafica è presentata in Figura 5.22 e contiene sia le informazioni sui dati di input che quelle sui dati di output del comando. Per quanto riguarda i dati di input, questi si trovano nella parte sinistra dell’interfaccia e riguardano la scelta del mapset (tra quelli caricati in fase di creazione dell’ambiente di lavoro) e della mappa di cui si vuole tracciare il profilo (nell’esempio si traccia un profilo sulla mappa elevation.dem). Figura 5.22: Interfaccia grafica del comando per il tracciamento dei profili in JGrass. A questo punto è sufficiente spostare la finestra di lavoro in modo che sia visibile la porzione di mappa su cui si desidera tracciare la sezione e con il mouse tracciare a video la sezione sulla mappa. Il puntatore del mouse durante questa operazione cambierà d’aspetto in modo che sia chiaro all’utente che si è in modalità disegno. Quindi sarà sufficiente cliccare con il tasto sinistro del mouse sul punto iniziale e finale della sezione e apparirà una linea blu sul monitor in corrispondenza della quale verrà tracciato il profilo (Figura 5.23). Nell’interfaccia grafica, più o meno velocemente a seconda della risoluzione della mappa e della lunghezza della sezione, verranno visualizzate le informazioni relative al profilo, come mostrato in Figura 5.24. L’output del comando r.profile per la parte grafica è il profilo della mappa sulla sezione con evidenziati il massimo e il minimo, nonché il profilo relativo. Le altre informazioni contenute sono di tipo numerico e sono: 66 5. Primi passi con JGrass Figura 5.23: Visualizzazione a video della sezione di cui si richiede il profilo. Figura 5.24: Output del comando per il tracciamento dei profili in JGrass. 1. coordinate del primo punto della sezione 2. coordinate dell’ultimo punto della sezione 3. lunghezza della sezione 67 5. Primi passi con JGrass 4. dati del profilo (distanza progressiva e quota) I dati relativi al profilo si possono copiare e incollare direttamente in un foglio excel prendendoli dall’interfaccia grafica, mentre per modificare le informazioni grafiche basta cliccare sul tipo di informazione nella parte inferiore dell’interfaccia grafica e deselezionare l’informazione che non si vuole visualizzare. È anche possibile fare un ingrandimento del grafico selezionando con il mouse la parte di grafico che si desidera ingrandire. La finestra selezionata sarà quella visualizzata nell’ingrandimento. Per tornare allo zoom di partenza basta tenere cliccato il tasto sinistro del mouse e spostare il cursore verso l’alto. Per uscire dal comando Cliccare sul pulsante ok. Lasciare il comando attivo mentre si fanno altre operazioni comporta un malfunzionamento del programma stesso che continua a caricare nuove sezioni di cui tracciare il profilo ogni volta che si clicca sulla mappa. Si può notare che uscendo dal comando rimane comunque visualizzata a video la sezione tracciata, questo è diventato un nuovo elemento che viene visualizzato nella sezione della legenda - Proprietà come elevation.dem-profile-1 e può essere cancellato dallo schermo semplicemente puntando il quadratino corrispondente, oppure cancellato del tutto con l’opzione Cancella che si visualizza cliccando sul nome della mappa con il tasto destro del mouse. 5.6 Gestione delle mappe raster Nella sezione dedicata ai raster troviamo anche i comandi di gestione delle mappe, ovvero i comandi che permettono di copiare mappe da mapset o cartelle particolari, di rinominare le mappe oppure di cancellarle dal filesystem. Questi comandi seguono tutti una stessa logica e le interfacce grafiche sono molto simili. 5.6.1 Copiare una mappa Per copiare una mappa da un altro mapset o da una delle cartelle in cui ci sono i dati nel formato nativo indicato dal nome della cartella il comando è r.copy che si presenta con una prima interfaccia nella quale viene chiesto di selezionare la cartella d’origine (GRASS di default e le altre cartelle accessibili da JGrass) della mappa da copiare. Premere Avanti per continuare. Una volta selezionata la cartella di origine è possibile scegliere la mappa da copiare dall’elenco relativo ai mapset caricati. Nell’esempio di Figura 5.26 si sta copiando la mappa elevation.dem. Dopo aver cliccato sul pulsante Fine apparirà ora una schermata dello stesso tipo della prima 68 5. Primi passi con JGrass Figura 5.25: Prima schermata della procedura guidata per copiare una mappa in JGrass. Figura 5.26: Seconda schermata della procedura guidata per copiare una mappa in JGrass. nella quale deve essere scelta la cartella di destinazione. Si è scelto di copiare la mappa nella cartella esriasciigrid (Figura 5.27). Cliccare su Avanti per proseguire. 69 5. Primi passi con JGrass Figura 5.27: Terza schermata della procedura guidata per copiare una mappa in JGrass. Nell’ultima schermata viene chiesto di definire il mapset in cui copiare la mappa e di scrivere il nome della mappa di destinazione. Nell’esempio l’unico mapset caricato è PERMANENT e quindi una volta selezionato il mapset e scritto il nuovo nome della mappa, dem, si può cliccare su Fine per terminare la procedura. È molto importante selezionare il nome del mapset di destinazione anche se è l’unico della lista, altrimenti la mappa non verrà copiata e si dovrà ripetere l’operazione da principio. Se la procedura è andata a buon fine e la mappa è stata copiata a video apparirà il messaggio di creazione della nuova mappa riportato in Figura 5.29. Cliccando su ok si termina la procedura. Figura 5.28: Ultima schermata della procedura guidata per copiare una mappa in JGrass. La mappa creata può essere visualizzata con il comando di visualizzazione oppure utilizzata per l’elaborazione di nuove mappe. Si ricorda che la mappa dem si trova nella cartella esriasciigrid e quindi è già scritta in formato ASCII della ESRI e può essere utilizzata come mappa di interscambio con altri programmi. 70 5. Primi passi con JGrass Figura 5.29: Messaggio di chiusura della procedura guidata per copiare una mappa in JGrass. Per fissare il concetto di copiatura di una mappa da una cartella all’altra si propone di copiare anche le altre mappe contenute nel set di dati di Spearfish rispettivamente: • aspect in grassascii con il nome esposizione • geology nel formato standard di GRASS con il nome geologia 5.6.2 Rinominare una mappa Il comando da utilizzare per rinominare una mappa, o per spostarla in un’altra cartella o in un altro mapset, è r.rename . La procedura guidata per eseguire il comando è molto simile a quella per copiare le mappe. Le prime due schermate dove viene scelta la mappa di partenza sono le stesse (Figura 5.25 e 5.26). In questo caso però l’esempio prevede di scegliere la mappa appena creata esposizione e di rinominarla in esposizione new nella cartella esriasciigrid. Il comando r.rename infatti sposta la mappa nella nuova mappa specificata nelle schermate successive (Figura 5.30 e 5.31) eliminando la mappa sorgente, al contrario del comando r.copy che mantiene la mappa originale. Anche alla fine di questo comando, se tutto è andato per il meglio, apparirà un messaggio di avviso (Figura 5.32). Figura 5.30: Terza schermata della procedura guidata per rinominare una mappa in JGrass. 71 5. Primi passi con JGrass Figura 5.31: Ultima schermata della procedura guidata per rinominare una mappa in JGrass. Figura 5.32: Messaggio di chiusura della procedura guidata per rinominare una mappa in JGrass. 5.6.3 Cancellare una mappa Per eliminare una mappa dal filesystem in modo che non sia più disponibile per le elaborazioni e che venga liberata la memoria su disco occupata il comando da usare è r.remove , che si presenta con l’interfaccia grafica di Figura 5.33. Figura 5.33: Prima schermata della procedura guidata per eliminare una mappa in JGrass. La cancellazione di una mappa è possibile, per il momento, solo per mappe salvate nel formato 72 5. Primi passi con JGrass Figura 5.34: Messaggio di avviso per la cancellazione di una mappa dal filesystem in JGrass. di GRASS/JGrass. Se si sceglie di eliminare la mappa geology cliccare poi su Avanti e Fine per procedere con l’operazione. Prima di eliminare la mappa viene chiesta conferma all’utente tramite un messaggio d’avviso come quello mostrato in Figura 5.341 . 5.7 Creazione della tavola dei colori di una mappa raster Le mappe raster a cui non è associata una tavola dei colori vengono visualizzate con la colorazione standard che prevede la divisione dell’intervallo dei valori della mappa in 5 sotto-intervalli a cui vengono assegnati i colori: • primo intervallo: • secondo intervallo: • terzo intervallo: • quarto intervallo: • quinto intervallo: Le tavole dei colori sono contenute nella cartella colr del mapset relativo alla mappa considerata. Per creare o modificare la tavola dei colori di una mappa, nell’esempio di elevation.dem, si usa il comando r.colors . L’interfaccia grafica del comando è quella mostrata in Figura 5.35 dove, come negli altri casi, è possibile selezionare il mapset e il nome della mappa di cui si vogliono modificare i colori2 . Per la mappa usata nell’esempio elevation.dem l’intervallo di variazione è 1066 − 1840 m s.m.m.. 1 In Windows è possibile cancellare una mappa solamente se non è mai stata visualizzata nella sessione in corso per problemi di gestione degli accessi ai file in uso nel sistema. Quindi se si desidera cancellare una mappa precedentemente visualizzata occorre riavviare JGrass e procedere alla cancellazione. 2 Per un motivo ancora a noi sconosciuto, purtroppo, è necessario cliccare due volte sul nome della mappa per visualizzarne, nella parte sottostante, l’intervallo di variazione dei dati 73 5. Primi passi con JGrass Figura 5.35: Interfaccia grafica per la creazione o modifica della tavola dei colori di una mappa raster in JGrass. La prima cosa da fare a questo punto è quella di caricare la tavola dei colori esistente, se questa dovesse esistere, carica tavola dei colori. Se appare il messaggio che non è stata trovata nessuna tavola dei colori, si può procedere cliccando su ok, altrimenti verrà caricata la tavola dei colori che apparirà nella sezione di sinistra della finestra. Nell’esempio non è stata trovata nessuna tavola dei colori per la mappa elevation.dem e quindi tutto rimane invariato e possiamo procedere a creare la tavola dei colori a nostro piacimento. Per creare la tavola dei colori di una mappa occorre selezionare aggiungi regola finché non ci sono un numero sufficiente di intervalli di suddivisione dei dati (nell’esempio di Figura 5.36 si è scelto di suddividere i dati in quattro intervalli). Figura 5.36: Interfaccia grafica per la creazione della tavola dei colori di una mappa raster in JGrass - Creazione degli intervalli di suddivisione dei dati. 74 5. Primi passi con JGrass È necessario ora riempire le caselle bianche con il valore più piccolo e più grande dell’intervallo dei dati e assegnare un colore di partenza e uno finale all’intervallo. Per caricare il colore occorre prima selezionarlo nella schermata dei colori sulla destra e successivamente cliccare con il mouse sul pulsante SELECT corrispondente a quel colore. Il colore attivo al momento viene visualizzato anche nel riquadro Recent sulla parte più a destra della finestra di lavoro. Al termine delle operazioni si deve selezionare il pulsante crea tavola dei colori al quale segue un messaggio di avvertimento della creazione che contiene l’indicazione del percorso in cui il file contenente le indicazioni appena fornite è stato salvato. L’uscita dal comando avviene semplicemente chiudendo la finestra relativa. Un esempio di definizione della tavola dei colori è riportato in Figura 5.37 e il risultato grafico ottenuto semplicemente ricaricando la mappa con il pulsante è mostrato in Figura 5.38. Figura 5.37: Interfaccia grafica per la creazione della tavola dei colori di una mappa raster in JGrass - Definizione dei valori degli intervalli e dei colori corrispondenti. Se il risultato non dovesse essere soddisfacente sarà sufficiente richiamare il comando e caricare la mappa dei colori precedentemente creata e modificare tutto quello che si ritiene poco valido, sia cancellando o modificando gli intervalli dei dati, sia modificando i colori. Modificando unicamente il colore relativo al secondo intervallo dei dati e ricreando la tavola dei colori si ottiene l’immagine di Figura 5.393 . 3 Se per la visualizzazione della mappa con la nuova tavola dei colori non dovesse bastare ridisegnare la mappa caricata, si dovrà cancellare la mappa dalla visualizzazione (Paragrafo 5.3.1) e poi procedere a rivisualizzarla (Paragrafo 5.3.1) 75 5. Primi passi con JGrass Figura 5.38: Visualizzazione della mappa elevation.dem con la nuova tavola dei colori. Figura 5.39: Visualizzazione della mappa elevation.dem con la tavola dei colori modificata. 76 5. Primi passi con JGrass 5.8 Calcoli con mappe raster Il comando che permette di eseguire operazioni matematiche di diverso tipo con mappe raster è il comando r.mapcalc . Eseguire operazioni su raster significa che per ogni cella del raster viene eseguita l’operazione specificata. La sintassi del comando è molto simile a quella di GRASS ma dall’interfaccia grafica è molto semplice da usare. Con r.mapcalc è possibile eseguire operazioni semplici come quelle di addizione e moltiplicazione fra mappe diverse o su valori di una stessa mappa, ma anche operazioni più complesse che richiamano funzioni trigonometriche. L’interfaccia di Figura 5.40 mostra la creazione di una mappa raster (prova.dem) ottenuta sottraendo alla mappa elevation.dem un valore di 50 m. Tutte le operazioni su mappe raster possono essere fatte scegliendo la mappa nei diversi mapset caricati nel workspace e dalle cartelle accessorie della location di JGrass. La selezione di questi fattori fa cambiare l’elenco delle mappe che si trova nella parte in basso a sinistra della finestra. L’utente sceglie dal menu a tendina le mappe ogni volta che deve inserirle nella formula di calcolo È indispensabile che venga specificato il nome della mappa creata altrimenti appare un messaggio d’errore che richiede di completare tutti i campi richiesti. Anche per la mappa creata è possibile specificare la cartella di destinazione, l’opzione di default prevede di salvare la nuova mappa nel formato di GRASS nel mapset di default, che comunque viene visualizzato accanto al nome della mappa4 . Premendo sul pulsante ok parte l’elaborazione che potrà essere più o meno lenta a seconda delle dimensioni e della risoluzione della regione di lavoro, cancel invece chiude il comando senza eseguire l’operazione. Figura 5.40: Interfaccia grafica del comando per eseguire calcoli su mappe raster. A fine elaborazione sarà possibile visualizzare la mappa creata e controllare che il conto sia corretto utilizzando un d.what.rast (Paragrafo 5.4.1) sulle due mappe di riferimento elevation.dem e prova.dem. La differenza di valore in ogni punto del raster dovrà essere di 50m. 4 Il comando r.mapcalc, per il momento, permette di lavorare con mapset diversi e usare mappe in cartelle diverse ma tutte le mappe utilizzate in ogni singolo comando devono appartenere alla stessa cartella, salvo il raster di output. 77 5. Primi passi con JGrass Un’operazione molto utilizzata per eseguire calcoli su raster è l’operatore if, ovvero se. Attraverso questo operatore è possibile effettuare calcoli combinati su mappe considerando valori particolari di una mappa. Per fare un esempio si può aver bisogno di delimitare le zone con formazione geologica “sabbia argillosa” che corrispondono al numero otto della mappa “geologia” creata ai punti precedenti e di estrarne le relative quote dal dem (elevation.dem). Per ottenere questo risultato sarà necessario ricopiare la mappa geologia dalla cartella grassascii in geology nel formato standard, oppure copiare la mappa elevation.dem nel formato grassascii. In questo esempio si procederà utilizzando le due mappe nel formato standard. Si faccia attenzione però, nel ricreare la mappa geology che avendo cancellato l’originale si è cancellata anche la tavola dei colori ad essa associata e quindi la visualizzazione sarà ben diversa da quella di partenza. Il comando che permette di fare le operazioni appena descritte è r.mapcalc. Tale comando, mutuato da GRASS, è molto potente e una sua descrizione può essere trovata sul Tutorial di GRASS5 . Per fare questa operazione è possibile utilizzare l’operatore if di r.mapcalc. Per seguire la sintassi propria del costrutto if è sufficiente selezionare dall’interfaccia grafica il pulsante if e apparirà una stringa del tipo if(,,) che significa: if(condizione,azione per condizione vera,azione per condizione falsa) Per completare la stringa di comando si deve cliccare in corrispondenza del valore che si vuole inserire e scegliere la mappa o scrivere la condizione/azione. Si consiglia di usare sempre il construtto if anche per i calcoli che interessano un’unica mappa introducendo il valore null per i punti esterni in quanto alcune funzioni, per esempio quelle trigonometriche, non riconoscono come non valido il valore corrispondente a null e quindi calcolano un dato anche per i punti esterni alla mappa ma interni alla regione di lavoro (area che normalmente rimane bianca durante la visualizzazione delle mappe). L’operazione di creazione di un nuovo raster, claysand, isolando i punti corrispondenti dalla mappa geology e associando a questi il valore della quota corrispondente in elevation.dem è riportato in Figura 5.41. Il risultato dell’elaborazione invece è riportato in Figura 5.42 dove si è visualizzata, 5 http://www.gdf-hannover.de/media.php?id=0&lg=en 78 5. Primi passi con JGrass con fattore di trasparenza 0.2, la mappa geology originale, mentre la mappa claysand è visualizzata con un fattore di trasparenza di 0.8. Figura 5.41: Utilizzo del construtto if nelle operazioni su raster. Figura 5.42: Visualizzazione di una mappa creata con il comando di elaborazione di mappe raster. Il valore null introdotto nella sintassi per il calcolo della mappa claysand è il valore corrispondente al NODATA ovvero il valore da sostituire all’esterno delle zone interessate perché non siano considerate celle valide del raster. 5.9 Creazione della lista delle categorie La lista delle categorie permette di associare a dei valori particolari di una mappa raster una descrizione. Le categorie si creano con il comando r.cats 79 . 5. Primi passi con JGrass Supponendo di voler ricreare le categorie della mappa geology originale quanto si dovrà inserire nel comando è riassunto in Tabella 5.1. VALORE 1 2 3 4 5 6 7 8 9 DESCRIZIONE metamorphic transition igneous sandstone limestone shale sandy shale claysand sand Tabella 5.1: Tabella riassuntiva per la creazione dell’elenco delle categorie della mappa geology. L’interfaccia grafica iniziale del comando è quella di Figura 5.43 dove già si è scelta la mappa geology per la creazione delle categorie. Figura 5.43: Interfaccia grafica del comando per la creazione delle categorie in JGrass. Anche in questo caso, come per la creazione della tavola dei colori è necessario selezionare due volte la mappa per caricare i valori limite e poi carica le categorie originali per caricare la lista delle categorie preesistente. Se per la mappa non sono state create ancora delle categorie dei valori allora la schermata rimarrà come quella iniziale e si potrà procedere con l’operazione di creazione. Innanzitutto si devono decidere gli intervalli delle categorie, nell’esempio si vuole assegnare una descrizione ad ogni valore della mappa, quindi si devono creare 9 caselle in cui inserire quanto riportato in Tabella 5.1 (Figura 5.44). Al termine dell’inserimento dati è sufficiente cliccare sul pulsante crea le categorie per creare la lista appena definita. Se la procedura è andata a buon fine apparirà un messaggio di avvertimento per la creazione del file relativo nella cartella cats nel mapset corrente. Si chiude il comando chiudendo la finestra di inserimento dati e si procede alla visualizzazione della mappa e della legenda (come mostrato in Figura 5.11) per verificare che le categorie siano effettivamente riconosciute da JGrass. 80 5. Primi passi con JGrass Figura 5.44: Creazione della lista delle categorie per la mappa geology in JGrass. Il comando r.cats funziona solamente con mappe già discretizzate il che significa che se si volessero assegnare, per esempio, le categorie alla mappa dell’esposizione che è una mappa continua, si dovrebbe prima creare un nuovo raster contenente un valore per ogni intervallo di dati rappresentativo e successivamente assegnare le categorie. Come forse sarà noto i valori contenuti nella mappa dell’esposizione rappresentano l’angolo che il gradiente forma rispetto all’est geografico, e quindi si avrà: • NORD - 90o • OVEST - 180o • SUD - 270o • EST - 360o o 0o Introducendo anche i gradi di inclinazione intermedi (NE - NO - SO - SE) si può suddividere la mappa negli intervalli riportati in Tabella 5.2. I passi da fare per risolvere questo problema sono due: 1. creare una nuova mappa dell’esposizione esposizione.new contenente invece dei valori in gradi della mappa di partenza, il numero assegnato all’intervallo nella Tabella 5.2 (Figura 5.45) con il comando r.mapcalc; 2. creare l’elenco delle categorie per la nuova mappa e associare la legenda di questa nuova mappa alla mappa di partenza con il comando r.cats. 81 5. Primi passi con JGrass CATEGORIA EST NORD EST NORD NORD OVEST OVEST SUD OVEST SUD SUD EST EST NUMERO 1 2 3 4 5 6 7 8 9 INTERVALLO 0 - 22.5 22.5 - 67.5 67.5 - 112.5 112.5 - 157.5 157.5 - 202.5 202.5 - 247.5 247.5 - 292.5 292.5 - 337.5 337.5 - 360 Tabella 5.2: Tabella riportante i valori dell’angolo di esposizione per la creazione delle categorie della mappa. Figura 5.45: Comando per la creazione di una nuova mappa raster sulla base di aspect con i dati di Tabella 5.2. 5.10 Modifica dei valori di mappe raster Spesso ci si trova a dover in qualche modo modificare una mappa raster per i motivi più disparati. Se dovesse capitare di doverlo fare il comando da usare in quell’occasione sarebbe il comando r.correct. In realtà ci sono due versioni del comando: • r.correct : permette di editare tutte le celle di una mappa raster • r.correct.polygon : permette di disegnare un’area sulla mappa che verrà riempita con un valore a scelta. 5.10.1 Editing manuale di mappe raster Il comando per modificare manualmente le mappe raster, r.correct, permette di visualizzare i dati contenuti nella mappa selezionata dalla lista delle mappe disponibili per quel mapset e di modificarne il valore manualmente. Il comando mostrato in Figura 5.46, si riferisce ad una porzione della mappa elevation.dem. Utilizzando le opzioni standard del comando è possibile visualizzare solo un numero di cinque caselle, in verticale e in orizzontale, intorno alla cella selezionata con 82 5. Primi passi con JGrass il mouse. Per modificare il numero di celle visualizzate nell’interfaccia grafica si deve cambiare l’opzione del comando nel file .../etc/prop/r correct it.properties e sostituire nella seconda riga al cinque un valore maggiore sempre dispari. Figura 5.46: Interfaccia grafica del comando per la modifica manuale di mappe raster in JGrass. Si possono variare alcuni valori presenti nella finestra e poi cliccare su un’altra zona della mappa aprendo una nuova finestra e cosı̀ via. Prima di terminare si possono salvare tutte le modifiche in un’unica operazione. Viene lasciata all’utente la possibilità di cambiare il nome della mappa modificata o di mantenere il nome originale. Una volta definiti tutti i parametri e terminate le operazioni di modifica si prema su Accetta i cambiamenti per creare la nuova mappa. Il comando permette di incollare nella finestra dei dati alcuni valori copiati da una finestra, delle stesse dimensioni, creata in excel e quindi di velocizzare le operazioni se si devono assegnare dei valori noti a un’intera area. 5.10.2 Modifica di mappe raster attraverso la creazione di poligoni Quando si devono modificare delle porzioni grandi di mappa, per esempio se si devono escludere delle zone di un bacino idrografico che vengono fatte artificialmente drenare in un altro bacino, è utile il comando r.correct.polygon. Attraverso questo comando si traccia un poligono sulla superficie della mappa che si vuole modificare e si delimita la zona a cui si vuole assegnare un valore particolare, o anche il valore null (nell’esempio di Figura 5.47 si assegna proprio null all’area contenuta nel poligono). Il poligono disegnato in blu con il mouse è visibile in . Per creare la nuova mappa è necessario premere l’ok dopo aver disegnato il poligono per l’elabo83 5. Primi passi con JGrass Figura 5.47: Interfaccia grafica del comando per la modifica di mappe raster attraverso l’uso di poligoni in JGrass. Figura 5.48: Poligono di delimitazione dei valori null nelle nuova mappa creata. razione dei calcoli. La visualizzazione esatta riportata in Figura 5.49 è stata ottenuta cancellando il poligono disegnato dalle opzioni del menu della legenda. 84 5. Primi passi con JGrass Figura 5.49: Mappa raster creata con il comando r.correct.polygon. 85 5. Primi passi con JGrass 86 6 Creazione di un nuovo ambiente di lavoro 6.1 Creazione di una location Per creare un nuovo ambiente di lavoro si deve richiamare il comando Nuovo ambiente di lavoro dal menu File, come mostrato in Figura 4.6. In realtà quello che in JGrass viene chiamato workspace o ambiente di lavoro riprende il concetto di location di GRASS (Paragrafo 3.5). La location è la cartella di riferimento per tutti i dati e le impostazioni di lavoro per il progetto facenti parti di un determinato workspace di JGrass, la sua struttura è quella definita nel Paragrafo 3.5. Dopo aver selezionato l’opzione corrispondente alla creazione di un nuovo ambiente di lavoro apparirà una schermata di presentazione (Figura 6.1) del comando e basterà cliccare sul pulsante Successivo per continuare con l’operazione. Figura 6.1: Finestra iniziale per la creazione di una location. Nella schermata seguente si presenta l’opzione per la creazione di un ambiente di lavoro del tipo compatibile con GRASS. Allo stato dell’arte è possibile creare solo workspace del tipo location/mapset di GRASS, è in fase di sviluppo lo sviluppo di un’alternativa per la gestione dei dati. È quindi sufficiente selezionare l’opzione GRASS location workspace dal menu e premere Successivo. 6. Creazione di un nuovo ambiente di lavoro Figura 6.2: Finestra per la scelta del tipo di ambiente di lavoro da creare. A questo punto apparirà una finestra in cui l’utente dovrà scegliere il percorso su disco in cui creare il nuovo ambiente di lavoro. Il percorso dove salvare il nuovo workspace non è semplicemente il DATABASE di GRASS bensı̀ deve essere completo e contenere anche il nome della nuova location. Se il percorso non è completo o se viene selezionata una cartella non valida, perché vuota o perché contenente altro materiale, apparirà il messaggio d’errore mostrato in Figura 6.3. Si fa notare che ciò non accade se viene selezionata una location preesistente, ma in questo caso non verrebbe creata una nuova location bensı̀ caricato un ambiente di lavoro partendo da una location preesistente (Paragrafo 6.1.1). 88 6. Creazione di un nuovo ambiente di lavoro Figura 6.3: Messaggio di avvertimento per la scelta di un percorso incompleto o già esistente ma non valido per il salvataggio dei dati del workspace che si sta creando. Una volta definito un percorso valido è possibile definire una breve descrizione dell’ambiente di lavoro (Figura 6.4) e proseguire con l’operazione cliccando sul pulsante Successivo. Figura 6.4: Finestra per la scelta del percorso in cui caricare il nuovo ambiente di lavoro. Creando un nuovo ambiente di lavoro verrà avvertito l’utente della creazione di una nuova cartella sul filesystem, messaggio al quale sarà sufficiente rispondere con ok per proseguire. 89 6. Creazione di un nuovo ambiente di lavoro Figura 6.5: Finestra di avvertimento per la creazione di una nuova cartella sul filesystem. La procedura di caricamento di un nuovo workspace richiede di specificare i settaggi della regione di lavoro cominciando dal sistema di riferimento e dalla proiezione cartografica. Se non è nota la dicitura da utilizzare è sufficiente scrivere le iniziali della nazione a cui si riferiscono i dati che si vogliono trattare e automaticamente verrà fatta una scelta della proiezione da utilizzare. Basterà poi selezionare l’opzione corretta tra quelle proposte, aiutandosi con le note che compaiono al solo passaggio del mouse sopra il nome, come mostrato in Figura 6.6. Nell’esempio proposto viene creata una location in proiezione Gauss Boaga Fuso Ovest. Figura 6.6: Finestra per la scelta dei parametri del sistema di riferimento e della proiezione cartografica in cui creare il nuovo ambiente di lavoro. 90 6. Creazione di un nuovo ambiente di lavoro Nella schermata successiva si presenta un riassunto dei parametri del sistema di riferimento e della proiezione cartografica considerati. Tutti i parametri sono già predefiniti a un valore di default, gli unici che si consiglia di variare per poter gestire al meglio l’ambiente di lavoro, sono quelli relativi ai limiti della regione e alla risoluzione spaziale. Ad esempio i parametri riportati in Figura 6.7 sono caratteristici per il Trentino. Per proseguire basta confermare con un clic su Successivo. Figura 6.7: Finestra riassuntiva dei parametri del workspace creato. Si procede con la creazione del mapset, ovvero la sotto-cartella in cui effettivamente lavorare. Di default viene proposto il mapset PERMANENT. È consigliabile creare nuovi mapset, scrivendo il nome nello spazio in basso e cliccando sul pulsante Create. I mapset caricati nell’ambiente di lavoro saranno quelli spuntati (mettendo la x nel riquadro che precede il nome del mapset). In JGrass è possibile salvare o fare operazioni su mappe appartenenti a mapset diversi, tuttavia si fa notare che nell’elaborazione dei comandi nativi di GRASS non è possibile fornire il mapset utilizzato e quindi viene preso come riferimento quello di default, ovvero il primo della lista dei mapset caricati. Si consiglia pertanto di usare normalmente workspace con un unico mapset attivo e di ricorrere alla modalità multi-mapset sono per operazioni transitorie in modo da poter sfruttare anche le elaborazioni con i comandi nativi di GRASS1 . 1 Per comandi Nativi di GRASS si intendono i comandi che vengono eseguiti all’interno di JGrass ricorrendo al comando originale di GRASS. Questa operazione viene fatta in modo trasparente per l’utente dotando questi comandi di un’interfaccia grafica del tipo standard di JGrass. 91 6. Creazione di un nuovo ambiente di lavoro Figura 6.8: Finestra per la selezione dei mapset da caricare nel workspace creato. Nella schermata successiva viene chiesto infine di assegnare il nome del workspace e una sua breve descrizione come ad esempio quanto riportato in Figura 6.9. Figura 6.9: Finestra per la scelta del nome dell’ambiente di lavoro da visualizzare in fase di caricamento. Come ultima operazione è possibile decidere quali barre degli strumenti caricare di default nel nuovo workspace in funzione delle elaborazioni che si dovranno fare sui dati (Figura 6.10). 92 6. Creazione di un nuovo ambiente di lavoro Figura 6.10: Finestra per la scelta delle barre degli strumenti del nuovo ambiente di lavoro. Cliccare su Successivo per terminare la creazione del nuovo ambiente di lavoro. Se la creazione è andata a buon fine verrà visualizzata la schermata di Figura 6.11. Cliccare ancora una volta su Fine per terminare il processo. Figura 6.11: Finestra di chiusura della procedura guidata per la creazione di un nuovo ambiente di lavoro. A questo punto il nuovo ambiente di lavoro sarà disponibile nella schermata di caricamento 93 6. Creazione di un nuovo ambiente di lavoro dell’ambiente di lavoro (Figura 6.12) che appare cliccando sul primo pulsante a sinistra della barra degli strumenti oppure selezionando la voce relativa nel menu File. Figura 6.12: Finestra per il caricamento di un ambiente di lavoro in JGrass. 6.1.1 Caricamento di una location preesistente Per il caricamento di un ambiente di lavoro precedentemente creato con GRASS o con versioni precedenti di JGrass è necessario seguire la procedura descritta nel paragrafo precedente fino alla scelta del percorso in cui creare il nuovo ambiente di lavoro (Figura 6.4) e selezionare la cartella relativa a una location esistente. A questo punto l’utente viene mandato direttamente alla schermata dove avviene la scelta del mapset di lavoro (Figura 6.8). È possibile, anche in questo caso, caricare uno o più mapset esistenti oppure crearne di nuovi e caricarli nel workspace creato. Anche in questo caso il nuovo workspace creato sarà visualizzato nella lista dei possibili ambienti di lavoro in fase di caricamento. 6.2 Scelta del sistema di riferimento e della proiezione cartografica La scelta del sistema di riferimento e della proiezione cartografica da utilizzare è estremamente importante, di seguito sono riportate alcune informazioni essenziali ma probabilmente non esaustive. Scegliere il sistema di riferimento significa specificare l’ellissoide di riferimento e il suo orientamento che definiscono la superficie planimetrica di riferimento della porzione di territorio rilevato. La proiezione cartografica definisce le regole proiettive che consentono di passare dalla rappresentazione sulla superficie di riferimento curva (ellissoide-Datum) alla superficie di riferimento piana (carta). 94 6. Creazione di un nuovo ambiente di lavoro In generale, per un dato Stato, la cartografia viene prodotta in un particolare sistema di riferimento al quale è associata una proiezione cartografica. Cosı̀, per l’Italia, generalmente si utilizza cartografia nel sistema di riferimento Roma 1940 e proiezione cartografica di Gauss-Boaga. Più recentemente, in analogia con gli altri stati dell’UE, si utilizza la proiezione UTM e il sistema ETRF89. Spesso si tilizza impropriamente il termine WGS84 per indicare il sistema di riferimento di dati le cui posizioni derivano dal post-processamento di misure GPS. Per le applicazioni GIS questa improprietá non comporta effetti significativi sui valori delle coordinate dei dati a patto di utilizzare sistemi di riferimento globali, come l’ITRF89, lo stesso WGS84 o, per l’Europa, l’ETRF89. L’European Petroleum Survey Group (EPSG) ha standardizzato dei codici che rispettano questi tipi di associazione e permettono una individuazione più agevole del sistema di riferimento e la proiezione adottata nei vari Stati. Per carte digitali codificate in un certi formati di file è possibile, attraverso alcuni comandi che verranno illustrati in seguito, creare, a partire dal file stesso, una nuova location coerente con la carta in termini di sistema di riferimento e proiezione. Questa operazione è possibile esclusivamente per quei formati di file che includono al loro interno, oltre alla carta, anche le metainformazioni che ne specificano il sistema di riferimento e la proiezione. Per i formati di file che non includono queste informazioni (ad esempio i formati ASCII) è necessario creare manualmente una location coerente con la carta che si vuole importare. In questi casi è possibile fare riferimento ai codici EPSG che permettono la creazione di una location senza richiedere l’inserimento manuale di tutti i parametri che definiscono il sistema di riferimento e la proiezione cartografica della carta. In particolare in JGrass, nella schermata di selezione del sistema di riferimento e della proiezione (Figura 6.6) è possibile selezionare il codice EPSG opportuno e caricare automaticamente i parametri specificati dall’EPSG. Con riferimento all’Italia, tra le opzioni date per la scelta del sistema di riferimento e della proiezione non compare la dizione Gauss-Boaga su Roma 1940. Questa associazione viene internazionalmente indicata attraverso due diciture, diverse a seconda della longitudine associata al meridiano di riferimento italiano, quello che passa per Roma - Monte Mario. • Italy zone 1 e Italy zone 2 (a seconda del fuso da utilizzare) se la longitudine del meridiano di riferimento è data rispetto al meridiano di Greenwich. In questo caso il valore della longitudine del meridiano di riferimento è: 12 gradi 27 primi 08.4 secondi. La longitudine del meridiano centrale del fuso ovest (o fuso 1) è: 9 gradi, mentre quella del fuso est (o fuso 2) è 15 gradi. • Monte Mario / Italy zone 1 e Monte Mario / Italy zone 2 (a seconda del fuso da utilizzare) se la longitudine del meridiano di riferimento è posta uguale a 0 gradi. La longitudine 95 6. Creazione di un nuovo ambiente di lavoro del meridiano centrale del fuso ovest (o fuso 1) è: -3 gradi 27 primi 8.399 secondi, mentre quella del fuso est (o fuso 2) è 2 gradi 32 primi 51.6 secondi. Si riportano di seguito le diciture e i codici corrispondenti validi per la proiezione cartografica e il sistema di riferimento Gauss-Boaga su Roma 1940 utilizzati in Italia. 3003: Monte Mario / Italy zone 1 3004: Monte Mario / Italy zone 2 26591: Monte Mario (Rome) / Italy zone 1 26592: Monte Mario (Rome) / Italy zone 2 Nei casi in cui sia necessario lavorare in coordinate geografiche (φ e λ), riferite all’ellissoide di riferimento, e non cartografiche (N e E), è comunque possibile specificare esclusivamente l’ellissoide di riferimento e il suo orientamento (Datum). In questo caso il codice EPSG per creare una location in coordinate geografiche riferite al sistema di riferimento Roma 1940 è: 4806: Monte Mario (Rome) Nel caso sia necessario creare una location nella quale importare dati acquisiti con strumenti GPS commerciali che non vengano quindi post-processati oppure dati provenienti da cartografia ufficiale i codici EPSG di riferimento sono: • per coordinate geografiche 4326: WGS 84 / latlong • per coordinate cartografiche in UTM (zone italiane) 32632: WGS 84 / UTM zone 32N 32633: WGS 84 / UTM zone 33N Nel caso di dati GPS post-processati e inquadrati nel sistema ETRF89: • per coordinate geografiche 4258: ETRS89 • per coordinate cartografiche in UTM (zone italiane) 25832: ETRS89 / UTM zone 32N 25833: ETRS89 / UTM zone 33N 96 6. Creazione di un nuovo ambiente di lavoro Nel caso di coordinate nel sistema di riferimento ED50 (EuropeanDatum 1950): • per coordinate geografiche 4230: ED50 • per coordinate cartografiche in UTM (zone italiane) 23032: ED50 / UTM zone 32N 23033: ED50 / UTM zone 33N Un esempio di cartografia in UTM su ED50 è quella di tipo escursionistico delle mappe edite di Tabacco o Compass. NOTA BENE 1. Per tutte le applicazioni di tipo GIS la differenza di coordinate tra il sistema WGS84 e la sua materializzazione ETRF89 non è apprezzabile e quindi trascurabile. Risulta equivalente la creazione di una location in uno dei due sistemi. 2. Non risulta significativa in questo contesto la differenza tra la dicitura ETRF89 ed ETRS89. 3. La differenza tra coordinate espresse nel sistema ED50 e il sistema ETRF89 o WGS84 è mediamente pari a circa 200 metri per l’intero territorio italiano. 6.3 Importazione di dati raster Una volta creato l’ambiente di lavoro nel giusto sistema di riferimento è indispensabile importare i dati su cui effettuare le elaborazioni. Si può partire sia da mappe raster che da mappe vettoriali. 6.3.1 Import di mappe raster Per importare una mappa raster ci sono diverse possibilità, a seconda del formato della mappa che si deve importare in JGrass: 1. usare il comando r.in.ascii 2. usare il comando r.in.lidar 3. usare il comando r.in.gdal 97 6. Creazione di un nuovo ambiente di lavoro 4. copiare il file in una delle cartelle di JGrass 2 . Il comando r.in.ascii Attraverso il comando r.in.ascii è possibile importare file ASCII nel formato di caratteristico di GRASS o in quello ESRI GRID. Figura 6.13: Interfaccia grafica del comando r.in.ascii di JGrass. L’interfaccia grafica del comando è quella di Figura 6.13 e contiene: • il nome e il percorso del file da importare, selezionato cliccando sul pulsante browse; • il valore contenuto nella mappa che rappresenta i NOVALUE (per saperlo occorre aprire il file con un qualsiasi editor di testo e di solito c’è già indicato il valoe della matrice dei dati che rappresenta il NOVALUE); • il nome della nuova mappa importata (eventualmente si può scegliere anche il mapset di destinazione). La mappa creata è dem e può essere visualizzata come mostrato in Figura 6.14. In questo caso la risoluzione di lavoro è di 10 m, esattamente come quella della mappa importata, ma la regione di calcolo è decisamente più grande. Lavorare con una regione di calcolo molto più grande di quella delle mappe su cui vengono fatte le elaborazioni comporta un maggior dispendio di memoria e di tempo, è quindi consigliabile ridefinire i parametri della regione. 2 È sufficiente copiare esternamente a JGrass il file nella cartella del mapset con il nome corrispondente al formato del file, se questo è tra quelli supportati. La mappa diventa cosı̀ accessibile per le elaborazioni in JGrass. 98 6. Creazione di un nuovo ambiente di lavoro Figura 6.14: Visualizzazione della mappa importata con il comando r.in.ascii. Per definire i parametri della regione di calcolo si possono usare i due metodi illustrati nel Paragrafo 5.2. In questo primo esempio vengono riportate, in Figura 6.15, tutte le informazioni da definire per impostare la regione attiva alle dimensioni della mappa importata. È stato sufficiente selezionare la mappa nella casella seleziona una mappa e poi cliccare sul pulsante setta ad una mappa. Facendo questa operazione ci si accorge che i limiti della regione vengono stabiliti automaticamente. Figura 6.15: Interfaccia grafica del comando per settare i parametri della regione attiva alle dimensioni della mappa importata. La visualizzazione della mappa con i nuovi parametri della regione è riportata in Figura 6.16. Si fa notare che per una visualizzazione migliore si sono aggiustati i parametri dello zoom e si è ridisegnata la mappa alla risoluzione di visualizzazione corrente con l’apposito pulsante nella barra 99 6. Creazione di un nuovo ambiente di lavoro degli strumenti di visualizzazione . Figura 6.16: Visualizzazione della mappa importata con il comando r.in.ascii. In questo modo è possibile importare tutte le mappe raster, nei formati ASCII della ESRI o di GRASS, di cui si ha bisogno per le elaborazioni future. Il comando r.in.lidar Con il comando r.in.lidar si possono importare in JGrass i dati salvati nel formato di triplette di punti a cui corrispondono le coordinate x,y,z. Il nome del comando deriva dal fatto che spesso i dati dei rilievi laser altimetrici vengono forniti in questo formato. Ovviamente si possano importare anche dati provenienti da altri software o da rilievi di altro tipo purché mantengano questo formato. L’interfaccia grafica del comando è presentata in Figura 6.17 e richiede come valori: 1. il nome del file da importare; 2. la specifica se i dati si trovano già su un grigliato regolare o se sono dati sparsi irregolarmente sul territorio; 3. il nome della nuova mappa creata 4. la specifica per l’importazione dei soli dati appartenenti alla regione attiva o di tutti i dati del file (procedura che in molti casi può richiedere molto tempo) 5. la specifica di cosa fare con eventuali punti doppi, se considerare il minimo, il massimo o una media dei valori relativi ad un unico punto (questo è per scegliere eventualmente se tener 100 6. Creazione di un nuovo ambiente di lavoro conto della vegetazione o del suolo). Questa opzione non viene considerata se non ci sono punti doppi nella mappa. Figura 6.17: Interfaccia grafica del comando r.in.lidar di JGrass. Il comando r.in.gdal Questo comando è uno dei comandi della serie dei comandi nativi di GRASS e permette di importare tutti i formati supportati dalle librerie GDAL3 . L’interfaccia è molto semplice e permette di scegliere il file di input in qualsiasi cartella attraverso il pulsante browse e di definire le operazioni che si possono fare: 1. scegliere la banda di colore da importare nel caso di importazione di file di immagini, se non viene specificato un colore vengono importate tutte le bande di colore e viene creato un raster per ogni banda (aggiungendo al nome il suffisso relativo al colore, ad esempio .red); 2. definire il nome della location dalla quale leggere la proiezione del dato 3. definire il nome della nuova location eventualmente da creare se le caratteristiche della proiezione non dovessero essere congruenti con quelle dell’ambiente di lavoro corrente 4. trascurare le informazioni relative ai limiti della regione per poter importare anche mappe esterne alla regione attiva 5. estendere i limiti della regione a quelli della mappa importata 6. elencare la lista dei formati supportati 3 www.gdal.org 101 6. Creazione di un nuovo ambiente di lavoro 7. considerare il numero della banda anziché il nome del colore nell’importazione di immagini. Nell’esempio riportato viene selezionata l’opzione che permette di importare mappe anche esterne alla regione attiva, la mappa che si è scelto di importare è una carta tecnica relativa ad una zona prossima a quella del dem ma non coincidente. Figura 6.18: Interfaccia grafica del comando r.in.gdal di JGrass. Definiti i parametri da utilizzare in fase di elaborazione sarà sufficiente premere su ok per eseguire i calcoli. L’evoluzione della procedura di calcolo viene visualizzata nell’interfaccia grafica come output del comando originale di GRASS, se per qualche motivo ci si dovesse accorgere che ci sono dei dati sbagliati o se comunque si dovesse interrompere il programma, basterà cliccare sul pulsante interrompi per terminare l’operazione prima di raggiungere il risultato finale. 102 6. Creazione di un nuovo ambiente di lavoro Figura 6.19: Output del comando r.in.gdal di JGrass. Se ora si prova a visualizzare la mappa importata apparirà il messaggio d’avvertimento che la mappa è completamente esterna alla regione visualizzata. Occorre quindi ridefinire i parametri della regione, o estendendo la regione alla nuova mappa (Figura 6.20), oppure settando la regione di lavoro in modo che contenga la mappa appena importata (Figura 6.21). In quest’ultimo caso sarà necessario modificare anche la regione di default e settare anch’essa alla stessa mappa o estendere quella esistente perché altrimenti si incorre nell’incongruenza data dal fatto che la regione attiva rimane esterna alla regione di default. 103 6. Creazione di un nuovo ambiente di lavoro Figura 6.20: Estensione della regione attiva alla nuova mappa importata con il comando r.in.gdal. Figura 6.21: Definizione della regione attiva alla nuova mappa importata con il comando r.in.gdal. Nel caso mostrato se si ingrandisce un riquadro della mappa si possono vedere molto bene i dettagli della carta tecnica provinciale del Trentino (Figura 6.22). La risoluzione dell’ambiente di lavoro, se si setta la regione sulla nuova mappa importata, passa da 10 m a 1 m. I dettagli della scala della mappa e della risoluzione di lavoro si trovano nella parte inferiore del monitor. Se si effettuano ingrandimenti cosı̀ spinti con uno zoom a finestra su una parte della mappa è meglio ridisegnare la mappa per poterla visualizzare adeguatamente. 104 6. Creazione di un nuovo ambiente di lavoro Figura 6.22: Ingrandimento di una porzione della carta tecnica della provincia di Trento importata con r.in.gdal. 6.3.2 Import di mappe vettoriali Per importare mappe vettoriali è sufficiente visualizzarle con il comando d.shapefile (Paragrafo ) e scegliere la cartella di provenienza. In JGrass si mantiene come formato di scambio il formato shapefile e si effettuano tutte le elaborazioni partendo da questo. Se si usano i comandi nativi di GRASS, che ha un suo formato specifico per le mappe vettoriali, sarà il comando stesso ad effettuare tutte le elaborazioni ulteriori per passare da un formato all’altro e l’utente dovrà specificare solamente i nomi della mappa di partenza e di arrivo sempre in formato shapefile. 6.4 Riproiezione dei dati In questa sezione verrà spiegato il comando r.proj che permette di riproiettare mappe raster da un sistema di riferimento all’altro. Anche questo comando fa parte del set di comandi nativi di GRASS implementati in JGrass. Ne esiste anche la versione per il formato di dati vettoriale, ma per ora non è ancora stata creata l’interfaccia grafica. Tutti i comandi nativi di GRASS per i quali non è stata ancora creata l’interfaccia grafica sono eseguibili da console (Capitolo 9). Per quanto concerne i dati raster, per riproiettare una mappa da una location ad un’altra caratterizzata da una proiezione cartografica diversa. Si procede come segue. Si supponga di dover per passare dei dati dalla proiezione Gauss Boaga Fuso Ovest alla UTM-WGS84. Sono necessarie due operazioni: 105 6. Creazione di un nuovo ambiente di lavoro 1. creazione di una location nella proiezione desiderata (in questo caso UTM-WGS84) 2. riproiettare i dati necessari con il comando r.proj La prima operazione consiste nel ripetere quanto riportato nel Paragrafo 6.1: Creazione di una location variando i parametri della proiezione e inserendo quelli corrispondenti alla proiezione UTM-WGS84 (Paragrafo 6.2). Le operazioni sono esattamente le stesse del caso precedentemente illustrato salvo la definizione dei parametri della proiezione. I parametri della proiezione da inserire nella finestra di Figura 6.6 per la creazione di una location in proiezione UTM-WGS84 sono riportati di seguito. Si ricorda che l’Italia si trova in parte nella zona 32 e in parte nella zona 33 dell’emisfero nord della rappresentazione utilizzata nella proiezione UTM. Si dovrà quindi scegliere dal file dell’EPSG, sempre tramite l’interfaccia grafica, i parametri corrispondenti a: 32632: WGS 84 / UTM zone 32N Inserendo nell’apposita casella il nome UTM WGS84 e scorrendo dal menu a tendina i risultati trovati si riuscirà a identificare la proiezione desiderata come riportato in Figura 6.23. Figura 6.23: Scelta dei parametri della proiezione UTM-WGS84 nella procedura guidata di creazione di un nuovo ambiente di lavoro. Per una miglior gestione dei dati si inseriscono dei valori nei limiti della regione, anche in questo caso i valori sono tipici del Trentino. Il risultato è riportato in Figura 6.24. Premendo sul pulsante 106 6. Creazione di un nuovo ambiente di lavoro avanti si accede ai passi successivi che permettono di definire il mapset di lavoro e le barre degli strumenti da caricare. Figura 6.24: Finestra riassuntiva dei parametri della proiezione UTM-WGS84 nella procedura guidata di creazione di un nuovo ambiente di lavoro. La scelta del nome da visualizzare nell’interfaccia iniziale di caricamento dell’ambiente di lavoro, quando si hanno dati in più proiezioni, dovrebbe contenere anche un’indicazione del nome della proiezione, in questo caso si può inserire per esempio trentino utm. Una volta creato il nuovo ambiente di lavoro nella proiezione UTM si può accedervi e, tramite il comando r.proj, riproiettare i dati della location in Gauss Boaga Fuso Ovest. Questo comando richiede come dati di input: • il nome del mapset della mappa di input che viene scelto attraverso il pulsante browse • il nome della mappa di input, che deve inserire l’utente manualmente • il nome della mappa di output • la risoluzione della mappa di output, che viene già settata al valore della risoluzione corrente dell’ambiente di lavoro • il metodo di interpolazione da usare • di elencare le mappe presenti nella location di input 107 6. Creazione di un nuovo ambiente di lavoro • di non ottimizzare il ritaglio della mappa ai confini della regione attiva Il comando si presenta come mostrato in Figura 6.25 dove si è scelto di riproiettare la mappa dem nel nuovo sistema di riferimento. Figura 6.25: Interfaccia grafica del comando r.proj in JGrass. Quando l’esecuzione è stata completata sarà possibile visualizzare la mappa dem e continuare con le operazioni indifferentemente nella location Gauss Boaga Fuso Ovest o in quella UTM-WGS84. 108 7 Elaborazioni particolari In questo paragrafo vengono riportate alcune soluzioni utili per le elaborazioni su mappe raster e vettoriali. Si tratta di soluzioni preconfezionate per l’utente ma potrebbero non essere l’unica strada per raggiungere il risultato voluto. 7.1 Creazione delle linee di livello partendo dal dem Nelle elaborazioni geomorfologiche è necessario avere a disposizione un dem in formato raster, tuttavia spesso si devono esportare i dati per le elaborazioni grafiche in altri programmi, risulta quindi utile avere un file con le linee di livello creato a partire dal dem. Il comando da usare in questo caso è r.dem2contour la cui interfaccia grafica è quella di Figura 7.1. Figura 7.1: Interfaccia grafica del comando r.dem2contour in JGrass. I dati da inserire sono: 1. nome della mappa raster da cui creare le linee di livello, 2. nome della cartella in cui salvare il file di output in formato shapefile, 3. nome del file di output, 4. intervallo tra le linee di livello1 , 5. formato del file di output: shapefile o dxf. Anche in questo caso l’elaborazione del comando viene fatta all’interno dell’interfaccia grafica, si può in ogni momento interrompere il programma oppure a fine elaborazione scorrere i messaggi 1 Il passo tra le linee di livello deve essere superiore alla risoluzione della mappa di partenza altrimenti si rischia di forzare le linee di livello su dati non reali. 7. Elaborazioni particolari di output. Il fatto che in alcuni casi ci siano degli errori segnalati durante l’elaborazione non compromette necessariamente la buona riuscita del programma. Se si prova a visualizzare il file creato si ottiene quanto riportato in Figura 7.2. Figura 7.2: Risultato dell’elaborazione del comando r.dem2contour sovrapposto al modello del terreno originale. 7.2 Creazione di un dem partendo dalle curve di livello Altrettanto utile è la possibilità di creare un dem partendo dalle linee di livello. Se il dato è in formato shapefile è possibile leggere il file e interpolare le linee di livello per la creazione della mappa del modello del terreno. Il comando da utilizzare in questo caso è v.contour2dem nel menu Vettoriale (Figura 7.3). Questo comando è molto semplice e richiede come dati di input il nome dello shapefile contenente le linee di livello e il nome e la cartella della mappa di output. La risoluzione della mappa di output è quella del mapset corrente, ovvero quella visualizzata nella parte inferiore del monitor. Figura 7.3: Interfaccia grafica del comando v.contour2dem di JGrass. 110 7. Elaborazioni particolari L’operazione di interpolazione di linee di livello per la creazione di un raster richiede molto tempo, l’evoluzione della procedura è comunque visualizzata nella finestra del comando. Qui è anche possibile verificare l’andamento del procedimento di calcolo e la presenza di eventuali errori che non potranno essere modificati mentre l’operazione è in corso, bensı̀ di dovrà interrompere l’elaborazione, rimediare all’errore segnalato e ripetere l’operazione da zero. Nell’uso dei comandi nativi di GRASS è fondamentale che le mappe di output non esistano già. Se esiste una mappa con lo stesso nome di quella risultante l’elaborazione verrà interrotta con un errore del tipo “mappa già esistente”. In particolare nel comando v.contour2dem sono stati incorporati diversi comandi di GRASS, per questo l’output del comando è molto ricco di informazioni. Il risultato dell’interpolazione è mostrato in Figura 7.4 con in trasparenza le curve di livello originali. Naturalmente è possibile effettuare dei calcoli sulla mappa risultante per eliminare le eventuali incongruenze o per isolare una sola parte della regione. Ad esempio si potrebbe eliminare tutta la parte gialla nella zona nord della mappa di Figura 7.4 con un semplice mapcalc assegnado a null il valore corrispondente al numero in giallo. Figura 7.4: Risultato dell’interpolazione con il comando v.contour2dem di JGrass. 111 7. Elaborazioni particolari 112 8 Database ambientali Gran parte delle informazioni di monitoraggio ambientale messe a disposizione dagli enti preposti hanno associata l’informazione spaziale. Per questo vengono utilizzati i GIS come contenitori e visualizzatori di dati ambientali di diverso tipo. Se la mole di dati a disposizione supera un limite critico per il funzionamento dei pc, o se, comunque, i dati devono essere condivisi tra più utenti, si ricorre all’uso dei database. Ci sono diverse categorie di database, in ambito ambientale ci si riferisce principalmente a due tipologie di database, i database di punti e i database spaziali. La distinzione tra database di punti e database spaziali è proprio nel contenuto del database. I database di punti contengono le informazioni rilevate in punti noti sul territorio e quindi contengono “tabelle” con le coordinate dei punti, la quota e le misure effettuate inserite sottoforma di attributo della tabella (tutti questi dati sono dei campi nelle tabelle del database). I database spaziali invece hanno un campo riservato alla geografia e geometria della forma inserita che fa riferimento a una tabella apposita che ne contiene la descrizione geometrica. In questi dati si tiene conto anche della proiezione e del datum nonché della relazione tra le forme (topologia). Per la connessione ai database da JGrass è necessario definire il nome e la posizione del database e la connessione avverrà attraverso un client per database. 8.1 Installazione e utilizzo del client di database Il client per i database che viene usato in questa sede si chiama SQuirreL SQL1 ed è anch’esso distribuito con licenza Open Source, sarà sufficiente quindi scaricare il software dal sito e installarlo. Il file scaricato è sempre un file di estensione .jar e quindi l’installazione e i problemi che si possono incontrare in funzione del diverso sistema operativo sono molto simili a quelli illustrati nel Capitolo 3: Installazione2 . SQuirreL SQL Client è un programma con interfaccia grafica in Java che permette all’utente di vedere le strutture, consultare le tabelle e i dati contenuti in un database attraverso le librerie JDBC. Il client si può interfacciare a diversi tipi di database semplicemente caricandone i drivers che si 1 http://squirrel-sql.sourceforge.net/ Alcune note pratiche per l’installazione di questo software in particolare sono riportate anche al link: http://squirrel-sql.sourceforge.net/ 2 8. Database ambientali possono scaricare direttamente dal sito, nel caso illustrato di seguito viene mostrata la connessione con il database Open Source PostgreSQL. Una volta installato il software di base è sufficiente copiare il file jar corrispondente all’estensione desiderata nella cartella lib. Per il database PostgreSQL il driver da installare si chiama postgresql-8.0-314.jdbc3.jar. 8.1.1 Creazione delle connessioni a database remoti Per definire le caratteristiche di connessione al database è necessario avviare SQuirreL e creare una nuova connessione “alias”. La prima schermata di avvio di SQuirreL è riportata in Figura 8.1. Figura 8.1: La schermata di avvio di SQuirreL. Le cose importanti da notare sono le due finestre visualizzate dal programma che contengono la lista dei drivers disponibili e installati, sulla sinistra, e l’elenco dei database ai quali è possibile connettersi in centro. Nell’esempio riportato è importante controllare che tra i drivers sia stato caricato quello relativo a PostgreSQL. A questo punto è possibile creare una nuova connessione a database cliccando sul pulsante + della tabella aliases (Figura 8.2). Le informazioni che vengono richiese nella creazione di una nuova connessione sono: 1. nome della connessione 2. driver utilizzato (tipo di database al quale connettersi) 3. URL del database, scritto secondo la sintassi specifica che viene suggerita all’avvio della procedura 4. username 114 8. Database ambientali 5. password Tutte le altre informazioni richieste possono essere lasciate con l’impostazione di partenza. Figura 8.2: Creazione di una nuova connessione a database in SQuirreL. In questo modo è possibile connettersi a database di punti, come il flanginec (Trentino), e a database spaziali indifferentemente, specificando il nome della connessione e l’URL d’origine. Per esempio è possibile connettersi al database spaziale di osnabrueck (Figura 8.3) o a quello di spearfish (Figura 8.4). Figura 8.3: Creazione di una nuova connessione a database spaziale in SQuirreL. 115 8. Database ambientali Figura 8.4: Creazione di una nuova connessione a database spaziale in SQuirreL. 8.1.2 Connessione e visualizzazione dei dati Per accedere al database da JGrass è necessario stabilire prima una connessione al database in SQuirreL. Questa connessione deve rimanere attiva durante la visualizzazione e l’utilizzo dei dati del database. Per connettersi a un database creato è sufficiente un doppio clic sul nome del database o scegliere l’opzione dal menu a tendina. Confermati tutti i dati di connessione è possibile visualizzare la struttura del database. Se al primo accesso non compare la struttura completa (Figura 8.5) scegliere refresh dal menu a tendina visualizzato cliccando con il tasto destro del mouse in corrispondenza del nome del database. In questa sede non è possibile indagare nel dettaglio la struttura di un database e tutte le informazioni collegate, pur essendo questo un database molto semplice in quanto database di punti. Le uniche informazioni strettamente necessarie per capire i dati contenuti sono quelle che si trovano nella cartella public - TABLE. In ognuna delle schede relative alle tabelle presenti nel database (nell’esempio c’è solo la tabella datizinco) si possono trovare informazioni di diverso tipo sui dati. Le informazioni più importanti sono quelle che si trovano nella scheda Columns e Content. Le informazioni relative ai dati di concentrazione di zinco misurati al suolo contenuti nella tabella datizinco sono riportate in Figura 8.6 e 8.7. 116 8. Database ambientali Figura 8.5: Struttura del database flanginec in SQuirreL. Figura 8.6: Tipo di dati contenuti nel database flanginec (cartella Columns) visualizzati in SQuirreL. 117 8. Database ambientali Figura 8.7: Visualizzazione dei dati del flanginec (cartella Content) in SQuirreL. A questo punto si possiedono tutte le informazioni necessarie per l’elaborazione dei dati in JGrass. 8.2 Come interfacciare JGrass ai database La connessione creata attraverso SQuirreL non è sufficiente perché JGrass possa accedere ai dati. Essa rappresenta il punto di partenza e sicuramente la condizione necessaria per l’utilizzo dei dati. Per l’accesso ai dati è necessario dare delle informazioni a JGrass sul tipo di database al quale collegarsi e queste sono diverse a seconda si tratti di un database di punti o di un database spaziale. 8.2.1 Interfaccia per database di punti I database di punti, non contenendo le informazioni geometriche, hanno bisogno di essere integrati all’interno di un ambiente di lavoro di JGrass. Le informazioni relative ai database di punti sono contenute in un file della cartella sql del mapset (Paragrafo 3.5). Se questa cartella non fosse già stata creata da JGrass in fase di creazione del nuovo ambiente di lavoro sarà sufficiente crearla esternamente a JGrass con i comandi classici di creazione di cartelle sul filesystem. Per la creazione di questo file non esistono modalità grafiche, è necessario che l’utente scriva il 118 8. Database ambientali file, secondo le specifiche riportate nell’esempio, con un editor di testo e lo salvi nella cartella sql del mapset con estensione .sql. L’estensione in questo caso è di fondamentale importanza in quanto per la connessione JGrass utilizza questo tipo di file. Le informazioni che devono essere contenute nel file di connessione sono sostanzialmente le stesse che vengono utilizzate nella connessione da SQuirreL con la sintassi tipica dei linguaggio xml. Il file deve contenere: • nome del dataset – tipo di driver utilizzato per la connessione con le JDBC – indirizzo url del database (lo stesso utilizzato in SQuirreL) – nome utente – password • le informazioni (campi) da leggere – nome della colonna – tipo di dato contenuto nella colonna • la query da fare al database per l’estrazione dei dati L’esempio del file sql per la connessione al database di flanginec è riportato in Figura 8.8, ovviamente le specifiche possono variare a seconda dei casi specifici, e in particolare se ci si interfaccia al database flanginec i dati rimarranno gli stessi ma sarà necessario specificare l’indirizzo corretto del database. Figura 8.8: Esempio di file sql per la connessione a un database di punti in JGrass. 119 8. Database ambientali Come mostrato in Figura 8.8 è importantissima la sintassi con cui vengono inseriti i dati. Si fa notare che ogni campo del file deve essere aperto con i simboli <> e chiuso con < / >. Le query da database Le interrogazioni che vengono inviate al database per estrarre i dati desiderati sono chiamate query. Per scrivere le query è necessario rispettare parametri e sintassi specifiche. In SQuirreL è possibile eseguire query direttamente usando l’editor grafico. Questo permette di controllare i risultati della query ed eventualmente modificarla per ottenere i parametri necessari alle successive elaborazioni. In Figura 8.9 e Figura 8.10 sono riportate due query d’esempio. Nella prima vengono estratti tutti i campi dalla tabella datizinco, mentre nella seconda vengono estratti solo i campi est e nord dalla stessa tabella. Figura 8.9: Esempio query al database di punti in SQuirreL. 120 8. Database ambientali Figura 8.10: Esempio di file query al database di punti in SQuirreL. La query che è stata scritta nel file di JGrass è quella riportata in Figura 8.11 che estrae dal database i campi east, north, elevation e sample di punti che hanno un valore di concentrazione di zinco al suolo (colonna sample) maggiore di 500. 121 8. Database ambientali Figura 8.11: Query al database di punti in SQuirreL. Ora sarà possibile visualizzare i dati contenuti nel database corrispondente alla configurazione salvata nel file sql direttamente da JGrass. Per fare questo è necessario visualizzare i dati come punti (sites) ovvero dal menu di visualizzazione scegliere l’icona . La procedura di visualizzazione integrata nel comando prevede che nella prima schermata sia possibile scegliere la fonte dei dati da visualizzare, in questo caso (Figura 8.12) si devono visualizzare dati nel formato sqldatabase. 122 8. Database ambientali Figura 8.12: Prima schermata della procedura di visualizzazione di dati puntuali da un database PostgreSQL. Cliccando sul pulsante Avanti si possono scegliere le mappe da visualizzare. Ognuna di queste mappe corrisponde ad una query specifica al database che è contenuta nel file sql corrispondente. Per questo nell’interfaccia grafica in realtà non compaiono i nomi delle mappe di punti bensı̀ i nomi dei file contenuti nella cartella sql (Figura 8.13). Figura 8.13: Prima schermata della procedura di visualizzazione di dati puntuali da un database PostgreSQL. Dopo aver selezionato la mappa desiderata premere sul pulsante Avanti e successivamente Fine per visualizzare i punti. A questo punto tutte le operazioni che si possono effettuare sui sites propri di JGrass si possono fare anche sui punti estratti da un database. In particolare molto interessanti sono le elaborazioni geostatistiche di cui si parlerà nei paragrafi successivi. 123 8. Database ambientali 8.2.2 Interfaccia per database spaziali Un database spaziale, come già anticipato sopra, contiene tutte le informazioni sulla geometria e sul sistema di riferimento e proiezione cartografica. In esso possono essere contenute potenzialmente tutte le features che un GIS può supportare: punti, linee, polilinee e poligoni. Anche per la connessione di JGrass a un database di questo tipo è necessario scrivere un file di impostazione della connessione. Paradossalmente questo file, ovvero questo tipo di connessione è molto più semplice di quella usata per i dati puntuali perchè nei database spaziali le tabelle contengono tutte le informazioni necessarie per la visualizzazione. Si tratta quindi di aggiungere una fonte di dati che è denominata Postgis. Postgis fa riferimento alla visualizzazione di dati in un database di tipo PostgreSQL con estensione spaziale Postgis. Prima di passare al lato JGrass vengono visualizzati i dati del database spaziale di Spearfish. Come si può osservare in Figura 8.14 in questo caso oltre alle tabelle contenenti i dati (roads, archsites, bugsites e streams) sono presenti delle altre tabelle che contengono le informazioni spaziali: • geometry column: contiene la descrizione della geometria in formato binario di tutte le forme geometriche contenute nel database. Ad essa fanno riferimento tutti i dati del campo the geom delle tabelle di dati. • spatial ref sys: contiene le informazioni sul sistema di riferimento e proiezione cartografica Figura 8.14: Visualizzazione dei dati del database spaziale Spearfish in SQuirreL. In ogni tabella dati sono contenuti, oltre ai dati propri della tabella, anche dei campi che fanno riferimento alla geometria e alla posizione di ogni entità. 124 8. Database ambientali Il database di prova FRIDA Un esempio di connessione a database spaziale contenente entità di diverso tipo come punti, linee e poligoni è il set di dati vettoriali libero chiamato FRIDA che si riferisce alla città di Osnabrueck in Germania. Per poter visualizzare questi dati è necessario creare un nuovo ambiente di lavoro che faccia riferimento a una location nel sistema di riferimento e proiezione cartografica del set di dati. Il meccanismo di creazione di un nuovo ambiente di lavoro è analogo a quello riportato nel Paragrafo 6.1: Creazione di una location. I dati vengono forniti nel sistema di riferimento UTM con datum Potsdam ed ellissoide di bessel. Cercando tra le opzioni contenute nel file EPSG si trova che il codice di riferimento è: 31463: DHDN / 3 - degree Gauss zone 3 Questa operazione non è però del tutto sufficiente per definire tutti i parametri della proiezione. Nella schermata successiva è necessario inserire i dati dei limiti della regione e del parametro towgs84 che vengono riportati di seguito. • towgs84: 606.0,23.0,413.0 • north: 5801000 • south: 5787000 • east: 3445000 • west: 3427000 Per finalizzare la connessione con il database è ora necessario scrivere il file di configurazione che dovrà essere messo nella cartella relativa alla location. Il file deve avere estensione xml e, in particolare, nome postgis.xml. La sintassi di creazione del file è la stessa di quella utilizzata per la creazione del file di connessione ai database di punti, ma in questo caso, Figura 8.15, deve contenere solamente l’informazione di connessione al database: • denominazione del database • nome del database sul server • indirizzo del server “host” • utente • password 125 8. Database ambientali Figura 8.15: Esempio del file di connessione di JGrass al database spaziale Osnabrueck. Dopo la creazione del file di connessione si può avviare JGrass e procedere con la visualizzazione dei dati. In JGrass deve essere aperto l’ambiente di lavoro FRIDA creato precedentemente. Per visualizzare i dati da PostgreSQL - Postgis si utilizza l’icona apposita dal menu Visualizza . Se non è stato scritto il file di configurazione della connessione verrà visualizzato un messaggio di errore (Figura 8.16) dove viene indicato il percorso e il nome del file di configurazione necessario per la definizione del database. Figura 8.16: Messaggio d’errore di connessione al database spaziale con Postgis. Se invece il file postgis.xml è stato creato correttamente e salvato nella cartella della location di JGrass si potrà procedere con la visualizzazione dei dati. La finestra per la visualizzazione dei dati da Postgis è molto diversa da quelle standard di visualizzazione di JGrass e permette di scegliere il database al quale connettersi e la tabella da visualizzare (Figura 8.17). 126 8. Database ambientali Figura 8.17: Prima finestra per la visualizzazione di dati dal database spaziale con Postgis. Scorrendo il menu a tendina dei due campi, quello contenente l’elenco dei database disponibili per quell’ambiente di lavoro e quello con la lista delle tabelle contenute, si può scegliere la mappa da visualizzare (Figura 8.18). Figura 8.18: Finestra per la scelta della mappa da visualizzare dall’elenco dei dati del database spaziale. In questo caso si possono visualizzare poligoni, linee e punti come riportato in Figura 8.19 Figura 8.19: Visualizzazione dei dati del database spaziale FRIDA. 127 8. Database ambientali 128 9 Uso della console JGrass, nato originariamente come interfaccia grafica di GRASS, si propone di rendere acces- sibili agli utenti meno esperti comandi e algoritmi molto avanzati sviluppati in ambito scientifico. JGrass d’altra parte è quindi anche uno strumento di sviluppo di moduli in ambiente accademico e quindi uno strumento usato per fare ricerca. Una delle particolarità di JGrass è quella di conciliare queste due tendenze fornendo sia un ambiente completamente grafico che un ambiente di “programmazione” non grafico. La console è uno strumento che permette di eseguire un comando o una sequenza di comandi inserendo a mano tutti i dati necessari per l’elaborazione. La console di JGrass per il momento non è cosı̀ ben strutturata come quella di GRASS ma consente di avere: • completamento del nome del comando • visualizzazione dei parametri necessari per l’elaborazione • esecuzione di script per l’elaborazione in serie di diversi comandi 9.1 Esecuzione in console dei comandi di JGrass Per visualizzare la console l’icona da selezionare è e l’interfaccia di JGrass si modifica visualizzando la console nella parte inferiore del monitor. La console cosı̀ come è mostrata in Figura 9.1 è nella sua configurazione standard. Figura 9.1: La console di JGrass in configurazione standard. La console contiene: • prompt: ovvero una scritta che definische lo stato di attesa di inserimento dati nella console • comando per ingrandire la console • comando per rimpicciolire la console • comando per visualizzare tutte le informazioni dell’esecuzione dei comandi 9. Uso della console Quando in console appare la scritta JGrass: significa che è possibile inserire un nuovo comando, altrimenti la console è occupata e sarà necessario attendere la fine dell’esecuzione del comando scritto precedentemente per poterne digitare uno nuovo. Se si desidera eseguire un comando da console è necessario sapere, anche solo indicativamente, il nome del comando da eseguire. ANche nella console di JGrass esiste infatti la possibilità di completare il comando automaticamente digitando le prime lettere del comando e premendo il tasto tab. Per esempio se si prova a cercare il comando d.rast è possibile scrivere solamente le prime due lettere e poi premere il tasto tab una volta per visualizzare la lista dei comandi di JGrass che cominciano per le lettere digitate. Ovviamente più lettere si digitano e meno saranno i comandi visualizzati. Per eseguire un comando da console è necessario inserire tutti i parametri del comando (quelli che normalmente vengono inseriti da interfaccia grafica) preceduti da una stringa che ne definisce il tipo. Per capire cosa si deve scrivere a console per eseguire il comando è sufficiente scrivere il comando seguito dalla stringa –usage. Per esempio per quanto il comando h.slope: JGrass: h.slope --usage premere invio Usage: h.slope [--quiet] [--verbose] [--version] [--usage] --pit <pit> --pitmapset <pitmapset> [--pitformat <pitformat>] --flow <flow> --flowmapset <flowmapset> [--flowformat <flowformat>] --slope <slope> [--slopemapset <slopemapset>] [--slopeformat <slopeformat>] [--usegui] Il comando fa parte dei comandi di analisi geomorfologica integrati in JGrass e richiede come input la mappa del modello digitale del terreno depittato (pit), la mappa delle direzioni di drenaggio (flow) e da come output la mappa delle pendenze (slope). Le opzioni che sono contenute tra parentesi quadrate non sono indispensabili per l’esecuzione del comando e possono essere omesse, mentre quelle che non sono contenute da parentesi quadrate devono essere specificate. Alcune opzioni sono particolari e sono presenti per tutti i comandi: • –quiet che permette di seguire l’evoluzione del comando, in realtà in JGrass non è un’opzione molto significativa • –verbose che mostra tutto l’evoluzione del comando e i messaggi interni a console, questa opzione si può attivare anche con l’icona delle informazioni relative alla console • –usage che permette di visualizzare la stringa delle opzioni riportata sopra 130 9. Uso della console • –usegui che fa partire l’interfaccia grafica direttamente da console, è l’analogo di cliccare sull’icona del comando. Per eseguire il comando h.slope da console si dovrà scrivere quindi: h.slope --pit pit --pitmapset trentino --flow flow --flowmapset trentino --slope slope --slopemapset trentino e per visualizzare la mappa creata il comando: d.rast slope 9.2 Scripting JGrass utilizza come linguaggio di scripting il linguaggio Java Beanshell. Il linguaggio BeanShell è un ambiente di interpretazione del linguaggio Java piccolo, libero e utilizzabile all’interno di sistemi più complessi con le caratteristiche di un linguaggio di scripting a oggetti ma scritto in Java. Il pregio maggiore di Beanshell è che in esso si possono eseguire sia comandi ed espressioni standard di Java che utilizzare comandi e sintassi di shell scripting. Gli scripts in JGrass si devono creare all’esterno del programma in files di testo con apposita formattazione. Per la loro esecuzione è sufficiente che essi vengano salvati nella sotto cartella etc/scripts/ della cartella di installazione di JGrass con l’estensione .bsh. Nella cartella scripts con l’installazione di JGrass viene automaticamente creato uno script di prova dal nome test.bsh. In questo script di esempio sono stati inseriti i comandi base per cui si potrebbe voler utilizzare uno script e in particolare la sintassi per eseguire i comandi propri di JGrass. In uno script è possibile inserire anche cicli per la lettura o scrittura di mappe e opportuni filtri per estrarre solo alcuni elementi da una lista di oggetti in memoria. Esempi di sintassi di script di JGrass sono riportati di seguito: Scrittura di stringhe di testo a video I comandi da eseguire sono caratterizzati dalla sigla jg prima del comando di scripting, per esempio quello che in linguaggio bash classico è il comando echo in JGrass diventa jg.echo. Attraverso questo comando si possono visualizzare delle stringhe di testo direttamente nella console di JGrass. La sintassi da seguire è la seguente: jg.echo(Testo che si desidera visualizzare a video); è estremamente importante inserire il punto e virgola alla fine di ogni stringa di comando come richiesto dal linguaggio Beanshell. 131 9. Uso della console Utilizzo dei comandi di JGrass Si possono utilizzare i moduli utilizzati nella programmazione base di JGrass per avere delle informazioni più specifiche per esempio informazioni sull’ambiente di lavoro, come ad esempio il nome del mapset e della location di lavoro: jg.getLocation().getName() e inserire il risultato in una variabile definita nello script: mapsetNames =jg.getMapsetNames() Per leggere le mappe contenute all’interno del mapset si può utilizzare un ciclo del tipo di quello riportato di seguito: String[] mapnames; inizializzazione della variabile mapnames for(int i = 0; i ¡ mapsetNames.length; i++) definizione del ciclo { jg.echo(mapset: + mapsetNames[i]); scrittura a video del nome del mapset mapnames = jg.getMapnames(mapsetNames[i]); salvataggio nella variabile mapnames del nome della mappa i-esima for(int j = 0; j ¡ mapnames.length; j++ ) } jg.echo( map + j + : + mapnames[j]); scrittura a video del nome delle mappe } } Per conoscere i limiti della regione attiva si utilizza il comando: active = jg.getActiveRegion(); inizializzata la variabile active è possibile accedere singolarmente a ciascun limite della regione. Se si desidera conoscere il limite nord della regione attiva quindi sarà sufficiente scrivere: north = active.getNorth(); Per eseguire un comando di JGrass è necessario importare il comando nello script. Per esempio per il comando d.rast: import bsh.commands.d.rast.*; e successivamente eseguirlo seguendo la sintassi che si utilizzerebbe per eseguire il comando da console con due accorgimenti: 132 9. Uso della console • il comando verrà sostituito da un nuovo comando che si ottiene sostituendo nel nome del comando originale al punto il trattino basso e aggiungendo la parola .invoke. • al comando seguiranno gli argomenti necessari in fase di esecuzione • in coda si devono sempre inserire le due parole this.interpreter, this.namespace Per visualizzare la prima mappa contenuta nel mapset si dovrà scrivere dunque: import bsh.commands.d.rast.*; d rast.invoke(mapnames[0], this.interpreter, this.namespace); 9.3 Esecuzione in console dei comandi di GRASS I comandi nativi di GRASS che non sono ancora stati dotati di interfaccia grafica possono essere eseguiti direttamente da console. La modalità di esecuzione è la stessa usata in GRASS, se non è nota la sintassi è sufficiente scrivere il comando e premere invio e verrà visualizzata in console la pagina del manuale di GRASS relativa. Purtroppo per i comandi nativi di GRASS non funziona il completamento del comando, è quindi necessario conoscerne almeno il nome e digitarlo a video per l’esecuzione diretta o la visualizzazione della pagina di auito. In JGrass si possono eseguire tutti i comandi di GRASS che non richiedono interazione con l’utente e questo significa che possono essere eseguiti tutti i comandi sia raster che vettoriali di cui si possono inserire i parametri necessari già al momento della definizione del comando. Una lista di tutti i comandi di GRASS. L’output del comando se sono mappe vengono create nel mapset presente, se invece si trata di una serie di informazioni a video, queste vengono visualizzate nella console. Potenzialmente tutti i comandi di GRASS possono essere eseguiti in JGrass, ancora non sono stati testati e suddivisi i comandi definiti interattivi e quelli che invece non lo sono e non sono stati provati i comandi per la verifica del risultato. Nel paragrafo successivo è riportato l’elenco completo dei comandi di GRASS1 con la spiegazione di massima del comando. Purtroppo in questa sede, non essendo ancora stato completato il testing e la verifica, i comandi sono stati riportati in lingua inglese. Sono sicuramente tutti attivi per gli utenti di JGrass nei sistemi operativi Linux e MacOsX, mentre potranno mancarne alcuni (in particolare quelli dedicati all’analisi dei dati satellitari identificati con la letterea i.* ) per gli utenti Windows. Per controllare se effettivamente 1 http://www.gdf-hannover.de/media.php?id=7&lg=en 133 9. Uso della console ci sia il comando nel sistema operativo Windows è sufficiente cercare l’eseguibile nella cartella grasscommands dell’installazione di JGrass. 9.4 Indice dei comandi GRASS The following index is a complete list of all GRASS-commands. An up-to-date list can be found at the official GRASS-GIS website at under the section manuals. g.* commands: Command g.access g.ask g.copy g.filename g.findfile g.gisenv g.list g.manual g.mapset g.mapsets g.mlist g.mremove g.parser g.proj g.region g.remove g.rename g.setproj g.tempfile g.version Description Prompts the user for the names of GRASS data base files. Copies available data files in the user’s current mapset search path and location to the appropriate element directories under the user’s current mapset. Prints GRASS data base file names. Searches for GRASS data base files and sets variables for the shell. Outputs the user’s current GRASS variable settings. Lists available GRASS data base files of the user-specified data type to standard output. display the HTML man pages of GRASS Change current mapset Modifies the user’s current mapset search path, affecting the user’s access to data existing under the other GRASS mapsets in the current location. Apply regular expressions and wildcards to g.list Apply regular expressions and wildcards to g.remove g.parser Prints and manipulates GRASS projection information files. Program to manage the boundary definitions for the geographic region. Removes data base element files from the user’s current mapset. To rename data base element files in the user’s current mapset. g.setproj Creates a temporary file and prints the file name. Displays version and copyright information. 134 9. Uso della console i.* commands: Command i.cca i.class i.cluster Description Canonical components analysis (cca) program for image processing. i.class An imagery function that generates spectral signatures for land cover types in an image using a clustering algorithm. The resulting signature file is used as input for i.maxlik, to generate an unsupervised image classification. Prosecution on next side Prosecution Command i.fft i.fusion.brovey i.gensig i.gensigset i.group i.his.rgb i.ifft i.image.mosaic i.maxlik i.oif i.ortho.photo i.pca i.points i.rectify i.rgb.his i.smap i.spectral i.target i.tasscap i.vpoints i.zc Description Fast Fourier Transform (FFT) for image processing. Brovey transform to merge multispectral and high-res panchromatic channels Generates statistics for i.maxlik from raster map layer. Generate statistics for i.smap from raster map layer. Creates and edits groups and subgroups of imagery files. Hue-intensity-saturation (his) to red-green-blue (rgb) raster map color transformation function. Inverse Fast Fourier Transform (ifft) for image processing. Mosaics up to 4 images and extends colormap; creates map *.mosaic An imagery function that classifies the cell spectral reflectances in imagery data based on the spectral signature information generated by either i.cluster, i.class, or i.gensig. Calculates Optimum-Index-Factor table for LANDSAT TM bands 1-5, & 7 i.ortho.photo Principal components analysis (pca) program for image processing. Rectifies an image by computing a coordinate transformation for each pixel in the image based on the control points Red-green-blue (rgb) to hue-intensity-saturation (his) raster map color transformation function. Performs contextual image classification using sequential maximum a posteriori (SMAP) estimation. displays spectral response at user specified locations in images Targets an imagery group to a GRASS location and mapset. Tasseled Cap (Kauth Thomas) transformation for LANDSAT-TM data i.vpoints Zero-crossing “edge detection” raster function for image processing. 135 9. Uso della console p.* commands: Command p.out.vrml Description module to output GRASS data in the format of Virtual Reality Modeling Language (VRML) pg.* commands: Command pg.postgisdb Description pg.postgisdb photo.* commands: Command photo.2image photo.2target photo.camera photo.init photo.rectify Description photo.2image photo.2target photo.init photo.rectify ps.* commands: Command ps.map Description Hardcopy PostScript map output utility. 136 9. Uso della console r.* commands: Command r.average r.basins.fill r.bilinear r.blend r.buffer r.cats r.circle r.clump r.coin r.colors r.composite r.compress r.contour r.cost Description Finds the average of values in a cover map within areas assigned the same category value in a user-specified base map. Generates a raster map layer showing watershed subbasins. Bilinear interpolation utility for raster map layers. Blends color components of 2 raster maps by a given % first map’ Creates a raster map layer showing buffer zones surrounding cells that contain non-NULL category values. Prints category values and labels associated with user-specified raster map layers. Creates a raster map containing concentric rings around a given point. Recategorizes data in a raster map layer by grouping cells that form physically discrete areas into unique categories. Tabulates the mutual occurrence (coincidence) of categories for two raster map layers. Creates/Modifies the color table associated with a raster map layer. Combines red, green and blue map layers into a single composite map layer. Compresses and decompresses raster files. Produces a GRASS binary vector map of specified contours from GRASS raster map layer. Outputs a raster map layer showing the cumulative cost of moving between different geographic locations on an input raster map layer whose cell category values represent cost. Prosecution on next side 137 9. Uso della console Prosecution Command r.covar r.cross r.describe r.digit r.distance r.drain r.fill.dir r.fillnulls r.flow r.grow r.his r.in.arc r.in.ascii r.in.bin r.in.gdal r.in.gridatb r.in.mat r.in.poly r.in.srtm r.info r.kappa r.le.patch r.le.pixel r.le.setup r.le.trace r.los r.mapcalc r.mapcalculator r.median r.mfilter Description Outputs a covariance/correlation matrix for user-specified raster map layer(s). Creates a cross product of the category values from multiple raster map layers. Prints terse list of category values found in a raster map layer. r.digit Locates the closest points between objects in two raster maps. Traces a flow through an elevation model on a raster map layer. Filters and generates a depressionless elevation map and a flow direction map from a given elevation layer Fills no-data areas in raster maps using v.surf.rst splines interpolation Construction of slope curves (flowlines), flowpath lengths, and flowline densities (upslope areas) from a raster digital elevation model(DEM). Generates a raster map layerwith contiguous areas grown by one cell. Generates red, green and blue raster map layers combining hue, intensity, and saturation (his) values from user-specified input raster map layers. Convert an ESRI ARC/INFO ascii raster file (GRID) into a (binary) raster map layer. Convert an ASCII raster text file into a (binary) raster map layer. Import a binary raster file into a GRASS raster map layer. Import GDAL supported raster file into a binary raster map layer. Imports GRIDATB.FOR map file (TOPMODEL) into GRASS raster map Import a binary MAT-File(v4) to a GRASS raster. Create raster maps from ascii polygon/line data files in the current directory. Import SRTM90 HGT files into GRASS Outputs basic information about a user-specified raster map layer. Calculate error matrix and kappa parameter for accuracy assessment of classification result. r.le.setup Line-of-sight raster analysis program. r.mapcalc r.mapcalculator - Calculates new raster map from r.mapcalc expression Finds the median of values in a cover map within areas assigned the same category value in a user-specified base map. Raster file matrix filter. Prosecution on next side 138 9. Uso della console Prosecution Command r.mode r.neighbors r.null r.out.arc r.out.ascii r.out.bin r.out.gdal r.out.gridatb r.out.mat r.out.mpeg r.out.png r.out.pov r.out.ppm r.out.ppm3 r.out.tiff r.param.scale r.patch r.plane r.profile r.proj r.quant r.random.cells r.random r.random.surface r.reclass.area r.reclass r.recode Description Finds the mode of values in a cover map within areas assigned the same category value in a user-specified base map. Makes each cell category value a function of the category values assigned to the cells around it, and stores new cell values in an output raster map layer. The function of r.null is to explicitly create the NULL-value bitmap file. Converts a raster map layer into an ESRI ARCGRID file. Converts a raster map layer into an ASCII text file. Exports a GRASS raster to a binary array. Exports GRASS raster data into various formats (requires GDAL) Exports GRASS raster map to GRIDATB.FOR map file (TOPMODEL) Exports a GRASS raster to a binary MAT-File. Raster File Series to MPEG Conversion Program. Export GRASS raster as non-georeferenced PNG image format. Converts a raster map layer into a height-field file for POVRAY. Converts a GRASS raster file to a PPM image file at the pixel resolution of the CURRENTLY DEFINED REGION. Converts 3 GRASS raster layers (R,G,B) to a PPM image file at the pixel resolution of the CURRENTLY DEFINED REGION. Exports a GRASS raster file to a 8/24bit TIFF image file at the pixel resolution of the currently defined region. Extracts terrain parameters from a DEM. Uses a multi-scalar approach by taking fitting quadratic parameters to any size window (via least squares) Creates a composite raster map layer by using known category values from one (or more) map layer(s) to fill in areas of “no data” in another map layer. Creates raster plane map given dip (inclination), aspect (azimuth), and one point Outputs the raster map layer values lying on user-defined line(s). Re-project a raster map from one location to the current location. This routine produces the quantization file for a floating-point map. Generates random cell values with spatial dependence. Creates a raster map layer and vector point map containing randomly located sites. Generates random surface(s) with spatial dependence. Reclasses a raster map greater or less than user specified area size (in hectares) Creates a new map layer whose category values are based upon the user’s reclassification of categories in an existing raster map layer. Recode raster maps. Prosecution on next side 139 9. Uso della console Prosecution Command r.region r.regression.line r.report r.resamp.rst r.resample r.rescale.eq r.rescale r.ros r.series r.shaded.relief r.slope.aspect r.spread r.spreadpath r.statistics r.stats r.sum r.sun r.sunmask r.surf.area r.surf.contour Description Sets the boundary definitions for a raster map. Calculates linear regression from two raster maps: y = a + b*x Reports statistics for raster map layers. Reinterpolates and computes topographic analysis from input raster file to a new raster file (possibly with different resolution) using regularized spline with tension and smoothing. GRASS raster map layer data resampling capability. Rescales histogram equalized the range of categoryvalues in a raster map layer. Rescales the range of category values in a raster map layer. Generates three, or four raster map layers showing 1) the base (perpendicular) rate of spread (ROS), 2) the maximum (forward) ROS, 3) the direction of the maximum ROS, and optionally 4) the maximum potential spotting distance. Makes each output cell value a function of the values assigned to the corresponding cells in the input raster map layers. Creates shaded relief map from an elevation map (DEM). Generates raster map layers of slope, aspect, curvatures and partial derivatives from a raster map layer of true elevation values. Aspect is calculated counterclockwise from east. Simulates elliptically anisotropic spread on a graphics window and generates a raster map of the cumulative time of spread, given raster maps containing the rates of spread (ROS), the ROS directions and the spread origins. It optionally produces raster maps to contain backlink UTM coordinates for tracing spread paths. Recursively traces the least cost path backwards to cells from which the cumulative cost was determined. Category or object oriented statistics. Generates area statistics for raster map layers. Sums up the raster cell values. Computes direct (beam), diffuse and reflected solar irradiation raster maps for given day, latitude, surface and atmospheric conditions. Solar parameters (e.g. sunrise, sunset times, declination, extraterrestrial irradiance, daylight length) are saved in a local text file. Alternatively, a local time can be specified to compute solar incidence angle and/or irradiance raster maps. The shadowing effect of the topography is optionally incorporated. Calculates cast shadow areas from sun position and DEM. Either A: exact sun position is specified, or B: date/time to calculate the sun position by r.sunmask itself. Surface area estimation for rasters. Surface generation program from rasterized contours. Prosecution on next side 140 9. Uso della console Prosecution Command r.surf.fractal r.surf.gauss r.surf.idw r.surf.random r.terraflow r.texture r.thin r.timestamp r.to.vect r.topidx r.topmodel r.transect r.univar r.univar.sh r.water.outlet r.watershed r.what Description GRASS module to create a fractal surface of a given fractal dimension. Uses spectral synthesis method. Can create intermediate layers showing the build up of different spectral coefficients (see Saupe, pp.106-107 for an example of this). Use this module to generate naturally looking synthetical elevation models (DEM). GRASS module to produce a raster map layer of gaussian deviates whose mean and standard deviation can be expressed by the user. It uses a gaussian random number generator. Surface interpolation utility for raster map layers. Produces a raster map layer of uniform random deviates whose range can be expressed by the user. Flow computation for massive grids (Float version). Generate images with textural features from a raster map Thins non-zero cells that denote linear features in a raster map layer. Print/add/remove a timestamp for a raster map. Converts a raster map into a vector map layer. Creates topographic index, ln(a/tan(beta)), map from elevation map. Simulates TOPMODEL which is physically based hydrologic model. Outputs raster map layer values lying along user defined transect line(s). Calculates univariate statistics from the non-null cells of a raster map. calculates univariate statistics from a GRASS raster map Watershed basin creation program. Watershed basin analysis program. Queries raster map layers on their category values and category labels. 141 9. Uso della console r3.* commands: Command r3.in.ascii r3.in.v5d r3.info r3.mapcalc r3.mask r3.mkdspf r3.null r3.out.ascii r3.out.v5d r3.timestamp Description Convert a 3D ASCII raster text file into a (binary) 3D raster map layer import of 3-dimensional Vis5D files (i.e. the v5d file with 1 variable and 1 time step) Outputs basic information about a user-specified 3D raster map layer. r3.mapcalc Establishes or removes the current working 3D raster mask. Explicitly create the 3D NULL-value bitmap file. Converts a 3D raster map layer into an ASCII text file Export of GRASS 3D raster file to 3-dimensional Vis5D file. print/add/remove a timestamp for a 3D raster map v.* commands: Command v.buffer v.build.all v.build v.build.polylines v.category v.clean v.convert.all v.convert v.db.connect v.db.select v.delaunay v.digit v.distance v.external v.extract v.hull v.in.ascii Description Create a buffer around features of given type (areas must contain centroid). v.build.all Creates topology for GRASS vector data. Build polylines from lines. Attach, delete or report vector categories to map geometry. Toolset to clean vector topology. Imports older versions of GRASS vectors. prints/sets DB connection for a vector map Print vector attributes Create a Delaunay triangulation from an input vector of points or centroids. Find the nearest element in vector ’to’ for elements in vector ’from’. Various information about this relation may be uploaded to the attribute table of input vector ’from’ or printed to stdout. Create a new vector as a read-only link to OGR layer. Available drivers: Selects vector objects from an existing vector map and creates a new map containing only the selected objects. If ’list’, ’file’ and ’where’ options are not specified, all features of given type and layer are extracted, categories are not changed in that case. Uses a GRASS vector points map to produce a convex hull vector map Convert GRASS ascii file or points file to binary vector. Prosecution on next side 142 9. Uso della console Prosecution Command v.in.db v.in.e00 v.in.garmin v.in.ogr v.in.region v.in.sites.all v.in.sites v.info v.kcv v.kernel v.label v.mkgrid v.neighbors v.net.alloc v.net v.net.iso v.net.path v.net.salesman v.net.steiner v.normal v.out.ascii v.out.dxf v.out.ogr v.out.pov v.overlay v.patch Description Create new vector (points) from database table containing coordinates. Import of E00 file into a vector map. Upload Waypoints, Routes, and Tracks from a Garmin GPS receiver into a vector map. Convert OGR vectors to GRASS. Create a new vector from current region. Converts a GRASS site lists file into a vector file. Outputs basic information about a user-specified vector map layer. Randomly partition points into test/train sets. Generates a raster density map from vector points data using a moving 2D isotropic Gaussian kernel or optionally generates a vector density map on vector network with a 1D kernel Create paint labels for GRASS vector file and attached attributes. Creates a (binary) GRASS vector map of a user-defined grid. Makes each cell value a function of the attribute values assigned to the vector points or centroids around it, and stores new cell values in an output raster map layer. Allocate subnets for nearest centres (direction from centre). Centre node must be opened (costs >= 0). Costs of centre node are used in calculation Network maintenance. Split net to bands between cost isolines (direction from centre). Centre node must be opened (costs >= 0). Costs of centre node are used in calculation Find shortest path on vector network. Reads start/end pointsfrom standard input in 2 possible formats: Create a cycle connecting given nodes (Traveling salesman problem). Note that TSP is NP-hard, heuristic algorithm is used by this module and created cycle may be sub optimal. Create Steiner tree for the network and given terminals. Note that ’Minimum Steiner Tree’ problem is NP-hard and heuristic algorithm is used in this module so the result may be sub optimal. tests for normality for points. Convert a GRASS binary vector map to a GRASS ASCII vector map Exports GRASS vector files to DXF file format. Convert to OGR format. Convert to POV-Ray format, GRASS x,y,z -> POV-Ray x,z,y Overlay 2 vector maps. Creates a new binary vector map layer by combining other binary vector map layers. Prosecution on next side 143 9. Uso della console Prosecution Command v.perturb v.proj v.qcount v.random v.reclass v.sample v.segment v.select v.surf.idw v.surf.rst v.to.db v.to.points v.to.rast v.transform v.type v.univar v.vol.rst v.voronoi v.what.rast Description Random location perturbations of GRASS sites. Allows projection conversion of vector files. indices for quadrat counts of sites lists Randomly generate a GRASS vector points map. Changes vector category values for an existing vector map according to results of SQL queries or a value in attribute table column. Sample a raster file at site locations. Create points/segments from input lines, and positions read from stdin in format: Select features from ainput by features from binput. Surface interpolation from sites data by Inverse Distance Squared Weighting. Interpolation and topographic analysis from given point or contour data in vector format to GRASS floating point raster format using regularized spline with tension. Load values from vector to database. In uploaded/printed category values ’-1’ is used for ’no category’ and ’null’/’-’ if category cannot be found or multiple categories were found. Create points along input lines. Converts a binary GRASS vector map layer into a GRASS raster map layer. Transforms an vector map layer from one coordinate system into another coordinate system. Change the type of geometry elements. Calculates univariate statistics for attribute. Variance and standard deviation is calculated only for points. Interpolates point data to a G3D grid volume using regularized spline with tension (RST) algorithm Create a Delaunay triangulation from an input vector of points or centroids. Upload raster values at positions of vector points to the table. 144 10 Elaborazione statistica In JGrass sono stati implementati alcuni comandi di elaborazione statistica attraverso la connessione al programma Open Source di calcolo statistico R. Questi comandi sono contenuti in: • r.in.lidar: relativamente all’importazione di triplette di dati e alla loro interpolazione per la creazione di un raster partendo dalle informazioni contenute nella colonna z delle triplette. • g.statistics: contiene alcuni comandi per l’elaborazione statistica di mappe di punti 10.1 Elaborazioni statistiche di mappe di punti Il comando g.statistics permette di visualizzare report statistici, contenenti i valori significativi di un set di dati come la media, la mediana, la varianza e i valori massimi e minimi, di calcolare e graficare le funzioni densità di probabilità e la funzione densità di probabilità cumulata. L’algoritmo sicuramente più importante in questo set di comandi è comunque il comando che permette di effettuare l’interpolazione statistica attraverso l’uso dell’interpolatore geostatistico kriging. L’interfaccia grafica del comando è riportata in Figura 10.1 Figura 10.1: Interfaccia grafica del comando g.statistics. I parametri che si possono scegliere sono: 1. parametri da calcolare (nella parte superiore della finestra) 10. Elaborazione statistica 2. mappa dei punti di cui fare le elaborazioni 3. numero di righe da visualizzare nei report grafici 4. colonna da considerare nei calcoli statistici nel caso siano stati specificati più attributi 5. numero di intervalli in cui dividere l’intervallo completo dei dati per la visualizzazione della funzione densità di probabilità Come anticipato il comando lavora solamente con mappe di punti importati in JGrass come sites. Per fare questo è sufficiente scrivere un file nel formato descritto di seguito e salvarlo nella cartella site lists del mapset di lavoro. Il file non deve avere estensione e deve essere scritto con un’intestazione contenente il nome del file e la descrizione di quanto contenuto e poi una sezione interamente dedicata ai dati relativi ai punti: coordinate x - y e i diversi attributi. Il separatore delle colonne è il — come mostrato di seguito: name|siti flanginec desc|Cd nel suolo 1639705|5114025 |#8.2 @stazione1 1639355|5114005 |#2.4 @stazione2 1639485|5113725 |#3.0 @stazione3 1638745|5113585 |#1.6 @stazione4 1639105|5113505 |#4.2 @stazione5 Per visualizzare una mappa di punti è sufficiente scegliere l’opzione Visualizza una mappa di punti dal menu Visualizza o cliccare sull’icona . Apparirà la schermata riportata in Figura 10.2 dove è possibile scegliere il formato della mappa di punti da visualizzare. Nel caso generale si scelga il formato di GRASS in quanto gli altri formati sono in fase di sostituzione con gli appositi comandi. Cliccare sul tasto Avanti per proseguire. 146 10. Elaborazione statistica Figura 10.2: Prima finestra del comando per visualizzare mappe di punti in JGrass. La seconda interfaccia (Figura 10.3) permette la scelta del mapset in cui cercare i dati da visualizzare, nell’esempio si seleziona il mapset trentino che è il mapset corrente in cui è stato salvato il file contenente le informazioni puntuali. Cliccando su Avanti si prosegue con l’operazione. Figura 10.3: Seconda finestra del comando per visualizzare mappe di punti in JGrass. La finestra successiva permette di scegliere le opzioni di visualizzazione dei punti, il simbolo usato, il colore e la dimensione dei punti. Selezionare la configurazione desiderata e premere su Avanti per terminare l’operazione. 147 10. Elaborazione statistica Figura 10.4: Terza finestra del comando per visualizzare mappe di punti in JGrass. La mappa di punti risultante, sovrapposta al dem è riportata in Figura 10.5 dove è stato cambiato anche il colore di visualizzazione dei punti ricorrendo all’opzione proprietà nel tasto destro del mouse sul nome della mappa nella sezione legenda. Figura 10.5: Visualizzazione di una mappa di punti del formato GRASS in JGrass. Data la mappa di punti è possibile eseguire il comando g.statistics nelle sue diverse opzioni. 148 10. Elaborazione statistica 10.2 Report statistico del set di dati È possibile visualizzare un report statistico, oltre ad una selezione dei dati contenuti nel file (specificando il numero di righe da visualizzare nell’interfaccia grafica), selezionando le prime due opzioni del comando (Figura 10.6). Figura 10.6: Interfaccia grafica del comando g.statistics di JGrass per la visualizzazione del report statistico. Nel cosiddetto report statistico sono riportati i dati più importanti del set di dati contenuti nella mappa (Figura 10.7): • numero di dati • valore minimo • 25o percentile • mediana • media • 75o percentile • massimo • varianza 149 10. Elaborazione statistica Figura 10.7: Report html del comando g.statistics di JGrass per la visualizzazione del report statistico. 10.3 Funzione densità di probabilità Per disegnare la funzione densità di probabilità dei dati contenuti nella mappa, che per definizione è una funzione che permette di esprimere la probabilità che il valore assunto dalla variabile casuale Z ricada nell’intervallo di estremi z e (z+dz) attraverso la relazione: P (z min Z min z + dz) = f (z) · · · dz L’opzione da scegliere in questo caso è la terza tra quelle presentate (Figura 10.8). 150 10. Elaborazione statistica Figura 10.8: Interfaccia grafica del comando g.statistics di JGrass per la della funzione densità di probabilità. Il risultato è riportato in Figura 10.9. Figura 10.9: Risultato del comando g.statistics di JGrass per la della funzione densità di probabilità. 10.4 Funzione densità di probabilità cumulata È stato implementato anche l’algoritmo per il calcolo della funzione densità di probabilità cumulata e della sua interpolazione attraverso la funzione normale standard (modello gaussiano). Per definizione la funzione densitè di probabilità cumulata è la funzione che esprime la porzione di dati che non eccede un valore assegnato di soglia z. F (z) = P (Z ≤ z) 151 10. Elaborazione statistica Figura 10.10: Risultato del comando g.statistics di JGrass per la della funzione densità di probabilità cumulata. 10.5 Interpolazione geostatistica con l’interpolatore kriging In JGrass è stato implementato, tramite la connessione con R l’algoritmo di interpolazione dei dati puntuali kriging. Il kriging è un interpolatore geostatistico, ovvero un algoritmo di regressione lineare ai minimi quadrati che partendo da valori noti permette di calcolare il valore della variabile negli altri punti di una griglia regolare. La correlazione spaziale dei dati viene descritta sulla base delle misure disponibili attraverso modelli specifici che permettono di stimare il valore di un attributo continuo in punti non di misura. Tale stima avviene attraverso l’interpolazione dei dati disponibili. Per dare un’idea della correlazione esistente tra le misure disponibili, o meglio della variabilità spaziale dei dati, si utilizza il concetto di semivariogramma. Il semivariogramma solitamente presenta un andamento crescente con la distanza, che riflette la diminuzione della correlazione all’aumentare della distanza tra le coppie di punti. Esso rappresenta la differenza media del valore della superficie interpolante tra due punti di distanza h. Esistono vari tipi di semivariogramma che ben si possono adattare a quello reale, i principali sono riportati in Figura 10.11. Se si utilizza il comando g.statistics per l’interpolazione di un set di dati puntuali si dovrà innanzitutto creare il semivariogramma dei dati reali e poi cercare il modello che meglio si adatta al caso. Una volta definito il modello da usare come semivariogramma si potrà procedere con l’interpolazione dei dati. Quindi selezionando l’opzione interpolazione geostatistica e la mappa di punti da interpolare sarà sufficiente proseguire cliccando su ok. A questo punto apparirà la schermata di Figura 10.12 dove viene chiesto di inserire il numero di intervalli da usare e la distanza 152 10. Elaborazione statistica Figura 10.11: Tabella contenente le formule e la tipologia di impiego dei principali tipi di semivariogramma usati abitualmente in geostatistica. massima di correlazione tra i punti espressa in metri. Premendo il tasto ok si potrà procedere con i calcoli. Figura 10.12: Seconda finestra della procedura per l’interpolazione geostatistica dei dati puntuali. Al termine dell’elaborazione una finestra di avviso avvertià del numero di bins che sono stati effettivamente creati e della distanza massima tra i punti trovata. È molto importante che tutti gli intervalli in cui si decide di dividere il set di dati (Figura 10.12) siano effettivamente creati, altrimenti si incorre in un errore nella procedura e si perde la connessione con R. Figura 10.13: Messaggio di avvertimento per la suddivisione del set di dati in intervalli per l’interpolazione geostatistica. Per continuare basterà confermare questa suddivisione dei dati e verrà visualizzato il grafico di 153 10. Elaborazione statistica Figura 10.14, ovvero il semivariogramma calcolato con i dati reali. Figura 10.14: Variogramma dei dati contenuti nella mappa di punti. Per continuare con l’operazione è sufficiente chiudere la finestra del grafico e comaprirà una schermata che permette di scegliere il modello per il semivariogramma creato e i parametri per rappresentarlo al meglio (Figura 10.15). In questo modo verrà assegnata una formula matematica al semivariogramma che verrà poi utilizzata nell’interpolazione vera e propria. Figura 10.15: Schermata per la scelta del modello di semivariogramma da utilizzare per descrivere al meglio il semivariogramma reale e definizione dei parametri per il modello gaussiano. 154 10. Elaborazione statistica Figura 10.16: Grafico contenente la sovrapposizione del semivariogramma reale e di quello ottenuto dal modello gaussiano con i parametri definiti nell’interfaccia di Figura 10.15. Per proseguire sarà sufficiente chiudere la finestra del grafico e apparirà un messaggio che chiede all’utente se si vuole proseguire con l’interpolazione oppure se si vogliono ridefinire i parametri del modello per una miglior rappresentazione dei dati reali. Figura 10.17: Messaggio di avvertimento per la prosecuzione della procedura di interpolazione e la creazione della mappa interpolata partendo dalla mappa di punti. Lo stesso procedimento, inserendo dei dati diversi in base a quanto riportato in Figura 10.18 si può ripetere con il modello esponenziale. In questo caso la differenza tra i due modelli non è molto marcata, ma nella maggior parte dei casi un modello rappresenta meglio i dati dell’altro. 155 10. Elaborazione statistica Figura 10.18: Schema per la valutazione dei coefficienti del modello di semivariogramma. Inserendo il nome della mappa di output e confermando con ok si procede all’interpolazione vera e propria. Verranno create due mappe, una con i valori interpolati su una griglia regolare e l’altra con la stima dell’errore, sempre facendo riferimento alla griglia regolare. La stima dell’errore è molto utile per la validazione della procedura di interpolazione, quanto più la stima dell’errore si avvicina al valore del valore interpolato quanto meno significativo è il valore interpolato e quindi tanto meno valida l’interpolazione. Certo che la stima dell’errore è tanto maggiore quanto più ci si allontana dai valori misurati. Al termine dell’operazione un messaggio avvertirà l’utente della creazione delle due mappe. Figura 10.19: Messaggio finale della procedura di interpolazione contenente l’indicazione del nome delle due mappe create. Se la procedura di scelta del modello di variogramma non fosse andata a buon fine o i parametri scelti non dovessero essere ottimali a video si visualizzerebbe una riga orizzontale o verticale (Figura 10.20). Il semivariogramma cosı̀ ottenuto, chiaramente, non è utilizzabile nell’interpolazione con il kriging. 156 10. Elaborazione statistica Figura 10.20: Grafico contenente la sovrapposizione del semivariogramma reale e di quello ottenuto dal modello esponenziale con dei parametri sbagliati. Le due mappe avranno dei valori validi in tutta la regione attiva, per ritagliarle sulla superficie di una mappa di dimensioni minori di quelle della regione attiva sarà sufficiente usare il comando r.mapcalc. Figura 10.21: Visualizzazione della mappa dei punti interpolata con il kriging. 157 10. Elaborazione statistica 158 11 Stampa La stampa è da sempre uno dei principali problemi dei GIS Open Source. Stampare il risultato delle operazioni è di fondamentale importanza per la divulgazione e la presentazione dei risultati. In JGrass è in fase di sviluppo un comodo editor di stampa che permette di stampare le mappe che sono visualizzate sullo schermo sui diversi formati di carta. È anche possibile predisporre una tavola con un template predefinito, oppure disegnare e inserire nuovi oggetti e del testo. Prima di procedere alla descrizione delle operazioni che si devono fare in fase di stampa è importante precisare che allo stato dell’arte il modulo per la stampa non è ottimizzato. Questo non significa che non funzioni o che sia del tutto inutilizzabile, ma solamente si consiglia di fare stampe solamente su formati A4 o al massimo A3 perchè la stampa “in grande” delle mappe non è di buona qualità. La parte di modulo in fase di sviluppo prevede la possibilità di ridisegnare la mappa alla scala del foglio in modo da avere sempre la massima risoluzione possibile per la stampa. Purtroppo allo stato attuale non è stato ancora possibile sviluppare completamente l’algoritmo. Per la stampa è sufficiente cliccare sull’icona rappresentativa del comando e si aprirà l’editor di stampa (Figura 11.1). L’editor è diviso in due parti, sulla sinistra ci sono tutte le opzioni di stampa, mentre sulla destra viene visualizzato il foglio cosı̀ come sarà stampato. Figura 11.1: Apertura dell’editor di stampa di JGrass. 11. Stampa Tra le opzioni di stampa si trovano: • draw: che permette di inserire nel foglio disegni come linee, rettangoli, ellissi e immagini esterne (che si possono utilizzare nei cartigli delle tavole di progetto, ad esempio); • text: per definire il tipo di carattere e le impostazioni del testo; • maps and legends: per inserire le mappe visualizzate a video e la relativa legenda (opzione per il momento non attiva); • utils: per modificare le impostazioni degli oggetti disegnati (permette di gestire le sovrapposizioni e di cancellare uno o più oggetti disegnati); • zoom: per ingrandimenti del foglio necessari per la definizione degli oggetti; • templates: per caricare o salvare un template di stampa (Paragrafo 4.3); • format: per scegliere il formato e l’orientazione del foglio; • printer selection: che per il momento permette solamente la stampa su file pdf; • submit: per avviare la procedura di stampa o annullare il lavoro creato. Per inserire un oggetto nel foglio di stampa è sufficiente selezionare l’oggetto, o l’immagine, dal menu e poi selezionare l’area che l’oggetto dovrà occupare sul foglio, con il mouse. Per oggetto si intendono sia le entità come linee e poligoni, sia il testo e la mappa visualizzata a video. Un esempio di stampa di una mappa con la relativa legenda, presa dalla visualizzazione in JGrass è riportato in Figura 11.2. Attenzione: per alcune configurazioni particolari di sistema operativo e scheda video la visualizzazione delle mappe sul foglio di stampa può non funzionare e dare a video una finestra tutta nera. Si precisa che la stampa di cartine in JGrass avviene alla stessa scala di visualizzazione a video. È quindi necessario fissare la scala di visualizzazione che verrà poi riportata sui fogli. 160 11. Stampa Figura 11.2: Apertura dell’editor di stampa di JGrass. 161 11. Stampa 162 12 Disinstallazione Per disinstallare il programma è sufficiente cliccare sull’icona di disinstallazione e si avvierà la procedura guidata per la disinstallazione che darà anche la possibilità di eliminare la cartella contenente JGrass dal filesystem. Un’altra opzione per disinstallare il programma è quella di eliminare direttamente la cartella dove si era precedetemente installato JGrass. JGrass infatti viene installato completamente nella cartella di installazione e non ha bisogno di altri file nelle cartelle di sistema. Naturalmente per gli utenti più esperti è anche possibile disinstallare il programma da console eseguendo il file jar di disinstallazione contenuto nella cartella Uninstaller dove è installato JGrass. 12. Disinstallazione 164