Hi Glynn. I use ubuntu 8.10 and grass64 svn I made the changes based on your claims. This is my code: ------------------------------------------------------------------------------------- def main(): # con = assegno le variabili vect1 = options['vect_1'] vect2 = options['vect_2'] vect3 = options['vect_3']
grass.run_command('v.buffer', input = vect_1, output = buffer_200m, buffer = 200) if __name__ == "__main__": options, flags = grass.parser() main() --------------------------------------------------------------------------------------------- But if __name__ == "__main__": etc ...... what is your job? Unfortunately, I made several attempts, but I have an error: Traceback (most recent call last): File "/home/gab/scripts_grass/v.rischio_incendi.py", line 75, in <module> main() File "/home/gab/scripts_grass/v.rischio_incendi.py", line 70, in main grass.run_command('v.buffer', input = vect_1, output = buffer_200m, buffer = 200) NameError: global name 'vect_1' is not defined I do not know how "to treat" the output of the v.buffer (in this case, buffer_200m). Thanks Glynn Gabriele PS With grass 7 will work scripts in bash? Glynn Clements wrote: > > > 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 > > -- View this message in context: http://www.nabble.com/script-in-python-tp20758838p20769746.html Sent from the Grass - Users mailing list archive at Nabble.com. _______________________________________________ grass-user mailing list grass-user@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-user