[GRASS-dev] r.colors.out X r.colors -p

Glynn Clements glynn at gclements.plus.com
Sun Oct 31 21:37:31 EDT 2010


Markus Neteler wrote:

> >> currently r.colors has a new flag (-p) to print color table assigned
> >> to the raster map. I have implemented this functionality because I
> >> simply overlook r.colors.out in GRASS 7. We can
> >>
> >> a) remove -p flag from r.colors and continue with r.colors.out (and
> >> backport it to GRASS 6)
> >>
> >> or
> >>
> >> b) improve -p flag in r.colors and drop r.colors.out.
> >>
> >> I would vote for option b), we have quite a lot modules in core
> >> distribution in GRASS7. What do you think?
> >
> > I'd choose a). The two operations have almost nothing in common, so
> > there's no reason for them to be in the same module.
> 
> Frmo a user's perspective, a situation like
> 
> r.statistics/  r.statistics2/ r.statistics3/ r.stats/
> 
> is just confusing...

Mostly because a number of substantially different modules have all
been lumped under "statistics". But given that "statistics" is such a
broad concept, it's actually rather illogical to expect every
"statistics" operation to be bundled into a single module.

The naming could probably be improved. Also, there's no reason for
r.statistics to exist if r.statistics[23] have been tested and found
satisfactory. If anything, r.statistics3 should probably be merged
into r.quantile (it's just a extension of r.quantile to support a base
map).

The default should be for distinct operations to have distinct
modules. The main reason for having multiple operations in a single
module is if they share code and/or parameters. This eliminates code
duplication and improves consistency.

E.g. calculation of most accumulator-based aggregates (sum, mean,
variance, etc) is structurally similar, so it makes sense for them to
share a common module. OTOH, calculation of quantiles has almost
nothing in common with accumulator-based aggregates.

Likewise, merging the functionality of r.colors.out into r.colors
makes no more sense than merging the various r.out.* modules with
their r.in.* counterparts.

-- 
Glynn Clements <glynn at gclements.plus.com>


More information about the grass-dev mailing list