2. EDITOR DI SCRIPTING DI JGRASS 3. EDITOR DI SCRIPTING DI JGRASS Per configurare l'ambiente di scripting necessario personalizzare l'intestazione del file con il percorso al MAPSET di calcolo ed all'installazione dei comandi di GRASS. MAPSET e GISBASE sono le uniche variabili necessarie e devono essere decommentate da//# MAPSET = ... //# GISBASE = ... a # MAPSET = ... # GISBASE = ... 4. EDITOR DI SCRIPTING DI JGRASS # MAPSET= ... # GISBASE = ... 5. EDITOR DI SCRIPTING DI JGRASS Il file di scripting di default di JGrass viene creato nella home dell'utente ed chiamatodefault.jgrasse viene salvato automaticamente, anche possibile personalizzare il nome del file. Nell'ambiente di scripting possibile eseguire i comandi di JGrass e di GRASS ed utilizzare un linguaggio di programmazione completo come Groovy o Beanshell per automatizzare le procedure. 6. EDITOR DI SCRIPTING DI JGRASS
7. EDITOR DI SCRIPTING DI JGRASS
8. EDITOR DI SCRIPTING DI JGRASS
9. EDITOR DI SCRIPTING DI JGRASS 10. EDITOR DI SCRIPTING DI JGRASS 11. EDITOR DI SCRIPTING DI JGRASS
12. IMPORT DEI DATI IN JGRASS
13. IMPORT DEI DATI IN JGRASS
14. IMPORT DEI DATI IN JGRASS Definiamo una variabile che contenga il percorso alla cartella contenente i file compressi e quelli scompattati. Sia fa notare l'impostazione di MAPSET e GISBASE: # MAPSET = /home/moovida/TMP/testlocation/testmapset/ # GISBASE = /usr/lib/grass/ def cartellaFileZippati =new File("/home/moovida/data/1x1zip") 15. IMPORT DEI DATI IN JGRASS Controlliamo il contenuto della cartella: cartellaFileZippati.eachFile{ file -> println file } Il risultato: /home/moovida/data/1x1zip/dtm000358_WGS.zip /home/moovida/data/1x1zip/dtm000359_WGS.zip /home/moovida/data/1x1zip/dtm000360_WGS.zip /home/moovida/data/1x1zip/dtm000358_WGS.ASC /home/moovida/data/1x1zip/dtm000359_WGS.ASC /home/moovida/data/1x1zip/dtm000360_WGS.ASC Total run time: 2765 ms 16. IMPORT DEI DATI IN JGRASS Modifichiamo il ciclo sui file per elencare solo i file che ci interessano: cartellaFileZippati.eachFile{ file -> if (file.name.endsWith("ASC") ) println file } Il risultato: /home/moovida/data/1x1zip/dtm000358_WGS.ASC /home/moovida/data/1x1zip/dtm000359_WGS.ASC /home/moovida/data/1x1zip/dtm000360_WGS.ASC Total run time: 937 ms 17. IMPORT DEI DATI IN JGRASS Creiamo una lista dei file che ci interessano, in modo da poterla usare dopo: // creo una lista vuota deflistFile= []; // la popolo con i percorsi dei file che voglio importare cartellaFileZippati.eachFile{ file -> if ( file.name.endsWith("ASC")) { listFile println percorso } Il risultato: /home/moovida/data/1x1zip/dtm000358_WGS.ASC /home/moovida/data/1x1zip/dtm000359_WGS.ASC /home/moovida/data/1x1zip/dtm000360_WGS.ASC 19. IMPORT DEI DATI IN JGRASS Adesso proviamo a estrarre dal nome del file il nome che vogliamo dare alla mappa importata. Ad esempio possiamo rimuovere la parte finale:_WGS.ASC // creiamo una lista vuota per i nomi delle mappe importate def listFile = [] deflistNames= [] cartellaFileZippati.eachFile{ file -> if ( file.name.endsWith("ASC")) { listFile printlni } secondo la quale vengono stampate in output 6 righe riportanti l'indice del ciclo, da 0 a 5: 0, 1, 2, 3, 4, 5 22. IMPORT DEI DATI IN JGRASS Siamo pronti a tentare di applicare la sintassi appena vista al nostro caso: // chiediamo alla lista il numero di valori contenuti def numeroMappe = listFile.size // eseguiamo un ciclo stampando in contemporanea sia percorsi che nomi mappe (0..numeroMappe-1).each { i-> println "Importo " + listFile[i] + " e creo " + listNames[i] } 23. IMPORT DEI DATI IN JGRASS
24. IMPORT DEI DATI IN JGRASS Ora siamo pronti per importare i dati.Utilizzeremo il comandor.in.gdaldei comandi nativi di GRASS. Diamo una controllata alla sintassi del comando: grass r.in.gdal --help Se al momento dell'esecuzione vi sono parti selezionate nell'editor, vengono eseguite solamente quelle. Quindi selezionando solo la riga appena inserita ed eseguendo, tutto il resto viene ignorato e ci viene stampata in output il messaggio di aiuto dir.in.gdal . 25. IMPORT DEI DATI IN JGRASS Usage: r.in.gdal[ -o efk]input=string output=name[band=value] [target=string] [title="phrase"] [location=string] [ --overwrite ] Flags: -oOverride projection (use location's projection) -eExtend location extents based on new dataset -fList supported formats then exit -kKeep band numbers instead of using band color names --oForce overwrite of output files Parameters: inputRaster file to be imported outputName for output raster map bandBand to select (default is all bands) targetName of location to read projection from for GCPs transformation titleTitle for resultant raster map locationName for new location to create 26. LO SCRIPT COMPLETO # MAPSET = /home/moovida/TMP/testlocation/testmapset/ # GISBASE = /usr/lib/grass/ def cartellaFileZippati = new File("/home/moovida/data/1x1zip"); def listFile = [] def listNames = [] cartellaFileZippati.eachFile{ file -> if ( file.name.endsWith("ASC")) { listFile
Top Related