Home

Awesome

Geographical Computing

These pages outline a one semester (36 contact hours) class in python programming for geospatial that was last taught at Victoria University of Wellington as GISC 420 in the first half of 2022.

I am still in the process of cleaning the materials up for potential conversion into training materials. For the time being the materials are provided gratis with no warrant as to their accuracy as a guide to python programming for geospatial but you may still find them useful all the same!

Link to video segments from zoom sessions

A consolidated list of the video material for this class is available on this page. Note that some video content is from earlier years, but remains relevant.

Lab and lecture timetable

Here's a 12 week schedule for the course.

WeekLecture topicLab materialsVideos
1Course overview; why python; variables and operatorsIntroduction to Python codeVideos
2Programming 1 functions and conditionalsgeopandas: working with spatial data using code (5%)Videos
3Programming 2: Loops, strings, and listsLoops and iteration (10%)Videos
4Programming 3: DictionariesReclassify complex landuse data programmatically (15%)Videos
5geopandas as a GISPerform basic GIS operations in geopandas (15%)Videos
6Programming 4: Objects [right-click download] and APIs; thinking algorithmicallyIntroducing some potential project topics<br />Mini-programming project (30%) Videos
7Random other stuffRandom other stuff materials<br />Setting up working environments for the projectsVideos
8Web-scraping and the DOMBeautifulSoupVideos
9Automating QGISthe materialsVideos
10A glimpse of other languages: same only differentpydeck - making JavaScript using Python
11Course review (ask me anything!)Working on mini-projects
12In-class 'e-test' (25%)Working on mini-projects

Readings

A really great introduction to Python is provided by this freely available PDF book (also available to purchase), from which readings will be assigned, especially in the first half of trimester.

Other useful resources are generally found online and will be called out in lectures as we proceed or provided via Blackboard if needed.

Software

Most of the lab assessments will be completed in Jupyter Notebook or similar Jupyter Lab environments. These are good for incrementally becoming accustomed to code, then writing small amounts of code, building up to writing more extensive blocks of code.

For the mini-project assignment it will probably be more effective to work in an Integrated Development Environment (IDE) such as VSCode or PyCharm and use a version control tool such as git.

All these tools are freely available (although there are a few wrinkles and variations between platforms). We will introduce these in class as needed. All are available on the lab machines, but you may prefer to work on your own computer.