NGA Advanced Python Programming for GIS, GLGI 3001-1

Syllabus, GLGI 3001-1, Fall 2023

PrintPrint

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)

Jeff Kling

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%

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

Assignments and Activities

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

  • Complete Project 1.
  • Reflect on what you learned and/or what you found challenging in a short report.
  • Take the Lesson 1 quiz.

Week 2

Oct 9th - 15th

Lesson 2: Open Source Data

  • Complete Project 2.
  • Reflect on what you learned and/or what you found challenging in a short report.
  • Take the Lesson 2 quiz.

Week 3

Oct 16th - 22nd

Lesson 3: Advanced Geoprocessing

  • Complete Project 3.
  • Reflect on what you learned and/or what you found challenging in a short report.
  • Take the Lesson 3 quiz.

Week 4

Oct 23th - 27th

Lesson 4: GUI Development

  • Complete Project 4.
  • Reflect on what you learned and/or what you found challenging in a short report.
  • Take the quiz for Lesson 4.

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

Academic Integrity and Citation Style Guide here.

Penn State E-mail Accounts

All official communications from Penn State are sent to students' Penn State e-mail accounts. Be sure to check your Penn State account regularly, or forward your Penn State e-mail to your preferred e-mail account, so you don't miss any important information.

Academic Integrity

Academic integrity is the pursuit of scholarly activity in an open, honest, and responsible manner. Academic integrity is a basic guiding principle for all academic activity at Pennsylvania State University, and all members of the University community are expected to act in accordance with this principle. 

According to Penn State policy  G-9: Academic Integrity, an academic integrity violation is “an intentional, unintentional, or attempted violation of course or assessment policies to gain an academic advantage or to advantage or disadvantage another student academically.” Unless your instructor tells you otherwise, you must complete all course work entirely on your own, using only sources that have been permitted by your instructor, and you may not assist other students with papers, quizzes, exams, or other assessments. If your instructor allows you to use ideas, images, or word phrases created by another person (e.g., from Course Hero or Chegg) or by generative technology, such as ChatGPT, you must identify their source. You may not submit false or fabricated information, use the same academic work for credit in multiple courses, or share instructional content. Students with questions about academic integrity should ask their instructor before submitting work.

Students facing allegations of academic misconduct may not drop/withdraw from the affected course unless they are cleared of wrongdoing (see G-9: Academic Integrity). Attempted drops will be prevented or reversed, and students will be expected to complete coursework and meet course deadlines. Students who are found responsible for academic integrity violations face academic outcomes, that can be severe, and put themselves at jeopardy for other outcomes which may include ineligibility for the Dean's List, pass/fail elections, and grade forgiveness. Students may also face consequences from their home/major program and/or The Schreyer Honors College.

Please also see Earth and Mineral Sciences Academic Integrity Procedures, which this course adopts. To learn more, see Penn State’s “Academic Integrity Training for Students.

Course Copyright

All course materials students receive or to which students have online access are protected by copyright laws. Students may use course materials and make copies for their own use as needed, but unauthorized distribution and/or uploading of materials without the instructor’s express permission is strictly prohibited. University Policy AD 40, the University Policy Recording of Classroom Activities and Note-Taking Services addresses this issue. Students who engage in the unauthorized distribution of copyrighted materials may be held in violation of the University’s Code of Conduct, and/or liable under Federal and State laws. For example, uploading completed labs, homework, or other assignments to any study site constitutes a violation of this policy.

Accommodations for Students with Disabilities

Penn State welcomes students with disabilities into the University's educational programs. Every Penn State campus has an office for students with disabilities. The Student Disability Resources (SDR) website provides the contact information for every Penn State campus. For further information, please visit the Student Disability Resources website.

To receive consideration for reasonable accommodations, you must contact the appropriate disability services office at the campus where you are officially enrolled, participate in an intake interview, and provide documentation. See Student Disability Resources: Applying for Services. If the documentation supports your request for reasonable accommodations, your campus’s disability services office will provide you with an accommodation letter. Please share this letter with your instructors and discuss the accommodations with them as early in your courses as possible. You must follow this process for every semester that you request accommodations.

Change in Normal Campus Operations

In case of weather-related delays or other emergency campus disruptions or closures at the University, this online course will proceed as planned. Your instructor will inform you if there are any extenuating circumstances regarding content or activity due dates in the course due to these delays or closures. If you are affected by a weather-related emergency, please contact your instructor at the earliest possible time to make special arrangements.

Reporting Educational Equity Concerns

Penn State takes great pride in fostering a diverse and inclusive environment for students, faculty, and staff. Acts of intolerance, discrimination, or harassment due to age, ancestry, color, disability, gender, gender identity, national origin, race, religious belief, sexual orientation, or veteran status are not tolerated (Policy AD29 Statement on Intolerance) and can be reported through Educational Equity via Report Bias.

Counseling and Psychological Services

Many students at Penn State face personal challenges or have psychological needs that may interfere with their academic progress, social development, or emotional wellbeing.  The university offers a variety of confidential services to help you through difficult times, including individual and group counseling, crisis intervention, consultations, online chats, and mental health screenings.  These services are provided by staff who welcome all students and embrace a philosophy respectful of clients’ cultural and religious backgrounds, and sensitive to differences in race, ability, gender identity, and sexual orientation.  Services include the following: 

Counseling and Psychological Services at University Park  (CAPS): 814-863-0395
Counseling Services at Commonwealth Campuses
Penn State Crisis Line (24 hours/7 days/week): 877-229-6400
Crisis Text Line (24 hours/7 days/week): Text LIONS to 741741

Military Personnel

Veterans and currently serving military personnel and/or spouses with unique circumstances (e.g., upcoming deployments, drill/duty requirements, disabilities, VA appointments, etc.) are welcome and encouraged to communicate these, in advance if possible, to the instructor in the case that special arrangements need to be made.

Connect Online with Caution

Penn State is committed to educational access for all. Our students come from all walks of life and have diverse life experiences. As with any other online community, the lack of physical interaction in an online classroom can create a false sense of anonymity and security. While one can make new friends online, digital relationships can also be misleading. Good judgment and decision-making are critical when choosing to disclose personal information with others whom you do not know. 

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.

Equations

This course must be viewed using the latest version of Firefox, Safari, Chrome, or Edge. Internet Explorer is not supported. If you use any other browser, or if you are not using the latest version of your browser, some pages containing equations may not render properly. In addition, javascript must be enabled for equations to render properly. If you have any issues with equations not rendering properly, please update your browser to the latest version or try using a different browser. If you need additional technical assistance at any point during the course, please contact the HelpDesk (for World Campus students) or the IT Service Desk (for students at all other campus locations).

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. 

Mandated Reporting Statement

Penn State’s policies require me, as a faculty member, to share information about incidents of sex-based discrimination and harassment (discrimination, harassment, sexual harassment, sexual misconduct, dating violence, domestic violence, stalking, and retaliation) with Penn State’s Title IX coordinator or deputy coordinators, regardless of whether the incidents are stated to me in person or shared by students as part of their coursework. For more information regarding the University's policies and procedures for responding to reports of sexual or gender-based harassment or misconduct, please visit Penn State's Office of Sexual Misconduct Prevention & Response website.

Additionally, I am required to make a report on any reasonable suspicion of child abuse in accordance with the Pennsylvania Child Protective Services Law.


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.