We're very pleased to present our final schedule: Schedule (PDF)

Primary tabs

Workshops Day

Morning (9:00 am - 12:30 pm)

Visualising Geospatial data with Mapbox JS GL

Presenter(s): Sarah Goodwin
Suggested audience: Beginner

This workshop is designed to provide an introduction to using Mapbox JS GL to present and visualise your geographical data. The workshop examples will demonstrate how to integrate your data into web applications using Mapbox JS GL as well as style your own base maps with Mapbox Studio.

A simple guide will help you gradually build a 3D map of new building development in Melbourne (openly available data) and integrate some basic navigation and more advanced interaction and querying functionality.

The workshop structure provides the functionality to get started for beginners, but the audience is free to deviate from these examples as they grow more confident and start to explore the capabilities and functionalities of Mapbox JS GL.

Looking forward to seeing your Mapbox creations!

Prerequisite skills:

Some basic programming knowledge may be advantageous, but not essential.

Preparation required:

A text editor, ideally with colour syntax. For a good free and open source option try Atom: Also please register for a free Mapbox account here:

Making maps with OpenStreetMap

Presenter(s): Andrew Harvey
Suggested audience: Beginner

This workshop will start by introducing you to OpenStreetMap's data model by way of a hands on editing session using street level imagery and aerial imagery. Following this, we'll briefly go through extracting data from OpenStreetMap and doing some basic processing and manipulation tasks before exporting it into into vector tiles. Finally we get to bring our data to life in a map, creating a basic map style and building an interactive online map.

The tools you will learn to use include JOSM, Overpass API, Osmium, OGR (ogr2ogr), Tippecanoe, Mapbox GL JS.

Prerequisite skills:

This workshop aims to cover a wide range of concepts and tools while still catering for all levels from beginner to expert.

Preparation required:

If you're able to install the following it will help, but it's not essential: JOSM, GDAL/OGR Binaries, osmium-tool, tippecanoe.

Introduction to running Auto Scaling Geoserver and PostgreSQL/PostGIS in the Cloud (AWS)

Presenter(s): John Hildebrandt
Suggested audience: Intermediate

This lab will provide an introduction to running GeoServer on AWS infrastructure. GeoServer is a OGC compliant implementation of a number of open standards including Web Feature Service (WFS), Web Map Service (WMS), and Web Coverage Service (WCS).

The workshop will walk you through the steps required to launch and configure an Ubuntu Linux virtual machine in the Cloud. You will install GeoServer on this instance and learn how to save the virtual machine image as your own.

GeoServer can leverage a variety of data sources including PostgreSQL/PostGIS. PostGIS is a spatial database extender for the PostgreSQL object-relational database. With AWS support for PostgreSQL/PostGIS available in Amazon RDS we will explore connecting GeoServer to a PostgreSQL RDS source and Aurora to illustrate a multi-tier architecture. Finally we will explore scaling out the GeoServer web tier using an Auto-scaling Group (ASG) and an Elastic Load Balancer (ELB), including a shared file service using Elastic File Service (EFS). You will need to have an AWS account to participate in this workshop. Bring your laptop for this hands on session.

Audience will be Geoserver users that are interested in running this on AWS in a highly available fashion.

Prerequisite skills:

Student should be comfortable using a Linux command line.

Preparation required:

As well as AWS account, you will need an ssh client on your laptop.

A gentle introduction to spatial web services by building your first web application

Presenter(s): Rowan Winsemius
Suggested audience: Beginner

Have you heard of things like web map services, or web feature services, but don't have much idea what they actually do or how they differ? Wondering where vector tiles fit and why are they different?  

This workshop will walk you through some of the most common types of spatial web services, explain what they are typically used for, how they differ, and why.

During the workshop we'll take a beginner-friendly peek at what's happening under the hood to explore what's happening when you make a 'request'. We'll also explore a few debugging tools that can be used.

We'll also talk about some of the technologies that people use to generate/publish spatial web services, and well as different ways in which they can be used, so that participants gain a better appreciation of how the technological pieces fit together.

We'll put our new found understanding of spatial web services to use by building our first web mapping application using LeafletJS, one of the worlds most popular open-source JavaScript mapping libraries.

Processing spatial data with JavaScript

Presenter(s): Steve Bennett
Suggested audience: Intermediate

Although it is common to do back-end data processing using Python or Bash, you might prefer to use one language throughout your entire stack. Using NodeJS for your backend processing lets you use the same libraries and tools you use in front-end web development, and makes it easy to reuse pieces of code.

