Welcome to GEOG 441, Advanced Geospatial Methods
This course is designed to allow students with varying degrees of GIS and remote sensing experience to increase their knowledge. The class is mainly focussed on Python, R and other open source geospatial tools. Students are free to choose the exercises that are most relevant to their goals.
That said there are a few skills and tools that students need to grasp by the end of the class.
- Use of GIT for project management and code sharing
 - Ability to use either Python or R to perform geospatial tasks
 
| Component | Fraction of grade | 
|---|---|
| Exercises | 0.3 | 
| Independent project | 0.3 | 
| Group Project | 0.3 | 
| Participation (coming to class, being engaged) | 0.1 | 
There is one exercises that is required, an introduction to GIT. Students may choose other exercises based on their interests or project needs. We will be using GIT to manage projects in this class, and GIT is a skill that many employers are interested in. GIT is also a great way to manage and share your own projects if you are a researcher, or to build a portfolio.
The rest is up to you as far as exercises go. You do however need to make substantial gains in you ability to use either R or Python (or both!) to solve geospatial problems. Ideally, by the end of the quarter you will be familiar with the content of the suggested tutorials for your chosen language and have completed at least on of the Complicated Tasks listed under the tutorials for that language (If you are a total beginner to the langage, you may not make it that far, but try your best). If you are working primarily with your programming language for your personal project, or group project you can skip the synthesizing exercise if you would like.
At the end of the quarter you will submit a brief self-evaluation, with a summary of the exercises you have completed and a paragraph or two describing the things you have learned. You will give yourself a grade for the exercises portion on the class, and explain why you deserve that grade.
- 
GIT exercise (required, complete by 2025-04-09)
- Create a github (or similar) account (if you don't have one)
 - Read and experiment with the steps in this Github tutorial
 - Clone this github repo
 - Create your own repo for your individual project
 - With your group, create a repo for your group project
 - Before you start working on group project, mess around with commits, branching and merging to get some practice.
 
 - 
GDAL tutorials
- In the Spatial Thoughts GDAL tutorial do sections 1.1–1.4 and 2.1–2.3
 
 - 
Python tutorials
- 
The exercises in the slides for this class
 - 
Pandas:
 - 
GeoPandas:
 - 
rioXarray:
- Xarray
 - rioXarray basics
 - Clipping Rasters
 - reproject
 - ⭐ reporoject match ⭐ This one is quite useful.
 - Interpolate missing data
 - 🔥 Reading and writing large files with Dask. More difficult than the other tutorials up to this point. 🔥
 - Generating animated time series
 - PAn Sharpening
 
 - 
Complicated Tasks:
- See if you can build a conda environment and run PyCrown. Download some data from the USGS lidar explorer for an area that interest you (and has trees) and perform crown segmentation.
 - Perform radiometric terrain corrections of Sentinel-1 SAR
 - Learn a little about more about synthetic aperture radar remote sensing by working through the first basic example of sarpy 💥 This will not be easy! 🔥 This could even be a personal project.
 
 
 - 
 - 
R tutorials
- Intro to R geospatial
 - Intro to R Raster and Vector
 - Working with NEON hyperspectral data
 - Complicated Tasks:
- Image Classification (This is an old tutorial using the raster package. See if you can recreate it using newer packages such as Stars and Terra)
 - Tree segmentation from lidar point clouds using the lidR package. Download some data from the USGS lidar explorer for an area that interest you (and has trees) and go to town. Try to dowload multiple tiles and use the lascatalogue function (start off with a single tile and work up to that).
 
 
 - 
QGIS tutorials
 - 
GRASS tutorials
 - 
Other stuff you want to learn tutorials
 
| Week | Date | Lecture | Preparation | 
|---|---|---|---|
| 1 | 2025-04-02 | Introduction 
 
  | 
|
| 2 | 2025-04-07 | Group Project Introductions  
 
  | 
|
| 2 | 2025-04-09 | Python and R: 
  | 
Complete the GIT exercise before class | 
| 3 | 2025-04-14 | Working with Vectors in Python | |
| 3 | 2025-04-16 | Working with Vectors in R 
  | 
|
| 4 | 2025-04-21 | Working with Rasters in Python 
  | 
|
| 4 | 2025-04-23 | Working with Rasters in R Or Drone flyin'  | 
|
| 5 | 2025-04-28 | Working with Rasters in GRASS 
  | 
|
| 5 | 2025-04-30 | Lidar 
  | 
|
| 6 | 2025-05-05 | Catch up day | |
| 6 | 2025-05-07 | Lidar continued 
  | 
|
| 7 | 2025-05-12 | Group Project Check-In | |
| 7 | 2025-05-14 | Individual Project Check-In | |
| 8 | 2025-05-19 | Leaflet, quarto, reveal | |
| 8 | 2025-05-21 | Subject By Popular Demand | |
| 9 | 2025-05-26 | Memorial Day | |
| 9 | 2025-05-27 | Subject By Popular Demand (A Tuesday following Monday schedule) | |
| 9 | 2025-05-28 | Subject By Popular Demand | |
| 10 | 2025-06-02 | Individual Presentations | |
| 10 | 2025-06-04 | Group Presentations | 
Lecture Slides found here.
For the individual project you can either do a study, i.e. make a hypothesis and test it, or implement some sort of geospatial solution and document what you have done. The goal of the assignment is to challenge yourself and learn.
If you choose a study you should have a clear research question with a testable hypothesis, methods, results and discussion. Also include a section on what new skills you learned.
If you choose to implement some challenging geospatial solution, document the problem you ae tying to solve, your methods. Were you successful? Why or why not? What cold be done better? What did you learn?
Difficulty Ratings:
Easy 
Hard 
Project Ideas:
- Get a part 107 Commercial UAV operators license. Study for the test, then take the exam (costs $175).
 - Here are some ideas in the realm of urban planning. You would need to go above and beyond just following the steps presented in this article, but they could be a good starting point. This article is Python focused, but you could redo them using other tolls if desired.
 - Do something cool with Carbon Mapper data
 - Train an ML model to identify abandoned cannabis grow operations in the Klamath Mountains.
 - Build an application or module/library for accessing the ESA Climate Data API
 
Below are details of the group project.
Submit a one-page outline with the following sections:
- Introduction - Describe the setting and problem. Why is it important?
 - Background - What is the necessary context to understand the problem being addressed and what work has been done by others related to the problem.
 - Study Goals - What is the goal of the analysis. What will be delivered.
 - Methods - What methods will be used to accomplish the goals.
 - Data - What data will be used to accomplish the goals
 - Expected Results - If applicable, what do you expect to find in the study?
 
Submit a draft of your report with
- Introduction
 - Background
 - Study Goals
 - Methods and Data
 
If you have any results you can include those too
- Give a 15-30 minute presentation on the project.
 - Have a complete project webpage (We will talk about how to do this using github pages soon. Don't be intimidated, its not that hard.)
 - An efficient way to handle both tasks is to make your presentation slides on GitHub pages.
 
Submit a report (As a PDF) describing the problem, your analysis, and your findings. The data you produced should also be made available for use by stakeholders or other parties.
Use the following structure for the report:
- 
Introduction and Background
- Description and Importance of the problem
 - Previous work done on the problem
 - Goals of analysis, and (if applicable) what you expect to find
 - Map of your study area
 
 - 
Data and Methods
- What data will you use to investigate this question? Include:
- Table summarizing the data you used with brief description
 - Maps depicting data, if needed.
 
 - Describe your analysis methods including: - Text describing your procedure -Processing diagrams / flowchart of data processing steps - Figures and maps, as necessary
 
 - What data will you use to investigate this question? Include:
 - 
Results
- What did you find from the analysis? Include: - Maps showing results - Tables and figures (with captions) as necessary.
 
 - 
Discussion
- Were the results what were expected?
 - Did the analysis answer your question?
- How do these results recontextualize the original question?
 - What assumptions were made in the analysis?
 - What are sources of error or shortcomings of the study?
 - What further analysis would you perform?
 
 
 - 
Conclusions
- What would you have done differently?
 - What further work should be done?
 
 - 
References
- You can choose the citation format, so long as it is consistent.
 - Run it by me to make sure it is a reasonable format.
 - Include an in-text citation for claims made like this (Author, year)
- For example: “In riparian habitats,  aardvarks show a preference for nesting in oak trees (Horkenborkenstiein et al., 2025).”
- OR: "Horkenborkenstiein et al. (2025) found that in riparian habitats,  aardvarks show a preference for nesting in oak trees."
- Each cited source should be listed in the references' section in alphabetical order.
 
 
 - 
Contributions - describe who did what.