[GRASS-dev] Re: grass-dev Digest, Vol 29, Issue 62

Michael Barton michael.barton at asu.edu
Tue Sep 23 16:05:28 EDT 2008



On Sep 23, 2008, at 12:28 PM, Glynn Clements wrote:

>
> 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?

This makes sense, but is not clear in the documentation

>
>
> Arguably, the description for color=rules should have "from stdin"
> appended to it, as that's how it behaves.

This would clear things up a lot.

Michael

>
>
> 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