GISC 5200K - Programming for Geospatial Science & Technology
See also GISC 3200K.
Contents
1 Lectures
- Lecture 1: Introduction to programming
- How to set up Python for geospatial science and computing
- Programming pre-assessment
- Homework 1: Pre-assessment grading
- Quiz 1
- Lecture 2: Python in ArcGIS Pro 1
- Lecture 3: Python in ArcGIS Pro 2
- Exam 1
- Lecture 4: Literals, variables, and constants in Python
- Lecture 5: Numeral systems in Python
- Lecture 6: Basic data types in Python
- Lecture 7: Sequence data types in Python
- Lecture 8: Control statements in Python
- Exercise 10: Branch
- Exercise 11: Debug branching
- Exercise 12: Print the range of an integer using
if
- Exercise 13: Print the range of an integer using
if
,elif
, andelse
- Exercise 14:
for
and list - Exercise 15:
for
and forward indexing - Exercise 16:
for
and reverse indexing - Exercise 17: Summation using a
for
loop - Exercise 18: Summation using a
while
loop - Homework 4: Summation
- Homework 5: Random integers
- Lecture 9: Functions in Python
- Exercise 19: Define your first function
- Exercise 20: Non-returning function
- Exercise 21: Add function
- Exercise 22: Why functions?
- Exercise 23: Distance function
- Exercise 24: Yet another distance function
- Exercise 25: File-writing function
- Exercise 26: File-reading function
- Exercise 27: Directory-listing function
- Exercise 28: Create number files
- Exercise 29: Add numbers from the number files
- Exercise 30: Generate random integers
- Exercise 31: User-input function
- Exercise 32: Plot a GeoTIFF file
- Exercise 33: Calculate the average cell value of a GeoTIFF file
- Homework 6: Toxicode Python certificate of completion
- Exercise 34: How to extract cell values from a GeoTIFF file using NumPy
- Exercise 35: How to classify a GeoTIFF file using NumPy
- Exercise 36: How to detect changes between two GeoTIFF files using NumPy
- Exercise 37: How to save a NumPy array as a GeoTIFF file using GDAL
- Exercise 38: How to calculate the area of a certain class in a GeoTIFF file using NumPy
- Project proposals
- Class project 1: Rock-paper-scissors game
- Exam 2
- Quiz 2
- Class project 2: Thiessen polygon algorithm in Python (not completed)
- Quiz 3
- Review fundamentals
- Quiz 4
- Class project 3: Noise reduction in images
2 Research ideas
Please see me if you’re interested in any of these ideas.
- Python implementation of Isolated-speciation-based Particle Swarm Optimization (ISPSO)
- Edge bias of particles in particle swarm optimization (PSO)
- Fourier transform of flow and precipitation to detect recurring flooding trends
- Smart burning of the digital elevation model (DEM) for hydrologic analysis
- Flood extent estimation of ungauged basins using the topographic wetness index
3 Past materials
4 Past projects
4.1 Fall 2020
5 Recommended GIS articles
6 References
6.1 Python
- Official Python website
- Real Python tutorials
- NumPy
- Matplotlib
- GeoRasters
- Fiona
- PyShp
- Shapely
- GeoPandas
- contextily
- Descartes
- Cartopy
- Unofficial Windows Binaries for Python Extension Packages
- Geo-Python AutoGIS
- Python GDAL/OGR Cookbook 1.0 documentation
- RasterCalculator
- Python Programming And Numerical Methods: A Guide For Engineers And Scientists
- Toxicode Python
- How to Think Like a Computer Scientist: Interactive Edition
- Expressions vs. statements
- Brython - A Python 3 implementation for client-side web programming
- Python how-to
- Python exercises