!rm map.png
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
--------------------------------------------------------------------------- FileNotFoundError Traceback (most recent call last) Cell In[2], line 1 ----> 1 gisbase = subprocess.check_output(['grass','--config','path']).decode().strip() 3 os.environ['GISBASE'] = gisbase 4 sys.path.append(os.path.join(gisbase,'etc','python')) File /usr/lib/python3.12/subprocess.py:466, in check_output(timeout, *popenargs, **kwargs) 463 empty = b'' 464 kwargs['input'] = empty --> 466 return run(*popenargs, stdout=PIPE, timeout=timeout, check=True, 467 **kwargs).stdout File /usr/lib/python3.12/subprocess.py:548, in run(input, capture_output, timeout, check, *popenargs, **kwargs) 545 kwargs['stdout'] = PIPE 546 kwargs['stderr'] = PIPE --> 548 with Popen(*popenargs, **kwargs) as process: 549 try: 550 stdout, stderr = process.communicate(input, timeout=timeout) File /usr/lib/python3.12/subprocess.py:1026, in Popen.__init__(self, args, bufsize, executable, stdin, stdout, stderr, preexec_fn, close_fds, shell, cwd, env, universal_newlines, startupinfo, creationflags, restore_signals, start_new_session, pass_fds, user, group, extra_groups, encoding, errors, text, umask, pipesize, process_group) 1022 if self.text_mode: 1023 self.stderr = io.TextIOWrapper(self.stderr, 1024 encoding=encoding, errors=errors) -> 1026 self._execute_child(args, executable, preexec_fn, close_fds, 1027 pass_fds, cwd, env, 1028 startupinfo, creationflags, shell, 1029 p2cread, p2cwrite, 1030 c2pread, c2pwrite, 1031 errread, errwrite, 1032 restore_signals, 1033 gid, gids, uid, umask, 1034 start_new_session, process_group) 1035 except: 1036 # Cleanup if the child failed starting. 1037 for f in filter(None, (self.stdin, self.stdout, self.stderr)): File /usr/lib/python3.12/subprocess.py:1955, in Popen._execute_child(self, args, executable, preexec_fn, close_fds, pass_fds, cwd, env, startupinfo, creationflags, shell, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, restore_signals, gid, gids, uid, umask, start_new_session, process_group) 1953 err_msg = os.strerror(errno_num) 1954 if err_filename is not None: -> 1955 raise child_exception_type(errno_num, err_msg, err_filename) 1956 else: 1957 raise child_exception_type(errno_num, err_msg) FileNotFoundError: [Errno 2] No such file or directory: 'grass'
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.gisenv')
{'GISDBASE': "'/home/bk/grassdata';", 'LOCATION_NAME': "'world_latlong_wgs84';", 'MAPSET': "'PERMANENT';"}
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.erase')
gs.run_command('d.vect', map="wriver", color="50:255:255")
Image(filename='map.png')
gs.run_command('d.vect', map='wrailway', color="180,180,100")
Image(filename='map.png')
gs.run_command('d.rast', map="desert2015", values = '1,2,3,4,5')
Image(filename="map.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")
gs.run_command('d.rast', map="xx_map")
Image(filename="map.png")
gs.run_command('d.vect', map="wriver", color="50:255:255")
Image(filename='map.png')
gs.run_command('d.vect', map='wrailway', color='180:180:40')
Image(filename="map.png")