In this hands-on workshop, we will cover topics such as:

- Converting Shapefiles to GeoJSON without GDAL
- Loading and modifying GeoJSON files directly
- Using the Turf library to manipulate GeoJSON objects
- Structuring an automatic data processing pipeline
- Speeding up processing by using multiple threads
- Generating vector tiles with Tippecanoe, for use with Mapbox-GL-JS or OpenLayers

Prerequisite skills:

This workshop is for intermediate to advanced programmers with some experience in JavaScript.

All the OTHER places you will love using Python in QGIS

Presenter(s): Nathan Woodrow
Suggested audience: Beginner

Did you know that plugins are not the only place in QGIS you can use Python? Did you know you can create custom expression functions with Python? You do now, or you will after this workshop!  

This workshop will explore all the other places you can use Python in QGIS, including but not limited to, custom expression functions, startup scripts, project macros, and symbols. Even if you have never written Python before, this will be a lighter workshop introducing you to the many places you can use Python to make your life easier and make better maps - say no to bad maps. Remember, this isn't a plugin course - this is all the other places where you can use Python to power up your workflow.

While this workshop will target QGIS 3.2 and 3.4, some of the techniques explored will also apply in earlier versions.

Prerequisite skills:

This workshop will be aimed at all levels of Python and QGIS users.

Preparation required:

Please have QGIS 3.4 or QGIS 3.2 installed.

Workshop materials:

Bridging Scientific Computing and Virtual Reality with R

Presenter(s): Miles McBain, Michael Sumner
Suggested audience: Intermediate

Virtual and Augmented Reality presents a new medium, rich with interactive and dynamic possibilities for experiencing spatial data. Exploring the potential of this medium requires a new set of tools that allow the user to move fluidly between 2D/3D/ND representations of data via flexible primitive representations. This allows integration of disparate but co-located data such as raster and polygons. This hands on workshop will introduce participants to Web Virtual Reality and see them create dynamic and interactive WebVR scenes, driven by spatial data, end to end in the R programming language.

Software Carpentry inspired format, featuring short theory sections followed by ‘follow-along’ live coding sections and exercises.

Hours 0 - 1.5: Introduction to WebVR with A-Frame

- Overview of WebVR
- Exercise to run demos on smartphone
- Introduction to A-Frame with “Hello World” type exercises to be coded on and run on participant smartphones.
- Entity component architecture
- A-Frame HTML
- Using community components

Hours 1.5 - 2.5: R Tools for 3D modelling

- Transforming Spatial Data using modular 3D tools
- Create and texture a 3D mesh in R from a variety of spatial data sources (e.g. Shapefile + digital elevation model + satellite raster).
- Composing and Serving A-Frame scenes from R

Hours 2.5 - 3.5: Creating Interactive Virtual Reality Environments

- Adding interactive dynamic elements to Virtual Reality scenes using R
- Plotting over a 3D mesh, mixing in open source models that move and react

Prerequisite skills:

The workshop is for intermediate R users familiar with spatial data workflows looking to explore Virtual Reality as a new medium to experience data. Should have used, `sp`, `sf`, and `raster` before in the context of GIS visualisation. They do not need to be experts in these packages. If they have experience making 3D visualisations in the past this would be beneficial but not essential.

Workshop materials:

Afternoon (1:30 pm - 5:00 pm)

0 to 100 on AWS – Building a full stack web mapping application with PostGIS, Geoserver, OpenLayers and ReactJS

Presenter(s): Brendan Jurd, Brent Schiller, Joe O’Connell
Suggested audience: Intermediate

This workshop is intended to provide hands-on experience with developing and deploying a full stack geospatial web application from the ground up on Amazon Web Services. The goals of the workshop are to demonstrate how AWS can be used as a platform for rapid development and deployment of scalable and robust web applications, using open source technologies including PostGIS, Geoserver and OpenLayers.

We will walk through an overview of architecting and deploying PostGIS and Geoserver in AWS and demonstrate the powerful automation features of AWS CloudFormation, before focussing on developing a ReactJS/OpenLayers interactive web mapping application that uses Mapbox Vector Tiles from Geoserver, together with styles created in the web based visual style editor Maputnik.  

Topics to be covered:

