[GRASS-dev] Re: [GRASS-user] check vector geometry
Glynn Clements
glynn at gclements.plus.com
Mon Sep 25 10:14:34 EDT 2006
Maciej Sieczka wrote:
> And vice-versa.
>
> Works like a charm! Anybody minds it applied?
>
> What a nice working Sunday. Thanks Jachym!
>
> Maciek
>
> P.S.
>
> I'm wondering if flags should be exclusive or not in Grass modules, in
> general.
It depends upon the nature of the flags; flags should not be mutually
exclusive unless there is a reason.
Generally speaking, flags which select a particular mode of operation
may be mutually exclusive if it isn't useful (or practical) to perform
multiple distinct tasks in a single run (you can always run the
program once for each mode). OTOH, flags which modify specific aspects
(e.g. human-readable vs machine-readable output) should operate
independently of other flags.
> For example, I asked Jachym to make it possible to his new '-t' flag
> not to be excluded if used together with '-g', and it works. No matter
> what flag seqeunce, if both are used, first goes the '-g' output, then
> '-t'. But maybe I asked him for a wrong thing, maybe flags should be
> exclusive? Or if they should be not exclusive, should the order they
> are called metter? Eg. should '-tg' and '-gt' output in the same sequence?
Flags are either present or absent; a module cannot determine the
order in which flags are specified.
If you want various items of data output in a specific order, use an
option with multiple values, e.g. output=region,topology vs
output=topology,region.
> Other modules (eg. g.region and r.info) don't allow for using many
> flags at the same time, and they have some hierachy in excluding them,
> but I can't find a pattern for that (is there one?).
>
> Moreover, I found a strange thing about g.region. Try this:
>
> $ g.region -e
> region north-south extent: 270.000000
> region east-west extent: 300.000000
>
> $ g.region -g
> n=4916070
> s=4915800
> w=602940
> e=603240
> nsres=30
> ewres=30
> rows=9
> cols=10
>
> BUT A COMBINATION OF BOTH GIVES NEITHER OF THE ABOVE:
>
> $ g.region -eg
> ns_extent=270.000000
> ew_extent=300.000000
>
> The region extent is printed, like if -e alone was used, but instead of
> "region north-south extent" we get "ns_extent". Same thing, but
> different wording.
That makes sense. The -e flag displays the extents, while -g selects a
machine-readable format. Using both should display the extents in a
machine-readable format.
Note that -g is essentially shorthand for -pg; any option which
selects an output format implies -p unless some other option is given.
It's arguable that -pe should display the extents as well as the other
region parameters, and -peg should do likewise but using
machine-readable format.
Similarly, -lg should display lat/lon boundaries in shell format.
--
Glynn Clements <glynn at gclements.plus.com>
More information about the grass-dev
mailing list