[GRASS-dev] Re: grass-dev Digest, Vol 29, Issue 62
Glynn Clements
glynn at gclements.plus.com
Tue Sep 23 15:28:57 EDT 2008
Michael Barton wrote:
> > the manual of 6.4 r.colors says:
> > "The rules color table type will cause r.colors to read color table
> > specifications from standard
> > input (stdin) and will build the color table accordingly.
> > "
> >
> > r.colors help | grep rules
> > ...
> > color Type of color table
> > options: aspect,aspectcolr,bcyr,bgyr,byg,byr,curvature,
> >
> > differences,elevation,etopo2,evi,grey,grey1.0,grey255,
> >
> > gyr,ndvi,population,rainbow,ramp,ryb,ryg,sepia,slope,
> > srtm,terrain,wave,random,grey.eq,grey.log,rules
> > ...
> > rules: create new color table based on user-specified rules
> > ...
> > rules Path to rules file
> >
> > but:
> >
> > r.colors map=gpcp_1dd_p1d.2002_sum color=rules rules=color_tab.col
> > ERROR: "color", "rules", and "raster" options are mutually exclusive
>
> This shouldn't cause this error. It seems to think that the raster
> option has been used (when it hasn't). A new bug recently introduced?
It certainly should cause this error. color=rules means to read rules
from stdin, while rules=<filename> means to read rules from a named
file. If you specify both, where is it supposed to read the rules
from?
Arguably, the description for color=rules should have "from stdin"
appended to it, as that's how it behaves.
Note that removing the mutual exclusivity check will simply cause the
rules= option to be ignored, as color= is checked first. The rules
option is only used if color= isn't given; specifically, the logic is:
if <-i> read rules from stdin
else if <color=...> handle the various color= choices
else if <rules=...> read rules from the specified file
else copy colours from another map (raster=)
FWIW, 7.0, doesn't accept color=rules; you need to use rules=- to read
rules from stdin (this makes it easier for the GUI, where reading from
stdin won't work.)
--
Glynn Clements <glynn at gclements.plus.com>
More information about the grass-dev
mailing list