Learn R Programming

Jump to installation instructions

actel

of non-interactive code*

Read the latest news here!

Overview

If you are using acoustic telemetry to track animals as they move inside a study area or as they migrate somewhere, actel is the package for you. By bringing together the study area configuration and the recorded detections, actel provides a systematic way of analysing animal migration and residency data.

Main functions:

1. explore()

explore() allows you to quickly get a summary of your data. You can use explore() to get a general feel for the study results, and check if the input files are behaving as expected. It is also a good candidate if you just want to validate your detections for later use in other analyses.

2. migration()

The migration() analysis runs the same initial checks as explore(), but on top of it, it analyses the animal behaviour. By selecting the arrays that lead to success, you can define whether or not your animals survived the migration. Additional plots help you find out if some animal/tag has been acting odd. Multiple options allow you to tweak the analysis to fit your study perfectly.

3. residency()

The residency() analysis runs the same initial checks as explore(), but, similarly to migration, explores particular points of the animal behaviour. If you want to know where your animals were in each day of the study, how many animals were in each section each day, and other residency-focused variables, this is the analysis you are looking for!

Unlock actel's full potential

To truly learn how to operate actel, you must read the package vignettes. These have been arranged so that you can prepare your analysis as you learn; quite soon you will get your first results!

Here are some examples:

Movement tables:

ArrayDetectionsFirst stationLast stationFirst timeLast timeTime travellingTime on array
River114St.1St.22019-05-15 10:30:002019-05-15 13:00:0025:20:142:30:00
River23St.4St.42019-05-15 13:50:002019-05-15 14:40:000:50:000:50:00
River38St.5St.62019-05-15 16:00:002019-05-15 16:20:001:20:000:20:00
Fjord221St.10St.112019-05-16 15:10:002019-05-16 18:00:0022:50:002:50:00
Sea11St.18St.182019-05-18 09:45:002019-05-18 09:45:0015:45:000:00:00

Detection graphics

Times of arrival and summary information

Array efficiency and tag progression

Individual residency

Global residency

Installing actel

CRAN version: 1.3.0

actel is available on CRAN. To install the latest stable version, simply run:

install.packages("actel")

Development version

If you would like to install the latest updates (which have not been integrated to CRAN yet), you can run the line below. Note that you need to have the package remotes installed!

remotes::install_github("hugomflavio/actel", build_opts = c("--no-resave-data", "--no-manual"), build_vignettes = TRUE)

Have a look at the manual:

After installing, you should read the manual, which can now be found in actel's website.

Note:

  1. If you are getting "pandoc document conversion" errors during the package installation, try installing the newest version of pandoc, restarting R and trying again.

* interactive code (i.e. code that expects user input) cannot be tested automatically using codecov and, as such, was excluded from the codecov scope.

Works using or relating to actel

