[GRASS5] [bug #3469] (grass) about i.class

Markus Neteler neteler at itc.it
Tue Aug 9 04:56:04 EDT 2005


On Mon, Aug 08, 2005 at 03:29:56PM +0100, Glynn Clements wrote:
Content-Description: message body and .signature
> 
> Brad Douglas wrote:
> 
> > > this bug's URL: http://intevation.de/rt/webrt?serial_num=3469
> > > -------------------------------------------------------------------------
> > > 
> > > Subject: about i.class
> 
> > > I am working with GRASS61, I try with i.class for supervised
> > > classification. After drawing the region on image I click to the
> > > Analyze region Menu, I get this error message
> > > WARNING:PREPARE_SIGNATURE: DATA ERROR (CLICK MOUSE TO CONTINUE). It
> > > seem that all the regions that I chose before now disappear. I try
> > > again with GRASS57, the result is also the same. Can you solve this
> > > problem for me? Thank you very much,
> 
> > I traced this back to INAME_LEN being changed from 30 to 256 in
> > include/imagery.h.
> > 
> > This makes lib/vask/V_ques.c: V_ques() bomb out starting at line:
> > 
> > if ((length <= 0) || ((length + col) > 80)) ...
> > 
> > where the variable 'length' is passed in as INAME_LEN.
> > 
> > The program keeps running until it dies with a floating point exception.
> 
> The attached patch changes V_ques() so that it truncates the length so
> that col + length <= 80 rather than returning an error. It also
> requires the starting column to be less than 80, rather than less than
> or equal to 80.
> 
> The caller doesn't actually check the return value of V_ques(), and I
> suspect that this is quite common. Maybe V_ques() should just use
> G_fatal_error()?
> 
> Or maybe the imagery stuff should be weaned off of vask altogether. 
> AFAICS, the only code in 6.1 which still uses vask is:
> 
> 	i.ortho.photo
> 	lib/imagery
> 	set_data
> 	r.le.setup
> 	v.transform
> 
> lib/edit also uses it, but lib/edit is only used by set_data.
> 
> -- 
> Glynn Clements <glynn at gclements.plus.com>

Applying Glynn's patch and modifying imagery/vask_group.c back
to INAME_LEN and layout cosmetics, we could have:

LOCATION: spearfish60            SUPERVISED CLASSIFIER            MAPSET: user1

Please select the group/subgroup to be analyzed


           'list' will show available groups:
GROUP:    ______________________________________________________________________
           'list' will show available subgroups:
SUBGROUP: ______________________________________________________________________


If it looks reasonable, I'll submit - or modify to your suggestions.

Markus




More information about the grass-dev mailing list