Welcome to Automating GIS-processes 2019!¶
Automating GIS-processes -course teaches you how to do different GIS-related tasks in 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. We are using only publicly available data which can be used and downloaded by anyone anywhere. We also provide a computing environment which allows you to instantly start programming and trying out the materials yourself, directly in your browser (no installations needed).
Notice: we assume that you know the basics of Python programming. If you are new to Python, we recommend that you start with the Geo-Python course materials at geo-python.github.io. The Automating GIS processes course (“AutoGIS”) is a direct continuation from the Geo-Python course, which is a join effort between the geography and geology study programmes at the University of Helsinki, Finland.
The majority of this course will be spent in front of a computer learning to program with Python programming language and doing practical exercises.
The computer exercises will focus on developing basic programming skills using Python and applying those skills to various GIS related problems. Typical exercises will involve a brief introduction, followed by topical computer-based tasks and exercises. At the end of the exercises, you are asked to submit answers to relevant questions, some related plots, and the Python codes you have written. You are encouraged to discuss and work together with other students on the laboratory exercises, however the laboratory summary write-ups that you submit must be completed individually and must clearly reflect your own work.
The course is open for everyone. 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.
Step by step instructions with cloud computing
The materials are written in a way that you can follow them step by step exactly as they are written, as long as you use the cloud computing resources that we provide for you using Binder and CSC Finland cloud computing resources (for Finnish students). If you work from your own computer, you need to adjust the file paths to the data accordingly.
If you would like to use these materials for your own teaching or develop them further, we highly support that. Please read more about how to do it from here.
Course topics by week¶
In teaching period 1 (Geo-Python), we focused on learning the basics of Python programming. See the materials on the Geo-Python course page.
In teaching period 2 (Automating GIS processes), we dive into spatial data management and analysis using python. This part of the course runs for seven weeks starting on Monday the 28th of October 2019.
Lesson materials are published on these pages each week on Monday, after which they are publicly available for anyone interested:
Shapely and geometric objects (points, lines and polygons)
Managing spatial data with Geopandas (reading and writing data, projections, table joins)
Geocoding and spatial queries
Reclassifying data, overlay analysis
Visualization: static and interactive maps
OpenStreetMap data (osmnx) and Network analysis (networkx)
Using Python in QGIS; Raster data processing
- General info
- Course environment
- Learning goals
- Installing Python + GIS
- License and terms of usage
- Motivation for the course
- Lesson overview
- Shapely and geometric objects
- Exercise 1
- Lesson 2 Overview
- Vector Data I/O in Python
- Introduction to Geopandas
- Map projections
- Calculating distances
- Creating new layers
- Exercise 2
- Geocoding in Geopandas
- Point in Polygon & Intersect
- Spatial index - How to boost spatial queries?
- Spatial join
- Nearest Neighbour Analysis
- Nearest neighbor analysis with large datasets
- Exercise 3
- Lesson 5 Overview
- Static maps
- Interactive maps
- Employment rates in Finland
- Sharing interactive plots on GitHub
- Exercise 5
- Lesson 7 Overview
- Python in QGIS
- Creating QGIS plugins
- Additional PyQGIS functions
- Automatize data download
- Reading raster files with Rasterio
- Visualizing raster layers
- Masking / clipping raster
- Raster map algebra
- Creating a raster mosaic
- Zonal statistics
- Read Cloud Optimized Geotiffs