[GRASS-user] Criteria for v.clean tool=rmdangle

Dwight Needels needels at translucida.com
Thu Jun 18 17:25:56 EDT 2009

On Jun 18, 2009, at 3:15 PM, Markus GRASS wrote:

>> If the tool is run repeatedly, the final vector will have no dangles
>> shorter than thresh.
> Not so sure if repeated runs are necessary. One run should be enough  
> to
> have no dangles shorter than thresh in the output vector.

My mistake. I had what I thought was an example with a dangle  
remaining after v.clean tool=rmdangle thresh=-1, but I apparently  
never confirmed that it was removed by a second pass. It turned out to  
be an ultra-thin loop created when two pairs of lines were overlaid  
exactly on top of each other. I tried unsuccessfully to concoct a  
scenario that would expose a previously-processed line as a dangle,  
and agree that one run should be enough (thank goodness).

> I have included some but not all of your suggestions because e.g. this
> internal id thing is IMHO a bit too technical and not needed for  
> running
> the tool. Mentioning internal ids would suggest that they can be  
> used by
> the user which is the case for very few modules but not v.clean. The
> internal id is nothing fixed, neither for lines nor for nodes, in
> particular when using several cleaning tools in one go, internal ids  
> are
> constantly changed. Even nodes are a bit technical because they are no
> regular vector object like  
> point,line,boundary,centroid,area,face,kernel
> but can be easily edited with the wxdigitizer or v.digit, so it would
> hopefully be not too confusing to mention nodes.

Understood (and thanks!).

I think most of my personal confusion was centered around thinking  
that the tool removes the dangles found in the original vector, when  
in fact it just keeps going until no dangles are left. For example, my  
original prediction was that tool=rmdangle thresh=-1 would have pruned  
one layer of dangles from the outer tip of each branch (the original  
dangles), while leaving most of the core structure intact. In reality,  
it removes much more than the original dangles.

Below wording I started to suggest last time, but modified when I got  
concerned about multiple passes being required. Although I might not  
have understood the implications upon first reading, if I read it  
after running into the issues I did I think (hope?) this would have  
helped me figure it out much more quickly.

Suggested wording:
"Dangles shorter than thresh are removed sequentially until no dangles  
remain. No dangles will remain if thresh < 0."

> PS: I hope you have now the world's cleanest hiking trails:-)

Thanks; I think I could have swept them clean with a broom in the time  
I have spent analyzing v.clean! However, this has been a very  
educational experience for me, and I appreciate all of your help.

More information about the grass-user mailing list