Schedule
| Week | Topic | Main Python Tools | Exercises |
|---|---|---|---|
| Week 1 (09/04) | Spatial thinking in biodiversity science | NumPy, pandas, GeoPandas, matplotlib | Map a biodiversity dataset |
| Week 2 (09/11) | Biodiversity data acquisition | GeoPandas, pygbif | Access and download occurrence data using the GBIF API |
| Week 3 (09/18) | Biodiversity data cleaning | GeoPandas, pygbif | Analysing and cleaning GBIF observations |
| Week 4 (09/25) | Vector spatial analysis | GeoPandas, Shapely | Buffers, intersections, spatial joins |
| Week 5 (10/02) | Raster data and environmental covariates | rasterio, rioxarray, xarray, NumPy | Extract climate, elevation, and land cover |
| Week 6 (10/09) | Species distribution modeling (Random Forest) | scikit-learn, rasterio, pandas | Build a first SDM from scratch w/ ML |
| Week 7 (10/16) | Exploring SDM software | Running 'production grade' SDMs | Build and compare distribution models |
| Week 8 (10/23) | SDM predictions in space and time | Projecting a fitted SDM to future climate conditions | |
| Week 9 (10/30) | Spatial autocorrelation | libpysal, esda, GeoPandas | Calculate global and local Moran's I |
| Week 10 (11/06) | Spatial interpolation and prediction | scipy, scikit-learn, optionally gstools | Predict an environmental or ecological surface |
| Week 11 (11/13) | Community composition across space | pandas, scipy, scikit-learn, GeoPandas | Analyze beta diversity and distance decay |
| Week 12 (11/20) | Ordination, gradients, and evolutionary diversity | scikit-learn, scipy, matplotlib | Compare geographic, environmental, and diversity spaces |
| Week 13 (12/04) | Landscape connectivity and conservation prioritization | rasterio, NumPy, networkx | Build resistance and prioritization scenarios |
| Week 14 (12/11) | Synthesis: biodiversity under environmental change | Full stack | Final project presentations |
Course topic scratch pad
Look at elapid, a Python SDM package
Add gradient forest somewhere mid-semester
scratch pad