Professional Portfolio
By Kevin Dunlop

GIS Programming and Automation


Programming in GIS is an effective way to streamline and standardize complex or repetitive tasks. In addition, GIS programming can be used to create web map applications. Throughout my various professional and work experiences, I have learned several different programming languages and techniques. These skills have allowed me to develop several interesting applications.

Chatham County Right-of-Way Project

One of my first projects in my professional career was a pilot project for Chatham County, GA, to help identify road right-of-way. Using drawings and survey plats provided by Chatham County, I digitized the right-of-way boundaries (line features) for a sample set of parcels. Once the data had been created, I developed a tool that generated polygons for their roads and right-of-ways. The tool provided several different options to the user, such as what data to capture and where to store the outputs. This was an ArcGIS Desktop extension written in Visual Basic 6. This project was my first time programming with ArcObjects and taught me the basic skills that I would build on with future programming projects.

Python and AFIM Aggregator

ArcGIS uses Python to provide a scripting environment where tasks can be automated. GIS 540: Introduction to Python for Geoprocessing taught me the python language and how to use it in ArcGIS. For the final project in this course, I developed a python application called AFIM Aggregator that uses various GIS functions to automate complicated, time intensive tasks. The videos below are the final presentation and demonstration of this application.

Get Adobe Flash Player. Embedded with the help of

Video 1: Overview presentation of my GIS 540 project. This presentation includes samples of the code used in the project.

Get Adobe Flash Player. Embedded with the help of

Video 2: Demonstration of the application for my GIS 540 project.


For the majority of my GIS career, I have been able to utilize my programming skills to effectively automate complex and time-consuming tasks. This skill has been a valuable asset for me in developing tools that streamline the workflows for both my clients and me. I have been able to incorporate these skills in other projects and tasks. For example, using the python skills I learned in GIS 540 coursework, I am able to use python in the ArcGIS attribute calculator to populate certain values for different conditions. Likewise, the knowledge I had in ArcObjects provided me with a solid background when I entered into web development.