4 hours practical courses with FOSS4G developers.

July 14th 2015

The workshop attendees are invited to check the technical instructions regarding the workshop(s) they will attend.

Morning workshops (9:00 am - 1:00 pm)

Raster and vector processing with GDALW01

First name Last name Organization
Even ROUAULT Spatialys

Room 1.1 This is not a computer lab, the participants must have a computer with the requested software installed.

Participants have to use their own laptops, the USB stick provided by the conference organizers contains all the necessary software as an OSGeo Live virtual disk suitable for use in VirtualBox. Install VirtualBox on your machine before the workshop.

Suitable for those new to GDAL, as well as those who want to learn advanced features. Some familiarity with geospatial raster and vector data and coordinate systems is assumed but not strictly required. Participants should not be afraid of command line use. Some SQL and Python/numpy knowledge will be useful for advanced exercices.

In this workshop, we will explore most capabilities offered by GDAL and OGR, going from the basics to advanced features. After a short introduction on the GDAL/OGR features, participants will learn :

  • exploring the contents and metadata of raster and vector datasets,
  • performing file format transformations,
  • subsetting,
  • resampling,
  • reprojection,
  • mosaicing,
  • rescaling,
  • building virtual rasters and mosaics,
  • manual georeferencing from ground control points,
  • coordinate transformation,
  • optimizing files for visualization performance and size (tiling, pyramid building),
  • DEM analysis (contour, hillshading, coloring, gridding, void filling),
  • querying vector layers,
  • unioning vector files,
  • using web-service drivers: WMS, WFS
  • using GDAL and OGR python API

Capabilities of recent versions will be particularly put forward :

  • multi-threaded warping,
  • power of the SQLite SQL dialect combined with Spatialite functions to perform vector analysis,
  • OGR layer algebra,
  • access to huge remote datasets such as Global Multi-resolution Terrain Elevation Data or European DEM with /vsicurl,
  • geocoding API,
  • raster datasets as virtual memory mappings (best demonstrated with Linux 64bit installations, but not strictly needed).

How to write a Python GRASS GIS 7 addon W02

First name Last name Organization
Pietro ZAMBELLI European Research Academy
Markus NETELER Fondazione Edmund Mach
Luca DELUCCHI Fondazione Edmund Mach
Vaclav PETRAS North Carolina State University
Anna PETRASOVA North Carolina State University

Room 3.5 This is not a computer lab, the participants must have a computer with the requested software installed.

Participants have to use their own laptops, the USB stick provided by the conference organizers contains all the necessary software as an OSGeo Live virtual disk suitable for use in VirtualBox. Install VirtualBox on your machine before the workshop.

Participants should get basic knowledge of GIS, basic knowledge of GRASS GIS and basic knowledge of Python

GRASS GIS is a leading software in analysis of geodata, it offers more than 400 modules in its core version plus many addons (i.e., user contributed modules). But what if the tool you are looking for is not present in GRASS GIS? So, simply create your own, we will show you how to do that in this workshop.

In GRASS GIS 7, Python is the default language for creating addons. There are two main Python libraries included in GRASS GIS. Python Scripting Library allows you to perform analysis and compute new data by chaining existing modules to create your own workflow.

With PyGRASS library wrapping the C functions, you can create new data sets (vector and raster) directly through Python calls, increasing considerably the power and performance of your scripts. You can conveniently mix both GRASS Python libraries with other Python libraries like NumPy, or SciPy. In this workshop, we will guide you through the basic steps of writing your own Python scripts, starting with calling and chaining GRASS GIS modules, followed by a more pythonic experience when using PyGRASS to access and modify your data directly.

You will then upgrade your script into an addon by defining a simple interface to enable automatically generated GUI. The next part of workshop will look into more advanced usage of GRASS GIS 7 capabilities, including Python spatio-temporal API to handle time series in your addons, creating your own toolbox with your newly developed addons and finally, introducing the new testing framework you should use as a responsible person to make sure your addons are in great shape.

Don't worry if we won't cover all the topics during the workshop, all materials will be accessible online and GRASS GIS community is always prepared to answer your questions!

