addTelemetry: Combine Telemetry and Detection Data

addTelemetryR Documentation

Combine Telemetry and Detection Data


Animal locations determined by radiotelemetry can be used to augment capture–recapture data. The procedure in secr is first to form a capthist object containing the telemetry data and then to combine this with true capture–recapture data (e.g. detections from hair-snag DNA) in another capthist object. automatically detects the telemetry data in the new object.


addTelemetry (detectionCH, telemetryCH, type = c('concurrent','dependent','independent'), 
   collapsetelemetry = TRUE, verify = TRUE) 

xy2CH (CH, inflation = 1e-08)

telemetrytype (object) <- value

telemetrytype (object, ...)       



single-session capthist object, detector type ‘single’, ‘multi’, ‘proximity’ or ‘count’


single-session capthist object, detector type ‘telemetryonly’


character (see Details)


logical; if TRUE then telemetry occasions are collapsed to one


logical; if TRUE then verify.capthist is called on the output


capthist object with telemetryxy attribute


numeric tolerance for polygon


secr traps object


character telemetry type replacement value


other arguments


It is assumed that a number of animals have been radiotagged, and their telemetry data (xy-coordinates) have been input to telemetryCH, perhaps using read.capthist with detector = "telemetryonly" and fmt = "XY", or with read.telemetry.

A new capthist object is built comprising all the detection histories in detectionCH, plus empty (all-zero) histories for every telemetered animal not in detectionCH. Telemetry is associated with new sampling occasions and a new detector (nominally at the same point as the first in detectionCH). The number of telemetry fixes of each animal is recorded in the relevant cell of the new capthist object (CH[i, s, K+1] for animal i and occasion s if there were K detectors in detectionCH).

The new sampling occasion(s) are assigned the detector type ‘telemetry’ in the traps attribute of the output capthist object, and the traps attribute telemetrytype is set to the value provided. The telemetry type may be “independent” (no matching of individuals in captured and telemetered samples), “dependent” (telemetered animals are a subset of captured animals) or “concurrent” (histories may be capture-only, telemetry-only or both capture and telemetry).

The telemetry locations are carried over from telemetryCH as attribute ‘xylist’ (each component of xylist holds the coordinates of one animal; use telemetryxy to extract).

The default behaviour of 'addTelemetry' is to automatically collapse all telemetry occasions into one. This is computationally more efficient than the alternative, but closes off some possible models.

xy2CH partly reverses addTelemetry: the location information in the telemetryxy attribute is converted back to a capthist with detector type ‘telemetry’.


A single-session capthist object with the same detector type as detectionCH, but possibly with empty rows and an ‘telemetryxy’ attribute.


Telemetry provides independent data on the location and presence of a sample of animals. These animals may be missed in the main sampling that gives rise to detectionCH i.e., they may have all-zero detection histories.

The ‘telemetry’ detector type is used for telemetry occasions in a combined dataset.

See Also

capthist, make.telemetry, read.telemetry, telemetryxy telemetered


## Not run: 

# Generate some detection and telemetry data, combine them using
# addTelemetry, and perform analyses

# detectors
te <- make.telemetry()
tr <- make.grid(detector = "proximity")

# simulated population and 50% telemetry sample
totalpop <- sim.popn(tr, D = 20, buffer = 100)
tepop <- subset(totalpop, runif(nrow(totalpop)) < 0.5)

# simulated detection histories and telemetry
# the original animalID (renumber = FALSE) are needed for matching
trCH <- sim.capthist(tr,  popn = totalpop, renumber = FALSE, detectfn = "HHN")
teCH <- sim.capthist(te, popn = tepop, renumber=FALSE, detectfn = "HHN",
    detectpar = list(lambda0 = 3, sigma = 25))

combinedCH <- addTelemetry(trCH, teCH)

# summarise and display
plot(combinedCH, border = 150)
ncapt <- apply(combinedCH,1,sum)
points(totalpop[row.names(combinedCH)[ncapt==0],], pch = 1)
points(totalpop[row.names(combinedCH)[ncapt>0],], pch = 16)

# for later comparison of precision we must fix the habitat mask
mask <- make.mask(tr, buffer = 100) <-, mask = mask, CL = TRUE, detectfn = "HHN")  ## trapping alone
fit.te <-, mask = mask, CL = TRUE, start = log(20),   ## telemetry alone
    detectfn = "HHN") 
fit2   <-, mask = mask, CL = TRUE,              ## combined
    detectfn = "HHN")                                 

# improved precision when focus on realised population
# (compare CVD)
derived(, distribution = "binomial")
derived(fit2, distribution = "binomial")

# may also use CL = FALSE, CL = FALSE, detectfn = "HHN", trace = FALSE)

## End(Not run)

secr documentation built on Oct. 18, 2023, 1:07 a.m.