GEOG 489
Advanced Python Programming for GIS

Term Project


By this time, you should have submitted your Final Project proposal and received a response from one of your instructors. You have the final two weeks of the course to work on your individual projects. Please submit your agreed-upon deliverables to the Final Project Drop Box by the course end date on the calendar.

There are three parts to the term project submission:

  1. the documented code and data needed to run it as agreed-upon in the proposal feedback process.
  2. a write-up describing the project purpose and approach and reflecting on the development and lessons learned from it, as well as providing instructions on how to run and test the code.
  3. a 5 minute online video demonstrating the project to your classmates and explaining how you realized the project.

More information on these three parts of your term project submission and how they should be submitted can be found below. Please see the project grading rubric on Canvas to understand exactly how these requirements will be evaluated.

Code and data


Submit a single .zip file to the corresponding drop box on Canvas; the zip file should contain:

  • Your code and all other files making up your project including the data needed to run and test it
  • Your project write-up (see below)

If you are providing any sample dataset larger than about 20 MB, please keep in touch with your grader to ensure that he or she can successfully get the data. You can use your Penn State OneDrive storage here to deliver your data to your grader or alternatively a public service like DropBox, Google Drive, etc., and include the link to your data in your submission. Ideally you can clip your dataset so that it does not take so much space.

Project write-up

Your write-up should discuss the project purpose, how you approached the project and why, and what challenges you had to overcome in the development process. Please make sure you mention packages, libraries, or techniques you used that were not covered in the course materials. Furthermore, you should reflect on what you learned from the project work, how the project could be continued and extended, and things you would do differently next time.

Your write-up should also include a set of numbered steps that graders can follow in order to evaluate your project. If your script or tool requires entering parameters, please provide sample values that the graders could supply for each parameter. If the graders cannot figure out how to run your project, they may deduct functionality points. If your program requires a special environment to be run in or if there are other good reasons why your grader won't be able to run & test out the script (but only then!), you can contact your grader and seek a different arrangement such as demonstrating the script live via Zoom or by recording a more detailed video focussing on running the script. Such alternative arrangements need to be agreed upon before the submission deadline.


Include your write-up in the .zip file with your project code and data (see above) and submit it to the corresponding drop box on Canvas.

Project video

Record a 5 minute demo and discussion video of your project using Kaltura, similar to the video you recorded for part 1 of the Lesson 1 homework assignment. The main purpose of this video is so that everyone can see what the other students did in their projects and potentially learn something from it about APIs we did not cover in the course, techniques, or programming challenges. Therefore, the video should focus on the following points:
  • Provide an overview on the purpose and motivation for the project
  • Demonstrate how the project is applied from a user perspective
  • Briefly give an idea of how the code for the project is organized from a programmer perspective
  • Pick out two things from your project code that you think would be most interesting for other students and explain them. This can, for instance, be packages, libraries, or techniques you used that were not covered in the course materials or particular challenges you encountered and how you solved them.


Post a link to your video in the Media Gallery.

Please keep in touch with your instructors and fellow students during this time period. I encourage you to help each other in the course forums. It may be that others are encountering the same challenges that you are while working through their projects. Furthermore, I hope you will spend some time after the official end of the class to check out the video presentations of your classmates and provide comments and feedback in the Media Gallery. Surely, there will be many new insights and ideas to be gained from these videos.

This course has been a pleasure and I wish you the best in your future Python and programming endeavors!