- Introduction and overview of core AWS services
- Overview of setting up PostGIS and Geoserver on AWS
- Automating AWS infrastructure deployment with CloudFormation
- Loading and processing data with QGIS and PostGIS
- Publishing services in Geoserver from data in PostGIS
- Publishing vector tiles from Geoserver
- Styling vector tile services in Maputnik
- Developing a ReactJS and OpenLayers web application
- Dynamic styling of vector tile layers in OpenLayers using Mapbox GL styles
- Building and deploying a web application to AWS S3

Prerequisite skills:

An AWS account Basic familiarity with web technologies (HTML, CSS, JavaScript) Basic SQL and Python skills

Preparation required:

Please install: QGIS, Node.js, Git, Postgres client (psql or pgAdmin), Text Editor or IDE, Python. Specific version requirements will be provided closer to the date.

QGIS Python Plugin Development

Presenter(s): Jonah Sullivan
Suggested audience: Intermediate

Attendees will learn how to create a QGIS Python Plugin by creating one.

Topics include:

- Configuring your Integrated Development Environment (IDE) with PyCharm
- Creating a template plugin with Plugin Builder
- Creating a Graphical User Interface (GUI) with QtCreator
- Interactive programming with signals and events
- Debugging with Plugin Reloader and using a remote debugger

Prerequisite skills:

Previous experience with the python language is suggested, experience with PyQt or PyQGIS is a bonus.

Preparation required:

Workshop attendees will need the following FOSS: QGIS, QtDesigner, and PyCharm.

Spatial data APIs - making your spatial data public without giving away database access

Presenter(s): Henry Walshaw
Suggested audience: Intermediate

Cloud service providers and the ubiquity of open source software like Postgresql, PostGIS and QGIS have made it easier than ever to collect and store spatial data. Making that data publically available has clear advantages but you might not want to hand out direct access to your database.

One alternative is to make your spatial data available via an API. I'd like to encourage this approach as a way to make spatial data publically available quickly and easily, whether its your own private data, data from your organisation, or data you collaborate with other people to produce.

This workshop will walk through the process of creating an API serving GeoJSON, CSV, and (time permitting) GeoRSS data using the Python Flask library. The topics that will be covered in the workshop will be:

- Modelling spatially enabled tables and serialisation using SQLAlchemy, GeoAlchemy2 and Marshmallow
- Creating a basic REST API to access your data with Flask
- Adding authorization to the API with Flask-Security
- Extending the API - pagination and additional output format
- Deploying the API on AWS Lambda with Zappa

You are of course encouraged to use your own data, but for the purpose of deployment a database connection will be supplied.

Prerequisite skills:

This workshop is designed for people with some Python programming experience - you should be comfortable with Python class inheritance and should understand Python decorators. SQL experience and/or a basic knowledge of the Python Flask and SQLAlchemy libraries will be helpful but by no means required. Finally, while you can use Python 2, the course will be taught in Python 3 and I strongly recommend making the switch.

Preparation required:

You will be using the Python Zappa library to deploy Amazon Lambda services (on the free tier). As such you will require an AWS account and the AWS command line interface tools installed and configured.

Remote sensing and terrain analysis with SAGA-GIS

Presenter(s): Rohan Fisher
Suggested audience: Beginner

This workshop builds on new opportunities provided by the increasing availability of free satellite imagery, digital elevation data, and open source spatial analysis software through the use of SAGA-GIS for sophisticated natural resource mapping and modeling. The ease of installation and immediate access to advanced raster tools for remote sensing, terrain, and hydrology analysis makes SAGA GIS a powerful addition to your FOSS toolkit.

The aim of this training is to provide a basic overview functions within SAGA-GIS software that enable applications in two areas key to evidence-based natural resource management; (1) satellite-based mapping and monitoring and (2) terrain analysis and hydrological modeling. Training will be based on real-world examples of simple techniques for practical management application and cover:

- Accessing and visualising Landsat, Sentinel-2 and elevation data

- 3D Landscape visualisation

- Basic terrain modelling and hydrological analysis with free elevation data

- Applications for forest fire and mine monitoring.

