Area and area attribute handling of v.generalize is now fixed in r44899.
Vector topology for areas is always maintained: if boundary
modification would result in corrupt topology, the original boundary
is preserved. The method to check for corrupted topology is taken from
v.clean tool=prune. Additionally, area attributes are also preserved
and no longer mixed up.
The -r flag (remove lines shorter than threshold or areas smaller than
threshold) has been removed because lines were removed if they
consisted of less then threshold vertices, even though a line with
only two vertices can have any length, because this is an abuse of the
threshold parameter which is required by the simplification/smoothing
methods and a threshold value that makes sense for
simplification/smoothing does not necessarily make sense for removal
(map units vs. number of points), and because removing small areas is
done by v.clean. Consequently, the type option has been changed from
line,boundary,area to line,boundary only and method = REMOVE_SMALL has
been removed.
test commands for the NC sample database, mapset user1
# grass 7
g.copy vect=boundary_county@PERMANENT,myboundary_county
v.build map=myboundary_county
v.generalize -c input=myboundary_county@user1
output=myboundary_county_simple_7 type=boundary threshold=100.0
method=douglas
# grass 6
v.generalize -c input=boundary_county@PERMANENT
output=myboundary_county_simple_6 type=boundary threshold=100.0
method=douglas
v.generalize in grass 6 reduces the number of areas from 926 to 146,
780 areas disappeared.
Attributes of the few remaining areas are mixed up, e.g. comparing results of
v.what --v -a map=boundary_county@PERMANENT east_north=410000,168000
v.what --v -a map=myboundary_county_simple_7@user1 east_north=410000,168000
v.what --v -a map=myboundary_county_simple_6@user1 east_north=410000,168000
reveals that the county "Gaston" has been changed to "New Hanover" by
v.generalize in grass 6 but not grass7.
I would like to see these changes (after some testing) in 6.x because
v.generalize in its current form in 6.x is IMHO unusable for
boundaries.
Markus M