9. Final Report - Maureque/GSoC2020-topology-osgeo-gvsig GitHub Wiki

New rules for the Topology Framework in gvSIG Desktop.

Student: Mauro Carlevaro.

Mentors: Carlos Colombana y Óscar Martínez.

Community: GSoC, OSGeo, gvSIG Association.

Thanks.

For me, working in GSoC has been an amazing experience, I appreciate the freedom that I had to work and the exchanges with the community, all this was great.

I want to thank the entire community of GSoC, OSGeo, and gvSIG, to the mentors Carlos Colombana and Óscar Martinez. Last year I learned a lot with Óscar as the main mentor. This year with Carlos as the main mentor also was a great experience. The talks with Carlos have been very enriching, this let me develop myself in the project manager aspect in which he has great ability. Thank you very much for all the timeshare

Thank to my Family without whom, nothing is possible. They always support me, in spite of, that many times I could not dedicate time to them because of having to work

I enjoyed and learned a lot, being happy while working is possible!!!!

Abstract.

Automate tasks and Ensure Information Quality instead of spending our time doing what a machine.

A topology toolbox has been added to gvSIG Desktop. This tool provides a group of integrity rules that check the validation of the geometries relationship in the data. A new topology data model can be created for each project. This toolbox provides a set of tools to navigate, find, and fix validation errors different from each topology rule. There is a set of topology rules implemented, most of them at GSoC 2019. This project will analyze, implement, and optimize a new set of rules that will be incorporated into this framework. These tools can be created in Java or in Jython through the Scripting composer tool.

To the future, in order to continue developing the project, some of the possible improvements would be implemented more actions, improve the existent rules, and develop new rules. Another possible and challenging task is to focus on developing tools for 3D processing.

Table of Contents

Wiki.

Video of the project.

State of the Project Before GSoC 2020.

Initially, only a few topology rules have been implemented, most of them are still pending to be developed. In GSoC 2019 several rules were added which give an important base set to the framework. These rules verify and validate the relationship between geometries and data.

Rules developed in GSoC 2019:

Must not overlap (Must not overlap polygon).
Contains null
Contains point
Must be coincident with
Must be covered by endpoint of
Points must be covered by line
Must be properly inside polygons
Must be disjoint
Must not have dangles
Must be larger than cluster tolerance

Link to the project carried out in Google Summer of Code 2019.

Google Summer of Code 2019 - Página Wiki habla Hispana.

Google Summer of Code 2019 - Pagina Wiki in Italiano.

Google Summer of Code 2019 - Wiki page in English.

Link to the repository 2019.

Value of GSoC Project.

Work done in GSoC 2020.

A new set of topology rules for vector datasets validation and fixing was improved, expand the existing one, and expand the actions implemented by the rules.

Rules to develop in the 2020 edition:

With the purpose of continue progressing a lot of research was needed, the investigation has been very interesting and also was very demanding. With the help of mentor Carlos, his recommendations for materials to investigate it was possible to arrive on time according to the schedule. We were working on about the changes in the topology framework, in which the ExpressionEvaluatorLocator was divided into two, one focused on the use of geometries and one for general use. Was necessary to investigate the source code, watch videos, and read articles to continue progressing with the project.

The solution presented by the rules with the new actions developed, the Mark Actions, marks the errors and presents the geometry. With these actions the rules not only lead to where the error is but also, provide geometry.

Mark actions:

In summary, these new implementations visually help to identify errors, and geometry is provided, allowing to speed up the process in correcting and editing errors.

A great challenge was the rule Must not have gaps, here it was necessary to make a workaround to access the number of lines in the report since we still have no way to generate a layer of output errors through the topology framework. So, the solution was to go through the components of the graphical interface of gvSIG until reaching the jtable and then a layer is created directly in view and the geometry is loaded into it.

In this rule, the solution that is reached will depend on the criteria used by the user based on the tolerance that he determines, according to the defined tolerance will be the result obtained. Here the tolerance has to be greater than the distance between the polygons for it to detect the gap.

Furthermore, two accessory functions had to be implemented to obtain a satisfactory solution, since to, detect the gaps when applying the "difference" method did not give good results, this gave rise to the "checkGaps" and "findGaps" functions. Within the latter function, after applying "difference", a specific clean was developed for this rule. Despite all the progress made, more time still needs to be spent testing the rules.

