geohaff.com // projects

Camping Suitability Forecast

Camping Suitability Forecast

A 7-day camping suitability dashboard for 131 Wisconsin and Minnesota state parks. Combines dynamic weather forecasts (temperature, precipitation, wind, air quality, storm risk) with a static wetland proximity layer to produce a daily composite camping score per park. Scores are computed in a GitLab CI pipeline that runs 4× daily, uploaded to S3, and served to a static Netlify frontend via a lightweight AWS Lambda + API Gateway pass-through.

Sole developer


Landscape Search Engine – Wisconsin

Landscape Search Engine – Wisconsin

An interactive Shiny app for finding locations in Wisconsin with landscapes similar to a user-selected area. Uses neural networks (VGG16, ResNet-50, NasNet) applied to 30m DEM data to compute terrain similarity, combined with MODIS NDVI for vegetation matching. Users control the relative weighting of terrain vs. vegetation and can set a minimum exclusion radius to surface results farther afield.

Lead developer — UWEC-funded research project


Shade Tool

Shade Tool

A web application for identifying shade coverage for structures — houses, fences, gazebos, trees — of a given height at any location, for any day and time of day. Uses the sun’s azimuth and altitude (via the suncalc library) and a bit of trigonometry to project where a structure’s shadow will fall. Built to plan a backyard grill shelter that would shade a patio table through the summer evenings.

Sole developer


eqr R package

eqr R package

Lightweight R package wrapping the USGS FDSN earthquake web service. Provides functions to query earthquake events and counts by location, time range, and magnitude, with automatic pagination support for large requests.

Sole developer


Landscape Density Plot

Landscape Density Plot

Web application for segmenting landscape photographs using Meta’s Segment Anything Model (SAM), generating x/y data for the function representing the segmentation, and rendering 1D kernel density estimation curves for each identified segment. Results can be downloaded for further inspection and visualization.

Sole developer


Cycling Safety Survey – Eau Claire

Cycling Safety Survey – Eau Claire

A crowdsourced cycling safety app for Eau Claire, WI. Cyclists place points on an interactive map to mark locations they perceive as unsafe and categorize contributing factors — infrastructure, traffic volume, traffic speed, visibility, and more. Survey responses are stored on AWS S3 and analyzed by the research team.

Lead developer — UWEC-funded research project


Cycling Safety Survey – Marburg

Cycling Safety Survey – Marburg

The same crowdsourced cycling safety survey framework applied to Marburg, Germany. Adapted to include additional behavior/demographic questions and safety factors localized for a German urban cycling context.

Lead developer — UWEC-funded research project


Cycling Safety Survey – Tampere

Cycling Safety Survey – Tampere

The cycling safety survey deployed for Tampere, Finland.

Lead developer — UWEC-funded research project


Fountain City Public Space Vision

Fountain City Public Space Vision

A community-driven vision plan for public space in Fountain City, Wisconsin. Resident and youth input is synthesized into a set of guiding principles and a tiered slate of recommendations — from quick wins (trail connections, wayfinding signage, park naming) through intermediate and long-term strategies (multi-use trails, traffic calming, bluff trails, murals, and tree planting). Authored in R Markdown.

Project lead — 4th Coast Consulting


streetview R package

streetview R package

R package for embedding interactive Google Street View panoramas in R Markdown documents, Shiny applications, and Xaringan presentations using the htmlwidgets framework. Supply latitude/longitude coordinates and a Google Maps API key to render a fully interactive panorama widget.

Sole developer


Cellular Signal Strength

Cellular Signal Strength

Shiny application for assessing cellular signal strength and estimating video call completion probability across Eau Claire and Dunn counties, WI.

Lead developer — UWEC/Mayo Clinic-funded research project


mapsurvey R package

mapsurvey R package

R package for implementing place-based surveys — collecting geographic point data alongside traditional survey responses via an interactive map interface.

Lead developer — UWEC-funded research project


sfe R package

sfe R package

R package for spatial feature engineering — computing spatial features from geographic data for use in machine learning pipelines.

Lead developer — UWEC-funded research project


ispat

ispat

Interactive Shiny application for teaching point pattern analysis methods (quadrat analysis and nearest neighbor analysis). Used in teaching courses in geographic information systems and spatial analysis at the University of Wisconsin – Eau Claire and Oklahoma State University.

Sole developer


examgen R package

examgen R package

R package for generating randomized exam questions and response options. Designed to reduce academic dishonesty by producing unique question sets for each student while maintaining equivalent difficulty.

Sole developer