Projets-2016-2017-GeoDiff

From air
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)

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 used doesn't allow null/empty JSON objects
    • To do:
      • Add options to filter output data
  • Created test sets to check if the Java tools is consistent in regard to the GeoJSON standard
    • Done:
      • Test sets in GeoJSON to facilitate the checks in Java
      • All the geometrical structures have been tested (Point, MultiPoint, LineString, MultiLineString, Polygon, MultiPolygon) with consideration of the height
    • To do:
  • 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
    • To do:
      • Code cleanup
      • Add geodiff-type property to all features
  • To do:
    • Merge the map view and data inputs (web interface)