Live GIS GSoC 2015

= OSGeo-Live Google Summer of Code ideas 2015 =

=Integration of geospatial OSS in educational notebooks=

About
OSGeo-Live is a self-contained bootable DVD, USB thumb drive or Virtual Machine based on Lubuntu, that allows you to try a wide variety of open source geospatial software without installing anything. It is composed entirely of free software, allowing it to be freely distributed, duplicated and passed around. It provides pre-configured applications for a range of geospatial use cases, including storage, publishing, viewing, analysis and manipulation of data. It also contains sample datasets and documentation.

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 [1] in a series of "topic-oriented" geospatial notebooks.

This work will not only include python libraries, but thanks to recently added support for different type of kernels, will support R, Octave Bash and more. Because it supports Bash, it is now possible to include in a notebook any command line tool installed on OSGeo-Live. Since one of the main goals of OSGeo-Live is for education, this  will  substantially improve the user experience in having access to many tools under the OSGeo umbrella. The OSGeo-Live user will learn how to bring all this software together as well as learn how to process geospatial data using other standard scientific tools for data exploration. Each notebook will guide the user on how to build new information from the dataset already available on the OSGeo-live disc.

The "topic-oriented" notebooks can include : ...
 * I/O raster and vector data (import export between several formats, subsetting, sql query)
 * raster vector reprojection
 * access to web resources using OGC standard (WMS, WFS, WCS trough CSW catalogs)
 * raster algebra (single array operation, filtering, band merge, band-ratio, time-series)
 * satellite derived product (working with landsat, image enhancements, bande merge, pansharpening, mosaic .. )
 * time series of gridded data
 * intro to geostatistics
 * simple web-gis products (publish result of processing in projects based on js library like openlayers, leaflet and similar)

Part of this idea is to develop a software library written in python, to simplify the usage of geospatial data inside the notebook. Providing wrapper function to assolve general tasks like I/O, Database connections, map display using gui widgets and rich text for data documentation and report building.

This idea integrates several projects such as GDAL, GRASS, OSSIM, R, OTB, Numpy, Scipy, Pandas, R, owslib, netcdf4-python, pycsw, openlayer/leaflet/cesium, qgis-browser, gmt, postgis, in addition to the python specific projects (e.g. fiona, shapely, geopandas, scikit-image, pysal, cartopy, iris, and more). Generally each library that has python bindings and or is accessible from the command line. Part of this idea is to :


 * Develop topic oriented geospatial notebooks as described above (topics TBD)
 * implement a software library written in python, to simplify the usage of geospatial data inside the notebook. This library will provide helper function to work with geospatial data (e.g. general tasks like I/O, Database connections, map display using gui widgets and rich text for data documentation and report building) taking advantage of the api provided by Jupyter.
 * Reorganize the way how python libraries are installed on the live by packaging, as .deb, each python project that is missing a proper debian package. Resulting deb can then be upload on the ubuntu gis repository (before approval to ubuntu/debian gis official repository, the packages can can be hosted on an ad-hoc OSgeo-Live debian repository in incubation state)
 * Revisiting and upgrading existent OsGeo-Live Quickstart documentation for each project involved in this idea (the rst file format used by OSGeo-Live documentation can be generated on the fly by running notebooks in batch mode, this will integrate quickstart testing and document building in a single process, keeping the quickstarter (notebbok-enabled) up-to-date)

[1] http://jupyter.org/

Student

 * Massimo Di Stefano (@epifanio GitHub id)

Willing to Mentor

 * Cameron Shorter (@camerons GitHub id)
 * Rich Signell (@rsignell-usgs GitHub id)
 * Angelos Tzotsos (@kalxas GitHub id)