This is the repository to USM spatial programming course. This GitHub Repo will serve as a location for all the code and the lecture notes.
Lecture: Tuesday 1-3pm
Lab: Immidiatly following the Lecture
Room WSB 229 and IVN to Coast
###Instructor:
George T. Raber, PhD
Associate Professor
The University of Southern Mississippi
###Contact: Office: WSB 226A 601-266-5807 Email: george.raber@usm.edu Office Hours: Wednesday 10-12am or by Appointment
TURN ASSIGNMENTS INTO: CANVAS - Labs will be posted in Canvas. If multiple files are requested for submission, zip them together and upload.
##Course Overview: This course class will teach concepts and methods that are often important when implementing actual GIS applications. A GIS system has many powerful standard features, however in any application there are going to be instances where the GIS needs to be customized in order perform at its maximum potential.
What if a user wants to do similar things multiple times? (Automation)
What if a GIS user has output from another model / method that is not GIS ready? (Coupling)
There are many examples of GIS processes that work better utilizing customizations. These include GIS modeling of temporal events, decision support tools, and more.
This course focuses on the extension of geographic information systems (GIS) through programming as well as on the development of algorithms for spatial analysis and information extraction in vector and raster data. We will cover different concepts, principles and techniques of programming that help you to solve a variety of spatial problems in physical and human Geography. You will learn how to work with Python for Geoprocessing in ArcGIS as well as for spatial programming in gridded data using Numpy. Furthermore you will understand the basic ideas of object-oriented and procedural programming. You will develop skills to explore, handle, manipulate and model spatial data as well as for methods development.
##Format:
The course is a traditional lab / lecture format. The lab and the lecture are both 2 hours.
Each week there will be lab exercise. The lab will directly enforce the lecture topic through practical application.
PLEASE TURN ASSIGNEMENTS INTO: ghy.gis@gmail.com
##Paper / Project: Everyone (not just graduate students) will be responsible for creating a GIS program that automates a task. The program must implement branching, looping and at least two different GIS tools. Undergraduates must turn in a short (two paragraph) descriptions of what there tool does. Graduate students are responsible for turning in a term paper along with there tool. The paper must describe the need (background) for use of such a tool and examples of the tool executed on data (maps and figures) in answering a simple research question. This paper will likely be around 10 pages. This will be due May 5th.
##Prerequisites: GIS experience required for course. 217 or equivilent is required and you should be taking or have already taken GHY 417 or 418 before you enrolled. There can be exceptions with the instructors permission. We won't be using the GIS knowledge for the first few weeks of the course so if you are dedicated you have time to catch up.
##Required Materials: Downey, Allen, 2014. Think Python: How to Think Like a Computer Scientist, 214 p.
The above is a FREE textbook.
It is available in various forms online at: http://www.greenteapress.com/thinkpython/thinkpython.html
When I refer to page numbers I am using the PDF version. You are responsible for printing you own version if you desire to do so.
Python Documentation - http://docs.python.org/
Helpful Google Python Course: http://code.google.com/edu/languages/google-python-class/utilities.html
Various ArcGIS 10.x help and documentation, most of these items will be posted on the course website.
##Required Software: ArcGIS 10.x This software is installed on all the Lab machines. You can also receive a student version from the instructor free of charge to install on your own machine. You will not use this software product for the first 3 weeks, but you may want to install it, just so that you will have python already installed on your system.
Python 2.7 or 2.8 This software installs with ArcGIS. It can also be downloaded and installed for free from the following website: www.python.org.
##Grading Policy:
**Lecture:**35% Midterm, 40% Final, 25% Paper
Lab: 80% Lab Assignments, 20% Project
Lecture: 45% Midterm, 50% Final, 5% Paper
Lab: 85% Lab Assignments, 15% Project
##Schedule:
Jan 18 - Course Introduction, Introduction to Programming & Python, Python Variables Expressions and Statements (M 1)
Jan 25 - Functions, Conditionals and Recursion, Fruitful functions (M 2)
Feb 1 - Iteration, Intro to Sequences Strings, Lists and Tuples (M 3)
Feb 8 - Dictionaries, Objects and Classes(M 4)
Feb 15 - External Modules (M 5)
Feb 22 - Making the GIS Connection Automating ArcGIS functions with Python Geoprocessing (M 6)
March 1 - Automating ArcGIS functions with Python Geoprocessing Cont. (M 7)
March 8 - Instructor Traveling - Exam (May be Take Home)
March 15 - Spring Holidays NO CLASS
March 22 - ArrcGIS Toolboxes (M 8)
March 29 - Manipulating Vector GIS data Exploring and Manipulating Spatial Data (M 9)
April 5 - Working with GIS data Continuted (M 10)
April 12 - Manipulating Raster GIS data (M 11)
April 19 - Raster Processing Continuted. (M 12)
April 26 - Using GIS Scripting with other Programs (M 13)
May 3 - Final Exam