[GRASS-dev] r.le--after some fixes still needs work

Hamish hamish_nospam at yahoo.com
Thu Sep 28 21:49:17 EDT 2006


William L. Baker wrote:
> Hamish and Glynn, thank you for seeing that with null_buf. In
> r.le.patch, I did indeed allocate null_buf as DCELL, not char and that
> worked in there, even though it is not the right solution. Hamish, can
> you change that allocation statement for null_buf to DCELL and see if
> that fixes the crash?

Yes, it fixes it AFAICT. Applied in CVS. Another one down, thanks Glynn.


> I'm not set up yet to do anything and can barely
> figure out CVS at this point.

my 1 minute tutorial:

download latest 6.3-cvs snapshot
un-tar.gz

# connect to CVS server as read-only guest
$ export CVSROOT=:pserver:grass-guest at intevation.de:/home/grass/grassrepository
$ cvs login
pass: grass

#update to latest code
cvs up -dP

#make your changes
cd grass6/raster/r.le/r.le.pixel/
vi cellclip.c
make
# test
vi && make && etc..

#generate patch
cd ../../../..
cvs diff -u grass6/raster/r.le/r.le.pixel/cellclip.c  > somepatch.diff


it's handy to make a ~/.cvsrc file. Mine contains:
-z3
diff -u
update -dP



> Hamish, as to r.le.setup, at the CHOOSE THE SETUP OPTION step, I
> choose Setup sampling units, then Use keyboard to enter sampling unit
> dimensions, then 1 for for How many different SCALES, then 1 for
> Random nonoverlapping, then "y" for Do you want to sample using
> rectangles, then "1.0" for Sampling unit SHAPE, then 144 for
> Recommended maximum SIZE followed by "y" it's OK, then 20
> sampling units. At that point, the program should draw the sampling
> units in red on the monitor, but nothing is displayed. Not sure where
> the communication problem is...

Ah, ok I was trying with the mouse. If you look closely you'll see the
boxes are drawn right at the top of the window. i.e. the y values being
sent to draw_box() are no good. This is because y=0.0 when this calculation
is done:

raster/r.le/r.le.setup/sample, line ~ 878 in calc_unit_loc() back:

 draw_box((int)((double)(ux[i])/x), (int)((double)(uy[i])/y),
	 (int)((double)(ux[i]+u_w)/x), (int)((double)(uy[i]+u_l)/y),
	 1);


after drawing the boxes (or attempting to anyway), 
    Distributed unit   20 of   20 requested
    Is this set of sampling units OK?   (y/n) [y] y
Segmentation fault


but one thing at a time.


Hamish




More information about the grass-dev mailing list