DO ARCHIVAL LIGHT-LEVEL GEOLOCATORS AND STABLE-HYDROGEN ISOTOPES PROVIDE COMPARABLE ESTIMATES OF BREEDING GROUND ORIGIN?

Michael T. Hallworth, Colin E Studds, T. Scott Sillett and Peter P. Marra

accepted for publication in the Auk

Abstract

Migratory connectivity for small migratory passerines has been quantified primarily with stable-hydrogen isotopes in feathers (Hf) because, until recently, we lacked the technology to track small organisms over long distances. Direct tracking of small passerines throughout the annual cycle is now possible with archival light-level geolocators. Our objective was to evaluate if Hf and geolocators produce similar breeding origin assignments for the same individual birds sampled during the non-breeding season. We estimated breeding origin with geolocators and Hf and validated those estimates using a population of Ovenbirds (Seiurus aurocapilla) from a known breeding location at Hubbard Brook Experimental Forest, New Hampshire, USA. We also deployed geolocators on Ovenbirds in Jamaica and Florida, USA during March 2010-2011. We performed stable-hydrogen isotope analysis on feathers of birds whose geolocators we recovered (Jamaica: n = 9; Florida: n = 3). Probabilistic assignments of Hf that accounted for regional variation in feather-isotope discrimination predicted breeding origins that agreed with kernel density estimates of origin derived from geolocators. In contrast, assignments of Hf using the common assumption of a consistent feather-isotope discrimination across space predicted breeding origins that overlapped minimally with those from geolocators. Finally, Bayesian analyses that incorporated prior information of Ovenbird abundance across the breeding range yielded more accurate assignments for both site-independent and site-specific discrimination factors. Our findings suggest that the creation of more detailed feather isoscapes by increasing the number of validation locations and sampling under-represented portions of species distributions could increase the accuracy of geographic assignments using Hf.


The following text provides sample code from our analysis creating origin assignments with the raster package in program R.

Origin assignments using feather isotope values using a site-independent feather isoscape. The particular bird in the following example bred at Hubbard Brook Experimental Forest, NH. A tail feather (Rectrix R3) was sampled in 2012 when the archival light-level geolocator was recovered.

The following R packages were used to generate assignments of origin from feather isotope values.

require(raster)
require(rgdal)

Feather isoscapes were read into R using the raster function in the raster package

Site_Independent <- raster("Site_Independent_na_lambert.txt")
Site_Specific <- raster("nh_na_lambert.txt")

Probabilistic feather assignments use a spatially explicit probability density function to assign origin. In order to assign origin for a feather value, the isotope value of the feather (-56.12 in this example) and a standard deviation for assignment was needed. The standard deviation was obtained using the standard deviation of the residuals from the generalized linear mixed-model used to create the discrimination relationship between the Hydrogen isotope in growing season precipitation (Hp) and the Hydrogen isotope value of Ovenbird feathers (Hf). The feather isotope value and the standard deviation are used in the spatially explicit probability density function to create an assignment function.

Assign_68304 <- function(x) {
    ((1/(sqrt(2 * 3.14 * 16.4))) * exp((-1/(2 * 16.4^2)) * ((-56.12) - x)^2))
}

The assignment function can then be passed to the calc function in the raster package where a raster of the spatially explicit probabilistic feather assignment is created.

# Site-Independent assignment using the site-independent feather isoscape
SiteIndependent_assign_68304 <- calc(Site_Independent, fun = Assign_68304)

# Site-specific assignment using the New Hampshire site-specific feather
# isoscape
SiteSpecific_assign_68304 <- calc(Site_Specific, fun = Assign_68304)

The site-independent and site-specific probability of origin are plotted below. The breeding estimate provided by archival light-level geolocators is also indicated with a black polygon.

CountryBorder <- shapefile("TM_WORLD_BORDERS-0.3.shp")
KDE_68304 <- shapefile("kde_68304_75.shp")
par(mfrow = c(1, 2))
par(mar = c(2, 0, 2, 0))
par(bty = "n")
plot(SiteIndependent_assign_68304, axes = FALSE, horizontal = TRUE, xlab = "Probability of Origin", 
    ylab = "", main = "Site-Independent Assignment")