2023 (13)

  • Becker, A., Fielder, D. S., Lowry, M. B., & Taylor, M. D. (2023). Suitability of saltmarsh creeks as release locations for stocked Mulloway (Argyrosomus japonicus). Estuarine, Coastal and Shelf Science, 108455. https://doi.org/10.1016/j.ecss.2023.108455

  • Davey, J., Clarke, T. M., Niella, Y., Dennis, J. D., & Huveneers, C. (2023). Seasonal variation in space use and residency of the southern eagle ray Myliobatis tenuicaudatus in a temperate ecosystem. Marine Ecology Progress Series, 705, 77–94. https://doi.org/10.3354/meps14232

  • Davies, P., Britton, J. R., Castro-Santos, T., Crundwell, C., Dodd, J. R., Nunn, A. D., Velterop, R., & Bolland, J. D. (2023). Tracking anadromous fish over successive freshwater migrations reveals the influence of tagging effect, previous success and abiotic factors on upstream passage over barriers. Canadian Journal of Fisheries and Aquatic Sciences. https://doi.org/10.1139/cjfas-2022-0196

  • Dhellemmes, F., Aspillaga, E., Rittweg, T., Alós, J., Möller, P., & Arlinghaus, R. (2023). Body size scaling of space use in coastal pike (Esox lucius) in brackish lagoons of the southern Baltic Sea. Fisheries Research, 260, 106560. https://doi.org/10.1016/j.fishres.2022.106560

  • Dhellemmes, F., Aspillaga, E., & Monk, C. T. (2023). ATfiltR: A solution for managing and filtering detections from passive acoustic telemetry data. MethodsX, 10, 102222. https://doi.org/10.1016/j.mex.2023.102222

  • Flink, H., Tibblin, P., Hall, M., Hellström, G., & Nordahl, O. (2023). Variation among bays in spatiotemporal aggregation of Baltic Sea pike highlights management complexity. Fisheries Research, 259, 106579. https://doi.org/10.1016/j.fishres.2022.106579

  • Höhne, L., Freese, M., Pohlmann, J.-D., Diekmann, M., Fladung, E., Huisman, J. B. J., Hanel, R., & Marohn, L. (2023). Overestimating management progress—Modelled vs. Monitored silver eel escapement in a North Sea draining river. ICES Journal of Marine Science, fsad122. https://doi.org/10.1093/icesjms/fsad122

  • Huisman, J. B. J., Höhne, L., Hanel, R., Kuipers, H., Schollema, P. P., & Nagelkerke, L. (2023). Factors influencing the downstream passage of European silver eels (Anguilla anguilla) through a tidal sluice. Journal of Fish Biology, (in press). https://doi.org/10.1111/jfb.15398

  • Kraft, S., Gandra, M., Lennox, R. J., Mourier, J., Winkler, A. C., & Abecasis, D. (2023). Residency and space use estimation methods based on passive acoustic telemetry data. Movement Ecology, 11(1), 12. https://doi.org/10.1186/s40462-022-00364-z

  • Kressler, M. M., Dall, S. R. X., & Sherley, R. B. (2023). A framework for studying ecological energy in the contemporary marine environment. ICES Journal of Marine Science, 80(6), 1580–1593. https://doi.org/10.1093/icesjms/fsad082

  • Nordli, E., Strøm, J., Bøhn, T., Thorstad, E., Serra-Llinares, R., Nilsen, R., & Bjørn, P. (2023). Behaviour and habitat use of first-time migrant Arctic charr: Novel insights from a subarctic marine area. Marine Ecology Progress Series, 709, 77–90. https://doi.org/10.3354/meps14279

  • O’Connor, B. (2023). Linking spatial stream network modeling and telemetry data to investigate thermal habitat use by adult arctic grayling [Master of Science, University of Northern British Columbia]. https://doi.org/10.24124/2023/59378

  • van Leeuwen, C. H. A., de Leeuw, J. J., van Keeken, O. A., Volwater, J. J. J., Seljee, F., van Aalderen, R., van Emmerik, W. A. M., & Bakker, E. S. (2023). Multispecies fish tracking across newly created shallow and deep habitats in a forward-restored lake. Movement Ecology, 11(1), 43. https://doi.org/10.1186/s40462-023-00405-1

2022 (5)

  • Edwards, M. L., McCallister, M., Brewster, L. R., Bangley, C. W., Curtis, T. H., Ogburn, M. B., & Ajemian, M. J. (2022). Multi-year assessment of immature bull shark Carcharhinus leucas residency and activity spaces in an expansive estuarine nursery. Marine Ecology Progress Series, 695, 125–138. https://doi.org/10.3354/meps14113

  • Hewitt, D. E., Niella, Y., Johnson, D. D., Suthers, I. M., & Taylor, M. D. (2022). Crabs Go With the Flow: Declining Conductivity and Cooler Temperatures Trigger Spawning Migrations for Female Giant Mud Crabs (Scylla serrata) in Subtropical Estuaries. Estuaries and Coasts. https://doi.org/10.1007/s12237-022-01061-1

  • Hollins, J., Pettitt-Wade, H., Gallagher, C. P., Lea, E. V., Loseto, L. L., & Hussey, N. E. (2022). Distinct freshwater migratory pathways in Arctic char (Salvelinus alpinus) coincide with separate patterns of marine spatial habitat-use across a large coastal landscape. Canadian Journal of Fisheries and Aquatic Sciences. https://doi.org/10.1139/cjfas-2021-0291

  • Thorkildsen, T. B. (2022). Anadromous Arctic charr: Mapping of migration and habitat use in Isfjorden, Svalbard [Master thesis, Norwegian University of Life Sciences, Ås]. https://nmbu.brage.unit.no/nmbu-xmlui/handle/11250/3018496

  • Thorstensen, M. J., Vandervelde, C. A., Bugg, W. S., Michaleski, S., Vo, L., Mackey, T. E., Lawrence, M. J., & Jeffries, K. M. (2022). Non-Lethal Sampling Supports Integrative Movement Research in Freshwater Fish. Frontiers in Genetics, 13. https://www.frontiersin.org/articles/10.3389/fgene.2022.795355

