Presentation and options | Dialog box of the application |
Syntax |
By default, the application guarantees that the generalization process of the polygons boundaries does not produce intersection among the arcs, 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 which form the boundaries or between the polygons themselves.
The file containing the polygon layer to generate needs to be different than the original file.
The program works with polygon files in POL 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.
GenVPol 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:
When dealing with layers coming from the cut of a more extensive layer (layer cut following map sheets or administrative units touching each other), the geometry of the external boundary of the layer (that matches with the zero polygon concept) must be conserved in order to not move the position of the sheet cut or the external boundary of the administrative unit. In this case, the parameter /DESCARTA_POL_0 can be used to avoid the generalization of the arcs that are boundary with the zero polygon.
MicroPol application can also be consulted to erase small polygons.
If the generalization does not work, it could be because the edges of the polygons are made up of segments (2 vertices each arc of the edge) joined by line nodes, since the Douglas-Peuker algorithm works on each arc, without considering possible other arcs connected to it. In this situation user may consider removing the line nodes of the arc layer with option 4 of the LinArc program and generalizing them with GenVLin before cycling again and assigning the thematic attributes with AtriTop (note: the thematic attributes of the polygon layer can be obtained in a point layer through the Etiqueta program).
More information can be consulted at the following reference:
GenVPol dialog box |