Course Overview GEOG 489 Advanced Python Programming for GIS, GLGI 3001-1, Fall 2023
In NGA 489, you will learn advanced applications of Python for solving complex geoprocessing tasks, leveraging open-source data, developing and customizing GIS software, and get an overview of designing user interfaces. The condensed course consists of walkthroughs, projects, quizzes, and discussions about advanced GIS programming concepts and techniques. Students will learn advanced applications of Python for developing and customizing GIS software, solving complex geoprocessing tasks, consuming/ leveraging open-source data, performing data transformations, and designing user interfaces. The course consists of discussions about advanced GIS programming concepts and techniques, readings, walkthroughs, short quizzes, and projects where the student applies what they learned by writing their own code to solve a topic-based challenge. This course builds off of the core topics covered in Penn State's GEOG 485 GIS Programming and Software Development course, which include a basic knowledge of object-oriented programming, loops, if-then constructs, and modular code design. 489 introduces advanced programming concepts, exploring Python’s utility outside of arcpy, and demonstrates how Python can be employed to assist in everyday tasks through scripts, Jupyter Notebooks, and custom-built extensions and GUI’s. Technology covered in the course includes: Esri ArcGIS Pro/ arcpy, ArcGIS API for Python, Pandas, Jupyter Notebook, QGIS, PyQt, GDAL/OGR, and conda.
This section is being offered to students exclusively with NGA. It is a "paced" course, which means that there is an established start and end date and that you will interact with other students throughout the course. The course materials consist of the software mentioned earlier, and a required course website that contains the online lessons, and a Learning Management System (Canvas) where communications, activities, and assessments will be accessed.
This is a condensed course that contains topics taken from the full term GEOG 489 and some pertinent topics from GEOG 485. Due to the limited amount of time, some topics are covered as a demonstration, or an alternative method is provided. Conda Python environments can be temperamental and take weeks to resolve- possibly longer if working within the NIPR network. In these circumstances where valuable time could be lost to setup, we modified the content to use what is installed along with ArcGIS Pro. A good example is the Jupyter Notebook and installing it via conda, or using the ArcGIS Pro. Once a Notebook is loaded, there is no difference in programming experience.
The course is 4 weeks (25 days) in length (plus a required "Orientation Week" preceding the start of the course). There are a total of four lessons, which are each one week in length, with an exception for Lesson 4 which will be 5 days in length due to the course end date. We did our best to rearrange 10 weeks of content so it is presented in a logical flow in the 25 days that we have together, while still touching on as many topics as possible. Additional information about topics to be covered and time frames can be found under the "Course Schedule" section of this syllabus.
You will want to check out the course discussions regularly. That's where students and instructors share comments, pose questions, and suggest answers. I strongly encourage you to get in the habit of logging into Canvas every day to check in on the class. With only occasional exceptions, I usually check discussions six days a week. You can be sure that I will read, but not necessarily respond to every single message.
Instructor(s)
What will be expected of you?
Through this Penn State online course, you will be challenged to move beyond the knowledge and skills that you bring to the class. However, you'll be glad to know that you don't have to show up for class at a certain time! All you need to do is complete your assignments before the published deadlines.
During the term, we encourage everyone to use the class discussion forums or email to help each other find relevant materials and learn about interesting examples. I can always be contacted via class email and will check our accounts daily during the week (and typically at least once each weekend). If I am traveling, I may check somewhat less frequently, but I'll alert you of this beforehand.
A team of folks have worked hard to create an effective and convenient educational experience. How much and how well you learn is ultimately up to you. As mentioned above, there is a lot of content covered, and some of the more complex, time-consuming topics, such as creating a conda environment (for PyQt, QGIS and Jupyter Notebooks) is discussed for awareness and foundational knowledge. If you are interested in any of these topics or technologies, you can reference the complete process on the GEOG 489 page and we noted this in the lessons where applicable. If you are interested in learning more about these topics, please feel free to find the content in the GEOG 489 page at https://www.e-education.psu.edu/geog489/home.html
You will succeed if you are diligent about keeping up with the class schedule and if you take advantage of opportunities to communicate with the instructors, as well as with your fellow students. For a more detailed look at what will be covered in each lesson, as well as due dates for our assignments and activities, please refer to course schedule that is part of this syllabus (see "Course Schedule").
Course Objectives
Advanced Python Programming for GIS builds a programming foundation and demonstrates techniques that students can adapt and apply to their work. Students will learn using open source and proprietary software.
At the successful completion of this course, students should have new knowledge and Python programming skills to:
Lesson 1
- Utilize the debugger and interpret its output.
- Identify and properly use Python types and functions.
- Execute a task using multiprocessing.
Lesson 2
- Extract, Transform, Load data from one format to another.
- Access & download data from a web service.
- Create Featureclasses from various data types.
Lesson 3
- Operations on data lists
- Use regex to perform data extraction.
- Identify the main python packages used for spatial data science.
- Perform data manipulation using Pandas.
Lesson 4
- Create a script tool in Pro.
- Developing in a Jupyter Notebook.
- Understand the different GUI’s that can be utilized.
- Convert a script to use a GUI.
Required Course Materials
In order to take this course, you need to have the required course materials listed below. All (other) materials needed for this course are presented online in Canvas. To access the online materials, you need to have an active Penn State OneID account and password used to access the online course resources. If you have any questions about obtaining or activating your Penn State OneID Account, please contact the World Campus Help Desk .
Software
We'll be using a number of different software packages in this course:
- ArcGIS Pro (provided via PSU license)
- PyScripter or equivalent IDE (free) provided here
- Anaconda (Installed with ArcGIS Pro) (free)
- Jupyter Notebook (Installed with ArcGIS Pro) (free)
- QGIS (Optional) (free)
- Python packages
- Base python environment (Installed with ArcGIS Pro). For the class, it is recommended that you create a clone that we will work out of. For instructions on creating the environment, please follow these instructions disregarding Spyder.
- BeautifulSoup (bs4 – available through python package manager)
- SqlAlchemy (available through python package manager)
- PyQt (Optional - Temperamental installation possible)
If you have questions regarding these software products, please contact the instructor.
Assignments and Grading
Students earn grades that reflect the extent to which they achieve the learning objectives listed above. Opportunities to demonstrate learning include:
- Four lesson quizzes - 25% of the course grade;
- Four programming assignments - 75% of the course grade;
- Code Quality: 25%
Quality criteria will be posted in the Deliverables section of each project. - Code Completeness / Functionality: 50%
All required elements should be present. Project reports should be properly linked to your Penn State personal home page. - Documentation and Writeup: 25%
- Code Quality: 25%
Project reports must be submitted to Canvas by the assigned due date. Contact the instructor if you need extra time. Most activity deliverables are due on Tuesdays, one week from the start of the assignment (refer to the course calendar for the exact schedule). Please make every effort to submit your deliverables on time.
Pass or fail grades will be based on the following percentages:
|
Letter Grade |
Percentages |
|
Pass |
70-100% |
|
Fail |
<70% |
Percentages refer to the proportion of all possible points earned by the student.
NGA GEOG 489 Course Schedule
Course length: 4 weeks (25 days)
Below, you will find a summary of the learning activities for this course and the associated time frames. Specific details for each project can be found in each lesson. Key due dates can be found in the course Calendar in Canvas. Lessons will be released at the beginning of the course so if you want to, you can work ahead. The course week will run Monday-Sunday for lessons 1-3 and Monday-Friday for lesson 4. Lesson 4 is adjusted for this shortened week and the material covered will be more overview themed and the assignment was also adjusted to allow for completion.
The course schedule is subject to change.
|
Week |
Lesson |
Assignments and Activities |
|
Week 0 Sep 25th - Oct 2nd |
Lesson 0: Orientation |
Complete the steps outlined in our course orientation. (Required!) |
|
Week 1 Oct 2nd - Oct 8th |
Lesson 1: Advanced Python & multiprocessing |
|
|
Week 2 Oct 9th - 15th |
Lesson 2: Open Source Data |
|
|
Week 3 Oct 16th - 22nd |
Lesson 3: Advanced Geoprocessing |
|
|
Week 4 Oct 23th - 27th |
Lesson 4: GUI Development |
|
Course Policies
Late Assignments
"Late" is defined as anything turned in after the date and time specified in the Course Calendar on Canvas. A flat penalty of 10% per assignment will be assessed. For example, if you do not turn in a 10-point writing assignment on time, 1 point will be deducted when you turn in that assignment.
Withdrawals
Student withdrawals will be coordinated with NGA.
Use of Trade Names
Where trade names are used, no discrimination is intended and no endorsement by the World Campus, Outreach and Cooperative Extension, the College of Earth and Mineral Sciences, or The Pennsylvania State University is implied.
Citation and Reference Style
Technical Requirements
For this course, we recommend the minimum technical requirements outlined on the World Campus Technical Requirements page, including the requirements listed for same-time, synchronous communications. If you need technical assistance at any point during the course, please contact the IT Service Desk.
Internet Connection
Access to a reliable Internet connection is required for this course. A problem with your Internet access may not be used as an excuse for late, missing, or incomplete coursework. If you experience problems with your Internet connection while working on this course, it is your responsibility to find an alternative Internet access point, such as a public library or Wi-Fi ® hotspot.
In EMS, inclusivity is one of our core values. We prioritize fostering a diverse and equitable community where each member knows they belong here and is inspired to succeed. We encourage everyone in our EMS community to be actively engaged in fostering this ideal, and all members of this class should contribute to a respectful, welcoming, and inclusive environment and interact with civility. Our commitment to inclusivity aligns with Penn State’s values and policies.
To learn more, visit EMS Educational Equity. Here, you will find information about the EMS ALLWE initiative, the Rainbow EMS Network, Anti-Racism, active ally-ship, bystander intervention, and more. The site also has resources for where to turn if you need assistance and links to University references. Also, contact your EMS department’s Associate Head for DEI for more information about department initiatives.
Disclaimer
Please note that the specifics of this Course Syllabus can be changed at any time, and you will be responsible for abiding by any such changes. Changes to the syllabus shall be given to you in written (paper or electronic) form.