Scripts and Applications
Fingerprint Toolbox for ArcGIS
Software/Languages
Python (arcpy, GDAL), SQL, ArcGIS
Employer
Western Oregon University Fingerprint Analysis and Characterization Team (FACT)
Description
I was the primary GIS Analyst and programmer for a fingerprint research grant funded by the National Institute of Justice at Western Oregon University. I created a 'Fingerprint Toolbox' for ArcGIS that consists of a set of tools with GUIs linked to Python scripts. These Python scripts and toolbox were used by team members to automate complex tasks. In total I authored over 70 scripts for this project, which equals approximately 10,000 lines of documented code. Click here to download a PowerPoint presentation I gave at the 2012 American Academy of Forensic Sciences annual conference.
Fingerprint Matcher Application
Software/Languages
Python (wxPython, sqlite3, py2exe), SQL (SQLite)
Employer
Western Oregon University Fingerprint Analysis and Characterization Team (FACT)
Description
The fingerprint matcher application is a windows executable file (.exe) created using wxPython and py2exe. The program GUI allows a user to select a fingerprint database and set match parameters before running an iterative fingerprint matching simulation that searches for false matches of minutiae clusters. After a simulation completes, fingerprint matches and probabilities of false fingerprint matches are saved to text files.
Slope Map Generalization Script
Software/Languages
Python (arcpy), ArcGIS
Employer
West Virginia GIS Technical Center
Description
I created this ArcGIS tool for USDA-NRCS Soil Scientists. The script iteratively simplifies the slope classes of a classified slope raster and converts the simplified raster to an attributed polygon feature class. The underlying algorithm is based on the generalization routine developed by Bill Teater and Dale Baumgartner, NRCS, Illinois.
Automated Bio-Assessment Survey Maps
Software/Languages
Python (arcpy), ArcGIS
Employer
Western Oregon University - contracted by Upper Nehalem Watershed Council
Description
I authored a Python script to automate the production of hundreds of PDF maps for a rapid bio-assessment survey conducted by the Upper Nehalem Watershed Council. The survey maps are used to visualize the distribution of fish species within the upper Nehalem watershed in Oregon. Map templates were created in ArcMap and the Python script was used to create maps for each sub-basin within the watershed.
Websites
West Virginia Trail Inventory
Software/Languages
HTML/CSS, JavaScript (jQuery, Dojo), PHP, SQL, Python, GDAL, ArcGIS Server
Employer
West Virginia GIS Technical Center
Description
This web application allows users to search for and explore all recreational trails in West Virginia. I designed and programmed the website and also created the map cartography for the ArcGIS Server service. I authored a Python script (for office use) that automates the process of re-publishing the ArcGIS Server service with new trail data. I also created a Python geoprocessing script for the appplication that dynamically converts trail geometries to KML or GPX files using GDAL and zips them for download.
West Virginia Trail Inventory (Mobile)
Software/Languages
HTML/CSS, JavaScript (jQuery Mobile, Dojo), ArcGIS Server
Employer
West Virginia GIS Technical Center
Description
This web application is a mobile vesion of the West Virginia Trail Inventory application. The mobile application uses the same ArcGIS map service as the desktop version, but the interface was created with jQuery Mobile. Users can track their location on the map and tap trails to access detailed trail information.
West Virginia Food Mapper
Software/Languages
HTML/CSS, JavaScript (jQuery, Dojo), ArcGIS Server
Employer
West Virginia GIS Technical Center
Description
This web application allows users to search the state of West Virginia for businesses that provide local food or offer food services. The search options allow users to perform specific queries for local businesses. The application contains an Agrigultural Map section that allows users to overlay chloropleth maps representing various crop production metrics within the state. I programmed the HTML/CSS/JavaScript but did not create the map layers.
Boy Scouts Jamboree Injury Map
Software/Languages
HTML/CSS, JavaScript (jQuery, Dojo), Google Docs
Employer
West Virginia GIS Technical Center
Description
I created this application for the West Virginia Department of Health and Human Resources (WVDHHR). The application was used by WVDHHR employees during July 2013 to enter daily injury data that occurred at the National Boy Scout Jamboreee in West Virginia. WVDHHR employees entered injury data into a Google Spreadsheet, and the spreadsheet data is dynamically plotted on the map when users visit the application. Pie charts are used to visualize injury counts and types for each base camp.
Alpha VR Virtual Tour Application
Software/Languages
HTML/CSS, JavaScript (Adobe Spry)
Employer
Alpha VR
Description
Alpha VR is a virtual tour provider that features images and 360 degree panoramas of real estate photography. I designed and programmed the interface for the Alpha VR virtual tour application which was used for viewing real estate photography and 360 degree panoramas. The interface allowed users to view photos, interactive panoramas, details, and a map that shows nearby attractions.
Media
Bio-Assessment Survey Flyover Videos
Software/Languages
ArcGIS (ArcScene), Final Cut Pro X
Employer
Western Oregon University - contracted by Upper Nehalem Watershed Council
Description
I created these flyover videos to visualize the distribution of fish species throughout sub-basins of the Upper Nehalem Watershed. 3D scenes were key-framed in ArcScene and exported. Titles and graphics were added with Final Cut Pro X.
Academic Projects
CartoVis (Beta)
Software/Languages
JavaScript (D3.js, TopoJSON.js, jQuery, Three.js, JSTS), Python (Django), GDAL, HTML5/CSS3
Description
CartoVis is a web-based application for exploratory spatial data analysis that allows users to upload and visualize their own spatial data in 2D and 3D. I created CartoVis for my Master's degree in Geography at West Virginia University. CartoVis uses D3.js extenisvely for the choropleth maps and interactive graphs. Three.js is used to visualize spatial data in 3D. To demonstrate the application's feautures, I generated county-level census data for every US state.
pyGAM
Software/Languages
Python (arcpy), ArcGIS
Description
pyGAM is a Python ArcGIS tool that identifies point clusters using the Geographical Analysis Machine (GAM) developed by Stan Openshaw and colleagues (Openshaw et al. 1987). The GAM is an automated point pattern cluster detection algorithm that conducts an exhaustive search for point clusters across the entire dataset extent. This Python tool outputs a polygon feature class with circles that identify clusters, and a metadata table with the parameters used to run the tool. I developed this tool for an independent study Geography graduate course in GIS programming at West Virginia University.
URL
Chitwood Hall - Sketchup Model
Software/Languages
Trimble Sketchup
Description
I created a Sketchup model of Chitwood Hall on the West Virginia University Campus for a geovisualization graduate course at WVU. I photographed the building exterior and mapped an image of the building's front facade to the 3D model. The model is accurately georeferenced and scaled so it can be visualized within Google Earth.
Personal Projects
Geotagged Photos to KMZ
Software/Languages
Python (wxPython, PIL, GDAL, py2app)
Description
This wxPython program takes a folder of geotagged photos and uses Python's PIL package to read image metadata and then embed geotagged thumbnails in a KMZ file. These image thumbnails are visible as clickable icons in Google Earth that open to reveal larger versions of the geotagged images with metadata, such as altitude and time. I compiled the program to a Mac OS X application using py2app so I can easily convert folders with iPhone photos into KMZ files.
PythonGIS Earthquake Viewer
Software/Languages
HTML/CSS, JavaScript (jQuery, Dojo), Python (Django)
Description
This web map uses USGS data to display magnitude 2.5+ earthquakes for the past 30 days. Eathquakes are searchable and sortable in a table. Each row in the table can be clicked to zoom to the earthquake on the map.
Street Tree Viewer (Beta)
Software/Languages
HTML/CSS, JavaScript (jQuery, Google Maps API)
Description
This website uses the Google Maps API to visualize the street trees on sidewalks in Monmouth, Oregon. Point data is read from a .csv file and plotted on the map. The tree data and website are still undergoing changes. Street tree data was collected using GPS units by Biology students at Western Oregon University.
GeoWiki - Nearby Wikipedia Articles
Software/Languages
HTML/CSS, JavaScript (jQuery, ESRI JavaScript API)
Description
GeoWiki was an entry for ESRI's 2012 100-lines-of-code competition. In 100 lines of JavaScript code, this GeoWiki website can find the user's location and use the Wikipedia API to show nearby Wikipedia articles. Any wikipedia article with a geographic location will be displayed on the map. This project was designed to work with mobile and desktop devices.