Google Summer of Code 2015 Results

@ 
OSGeo participated in Google Summer of Code 2015 with 13 projects, all successful:
* GDAL - Faza Mahamood: Integration of GDAL utilities into GDAL core library
* GRASS GIS - Matej Krejci: Improved Metadata for GRASS GIS
* gvSIG - Eva Rodríguez: Port Network Analysis Extension to gvSIG 2.x branch
* istSOS - Luca Ambrosini: Scalability for Big data processing for istSOS
* JGRASSTOOLS - Silvia Franceschi: Development of a simple 1D hydraulic model for JGRASSTOOLS
* MapServer - Samuel Lapointe: Add productivity tools to MapServer's ScribeUI
* Opticks - Tom Van den Eynde: Image Enhancement/Background Suppression for Opticks
* OTP - Nipuna Gunathilake: GTFS-Realtime validation tool for Open Trip Planner
* OSGeo-Live - Massimo Di Stefano: Integration of geospatial OSS in educational notebooks
* OSSIM - Martina Di Rita: OSSIM tool for DSM generation using tri-stereo and SAR imagery
* pgRouting - Sarthak Agarwal: New osm2pgrouting import tool to import OpenStreetMap (OSM) data in pgRouting
* PyWPS - Calin Ciociu: REST interface for PyWPS 4
* QGIS - Marcus Santos: QGIS - Multithread support on QGIS Processing toolbox
Update: the results of GSoC 2015 were also presented at FOSDEM 2016 on 31st January 2016 at the Second Edition of the Geospatial Devroom
== Description of the projects ==
=== Example: software XYZ - title of my GSoC project ===
Student1 (picture)
* Mentors: Mentor1; Mentor2; OtherMentors?
* Brief description of the idea. e.g. "My project focused on xxx".
* The state of the project as it was BEFORE your GSoC. For example, if you made a GUI, you can say: "In the software XYZ, when I wanted to use the tool xxx, I had to manually edit the file yyy. "
* The addition that your project brought to the software. In the same example: "With the GUI that I created, now it is possible to use the tool xxx via graphical user interface".
* Add all the links (hopefully permanent) to access the relevant code and documentation for the user to get started with testing your application. "Please test my code following instructions here". 
* Slide The slide / image should serve to show the main elements of your project. It could be a flow chart, a screenshot, both, or whatever you think could serve for the scope. Remember: the aim is to showcase your project to people that are not necessarily familiar with the software.
=== GDAL - Integration of GDAL utilities into GDAL core library ===
Faza Mahamood (Picture)
* Mentor: Even Rouault
* There is a need for calling GDAL utilities from code without involving system calls, to be able to work on in-memory datasets and use progress/cancellation callback functions.
* Before, inorder to use any functionalities of GDAL utilities in a program, the developer had to use system calls. Even then, the developer cannot work with in memory datasets.
* Now, the developers can easily have all the functionalities of GDAL utilities through dedicated functions which are part of GDAL core library. There is no system call involved and it works on in-memory datasets.
* Project: https://trac.osgeo.org/gdal/wiki/rfc59.1_utilities_as_a_library
=== GRASS GIS - Improved Metadata for GRASS GIS ===
Matej Krejci (Picture)
* Mentors: Martin Landa, Angelos Tzotsos, Luca Delucchi
* Description: The first aim was to improve current package by adding a new functionality for extend metadata handling. The second goal was to implement module for interaction with metadata catalogue services (CSW).
* State of the project before GSoC: In 2014 during GSoC I have developed new GRASS GIS metadata management support based on ISO-INSPIRE. This package needed extension to meet the users requirements. In addition package for CSW searching was missing. 
* Addition to the project: New module g.gui.cswbrowser based on graphical interface allows managing csw connections, setting filter and searching, browsing results and adding services to GRASS GIS have been implemented. For g.gui.metadata have been added support: exporting metadata reports to pdf, storing themes of metadata in SQL backend, publishing metadata to CSW and metadata support for Temporal datasets. 
* Slide: https://grasswiki.osgeo.org/w/images/Find1.png
Links:
* Project: https://grasswiki.osgeo.org/wiki/ISO/INSPIRE_Metadata_Support
* Development page 2015: https://trac.osgeo.org/grass/wiki/GSoC/2015/ImprovedMetadata
* source SVN: http://svn.osgeo.org/grass/grass-addons/grass7/gui/wxpython/wx.metadata/
=== gvSIG - Port Network Analysis Extension to gvSIG 2.x branch ===
Eva Rodríguez Picture
* Mentors: Joaquín José del Cerro, Fran Peñarrubia
* Description: The aim was to develop a plugin to migrate all features of route calculation from the 1.* gvSIG version to the latest one. 
These are the main tasks:
     - Route management to get the shortest path 
     - Optimizing the order of stops on a route 
     - Calculation of service areas 
     - Location of the nearest event 
     - Calculate matrices Origin - Destination 
     - Calculation of minimum spanning tree 
