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

From OSGeo
Jump to navigation Jump to search
Line 113: Line 113:
 
   √ [ Weekly report.]
 
   √ [ Weekly report.]
  
=== June 24th (beginning)- June 28th (deadline).===
+
=== June 29th (beginning)- July 03rd (deadline).===
 
* √ Submit Evaluations.
 
* √ Submit Evaluations.
  

Revision as of 15:54, 14 May 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: Óscar Martínez, Carlos Colombana.

Repository: [].

[ 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

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:

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

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:

  • [ 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).]

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 - June 01st)

  • 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 page to keep track of weekly progress.
  • Introduce myself and the project on OSGeo's SOC mailing list.
  • Improve in the creation of scripts.

Coding Period

First Evaluation Period (May 27th - June 23rd)

  • 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)
 √ Topological rule: Must not overlap with (Must not overlap line).
 √ Analyze, design and develop required Classes.
 √ Analyze, design and develop interactions with  data sources.
 √ [ Weekly report.]

  • Week 4 (June 22nd - June 28th)
 √ 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 24th - July 21st)

  • Week 5 (June 24th - June 30th)
 √ Study of the rule. Complete analysis of names, descriptions, solution to be performed, actions, solution per action
and all the requirements following the steps established in the document: Topology Rules for gvSIG Desktop: Development guide.
 √ Topological rule: Points must be covered by line.
 √ Add in the rule of week 1: Must be coincident with, the corresponding study to work with multipoint layers.
 √ Test and debug the developed code.
 √ Document the entire process.
 √ Weekly report.
  • Week 6 (July 1st - July 7th)
 √ Topological rule: Points must be covered by line.
 √ Optimize algorithms.
 √ Test and debug the developed code.
 √ Improve documentation explaining how the rules work when the layers are multipart.
 √ In-depth study of the code, and implementation with multipart geometries.
 √ Implementation study with 2D, 2DM and 3D geometries.
 √ Document the entire process.
 √ Weekly report.
  • Week 7 (July 8th - July 14th)
 √ Study of the rule. Complete analysis of names, descriptions, solution to be performed, actions, solution per action
and all the requirements following the steps established in the document: Topology Rules for gvSIG Desktop: Development guide.
 √ Topological rule: Must be properly inside polygons.
 √ Optimize algorithms.
 √ Improve documentation explaining how the rules work when the layers are multipart.
 √ In-depth study of the code, and implementation with multipart geometries.
 √ Implementation study with 2D and 2DM geometries.
 √ Test and debug the developed code.
 √ Document the entire process.
 √ Weekly report.
  • Week 8 (July 15th - July 21st)
 √ Topological rule: Must be properly inside polygons.
 √ Test and debug the developed code.
 √ Document the entire process.
 √ Optimize algorithms.
 √ Weekly report.

July 22nd (beginning)- July 26th (deadline).

  • √ Submit Evaluations.

Third Evaluation Period (July 22nd - August 18th)

  • Week 9 (July 22nd - July 28th)
 √ Study of the rule. Complete analysis of names, descriptions, solution to be performed, actions, solution per action
and all the requirements following the steps established in the document: Topology Rules for gvSIG Desktop: Development guide.
 √ Code optimizations and optimize algorithms.
 √ Topological rule: Contains point.
 √ Adaptation of the previous rules to the changes implemented in the framework.
 √ Test, debug and improve the developed code.
 √ Document the entire process.
 √ Weekly report.
  • Week 10 (July 29th - August 4th)
 √ Adaptation of the rules to the changes implemented in the framework. 
 √ Rule optimization: Must be coincident with and Points must be covered by line.
 √ Topological rule: Contains point.
 √ Test, debug and improve the developed code.
 √ Document the entire process.  
 √ Weekly report.
  • Week 11 (August 5th - August 11th)
 √ Adaptation of the rules to the changes implemented in the framework. 
 √ Rule optimization: Must be covered by endpoint of and Must be properly inside polygons.
 √ Make further changes in the code to improve the functionalities.
 √ Improve existing documentation.
 √ Test, debug and improve the developed code.
 √ Weekly report.
  • Week 12 (August 12th - August 18th)
 √ Make further changes in the code to improve the functionalities, code optimizations and optimize algorithms.
 √ Improve existing documentation.
 √ Weekly report.
  • Week 13 final project week - August 19th (beginning)- August 26th (deadline).
Final Report.Spanish wiki page.Italian wiki page.English wiki page.
 √ Creation of installation packages.
 √ Final optimizations and improves in documentation and code.
 √ Pull request of the rules to the gvSIG repository.
 √ Submit Final work product and evaluations.

Weekly Reports

Section for listing the links to the weekly reports.

Releases

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

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.