Selected Work

Portfolio

A live educational web application, research posters, and reports from applied projects, doctoral research, and graduate coursework.

This page collects finished pieces of work that show how I approach a geospatial problem end to end: framing the question, building a repeatable workflow, and delivering results a reader can act on. Each piece can be opened in a new tab, downloaded, or previewed right here on the page.

Featured Work

4 items

Newest first. Use Preview here to try the game or read a document without leaving the page, or open it in a new tab for the full-size view.

Screenshot of the Geo 412 game: a world map with country outlines, a prompt asking the player to find Gabon, and a running score. Live Web App · geo412.com

Geo 412: World Geography Trivia

A type-in trivia game that helps cadets commit the countries of the world, and their geographic combatant commands, to memory

Built for United States Air Force Academy cadets · Texas State University

Live web application · 2025 – Present

Type Web Application Live Site Game-Based Learning
Skills JavaScript HTML / CSS Website Design GitHub AI-Assisted Coding (Claude Code) Microsoft Azure Curriculum Design

Geo 412 is a browser game I built with Claude Code to help my undergraduate students learn the countries of the world. Named for the geography course it supports at the U.S. Air Force Academy, it is especially effective for future military officers: the type-in trivia format drills which country falls under which geographic combatant command until the map sticks.

More about this work

Flashcards and slides do not make world geography stick, and the test format rewards short-term memorization over real geographic intuition. Geo 412 turns the problem into a game. Players are prompted with a country and must type the answer or find it on the world map, get instant feedback, and work through all of the countries in short, self-paced sessions. Because the answers are organized by geographic combatant command, cadets learn the operational geography they will actually be tested on and use as officers.

The game is a hand-built front end in JavaScript, HTML, and CSS with an interactive SVG world map, developed with AI-assisted coding in Claude Code, version-controlled on GitHub, and deployed to Microsoft Azure at its own domain. It is live and in use in the classroom, and it also supports my doctoral research into how AI can help educators design learning aids and effective teaching tools.

The first version of the game, a click-the-country map quiz, is open source on GitHub under the MIT License.

Preview of the GEOINT³ research poster: a three-by-three-by-three cube diagram with axes for Analytic Complexity, Representational Engagement, and Decision Support Level. Research Poster · 1 page

GEOINT³: A Three-Dimensional Framework for Geospatial Intelligence Capability Development

Every GEOINT program claims decision advantage. Almost none teach it.

Texas State University · United States Air Force Academy

Presented at the USGIF GEOINT Symposium · Denver, Colorado · 2026

Type Research Poster Conference PDF
Skills GEOINT Education Curriculum Design Spatial Thinking Capability Frameworks Program Assessment Workforce Development

GEOINT³ is an educational framework I have been developing through my doctoral research at Texas State University, shaped by my time as Deputy Director of Geospatial Intelligence at the U.S. Air Force Academy. It gives educators, program managers, and workforce developers a common language for mapping where GEOINT capability is actually built, and where it is not.

More about this work

GEOINT education has no shared language for capability development. Programs define what to teach, not how thinking grows, and competency models are linear while GEOINT roles are not. The framework extends Jo and Bednarz's spatial thinking taxonomy from the classroom into a professional capability space with three axes:

  • Analytic Complexity — Descriptive → Relational / Patterned → Predictive / Anticipatory
  • Representational Engagement (the Practitioner pathway) — Consume → Manipulate → Design
  • Decision Support Level (the Consumer pathway) — Data Exploitation → Analytic Judgment → Decision Advantage

Together they form 27 distinct capability contexts. Every GEOINT role occupies a region of the cube; the framework does not prescribe where a program should be, it shows where it is. It was built from a systematic review of GEOINT education literature and workforce models, refined through expert consultation, and piloted against the USGIF certificate curriculum at the Air Force Academy.

The poster also walks through a four-step program assessment (inventory, map, read the gaps, define your audience) and is candid about limits: the cube is still conceptual. Next steps are cross-institutional curriculum mapping, a learner self-assessment instrument, and empirical validation.

Map from the report comparing Lake Mead's classified surface-water extent in 1981 and 2022. Final Report · 10 pages

Four Decades of Surface-Water Loss at Lake Mead

A multi-temporal Landsat classification and change-detection analysis, 1981–2022

GEOG 883 · Remote Sensing · The Pennsylvania State University

Final Project · MGIS Program · 2023

Type Final Report Coursework PDF
Skills Remote Sensing Landsat Supervised Classification Change Detection Accuracy Assessment ArcGIS Pro

My final project for GEOG 883 (Remote Sensing) in the Penn State Master of GIS program. It quantifies how much of Lake Mead's surface water has disappeared over four decades, and when, using seven Landsat scenes from 1981 to 2022.

More about this work

Each scene was classified into water and land with a supervised K-nearest-neighbor classifier in ArcGIS Pro, checked with a stratified accuracy assessment, converted to polygons, and measured.

The classified surface area fell 47.5% across the study period, and the key finding is the timing: the reservoir was stable through 1999 and has been in continuous decline since.

Originally submitted for GEOG 883; revised for portfolio presentation with the analysis and figures unchanged.

Choropleth map from the report: a composite index of poverty and opioid mortality classes across the 620 census tracts of the Denver metro area, with the highest values concentrated in central Denver. Final Project · 10 pages

Poverty and Opioid Mortality in Metropolitan Denver

An exploratory spatial data analysis of 620 census tracts, 2015–2019

GEO 586 · Spatial Analytics · The Pennsylvania State University

Final Project · MGIS Program

Type Final Project Coursework PDF
Skills Spatial Statistics Moran's I LISA GeoDa ArcGIS Pro Map Algebra Public Health

My final project for GEO 586 (Spatial Analytics) in the Penn State Master of GIS program. It tests a common intuition, that opioid overdose tracks neighborhood poverty, against tract-level public health data for the ten-county Denver–Aurora–Lakewood metro area, and finds the two patterns are much less alike than expected.

More about this work

Two variables from Colorado Department of Public Health & Environment open data were analyzed independently across all 620 census tracts: age-adjusted opioid and heroin mortality per 100,000 and the share of residents below the federal poverty line, both for 2015–2019. In GeoDa I built a queen-contiguity spatial weights matrix, ran global Moran's I with 999 permutations for each variable, and used Local Indicators of Spatial Association (LISA) to locate the hot spots, cold spots, and outliers driving each result.

Poverty proved roughly twice as spatially structured as overdose mortality (Moran's I of 0.445 versus 0.184). Poverty forms a coherent high-poverty core through central Denver and a broad low-poverty suburban ring, with 255 of 620 tracts in a significant local cluster. Mortality is far more diffuse: only 121 tracts are significant, and nearly four fifths of the metro reaches no significance threshold at all. To show where the two burdens coincide, each layer was reclassified to a one-to-five scale and summed with map algebra in ArcGIS Pro, producing a composite index that peaks tightly in central Denver.

The report is explicit about what it does not establish. Univariate Moran's I and LISA describe each variable on its own terms and do not test the poverty–mortality relationship, and tract-level co-occurrence cannot support claims about individuals. It closes with the appropriate next step, bivariate Moran's I and LISA on the same weights matrix, plus Empirical Bayes smoothing to tame unstable small-population rates and a re-run restricted to the urbanized core.

Originally submitted for GEO 586; revised for portfolio presentation with framing, statistics reporting, and cartography corrected and the underlying analysis unchanged.