[GRASS5] Re: [GRASSLIST:5979] speeding up v.in.ogr
Hamish
hamish_nospam at yahoo.com
Sun Mar 13 21:44:32 EST 2005
see:
http://grass.itc.it/pipermail/grassuser/2005-March/028119.html
Radim (3 Mar 2005):
>> Then the problem is that bounding box of that long boundary
>> intersects all the islands and v.in.ogr will try to break those
>> lines which takes long time. It was already discussed here. Try to
>> modify v.in.ogr so that it writes long boundaries in more shorter
>> parts.
Radim (11 Feb 2004):
> I have got idea. Split boundaries to smaller parts, something like
for ( line = 1; line <= Vect_get_num_lines ( In ); line++) {
type = Vect_read_line ( In, Points, Cats, line);
v = 0;
while ( v < Points->n_points ) {
Vect_reset_line (OPoints);
for (i = 0; i < maxvertex && v < Points->n_points )
Vect_append_point ( OPoints, Points->x[v], Points->y[v], 0);
}
Vect_write_line (Out, type, Points, Cats);
}
}
> Could you try it? If it helps, it would be reasonable to add this
> splitting to v.in.ogr / v.clean.
I am just working through the same data with v.buffer. Again, very slow.
where should I put the above code? lib/vector/Vlib/break_lines.c ?
or in each module, e.g. v.in.ogr? if so then at what point in the
processing?
Hamish
More information about the grass-dev
mailing list