Geography 465: GIS Database Programming
Winter 2009
Session 1: Introduction to GIS Database Programming
Lecture
1. Getting Started with GIS Database Programming
Section
1. Getting to know Python (example) (overview).
2. Lab Assignment 1: Python Fundamentals and Geographic Information.
1. Learning Python, Chapters 1 3 (Lecture), Chapters 4 7 (Section).
2. For students who have not worked with Geodatabases, please complete this course
Session 2: GIS and Python Operations on Data
Lecture
1. GIS attribute-based operation for working with data
2. Assignments, conditionals, and loops.
Section
1. Examples of Python expressions, conditionals and loops (example) (overview).
2. Lab Assignment 1 Continues.
1. Learning Python, Chapters 8 10.
Session 3: GIS Data Modeling and the ArcGIS Model Builder
Lecture
1. Foundations of GIS Data Modeling
Section
1. Lab Assignment 1 DUE.
2. Using modules and taking advantage of existing data models (example) (overview).
3. Lab Assignment 2: Using the Model Builder as Geoprocessing Interface
1. GIS Database Primer Chapter 1
2. Geoprocessing in ArcGIS Chapters 8 and 9.
4. ESRI Shapefile White Paper, including the shapefile data format
5. Python programs for reading/writing dbf files
Session 4: GIS Database Manipulation
Lecture
1. Coordinate reference systems.
Section
1. Review of Python building a more complex program (example).
2. Lab Assignment 2 Continues.
1. GIS Database Primer Chapter 2 Reference Systems.
2. Geoprocessing in ArcGIS Chapters 8 and 9.
Session 5:
Session 6: Geoprocessing Framework
Lecture
1. Overview of Geoprocessing in ArcGIS
2. Geoprocessor programming model diagram
3. Geoprocessing Commands Quick Reference Guide Data management toolbox page 23-35
Section
1. Lab Assignment 2 DUE
2. Invoking geoprocessing in Python (example).
3. Lab Assignment 3: Using ESRIs Geoprocessing Tools in Python.
4. Lab Assignment 3 Data: Use projected lab assignment 2 data.
1. Geoprocessing in ArcGIS Chapter 1 and Chapter 3
2. Writing Geoprocessing Scripts with ArcGIS Chapter 1 Introducing Scripting
Session 7: ArcGIS Tools and Environment Settings
Lecture
1. Working with ArcGIS Tools and Environment Settings
2. Writing Geoprocessing Scripts with ArcGIS Chapter 3 Using Tools
Section
1. Lab Assignment 3 Continues.
2. Using ArcGIS Tools in Python (example 1, example 2).
1. Geoprocessing in ArcGIS Chapter 4 working with Toolboxes.
2. Geoprocessing in ArcGIS Chapter 6 Specifying Environment Settings.
3. Learning Python, Chapters 4 10 (review).
Session 8: Batch and Interactive Processing
Lecture
1. List, String, Enumeration methods
2. Writing Geoprocessing Scripts with ArcGIS Chapter 4 Batch Processing, Chapter 6, page 79 array inset box for Arrays
Section
1. Lab Assignment 3 DUE.
2. Accessing Data in Python: Deep Representation in Databases
3. Lab Assignment 4: Working with simple geometries in the Geoprocessor.
4. Lab Assignment 4: Point Dataset
1. Learning Python, Chapters 12 13.
Session 9: Data Properties and Access Simple Geometries
Lecture
Section
1. Lab Assignment 4 Continues with data properties.
2. Accessing Data in Python: Deep Representation (Continues) (overview).
1. Writing Geoprocessing Scripts with ArcGIS Chapter 6 Data Properties and Access 67-74
2. ESRI Shapefile Technical Description
Session 10: Data Properties and Access Complex Geometries
Lecture
Section
1. Lab Assignment 4 DUE.
2. Accessing Data in Python: Deep Representation (Continues).
3. Lab Assignment 5: Manipulating Multi-Part and Multi-Ring Geometries (Data)
1. Writing Geoprocessing Scripts with ArcGIS Chapter 6 Data Properties and Access 75-85
Session 11: Scripting with Geodatabases
Lecture
Section
1. Lab Assignment 5 Continues using Geodatabases for storage.
2. Geodatabase Manipulation Examples.
1. ESRIs Geodatabase
2. Writing Geoprocessing Scripts with ArcGIS Chapter 7
Session 12: Geodatabase Topologies - 1
Lecture
1. ArcGIS geodatabase topology - basics
Section
1. Lab Assignment 5 DUE the coming Friday.
2. Topology examples. (MOVED TO NEXT WEEK)
3. Lab Assignment 6: Applying topological rules (MOVED TO NEXT WEEK)
4. Python Example: Single to Multipart Geometry
1. ESRI Geodatabase topology a primer
2. An overview of geodatabase topology
4. Designing a geodatabase topology
Session 13:
Session 14: Geodatabase Topologies - 2
Lecture
1. Examples using topology polygons and linear networks
Section
1. Lab Assignment 6: Manipulating Topologies. (Data)
2. Topology examples.
1. A case study using rules: Greg Tudor, Frank Fischer, Jeff Devitt, 2004. Washington State Cadastre: Integrating Topology, Aquatic Ownership, and Land Records, Proceedings of the Twenty-Fourth Annual ESRI User Conference
2. A Case Study: Steams and River Networks, Chapter 2 ArcHydro from D. Arctur and M. Zeiler, Designing Geodatabases, ESRI Press.
Session 15: Reusability of Code
Lecture
1. Why do we use functions and modules?
Section
1. Lab Assignment 6 DUE.
2. Functions and Modules.
3. FINAL PROJECT ASSIGNMENT
1. Learning Python, Chapters 12 14.
Session 16: Iterating Models and Decision Making
Lecture
1. Using ModelBuilder to Implement Process Models
Section
1. Final project continues.
2. Iteration in the model builder.
3. Conditional statements in the model builder.
1. Overview of Model Iteration
Session 17: Beyond the ESRI world
Lecture
1. Working with other GIS software
Section
1. Final project continues.
1. Open Source GIS packages
Session 18: Reflections on Programming Languages and Databases
Lecture
1. On the nature of programming languages and databases
Section
1. Final project continues.
2. PROJ/4, GDAL, etc..
1. Just for fun, yet another language, this one called D
Session 19: Working on Final Projects
Lecture
1. None
Section
1. Final project continues.