[GRASSLIST:6879] Re: Data corruption after v.digit crash

Hamish hamish_nospam at yahoo.com
Tue May 24 19:57:16 EDT 2005


> > I'm using grass-6.0.0 to create a vector version of some scanned
> > out-of-copyright maps.  At one point, v.digit froze and after a
> > while I had to kill the process.  Upon restarting, I can display my
> > vector map using d.vect but I get a warning "coor files of vector
> > 'foo at PERMANENT' is larger than it should be'.  From reading around,
> > this is to be expected since v.digit writes out the length data on
> > exit.  
> 
> It would be possible but probably too slow (I think) to rewrite the
> size  always when a new line is written (hard disk head jumps?).
> 
> If anybody is interested, it is possible to try to add
> 
> Vect_coor_info ( Map, &CInfo );
> Map->plus.coor_size = CInfo.size;
> dig__write_head (Map);
>
> into
>
> V1_rewrite_line_nat()
> 
> > The recommend fix is to rerun v.digit to rewrite the file.
> > However, if I try to run v.digit I get the following error;
> >  "ERROR: Cannot open old vector foo at PERMANENT on level 2"
> > I get the same error if I try to export the dataset using v.out.ogr.
> 
> You have to run v.build, it is always necessay after crash.


I've noticed when you are digitizing with a background draw command
including the vector map you are digitizing[*], the terminal window
displays errors on redraw about the size being wrong by about 9(?) bytes
for every point digitized (to be expected I guess). After 600 or so
points & the error growing to ~ 5000 bytes, d.vect crashes. v.build &
restarting always fixed it, less the last DB entry added. This is
unadvised usage but it's always good to make things more robust.

* I was using 'd.vect display=attr' to double check point values.



Hamish




More information about the grass-user mailing list