View source: R/instrinsicIsotopes.R
weightAssign  R Documentation 
The primary purpose of this function is to determine whether weighting likelihood based isotope assignments
and prior information, such as relative abundance can improve the model performance compared to the
isotopeonly model. To do this, we raise the likelihood and prior values to powers from 0.1
to 10 and measure model performance using the assignment error rate and assignment area. Weights < 1 flatten
the likelihood/prior distributions (giving relatively more weight to smaller values) and weights > 1
sharpen the distributions (giving relatively less weight to smaller values. The weightAssign
function
generates origin assignments using stablehydrogen isotopes in tissue. If first generates
a probability surface of origin assignment from a vector of stableisotope values for each animal/sample
captured at a known location. Probabilistic assignments are constructed by first converting observed
stableisotope ratios (isoscape) in either precipitation or surface waters into a 'tissuescape' using
a userprovided intercept, slope and standard deviation. See
Hobson et. al. (2012).
weightAssign(
knownLocs,
isovalues,
isoSTD,
intercept,
slope,
odds = 0.67,
relAbund,
weightRange = c(1, 1),
sppShapefile = NULL,
assignExtent = c(179, 60, 15, 89),
element = "Hydrogen",
surface = FALSE,
period = "Annual",
verbose = 1,
mapDirectory = NULL
)
knownLocs 
matrix of capture locations of the same length as

isovalues 
vector of tissue isotope values from known locations 
isoSTD 
standard deviation from calibration 
intercept 
intercept value from calibration 
slope 
value from calibration 
odds 
odds ratio to use to set likely and unlikely locations defaults to 0.67 
relAbund 
raster layer of relative abundance that sums to 1. 
weightRange 
vector of length 2 within minimum and maximum values to weight isotope and relative abundance. Default = c(1,1) 
sppShapefile 
A polygon spatial layer (sf  MULTIPOLYGON) defining species range. Assignments are restricted to these areas. 
assignExtent 
definition for the extent of the assignment. Can be used
in place of 
element 
The elemental isotope of interest. Currently the only elements that are implemented are 'Hydrogen' (default) and 'Oxygen' 
surface 
DEPRECATED function no longer returns surface water values. Default is 'FALSE' which returns the precipitation isotopes ratio. 
period 
The time period of interest. If 'Annual' returns a raster
of mean annual values in precipitation for the 
verbose 
takes values 0 or 1 (default). 0 prints no output during run. 1 prints a message detailing where in the process the function is. 
mapDirectory 
Directory to save/read isotope map from. Can use relative or absolute addressing. The default value (NULL) downloads to a temporary directory, so we strongly recommend changing this from the default unless you're sure you're not going to need these data more than once. 
returns an weightAssign
object containing the following:
top
data.frame with the optimal weightings
frontier
data.frame with values that fall along the Pareto frontier
performance
data.frame with error rate and assignment area for each weight combination
Cohen, E. B., C. S. Rushing, F. R. Moore, M. T. Hallworth, J. A. Hostetler, M. Gutierrez Ramirez, and P. P. Marra. 2019. The strength of migratory connectivity for birds en route to breeding through the Gulf of Mexico. Ecography 42: 658669.
Rushing, C. S., P. P. Marra and C. E. Studds. 2017. Incorporating breeding abundance into spatial assignments on continuous surfaces. Ecology and Evolution 3: 38473855. \Sexpr[results=rd]{tools:::Rd_expr_doi("10.1002/ece3.2605")}
Cohen, E. B., C. S. Rushing, F. R. Moore, M. T. Hallworth, J. A. Hostetler, M. Gutierrez Ramirez, and P. P. Marra. 2019. The strength of migratory connectivity for birds en route to breeding through the Gulf of Mexico. Ecography 42: 658669.
Hobson, K. A., S. L. Van Wilgenburg, L. I. Wassenaar, and K. Larson. 2012. Linking hydrogen isotopes in feathers and precipitation: sources of variance and consequences for assignment to isoscapes. PLoS ONE 7: e35137.
Rushing, C. S., P. P. Marra, and C. E. Studds. 2017. Incorporating breeding abundance into spatial assignments on continuous surfaces. Ecology and Evolution 7: 38473855.
extensions < c("shp", "shx", "dbf", "sbn", "sbx")
tmp < tempdir()
for (ext in extensions) {
download.file(paste0(
"https://raw.githubusercontent.com/SMBCNZP/MigConnectivity",
"/master/dataraw/Spatial_Layers/OVENdist.",
ext),
destfile = paste0(tmp, "/OVENdist.", ext), mode = "wb")
}
OVENdist < sf::st_read(paste0(tmp, "/OVENdist.shp"))
OVENdist < OVENdist[OVENdist$ORIGIN==2,] # only breeding
sf::st_crs(OVENdist) < sf::st_crs(4326)
download.file(paste0("https://raw.githubusercontent.com/SMBCNZP/MigConnectivity",
"/master/dataraw/deltaDvalues.csv"),
destfile = paste0(tmp, "/deltaDvalues.csv"))
OVENvals < read.csv(paste0(tmp, "/deltaDvalues.csv"))
HBEFbirds < OVENvals[grep("NH",OVENvals[,1]),]
# Create a spatial object of known capture sites
knownLocs < sf::st_as_sf(data.frame(Long = rep(73,nrow(HBEFbirds)),
Lat = rep(43,nrow(HBEFbirds))),
coords = c("Long","Lat"),
crs = 4326)
#Get OVEN abundance from BBS estimates and read into R #
utils::download.file("https://www.mbrpwrc.usgs.gov/bbs/ra15/ra06740.zip",
destfile = paste0(tmp, "/oven.zip"))
utils::unzip(paste0(tmp, "/oven.zip"), exdir = tmp)
oven_dist < sf::st_read(paste0(tmp, "/ra06740.shp"))
# Empty raster with the same dimensions as isoscape and Ovenbird distribution
# We do this manually here but the weightedAssign function has been updated
# to ensure the isoscape and abundance rasts have the same extent using
# resampling to match relAbund to the isoscape.
r < terra::rast(nrow = 331, ncol = 870,
res = c(0.0833333, 0.0833333),
xmin = 125.1667, xmax = 52.66672,
ymin = 33.49995, ymax = 61.08327,
crs = sf::st_crs(4326)$wkt)
# rasterize the polygons from BBS  this is not needed if working with a
# rasterized surface
relativeAbun<terra::rasterize(terra::vect(sf::st_transform(oven_dist,4326)),
r,
field = "RASTAT")
relativeAbund < relativeAbun/terra::global(relativeAbun, sum,
na.rm = TRUE)$sum
BE < weightAssign(knownLocs = knownLocs,
isovalues = HBEFbirds[,2],
isoSTD = 12,
intercept = 10,
slope = 0.8,
odds = 0.67,
relAbund = relativeAbund,
weightRange = c(1, 1),
sppShapefile = OVENdist,
assignExtent = c(179,60,15,89),
element = "Hydrogen",
period = "Annual")
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.