This is a graduate course taught as GEOG696c (the physical geography seminar) at the University of Arizona. The class was last taught in Fall 2023. The full syllabus is available here.
This course is designed as a graduate level class in a workshop format to give students a theoretical framework, practical experience, expert knowledge, and statistical tools for analyzing spatiotemporal datasets. It is fundamentally about building tools and practical understanding so that students can intelligently apply these techniques in their own research. Topics include basic matrix algebra and statistics, exploratory data analysis, field correlation and regression analysis, autocorrelation and its statistical consequences in time and space, parametric and non-parametric significance testing and error analysis, empirical orthogonal functions including rotation, singular spectrum analysis, maximum covariance and canonical correspondence analysis, and traditional and multitaper spectral analysis. The course encompasses instruction and training in Python and in the use and manipulation of large multi-dimensional datasets.
The major outcome for the class for each student will be a new and independent analysis of a substantial space-time dataset, a formal manuscript describing the motivation, methods, and results of this analysis, and a professional oral presentation. Students are encouraged to bring with them or seek out data relevant to their research to use for their final project. Ideally, students' final projects will provide the material for a thesis chapter and/or peer-reviewed article.
The course was inspired by and initially based on an objective analysis/spatiotemporal data analysis class taught by Mike Evans.
August 23 to August 31 - Introduction to Python, NumPy
, Pandas
, Matplotlib
(Part 1 and Part2) and Linear Algebra
August 31 to September 12 - Variance, covariance, and correlation -- Part 1 and Part 2 -- plus an introduction to xarray
September 14 to September 21 - Introduction to Empirical Orthogonal Functions -- Part 1 and Part 2 -- plus mapping with Matplotlib
and Cartopy
and singular value decomposition on the covariance matrix vs. the data matrix.
September 21 to September 28 - EOF significance, meaningfulness, and interpretation, with short lectures on missingness and randomness.
September 28 to October 10 - EOF interpretation and orthogonal rotation
October 17 to October 26 - Analysis of coupled fields, field correlation, an alternative field correlation approach if you need local significance levels, compositing, and field significance and false discovery.
October 31 to November 7 - Spectral analysis (simple periodic signals and auto-correlation)
November 9 to November 14 - Frameworks for spatiotemporal data analysis
November 14 to December 5 - Student project work and presentations
This Youtube video from Visual Studio Code (the integrated coding environment we'll use in this class) can get you up and running pretty quickly . They show installation in Windows, so macOs will be slightly different. We'll also go this live in class on August 24th.
Here are the basic steps:
- Install Python using Miniconda (recommended for this class: https://docs.conda.io/en/main/miniconda.html) or the full individual Anaconda distribution (https://www.anaconda.com/download) for your operating system. Both are free. Note that if you have an older operating system, the current versions of Miniconda might not work on your system.
- From the newly installed Conda prompt, from within Python, or from your terminal, install iPython.
- Install Juypter Notebooks: https://jupyter.org/install
- Install Visual Studio Code itself (https://code.visualstudio.com/download) for your system
- Within Visual Studio Code, install the Python extensions (from Microsoft)
- Test your system
This work is licensed under a Creative Commons Attribution-NonCommercial 3.0 License (CC BY-NC 3.0 US).
You are welcome to use any of this material, so long as it is for non-commercial purposes.