Analysis with QGISW03

First name Last name Organization
Paolo CAVALLINI Faunalia

Room 3.3 This is a computer lab, the necessary software will be installed on the provided computers.

Intermediate Desktop GIS users willing to learn how to run analyses, both simple and chained in models and batches. A preliminary working knowledge of QGIS is necessary, as well as familiarity with the basic GIS concepts (raster, vectors, projections etc.)

Participants will learn how to run both simple and complex analyses, with a variety of backends (SAGA, GRASS, GDAL, OTB etc.), and to design more complex workflows. Batch processing will be explained.

Land cover mapping with high resolution satellite images using Orfeo Toolbox, QGIS and OSMW04

First name Last name Organization

Room 3.6 This is not a computer lab, the participants must have a computer with the requested software installed.

Participants have to use their own laptops, the USB stick provided by the conference organizers contains all the necessary software as an OSGeo Live virtual disk suitable for use in VirtualBox. Install VirtualBox on your machine before the workshop.
Data to be used during the workshop can be downloaded from here.

Audience should have some experience or at least notions of basic usage of QGIS, satellite image manipulation and land cover mapping techniques

During Foss4G 2013 in Notthingam, we presented how OpenCV machine learning library has been interfaced with Orfeo ToolBox so as to bring new classification tools to OTB users (Michel et al., 2013). As an example of processing we proposed a supervised classification of Spot4-Take5 images, using OpenStreetMap and SRTM Water Bodies Masks as reference data for training. The processing chain resulted in a robust water mask from the initial satellite time series.

In this workshop, we will propose a step-by-step tutorial through this method using Orfeo ToolBox applications available within Qgis. The audience will learn how to perform supervised classification of satellite image data, how to use OpenStreetMap as reference data for training the classifier, and how to pre-process images and post-process results so as to produce valuable land cover maps. This will also serve as a hands-on introduction to the Orfeo ToolBox.

