As a new ECCE Student Associate and beginning graduate student at Western University, I am looking forward to continued refinement of my geographical information science (GISci) knowledge and skills in the upcoming two or so years. My master’s research will be on the movement behaviour of feral swine, including pack (sounder) assignment, territoriality, and habitat/movement behaviour co-occurrence. I will be using GPS collar tracking data to construct models of individual and sounder home ranges to gain insights into the aforementioned movement behaviours. Ultimately, the goal of my research is to contribute some knowledge of the spatial behaviour of feral swine that will inform the optimization of their management in the study area and their expanding introduced range. Additionally, my research will seek to develop generalizable spatial analysis methods for movement behaviour, such as quantitative pack assignment methods. This work may take the form of an ArcMap toolbox, or an R package.

Being in the beginnings of my master’s program, much more of my time has been spent on course work and other things rather than my research. I have however, spent some time exploring and familiarizing myself with my GPS collar tracking data visually using ArcMap and available tools. In exploring GPS collar tracking data, I was faced with a classic GIS problem: large amounts of repetitive data. So, I have spent some time working on the classic solution to this recurrent problem: automation!

My research data was collected with 17 unique GPS collars recording location fixes at 30 minute intervals for three months, resulting in nearly 100,000 rows of data in a .csv file. To automate the processing of all this data, I began with a model using ArcGIS ModelBuilder and the ArcGIS Toolbox. The model I created allowed me to first import and display any .csv file I chose, before performing other operations. To import and display, .csv files were made into XY event layers, which were then projected. I also wanted to begin to visualize some animal space use patterns, such as the extents and the spatial densities of the GPS collar location fixes, which will lead into estimation of animal home ranges. A quick way to visualize space use is through bounding polygons, while density of GPS fixes can be visualized using kernel density estimation. From the GPS point feature class output, bounding polygons were created for each unique GPS collar using the Minimum Bounding Geometry tool. To explore the bounding polygons further, major axes of each polygon were created from the antipodes of the bounding polygons using the XY To Line tool. Upon completion, the model creates a point feature class of GPS fixes, convex hull polygons and major axes for each unique GPS collar.

Rather than select and iterate through unique GPS collars to create kernel density surfaces in ModelBuilder, I created a short Python script to perform that task using the ArcPy site package. The script creates a density surface for each unique set of GPS collar points using the Kernel Density Spatial Analyst tool. The result is a series of raster surfaces representing the density of GPS collar fixes for each unique collar.

import arcpy
workspace = "C:/GIS/Research/WorkingData/WorkingData.gdb"
arcpy.env.workspace = workspace
arcpy.env.overwriteOutput = True
arcpy.CheckOutExtension("Spatial")
from arcpy.sa import *

def getunique (table, field):
    with arcpy.da.SearchCursor(table, [field]) as cursor:
        return sorted({row[0] for row in cursor})


collarids = getunique("AllPigs", "CollarID")

for collarnum in collarids:
    collarid = "Collar_"+str(collarnum)
    where = "{} = {}".format("CollarID", collarnum)
    arcpy.Select_analysis("AllPigs", collarid, where)

fcs = arcpy.ListFeatureClasses("Collar_*")
for fc in fcs:
    desc = arcpy.Describe(fc)
    rasname = desc.baseName
    tempdens = KernelDensity(fc, "NONE")
    tempdens.save("C:/GIS/Research/WorkingData/DensitySurfaces/{}".format(rasname))

Moving forward, with a few additions I can insert my script into my model as a script tool to make the processing of the raw GPS data more seamless, and work on a way to automate symbolization for visualization of unique collar data during processing. Practicing process automation enhances the repeatability of my work, and allows me to handle incoming GPS collar tracking data quickly.

As I further my research, I will use more complex space use analysis methods, such as temporally explicit methods like Brownian Bridges to model animal home ranges, which will be used to investigate animal movement behaviour. Using automation will help me manage, edit and repeat data processing, keeping me organized and efficient as my workflow grows. This style of working can also produce analysis tools and packages that can be shared or repeatedly used and developed, ultimately contributing to open GISci resources.