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.

Reading

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.

Reading

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

4.     Lab Assignment 2 Data

Reading

1.     GIS Database Primer Chapter 1

2.     Geoprocessing in ArcGIS Chapters 8 and 9.

3.     Elements of a geodatabase

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.

Reading

1.     GIS Database Primer Chapter 2 Reference Systems.

2.     Geoprocessing in ArcGIS Chapters 8 and 9.

 

Session 5: Holiday        

 

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 ESRI’s Geoprocessing Tools in Python.

4.     Lab Assignment 3 Data: Use projected lab assignment 2 data.

Reading

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).

Reading

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

Reading

1.     Learning Python, Chapters 12 – 13.

 

Session 9: Data Properties and Access – Simple Geometries

Lecture

1.     Describing Data

Section

1.     Lab Assignment 4 Continues with data properties.

2.     Accessing Data in Python: Deep Representation (Continues) (overview).

Reading

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

1.     Using Cursors

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)

Reading

1.     Writing Geoprocessing Scripts with ArcGIS Chapter 6 Data Properties and Access 75-85

 

Session 11: Scripting with Geodatabases

Lecture

1.     Working with Geodatabases

Section

1.     Lab Assignment 5 Continues using Geodatabases for storage.

2.     Geodatabase Manipulation Examples.

Reading

1.     ESRI’s 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

Reading

1.     ESRI Geodatabase topology – a primer

2.     An overview of geodatabase topology

3.     Topology in ArcGIS

4.     Designing a geodatabase topology

 

Session 13: Holiday

 

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.

Reading

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

Reading

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.

Reading

1.     Overview of Model Iteration

 

Session 17: Beyond the ESRI world

Lecture

1.     Working with other GIS software

Section

1.     Final project continues.

2.     PROJ/4, GDAL, etc..

Reading

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..

Reading

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.

Reading

1.    Final Project information