[SoC] Creation of new topological rules in gvSIG desktop - Final Report

Héctor hectorth23 at gmail.com
Mon Aug 26 05:15:46 PDT 2019


Dear community,

The GSoC 2019 end has arrived and I share you the final report of my work
during the coding period.


*1. Title*

Creation of new topological rules in gvSIG desktop


*2. Software community*

OSGeo, gvSIG


*3. Abstract*

This GSoC project consisted of implementing and integrating three new rules
in the gvSIG topology framework to model spatial relationships that verify
the integrity of the spatial information, validate the representations and
correct posible errors. These three rules are Must Be Disjoint, Must Not
Have Dangles and Must Be Larger Than Cluster Tolerance.

The Must Be Disjoint rule requires that points be spatially separated from
other points in the same layer, so any point that overlaps is an error. The
action implemented to solve posible violations of this rule is
deletePointsAction, which eliminates points that are not spatially
separated.

The Must Not Have Dangles rule requires that a line feature must touch line
features from the same layer at both ends. An endpoint that is not
connected to another line is an error, called dangle. One solution to this
action is extendAction that extends the dangling end if they fix to other
line features within a given distance by the user. Other solution is
trimAction that trims dangling line features if a point of intersection is
found within a given distance by the user. And another solution is
snapAction that snaps dangling line features to the nearest line feature
within a given distance by the user. Unlike the first solution, snapAction
first tries to snap endpoints to the vertices, and secondly to the edge of
line features.

The Must Be Larger Than Cluster Tolerance rule requires that the vertices
of each line or polygon feature must be spaced a distance larger than the
tolerance established by the user. Vertices that fall within the tolerance
are considered errors. This rule is mandatory for all topology. The
simplest solution, called deleteFeatureAction, is to eliminate line or
polygon features that collapse during the validation process. The other
solution, deletePointsAction, modifies line or polygon features whose
points collapse during the validation process.



*4. Motivation*

My main motivation behind this project was to be able to collaborate in the
gvSIG topological framework development project to provide this application
with greater functionality at the stage of processing and cleaning
geographic data to be able to perform better and accurate data analysis,
especially in Big data environments. Other motivations were:

- Participate in an open source project.

- Improve my programming skills.

- Generate other skills around programming such as the repository for the
code.

- Way to generate open documentation of the work done.

- Know the interaction between the open source community.


*5. State of the Project before GSoC 2019*

The gvSIG topology framework before my GSoC 2019 only allowed to apply some
topological rules regarding an entity that does not contain a null
geometry, that each polygon of a polygon layer always contains a point in
another layer and that two polygon geometries do not overlap between them.
In some of these rules it was still necessary to develop the appropiate
actions to be able to apply them. Therefore, a good topological analysis
could not be performed for the data sets to verify the integrity of the
spatial information, validate representations and correct possible errors
automatically.


*6. Value of GSoC Project*

With the three rules that I created and with their integration into the
gvSIG topological framework, now it is posible to improve the data sets
topological analysis and apply different actions to correct the features in
an automated way.


*7. Work to be done*

There is still a little work to be done on the project. The tasks for the
future are to finish developing the actions code so that they can be
applied in data sets that can not create spatial indexes automatically. It
would also have to adapt the Must Not Have Dangles rule code and of the
extendAction and trimAction actions for data sets with multiline geometries
as well as include the code part to be able to update two entities at the
same time when the gvSIG bug is fixed.


*8. Future opportunities*

The gvSIG topological framework development project is still underway and
there are still many other rules to be developed.


*9. Links*

*Work Product*

Please test my code following instructions here
<https://github.com/hecnita/gvsig-gsoc2019-topology/wiki/Work-Product>

*Code Documentation*

- Must Be Disjoint Rule
<https://github.com/hecnita/gvsig-gsoc2019-topology/wiki/Rule-Must-be-disjoint>

- Must Not Have Dangles Rule
<https://github.com/hecnita/gvsig-gsoc2019-topology/wiki/Rule-Must-not-have-dangles>

- Must Be Larger Than Cluster Tolerance Rule
<https://github.com/hecnita/gvsig-gsoc2019-topology/wiki/Rule-Must-be-larger-than-cluster-tolerance>

*Pull Requests*

- Must Be Disjoint Rule
<https://github.com/gvsig-sandbox/TopologyRuleMustBeDisjointPoint>

- Must Not Have Dangles Rule
<https://github.com/gvsig-sandbox/TopologyRuleMustNotHaveDanglesLine>

- Must Be Larger Than Cluster Tolerance Rule
<https://github.com/gvsig-sandbox/TopologyRuleMustBeLargerThanClusterTolerance>

*Last GSoC 2019 commits*

- Must Be Disjoint Rule
<https://github.com/hecnita/TopologyRuleMustBeDisjointPoint/commit/73faef953f23d20a88fcc261b4aa51075e05306f>

- Must Not Have Dangles Rule
<https://github.com/hecnita/TopologyRuleMustNotHaveDanglesLine/commit/3f26bba25b3dedd697b9d91a4ee5c783f53d64bf>

- Must Be Larger Than Cluster Tolerance Rule
<https://github.com/hecnita/TopologyRuleMustBeLargerThanClusterTolerance/commit/ddf7deef47c1ded432b2cd8531364fd8c6c12198>

*Project Documentation (Wiki Page)*

Wiki Page
<https://github.com/hecnita/gvsig-gsoc2019-topology/wiki/Creation-of-new-topological-rules-in-gvSIG-desktop>

*Project sample*

Image
<https://github.com/hecnita/gvsig-gsoc2019-topology/blob/master/images/image.png>


Thank you very much everyone for this opportunity and all your support. It
has been a great experience working with the gvSIG association people and
sharing the weekly work with the OSGeo community. These months have helped
me to learn a lot.

Best Regards

Héctor Tundidor
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/soc/attachments/20190826/a1aa49fb/attachment.html>


More information about the SoC mailing list