/ESDA_CEE690-02

Environmental Spatial Data Analysis

Primary LanguageJupyter NotebookMIT LicenseMIT

CEE690-02: Environmental Spatial Data Analysis

Fall 2019

Course Information

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).

Instructor

Professor Nathaniel W. Chaney (Nate)
Email: nathaniel.chaney@duke.edu
Office: FCIEMAS 2463
Office hours: By appointment on Friday mornings (calendly.com/nathaniel-chaney)

TA

Reza Momenifar
Email: mohammadreza.momenifar@duke.edu
Office: 2431 CIEMAS
Office hours: Mondays 8:00-10:00 AM

Course Description

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.

Prerequisites

Although there are no class prerequisistes, a strong foundation in programming will make this class much easier. Please contact Nate if you have concerns.

Readings

There are no required textbooks. Reading will be provided via journal articles, online materials, and tutorials.

Grades and workload

The course grade is based on three items:

  • Homework: 40%
  • Participation: 20%
  • Final Project: 40%

Homework

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.

Participation

  • 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

Collaboration in completing assignments is permitted. However, each student must write up their assignment independently. We will be checking for identical homeworks.

Final Project

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

Schedule

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