GIS | SPATIAL ANALYSIS | CARTOGRAPHY | WEB DEVELOPMENT

Nathan Young - GIS & Spatial Analysis

I use GIS to understand the natural world. I spent 9 years doing web development, so I'm comfortable with the parts that aren't mapping: figuring out what the data actually means, wrangling it into shape, automating the repetitive work, and building something people can actually use. The projects below are recent coursework and self-directed work.

Selected work

01 · Analysis + Web GIS

Oregon Dam Removal Tracker

ArcGIS Pro AGOL Python

This project involved compiling a statewide geodatabase of 95 dam removals in (mostly) Oregon from federal and NGO sources (American Rivers, NID, NOAA), and publishing a hosted feature layer with an interactive Web Map and Dashboard. I joined the dam locations to NHDPlus flowlines and traced upstream to estimate that the dam removals reopened roughly 1,750 river miles of fish habitat. I used spatial joins to StreamNet, ODFW, and NOAA/USFWS critical habitat layers to identify the endangered species affected by each dam removal. The layer follows a 24-field schema with a data dictionary that records the source, method, and fill rate for every attribute.

Open the dashboard View in AGOL
02 · Field Data Collection

Oregon White Oak Survey

Field Maps ArcGIS Pro AGOL

A mobile field-data-collection tool for surveying individual Oregon white oak (Quercus garryana): tree condition, conifer encroachment, restoration priority, etc. The form uses attribute domains, conditional form logic, required fields, and photo attachments, with a schema modeled on Washington Department of Fish and Wildlife and BLM Salem District oak-woodland protocols.

Open in Field Maps View in AGOL

The Field Maps link opens the survey in the ArcGIS Field Maps mobile app.

03 · Data Science / Python

Osprey Migration Rest Stops

pandas scikit-learn DBSCAN ArcGIS Pro

Where do osprey (Pandion haliaetus) stop to rest during their migration? These locations are important for conservationists to protect, in addition to the species' summer and winter locations. Even though this study was intended for a different purpose, I wanted to see if I could use the data from it to detect these locations. I wrote a Python script that uses Net Squared Displacement to flag stationary segments and clusters them with DBSCAN to find shared stopovers. It identified 78 stopovers, 24 of them shared.

View the poster View the repo
04 · Spatial Statistics

Oregon Precipitation Trend Surface

ArcGIS Pro Geostatistical Analyst Python Moran's I

I fit polynomial trend surfaces (orders 1 through 5) to 428 NOAA precipitation normals across Oregon, the same technique that produces a near-perfect regional gradient for textbook examples like Kansas in Gimond's Intro to GIS and Spatial Analysis. Oregon refused to cooperate: R² plateaued around 0.41 even at higher orders, and the zero-centered residual map redrew the Cascades and Coast Range out of the leftover error. I ran Global Moran's I on the residuals to check whether that visual clustering was real, and it was: I ≈ 0.59, essentially unchanged from order 1 to order 3, since a low-order polynomial is nearly flat across any single station's nearest neighbors and can't absorb mountain-range-scale structure. I built a 3D scene in ArcGIS Pro (and a matching Python figure) with the fitted surface as a floating sheet and each station suspended at its measured precipitation, so the residual is a visible vertical gap. The finding: only about 40% of Oregon's rainfall pattern is explained by location alone; the rest is exactly the local, spatially autocorrelated structure that motivates kriging.

Global Moran's I, 428 stations (k = 8 nearest neighbors)
Field Moran's I z-score
raw ann_prcp_in 0.717 32.07
residuals, order 1 0.594 26.64
residuals, order 2 0.594 26.70
residuals, order 3 0.594 26.66

All p < 0.000001. Removing the trend barely moves the ladder: the trend surface operates at state scale, but Moran's I here is measuring neighbor-scale clustering, so a bendier surface can't touch it. The autocorrelation lives at mountain-range scale, not polynomial order.

Adapted from Manuel Gimond's Intro to GIS and Spatial Analysis, ch. 12, run on Oregon data instead of the book's Kansas example.

A seal balancing a spinning Earth on its nose

Open to GIS analyst and spatial-data roles in the Portland area and remote.