The purpose of this lab was to create an accurate representation of the home range of seven different coyotes. This data was provided by Bryan Kluever and Dr. Eric Gese of Utah State University. The data was collected with High Frequency Radio Collars for a sample population of coyotes near Dugway in Central Utah.
Download map PDF here
First the data needed to be added to the map. After adding it into the map, I displayed the XY coordinates and then set the correct coordinate system (WGS 84 UTM Zone 12N) using 'Edit'. As with any data, there can be errors, so I looked at the points to verify they were in the correct location and removed any outliers. After doing the quality check I exported the data into a shapefile and added it to the map. Changing the data to categorical symbology based on the Coyote tag number allows me to calculate home ranges for each animal individually.
There are two common ways that home ranges are calculated in ArcGIS, 'Minimum Convex Polygon' and 'Fixed Kernel Density'.
Minimum Convex Polygons create a polygon using the furthest points of each coyote. This method, though straightforward, often overestimates area and doesn't allow for any statistics of probability to be run. This way of calculating home ranges doesn't tell you density, only what areas are and aren't within their home range.
Kernel Density Estimates on the other hand present density showing the probability that something, in this case a coyote, will be present within its home range. From this information both core ranges (where the coyote is most often) and home ranges (total area that a coyote is likely to be found) can be easily calculated using isopleth lines.
Isopleth lines are lines that share a constant value, contour lines are a good example. Isopleth lines are often used when studying home ranges for animals because they allow a nice representation of the core and home ranges. To create isopleth lines from kernel density data, you must first extract the values from your raster data (the kernel density) and put them on your point data. This will allow you to create thresholds. In this lab I created a 50% threshold to show core range and a 95% threshold to show home range.
I did this by sorting my points descending by their new raster values and then using the raster value at the halfway point and the 95% as my thresholds. I reclassified these points using the "Reclassify' tool and the appropriate raster values to two new raster files. I then took these two files and converted them into polygons, making them easier to symbolize.
This gave me a nice representation of the core and home range for the coyotes as a single population. I then repeated this for each coyote individually using a pre-written python script. This script automate the process using a search cursor as well as the tools used in the above steps to create the core and home ranges for individual coyotes without much work on my end.
After creating the home and core ranges, what we also wanted to know was how the coyotes were utilizing the area. What vegetation types did they prefer? Of what they preferred, how much was a available and how much of that was actually being used? Asking these questions and finding the answers to them help those in natural resources understand animal habitat and their patterns. This is important when creating land and wildlife management plans as well as population control and conservation decisions.
I did this by clipping landcover vegetation data provided by LANDFIRE to the coyote general home range. This provided me with the list of vegetation types as well as their cell counts within the home range of all the coyotes. In this attribute table I added a field to calculate the proportions of available vegetation within their home range by dividing each vegetation's cell count by the total amount of vegetation available.
To calculate utilization I determine which vegetation or landcover type was at each coyote's location point. I did this by extract the landcover values to the coyote points with their home range (95th percentile). Using a pivot table I was able to figure out how many times a coyote was found on each vegetation type. Then taking the amount of points that were found on each vegetation type and dividing it by the total number of points found on all vegetation I calculated the proportions in which each vegetation type was utilized.
Q1: What is the name of the library that lets Python "talk" to ArcMap?
arcpy
Q2: Which line(s) in the code turn the script's parameters into Python text strings?
intial_points = arcpy.GetParameterAsText(0)
ouput_folder = arcpy.GetParamerAsText(1)
Q3: Which line(s) in the code output data into the output folder?
This puts the temporary file for saving points into the output folder to be called on latercoyote_points = os.path.join(output_folder, "temp_animal{}.shp".format(animal))
kernel_raster = os.path.join(output_folder, "kernel_raster_animal{}.tif".format(animal))
raster.save(kernel_raster)
core_raster.save(os.path.join(output_folder, "Core_Raster_{}.tif".format(animal)))
arcpy.RasterToPolygon_conversions(core_raster, os.path.join(output_folder, "Core_Polygon_{}.shp.format(animal)), "SIMPLIFY", "Value")
arcpy.RasterToPolygon_conversions(home_range_raster, os.path.join(output_folder, "Home_Range_Polygon_{}.shp.format(animal)), "SIMPLIFY", "Value")
home_range_list.append(os.path.join(output_folder, "Home_Range_Polygon_{}.shp".format(animal)))
Q4: What is the resolution of the Landfire data?
30m
Q5: What numeric attribute field contains the essential data about this vegetation data, the one you will be using for all your calculations?
Count
Q6: How many coyotes in this example would you expect to be mucking about in the water? (example provided in lab instructions)
30 coyotes
Q7: What Existing Vegetation Type (CLASSNAME) do the coyotes prefer (highest ratio)?
Developed-Medium Density
Q8: Did the coyotes prefer Low Intensity Developed landcover?
Yes, but less than some other landcover vegetation.