Presentation and options | Dialog box of the application |
Syntax |
By default, the application guarantees that the generalization process of the arcs does not produce intersection among themselves, collapses of individual arcs forming an enclosed area (avoiding that a ring becomes a point) or other changes that alter the topological relationships among the arc objects.
The file containing the arc layer to generate needs to be different than the original file.
The program works with arc files in ARC and VEC format. If it needs to be applied on a file in other formats, it can be imported with the tools in the "File | Import" menu.
In its recommended functioning as a generalization tool, the program proceeds chaining two algorithms:
On the first of these algorithms for each arc, the program applies to every vertex a moving average filter over its position (on its XY coordinates); this filter takes into consideration two, four or six neighboring vertices in the same arc (one, two or three on each side of the vertex in question, in choice). The vertices of the arcs corners (nodes) do not modify their position in any case. On the other hand, when the number of vertices of the desired moving average is lower than the number of vertices of the analyzed polysegment, this polysegment is not modified (for example a five vertices arc (counting nodes) will result in no modified vertices if we apply six vertices moving average). Also, a vertex is never moved beyond the tolerance stated by the user (in the same planimetric units of the layer, typically in meters). Note that the moving average softens the line changing the vertices position, but it does not increase or reduce its number.
Then the second algorithm is applied, Douglas-Peucker algorithm (which also has a particular tolerance, named epsilon), which allows to reduce the number of vertices, but it does not modify the position of the remaining vertices. See 1973 reference for more details about its functioning.
Nevertheless, both algorithms can be applied separately because of investigation or educational interests, although, as it is been stated, best results are obtained with the consecutive combination of both algorithms.
GenVLin also allows to indicate that, if a resulting object intersects with any of the pre-existing ones, the generalization will not be accepted and a second generalization try must be done, treating it in polysegments of eight vertices if possible; after this second try, if any of these polysegments intersects with any pre-existing object, the polysegment of the original line is adopted.
In the case of moving average filter, the user can choose the weights applied to each one of the previous and next vertices (i.e., the influence that the coordinates of the neighboring vertices will have along the same arc can be modulated). Possibilities are:
If the generalization does not work, it could be because the arcs are made of segments (2 vertices each arc) joined by line nodes, since the Douglas-Peuker algorithm works on each arc, regardless possible other arcs connected to it. In this situation the user may consider removing the line nodes with option 4 of the LinArc program before proceeding with the generalization.
More information can be consulted at the following reference:
Douglas D, T Peucker (1973) Algorithms for the reduction of the number of points required to represent a digitized line or its caricature, The Canadian Cartographer, 10(2), 112122. doi:10.3138/FM57-6770-U75U-7727.
![]() |
GenVLin dialog box |