[GRASS-user] mapcalc problem in python script!!
Johannes Radinger
JRadinger at gmx.at
Thu Feb 3 04:32:33 EST 2011
Hello again,
just to give you some more information on my problem:
I am running exactly following script:
---------------------------------------------------------------
import sys
import os
import atexit
import grass.script as grass
import grass.script.setup as gsetup
# set mapset/location/dbase/gisbase
gisbase = os.environ['GISBASE'] = "C:/Program Files (x86)/GRASS 6.5"
sys.path.append(os.path.join(os.environ['GISBASE'], "etc", "python"))
gisrc = gsetup.init('C:/Program Files (x86)/GRASS 6.5', 'C:\Users\XY\Documents\Grass GIS', 'Treene_Location', 'Treene')
def cleanup():
pass
def main():
grass.mapcalc("$upstream_shreve = ${upstream_part}+${shreve}",
upstream_shreve = options['upstream_shreve'],
upstream_part = options['upstream_part'],
shreve = options['shreve'])
return 0
if __name__ == "__main__":
options, flags = grass.parser()
atexit.register(cleanup)
sys.exit(main())
-------------------------------------------------------------
and I get following error back from python:
-------------------------------------------------------------
Traceback (most recent call last):
File "C:/Users/Johannes Radinger/Documents/Pyhton Scripts/test3.py", line 40, in <module>
sys.exit(main())
File "C:/Users/Johannes Radinger/Documents/Pyhton Scripts/test3.py", line 32, in main
upstream_shreve = options['upstream_shreve'],
KeyError: 'upstream_shreve'
------------------------------------------------------------
hopefully you can help me why there is an error...
cheers
Johannes
>
> On 02/01/2011 03:28 PM, Johannes Radinger wrote:
> > Hello,
> >
> > I am running GRASS GIS 6.5 and want to run a python script
> > including a mapcaluculator-expression of a simple formula:
> >
> > A=if(B,C)
> >
> > grass.mapcalc("$upstream_shreve = if(${upstream_part},${shreve})",
> > upstream_shreve = options['upstream_shreve'],
> > upstream_part = options['upstream_part'],
> > shreve = options['shreve'])
> >
> > but that isn't working... I don't know whats excaclty the problem....
>
> I don't know anything about python, but I had a similar problem under R,
> where the problem was escaping of the formula - the formula needed to be
> enclosed in " in grass.
> To diagnose: can you see the command executed under GRASS? Does it work
> if you paste this into GRASS?
>
> Cheers,
>
> Rainer
hello,
I still don't know whats the exact problem. And it is not directly possible to paste it into GRASS as the options[] command is processed by
the g.parser module in the end of my script. That's sofar as I understand...
I am not sure if something is wrong with ' and " or with the options-commands. According to the manual (http://grass.osgeo.org/wiki/GRASS_and_Python#Example_for_embedding_r.mapcalc_.28map_algebra.29)
it should work that way...
hopefully someone can help me...
cheers
johannes
>
>
> >
> > hopefully you can help me
> >
> > thanks
> > Johannes
>
>
> - --
> Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation
> Biology, UCT), Dipl. Phys. (Germany)
>
> Centre of Excellence for Invasion Biology
> Natural Sciences Building
> Office Suite 2039
> Stellenbosch University
> Main Campus, Merriman Avenue
> Stellenbosch
> South Africa
>
> Tel: +33 - (0)9 53 10 27 44
> Cell: +27 - (0)8 39 47 90 42
> Fax (SA): +27 - (0)8 65 16 27 82
> Fax (D) : +49 - (0)3 21 21 25 22 44
> Fax (FR): +33 - (0)9 58 10 27 44
> email: Rainer at krugs.de
>
--
NEU: FreePhone - kostenlos mobil telefonieren und surfen!
Jetzt informieren: http://www.gmx.net/de/go/freephone
_______________________________________________
grass-user mailing list
grass-user at lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/grass-user
--
GMX DSL Doppel-Flat ab 19,99 Euro/mtl.! Jetzt mit
gratis Handy-Flat! http://portal.gmx.net/de/go/dsl
More information about the grass-user
mailing list