To guarantee the quality of the rule was created the specific clean method, which eliminates the inconsistencies that may cause the result to be not the desired one. Therefore, it is identified as invalid, imprecise or incomplete data. This process has several stages: defining and determining the types of errors, finding them, identifying them, and correcting them.

Result using the difference method:

4

Result of the previous step using the difference method and doing a custom made clean method:

5

Result using the difference method:

6

Result of the previous step using the difference method and doing custom made clean method :

7

Project State.

All the rules were completed, are working, and were integrated with the Topological Framework.

In the present, the project has an important set of topological rules implemented. With the development of the rules, it is possible to avoid having to do the analyzes, corrections of layers, and entities manually. This development automating the tasks allowing the user to focus on the business logic, leaving aside the repetitive tasks, and optimizing the use of time.

State of the Rules.

All the rules are working but they need to be tested more thoroughly. In them it is evaluated the type of geometry, if it is simple or multipart geometry, the type of D2 or D2M or 3D geometry, if it is geometry 3D it is displayed: "Unsupported geometry subtype". It is also controlled when geometry types are not standard and inherits from a standard type. In this situation it is implemented geometryType1.isTypeOf() instead of geometryType1.getType(). Furthermore was implemented the new actions: "Mark actions".

The addition that the project brings to the software.

A new set of topology rules with new actions for vector datasets validation and fixing is implemented, which improves and expands the existing before. Furthermore, new implementations were discovered to follow improving the topology framework.

Motivation.

After participating in GSoC 2019, the main motivation was to return working in such a motivating context, in which it is possible to work and learn a lot at the same time. Besides continuing the started in 2019 to achieve a more robust solution not only in the number of rules but also and progress in the quality of the solution provided by each rule. Another motivating aspect is that while the project progresses new ideas and possibilities emerge, while more things to learn appear, also increases the desire to continue investigating and developing but time is undoubtedly a tyrant.

Being able to work in this way is very motivating, undoubtedly there is much to improve but I am happy to share what we accomplish together with the mentors and the developer community.

Finally, another aspect that motivates me is the fact that another student could take as a reference the work made in 2019 as the base for the development of their project, without a doubt this encourages to me to continue improving the quality of the work developed and that others can use it and facilitate their work. I think that this and the interaction with the community is the main spirit of GSoC.

Challenges.

The most challenging part of participating in GSoC is the time, it is required a lot to research. The investigation has been very demanding and so it was a challenge to be on time with everything established in the schedule. Since the topology framework is under development and is constantly being improved, both the code and the documentation is being improved also, so one does not have a base of documentation or books that tell how to do things but rather I have to watch videos, read source code and make a lot of questions to the mentor to be able to advance. Also, it is necessary to have to be creative in order to overcome difficulties.

Final Week Report (August 24th - August 31st).

Period.

  • August 24th (beginning)- August 31st (deadline)

Report.

  • What did I complete this week?

    • Final optimizations.
    • Release of each rule.
    • Final Report
    • Submit the developed code and documentation.
    • Pull request of the rules to the gvSIG repository.
    • Submit Final work product and evaluations.
  • What am I going to achieve for next week?

    • Keep in touch with the community.
  • Is there any blocking issue?

    No, there is not any blocking issue. The project could be completed.

Releases.

In this section, it is provided a direct link to the releases.

Rule image

Rule image

Rule image

Rule image

Rule image

Rule image

Repositories.

Own repository.

Own repositories in which I worked.

gvsig Association repository.

gvsig Association repository where all the project rules are.

Deliverables.

A new set of topology rules for vector datasets validation and fixing, that improve and expand the existing one:

Using the Framework.

Below are detailed steps to follow in order to use the development.

How the topology framework works.

The following video shows the interface and how the topology framework works: VIDEO

Video published in blog gvSIG, link: https://blog.gvsig.org/2019/02/12/towards-gvsig-2-5-topology/

Deploy Manual and Getting Started.

The steps of how to perform the installation process are detailed in the document: Topology Rules for gvSIG Desktop: Development guide

There is also useful information on how to start, pre-requisites, installation, and tutorials in New rules for the Topology Framework in gvSIG Desktop

Future of the project.

In order to continue developing the project in the future, some of the possible improvements could be, make the analysis for 3D geometries, continue with the testing, implement more actions, develop more rules, continue improving the documentation and extend the interaction with the topology framework, so that these improvements allow in the future doing many of the functions that now have to be done by going through the elements in the gvSig view.