Markus Neteler wrote:
Richard,
without error messages it's hard to understand...
Could you run it in command line? Then you may be able to
copy the error.
Alternative: tell us how to replicate it in the Spearfish or North
Carolina sample data set...
Markus,
The error:
ERROR: BUG (Vect_build_sidx_from_topo): area does not exist
Thanks for suggesting I try it in Spearfish; it made the string of
errors more manageable to search through.
Reproduced in Spearfish like this.
1) Create individual points
for i in `echo "select cat from bugsites" | db.select`; do
v.extract input=$i output="bugsites_""$i" where=cat=$i; done
2) Buffer individual points
for i in `g.mlist vect pattern="bugsites_*"`; do
v.buffer input=$i output="buffer_""$i" buffer=500; done
3) Add tables to buffers
for i in `g.mlist vect pattern="buffer_*"`; do
v.db.addtable map=$i; done
4) Overlay buffers with areas
for i in `g.mlist vect pattern="buffer_*"; do
v.overlay ainput=$i binput=trn_sites output="overlay_""$i" operator=and;
done
5) Create target patch map
for i in `g.mlist vect pattern="overlay_*"`; do
v.patch -a -e input=$i output=patch --overwrite; done
During the patch phase, this gets reported from time to time:
ERROR: BUG (Vect_build_sidx_from_topo): area does not exist
I can rebuild the file manually and the patch will work. However, the
error will even occur if I insert the build into the script:
for i in `g.mlist vect pattern="overlay_*"`; DO
v.build $i;
v.patch -a -e input=$i output=patch --overwrite; done
Thoughts?
RC
(By the way; why the labourious process? - I have a set of thousands of
points associated with areas, and want to constrain buffers using the
areas. If I just buffer the entire point file, I get lots of overlaps
that make things painful. I want to constrain the circles before
patching them together back into a single file.
I have tried other approaches -
- buffer all the points in one map with debug=buffer
- v.clean the resulting map
- add centroids
But I end up with incorrect boundaries that miss getting their centroids.)
Markus
On Thu, Oct 23, 2008 at 11:49 PM, Richard Chirgwin
<rchirgwin@ozemail.com.au> wrote:
Hi,
There seems to be a problem in handling of large numbers of vectors.
I had a large number of buffered points to put together. The buffer
areas (with centroids added) were constrained by non-overlapping areas
to avoid errors later, after which I wanted to patch them together into
a single file. I used:
for i in `g.mlist vect pattern="Centroids*"`; do
v.patch -a -e input=$i output=patchfile --overwrite;
done
to do this.
For most vectors, everything works fine, but every now and again, the
patching process would report a problem (something like "error bug sidx
topo", it goes by in a flash and I haven't been able to work out how to
log the script outputs) with an individual vector. If, however, I
patched the vector manually (outside the script), it would work fine.
I suspect that because of the speed and huge number of vectors I'm
trying to put together, v.patch is having trouble finding the sidx file,
but really, I have no idea. Any thoughts?
Richard Chirgwin
_______________________________________________
grass-user mailing list
grass-user@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/grass-user