I have changed r.mapcalc in 7.x to use G_parser():

        $ r.mapcalc --help
        
        Description:
         Raster map calculator.
        
        Keywords:
         raster
        
        Usage:
         r.mapcalc [expression=string] [input=name] [--overwrite] [--verbose]
           [--quiet]
        
        Flags:
         --o   Allow output files to overwrite existing files
         --v   Verbose module output
         --q   Quiet module output
        
        Parameters:
          expression   Expression to evaluate
               input   File containing expression to evaluate

Note that, as expression= is the first option, it is the default. This
means that passing an expression on the command line is compatible
with both the old and new interfaces, so long as you:

a) quote the expression, and
b) include a space before the first = sign.

E.g.:
        r.mapcalc "foo = 1"
or:
        r.mapcalc 'foo = 1'

An unquoted expression (i.e. split over multiple arguments) won't
work, nor will omitting the space before the = sign:

        $ r.mapcalc 'foo=1'
        Sorry, <foo> is not a valid parameter

If no options are given, it manufactures "input=-" (which reads from
stdin), so you can continue to use e.g.:

        r.mapcalc < file
or:
        r.mapcalc <<EOF
        foo = 1
        EOF

But unless you need compatibility with previous versions, use input=
explicitly, e.g.:

        r.mapcalc input=file
or:
        r.mapcalc input=- <<EOF
        foo = 1
        EOF

Also, it now recognises --o[verwrite] and $GRASS_OVERWRITE, so you
will get an error if you try to overwrite an existing map without one
of those.

Note that older versions don't understand --o, so if you want to write
a shell script which is compatible with both versions, and which will
overwrite existing maps, use e.g.:

        GRASS_OVERWRITE=1 r.mapcalc 'foo = 1'

Python scripts only need to work with 7.x, so you can just use --o (or
overwrite=True with grass.run_command etc).

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

Reply via email to