The receiver efficiency index is number between 0 and 1 indicating the amount of relative activity at each receiver compared to the entire set of receivers, regardless of positioning. The function takes a set detections and a deployment history of the receivers to create a context for the detections. Both the amount of unique tags and number of species are taken into consideration in the calculation.

The receiver efficiency index implement is implemented based on the paper Acoustic telemetry array evolution: From species- and project-specific designs to large-scale, multispecies, cooperative networks - https://www.sciencedirect.com/science/article/pii/S0165783618302509?via%3Dihub. Each receiver’s index is calculated on the formula of:

\(REI = \frac{T_r}{T_a} \times \frac{S_r}{S_a} \times \frac{DD_r}{DD_a} \times \frac{D_a}{D_r}\)

REI = Receiver Efficiency Index

\(T_r\) = The number of tags detected on the receiver

\(T_a\) = The number of tags detected across all receivers

\(S_r\) = The number of species detected on the receiver

\(S_a\) = The number of species detected across all receivers

\(DD_a\) = The number of unique days with detections across all receivers

\(DD_r\) = The number of unique days with detections on the receiver

\(D_a\) = The number of days the array was active

\(D_r\) = The number of days the receiver was active

1 Importing Libraries

We will import dplyr and glatos to run then visualize the REI.

library(dplyr)
library(glatos)

2 Importing Data

We will import the sample data below using glatos::read_glatos_detections() and glatos::read_glatos_receivers()

detection_file <- system.file("extdata", "walleye_detections.csv", package = "glatos")
receiver_file <- system.file("extdata", "sample_receivers.csv", package = "glatos")

receivers <- read_glatos_receivers(receiver_file)
detections <- read_glatos_detections(detection_file)

2.1 Cleaning Data

Below we use dplyr::mutate() to ensure that any recovery times that are set as NA are set to the current date and time. You can replace Sys.time() with the last known download time if you know it.

receivers <- receivers %>% 
  mutate( recover_date_time = replace(recover_date_time,
                                      is.na(recover_date_time), 
                                      Sys.time()))

3 Running REI

REI() takes two arguments. The first is a dataframe of detections the detection timstamp, the station identifier, the species, and the tag identifier. The next is a dataframe of deployments for each station. The station name should match the stations in the detections. The deployments need to include a deployment date and recovery date or last download date. Details on the columns mentioned see the preparing data section.

rei <- glatos::REI(detections,receivers)

The resulting dataframe looks like this:

head(rei)
  station latitude longitude         rei
1 DRF-004 42.24937 -83.11824 0.001238627
2 DRL-004 42.12746 -83.11873 0.001562489
3 DRL-010 42.07690 -83.12096 0.001413371
4 DRL-011 42.09637 -83.11681 0.001162534
5 DRU-001 42.35693 -82.93016 0.001686250
6 DRU-002 42.35278 -82.92844 0.001576956