Welcome to Geospatial Analysis with Python and R 2021 (the Python part)

Geospatial Analysis with Python: The course teaches you how to do different GIS-related tasks in the Python programming language. Each lesson is a tutorial with specific topic(s) where the aim is to learn how to solve common GIS-related problems and tasks using Python tools. In the lessons we use only publicly available data which can be used and downloaded by anyone anywhere. In this course, we assume that you know the basics of Python programming - but we will also repeat Python basics in order to refresh everyone’s memory.


To understand and explore the benefits of using a non-gui (coding/scripting) approach to method development for spatial analytics and statistics, based on the standard approaches of widely used and integrated scripting environments (Python and R).

This is an introductory course on concepts, skills, and tools for working with the Python and R scripting environments. Obtain acquaintanceship with practical Python and R libraries for everyday scientific and professional GIS use, with a focus on automating different standard GIS-related tasks that support clear documentation of methods and productivity. These lessons assume no prior knowledge of the skills or tools. It is a hands-on teaching course, so the majority of this course will be together in front of a computer and working on exercises.

Course format

The majority of this course will be spent in front of a computer learning to program in the Python language and working on exercises.

The computer exercises will focus on developing basic programming skills using the Python language and applying those skills to various GIS related problems. Typical exercises will involve a brief introduction followed by topical computer-based tasks. At the end of the exercises, you may be asked to submit answers to relevant questions, some related plots, and/or Python codes you have written or used. You are encouraged to discuss and work together with other students on the laboratory exercises, however the independent assignment write-ups that you submit must be completed individually and must clearly reflect your own work.

Open Access!

The aim of this course is to share the knowledge and help people to get started with their journey for doing GIS more efficiently and in a reproducible manner using Python programming.

Read more about open licensing terms from here.

Course topics

The materials are divided into several sections:



Lesson 0

Setup Miniconda environments and Jupyter Notebooks; Recap Getting started Python;

Lesson 1

Spatial data model; Geometric Objects; Shapely

Lesson 2

Working with GeoDataFrames; Managing projections;

Lesson 3

making spatial queries and joins;

Lesson 4

Reclassifying data with Pysal

Lesson 5

Working with raster data

Lesson 6

Visualization, making static and interactive maps;


Lesson content, readings and due dates are subject to change

We will make more contents visible during the course


Supported by projects and funding: