Minimum Convex Polygon (MCP) estimation was considered a home range originally
described for use with identifying animals recaptured along a trapping grid (Mohr 1947). The reason we removed this from the Home Range Section is because MCP can be used to describe the extent of distribution of locations of an animal but NOT as an estimation of home range size. In fact, reporting size of home range using MCP should be avoided at all costs unless you can justify its use as opposed to the plethora of other estimators we have learned in the previous section. We may use MCP within resource selection function analysis as it has been suggested as a method to describe the extent of area occupied by a species that would be available to animals using either second or third order selection of habitat (Johnson 1980), although this should also be avoided unless specifically justified as to why MCP is better than an alternate home range estimator. The extent of an area an animal uses (i.e., habitat available) should be determined for each species and the most appropriate estimator should be used.

  1. Exercise 8.1 - Download and extract zip folder into your preferred location
  2. Set working directory to the extracted folder in R under File - Change dir...
  3. First we need to load the packages needed for the exercise
    library(adehabitatHR)

  4. Now open the script "MCPscript.R" and run code directly from the script
    muleys <-read.csv("muleysexample.csv", header=T)
    muleys
    str(muleys)
    newmuleys <-subset(muleys, muleys$Long > -110.90 & muleys$Lat > 37.8)
    muleys <- newmuleys
    newmuleys <-subset(muleys, muleys$Long < -107)
    muleys <- newmuleys

  5. Create Spatial Points for all relocations and assign IDs to each location
    data.xy = muleys[c("X","Y")]
    #Creates class Spatial Points for all locations
    xysp <- SpatialPoints(data.xy)
    proj4string(xysp) <- CRS("+proj=utm +zone=17 +ellps=WGS84")
    #Creates a Spatial Data Frame from
    sppt<-data.frame(xysp)
    #Creates a spatial data frame of ID
    idsp<-data.frame(muleys[2])
    #Merges ID and Date into the same spatial data frame
    merge<-data.frame(idsp)
    #Adds ID and Date data frame with locations data frame
    coordinates(merge)<-sppt
    plot(merge)
    str(merge)

  6. We are now ready to create MCPs for our new dataset "merge" by individual animal ID (Fig. 8.1).
    ## estimates the MCP
    cp <- mcp(merge[,1], percent=95)#(95% is the default)
    ## The home-range size
    as.data.frame(cp)
    ## Plot the home ranges
    plot(cp)
    plot(cp[2,])#only plot deer D8
    ## ... And the relocations (Fig. 8.2)
    plot(merge, col=as.data.frame(merge)[,1], add=TRUE)

  7. We can export the MCPs as shapefiles if needed for use in GIS using the maptools library
    library(maptools)
    writePolyShape(cp, "MCPhomerange")

  8. We can also look at the area of each MCP as we exclude percentages of relocations (i.e., outliers). We can exclude 5% of the most extreme relocations or we can compute the home range size for various choices of the number of extreme relocations to be excluded, using the function mcp.area:
    hrs <- mcp.area(merge[,1], percent=seq(50, 100, by = 5))
    hrs