-------- Original-Nachricht --------
Datum: Wed, 9 Feb 2011 01:37:43 +0000
Von: Glynn Clements <glynn@gclements.plus.com>
An:
CC: grass-user@lists.osgeo.org
Betreff: Re: [GRASS-user] mapcalc problem in python script!!
Johannes Radinger wrote:
> > > Somehow I didn't your answer via email, I just found it at
> > > http://permalink.gmane.org/gmane.comp.gis.grass.user/38530
> >
> > For whatever reason, GMX doesn't like my IP address, and bounces my
> > emails. The problem is compounded by a "feature" of the mailing list
> > software which (by default) doesn't send messages to any subscriber
> > whose email address appears in the To or CC fields (on the assumption
> > that they'll already get a copy). You can (and probably should)
> > disable this feature in your preferences (via the link at the bottom
> > of the email).
>
> I don't know which feature to disable?!?Use the link at the bottom of the page to edit your subscription
options. The option in question is labelled "Avoid duplicate copies of
messages?", and should be set to "no".
Now I found it... Done!
Thank you
> > grass.parser() needs to know the valid options for the script. These
> > are specified by comments beginning with "#%". See any existing script
> > for reference.
> >
> > Then, you need to run the script with the appropriate command line
> > options. I'm assuming that isn't happening, because you should get an
> > error if you provide an unrecognised option (and there are no
> > recognised options).
>
> I added your comments "#%" in the script (see attachment). Is it the
> only way to run the grass.mapcalc version in python with the
> grass.parser? I run my script external, directly from IDLE (without
> starting grass).That won't work. Starting GRASS sets several environment variables
required by the GRASS libraries. If you want to be able to run GRASS
commands from anywhere, you will have to configure the environment
variables yourself.The following is a minimal setup for Linux:
export GISBASE=/opt/grass-7.0.svn
export GRASS_PAGER=cat
export GRASS_PYTHON=python
export GRASS_MESSAGE_FORMAT=silent
export PATH="$GISBASE/bin:$GISBASE/scripts:$PATH"
export LD_LIBRARY_PATH="$GISBASE/lib"
export GRASS_LD_LIBRARY_PATH="$LD_LIBRARY_PATH"
export PYTHONPATH="$GISBASE/etc/python:$PYTHONPATH"
export GIS_LOCK=$$
export GRASS_VERSION="7.0.svn"
tmp=/tmp/grass6-"`whoami`"-$GIS_LOCK
export GISRC="$tmp/gisrc"
mkdir "$tmp"
cp ~/.grassrc6 "$GISRC"On Windows, the paths will be different, and you need to set PATH
rather than LD_LIBRARY_PATH for the libraries.The most important of the above are GISBASE, which must point to the
top-level GRASS installation directory, and GISRC, which must point to
a file containing settings for GISDBASE, LOCATION_NAME and MAPSET.
This environmental variables are already set like stated in
http://grass.osgeo.org/wiki/GRASS_and_Python#Creating_Python_scripts_that_call_GRASS_functionality_from_outside
in my case:
GISBASE= C:\GRASS6.5.SVN
GISRC= C:\Users\Johannes Radinger\.grassrc6
LD_LIBRARY_PATH= C:\GRASS6.5.SVN\lib
PATH= C:\GRASS6.5.SVN\etc;C:\GRASS6.5.SVN\etc\python;C:GRASS6.5.SVN\lib;C:\GRASS6.5.SVN\bin;C:\GRASS6.5.SVN\extralib;C:\GRASS6.5.SVN\msys\bin;C:\Program Files (x86)\Python26\ArcGIS10.0;
PYTHONLIB= C:\Program Files (x86)\Python26\ArcGIS10.0
PYTHONPATH= C:\GRASS6.5.SVN\etc\python
GRASS_SH= C:\GRASS6.5.SVN\msys\bin\sh.exe
Some of these variables also set in the Python Script as well, like:
gisbase = os.environ['GISBASE'] = "C:/GRASS6.5.SVN"
sys.path.append(os.path.join(os.environ['GISBASE'], "etc", "python"))
gisrc = gsetup.init('C:/GRASS6.5.SVN', 'C:\Users\Johannes Radinger\Documents\Grass GIS', 'Treene_Location', 'Treene')
But I still don't have any sucess...(either with and without this addtional environmental settings in the python script)
how should I proceed, how can I test if the variables are set correctly?
And as I already stated, other python-scripts than the mapcalc function are working (e.g. grass.run_command("r.thin",....) when I run the script from outside grass (with IDLE).
Any suggestions?
Attached there's again the mapcalc example script which isn't working.
Thank you.
Johannes
--
Glynn Clements <glynn@gclements.plus.com>
_______________________________________________
grass-user mailing list
grass-user@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
(attachments)
test_mapcalc.py (1.6 KB)