[GRASS5] r.mapcalc result

Radim Blazek blazek at itc.it
Thu May 27 07:07:00 EDT 2004


Hopefully somebody will fix the manpage.

Radim

On Thursday 27 May 2004 11:12, Glynn Clements wrote:
> Radim Blazek wrote:
> > > Names which include r.mapcalc syntatic characters (e.g. minus) have to
> > > be quoted, e.g.:
> > >
> > > 	r.mapcalc '"pok-1"=1'
> > >
> > > 	r.mapcalc "'pok-1'=1"
> > >
> > > 	r.mapcalc "\"pok-1\"=1"
> > >
> > > 	r.mapcalc
> > > 	Enter expressions, "end" when done.
> > > 	mapcalc> "pok-1"=1
> > >
> > > Etc.
> > >
> > > Note: the quotes must be present in the string which is passed to
> > > r.mapcalc; when supplying the string on the command line, you have to
> > > allow for the shell's processing.
> > >
> > > The list of characters which can't be used in an unquoted name
> > > consists of control characters, space, and the following:
> > >
> > > 	^ # @ , " ' ( ) [ ] + - * / % > < ! = & | ? : ;
> > >
> > > This is true for both map names and variable names, and is distinct
> > > from GRASS' own restrictions (see G_legal_filename()), which apply
> > > regardless of whether the name is quoted.
> >
> > In r.mapcalc manual:
> > "Quoting result is not allowed.
>
> That has recently been changed.
>
> > However, it is never necessary to quote
> >  result since it is always taken to be a raster map layer name."
>
> That isn't true. And I don't think that it was ever true, even in the
> old r.mapcalc (src/raster/r.mapcalc).
>
> > is the rest of the manual correct or there are other changes?
>
> This isn't true:
>
>        If the input comes directly  from  the  keyboard  and  the
>        result  raster map layer exists, the user will be asked if
>        it can be overwritten.  Otherwise, the result  raster  map
>        layer will automatically be overwritten if it exists.
>
> Existing maps will be silently overwritten.
>
> This isn't true:
>
>        Continuation lines must end with a \ and have  NO  trailing
>        white  space  (blanks  or  tabs).   If the user does leave
>        white space at the end of continuation  lines,  the  error
>        messages produced by r.mapcalc will be meaningless and the
>        equation will not work as  the  user  intended.   This  is
>        important for the eval() function.
>
> Trailing whitespace (any number of space, tab and carriage-return
> characters) is allowed between the backslash and the newline.
>
> This isn't entirely true:
>
>        The function should require the  user  to  type  "end"  or
>        "exit"  instead  of  simply a blank line.  This would make
>        separation of multiple scripts separable by white space.
>
> It now understands "end" and "exit" as alternatives to a blank line.
> Ignoring blank lines could be considered a significant
> incompatibility.
>
> The latter part of the REGION/MASK section is incorrect:
>
>        Since a category value of 0 is used in GRASS for locations
>        which do not exist in the raster map layer, the new raster
>        map layer will contain the category value 10 in the  loca­
>        tions  that  did  not  exist  in  the  original elevation.
>        Therefore, in this  example,  it  is  essential  that  the
>        boundaries  of  the geographic region be set to agree with
>        the cell header.
>
>        However, if there is a current mask,  then  the  resultant
>        raster  map  layer  is  masked when it is written; i.e., 0
>        category values in the mask force zero values in the  out­
>        put.
>
> Also, in the comment:
>
>        It   is   advisable   to  put  single  quotes  around  the
>        expression;  e.g.:
>
>             result = 'elevation * 2'
>
> I would suggest quoting the entire statement, i.e.:
>
>             r.mapcalc 'result = elevation * 2'




More information about the grass-dev mailing list