Skip to main navigationSkip to main content
The University of Southampton

GEOG6109 Programming for GIS and Spatial Analyses

Module Overview

Aims and Objectives

Module Aims

The aim of this module is to provide students with the skills required to understand and write software programs for analysing spatial datasets. More specifically the module will provide the students with the ability to develop programs that enable them to efficiently repeat the same analyses for different datasets (batch processing). Within this, the students will learn how to read, analyse and display data using open-source programming languages, as well as the basics of computer programming syntax. The software used for this course will be ArcGIS, which is available at the university, and the open-source programming language Python. It is assumed students will have a good basic understanding of using ArcGIS for GIS analyses before starting the module, so Geography 6061 is a pre-requisite for the module.

Learning Outcomes

Learning Outcomes

Having successfully completed this module you will be able to:

  • Understand the basic principles of writing useful code for spatial analyses
  • Understand scripting in Python for data analyses within the ArcGIS environment
  • Develop programs and algorithms for spatial analyses in ArcGIS using Python


This module is heavily practical-based to maximize the opportunities for students to learn and apply programming skills for spatial analysis with real datasets. Introductory lecture This 1 hour lecture will introduce the students to the main reasons why programming is so useful for spatial analysis, using real examples from the published literature. Topics covered will include reproducibility of code and the ability to batch process analyses. Practical classes – 3 hours each 1) Review of ArcGIS and an introduction to ModelBuilder – This practical will briefly review the basics of ArcGIS. It will also introduce ArcGIS’s ModelBuilder functionality, which provides an easy-to-use way of batch processing that provides a useful precursor to programming in Python with ArcGIS. The practical will be organized by running through an analysis of a dataset twice – once using ArcGIS via the graphical user interface (as the students will already know how to do) and once using ModelBuilder 2) The basics of Python: This practical will give an overview of the Python programming language, including such key information as data structure and how to input data. 3) Introduction to Python in the ArcGIS environment This practical sessions will introduce the students to programming ArcGIS using Python. This will include an overview of the basics of the Python language as well as how ArcGIS geospatial tools are integrated into Python in various ways. This practical will involve re-running the same analyses carried out in practical 1, but using scripts written in Python. 4) Advanced programming in Python 1: This practical will show the students how to do more advanced programming in Python, including ‘for’ loops, conditional statements and other core programming techniques for batch processing. 5) Batch processing using Python in the ArcGIS environment 1: This practical will involve re-running similar analyses to those carried out in practical 1 and 3, but this time will involve repeating elements of the spatial analysis using the programming techniques learnt in practical 4. 6) Advanced programming in Python 2: This will build on Practical 4, and show the students how to do more advanced programming in Python, including ‘for’ loops, conditional statements and other core programming techniques for batch processing. 7) Batch processing using Python in the ArcGIS environment 2: This practical will build on the analyses and datasets used in practicals 1, 3 and 5, but will involve using the additional programming techniques learnt in practical 6. 8) Designing efficient workflows using Python in the ArcGIS environment: This practical will focus on how to best organize workflows for spatial analysis that incorporate using Python scripts. The practical will introduce a new spatial dataset and focus on how designing an efficient work flow for analysing it using the skills learnt in practicals 1- 7. 9,10) Using Python for analysing real-world geographical datasets in the ArcGIS environment: These practicals will enable the students to implement the workflow they have designed in practical 8, and apply the skills they have learnt in practicals 1-7 to it. This will give them the expertise of cond they have learnt in practicals 1- 6 and to apply them to different, real-world geographical datasets. 11) Open session on the practical assignment This last practical will focus on how to best deal with the types of problems the students may encounter with their practical assignment (though not with the practical itself!).

Learning and Teaching

Teaching and learning methods

The module will consist of : a) An introductory lecture that outlineswhy programming is such a valuable skill for spatial analyses b) Practical classes in the computing laboratories. Each of these will consist of a short lecture briefly outlining any necessary background information the datasets being used as well as the key concepts that the practical will cover. Dissemination of course information via Blackboard that will include lecture and practical handouts, the relevant datasets and coursework information

Independent Study116
Total study time150



MethodPercentage contribution
Assignment 100%


MethodPercentage contribution
Assignment 100%

Repeat Information

Repeat type: Internal & External

Linked modules

Pre-requisite: GEOG6061

Share this module Share this on Facebook Share this on Twitter Share this on Weibo

We use cookies to ensure that we give you the best experience on our website. If you continue without changing your settings, we will assume that you are happy to receive cookies on the University of Southampton website.