2021 (7)

  • Flávio, H., & Baktoft, H. (2021). actel: Standardised analysis of acoustic telemetry data from animals moving through receiver arrays. Methods in Ecology and Evolution, 12(1), 196–203. https://doi.org/10.1111/2041-210X.13503

  • Flávio, H., Caballero, P., Jepsen, N., & Aarestrup, K. (2021). Atlantic salmon living on the edge: Smolt behaviour and survival during seaward migration in River Minho. Ecology of Freshwater Fish, 30(1), 61–72. https://doi.org/10.1111/eff.12564

  • Niella, Y., Smoothey, A. F., Taylor, M. D., Peddemors, V. M., & Harcourt, R. (2021). Environmental Drivers of Fine-Scale Predator and Prey Spatial Dynamics in Sydney Harbour, Australia, and Adjacent Coastal Waters. Estuaries and Coasts. https://doi.org/10.1007/s12237-021-01020-2

  • Nordli, E. (2021). The behaviour of anadromous Arctic charr during their first marine migration [Master thesis, Arctic University of Norway]. https://munin.uit.no/handle/10037/21752

  • Winter, E. R. (2021). The movement ecology of common bream Abramis brama in a highly connected wetland using acoustic telemetry. [Doctoral thesis, Bournemouth University]. http://eprints.bournemouth.ac.uk/35141/

  • Winter, E. R., Hindes, A. M., Lane, S., & Britton, J. R. (2021a). Movements of common bream Abramis brama in a highly connected, lowland wetland reveal sub-populations with diverse migration strategies. Freshwater Biology, 66(7), 1410–1422. https://doi.org/10.1111/fwb.13726

  • Winter, E. R., Hindes, A. M., Lane, S., & Britton, J. R. (2021b). Acoustic telemetry reveals strong spatial preferences and mixing during successive spawning periods in a partially migratory common bream population. Aquatic Sciences, 83(3), 52. https://doi.org/10.1007/s00027-021-00804-9

2020 (2)

  • Flávio, H., Kennedy, R., Ensing, D., Jepsen, N., & Aarestrup, K. (2020). Marine mortality in the river? Atlantic salmon smolts under high predation pressure in the last kilometres of a river monitored for stock assessment. Fisheries Management and Ecology, 27(1), 92–101. https://doi.org/10.1111/fme.12405

  • Niella, Y., Flávio, H., Smoothey, A. F., Aarestrup, K., Taylor, M. D., Peddemors, V. M., & Harcourt, R. (2020). Refined Shortest Paths (RSP): Incorporation of topography in space use estimation from node-based telemetry data. Methods in Ecology and Evolution, 11(12), 1733–1742. https://doi.org/10.1111/2041-210X.13484

Is your paper not here? Let me know!

Copy Link

Version

Install

install.packages('actel')

Monthly Downloads

467

Version

1.3.0

License

GPL-3

Issues

Pull Requests

Stars

Forks

Maintainer

Hugo Fl<c3><a1>vio

Last Published

October 19th, 2023

Functions in actel (1.3.0)

assembleTimetable

Create the timetable
blankWorkspace

Create a Blank Workspace
breakMatricesByArray

Break the detection matrices per array
assembleValidMoves

Wrapper for simplifyMovements
assembleSectionOverview

Create section.overview
assembleSplitCJS

Assembles CJS tables for all group x release site combinations
checkArguments

Check argument quality
checkDupSignals

Check if there are duplicated signals in the detected tags.
checkDeploymentStations

Confirm that the station names in the deployments table match those listed in the spatial file
checkIssue79

warn users if they are about to run into an unfixed bug.
checkJumpDistance

Check if tags are jumping over arrays
checkDupDetections

Check if there are duplicated detection in the input data
checkNoDetections

Check if there are detections matching the target tags.
check_args

check.R arguments
checkUnknownReceivers

Find detections from unknown receivers
checkTagsInUnknownReceivers

Check for target data in the unknown receivers
checkGUI

Check if the dependencies required to open a GUI are installed, and if opening a GUI does not throw an error. Some code adapted from RGtk2's .onLoad function.
checkFirstDetBackFromRelease

Check for movements upstream of the release site.
completeMatrix

Complete a Distances Matrix
checkReport

Check report compatibility
checkSpeeds

