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: 2431 CIEMAS
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 | Matplotlib | Reza and Nate | |
09/10 | Data storage | Pickle/H5py/NetCDF/Tiff | HW #2 due | |
09/12 | Probability/Statistics I | Scipy | TBD | |
09/17 | Probability/Statistics II | HW #3 due | ||
09/19 | Time series analysis | TBD | ||
09/24 | Map projections I | Cartopy | HW #4 due | |
09/26 | Map projections II | GDAL | TBD | |
10/01 | Multi-dimensional arrays II | Xarray | ||
10/03 | Overview of spatial data | |||
10/08 | Fall Break | HW #5 due | ||
10/10 | Cluster Analysis I | Scikit-Learn | Initial proposal due | TBD |
10/15 | Cluster Analysis II | |||
10/17 | Guest Lecture - Voronoi tessellation | |||
10/22 | Dimensionality Reduction | |||
10/24 | Classification/Regression I | |||
10/29 | Classification/Regression II | HW #6 due | ||
10/31 | Classification/Regression III | TBD | ||
11/05 | Proposal presentations/Downloading data | |||
11/07 | Vector Data/Geostatistics I | OGR/Shapely/Fiona/R/Rpy2/Gstat | ||
11/12 | Geostatistics II | |||
11/14 | Geostatistics III | Revised proposal due/HW #7 due | TBD | |
11/19 | Geostatistics IV | |||
11/21 | Terrain Analysis | |||
11/26 | Scaling up code | Numba/Mpi4py/Dask | HW #8 due | |
11/28 | Thanksgiving Break | |||
12/03 | Oral Presentations | TBD | ||
12/05 | Oral Presentations | |||
12/16 | Written report due |