Postgraduate Course: Object Orientated Software Engineering: Spatial Algorithms (PGGE11106)
Course Outline
School | School of Geosciences |
College | College of Science and Engineering |
Credit level (Normal year taken) | SCQF Level 11 (Postgraduate) |
Availability | Available to all students |
SCQF Credits | 10 |
ECTS Credits | 5 |
Summary | The course assumes a prior working knowledge of the Python 3 programming language. It uses these to develop an understanding of the use of computer programming in spatial analysis, including batch processing, handling large datasets and developing novel algorithms and data products. A range of practical examples are used to identify and utilise generic algorithmic principles across a variety of different spatial data types and problems. Concepts of algorithm efficiency and resource usage and design of clear, maintainable software, are addressed. There is a strong practical emphasis to learning on the course and it is delivered through a sequence of five, four-hour workshops that allow you to iteratively learn about aspects of algorithm design and then to implement these in practice for yourself.
Technological Infrastructures for GIS (PGGE11234) or other equivalent experience of basic python is a pre-requisite for this course. |
Course description |
Week 1
Introduction to python programming: Computer basics; Version control software and repositories; Revision of python basics; Reading and writing files; Introduction to algorithm design: Finding minima and sorting
Week 2
Objects and flexible programs: Using the command line to make programmable programs; Objects and classes; Function fitting; Binary search, by loop or recursion
Week 3
Geospatial algorithm design: Geospatial packages: introduction to pyproj and gdal; Further algorithm design: Recursion; Handling raster data; Reusing existing code
Week 4
Geospatial data formats (raster/vector). Geospatial data formats (HDF5 and geotiff packages). Raster-vector calculations. Batch processing: Raster-vector intersection
Week 5
Big data: Bringing it all together. More geospatial packages: Geopandas/ RAM management. Batch processing large geospatial datasets
Course code examples: https://github.com/edinburgh-university-OOSA/OOSA-code-public
Free access has kindly been granted to DataCamp's tutorials for members of this course: https://www.datacamp.com
|
Entry Requirements (not applicable to Visiting Students)
Pre-requisites |
It is RECOMMENDED that students have passed
Technological Infrastructures for GIS (PGGE11234)
|
Co-requisites | |
Prohibited Combinations | |
Other requirements | A working knowledge of the basics of Python is essential, particularly data types (lists, dictionaries etc.) and flow control (if's, loops and functions). |
Information for Visiting Students
Pre-requisites | None |
High Demand Course? |
Yes |
Course Delivery Information
|
Academic year 2022/23, Available to all students (SV1)
|
Quota: 40 |
Course Start |
Block 3 (Sem 2) |
Timetable |
Timetable |
Learning and Teaching activities (Further Info) |
Total Hours:
100
(
Programme Level Learning and Teaching Hours 2,
Directed Learning and Independent Learning Hours
98 )
|
Assessment (Further Info) |
Written Exam
0 %,
Coursework
100 %,
Practical Exam
0 %
|
Additional Information (Assessment) |
100% coursework:
Learning journal and weekly code respository to be submitted every week (30%, marked over all 5 weeks)
Final Project (70%) |
Feedback |
Formative feedback will be given for each week¿s journal entry. These will all be marked at the end of the course. |
No Exam Information |
Learning Outcomes
On completion of this course, the student will be able to:
- Understand object oriented programming.
- Identify how different spatial data models can be implemented in object-oriented designs
- Have an understanding the principles of algorithm development and of generic concepts employed in algorithm design and be familiar with a range of algorithms used to manipulate and analyse spatial data
- Be able to develop Python classes suited to the representation and analysis of spatial data.
- Be able to undertake spatial data Input / Output in standard formats and to interface Python with other proprietary software and be able to complete programming and software documentation within specified parameters and to a professional standard
|
Reading List
http://www.python.org/
Martelli A, (2009), Python in a Nutshell, O¿Reiley
Lutz M, Learning Python(2009), O¿Reiley
Sedgewick R, and Wayne K (2011):,Algorithms 4th edition
Westra, E 2015 Python GeoSpatial Analysis essentials. Packt publishing
|
Contacts
Course organiser | Dr Steven Hancock
Tel: (01316)51 7112
Email: |
Course secretary | Ms Heather Penman
Tel: (0131 6)50
Email: |
|
|