check tag speeds against defined thresholds (in m/s)
collectStrays

Collect summary information on the tags detected but that are not part of the study.
checkSMovesN

Verify number of detections in section movements
dataToList

Import RData in a list format
darken

darken colours
convertCodes

Convert code spaces
combine

Combine a list of vectors
combineCJS

Combine multiple CJS models
checkToken

Verify that the source data has been compiled using actel's preload function
compileDetections

Combine ALS detections
circularSection

Draw a section on the outside of the circle
checkDeploymentTimes

Confirm that receivers were not re-deployed before being retrieved
checkLinearity

Check that the tag linearly moved along the sections
countBackMoves

Count backwards movements
checkMinimumN

Check the number of detections (total and per event) of a given tag. Works for both array and section movements.
checkDetectionsBeforeRelease

Check if there are detections for the target tags before release.
cjs_args

CJS.R arguments
example.distances

Example distances matrix
example.detections

Example detection data
example.biometrics

Example biometric data
detectionsSingleWidget

Detections Widget (Single table version)
detectionsTabbedWidget

Detections Widget (Tabbed version)
createStandards

Standardize serial numbers, stations and arrays in the detections
createNewEvents

Upon invalidating detections, recombines the remaining valid detections into new events, and merges them with the remaining events.
example.deployments

Example deployment data
example.results

Example migration results
dualArrayCJS

Calculate estimated last-array efficiency
dotPaths

Find arrays valid for efficiency calculation
eventsSingleWidget

Event Widget (Single table version)
createEventRanges

collapse event indexes into ranges
decimalTime

Convert hh:mm:ss time to hh.hhh
example.spatial

Example spatial data
excludeTags

Collect summary information on the tags detected but that are not part of the study.
exampleWorkspace

Deploy Example Data
blameArrays

Find which arrays to blame for a jump in movement events
assembleValidSecMoves

Wrapper for sectionMovements
getSpeeds

Extract speeds from the analysis results.
getTimes

Extract timestamps from the analysis results.
extractCodeSpaces

Extract Code Spaces from transmitter names
extractSignals

Extract signals from transmitter names
invalidateDetections

Allow the user to determine a given set of detections invalid
deleteHelpers

Delete temporary files
firstArrayFailure

Determine if the first array after release has failed
invalidateEvents

Allow the user to determine a given movement event invalid
findShortestChains

Find the shortest paths between arrays
distancesMatrix

Calculate Distances Matrix
countArrayFailures

Find and list arrays which failed during the movements of the tags
copyOfRosediagRad

circular:::RosediagRad
discardFirst

Discard early detections
groupMovements

Group movements
eventsTabbedWidget

Event Widget (Tabbed version)
expandEvent

Handler for event expansion
loadShape

DEPRECATED
movementSpeeds

Calculate time and speed
oneWayMoves

Trim movements table to contain only uni-directional movements
explore

Explorative Analysis
match.POSIXt

Match POSIX values
move_args

movements.R arguments
matchl

TRUE/FALSE wrapper for match
findSecondsPerSection

Calculate number of seconds at each location per day
graphicalInvalidate

Opens a new window that allows the user to determine movement event invalidity
efficiencyMatrix

Compile inter-array detection matrix
overrideValidityChecks

Skips all validity checks for a tag and allows the user to freely invalidate events
findPeers

Find efficiency peers for each array
graphicalInvalidateDetections

Opens a new window that allows the user to determine detection invalidity
loadSpatial

Load Spatial File
dualMatrix

Compile detection matrix for last array
findDirectChains

Find all arrays linked to an array in a given direction
gg_colour_hue

Generate default ggplot colours
fact

nearsq helper
globalRatios

Calculate number/percentage of tags at each location for each day
checkImpassables

Find out if a tag moved in an impossible direction
includeMissing

Include tags that were never detected
checkInactiveness

Find if a tag is standing still in an array
includeIntraArrayEstimates

Incorporate intra-array estimates in the overall CJS object
includeUnknownReceiver

Temporarily include missing receivers in the spatial object
loadDot

Load spatial.dot
loadDistances

Load distances matrix
processThelmaOldFile

Thelma old export files
processVemcoFile

Vemco files
plotArray

Plot simultaneous/cumulative presences at a give array or set of arrays
plotDetections

Plot detections for a single tag
lowestSignal

cleanly extract lowest signal from signals string
myRoseDiag

Edited rose diagram function
plotRatios

Plot global/group residency
migration

