Module overview
This module provides students with the skills to automate geospatial data science workflows using code, specifically code written in the open source programming language Python.
Aims and Objectives
Learning Outcomes
Learning Outcomes
Having successfully completed this module you will be able to:
- Demonstrate an understanding of the basic principles of writing useful code for spatial analyses.
- Demonstrate an understanding of how to programme in the open source language Python.
- Develop workflows for spatial analyses using Python via open source and commercial software.
- Demonstrate a basic understanding of the principles of data science and geospatial cloud computing and how to implement these using Python.
Syllabus
This module is heavily practical-based to maximise the opportunities for students to learn and apply programming skills for geospatial analysis with real datasets. It starts with several practicals introducing the basics of programming in Python, before then moving to geospatial data science applications using Python. This will include working with Arcpy, the Python library for the industry leading software ArcGIS Pro. A major emphasis is on general good practice designing workflows and organising code for spatial analyses, which will be useful when working on spatial analyses in other packages (e.g. QGIS; which is also based on Python code, as well as R).
It will include a one-hour introductory lecture and 11 3-hour practical classes.
The one 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.
Part 1: Basics of Python (3 weeks)
Week 1 [Lecture]: Introductory lecture
-What is geospatial data science and why programming and especially Python?
Week 2 [Practical]: Introduction into the basics of scientific computing and Python
-Operating and file systems, Python env [Jupyter Notebook & IDE] and basics including variables, data structures, and control statements
Week 3 [P]: Introduction into reproducible code
-How to use and write functions (and classes) – a key point of using programming.
Week 4 [P]: Introduction into Python modules
-Basic and geospatial modules (e.g., geopandas) – a key reason why Python is popular.
Part 2: Geospatial analyses using Python – part 1 (3 weeks)
Week 5 [P]: Working with spatial files and directories. Introduction to command line [dos prompt and examples of Linux/cookbook). Get them used to ‘what’s under the hood’ with computers, and how to access this.
-Introduction to ArcGIS + geopandas and directories and path structure. Move files around using both ArcGIS and geopandas.
Week 6 [P]: Geospatial analyses GIS [define projection; reproject; buffer; clean up files.] in ArcGIS and Geopandas
Week 7 [P]: Functions and loops for geospatial analyses in ArcGIS and geopandas
#### Assignment 1 set – GIS using ArcGIS or geopandas (30%)
Part 3: Intro to Data science using Python (3 weeks)
Week 8 [P]: Introduction to data science
-NumPy, Pandas, Matplotlib, and interaction between R and Python.
Week 9 [P]: Introduction to advanced data science
-Scikit-learn (e.g., random forest regression), Keras, Tensorflow, Pytorch (e.g., land cover classifications).
Week 10 [P]: Support session
-Q&A regarding Assignments 1&2
### Assignment 2 set– data science and GIS via Python (70%). Due as late as possible.
Part 4: New techniques in geospatial data sciences [ 2 weeks. More practice; can also work on final assignment]
Week 11 [P]: Geospatial cloud computing platforms
-GEE, alternatively Planetary Computer – filtering data, basic GIS processes, and data retrieval.
Week 12 [P]: GenAI in geospatial analysis
-What is Generative AI and how to use it in geospatial analysis responsibly? [Intro to GGES6031]
Learning and Teaching
Teaching and learning methods
The module will consist of :
a)An introductory lecture that outlines why 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.
| Type | Hours |
|---|---|
| Assessment tasks | 58 |
| Independent Study | 58 |
| Teaching | 34 |
| Total study time | 150 |
Resources & Reading list
General Resources
Computer Labs required. (3 hour slots)
Assessment
Formative
This is how we’ll give you feedback as you are learning. It is not a formal test or exam.
Class practicals
- Assessment Type: Formative
- Feedback: Students will receive regular formative feedback during practicals by being able to compare their work to worked examples and being able to discuss discrepancies between their work and the worked code.
- Final Assessment: No
- Group Work: No
Summative
This is how we’ll formally assess what you have learned in this module.
| Method | Percentage contribution |
|---|---|
| Assignment | 30% |
| Assignment | 70% |
Referral
This is how we’ll assess you if you don’t meet the criteria to pass this module.
| Method | Percentage contribution |
|---|---|
| Assignment | 100% |
Repeat Information
Repeat type: Internal & External