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 (demo)
    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   In-class projects

5   Past materials

6   Past projects

GitHub repository

6.1   Spring 2021

Application for computing Fourier transformations of hydrographs for analysis poster by Jacob Lougee, Spring 2021.svg IspsoPy poster by Owen Smith, Spring 2021.svg

6.2   Spring 2019

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

8   References

8.1   Python

8.2   Libraries

8.3   ArcPy

8.4   Git

8.5   Machine learning

8.6   Challenges