Portfolio

Things to add
  • Sewing AngularJS MVC

Automation and Scripting: Python and Matplotlib

Thank you for viewing my portfolio of work related to GIS, Programming, and Technical Writing. The work below details projects that I've been involved with during some time between 2010 and the present.
Automation and Scripting \ Software Applications \ Database Designs \ Videos \ Maps \ Remote Sensing \ Technical Writing

Automation and Scripting: Python and Matplotlib



A demonstration of an algorithm that took distance as a parameter; the algorithm traversed a polyline and returned the UTM Coordinates of the point at that distance. I rapidly prototyped the algorithm using python and MatPlotLib. The algorithm was later implemented in a Java and PostGreSQL application, see screen shots here. To find out more please see my article on Path Tracing.


Automation and Scripting: C# and Powershell


Stackoverflow.com question I proposed on how to use a compiled C# .dll in a Windows Powershell Script. The purpose of the script was to iterate through ESRI Shapefiles and create metadata. The C# object had functions that created metadata on the attributes of shapefiles such as: Maximum, Minimum, Average, and listing of values for nominal data.

Automation and Scripting: ArcToolbox and Python



An ArcToolbox and FlexViewer Widget that allows for the spatial and attribute queries of a Map Service or ShapeFile, the query returns the polygon graphic layer that satisfies the query. The intended use allows for the following: The user is looking for land that meets an ownership, vegetation density, and ecological site requirement, he or she checks those attributes of interest, draws a polygon around the area of interest, then submits the request, and finally the polygon geometry is rendered on the current map. To find out more please see my blog post on ArcToolBoxes and another blog post of ArcPy.

Software Applications: Java and Processing


This desktop Java application queried a PostGreSQL database by intersecting a point with the geometry stored in the database. The point traveled only along the designated route and at the speed of the person driving the point (by walking on a treadmill).

The point intersection query returned what ever data the user was interested in. For this reason, the application required forcing a loose coupling between the result set of the query and the application (thus avoiding datatype 'mis-match' errors).

Finally, the data was routinely 'published' where students could write Java Processing classes and 'subscribe'.

The 'Publish & Subscribe' design pattern is an interface I designed, only after copying the idea from the design patterns of the Gang of Four


Video: ASP.NET Web Application with Web Map



This video is a walk through of one of my applications that I am the most proud of. The ASP.NET web application, with C# code behind, with ESRI javascript web mapping API, WCF services serving GEO-RSS feeds, consuming NOAA Weather Service (queried by point), and running off of 2 SQL Server Databases. (Bonus: I sound like Kermit the Frog, lol)

Video: Mountain Lion taking a break
(thought you may need one too)



I captured this Mountain Lion taking a break at a spring where I posted a Wildlife Camera; I stitched the images together for your pleasure. P.S. When this puma arrived it was only a couple of hours after I left.

Video: Animated GIF of ASP.NET web application during early development.



The ASP.NET web application originally used a Bing web map and utilized some HTML5 canvas for plotting data.

Database Designs: Data Conversion using OGR2OGR, its not just for vector data!


One of the most valuable skills that I've developed is the ability to convert data to and from many different data types. An open source utility that I owe all the credit for my successes is the OGR2OGR command line utility, a part of the GeoSpatial Data Abstraction Library. The above image show the SQL Server Management Studio rendering of grazing allotment polygons. To find out more, please see my blog on uploading shapefiles to SQL Server


Database Designs: Relational Databases 1


This is a database schema I proposed for grant funding from the AGFD Habitat Partnership Committee. The idea for the schema came from the Darwin Core Body of Standards. Here, I propose a 'catch all' database--where people across problem domains can store and share their information. The schema efficiently captures all 'Who,What,Where,When,and How' about a database record.
To find out more please see my article Game Objects Database Schema.


Database Designs: Relational Databases 2


This database schema is the center piece for the ASP.NET web application that I developed during my internship at the Arizona Game and Fish Department. Notice the cardinality of the table relationships, particularly the Location table. Here, the Location table can have many records for every one project record; meaning, instead of a project having one point or polygon that identifies where it is--a project record can have multiple differing geometry types to aid in its spatial description.


Remote Sensing: Introduction


Example of the Raster Classification of Vegetation.
Please see this article on the methodology I developed.
I take a lot of pride in this methodology because the alternative to producing this work was an extension to ESRI ArcMap that cost nearly $15,000. I did it only with the basic tools and my experience, training, and education.


Remote Sensing: Additional Utility


As an example of the utility of classifying satellite imagery, here, I make a custom topographic map. I touch lightly on the utility of classifying remote imagery in this blog post; ultimately, many types of land use can be derived from this simple classification method.


Remote Sensing: Final Product


The final product of the vegetation density classification was the ability to plan improvements in animal movement corridors. The above image is larger than normal; to clearly see it you must left click it and, when it pops up, right click it and select 'view image'--you may still need to scroll in to see it clearly.


Maps: Grid Mercator Lines, Extent Clipping, Legends, and TIGER Census Feature Class Codes


An example of a map produced from ArcMap. Here, Mercator grid lines are plotted so the map can be used in the field with a GPS device. Also, this map demonstrates efforts towards producing a standardized legend (state and regional view not visible) and the extraneous map extent clipped by the boundary of the Area Of Interest. Understanding of census feature class codes allowed for a better understanding of what types of roads were available for navigation at this location.


Technical Writing: An important skill when explaining how complex processes work is creating graphics and images


This solution I developed allowed for staff to convert data to and from a variety of sources. Notably, the end product allowed for SQL Server geometry to be downloaded as a zipped shapefile--very nice.


This solution I developed allowed for staff to write Comprehensive Plans; the plans became more like 'living documents' where the parts of the plans were broken down into identifiable pieces--so those pieces can be re-used, re-arranged, and re-purposed.


Technical Writing: Iconography


Ok, I'll be the first to admit--I'm not the best graphic artist. But, I do try to develop images/icons where people can quickly and easily relate to and identify with. Also, I routinely try to push these images/icons into reports and presentations--ultimately putting a 'brand' onto the look and feel of the project.
Here is a list of icons I've created in 2012, have you seen them before?


Just For Fun: Hikes I've taken and their elevation profiles.



Images showing the combination of my love for GIS and the outdoors. Here, I simply digitize or import GPS waypoints and also display the elevation profile of that path (Using Google Earth).


No comments:

Post a Comment