GRASS GIS / Skriptování / Spuštění skriptu

Z FreeGIS portál
Přejít na: navigace, hledání

Stránky související s tématem programování či skriptování.

Stránka obsahuje různé postupy spuštění uživatelských skriptů v systému GRASS GIS.

Ve wxGUI

Skript lze v prostředí wxGUI spustit buď z menu File → Launch script

Spuštění skriptu z wxGUI
Spuštění skriptu z wxGUI, výpis

anebo z příkazové řádky, viz níže.

Spuštění skriptu z příkazové řádky wxGUI

Z příkazové řádky terminálu jako tzv. batch job

chmod +x ~/bin/grass/ndvi.py
# aktivovat mod BATCH
export GRASS_BATCH_JOB=~/bin/grass/ndvi.py
# spustit GRASS s cestou 'grassdatabanka/lokace/mapset', napr.
grass70 /opt/grassdata/zod/landamar
Cleaning up temporary files...
Starting GRASS GIS...
Executing '/home/martin/bin/grass/ndvi.py' ...
Pocitam NDVI...
Reklasifikuji data...
+-----------------------------------------------------------------------------+
|                         RASTER MAP CATEGORY REPORT                          |
|LOCATION: zod                                        Thu Oct 17 17:20:17 2013|
|-----------------------------------------------------------------------------|
|          north:     -957500    east: -763855.0602047                        |
|REGION    south:    -1007318    west:         -830529                        |
|          res:   29.99277544    res:      29.99277544                        |
|-----------------------------------------------------------------------------|
|MASK: none                                                                   |
|-----------------------------------------------------------------------------|
|MAP: Reclass of temp1 in landamar (r_ndvi in landamar)                       |
|-----------------------------------------------------------------------------|
|               Category Information                |   cell|   %  |          |
|#|description                                      |  count| cover|  hectares|
|-----------------------------------------------------------------------------|
|1|bez vegetace, vodni plochy . . . . . . . . . . . | 146375|  3.96| 13,167.41|
|2|plochy s minimalni vegetaci. . . . . . . . . . . | 820825| 22.23| 73,838.67|
|3|plochy pokryte vegetaci. . . . . . . . . . . . . |2642337| 71.56|237,695.81|
|*|no data. . . . . . . . . . . . . . . . . . . . . |  82866|  2.24|   7454.35|
|-----------------------------------------------------------------------------|
|TOTAL                                              |3692403|100.00|332,156.23|
+-----------------------------------------------------------------------------+
Execution of '/home/martin/bin/grass/ndvi.py' finished.
Cleaning up temporary files...
# deaktivovat mod BATCH
unset GRASS_BATCH_JOB

Inicializace v rámci skriptu

Tento postup lze aplikovat pouze pro skripty v jazyku Python. Skript je potřeba doplnit o inicializaci systému GRASS, viz níže.

 1 #!/usr/bin/env python
 2 
 3 import os 
 4 import sys
 5 
 6 # nastaveni cesty k systemu GRASS
 7 gisbase = os.environ['GISBASE'] = "/usr/local/lib/grass-7.0svn"
 8 
 9 # nastaveni adresare s daty, lokace a mapsetu
10 gisdbase = os.path.join("/opt", "grassdata")
11 location = "zod"
12 mapset   = "landamar"
13 
14 # nahrani GRASS Python knihoven
15 sys.path.append(os.path.join(os.environ["GISBASE"], "etc", "python"))
16 import grass.script as grass
17 import grass.script.setup as gsetup
18  
19 # inicializace systemu GRASS
20 gsetup.init(gisbase,
21             gisdbase, location, mapset)
22 
23 # zde pokracuje skript...

Příklad spuštění z příkazové řádky terminálu:

~/bin/grass/ndvi.py
Pocitam NDVI...
Reklasifikuji data...
+-----------------------------------------------------------------------------+
|                         RASTER MAP CATEGORY REPORT                          |
|LOCATION: zod                                        Thu Oct 17 17:20:17 2013|
|-----------------------------------------------------------------------------|
|          north:     -957500    east: -763855.0602047                        |
|REGION    south:    -1007318    west:         -830529                        |
|          res:   29.99277544    res:      29.99277544                        |
|-----------------------------------------------------------------------------|
|MASK: none                                                                   |
|-----------------------------------------------------------------------------|
|MAP: Reclass of temp1 in landamar (r_ndvi in landamar)                       |
|-----------------------------------------------------------------------------|
|               Category Information                |   cell|   %  |          |
|#|description                                      |  count| cover|  hectares|
|-----------------------------------------------------------------------------|
|1|bez vegetace, vodni plochy . . . . . . . . . . . | 146375|  3.96| 13,167.41|
|2|plochy s minimalni vegetaci. . . . . . . . . . . | 820825| 22.23| 73,838.67|
|3|plochy pokryte vegetaci. . . . . . . . . . . . . |2642337| 71.56|237,695.81|
|*|no data. . . . . . . . . . . . . . . . . . . . . |  82866|  2.24|   7454.35|
|-----------------------------------------------------------------------------|
|TOTAL                                              |3692403|100.00|332,156.23|
+-----------------------------------------------------------------------------+