Presentation and options Dialog box of the application
Syntax

Presentation and options

This application generalizes the lines of a line layer (ARC or VEC of lines).

For the option to create a generalization pyramid for a arc file, only the input file, in ARC format, needs to be specified. If the application detects that it is necessary to create the pyramid (for files with very low densities, creating it is not useful), it will create a folder named after the input file, without the extension, followed by the suffix A_General (A indicates that it corresponds to a arc file and General identifies it as a generalization folder). Within this folder, one or more generalized files will be created using the prefix #_, where # is the pyramid level number, starting at 0. Each pyramid level will be created from the file of the previous level, to which two generalizations will be applied: a first Douglas-Peucker generalization and a second moving average + Douglas-Peucker generalization. The tolerance applied in these generalizations will depend on the characteristics of the source file.

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:


Dialog box of the application

GenVLin dialog box


Syntax:

Options:

Parameters:

Modifiers: