Lectures are on Tuesdays and Thursdays from 3:05 PM - 4:20 PM in Teer 106. The course website is on GitHub (https://github.com/chaneyn/CEE690-02). Class announcements will be made via Sakai (CEE690.02.F19).
Professor Nathaniel W. Chaney (Nate)
Email: nathaniel.chaney@duke.edu
Office: FCIEMAS 2463
Office hours: By appointment on Friday mornings (calendly.com/nathaniel-chaney)
Reza Momenifar
Email: mohammadreza.momenifar@duke.edu
Office: FCIEMAS 2421
Office hours: Mondays 8:00-10:00 AM
This course provides an introduction on how to analyze and create Gigabytes to Terabytes of spatial environmental data using Python and R. The topics that will be covered include an overview of basic spatial statistics, spatial interpolation, kriging, conditional simulation, terrain analysis, dimensionality reduction, and spatial prediction. Existing software packages in Python and R will be introduced and used to explore the listed topics.
Although there are no class prerequisistes, a strong foundation in programming will make this class much easier. Please contact Nate if you have concerns.
There are no required textbooks. Reading will be provided via journal articles, online materials, and tutorials.
The course grade is based on three items:
- Homework: 40%
- Participation: 20%
- Final Project: 40%
There will be 8 homework assignments. Each assignment will be provided and completed within a corresponding Jupyter notebook. Completed assignments will be submitted via a private GitHub repository that each student will have for the course; assignments submitted via any other method will not be accepted. Each assignment must be submitted before class on the day listed on the schedule below. One homework with the lowest grade will be dropped. Late homeworks will not be accepted. Solutions to the homeworks will be provided via Sakai.
- Students should bring a laptop to class to follow along the lecture on their personal jupyter lab Docker container that they will use for the course.
- Most Tuesdays we will begin with a 15-30 minute review of the assignment turned in the previous week. Groups will present and discuss the solutions to the assignment. The number of students to present will vary depending on the length of the assignment.
- We will be using Piazza for most communication outside of class. This will facilitate interaction among the class members when completing the assignments.
Collaboration in completing assignments is permitted. However, each student must write up their assignment independently. We will be checking for identical homeworks.
The final project will be done in groups of 3-4 students and will involve the following components:
- Initial Proposal (October 10th via email)
- 1 page, Single-spaced, 12 point font size, 1 inch margin
- Contains: Title, motivation, and sketch of proposed methodology
- Proposal presentations (November 5th)
- 10 minute informal oral presentation
- Open discussion/feedback in class
- Revised Proposal (November 10th via email)
- 3 pages, Single-spaced, 12 point font size, 1 inch margin
- Contains: Title, introduction, objectives, Methodology, and a timeline of tasks
- Oral presentation (December 3rd and 5th in class)
- 20 minute oral presentation, 5 minutes for questions
- Everyone needs to be present for each presentation
Note that the schedule is subject to change; changes will be announced in class and the online syllabus will be updated.
Date | Topic | New Software | Assignments | Presentation |
---|---|---|---|---|
08/27 | Introduction | Jupyter/GitHub/Bash | ||
08/29 | Python overview | Python | ||
09/03 | Multi-dimensional arrays I | NumPy | HW #1 due | |
09/05 | Visualizing data I | Matplotlib/Seaborn | Reza and Nate | |
09/10 | Raster data | Rasterio | HW #2 due | |
09/12 | Data storage | Pickle/H5py/NetCDF/Tiff | TBD | |
09/17 | Multi-dimensional arrays II | Pandas/Xarray | HW #3 due | |
09/19 | Map projections I | GDAL | TBD | |
09/24 | Map projections II | HW #4 due | ||
09/26 | Visualizing data II | Cartopy | TBD | |
10/01 | Spatial statistics I | Scipy | HW #5 due | |
10/03 | Spatial statistics II | TBD | ||
10/08 | Fall Break | |||
10/10 | R overview | R/Rpy2 | Initial proposal due | |
10/15 | Spatial statistics III | Gstat (R) | HW #6 due | |
10/17 | Semivariogram | TBD | ||
10/22 | Kriging | |||
10/24 | Conditional Simulation | |||
10/29 | Spatial prediction I | Scikit-learn | ||
10/31 | Spatial prediction II | |||
11/05 | Proposal presentations | |||
11/07 | Dimensionality Reduction I | Revised proposal due | ||
11/12 | Dimensionality Reduction II | HW #7 due | ||
11/14 | Terrain Analysis I | TBD | TBD | |
11/19 | Terrain Analysis II | |||
11/21 | Vector data | Shapely | ||
11/26 | Speed up code | Numba/Mpi4py/Dask | ||
11/28 | Thanksgiving Break | |||
12/03 | Oral Presentations | |||
12/05 | Oral Presentations | |||
12/16 | Written report due | HW #8 due |