/adv-programming-for-gis-and-rs

My course materials for GIS 4091\5091, Advanced Programming for GIS and Remote Sensing. This is everything. Lectures, samples, notebooks, problems, and solutions.

Primary LanguageJupyter Notebook

Advanced Python for Remote Sensing\GIS

Course Description

Through this course, students will learn how to publish, consume, and analyze web services using Python, Javascript, and HTML. They will be introduced to more powerful, more advanced Python libraries such as Pandas, Numpy, and ArcGIS in addition to learning advanced geographic data visualization techniques that leverage Python, Javascript, and web APIs. They will also learn how to use the Javascript to create their first stand-alone web applications. Topics will include using GitHub to host web applications, using Javascript and HTML to create web applications, and using Python for spatial data science. This class builds on what students learned in GIS 4090\5090 and helps them develop knowledge and skills that they will use throughout their careers.

Course Objectives

  • Students will develop programming skills that are beyond the fundamentals of Introduction to Programming for GIS and remote sensing learned through GIS 4090\5090.
  • Students will learn how to work with geographic web services, including, but not limited to automating publishing web services, consuming web services, and performing analysis directly on geographic web services.
  • Students will learn modern data science methods and tools that can be used to augment their research in geography and remote sensing.
  • Students will begin implementing it in their own research projects such as theses and capstones.

Materials

Course Materials will be shared using Blackboard. Slides, labs, and homework are in the folders that correspond to the specific units covered in class.

Learning Assessment:

  • Learning objectives will be assessed through homework assignments and a series of projects, each of which will focus on a different aspect of programming and its applications to GIS and remote sensing.
  • Understanding of web development, Javascript, and HTML will be assessed through a project where students will develop a web application that consumes or uses geographic web services (Project 1).
  • Students understanding of working with geographic web services will be assessed by completing a project where they automate the creation and analysis of web services (Project 2)
  • Understanding of advanced analytical techniques and data science techniques will be assessed by a project where student will leverage techniques to perform spatial statistics or analysis (Project 3)
  • Understanding of how geographic web services, advanced analytical techniques, and web development will be assessed through a student defined Final Project that will be presented to the class.

Feedback and Assessment

In order to ensure that students are on track to achieve the course objectives, students will have weekly coding assignments. The coding assignments will be graded and returned before the next online lecture, where the solutions will be reviewed, and questions will be addressed. Feedback on respective assignments will also be given to each student through Blackboard. Weekly assignment will become the foundation for student projects which will serve as the benchmarks for whether students understand how to use programming to solve GIS and remote sensing problems. There will be 3 projects over the course of the semester. Project one will assess whether students understand how to build and host web applications that contain maps and spatial data. Project two will instruct students on writing advanced imagery analysis algorithms and data science techniques. Project three will assess whether students understand the entire lifecycle of spatial data analysis, from data discovery and analysis to data sharing via a web application. For projects one and three, discussion with classmates and me is encouraged as each student has the opportunity to shape his or her own project and goals. The instructor will make himself available for virtual office hours weekly on Mondays from 4 to 5 PM using Zoom. If you have questions or concerns, don’t hesitate to meet with me during office hours, send me an email, or schedule an ad-hoc meeting with me outside of our regular meetings or office hours. For week 1 of class, please post your name, discipline of study, and academic interests in the Introductions discussion channel in Blackboard. If you ever need to talk, do not hesitate to reach out to me.

Textbooks

Required

Optional

Course Schedule

Week Topics Date
Unit 1 Web Mapping with Leaflet and Github
Unit 2 Creating GIS Applications with the ArcGIS Javascript API
Unit 3 GIS Web Application and 3D Scenes
Unit 4 Calcite, Popups, and Widgets
Unit 5 Back to Python
Unit 6 ArcGIS API for Python
Unit 7 Numpy
Unit 8 Pandas
Unit 9 Spatial Data Science
Unit 10 Agile, Scrum, and Project Management
Unit 11 Spatial DataFrames and Data Viz
Unit 12 Rasters and Imagery
Unit 13 Geoenrichment, Demographics, and Machine Learning

Assignments & Grading

Weight Type
25% Weekly Assignments
25% Project 1 - GIS Web Development
25% Project 2 - Numpy and Pandas
25% Project 3 - Spatial Data Science