Projets-2016-2017-GeoDiff

From air
Revision as of 10:43, 3 April 2017 by Herve.Becher (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Preambule

The project subject GeoDiff

This project is handled by three Polytech students: AMAURIN Alexandre, BECHER Hervé, BROCHIER Aymeric

Project Presentation

The goal of this project is to identify the differences between two spatial data sets and visualize them.

Team

  • Supervisors: Nicolas Palix
  • Members: AMAURIN Alexandre, BECHER Hervé, BROCHIER Aymeric

Progress of the project

The project started January 14th, 2015.

Week 1 (January 09th - January 15th)

  • Project selection

Week 2 (January 16th - January 22th)

  • Project discovery
  • AIR page and GitHub project setup
  • Team organization
  • Software Requirement Specification

SRS

Week 3 (January 23th - January 29th)

Week 4 (January 30th - February 05th)

  • UML diagrams (Use Case and Sequence)

UML

Week 5 (February 6th - February 12th)

  • First look at Javascript and Leaflet
  • Finished first SRS version

Week 6 (February 13th - February 19th)

  • Progress at the level of the delta and at the level of the graphic display.

Week 7 (February 20th - February 26th)

  • Holiday break

Week 8 (February 27th - March 5th)

  • Rough interface (using Leaflet) for showing delta using layers
  • Files input and unique identifier selection

Week 9 (March 6th - March 12th)

  • Command-line tool (written in Java) development started
    • Pretty rough (prototype)
    • Done:
      • Delta computing module
      • Command-line argument parser (using jopt-simple) that currently takes two files and an optional unique identifier for each element
      • Support for GeoJSON as input files
      • Output delta as GeoJSON file, with each feature having additional properties used by GeoDiff tools (currently 'geodiff-type' which identifies the type of modification, i.e 'add', 'del', 'mod', or 'id')
    • To do:
      • Support more formats
      • Add abstraction layers for internal manipulation of data sets (adapters, etc.)
      • Allow the user to add his own module(s) for parsing input files
    • Technologies used:
      • Java
      • Gson (from Google) for manipulating JSON objects (under Apache License 2.0, GitHub repo)
      • GeoJSON addon for Gson (from user filosganga) that adds convenient structures and methods for manipulating GeoJSON objects (under Apache License 2.0, GitHub repo)
      • JOpt Simple for parsing command line options (under The MIT License, website)
  • Browser tool (JavaScript)
    • Done: (...)
    • To do: (...)
  • To do:
    • Merge the map view and data inputs (web interface)

Week 10 (March 20th - March 26th)

  • Command-line tool
    • Made internal data structures all use filosganga's geogson classes
    • Added parsers for reading and converting their input into our internal Element structure
      • Allows for simple modules for other formats
      • Currently GeoJSON and CSV supported
    • Added Javadoc
    • To do:
      • Improve the modularity of the program (=> better API)
      • Maybe write our own (simplified) data structures
  • Created test sets to check if the Java and JavaScript tools are consistent in regard to the GeoJSON standard
    • Done: tests on JavaScript
    • To do: tests on Java
  • Browser tool
    • Done: (...)
    • To do: (...)
  • To do:
    • Merge the map view and data inputs (web interface)

Week 11 (March 27th - April 2nd)

  • Command-line tool
    • Done:
      • Tests done and successful
      • Flaw detected: the parser doesn't allow empty (possibly null too?) JSON objects (like empty geometry objects)
    • To do:
      • Add options to filter output data
      • Javadoc
    • Done:
      • Tests (see section below) with a UI for easier testing
      • Squashed bugs in the comparison functions
  • Browser tool
    • Done:
      • Option to download a zip archive containing four files (additions, deletions, modifications and all three) in GeoJSON
      • Use of PHP to create the files
      • Add geodiff-type property to all features
    • To do:
      • Clean up code and improve security (for ex. prevent the modification of critical variables)
      • Merge the map view and data inputs - almost there
  • Tests
    • Test sets in GeoJSON to facilitate the checks in Java
    • All the geometrical structures have been tested: Point, MultiPoint, LineString, MultiLineString, Polygon and MultiPolygon (with consideration of the height for JavaScript)