In the perspective of the Sentinel2 launch, which will provide such kind of images with a good coverage and revisiting time, with a friendly data policy (, learning to use satellite images along with OpenStreetMap is a good asset for future applications. Since Sentinel2 images will not be avaiable at the time of the workshop, we will rely on SPOT4 (Take5) time series, available from the Theia Land Data Centre portal (

At the end of the workshop, we will initiate a discussion with participants to assess the potential of Sentinel2 images to close the circle and bring valuable information to OpenStreetMap through the methods presented during the workshop. Technical locks identified during this discussion may bring new feature requests into Orfeo ToolBox backlog, and create new collaboration opportunities between Orfeo ToolBox and other FOSS GIS software.

R for spatial dataW05

First name Last name Organization
Robin LOVELACE University of Leeds
Rachel OLDROYD University of Leeds

Room 3.4 This is a computer lab, the necessary software will be installed on the provided computers.

This workshop is aimed at people with experience of GIS but little knowledge of R. Equally, it is well-suited to people who already use R but would like to improve their spatial analysis skills using R

This tutorial is an introduction to spatial data in R. The workshop aims to make map making in R easy, with 'base' graphics and the popular graphics package ggmap. It assumes no prior knowledge of spatial data analysis but knowledge of the R command line would be beneficial. For people new to R, we recommend completing a tutorial, such as "A (very) short introduction to R" (Torfs and Brauer, 2014) before the course. The workshop will be divided into three parts:

  • Developing a good workflow in R for spatial data analysis using Rstudio and project folders to organise the work.
  • Loading and manipulating spatial data, including changing projection, clipping and spatial joins.
  • Visualising geographic data, based on ggmap and with reference to online visualisation tools.

This tutorial is based on the popular 'Creating-maps-in-R' repository ( and online tutorial (Lovelace and Cheshire, 2014) which ensures the entire tutorial, including the input data, is kept up-to-date.

Free and open source software for kinematic GNSS positioningW06

First name Last name Organization
Eugenio REALINI GReD srl

Room 3.7 This is a computer lab, the necessary software will be installed on the provided computers.

The expected audience is composed by people interested in learning how to use open source software for GNSS positioning, understanding the geodetic principles behind their settings in order to improve their results.

Kinematic satellite positioning consists in estimating the trajectory of a moving receiver, by processing observations from Global Navigation Satellite Systems (GNSS). The target is not to “pilot” or control the moving body, rather to know its position in time as well as possible (e.g. for geolocating other sensors on board the moving body).

GNSS include the well-known GPS, as well as other constellations like the Russian GLONASS, the European Galileo or the Chinese BeiDou. Typically kinematic positioning differs from static positioning for the use of a dynamic model within a Kalman filter, and for the processing of data in real-time (meaning that the position at a given time depends only on current and past measurements). The role of a dynamic model is to “link” the position estimates along the trajectory, in such a way that the result has a regularity consistent with the user's expectation. Additionally, in increasing order of complexity and achieved accuracy, the processing can be based only on the GNSS data acquired by the receiver itself (stand-alone), it can exploit also augmentation systems (like WAAS or EGNOS), it can make use of differential corrections (the so called Network Real Time Kinematic - NRTK positioning) or it can be a relative positioning based on one or more fixed master stations. In this context, GNSS instruments can be used for many types of applications, such as mapping (also in a speditive way, with low-cost instruments), navigation or geodetic purposes (considering topographic instruments, with higher costs).

Apart from the processing strategy, the performance of a kinematic positioning mainly depends on the quality of the receiver hardware, going from the high-grade dual-frequency geodetic receivers to miniaturized low-cost single-frequency receivers. The use of the latter along with free and open source software, with the aim of estimating a precise trajectory, is the focus of this workshop. In particular, two software applications will be presented: the MATLAB version of goGPS, originally developed at Como Campus of Politecnico di Milano, Italy, and now collaboratively developed by an international community; RTKLIB (written in C language) and developed by Tomoji Takasu of Tokyo University of Marine Science and Technology, Japan.

Afternoon workshops (2:00 pm - 6:00 pm)

Deploying Web Processing Services using ZOO-Project - Examples Python WPS using PgRoutingW07

First name Last name Organization
Gérald FENOY GeoLabs SARL
Nicolas BOZON GeoLabs SARL
Venkatesh RAGHAVAN Osaka City University

Room 3.5 This is not a computer lab, the participants must have a computer with the requested software installed.

Participants have to use their own laptops, the USB stick provided by the conference organizers contains all the necessary software as an OSGeo Live virtual disk suitable for use in VirtualBox. Install VirtualBox on your machine before the workshop.

This workshop is aimed at GIS developers and power users with basic knowledge of WPS, Python and JavaScript

ZOO-Project is an open source platform providing a WPS (Web Processing Service) implementation and developer-friendly framework to create and chain WPS compliant Web Services. ZOO-Project is made of three parts:

  • ZOO Kernel, a powerful server-side C Kernel that allows deployment of services in multiple programming languages.
  • ZOO Services, a growing suite of example Web services based on various Open Source libraries
  • ZOO API, a server-side JavaScript API to call and chain the ZOO Services.

ZOO-Project will first be presented in this workshop, along with some technical details about the WPS standard. Participants will then learn how to setup the ZOO-Kernel and to get the WPS server running by following step by step instructions. Some basic WPS Services will be deployed and explained in detail to participants. Afterwards, they will learn how to develop pgRouting WPS Services using Python, trough a detailed scripting example. A ready to use Openlayers client will also be used to interact with the created WPS Services.

Participants will learn how to chain and execute the created WPS Services using the ZOO-API. The results of the chaining will also be published as OGC Web Services (WMS, WFS and WCS), using the ZOO-Project optional MapServer support.

The resulting client application will provide a web user interface for computing and displaying shortest path itineraries. It will also allow to compute and display driving distance and altimetric profiles of a path, but also to search and display POIs around it. All these functionalities will be powered by WPS Services and rendered in the client application.

After this workshop, participants will be able to install and run ZOO-Project, and to create new WPS Services using existing FOSS4G libs or by chaining service calls to build more complex processes.

GeoServer on steroids: getting the best out of GeoServer W08

First name Last name Organization
Andrea AIME GeoSolutions SAS
Simone GIANNECCHINI GeoSolutions SAS

Rooms 3.3 and 3.4 These are computer labs, the necessary software will be installed on the provided computers.

A zip file to be unzipped on the lab machines that contains both the software to be run (no installation simple click and run) as well as all the material needed for the workshop will be provided.

In order to participate to the workshop a working knowledge of GeoServer and OGC services is recommended as well as working knowledge of concepts and pertinent to production deployments and system administration

Setting up a GeoServer can sometimes be deceptively simple. However, going from proof of concept to production requires a number of steps to be taken in order to optimize the server in terms of availability, performance and scalability. The workshop will show how to get from a basic set up to a battle ready, rock solid installation by showing the ropes an advanced user already mastered. The topics that will be covered in details include (but are not limited to):

  • Optimize vector and raster data for the deep multi-resolution displays typical of web GIS
  • Optimize styling to provide a good balance between map navigability and performance, identifying common performance pitfalls in the styling options
  • Setting up caching with GWC for the background layers, identify layers and situations that are not suitable for caching Defend against peak hour load by setting service limits and using the control-flow extension
  • Using the monitoring extension to control the server in production and identify sources of trouble (long request, clients making too many/too heavy requests, layers and services used the most that could use more tuning attention)
  • Solutions for clustering GeoServer and GeoWebCache
  • Challenges in scaling beyond the few hundreds concurrent requests, and solutions to get there
  • Discussion of a stage/publishing scenario split, where data and configuration is prepared offline and then published onto a cluster when ready (either manually, or with the REST configuration API)
  • Discussion of a live clustering sceneario, where new data is configured on the running cluster, and possible solutions to configuration updates across the cluster based on update frequencies
  • The workshop will cover some real world examples of enterprise deployments of GeoServer implemented by the author as well as its colleagues at GeoSolutions during the years.

Geopaparazzi: never out of data in the field W09

First name Last name Organization
Andrea ANTONELLO HydroloGIS srl
Silvia FRANCESCHI HydroloGIS srl

Room 3.1 This is a computer lab, the necessary software will be installed on the provided computers.

Participants are required to bring an Android device to be used during the workshop.

The participants are exepcted to have basic knowledge of both Android and Windows environment as well as of the most important GIS data formats (raster and vector). It is required that the participants come with an Android device with Android 4.1 or later.

This workshop is dedicated to professionals that needs to collect data from the field and use this information to update or create GIS data, but also to OpenStreetMappers as well as tourists that want to keep a geo-diary. Geopaparazzi is a mobile application for digital field mapping for Android devices developed to support the work of the technicians in the field offering a mapping environment with real time GPS position and a form for structured data collection. The application is easy to use, intuitive and provides just few important functionalities to be used in the field, as for example register GPS tracks and take georeferenced notes and pictures with the possibility to work also off line. The main features available in Geopaparazzi are:

  • taking georeferenced notes: texts, pictures, sketches and forms
  • logging GPS tracks
  • browsing and navigation of the maps and the available data
  • easy export of the collected data
  • simple preparation of custom background data.

The map view shows the GPS position on the reference background data with the possibility to pan and zoom. From the map view it is possible to add and manage notes and bookmarks and measure distances. Notes and bookmarks can be added directly to the map either in the GPS position or in the center of the map. From a dedicated list view it is possible to visualize, zoom and edit each note.

Background data can be personalized using available local data or on-line services with the possibility to use vector offline Mapsforge basemaps, Mbtiles offline databases, TMS (online and offline tiles) and WMS services. Geopaparazzi supports personalized complex forms with combo and check boxes, text fields (that can be constrained to number or string type), pictures (taken using the mobile internal camera) and sketches organized over multiple tabs.

The workshop starts with an introduction of the application, installation and main features. Then a short section will be dedicated to the preparation of the input data: background maps and vector layers. Following these sections there is a practical testing of Geopaparazzi outdoor in the field. The last section, back in the room, is dedicated to the export of the collected data to be visualized or used in other GIS environments.

FOSS4G routing with pgRouting, OpenStreetMap and OpenLayers 3W10

First name Last name Organization
Daniel KASTL Georepublic

Room 3.6 This is not a computer lab, the participants must have a computer with the requested software installed.

Participants have to use their own laptops, the USB stick provided by the conference organizers contains all the necessary software as an OSGeo Live virtual disk suitable for use in VirtualBox. Install VirtualBox on your machine before the workshop.
Installation instructions can be also found here.

The workshop level is best described as "intermediate" and some basic knowledge in SQL (PostgreSQL, PostGIS), Javascript, HTML is recommended.

pgRouting adds routing functionality to PostGIS. This introductory workshop will show you how. It gives a practical example of how to use the new pgRouting release with OpenStreetMap road network data. It explains the steps to prepare the data, make routing queries, assign costs, write a custom function ‘plpgsql’ function and use the new OpenLayers 3 to show your route in a web-mapping application.

Navigation for road networks requires complex routing algorithms that support turn restrictions and even time-dependent attributes. pgRouting is an extendable open-source library that provides a variety of tools for shortest path search as extension of PostgreSQL and PostGIS. The workshop will explain about shortest path search with pgRouting in real road networks and how the data structure is important to get faster results. Also you will learn about difficulties and limitations of pgRouting in GIS applications.

To give a practical example the workshop makes use of OpenStreetMap data. You will learn how to convert the data into the required format and how to calibrate the data with “cost” attributes. Furthermore we will tell you what else pgRouting provides beside support for “Dijkstra”, “A-Star” shortest path search and what has been added recently to the library. By the end of the workshop you will have a good understanding of how to use pgRouting and how to get your network data prepared.

To learn how to get the output from rows and columns to be drawn on a map, we will build a basic map GUI with OpenLayers 3. We listened to the students feedback of the last year’s and want to guide you through the basic steps to build a simple browser application. Our goal is to make this as easy as possible, and to show that it’s not difficult to integrate with other FOSS4G tools. Writing a custom PostgreSQL stored procedure in ‘plpgsql’ will allow us to make shortest path queries through Geoserver in a convenient way.

Spatio-temporal Big Data: the Rasdaman approach in the context of the PublicaMundi projectW11

First name Last name Organization
Mircea Alexandru DUMITRU Jacobs University
Vlad MERTICARIU Jacobs University
Angelos TZOTSOS Athena Research Center
Michail ALEXAKIS Athena Research Center
Spiros ATHANASIOU Athena Research Center

Room 1.1 This is not a computer lab, the participants must have a computer with the requested software installed.

The image participants have to use the Virtual Machine downloaded from here.

Our target audience is composed of individuals from the geoinformatics and geosciences domain. The main focus will be on ingesting, retrieveing and processing geo-data with standardized methods, thus we expect users interested in learning how to achieve this to attend this workshop. We expect the attendants to be familiar with the OGC & OSGeo nomenclature, although no special expertise in any of the technologies associated with these organizations are required.

In geosciences, and especially in the fields of remote sensing and geomatics, frequently large amounts of raster data need to be stored and processed efficiently. Rasdaman is tackling the big data deluge by providing a scalable array database that is capable of storing complex geographic data structures and exposing them through open and standard web services. Actually, the rasdaman team is actively shaping the OGC Big Geo Data standards.

Rasdaman is the OGC Web Coverage Service (WCS) Core Reference Implementation, but also supports WMS and WPS, for example. A particularly exciting extension of the WCS service is the Processing Extension. This links in the Web Coverage Processing Service (WCPS) which allows users to exploit the flexibility of a fully fledged query language for coverages to request ad-hoc parallel processing directly on the server, minimizing data transfer and response times. With that in mind, our proposed workshop will follow this structure:

Presenting the core concepts and technology:

  • The rasdaman array model and its query language
  • The GMLCOV model
  • The Web Coverage Service and its extensions

Hands-on exercises, experimenting with real data using the above mentioned services. Workshop participants will:

  • Deploy rasdaman and its required components to create a local service
  • Learn how to ingest data into rasdaman and how to expose it as a coverage. Three types of coverages will be handled (2D rectified imag, 3D regular time series of satellite imagery,3D irregular time series of satellite imagery)
  • Learn how to use the WCS service to access coverages
  • Explore the extensions of the WCS service and the functionality that they provide
  • Ad-hoc process the coverages using WCPS queries

During the second half of the workshop we will show how the OGC web services and the OSGeo software stack perform in a real case scenario, by using the PublicaMundi software. PublicaMundi ( is a EU FP7-ICT project aiming to make the open geospatial data easy to publish, view and reuse.

For this workshop, the attendees will be presented with an overview of the functionality of CKAN and PublicaMundi spatial extensions, and they will have the chance to experience how easy it is to publish open data, through a demo deployment of PublicaMundi on local virtual machines. The workshop attendants will perform the following tasks:

  • Upload and publish vector and raster datasets
  • Create new metadata records (with support for various schemas, including INSPIRE) or upload existing metadata files
  • Work with the integrated pycsw catalog (search through CSW and OpenSearch APIs)
  • Modify existing records
  • Ingest published vector and raster datasets to WMS, WFS, WCS endpoints
  • Preview uploaded data and services.
  • Introduction to PublicaMundi Mapping API
  • Introduction to PublicaMundi DataAPI
  • Administration tasks and Data Analytics

SensorWeb and IoT with OpenSensorHubW12

First name Last name Organization
Alexandre ROBIN Sensia Software LLC
Mike BOTTS Botts Innovative Research, Inc.

Room 3.7 This is a computer lab, the necessary software will be installed on the provided computers.

Further instructions for W12 are available in this PDF document.

The image participants have to create a bootable USB stick can be downloaded from here.

This workshop is targeted at developers and software architects wanting to learn more about OpenSensorHub software and how to deploy a SensorHub node and contribute to the Open Source project. The first part of the workshop will be appropriate for any level of developer and will focus on the overall architecture, deployment, and configuration of a SensorHub node. However, the last part of the workshop requires experience with Java, Javascript, and Eclipse since we will go through a hands-on exercise to develop new SensorHub components.

OpenSensorHub ( is a new open source software community focused on the development and deployment of a new software stack, developed in Java, that aims at supporting the full vision of the OGC® Sensor Web Enablement (SWE) suite of standards, as well as some IoT protocols. The ultimate desire is to make it easy to deploy all types of sensors/actuators (in-situ and remote sensors, mobile or static, etc.) in a cross-domain context and interconnect them through the web in a fully interoperable manner.

SensorHub instances can be deployed on many platforms ranging from Android phones and embedded ARM boards to desktop computers and large computing clusters. All these types of instances can be interconnected via open standards to form larger networks. To keep its size small on embedded devices, the software is modular so that only the necessary components need to be deployed in each instance. Connection of new sensors is done via the development of specific Java drivers or the simple configuration of more generic drivers. Once a sensor is connected, it can be automatically and immediately exposed through various web services, allowing discovery, data access, processing, and tasking.

The workshop will start with an introduction and architecture review of the OpenSensorHub software. We will study its modular, event-based design and the main components of its public API. We will then focus on how to deploy sensor drivers and SensorML process chains on SensorHub and configure SWE services to expose their capabilities (e.g. data access, tasking, etc.). Participants will then see how to configure local storage for sensor measurements, add stream processing capability and upload the resulting data to a SensorHub instance in the cloud. All these configuration steps will be done via the web-based administration interface. Results will be viewed in a web-based client written entirely in Javascript and leveraging Leaflet and Websockets to display various sensor measurements in a geospatial context.

In the next part of the workshop, we'll work with the participants to develop a new sensor driver and a simple stream process using the public Java APIs. We will then deploy the new components to our running instance of SensorHub to illustrate the remote “hot deployment” capability using OSGI, and see how these new components can be administered right away through the web administration interface. Finally, we'll modify the web client code to display data generated by these new components.To conclude the workshop, we will initiate a discussion to collect suggestions and new ideas of improvement for the next release.

Workshops participants and instructors must register before going to the workshop rooms. The registration desk will open from 8:00 AM. It will be located at the ground floor of the Castelnuovo building. Come early and don't wait at registration !