Google Summer of Code 2017

List your Google Summer of Code 2017 Ideas Here!

Ideas from previous years are available at corresponding pages:

OSGeo GSoC 2017 Page

Possible [co]mentors, please add yourself to list below and to description on idea you want to mentor:
  • Alexander Bruy

Use a second level heading for your project idea (see mini-template below).

My Project

Proposed by: Anonymous
Possible mentor:

  • Create cool stuff
  • Make QGIS better

PySAL library integration to QGIS Processing

Proposed by: Alexander Bruy and Eurico Nicacio
Possible mentor: Alexander Bruy

Python-based Spatial Analysis Library (PySAL) is a widely known library used by Python programmers and GIS users in spatial analysis tasks. As referred in its launching and review article, PySAL has possible interactivity with a good number of desktop software, open spatial analytics middleware and web, cloud and distributed open geospatial analytics for decision support.

Additionaly, thinking on the OSGeo community, more specifically on the QGIS community, it is also widely known the importance and potentiality of Processing tool and its provision of seamless integration of geoprocessing tools from a variety of differente software libraries. As an object-oriented Python framework, it overcomes issues with previous implementations of geoprocessing tools in QGIS and it is developed, nowadays, in order to avoid the need for duplication of development effor by directly integrating mltiple libraries.

The union of these two state-of-art ideas brings us to this GSoC project idea: the integration of PySAL library to QGIS Processing.

Deeper development details are still being discussed.

General Processing improvements

Proposed by: Alexander Bruy
Possible mentor: Alexander Bruy

While Processing framework is constantly improved, there are many different issues to solve:
  • Remove duplicated algorithms
  • Identify commonly used code and move it into tools package
  • Refactor overengineered algorithms
  • Improve stability and speedup slow algorithms
  • Better handling of outputs. Currently Processing has very limited support for saving files in different formats(there is no way to set additional options like in QGIS "Save as" dialog, saving in formats other than shapefile is a bit tricky, etc)
  • GUI review and improvements. Processing GUI still needs some polishing: all dialogs should be as small as possible, we should use Qt Designer ui files where possible. Another topic is icons for algorithms and outputs in modeler, more user-friendly way to reconnect algorithms and outputs in modeler etc.
  • Graphical Modeler needs some love: there is no undo/redo support, nor copy/paste support for algorithms/inputs blocks, etc
  • Testing framework. We already have test suite for Processing integrated with main QGIS test suite. But tests coverage is very limited, it is necessary to extend it.

Improve vector geoprocessing algorithms

Proposed by: Alexander Bruy
Possible mentor:

Vector geoprocessing is important GIS functionality. Unfortunately, using QGIS lacks of the reliable and fast geoprocessing tools. There is fTools plugin, but its alforithms are very slow and unreliable. Also they can not be used from other plugins. There is also C++ port of this algorithms in QGIS analysis library, but it is also not optimal (this is just direct port of the Python code). Project may include next tasks:
  • develop set of the most common geoprocessing algorithms as a part of QGIS analysis library
  • integrate this alforithms in Processing framework
  • use multiple CPU cores to speedup algoroithms where possible
  • if time allows add more geoprocessing tools

Improve Resource Sharing plugin and add it to core

Proposed by: Alexander Bryu
Possible mentor:

Last year Resource Sharing plugin was developed. It would be nice to improve it and put it in core replacing Plugin Manager and other similar stuff.

Seamless Mapping in QGIS from R

Proposed by: Barry Rowlingson
Possible mentor: Barry Rowlingson

The R statistical software system is well known for its statistical power and depth, but its interactive graphics
and interface building lag behind modern systems. This project aims to leverage QGIS' cartography to enable R
users to quickly add and style spatial data from R in a QGIS map canvas. A current prototype exists but has
several shortcomings:

  • Single thread - either R or the QGIS Map Canvas is blocking
  • Linux only - uses the rPython package which is not available for Windows

Other approaches to integrating the two systems could work around these problems. One possible approach would be
to implement a remote control API for QGIS over a network socket, although this brings additional complications
and security issues; or the use of timers and events on the QGIS side to respond to R whilst keeping both
applications unblocked.

The outcome would be an R package making all QGIS' cartographic features available to the cohort of R
users who work with spatial data.

Development of a WCS 2.0 plugin

Proposed by: Julia Wagemann
Possible mentor: Julia Wagemann

OGC Web services (OWS) are standardised web-based services for geospatial data access, display and processing. A OGC Web Coverage Service (WCS) offers access to large volumes of multidimensional geospatial data (coverages) sets in a standardised way. Web Coverage Services are especially of interest for data providers and data users alike, as a data user has on-demand web-based access to the real data values with out the requirement to download large volumes of data. A data provider benefits as data download is generally minimized.

By default, QGIS supports Web Coverage Service 1.0 specification. This specification has some limitations, as it is only able to describe two dimensional coverages. WCS 2.0 is the successor of WCS 1.0 and has some important improvements, one of those is the support of multi-dimensional coverages. Web Coverage Services 2.0 are more and more implemented by large data centres, but there are hardly any clients for Web Coverage Services 2.0, apart from customized solutions.

The aim of this project would be the development of a QGIS plugin that allows data access, loading and display directly from Web Coverage Services based on version 2.0.

Development of geospatial workflow examples in Jupyter Notebooks

Proposed by: Julia Wagemann
Possible mentor: Julia Wagemann

Jupyter Notebooks benefit geospatial data analysis in multiple ways as geo data access, manipulation and (interactive) visualization can be combined in one workflow and programming environment.
The aim is to develop a set of used-cases from different communities to showcase how Jupyter Notebooks are beneficial for the generation of entire geospatial data analysis workflows, from data access to data manipulation and data visualisation. Examples could harness QGIS modules, and in the best case, open environmental data.
This project is very explorative and the final outcome could also be a list of requirements in order to advance with QGIS / Jupyter integration.