Difference between revisions of "New rules for the Topology Framework in gvSIG Desktop ( GSoC 2020 )"

From OSGeo
Jump to navigation Jump to search
(5 intermediate revisions by the same user not shown)
Line 72: Line 72:
 
== Deliverables==
 
== Deliverables==
 
A new set of topology rules for vector datasets validation/fixing, that will improve and expand the existing one:
 
A new set of topology rules for vector datasets validation/fixing, that will improve and expand the existing one:
* [https://github.com/Maureque/GSoC2020-topology-osgeo-gvsig/wiki/3.-Must-be-covered-by-boundary-of Must be covered by boundary of.]
+
* [https://github.com/Maureque/TopologyRuleMustBeCoveredByBoundaryOfPoint Must be covered by boundary of.]
* [https://github.com/Maureque/GSoC2020-topology-osgeo-gvsig/wiki/4.-Must-not-overlap-with-(Must-not-overlap-line) Must not overlap with (Must not overlap line).]
+
* [https://github.com/Maureque/TopologyRuleMustNotOverlapWithLine Must not overlap with (Must not overlap line).]
* [https://github.com/Maureque/GSoC2020-topology-osgeo-gvsig/wiki/5.-Must-not-have-gaps Must not have gaps.]
+
* [https://github.com/Maureque/TopologyRuleMustNotHaveGapsPolygon Must not have gaps.]
* [https://github.com/Maureque/GSoC2020-topology-osgeo-gvsig/wiki/6.-Must-be-inside-(line) Must be inside (line).]
+
* [https://github.com/Maureque/TopologyRuleMustBeInsideLine Must be inside (line).]
* [ Must not intersect (line).]
+
* [https://github.com/Maureque/TopologyRuleMustNotIntersectLine Must not intersect (line).]
 
* [ Must not intersect with (line).]
 
* [ Must not intersect with (line).]
  
Line 158: Line 158:
  
 
* Week 8 (July 20th - July 26th)
 
* Week 8 (July 20th - July 26th)
 +
√ Developed action [https://github.com/Maureque/TopologyRuleMustBeInsideLine/blob/master/markLineAction.py Mark Line Action.] This action makes a new layer with red lines marks which corresponds to the lines selected in the error report. The action marks the errors in a clear visual way, then the user must choose what to do with them.
 
  √ [https://github.com/Maureque/TopologyRuleMustBeInsideLine Test and debug the developed code.]
 
  √ [https://github.com/Maureque/TopologyRuleMustBeInsideLine Test and debug the developed code.]
 
  √ Test and document existing code more thoroughly.   
 
  √ Test and document existing code more thoroughly.   
 +
√ [https://github.com/Maureque/TopologyRuleMustNotHaveGapsPolygon/blob/master/mustNotHaveGapsPolygonRule.py Improvements in the rule of the week 5: “Must not have gaps”.]
 
  √ [https://github.com/Maureque/GSoC2020-topology-osgeo-gvsig/wiki/6b.-Report-Week-8-(July-20th-to-July-26th) Weekly report.]
 
  √ [https://github.com/Maureque/GSoC2020-topology-osgeo-gvsig/wiki/6b.-Report-Week-8-(July-20th-to-July-26th) Weekly report.]
  
Line 167: Line 169:
 
=== Third Evaluation Period (August 01st - August 31st)===
 
=== Third Evaluation Period (August 01st - August 31st)===
 
* Week 9 (July 27th - August 02nd)
 
* Week 9 (July 27th - August 02nd)
  √ Topological rule: Must not intersect (line).
+
  √ [https://github.com/Maureque/GSoC2020-topology-osgeo-gvsig/wiki/7.--Must-not-intersect-(line) Topological rule: Must not intersect (line).]
 
  √ Analyze, design and develop required Classes.
 
  √ Analyze, design and develop required Classes.
  √ Analyze, design and develop interactions with  data sources.
+
  √ [https://github.com/Maureque/TopologyRuleMustNotIntersectLine Analyze, design and develop interactions with  data sources.]
  √ [ Weekly report.]
+
  √ [https://github.com/Maureque/GSoC2020-topology-osgeo-gvsig/wiki/7a.-Report-Week-9-(July-27th-to-August-02nd) Weekly report.]
  
 
* Week 10 (August 03rd - August 09th)
 
* Week 10 (August 03rd - August 09th)
  √ Test and debug the developed code.  
+
  √ [https://github.com/Maureque/TopologyRuleMustNotIntersectLine Test and debug the developed code.]
 
  √ Test and document existing code more thoroughly.   
 
  √ Test and document existing code more thoroughly.   
 
  √ [ Weekly report.]
 
  √ [ Weekly report.]
Line 204: Line 206:
 
* [https://github.com/Maureque/GSoC2020-topology-osgeo-gvsig/wiki/6a.-Report-Week-7-(July-13rd-to-July-19th) Report Week 7 (July 13rd - July 19th).]
 
* [https://github.com/Maureque/GSoC2020-topology-osgeo-gvsig/wiki/6a.-Report-Week-7-(July-13rd-to-July-19th) Report Week 7 (July 13rd - July 19th).]
 
* [https://github.com/Maureque/GSoC2020-topology-osgeo-gvsig/wiki/6b.-Report-Week-8-(July-20th-to-July-26th) Report Week 8 (July 20th - July 26th).]
 
* [https://github.com/Maureque/GSoC2020-topology-osgeo-gvsig/wiki/6b.-Report-Week-8-(July-20th-to-July-26th) Report Week 8 (July 20th - July 26th).]
* [ Report Week 9 (July 27th - August 02nd).]
+
* [https://github.com/Maureque/GSoC2020-topology-osgeo-gvsig/wiki/7a.-Report-Week-9-(July-27th-to-August-02nd) Report Week 9 (July 27th - August 02nd).]
 
* [ Report Week 10 (August 03rd - August 09th).]
 
* [ Report Week 10 (August 03rd - August 09th).]
 
* [ Report Week 11 (August 10th - August 16th).]
 
* [ Report Week 11 (August 10th - August 16th).]

Revision as of 15:28, 25 July 2020

Project

Project carried out within the program Google Summer of Code 2020.

Title: New rules for the Topology Framework in gvSIG Desktop.

Student: Mauro Carlevaro.

Mentors: Carlos Colombana, Óscar Martínez.

Repository: https://github.com/Maureque/GSoC2020-topology-osgeo-gvsig

Página Wiki habla Hispana.

Pagina Wiki in Italiano.

Wiki page in English.

Brief Description

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 provide 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 analize, implement and optimize a new set of rules that will be incorporated to this framework. This tools can be created in Java or in Jython through the Scripting composer tool.

State of the Project Before GSoC.

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

In the present the rules already developed are:

  • 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.

The addition that the project brings to the software.

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

Rules to develop in the 2020 edition:

The project documentation since the 2019 edition it is being developed in english, spanish and italian, in order to achieve more interaction with the community and make easier that more people use the tools developed and from these continue growing.

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

Deliverables

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

Timeline

Pre Coding Period

Pre-Bonding Period (March 16th - May 03rd)

  • Set up working environment, choose tools to be used in the project and set up repository.
  • Familiarize more deeply with the community.
  • Review and learn as much as possible about Python, Jython and Java.
  • Test the topology plugin and study the code of some rules that are already made.
  • Define all actions to develop for each rule.
  • Optimize the timeline and study if it is possible include more to develop.

Community Bonding Period (May 04th - May 31st)

  • Familiarize more deeply with the code, with the mentors of the project and with the documentation.
  • Study more deeply the Topology Framework API.
  • Study the algorithm for a correct implementation according to the established rules and actions.
  • Set up the development environment.
  • Interact with mentors, introduce myself to the community and actively get involved in the discussion.
  • Set up the wiki and repository page to keep track of weekly progress.
  • Introduce myself and the project on OSGeo's SOC mailing list.
  • Improve in the creation of scripts.
  • Report of what was done in the Community Bonding Period.

Coding Period

First Evaluation Period (June 01st - June 28th)

  • Week 1 (June 01st - June 07th)
Topological rule: Must be covered by boundary of.
 √ Analyze, design and develop required Classes.
 √ Analyze, design and develop interactions with  data sources.Weekly report.
  • Week 2 (June 08th - June 14th)
Test and debug the developed code.
 √ Test and document existing code more thoroughly.  
 √ Weekly report.
  • Week 3 (June 15th - June 21st)
 √ Improvements in the rule of the week 1: Topological rule: Must be covered by boundary of.
   I detail some of the most important changes:
     √ Actions developed:
         Delete Point Action
         Mark Point Action
     √ Added the possibility to pass the error characteristic (feature2).
     √ Improved for the use of the expression constructor.
 √ Topological rule: Must not overlap with (Must not overlap line).
 √ Actions developed:
     Delete Line Action
     Mark Line Action
 √ Analyze, design and develop required Classes.
 √ Analyze, design and develop interactions with  data sources.Weekly report.

  • Week 4 (June 22nd - June 28th)
Improvement of the developed code for the rule Must not overlap with.Test and debug the developed code.
 √ Test and document existing code more thoroughly.  
 √ Weekly report.

June 29th (beginning)- July 03rd (deadline).

  • √ Submit Evaluations.

Second Evaluation Period (June 29th - July 31st)

  • Week 5 (June 29th - July 05th)
Topological rule: Must not have gaps.
√ Analyze, design and develop required Classes.
√ Analyze, design and develop interactions with  data sources.Weekly report.
  • Week 6 (July 06th - July 12nd)
Test and debug the developed code.
√ Test and document existing code more thoroughly.  
√ Weekly report.
  • Week 7 (July 13rd - July 19th)
Topological rule: Must be inside (line).
√ Analyze, design and develop required Classes.
√ Analyze, design and develop interactions with  data sources.Weekly report.
  • Week 8 (July 20th - July 26th)
√ Developed action Mark Line Action. This action makes a new layer with red lines marks which corresponds to the lines selected in the error report. The action marks the errors in a clear visual way, then the user must choose what to do with them.
√ Test and debug the developed code.
√ Test and document existing code more thoroughly.  
√ Improvements in the rule of the week 5: “Must not have gaps”.Weekly report.

July 27th (beginning)- July 31st (deadline).

  • √ Submit Evaluations.

Third Evaluation Period (August 01st - August 31st)

  • Week 9 (July 27th - August 02nd)
Topological rule: Must not intersect (line).
√ Analyze, design and develop required Classes.
√ Analyze, design and develop interactions with  data sources.Weekly report.
  • Week 10 (August 03rd - August 09th)
Test and debug the developed code.
√ Test and document existing code more thoroughly.  
√ [ Weekly report.]
  • Week 11 (August 10th - August 16th)
√ Topological rule: Must not intersect with (line).
√ Analyze, design and develop required Classes.
√ Analyze, design and develop interactions with  data sources.
√ [ Weekly report.]
  • Week 12 (August 17th - August 23rd)
√ Test and debug the developed code. 
√ Test and document existing code more thoroughly.  
√ [ Weekly report.]
  • Final Project Week - August 24th (beginning)- August 31st (deadline).
√ Submit the developed code and documentation.
√ Submit Final work product and evaluations.

Weekly Reports

Section for listing the links to the weekly reports.

Releases

  • [ Must be covered by boundary of.]
  • [ Must not overlap with (Must not overlap line).]
  • [ Must not have gaps.]
  • [ Must be inside (line).]
  • [ Must not intersect (line).]
  • [ Must not intersect with (line).]

Testing Plan

The objective of the Testing Plan is to find errors from early stages of development. To achieve this, the development is tested in each sprint, therefore, it will be carried out throughout the development of the project. At the end of each sprint a test version of the project is available.

Tests will be carried out with different types of amounts, features and entities in the layers.

White box and black box testing were carried out.

Black box. The study is carried out from the point of view of the inputs and outputs. The internal structure, design and implementation of the item being tested are not known to the tester.

White box. The purpose is to check the execution flows in each unit. The tester chooses different input values to examine the possible execution flows and make sure that the correct output values are returned. It is a method of software testing that tests internal structures.

The tests provide valuable information to define the quality of the product in each sprint and check which ones must be fixed.

References

  • gvSIG Association. Martínez, Oscar. Topology Rules for gvSIG Desktop: Development guide. [online]. Available: Development Guide

Student Information

I am interested in automating procedures and business intelligence so that people can handle tasks that add value to them, instead of doing repetitive tasks, I think that this help to improving the quality of life. I believe that to achieve the best results it is essential to integrate work teams with people of great human value, for me it is important to always continue learning, be happy working and contribute so that others are too. I am passionate about traveling and knowing different cultures.

School and Degree:

  • Technological University (UTEC, Fray Bentos, Uruguay), Student of Bachelor of IT (2019-2022).
  • University of Engineering (ORT, Montevideo, Uruguay), Programmer Analyst (2014-2018).
  • University of Engineering (UdelaR, Montevideo, Uruguay), Cartographic Technician (2013-2016).

Computing experience

I have been working as a web developer and implementing geographic information systems. The technologies that i work with daily are: Java, Python, MySQL, PostgreSQL/PostGIS, Apache Tomcat and GeoServer.

GIS experience as a user

I have experience using gvSIG and QGIS. Thematic cartography course (Uruguay edition), dictated by The National Geographic Institute and the National Geographic Information Center of Spain. 40 hours duration. Participation in the webinar “gvSIG applied to wildlife and protected natural spaces", on October 14, 2014, made by MundoGEO and Asociación gvSIG, with 60 minutes duration.

GIS programming

Annex

Google Summer of Code 2020 - Test.