Python for GIS and Geoscience

Target group

Members of the Doctoral School of (Bioscience) Engineering and Natural Sciences.

This course is intended for researchers that have at least basic programming skills in Python. A basic (scientific) programming course that is part of the regular curriculum of bioscience engineering / engineering / sciences should suffice. For those who have experience in another programming language (e.g. Matlab, R, ...), following an online Python tutorial prior to the course is mandatory.

Abstract

This course will teach the students to work with geospatial data, both vector and raster data, in Python. It will focus on introducing the main Python packages for handling such data (GeoPandas, numpy and rasterio, xarray) and how to use those packages for importing, exploring and manipulating geospatial data.

Topic and description

An important aspect of daily work in geographic information science and earth sciences is the handling of potentially large amounts of data. Reading in spatial data, exploring the data, creating visualisations and preparing the data for further analysis may become tedious tasks. Hence, increasing efficiency and reproducibility in this process without the need of a GUI interface is beneficial for many scientists. The usage of high-level scripting languages such as R and Python are increasingly popular for these tasks thanks to the development of GIS oriented packages. 

This course trains students to use Python effectively to do these tasks, with a focus on geospatial data. It will cover both vector and raster data. The course will focus on introducing the main Python packages for handling such data (GeoPandas, numpy and rasterio, xarray) and how to use those packages for importing, exploring, visualizing and manipulating geospatial data. It is the aim to give the students an understanding of the data structures used in Python to represent geospatial data (geospatial dataframes, (multi-dimensional) arrays and composite netCDF-like multi-dimensional datasets), while also providing pointers to the broader ecosystem of Python packages for GIS and geosciences.

Aim & scope

This course targets researchers that want to enhance their general data manipulation and analysis skills in Python specifically for handling geospatial data. 

The course does not aim to provide a course in specific spatial analysis and statistics, cartography, remote sensing, OGC web services, ... or general Geographical Information Management (GIS). It aims to provide researchers the means to effectively tackle commonly encountered spatial data handling tasks in order to increase the overall efficiency of the research. The course does not tackle desktop GIS Python extensions such as arcpy or pyqgis. 

Program

The course is scheduled as a three day course mainly consisting of hands-on practice. A tentative program looks like:

  1. Day 1: Setting up the programming environment with the required packages using the conda package manager, a re-cap of Python concepts and introduction to GeoPandas and related packages to work with geospatial vector data.
  2. Day 2: An introduction to xarray (and rasterio) for working with raster data. More advanced features of GeoPandas for spatial joins and overlays. Combining raster and vector data and more advanced plotting. The acquired skills will immediately be brought into practice to handle real-world data sets. 
  3. Day 3: An introduction to xarray for multi-dimensional netCDF-like datasets. Further case studies to apply the learned skills of the full workshop. The day will end with an overview of other packages that are being used in the geospatial Python ecosystem (to scale to bigger datasets, other visualization frameworks, specialized packages).

Dates and Venue

    • 20, 21 and 22 September 2023, 9:00 - 17:00 (Wednesday to Friday, 3 days)

    • PC-room Konrad Zuse, S9 (third floor), Campus Sterre (Krijgslaan 28). We recommend to bring your own laptop with wifi access, but PC’s are available as well.

    Course material

    All the course material will be available on github. The course consists of hands-on sessions, making use of Jupyter notebooks

    The materials from last year’s course can be found here.

    Organizing Committee

    Prof. dr. ir. Frieke Van Coillie (Remote Sensing | Spatial Analysis lab (REMOSA))
    Prof. dr. Nico Van de Weghe (CartoGIS research group, Department of Geography)

    Lecturers

    • Joris Van den Bossche is a maintainer of Pandas, the main data analysis library in Python, and GeoPandas, a package extending Pandas to work with geospatial vector data. He has developed a course for the DataCamp platform on geospatial data in Python. Formerly, he did a PhD at Ghent University (Faculty of Bio-science Engineering, Department of Mathematical Modelling, Statistics and Bio-informatics) and VITO in air quality research and is currently a freelance open source software developer and teacher, and working at Voltron Data on the Apache Arrow project.

    • Stijn Van Hoey is currently working as Research Software Engineer at Fluves, an engineering company operating in water and energy markets. Before that, he was Research Software Engineer and Open Data Publisher at INBO, supporting and automating the cleaning and publishing of data. Formerly, he did a PhD at Ghent University (Faculty of Bio-science Engineering, Department of Mathematical Modelling, Statistics and Bio-informatics) and VITO.

    Registration

    Follow this link for the registration and waiting list. 

    Your registration will be confirmed by separate e-mail from the Doctoral Schools.

    Registration fee

    Free of charge for members of the Doctoral Schools of (Bioscience) Engineering and Natural Sciences.

    Number of participants

    Maximum 25 PhD candidates

    Language

    English

    Evaluation criteria (doctoral training programme)

    Active participation

    After successful participation, the Doctoral Schools will add this course to your curriculum of the Doctoral Training Programme in Oasis. Please note that this takes up to one to two months after completion of the course.