GISC 4500K - Application Development
Contents
1 Lectures
- Discussion 1: Expectations and course materials
- How to set up Python for geospatial science and computing
- Homework 1: Mini proposals for weekly in-class projects
- Lecture 1: Variables and controls in Python
- Lecture 2: Functions and classes in Python
- Lecture 3: Recursion and exceptions in Python
- Quiz 1 (written)
- Class project 1: WeatherSTEM API project
- Objective: Develop a simple GUI for plotting recorded variables
- Lecture 4: API key, HTTP communication using urllib.request
- Lecture 5: Console version of api_test.py
- Lecture 6: WeatherStemApi class
- Lecture 7: PySimpleGUI version of api_test.py
- Class project 2: Slopy burning
- Objective: Address the bi-directional flow accumulation issue
- Homework 3: Slopy burning algorithm
- Lecture 8: Read TIFF and Shapefile
- Lecture 9: Walking and finding intersecting cells discussion
- Homework 4: Probability of missing cells when walking on the polyline
- Lecture 10: Read line geometries
- Lecture 11: Sort and union lines
- Homework 5: Length of the polyline
- Lecture 12: Walk on the polyline
- Homework 6: Conversion of geospatial coordinates to matrix indices
- Lecture 13: Complete the project
- Quiz 2: Geometric intersection in Python (programming)
- Class project 3: Raster morphing
- Objective: Animate changes between two rasters
- Lecture 14: Animation and canopy change exercise
- Class project 4: DEM profiler
- Objective: Extract the DEM profile along a polyline
- Lecture 15: Recycle the slopy burning code
- Class project 5: Geospatial web mapping application (demo)
- Objective: Build a back-end-heavy geospatial web mapping application
- Lecture 16: Introduction to GeoPandas
- Lecture 17: Geospatial data input/output and queries
- Lecture 18: Introduction to HTTP servers and Bottle
- Lecture 19: HTML form and POST method
- Lecture 20: Text parsing and function pointers
- Lecture 21: “Add coordinates” syntax design and parsing
- Lecture 22: Create and overlay a point Shapefile
- Quiz 3: Porting webmap.py from GeoPandas to GDAL (programming)
- Class project 6: Machine learning
- Objective: Learn how to build artificial neural networks (ANNs)
- Lecture 23: Single-perceptron ANN for the bit-wise AND operator
- Lecture 24: Perceptron, linear separability, and downhill simplex algorithm
2 How-to’s
3 Project ideas
- Digital image processing
- 3-dimensional longest flow path
- Flow direction
- Rational method using NLCD 2016
- NCDC’s Climate Data Online client
- Voronoi diagram
- Elementary cellular automaton
- Conway’s game of life
- Newton’s method
- Bouncing ball (elastic collision)
- Particle swarm optimization
- Solar system simulator
- Fractal plots
4 In-class projects
5 Past materials
6 Past projects
6.1 Spring 2021
6.2 Spring 2019
- Automatic color segmentation tool with ArcGIS Pro by Anthony Sonsteng, Spring 2019
- Finding areas affected by drought in Lake Lanier using aerial imagery by Caleb Davis, Spring 2019
- Flow direction arrows for a better visual representation of a flow direction raster by Timothy Davis, Spring 2019 (alternative: https://community.esri.com/thread/95831)
- Longest flow path tool by Stefen Gray, Spring 2019
7 Recommended GIS articles
8 References
8.1 Python
- Official Python website
- Unofficial Windows Binaries for Python Extension Packages
- Real Python tutorials
- NumPy
- Matplotlib
- PySimpleGUI
- GeoPandas
- Bottle: Python Web Framework
- Hydrology toolbox for ArcGIS Pro
- Digital image processing toolbox for ArcGIS Pro
- Digip: A digital image processing Python module
- AgPy: An ArcGIS Pro Python module
- Python Programming And Numerical Methods: A Guide For Engineers And Scientists
- Python basics
- Python how-to