Course unit details:
Understanding GIS
Unit code | GEOG71551 |
---|---|
Credit rating | 15 |
Unit level | FHEQ level 7 – master's degree or fourth year of an integrated master's degree |
Teaching period(s) | Semester 1 |
Available as a free choice unit? | No |
Overview
As GIS technologies become increasingly available to the general public, the users of those technologies are becoming increasingly detached from the ‘geographical information science’ behind the software. Understanding GIS seeks to remedy this by using Python programming to explore how common GIS operations actually work, and teach students to be able to understand spatial problems in order that they can develop their own solutions.
The course will teach students the main paradigms and algorithms that underpin both GIS, and the Python programming language. In doing so, it removes reliance upon ‘black box’ software such as ArcGIS, whilst affording students insights into an ‘expert’ level of understanding of GIS, including the crucial ‘how it works’ that is missing from most desktop GIS software.
Aims
The unit aims to:
- offer students insight into how GIS software really works.
- teach students valuable skills in the Python programming language.
- enable students to automate data processing and analytical tasks.
- allow students to develop problem-solving skills, by writing software to solve a variety of geographical problems.
Learning outcomes
By taking this unit, students will develop into experts in GIS by understanding how common GIS operations actually work (KU1) and the assumptions and paradigms that underly them (IS1), rather than simply being able to implement them in desktop software as users of GIS. This depth of understanding, and the ability to break down complex problems into achievable solutions (TS2), as taught and assessed through the course, will enable students to deal with novel or unfamiliar problems in future, in both academic and industry contexts. Depth of understanding, rather than a superficial understanding of GIS tools or analyses, will also enable students to communicate with collaborators who are not experts in GIS (TS3).
Students will have gained valuable experience working with Python (TS1), managing environments using Anaconda, and working with a range of scientific and geospatial libraries (e.g., geopandas, rasterio, networkx, rtree, numpy, shapely). These skills will enhance employability for careers in programming, data science or academic research, and provide a foundation for learning new programming languages or software as required.
Students will have also demonstrated competency in the handling of multiple types of spatial data i.e., vector and raster (PS1), which is critical for any future work involving geospatial techniques. Students will also have experience handling data programmatically (PS2), rather than via a graphical-user-interface (GUI), as well as automation of tasks (PS3), both of which are embedded in the course assessments. Advanced handling of data improves analytical efficiency, elegance, and robustness, and will enable students to be more ambitious and rigorous with their analyses than would be possible with a GUI approach alone, both in the short-term i.e., for dissertations, and in the long-term.
Students will also have gained experience utilising a programming forum via the VLE. Even for experienced programmers, identifying and addressing coding errors is a time-consuming task, so being able to utilise forums effectively (such as Stack Overflow) is a key skill for those working with code and data, particularly when novel or unfamiliar problems are encountered. Students will utilise the forum to search for existing posts or create their own when a difficult problem is encountered, and as the course and their expertise develops, will be able to respond to other students’ queries.
Understanding GIS will significantly enhance digital literacy for students. For many, this course will be their first encounter with programming, and many topics will be new to all students (e.g., agent-based modelling, genetic algorithms).
As outlined above, students will have gained valuable experience working with specialist software (Python), managing environments using Anaconda, and working with a range of scientific and geospatial libraries.
Students will gain experience accessing learning materials via the VLE and using a programming forum for the first time.
Students will respond to online feedback, produce visualisations and analyse data for their assessments, and write and design reports.
Syllabus
Syllabus (indicative curriculum content):
The current version of the course will introduce students to the following GIS concepts and tools:
- Topology
- Spatial indexes
- Generalisation
- Distortion
- Visibility
- Networks
- Genetic algorithms
- Agent-based models
In-depth understanding of many of these concepts, such as topology, generalisation, and distortion, is essential for students to develop GIS expertise. As a result, these topics are highly likely to be present in any future iteration of the course. Other aspects of the syllabus are focused on new, advanced, or niche developments in the field of GIS, such as genetic algorithms and agent-based models, and therefore could be updated or replaced in future iterations as the field of GIS develops.
Teaching and learning methods
The course unit will be delivered through ten hybrid lecture and practical sessions. Each of the teaching weeks will involve approximately one-hour of lecture material (L) and two-hours of practical material (P), all delivered in a computer lab (normally in the format 30L-30P-30L-90P minutes).
Each week, the lecture will introduce a theoretical grounding for the related practical, as well as fundamental principles of computing and software development. This will be integrated with a practical in which that knowledge can be applied through writing software in the Python Programming language. The course will progressively build skills in Python-based GIS by visiting a new topic area each week: this will begin with a basic introduction to Python and GIS at the start of the Semester and will end with the creation of software capable of performing complex GIS operations.
Sessions will draw upon a range of resources, including PowerPoint slides for lectures, web-based walkthrough guides for practical sessions, links to relevant web resources, an online forum on the VLE and example code.
The course necessarily has a steep learning curve, and students will be expected to practice this programming outside of the classroom in order to fully understand the material.
Knowledge and understanding
- Understand how many common GIS operations actually work, rather than simply being able to implement them in desktop software.
Intellectual skills
- Gain a deeper understanding of the geographical information science paradigms that underpin geographical information systems.
Practical skills
- Demonstrate competency in the handling of multiple types of spatial data.
- Undertake spatial analysis and map production programmatically.
- Automate repetitive or time-consuming tasks to take advantage of computing power to work more effectively and efficiently.
Transferable skills and personal qualities
- Demonstrate skills in writing and debugging software in the Python programming language, specifically in the context of geospatial applications.
- Develop problem skills, enabling students to break down complex problems into achievable solutions.
- Be able to communicate complex geospatial applications to a non-specialist audience.
Assessment methods
Assessment task 1
Assessment 1 comprises a simple spatial data task, which consolidates the practical and theoretical knowledge that students have learned in the first weeks of the course.
Students must submit the working code for the algorithm as well as a justifying their approach and explaining the results.
Algorithm + 1,000-word report.
40% weighting.
Assessment task 2
Assessment 2 comprises converting a pseudocode algorithm from the literature into a script in order to undertake data analysis for a client.
Students must submit the working code for the algorithm as well as a report for their client, describing their approach and the results.
Algorithm + 1,000-word report.
60% weighting.
Feedback methods
Feedback provided via Blackboard, 15 working days after submission.
Additional formative feedback available in class and via the programming forum.
Recommended reading
Articles Referenced in the Practicals
• Bresenham, J. E. (1965). Algorithm for computer control of a digital plotter. IBM Systems journal, 4(1), 25-30.
• Canters, F., Deknopper, R., & De Genst, W. (2005). A new approach for designing orthophanic world maps. In Proceedings of the 22nd International Cartographic Conference (pp. 9-16).
• Gosling P., C. & Symeonakis E. (2020). Automated map projection selection for GIS, Cartography and Geographic Information Science, 47:3, 261-276.
• Guttman, A. (1984). R-trees: A dynamic index structure for spatial searching. In Proceedings of the 1984 ACM SIGMOD international conference on Management of data (pp. 47-57).
• Hart, P. E.; Nilsson, N. J.; Raphael, B. (1968) A Formal Basis for the Heuristic Determination of Minimum Cost Paths. IEEE Transactions on Systems Science and Cybernetics SSC4 4 (2): 100-107.
• Huck, J., Whyatt, D., & Coulton, P. (2015). Visualizing patterns in spatially ambiguous point data. Journal of Spatial Information Science, 2015(10), 47-66.
• Kaučič, B., & Zalik, B. (2002, April). Comparison of viewshed algorithms on regular spaced points. In Proceedings of the 18th spring conference on Computer graphics (pp. 177-183).
• Mandelbrot, B. (1967). How long is the coast of Britain? Statistical self-similarity and fractional dimension. science, 156(3775), 636-638.
• Schelling, T. C. (1969). Models of segregation. The American Economic Review, 59(2), 488-493.
• Schelling, T. C. (1971). Dynamic models of segregation. Journal of mathematical sociology, 1(2), 143-186.
• Visvalingam M. & Whyatt J., D. (1993) Line generalisation by repeated elimination of points, The Cartographic Journal, 30:1, 46-51.
Other Relevant Material
• Canters, F. (2002). Small Scale Map Projection Design. CRC Press, Boca Raton.
• Crooks, A. et al. (2019) Agent Based Modelling & Geographical Information Systems: A Practical Primer. Sage, London.
• Iliffe, J. & Lott, R. (2008). Datums and Map Projections for Remote Sensing, GIS and Surveying (2nd ed.). CRC Press, Boca Raton.
• Lawhead, J. (2013). Learning Geospatial Analysis with Python. Pakt, Birmingham, UK.
• Python Software Foundation (2022). Documentation for the Python Programming Language.
• Van Sickle, J. (2010) Basic GIS Coordinates (2nd ed.). CRC Press, Boca Raton.
• Veness, C. (2022) Calculate distance, bearing and more between Latitude/Longitude points.
• Veness, C. (2022) Vincenty solutions of geodesics on the ellipsoid.
• W3Schools (2022). Python Tutorial.
• Westra, E. (2010). Python Geospatial Development. Pakt, Birmingham, UK.
• Worboys, M. & Duckham, M. (2004) GIS, a Computing Perspective (2nd ed.). CRC Press, Boca Raton.
• Xiao, N (2015) GIS Algorithms. Sage, New York.
Study hours
Scheduled activity hours | |
---|---|
Practical classes & workshops | 30 |
Independent study hours | |
---|---|
Independent study | 120 |
Teaching staff
Staff member | Role |
---|---|
Matthew Tomkins | Unit coordinator |
Additional notes
Teaching and learning will be designed to be inclusive through providing materials online in advance of sessions in accessible formats (visual media, lecture recordings). Students can engage with discussion in class and online via the VLE programming forum.
Assessment instructions and criteria are clearly communicated in advance of the deadline via the VLE, the course webpage, and via lecture recordings. Although the assessments are similar in scope, each is assessed on a range of criteria (report, algorithm, code, and map quality), while the reports are designed for different audiences (GIS vs. non-specialist; TS3).
Individualised feedback is provided for all students for both assessments, and formative feedback is provided in class and via the programming forum. Assessments are spaced to give students time to act on feedback.
Essential software used as part of this unit meets accessibility requirements (e.g., Spyder integrated development environment) and provides accessible features such as word auto-completion, colour coding of variables names-functions-strings and inline spell-check, as well as the ability to modify further for specific needs (e.g., colour blindness).