plot(KDE_68304, add = TRUE)
plot(CountryBorder, border = "gray", add = TRUE)
par(bty = "n")
par(mar = c(2, 0, 2, 0))
plot(SiteSpecific_assign_68304, axes = FALSE, horizontal = TRUE, xlab = "Probability of Origin", 
    ylab = "", main = "Site-Specific Assignment")
plot(CountryBorder, border = "gray", add = TRUE)
plot(KDE_68304, add = TRUE)

plot of chunk unnamed-chunk-5


Origin assignments using feather isotope values incorporating Breeding Bird Survey abundance data for the Ovenbird.

Origin assignments incorporating Ovenbird abundance from BBS data were created using a Bayesian framework. We first created a raster surface from the BBS abundance polygon and converted the raster into a probability surface by dividing the sum of the raster over the entire surface in ArcMap 10.0. The BBS raster surface was then imported into R using the raster function in the raster package.

BBS_probability <- raster("bbs_prob_na_lambert.txt")

The Ovenbird breeding bird survey abundance probability surface is shown below.

par(mar = c(2, 0, 2, 0))
par(bty = "n")
plot(BBS_probability, axes = FALSE, horizontal = TRUE, xlab = "Probability of Abundance", 
    ylab = "", main = "Ovenbird Abundance")
plot(CountryBorder, border = "gray", add = TRUE)

plot of chunk unnamed-chunk-7

The breeding bird survey abundance map is slightly smaller (fewer raster cells) than the feather assignment maps created above. In order to use them in a Bayesian framework the two rasters need to be the same size, the assignment map was cropped by the smaller breeding bird survey raster with the crop function in the raster package.

SiteIndependent_assign_68304 <- crop(SiteIndependent_assign_68304, BBS_probability)
SiteSpecific_assign_68304 <- crop(SiteSpecific_assign_68304, BBS_probability)

Once the raster surfaces are the same size, the feather assignment created earlier is converted into a probability surface by dividing the entire surface by the sum. The function cellStats is used to determine the sum of the raster surface.

SiteIndependent_assign_68304_probability <- calc(SiteIndependent_assign_68304, 
    fun = function(x) {
        x/cellStats(SiteIndependent_assign_68304, sum)
    })

SiteSpecific_assign_68304_probability <- calc(SiteSpecific_assign_68304, fun = function(x) {
    x/cellStats(SiteSpecific_assign_68304, sum)
})

The numerator in Bayes Theorem is then calculated using the 'overlay' function in the raster package.

HBEF_SiteIndependent <- overlay(SiteIndependent_assign_68304_probability, BBS_probability, 
    fun = function(x, y) {
        return(x * y)
    })

HBEF_SiteSpecific <- overlay(SiteSpecific_assign_68304_probability, BBS_probability, 
    fun = function(x, y) {
        return(x * y)
    })

The posterior distribution is then obtained by dividing the numerator by the sum of the surface.

HBEF_SiteIndependent_Posterior <- calc(HBEF_SiteIndependent, function(x) {
    x/cellStats(HBEF_SiteIndependent, sum)
})

HBEF_SiteSpecific_Posterior <- calc(HBEF_SiteSpecific, fun = function(x) {
    x/cellStats(HBEF_SiteSpecific, sum)
})

The resulting assignment surfaces are shown below.

require(RColorBrewer)
set.breaks <- seq(0, 0.007, 2.8e-05)
par(mfrow = c(1, 2))
par(mar = c(2, 0, 2, 0))
par(bty = "n")
plot(HBEF_SiteIndependent_Posterior, axes = FALSE, horizontal = TRUE, xlab = "Probability of Origin", 
    ylab = "", main = "Site-Independent Assignment", breaks = set.breaks, col = colorRampPalette(brewer.pal(8.75, 
        "Reds"))(250))
plot(KDE_68304, add = TRUE)
plot(CountryBorder, border = "gray", add = TRUE)
par(bty = "n")
par(mar = c(2, 0, 2, 0))
plot(HBEF_SiteSpecific_Posterior, axes = FALSE, horizontal = TRUE, xlab = "Probability of Origin", 
    ylab = "", main = "Site-Specific Assignment", breaks = set.breaks, col = colorRampPalette(brewer.pal(8.75, 
        "Reds"))(250))
plot(KDE_68304, add = TRUE)
plot(CountryBorder, border = "gray", add = TRUE)

plot of chunk unnamed-chunk-12