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 |