Calculating average percentual Home-range overlaps in R

If you are studying ornithology you can usually fall back on a rich basis of knowledge accumulated over many years by volunteers, birders and professional ornithologist. I can think of no other taxonomic group that has been studied this intensively (well, maybe plants). Any yet it amazes me that stil

Reed Bunting

l we lack so much knowledge and data about why bird populations are declining and what the reasons for these declines are. For instance since some years it has been known that especially long-distant migrants are quite vulnerable to multiple reasons like habitat degradation and climate change in their wintering grounds (Berthold et al. 1998, Sanderson et al. 2006; Heldbjerg & Fox 2008). Since so little is known (if for example compared to the American migration route) about how those species behave, forage and migrate in the areas below the Sahara, there is an urgent need for more information and data. Using the newest technology such as very tiny GPS loggers we became able to track many declining birds to their wintering grounds.
Right know i am working with relocation data from 3 warbler species, which is a quite a new way of thinking for me (waypoints instead of occurence points) and right now i am diving into the topic by analyzing this data to for instance estimate the amount of overlaps between many species.

In this R-code i show you how you can easily use the package adehabitat for R to estimate the home-range using an adhoc Kernel. In my example i have used a point-layer containing relocation data with a Date and Time and a Species ID (Bird_ID) of 3 warbler species in an area in southern Senegal.


# Read in your Relocation Layer
spp <- readOGR("source","layer")

# Construct an adhoc Kernel for my 3 different warbler species
k <- kernelUD(,

# Calculate the area in square kilometers for a 50% Core-Zone and 95% Zone

# Calculate the Overlap of the kernel in Percent for all Bird species
(kov <- kerneloverlaphr(k,method="HR",lev=95)) # Percentage Overlap 95

overlapCalculating Percentage values of overlaps usually returns a matrix containing two different values. The percentage overlap from the smaller home-range to the bigger and vice versa (See Picture – Area C). Therefore there could be two different percentage values depending from which site you’re looking at it.

My approach for this problem has been to simply swap the distance matrix and average the percentage values (this is kinda inaccurate, but still used in some newer papers), but i also would advice to use other indices, like the Utilization distribution Overlap Index (UDOI) proposed by Fieberg and Kochanny in 2005.

# SwapMatrix function to convert a distance matrix into a data.frame
swapMatrix <- function(m) {
ut <- upper.tri(m)
data.frame(i = rownames(m)[row(m)[ut]],
j = rownames(m)[col(m)[ut]],
m <- swapMatrix(kov) # Swap your overlap
m$avg <- rowMeans(m[,3:4]) # And calculate the average of both values

Thats be it for now. I am still in the process of exploring all those techniques to investigate species home-ranges. Any links or cool examples are much appreciated.


  • Berthold, P, Fiedler, W, Schlenker, R, Querner, U, “25-year study of the population development of Central European songbirds: a general decline, most evident in long-distance migrants.” Naturwissenschaften 85.7 (1998): 350-353.
  • Sanderson, Fiona J, Donald, Paul F., Pain, Deborah J., Burfield, Ian J., van Bommel, Frans P.J. “Long-term population declines in Afro-Palearctic migrant birds.” Biological Conservation 131.1 (2006): 93-105.
  • Heldbjerg, Henning, and Fox, Tony (AD) “Long-term population declines in Danish trans-Saharan migrant birds: Capsule Long-distance migrant birds show less favourable trends than sedentary/short-distance species.” Bird Study 55.3 (2008): 267-279.
  • Fieberg, J. and Kochanny, C.O. (2005) Quantifying home-range overlap: the importance of the utilization distribution. Journal of Wildlife Management, 69, 1346–1359.


Tags: , , ,

About Martin Jung

PhD researcher at the University of Sussex. Interested in nature conservation, ecology and biodiversity as well as statistics, GIS and 'big data'
Sussex Research Hive

Supporting the research community at the University of Sussex

Small Pond Science

Research, teaching, and mentorship in the sciences

Landscape Ecology 2.0

intersecting landscape ecology, open science, and R


The Research Blog of IIASA

Jörg Steinkamps Blog

Mainly things about R, Linux and vegetation modeling

Amy Whitehead's Research

the ecological musings of a conservation biologist

Michael McCarthy's Research

School of BioSciences, The University of Melbourne

The Rostrum

science, statistics, policy and more


Environmental Change - Understand, Predict, Adapt

Dynamic Ecology

Multa novit vulpes


METeorological Visualisation Utilities using R for Science and Teaching

A Birder´s Blog

"Everybody loves what they know"


A new metric to quantify biodiversity response to fragmentation

Trust Me, I'm a Geographer

Using Technology to Explore Our World

Duncan Golicher's weblog

Research, scripts and life in Chiapas

%d bloggers like this: