[GRASS-user] GRASS 7.0 Running Scripts (.\GRASS GIS 7.0.0\scripts)
Rob Parsons
jrobparsons at gmail.com
Sun Mar 1 16:37:59 PST 2015
Hello,
How do I run scripts located in C:\Program Files (x86)\GRASS GIS
7.0.0\scripts?
I am learning GRASS 7.0.0 on Windows 7 by converting some GRASS 6.4 shell
scripts to GRASS 7 Python scripts (import grass.script as grass) and GRASS
7 PyGRASS scripts (from grass.pygrass.modules import Module).
My installation is working fine. I can manually run the commands (from a
shell script) in the "Command console" window of the "Layer Manager". For
example, I can enter "g.region swwake_30m -p" in the "Command prompt" area
and get the following results:
Sun Mar 01 12:32:30
2015)
g.region swwake_30m
-p
projection: 99 (Lambert Conformal Conic)
zone: 0
datum: nad83
ellipsoid: a=6378137 es=0.006694380022900787
north: 228500
south: 215000
west: 630000
east: 645000
nsres: 30
ewres: 30
rows: 450
cols: 500
cells: 225000
(Sun Mar 01 12:32:31 2015) Command finished (0
sec)
I am using the "Pythonwin" IDE to develop the scripts (C:\Program Files
(x86)\GRASS GIS 7.0.0\Python27\lib\site-packages\pythonwin\Pythonwin.exe).
In the "GRASS GIS 7.0.0 GUI" Command Prompt window I type "pythonwin" and
the IDE starts up.
I have spent several days trying to understand how to create GRASS Python
scripts and GRASS PyGRASS scripts from the online documentation(
http://grasswiki.osgeo.org/wiki/GRASS_and_Python) and by studying the
script samples (C:\Program Files (x86)\GRASS GIS 7.0.0\scripts). I have not
been successful in getting example code to run but I am still working
through the documentation.
But, I should be able to run scripts located in C:\Program Files
(x86)\GRASS GIS 7.0.0\scripts.
Correct?
1. If I open .\scripts\d.what.rast.py in the Pythonwin IDE and try to run
it, I get this output:
OSError error(9): The handle is invalid
Traceback (most recent call last):
File "C:\Program Files (x86)\GRASS GIS
7.0.0\Python27\lib\site-packages\pythonwin\pywin\framework\scriptutils.py",
line 325, in RunScript
exec codeObject in __main__.__dict__
File
"C:\Users\Rob\Documents\grassscripts\pygrass\make_raster_using_mapcalc.py",
line 8, in <module>
g.message("Filter elevation map by a threshold...")
File "C:\Program Files (x86)\GRASS GIS
7.0.0\etc\python\grass\pygrass\modules\shortcuts.py", line 46, in
__getattr__
return self.cls('%s.%s' % (self.prefix, name.replace('_', '.')))
File "C:\Program Files (x86)\GRASS GIS
7.0.0\etc\python\grass\pygrass\modules\interface\module.py", line 498, in
__init__
raise GrassError(str_err % self.name)
GrassError: Error running: `g.message --interface-description`.
Traceback (most recent call last):
File "C:\Program Files (x86)\GRASS GIS
7.0.0\Python27\lib\site-packages\pythonwin\pywin\framework\scriptutils.py",
line 325, in RunScript
exec codeObject in __main__.__dict__
File "C:\Program Files (x86)\GRASS GIS 7.0.0\scripts\d.what.rast.py",
line 45, in <module>
main()
File "C:\Program Files (x86)\GRASS GIS 7.0.0\scripts\d.what.rast.py",
line 30, in main
options, flags = gcore.parser()
File "C:\Program Files (x86)\GRASS GIS
7.0.0\etc\python\grass\script\core.py", line 680, in parser
p = subprocess.Popen([prog, '-n'] + argv, stdout=subprocess.PIPE)
File "C:\Program Files (x86)\GRASS GIS 7.0.0\Python27\lib\subprocess.py",
line 703, in __init__
errread, errwrite) = self._get_handles(stdin, stdout, stderr)
File "C:\Program Files (x86)\GRASS GIS 7.0.0\Python27\lib\subprocess.py",
line 839, in _get_handles
p2cread = self._make_inheritable(p2cread)
File "C:\Program Files (x86)\GRASS GIS 7.0.0\Python27\lib\subprocess.py",
line 878, in _make_inheritable
_subprocess.DUPLICATE_SAME_ACCESS)
WindowsError: [Error 6] The handle is invalid
Traceback (most recent call last):
File "C:\Program Files (x86)\GRASS GIS
7.0.0\Python27\lib\site-packages\pythonwin\pywin\framework\scriptutils.py",
line 325, in RunScript
exec codeObject in __main__.__dict__
File "C:\Program Files (x86)\GRASS GIS 7.0.0\scripts\d.what.rast.py",
line 45, in <module>
main()
File "C:\Program Files (x86)\GRASS GIS 7.0.0\scripts\d.what.rast.py",
line 30, in main
options, flags = gcore.parser()
File "C:\Program Files (x86)\GRASS GIS
7.0.0\etc\python\grass\script\core.py", line 680, in parser
p = subprocess.Popen([prog, '-n'] + argv, stdout=subprocess.PIPE)
File "C:\Program Files (x86)\GRASS GIS 7.0.0\Python27\lib\subprocess.py",
line 703, in __init__
errread, errwrite) = self._get_handles(stdin, stdout, stderr)
File "C:\Program Files (x86)\GRASS GIS 7.0.0\Python27\lib\subprocess.py",
line 839, in _get_handles
p2cread = self._make_inheritable(p2cread)
File "C:\Program Files (x86)\GRASS GIS 7.0.0\Python27\lib\subprocess.py",
line 878, in _make_inheritable
_subprocess.DUPLICATE_SAME_ACCESS)
WindowsError: [Error 6] The handle is invalid
>>>
2. If I go to the "Python shell" tab on the "Layer Manager" and do File ->
Launch Script and browse to .\scripts\d.what.rast.py, I get this output:
(Sun Mar 01 12:32:31 2015) Command finished (0
sec)
Launching script 'C:\Program Files (x86)\GRASS GIS 7.0.0\scripts\
d.what.rast.py'...
Traceback (most recent call last):
File "C:\Program Files (x86)\GRASS GIS
7.0.0\gui\wxpython\gui_core\forms.py", line 718, in OnRun
gcmd.Command(cmd)
File "C:\Program Files (x86)\GRASS GIS
7.0.0\gui\wxpython\core\gcmd.py", line 397, in __init__
_("Error: ") + self.__GetError()))
core.gcmd
.
GException
:
Execution failed: 'd.what.rast map=elevation'
Details:
Error:
Any ideas on what might be going on here?
Rob Parsons
Raleigh NC
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/grass-user/attachments/20150301/b41b2959/attachment.html>
More information about the grass-user
mailing list