Migration Analysis
plotResidency

Plot residency for a single tag
printDot

Print DOT diagram
minuteTime

Convert numeric time to HH:MM
movementTimes

Calculate movement times
loadStudyData

Load, structure and check the inputs
convertTimes

Convert Times
printSurvivalGraphic

Print survival graphic
printCircular

Print circular graphics for each array
na.as.false

Consider NA's as FALSE
printSensorData

Print sensor data for each individual tag
createUniqueSerials

Include the deployment in the serial number of the receive
copyOfCirclePlotRad

circular:::circlePlotRad
std.error.circular

Calculate the standard error of the mean for circular data
mbGroupCJS

Calculate CJS for each group for each array
mbSplitCJS

Calculate CJS for each group.release combination
createWorkspace

Deprecated function.
dotList

Break the dot data frame into a list
processStandardFile

Standard detections file created for actel
sectionMovements

Compress array-movements into section-movements
processThelmaNewFile

Thelma new export files
plotTimes

Print circular graphics for time series.
plotSensors

Plot sensor data for a single tag
plotMoves

Plot moves for one ore more tags
plotLive

Plot array live times
nearsq

Find optimum plotting grid
readDot

Read dot file or string
preload

Load a dataset before running an analysis
printExploreRmd

Print Rmd report
recoverLog

Recover latest actel crash log
residency

Residency Analysis
printSectionTimes

Print arrival and departure times per section
preloadDetections

Run quality checks on preloaded detections
printGlobalRatios

print the distribution of tags per location
setSpatialStandards

Create Standard Names for spatial elements
printArrayOverview

print Rmd fragment for inclusion in the report
printMigrationRmd

Print Rmd report
res_efficiency

Calculate array efficiency for residency analysis
printBiometrics

Print biometric graphics
printResidencyRmd

Print Rmd report
transitionLayer

Calculate Transition Layer
printLastArray

Print a simple barplot with the number of tags last seen at each section
printLastSection

Print a simple barplot with the number of tags last seen at each section
storeStrays

Store summary information on the stray tags detected in a permanent file.
stopAndReport

stop function but paste error to the report too
substrRight

Subset a character string counting from the right end
resRatiosIndOut

compile output of dailyRatios
dotMatrix

Create numerical distances between dot elements
userInput

Wrap frequently used code to handle user input
emergencyBreak

Standard procedure when aborting
validateDetections

Compare original detections with the valid movements and exclude invalid detections
simpleCJS

Analytical CJS model
shapeToRaster

Load shapefile and convert to a raster object.
emptyMatrix

Create a Template Distances Matrix
updateValidity

update array-movement validity based on the section-movements
resPositions

Find the location where the tag spent most time per day
printProgression

Print progression diagram
resRatios

calculate residency ratios per tag
stationName

Find original station name
splitSignals

Split signals from multi-signal input
vectorsIntoTables

Transform vectors into data frames with specific columns
widget_args

widget_setups.R arguments
loadDeployments

Load deployments file and Check the structure
loadDetections

Load ALS detections
getResidency

Assemble residency tables per tag
getDualMatrices

Prepare intra-array matrices for selected arrays
liveArrayTimes

Assign live times to arrays
loadBio

Load Biometrics file
timesToCircular

Convert a data frame with timestamps into a list of circular objects
tableInteraction

Handler for table interaction events
printIndividualResidency

print the individual locations per day
printEfficiency

Print efficiency fragment
roseMean

Draw mean value in the axis margin
ringsRel

Draw rings at relative points
printDotplots

Print dotplots
printIndividuals

Print individual graphics
transformSpatial

Process spatial elements
transferValidity

Transfer validity updates from valid movements to all movements
res_assembleOutput

Create status.df
simplifyMovements

Removes invalid events
user_interaction_args

user_interaction.R arguments
speedReleaseToFirst

Calculate time and speed since release.
splitDetections

Split detections by tag
splitN

Split a dataframe every nth row
assembleMatrices

Assemble detection matrices
advEfficiency

Calculate beta estimations for efficiency
assembleResidency

Collect summary information for the residency analysis
assembleGroupCJS

Assembles CJS tables for all groups
appendTo

Append to ...
actel-deprecated

Deprecated functions in package actel.
actel

actel: Acoustic Telemetry Data Analysis
additional.residency.results

Example residency results
assembleOutput

Create status.df
assembleArrayCJS

Combine the individual CJS's of each array into a single table