* State of the project before GSoC: All of this functionality does not exists into 2.* gvSIG version.
* Now, users can use some functionality that esited in the 1.* gvSIG version.
Links:
* GSoC proposal https://wiki.osgeo.org/wiki/GvSIG_GSoC_2015_Ideas
* Weekly reports https://redmine.gvsig.net/redmine/projects/gvsig-networkanalysis/wiki
* Installers https://redmine.gvsig.net/redmine/projects/gvsig-networkanalysis/files
* Source SVN http://devel.gvsig.org/svn/gvsig-networkanalysis/
* Documentation network plugin 
http://docs.gvsig.org/plone/docdev/docs/desarrollo/plugins/redes/
* Case of use http://docs.gvsig.org/plone/docusr/acceso-editores/funcionalidades/servicio-de-callejeros/aplicaciones-tutoriales/CASO-2-calculo-de-rutas/?searchterm=redes
=== istSOS - Scalability for Big data processing for istSOS ===
Ambrosini Luca (Picture)
* Mentors: Massimiliano Cannata, Milan Antonovic
* Brief description of the idea : istSOS is essentially a data collector, it wasn't ready for BigData, the idea was to implement data replication to improve security, online time and performance.
* The state of the project before GSOS : All data were hosted on a single postgres db, and there wasn't a tool that helps finding this implementation limits.
* The addition that your project brought to the software : We adapted the source code to work with replications, we set up a middleware that balances query among multiple database server, and we realized a benchmarking tool to test system response time and its scaling .
* Gsoc Reports : https://sourceforge.net/p/istsos/wiki/GSoC_2015_scalability/
* Slide http://i.imgur.com/EACzyxf.png
=== JGrassTools - Development of a simplified 1D hydraulics model ===
Silvia Franceschi (Picture)
* Mentors: Andrea Antonello, Riccardo Rigon
* Description: The module developed during this GSoC2015 is SaintGeo, a simple 1D hydraulic model based on the equations of Saint Venant. 
* State of the project before GSoC: There was an original implementation of the model in C language done during a master thesis by Angelo Zacchia and Riccardo Rigon. I did the porting in the JGrassTools library of the model together with the implementation of the code for reading and writing GIS layers as input and outputs.
* Addition to the project: The new model bases on GIS input layers instead of text files and has a graphical interface, directly provided by the integration in the JGrassTools library to specify the inputs and outputs files.
* Slide: https://github.com/moovida/jgrasstools/wiki/gsoqc2015imgs/a_profile_qin_monte_laterali_in_out10.png
Links:
* Project: http://www.jgrasstools.org
* Development page 2015: https://github.com/moovida/jgrasstools/wiki/Google-Summer-of-Code-2015
* Source: https://github.com/moovida/jgrasstools/tree/master/hortonmachine/src/main/java/org/jgrasstools/hortonmachine/modules/hydrogeomorphology/saintgeo
=== Mapserver - Add productivity tools to MapServer's ScribeUI ===
Samuel Lapointe (Picture)
* Mentors: Daniel Morissette; Jessica Lapointe
* Description: The goal of the project was to improve the error detection system, add the ability to export and import maps and add a way to generate a set of classes from data.
* State of the project before GSoC: When I wanted to debug a map that didn’t work, I had to check the generated Mapserver file to find the error. To create classes from a set of data, I had to analyse the data and create the classes using bounds I had manually calculated, and the only way to export a map was to use Git.
* Addition to the project: Now, I can see most syntax errors directly in the editor’s interface, I can use a menu to generate classes for a layer and I can export or import maps to share them with other users.
* Slide: https://drive.google.com/file/d/0B686XfUqwP1LMm5GaVV0ckZ1b2c/view?usp=sharing
Links:
* Project page: https://github.com/mapgears/scribeui
* Getting started: https://github.com/mapgears/scribeui/wiki/Getting-started-with-ScribeUI
* Demo: http://demo.scribeui.org/
=== Opticks – Image Enhancement/Background Suppression ===
Tom Van den Eynde (Picture)
* Mentors: Trevor Clarke
* Brief description of the idea: The goal of the project was to implement the image enhancement algorithm Drizzle for both image and video input.
* The state of the project as it was before GSoC: In Opticks, when I wanted to use a low resolution image I had to resort to other software to first improve the quality or reduce the noise interference.
* The addition to the software: With the addition of the Drizzle algorithm, Opticks can enhance and improve the interpretability of images. Now, even low resolution or heavily noise polluted images can be used for various remote sensing applications.
* Slide: https://goo.gl/photos/szt3RW3X93v2ccZi9
Links:
* Project: https://www.google-melange.com/gsoc/project/details/google/gsoc2015/tomvde/5733935958982656
* Blog: http://drizzle-for-opticks-gsoc2015.blogspot.be/
* Repository: https://github.com/Tom-VdE/Drizzle-plugin
* Instructions: https://github.com/Tom-VdE/Drizzle-plugin/blob/master/README.md
=== OTP - GTFS-Realtime validation tool for Open Trip Planner ===
Nipuna Gunathilake (Picture)
* Mentors: Sean Barbeau, Stefan Steiniger
* Brief description of the idea:The goal of this application is to be able to validate feeds of General Transit Feed Specification Real Time (GTFS-RT)feeds.
* The state of the project as it was BEFORE this GSoC: There was no application that could monitor and validate GTFS feeds. This is problematic for implementor of the standards as it becomes difficult to identify and address issues in the feed information generated.
* The addition to the software: My GSoC project has created a basic appilcation that can be used to monitor GTFS-RT feeds. This application provides the users with the ability to monitor a feed at a given URL with the associated GTFS file. 
Links:
* Installation instructions: https://github.com/CUTR-at-USF/gtfs-realtime-validator/wiki
* Repository: https://github.com/CUTR-at-USF/gtfs-realtime-validator
=== Osgeo-Live - Integration of geospatial OSS in educational notebooks ===
Massimo Di Stefano (Picture)
* Mentors: Cameron Shorter, Rich Signell, Angelos Tzotsos 
* Brief description of the idea:This GSoC 2015 Idea will focus on the development of a cross-projects python library with the aim of bridging together the several software libraries already installed on the live through the use of the Jupyter notebook server in a series of "topic-oriented" geospatial notebooks.
* The state of the project as it was BEFORE this GSoC: before this GSoC there was no jupyter-notebook installed and very limited set of example based on the IPython-notebook.
* Addition to the software: After GSOC 2015 an installer for the jupyter-notebook has ben developed (enabling multiple kernels [py2, py3, R, Bash, Julia]) and a series of geospatial notebooks to show the usage of several project like GDAL, OSSIM, GRASS has been added. The project also included the building on Debian​ packages for the jupyter single user ecosystem and the collaborative development of widget for interactive visualization of geospatial data from a notebook (CesiumWidget) 
Relevant links:
* GSoC Proposal: https://wiki.osgeo.org/wiki/Live_GIS_GSoC_2015
* Weekly reports: https://github.com/epifanio/IPython_notebooks/tree/master/OSGeo-live/osgeolive-gsoc-2015/Report
* Repository: https://github.com/epifanio/OSGeoNotebooks
* Demo CesiumWidget, video
* Slide 
=== OSSIM - Tool for DSM generation using tri-stereo optical imagery ===
Martina Di Rita (You can find a picture of me)
* Mentors: Oscar Kramer, David Burken
* Brief description of the idea: the work has been based on a previous GSoC project through which a tool, named DATE, for Digital Surface Model (DSM) generation from optical stereo-pair was developed within OSSIM framework. The idea was to improve and update DATE in order to generate DSMs from tri-stereo optical imagery and fix some bugs in the DSMs generation processing chain. DATE key features include the use of computer vision algorithms in order to improve the processing efficiency and make the DSMs generation process fully automatic.
* The state of the project as it was BEFORE this GSoC: before this GSoC it was not possible to process tri-stereo imagery and there was still some problem in finding the right quasi-epipolar geometry in the stereo version in order to compute a proper Disparity Map.
* Addition to the software: with DATE plug-in it is now possible to generate DSMs within OSSIM framework starting from stereo and tri-stereo satellite optical imagery. Furthermore, from the stereo processing side, I added an image preprocess filtering and I found a better solution for the quasi-epipolar geometry achievement. 
Relevant links:
* GSoC Proposal: https://www.google-melange.com/gsoc/proposal/review/student/google/gsoc2015/martidi/5717271485874176
* Weekly reports: https://trac.osgeo.org/ossim/wiki/OSSIMtoolForDSMgenerationFromTristereoAndSARimagery
* Please test my code in https://github.com/martidi/opencv_dsm/tree/master following the instructions in README.md file 
* Slide The slide / image should serve to show the main elements of your project. It could be a flow chart, a screenshot, both, or whatever you think could serve for the scope. Remember: the aim is to showcase your project to people that are not necessarily familiar with the software.
=== pgRouting - New osm2pgrouting import tool to import OpenStreetMap (OSM) data in pgRouting ===
Sarthak Agarwal (Picture)
* Mentors: Daniel Kastl, Vicky Vergara
* Brief description of the idea: The idea for this year GSOC project was to update the existing osm2pgRouting tool which helps users to import open source osm data into pgRouting database tables.
* The state of the project as it was BEFORE this GSoC: Before the gsoc project the tool lack support for boost library and the code was to be refactored and commented. The code was not documented and the tool on a whole needed documentation(WIKI pages)
* Addition to the software: After GSOC 2015 support for boost library such as boost.program_options and boost.geometry has been added to the software. Now user can give options in any order while running the software and boost will do the parsing. The code was not commented and refactored, which was updated. Several wiki pages are added to better understand the tags used for routing present in osm data and all the attributes related to those tags. The link to the wiki page can be found below.
Links:
* GSoC Proposal
* Weekly reports
* Repository
=== PyWPS-4 – REST Interface ===
Calin Cristian Nicolae Ciociu (Picture)
* Mentors: Jachym Cepicky, Luís de Sousa
* Brief description of the idea: My project added the ability to use a REST interface to control, add, remove processes and change configuration of PyWPS-4 instances.
* The state of the project as it was before GSoC: We had to create/delete the processes by accessing the storage of the server which required a restart of the server every time something got changed.
* The addition to the software: With the addition of the REST interface I wrote everyone who needs to update, delete, or add new processes and change configuration can do so without accessing the server.
* Slide: http://i.imgur.com/oYAHsgQ.png
Links:
* Project: http://www.google-melange.com/gsoc/project/details/google/gsoc2015/noctalin/5717271485874176
* Repository: https://github.com/jachym/pywps-4
* Instructions: https://github.com/PyWPS/pywps-4-demo/blob/master/README.rst
=== QGIS - Multithread Support on Processing Toolboxt ===
Marcus Santos (Picture)
* Mentors: Victor Olaya, Alexander Bruy
* Description: This project consisted on making the QGIS Processing toolbox multi-threaded, allowing to have non blocking analysis/geoprocessing jobs, prevent crashes (when a QGIS module crashes for some reason) and also improve the user experience.
* The state of the project GSoC: Before the multithreading support, the user was only able to run one analysis at a time and there was no option to cancel the algorithm execution.
* The addition to the project: With multithreading support the user is allowed to cancel long geoprocessing jobs and also run several algorithms at the same time. 
* Slide: https://www.dropbox.com/s/fmaxf97jkmf2cy1/slide.png?dl=0
Links:
* Project page: https://qgisgsoc2015.wordpress.com
* Repository: https://github.com/mvcsantos/QGIS
* Demo: https://www.youtube.com/watch?v=V-CJCnKw89U
Category:Google Summer of Code