The workshop will be supported by, and provide an introduction to, comprehensive online training material ( The workshop convenor has led the development of integrated digital training content in English and Indonesian that is now being used around the world as the go-to reference for SAGA-GIS. This material is now being extended into Latin America with the development of Spanish language content.


SAGA-GIS is developed by users for users and is constantly updated with cutting-edge geospatial research. Currently SAGA offers more than 700 geo-scientific modules supporting a range of scientific questions and NRM needs. SAGA GIS has the following key features:

- Simple, onestep, processes for sophisticated hydrological and terrain modelling

- Simple process for satellite data visualisation.

- Advanced image classification techniques

- Seamless integration of satellite image and terrain analysis tools.

- A compact package that does not require installation and is thus is easy to use and share


Workshop materials:

FOSS4G routing with pgRouting

Presenter(s): Daniel Kastl
Suggested audience: Intermediate

pgRouting adds routing functionality to PostGIS. This introductory workshop will show you how. It gives a practical example of how to use pgRouting with OpenStreetMap data. It explains the steps to prepare the data, make routing queries, assign costs, write a custom ‘plpgsql’ function and use OpenLayers 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.

We listened to student feedback of the last years 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 show that it’s not difficult to integrate with various FOSS4G tools.

Prerequisite skills:

SQL (PostgreSQL, PostGIS), Javascript, HTML.

Preparation required:

This workshop uses OSGeo Live (Version 11.0), best to run as virtual machine image in VirtualBox.

Geospatial data visualizations with d3

Presenter(s): Mila Frerichs
Suggested audience: Intermediate

This is a hands-on, bring your device workshop where I teach participants with lessons and exercises on how to create maps with d3. The workshop showcases the essential features of d3 quickly for creating geospatial data visualizations, and the result is a  choropleth map that every participant creates on their own.

Mapping in the browser is a hot topic, and there are plenty of tools and ways to visualize data. The power of d3 is the interactivity and closeness to the data. Creating minimal looking maps with or without basemaps, but still with interactivity and the ability to zoom, creates nice looking maps.

The goal of the session is to provide the participants with the tools and the knowledge to create interactive choropleth maps from geojson and topojson files. Along the way, the base concepts of d3 are covered as well.

We are using the new tool from Mike Bostock (creator of d3) called Observable, which makes it very easy to create interactive notebooks with js. It is a great tool to learn how to create d3 charts and maps. Participants learn how to use the tool and where it differs from a traditional environment.

Learnings: When is d3 the right tool for creating a map, and the best approach to create a map with d3.

The topics include:

- Creating a simple map from both geojson and topojson
- Changing the projection of the map
- Adding interaction to the map
- Creating a tooltip
- Adding mouseover effect
- Creating a choropleth map
- Create a dot density map
- Learn how to use Observable

Prerequisite skills:

Participants should know JavaScript and should have worked with a mapping library such as OpenLayers, Mapbox GL or Leaflet before.

Preparation required:

Required: internet browser

Good to have: node, git, code editor

Open source point cloud processing and visualisation with the PDAL and Potree stack

Presenter(s): Adam Steer
Suggested audience: Intermediate

In this workshop, attendees will work on processing massive point clouds using an open source stack:

- PDAL (
- Potree (
- Entwine and the EPT file format (
- Greyhound (

Anyone working with LIDAR output (from various sources), photogrammetric products, high resolution hydrographic products or all of the above should find something relevant here.

This is intended to be a hands on workshop - attendees will get the greatest value from the workshop if they are comfortable with command line applications and ideally have some experience coding with Python. Familiarity with standard point cloud formats (eg LAS 1.4; PLY) and raster formats (eg GeoTIFF) will be assumed, although use of file formats will be explained during the workshop.

We will start with the basics - finding out about our data, knowing what it contains and where it is in space and time. Learners will be introduced to the PDAL pipeline concept - constructing repeatable processing pipelines to perform increasingly complex tasks. A sample agenda might look like:

- installing PDAL using Conda (or docker)
- reading, writing, format conversion, reprojection, adding missing metadata
- thinning and filtering
- ground classification
- mesh, vector, raster and statistical products from point clouds
- use of the entwine EPT format for visualisation and querying with the Greyhound point server

The Python bindings to PDAL will be used to construct more advanced tasks and do some basic visualisation.

Finally, the group will step through creating EPT formatted point clouds, and how to visualise their results in a web browser with the Potree viewer.

Deployment of point cloud processing stacks on public clouds will be discussed if time permits, with a step through the construction of a full data ingestion to delivery pipeline. Related technologies will also be discussed - postgres-pointcloud, and strategies for working with waveform data.

Prerequisite skills:

Users will need their own laptops, with - the Conda python distribution OR docker - git - a virtual environment ready to go with Jupyter notebooks, PDAL and dependencies installed

Preparation required:

A git based repository containing data for workshop use, a prebuilt python 3 environment and setup instructions will be made available to attendees prior to the workshop. Registered attendees will also have the opportunity to participate in a pre-workshop poll to help guide the design of workshop content.

Workshop materials: