GISC 4500K - Application Development

1   Lectures

  1. Discussion 1: Expectations and course materials
    1. How to set up Python for geospatial science and computing
    2. Homework 1: Mini proposals for weekly in-class projects
  2. Lecture 1: Variables and controls in Python
  3. Lecture 2: Functions and classes in Python
    1. Homework 2: Classes
  4. Lecture 3: Recursion and exceptions in Python
  5. Quiz 1 (written)
  6. Class project 1: WeatherSTEM API project
    1. Objective: Develop a simple GUI for plotting recorded variables
    2. Lecture 4: API key, HTTP communication using urllib.request
    3. Lecture 5: Console version of api_test.py
    4. Lecture 6: WeatherStemApi class
    5. Lecture 7: PySimpleGUI version of api_test.py
  7. Class project 2: Slopy burning
    1. Objective: Address the bi-directional flow accumulation issue
    2. Homework 3: Slopy burning algorithm
    3. Lecture 8: Read TIFF and Shapefile
    4. Lecture 9: Walking and finding intersecting cells discussion
    5. Homework 4: Probability of missing cells when walking on the polyline
    6. Lecture 10: Read line geometries
    7. Lecture 11: Sort and union lines
    8. Homework 5: Length of the polyline
    9. Lecture 12: Walk on the polyline
    10. Homework 6: Conversion of geospatial coordinates to matrix indices
    11. Lecture 13: Complete the project
  8. Quiz 2: Geometric intersection in Python (programming)
  9. Class project 3: Raster morphing
    1. Objective: Animate changes between two rasters
    2. Lecture 14: Animation and canopy change exercise
  10. Class project 4: DEM profiler
    1. Objective: Extract the DEM profile along a polyline
    2. Lecture 15: Recycle the slopy burning code
  11. Class project 5: Geospatial web mapping application
    1. Objective: Build a back-end-heavy geospatial web mapping application
    2. Lecture 16: Introduction to GeoPandas
    3. Lecture 17: Geospatial data input/output and queries
    4. Lecture 18: Introduction to HTTP servers and Bottle
    5. Lecture 19: HTML form and POST method
    6. Lecture 20: Text parsing and function pointers
    7. Lecture 21: “Add coordinates” syntax design and parsing
    8. Lecture 22: Create and overlay a point Shapefile
  12. Quiz 3: Porting webmap.py from GeoPandas to GDAL (programming)
  13. Class project 6: Machine learning
    1. Objective: Learn how to build artificial neural networks (ANNs)
    2. Lecture 23: Single-perceptron ANN for the bit-wise AND operator
    3. Lecture 24: Perceptron, linear separability, and downhill simplex algorithm

2   How-to’s

3   Project ideas

4   Past materials

5   Past projects

GitHub repository

5.1   Spring 2019

Flow direction arrows poster by Timothy Davis, Spring 2019.svg

7   References

7.1   Python

7.2   Libraries

7.3   ArcPy

7.4   Git

7.5   Machine learning