Gabriele Nolè wrote:

> I'm trying to write a little script in python but I have difficulty (I know
> a bit the bash).
> The script must first run a buffer and then some overlay.     
> I am following the wiki and seeing some script as v.type.py, color_table.py
> etc. ..
> Now I am at this point:

>     print "Value of GIS_OPT_vect_1: %s" % os.getenv("GIS_OPT_vect_1")
>     print "Value of GIS_OPT_vect_2:  %s" % os.getenv("GIS_OPT_vect_2")
>     print "Value of GIS_OPT_vect_3:    %s" % os.getenv("GIS_OPT_vect_3")

> if __name__ == "__main__":
>     args = ""
>     for arg in sys.argv:
>         args += arg+" "
>     try:
>         if ( sys.argv[1] != "@ARGS_PARSED@" ):
>             os.system("g.parser %s " % (args))
>     except IndexError:
>         os.system("g.parser %s" % (args))
> 
>     if sys.argv[1] == "@ARGS_PARSED@":
>         main(); 

Look at the Python scripts in 7.0 for reference:

http://trac.osgeo.org/grass/browser/grass/trunk/scripts

Explicitly calling g.parser and reading GIS_OPT_* environment
variables is no longer necessary (or desirable; g.parser may
eventually be changed to use some other mechanism for passing data
back to the script). Instead:

        def main():
            vect1 = options['vect_1']
            vect2 = options['vect_2']
            vect3 = options['vect_3']
        
            ...
        
        if __name__ == "__main__":
            options, flags = grass.parser()
            main()

>     grass.run_command('v.buffer', input = vect_1 output = buffer_200m buffer 
> = 200)

You need commas between arguments, i.e.:

    grass.run_command('v.buffer', input = vect_1, output = buffer_200m, buffer 
= 200)

>    # or grass.exec_command ?

Usually not; exec_command will effectively terminate the script. Use
run_command if you want control to return to the script once the
command completes.

-- 
Glynn Clements <[EMAIL PROTECTED]>
_______________________________________________
grass-user mailing list
grass-user@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/grass-user

Reply via email to