Learning Outcomes

ENV 859 - Geospatial Data Analytics   |   Fall 2025   |   Instructor: John Fay  

This course covers a LOT of material. This table breaks down the learning outcomes we strive to cover.

Modules Learning Goals
Advanced Geoprocessing
in ArcGIS Pro’s Model builder
♦ Create efficient and robust GIS workspaces
♦ Use variables in models & understand their utility
♦ Involve conditional execution in model workflows
♦ Involve iteration in model workflows
Document and distribute model workflows
Introduction to Python &
Jupyter Notebooks
♦ Explain the advantages to learning Python
- - Describe how Python relates to other coding languages like R
♦ Use Jupyter notebooks to write, execute, and document Python (or R) code
- - Become competent creating and using Jupyter notebooks
- - Write formatted text using Markdown syntax
♦ Explain the basic concepts of coding & coding languages in the context of GIS.
♦ Define and use variables in Python
♦ Describe the concept of a data type and its importance in Python
- - Determine the data type of a variable in Python
- - Conduct basic data type conversions
♦ List the different data structures included in Python
♦ Store and access values in a Python list
- - Explain the concept of an index value
- - Extract elements and slices from a list
- - Add and remove values from a list
- - Create a list of numbers using Python’s range() function
♦ Store and access values in a Python dictionary
- - Understand the concept of key: value pairs
- - Add and update values in a dictionary
Python scripting fundamentals ♦ Describe the basic process and utility of version control
♦ Use Git and GitHub to record changes in files
♦ Describe and use good coding practices
- - Choose appropriate variable names
♦ Use comments to effectively document code
♦ Explain the importance of whitespace in Python syntax
Read and write text files with Python’s file object
♦ Create a for loop and use it to repeat a section of code
♦ Create a while loop and use it to repeat a section of code
♦ Understand the logic of conditional statements & comparative operators
♦ Identify and debug scripting errors (syntax and logical)
♦ Explain how functions are used and why they are useful
- - Create simple functions with parameters and return values
♦ Save functions to a separate script file
- - Write docstrings for functions and script files
Plan, write, debug, and share Python scripts
Python environments &
extending Python
♦ Explain what Python modules & packages are and how they are used
♦ Contrast built-in vs 3rd party modules & packages
♦ Explain what a Python environment is and why they are needed
- - Create new/cloned Conda environments using Conda
- - Set a particular Conda environment to be the default environments
♦ Locate and install packages into a Conda environment
- - Finding packages and package documentation via package repositories
- - Add packages to a Conda environment via conda and via pip
Import packages and package components into a Python script
Geospatial Analysis with ArcPy ♦ Understand the structure of the ArcPy package and its sub-modules
- - Describe what ArcPy functions and classes are and how they are used
- - Explain how extensions are enabled and licenses are set within coding environments
Create and run Jupyter notebooks from within ArcGIS Pro and ArcGIS online
♦ Access and describe spatial datasets from the coding environment
- - Learn techniques to use relative paths vs. absolute paths
♦ Run any geoprocessing tool from a coding environment
♦ Get and set ArcGIS geoprocessing environment variable values
♦ Iterate through features/records using cursors
♦ Access and manipulate geometric objects stored in feature classes
♦ Execute raster commands within a coding environment
Plan, write, debug, and share Python-based geoprocessing tools
Python & Open Data Science ♦ Describe the various forms and formats that data can take
♦ Explain the advantages of open science and reproducible workflows
♦ Explain the concept of tidy data and its importance in data analysis
♦ Read tabular data from a file using Pandas
♦ Understand the structure and basic functionality of a Pandas dataframe
Explore, manage, and analyze tabular data using Pandas
Visualize tabular data using the matplotlib and seaborn packages
Python, GIS, &
Open Data Science
♦ List various open source tools available for doing GIS in Python
♦ Create, edit, and describe properties of geometric objects using Shapely
- - Read coordinates from a file and create point geometries from them
Read and write vector spatial data from/to common file formats
♦ Manage vector spatial data using Geopandas and geodataframes
Re-project geodataframes from one projection to another
♦ Perform spatial analysis using Geopandas
- - Perform spatial queries, spatial joins, overlay analyses
- - Aggregate and dissolve features based on attribute values
- - Simplify geometries
Read, write, and explore raster spatial data using Rasterio
♦ Perform raster analysis using Rasterio
- - Masking/clipping raster data
- - Raster map algebra: focal, global, and zonal statistics
♦ Working with rasters as nd-arrays with Numpy and Scikit-Image
Create static maps using Geopandas and Contextily
Create interactive maps using Bokeh and Folium<
GIS & the internet;
Cloud-based GIS
♦ Describe key differences between desktop GIS and cloud-based GIS
- - Explain what client-server architecture is
♦ Design, execute, and share spatial analysis workflows using ArcGIS Online
- - Components and how they are stored within AGOL
- - Web maps, web apps, story maps, and dashboards
♦ Explain what an application programming interface (API) is
Automate data download using APIs, REST, and Python’s request module
♦ Perform GIS analysis using the ArcGIS API for Python
- - Access data stored as ArcGIS Online Resources
- - Execute spatial analyses using the API
- - Create compelling visualizations using the API
♦ Perform spatial analysis with Google Earth Engine