GEOG 490/590: GIS Programming

CRN: 14986/14987

Course Webpage: http://web.pdx.edu/~jduh/courses/geog490w09/index.htm

(Or go to http://web.pdx.edu/~jduh/ and select “Courses-> GEOG 4/590(W09)”)

 

Instructor: Geoffrey Duh  (Email: jduh@pdx.edu)

        Office: CH 424J      Phone: 503-725-3159    Office hours: Mon 1-3; Wed 1-2

Lectures/Lab: Wednesday 17:30-21:10 in CH 469.

Course emailing list: gisprogramming@lists.pdx.edu

 

Pre-course survey: Go to the website below and follow the instructions to complete the questions by Jan 7, 9 pm. http://survey.oit.pdx.edu/ss/wsb.dll/jduh/gisprogramming.htm 

 

Course Objectives

Introduction to Visual Basic GIS programming languages for customizing applications and streamlining spatial analysis. Topics include GIS software environment, programming syntax and styles, interface customization, GIS routines and functions, and basic algorithms. Programming lab included. Prerequisite: GEOG 488/588. After completing the course, students will be able to design and develop VBA applications in ArcGIS.

 

Text and Readings

The text for this course is Getting to Know ArcObjects: Programming ArcGIS with VBA by Robert Burke, 2003 (ESRI Press. ISBN: 1-58948-018-x). The book is available at the Portland State Bookstore and from Amazon.com or ESRI.com. The optional book is Programming ArcObjects with VBA: A Task-Oriented Approach (2nd Edition) by Kang-Tsung Chang, 2007 (CRC Press. ISBN: 0-8493-9283-7).

The lecture component of this course consists of discussions of the readings and therefore you should have read the material before class. Students are expected to come to class ready to be active participants in the discussion.

 

ArcObjects References

 

Grading

The instructor will grade graduate and undergraduate students based on separate distribution curves. The components of a student’s grade are listed in the table below.

Class Participation

15%

Lab Assignments

45%

Midterm

15%

Term Project

25%

 

Class Participation (15%)

Attendance to this course is mandatory. If you miss more than two class periods then you will be penalized five percent of your final grade per absence. PLEASE DO NOT MISS CLASS. You are expected to take part in the discussions and if you are not in class then you cannot. If you are repeatedly late you will be given an absence.

All students are required to select a programming topic from a list provided by the instructor (see the last page of the syllabus) and give a 10 to 15 minutes discussion on a VBA script in class. You must find a bug-free VBA program and walk through the program in class. Students who are responsible for the week’s topics must email the program and its source to the course mailing list by 5pm the day before the class. The discussion should include an overview of the program, a quick demonstration, and a line-by-line walkthrough of the program. Sample programs can be found from the textbook CDs, ESRI ArcScripts, ESRI Developer Network (EDN), or other sources.

 

Lab Assignments (45%):

During the lab sessions (i.e., the second part of the class) you will develop VBA programs on the computers. If you do not finish the labs during the assigned time periods the lab also has open hours. CH 475, CH 1, CH 324, and Broadway Computer Lab all have ArcGIS on the computers. Students should submit their lab work digitally, with the source code, test data, and write-up documents zipped in one file. If the file size is too big to send via email, please put the zipped file in a network space and send the link to the instructor.

 

Midterm Exam (15%):

            There will be one in-class, closed-book midterm exam and no final exam. Unscheduled in-class quizzes will be administered without notifications. Results of these quizzes will be counted toward class participation.

 

Term Project (25%): (Student Projects)

Individual students will work on a GIS application they identify and develop VBA program to implement the application. Each student must submit a one-page description of the VBA application on the 5th week and present and demonstrate the VBA application during the scheduled final exam time.

 

VBA Application Description Guideline

It’s a good idea to browse online sources to see what VBA scripts have been developed. This will give you a sense of the scope and complexity of the program. Each student is required to submit a typed project description to my mailbox in 424 CH or my email address (jduh@pdx.edu) on February 4 before class. Your final VBA application will be implemented following the description. The description should include the following information.

 

  1. VBA application Title: A sentence highlighting the main function of your AP.
  2. Major function: A brief description of the functions of the AP.
  3. Background: A short paragraph describing the why the AP is needed, the major problem it resolves, and the expected users and benefits.
  4. GIS data will be used: Describe your study area, the GIS data layers, and the topological characteristics of these data layers.
  5. Particular algorithm: Describe any particular algorithms that will be implemented (e.g., sorting, random number generator, etc).

 


 

AP Demonstration:

You must develop a Powerpoint presentation that includes the essential information described in the VBA AP description and a reflection of the main challenges and major breakthrough in the project. Accompanying the presentation is a live demonstration of your AP. You must acknowledge the sources of any codes that you borrow in your AP. You will fail this class if you commit plagiarism.

 

 

Click here for the information on the requests for academic accommodation and the policy on academic honesty.

 

Program Discussion Schedule

 

Week

Tuesday Topics

Presenters

2

Jan 14

·  CASE and IF THEN Statements (Example)

·  FOR NEXT and DO WHILE Statements (Example)

Joseph Rhodes

James Manzione

3

Jan 21

·  Using Subroutines and Functions (Example)

·  Using the Debug Tools in VBA IDE (Example)

Tim Sennott

Liz Dobbins

4

Jan 28

·  Adding a Feature Class to ArcMap (Example)

·  Adding a Raster Data Set (Example)

Kate Clark

Amber Gladieux

5

Feb 4

·  Getting and Setting Values

·  Adding Fields in Attribute Tables, Calculating Field Values (Example)

·  ArcObjects Geoprocessing (Chang CH1, 5) (Example)

 

 

Lisa Utz

Hector Osuna

6

Feb 11

·  Setting Layer Color (Example)

·  Class Breaks Renderer (Example)

·  Selecting Features (Example)

Richa Jain

Margret Seiler

Allen Byrd

7

Feb 18

·  Making UITool (Example)

·  Drawing Graphic Elements

·  ArcGIS Toolbar Commands

Bill Wessinger

Shayna Denny

Merlin Larimer

8

Feb 25

·  Vector Buffering

·  Vector Overlay

·  Joining Data by Location

Autumn Montegna

Mike Martello

Heather Zike

9

Mar 4

·  Raster Objects

·  Raster Local Operations

·  Raster Neighborhood Operations

Jana LaFrenier

David Silcock

Morgan Crowell

 

 


 

Course Schedule & Readings

 

Week

Discussion Topic/ Readings

Lab

1

Jan 7

·  Course Overview (Slides)

·  VBA Programming Environment (Chang Ch1)

Lab 1: Hello World Due Jan 14 before class.

2

Jan 14

·  Object-Oriented Programming (Burke Ch 1, 4)

·  VB Syntax (Burke 5, 7) (Slides) (Examples)

Lab 2: VBA GUI Objects and Numerical Approximation (Burke Ch 2, 3) Due Jan 28 before class.

3

Jan 21

·  Basic Programming Algorithms (Burke Ch 6, 8)

·  QuickSort (Wikipedia) (Slides)

Lab 2.

4

Jan 28

·  Introduction to ArcObjects (Burke Ch 9, 10)

·  ArcGIS Dataset and Layer Management (Burke Ch 14) (Slides)

Lab 3: Sorting & File I/O Due Feb 11 before class.

5

Feb 4

·  Using ArcObjects: Attribute Data (Burke Ch 20, Chang Ch 5) (Slides) (Examples)

Project Description Due

Lab 3.

6

Feb 11

·  Using ArcObjects: Layer Symbology (Burke Ch 15, 16, 17) (Slides) (Examples)

Midterm exam

Lab 4: ArcMap Layers & Attribute Manipulation Due Feb 25 before class.

7

Feb 18

·  Using ArcObjects: Command Tools (Burke 11, 12, 13) (Slides) (Examples)

Lab 4.

8

Feb 25

·  Using ArcObjects: Vector Data (Chang Ch 10) (Slides)

Lab 5: ArcMap UITool, Commands, and Vector Features Operations Due Mar 11 before class.

9

Mar 4

·  Using ArcObjects: Raster Data (Chang Ch 11) (Slides)

Lab 5.

10

Mar 11

·  Optimizing VB codes (AiVosto VBShop)

Students work on project

Mar 18

·  Final presentation (17:30-21:10) Final Project Guideline