>>> from env_helper import info; info()
页面更新时间: 2023-05-13 20:01:18
运行环境:
    Linux发行版本: Debian GNU/Linux 12 (bookworm)
    操作系统内核: Linux-6.1.0-8-amd64-x86_64-with-glibc2.36
    Python版本: 3.11.2
>>> !rm map.png

13.1. Call GRASS Command via Python

>>> import os
>>> import sys
>>> import subprocess
>>> from IPython.display import Image

Initialize for GRASS in Python:

>>> gisbase = subprocess.check_output(['grass','--config','path']).decode().strip()
>>>
>>> os.environ['GISBASE'] = gisbase
>>> sys.path.append(os.path.join(gisbase,'etc','python'))
>>>
>>> import grass.script as gs
>>> import grass.script.setup as gsetup

Setup for GRASSs Project

>>> gisdbase = '/home/bk/grassdata'
>>> location = 'world_latlong_wgs84'
>>> mapset   = "PERMANENT"
>>>
>>> # os.environ['GISBASE'] = gisbase
>>>
>>> rcfile = gsetup.init(gisdbase,
>>>                      location = location,
>>>                      mapset = mapset)
>>>
>>> os.environ['GRASS_FONT']='sans'
>>> os.environ['GRASS_OVERWRITE']='1'
>>> gs.set_raise_on_error(True)
>>> gs.set_capture_stderr(True)
>>> os.environ['GRASS_RENDER_IMMEDIATE']='cairo'
>>> os.environ['GRASS_RENDER_FILE_READ']='TRUE'
>>> os.environ['GRASS_LEGEND_FILE']='legend.txt'
>>> gs.parse_command('g.region', vect="wriver", flags='fg')
{'projection': '3',
 'zone': '0',
 'n': '73.007080078125 s=-53.9294242858887 w=-164.870590209961 e=161.701919555664 nsres=0.000269494528571185 ewres=0.000269494625964787 rows=471017 cols=1211796 cells=570776516532'}
>>> gs.run_command('d.vect', map="wriver", color="50:255:255")
>>> Image(filename='map.png')
_images/sec10_begin_9_0.png
>>> gs.run_command('d.vect', map='wrailway', color="180,180,40")
>>> Image(filename='map.png')
_images/sec10_begin_11_0.png
>>> gs.run_command('d.rast', map="desert2015", values  = '1,2,3,4,5')
>>> Image(filename="map.png")
_images/sec10_begin_12_0.png
>>> gs.parse_command('g.region', raster="desert2015", flags='pg')
{'projection': '3',
 'zone': '0',
 'n': '52.1493581997222',
 's': '41.5808585452778',
 'w': '87.7355791911111',
 'e': '119.9331752675',
 'nsres': '0.000269494585231652',
 'ewres': '0.000269494585235188',
 'rows': '39216',
 'cols': '119474',
 'cells': '4685292384'}
>>> gs.run_command('d.rast', map="desert2015", values  = '1,2,3,4,5')
>>> Image(filename="map.png")
_images/sec10_begin_14_0.png
>>> gs.run_command('d.rast', map="xx_map")
>>> Image(filename="map.png")
_images/sec10_begin_15_0.png
>>> gs.run_command('d.vect', map="wriver", color="50:255:255")
>>> Image(filename='map.png')
_images/sec10_begin_16_0.png
>>> gs.run_command('d.vect', map='wrailway', color='180:180:40')
>>> Image(filename="map.png")
_images/sec10_begin_17_0.png