[GRASS-dev] Re: [GRASS GIS] #699: v.buffer segfault: in
Vect_get_isle_points()
GRASS GIS
trac at osgeo.org
Mon Feb 21 09:45:00 EST 2011
#699: v.buffer segfault: in Vect_get_isle_points()
----------------------+-----------------------------------------------------
Reporter: neteler | Owner: grass-dev@…
Type: defect | Status: new
Priority: normal | Milestone: 7.0.0
Component: Vector | Version: 6.4.0 RCs
Keywords: v.buffer | Platform: All
Cpu: All |
----------------------+-----------------------------------------------------
Comment(by mlennert):
Replying to [comment:15 mmetz]:
> Replying to [comment:14 mlennert]:
> >
> > I can't remember what the issues were triggering the rewrite of
v.buffer, but if you think you can solve these issues and that that the
original v.buffer is much faster, you definitely have my +1.
> >
> I think the motivation was the dirty output of v.parallel and only
halfway implemented support for a column with buffer distances unique for
each feature.
>
> Unfortunately it was not as easy as I assumed, I had to modify the
original vector lib functions, i.e. the disabled lib/vector/Vlib/buffer.c
file in order to get clean results.
>
> For grass 6.5, r45437 fixes (for me) the issues mentioned in this ticket
and in the tickets #90, #994, #1231, #1244.
>
> For testing purposes, I have used the vectors mentioned in these tickets
with both v.buffer and v.parallel, that is vector/v.buffer and
vector/v.parallel and not vector/v.buffer2 and vector/v.parallel2. All
vectors were used as input with the settings given in the respective
tickets and various variations of the distance and tolerance options in
order to fix the original versions.
>
> Still outstanding is the fix for the bufcol option, but that is not that
difficult (seriously). I can look at it once the current change has been
approved.
>
> In order to test, you would need to get grass 6.5 r45437 and manually
compile the two modules vector/v.buffer and vector/v.parallel. For
comparison, the Makefiles of v.buffer2 and v.parallel2 could be modified
to name the modules v.buffer2 and v.parallel2 and the modules recompiled.
For me it works very well, much faster than v.buffer2. I was able to
calculate 5km buffers of the entire, non simplified nc_spm railroads map
in +/- 25 minutes. I stopped v.buffer2 after 40 minutes when it was at
only 27% of breaking boundaries.
Interestingly, simplifying railroads (with the v.generalize command
mentioned in comment 7) does not seem to significantly increase the speed
(running now, but I have to go...).
Moritz
--
Ticket URL: <http://trac.osgeo.org/grass/ticket/699#comment:16>
GRASS GIS <http://grass.osgeo.org>
More information about the grass-dev
mailing list