Package: FishDiveR 1.2.0

FishDiveR: Classify Aquatic Animal Behaviours from Vertical Movement Data

Quantitatively analyse depth time-series data from pop-up satellite archival tags (PSATs) through the application of continuous wavelet transformation (CWT) combined with Principal Component Analysis (PCA), and k-means clustering. Import, crop, and plot depth time-depth records (TDRs). Using CWT to detect important signals within the non-stationary data, we create daily wavelet statistics to summarise vertical movements on different wavelet periods and combine with daily and diel depth statistics. Classify depth time-series with unsupervised k-means clustering into 24-hour periods of vertical movement behaviour with distinct patterns of vertical movement. Plot example days from each behaviour cluster, and plot the TDR coloured by cluster. Based on principles of combining CWT with k-means first developed by Sakamoto et al. (2009) <doi:10.1371/journal.pone.0005379> and redeveloped by Beale et al. (2026) <doi:10.1186/s40462-025-00622-w>.

Authors:Calvin Beale [aut, cre, cph]

FishDiveR_1.2.0.tar.gz
FishDiveR_1.2.0.zip(r-4.7-any)FishDiveR_1.2.0.zip(r-4.6-any)FishDiveR_1.2.0.zip(r-4.5-any)
FishDiveR_1.2.0.tgz(r-4.6-any)FishDiveR_1.2.0.tgz(r-4.5-any)
FishDiveR_1.2.0.tar.gz(r-4.7-any)FishDiveR_1.2.0.tar.gz(r-4.6-any)
FishDiveR_1.2.0.tgz(r-4.6-emscripten)
manual.pdf |manual.html✨
DESCRIPTION |NEWS
card.svg |card.png
FishDiveR/json (API)

# Install 'FishDiveR' in R:
install.packages('FishDiveR', repos = c('https://calvinsbeale.r-universe.dev', 'https://cloud.r-project.org'))

Bug tracker:https://github.com/calvinsbeale/fishdiver/issues

Pkgdown/docs site:https://calvinsbeale.github.io

On CRAN:

Conda:

5.72 score 5 stars 5 scripts 366 downloads 15 exports 128 dependencies

Last updated from:6b1523470d. Checks:9 OK. Indexed: yes.
A new build is currently in progress.

TargetResultTimeFilesSyslog
linux-develOK768
source / vignettesOK272
linux-releaseOK673
macos-releaseOK641
macos-oldrelOK826
windows-develOK658
windows-releaseOK594
windows-oldrelOK675
wasm-releaseOK158

Exports:combine_datacreate_depth_statscreate_waveletcreate_wavelet_statsimport_tag_datak_clusteringpca_datapca_resultspca_scoresplot_cluster_TDRplot_clustersplot_TDRrun_appselect_kthin_archive

Dependencies:abindbackportsbase64encbootbroombslibcachemcarcarDatacliclustercolorspacecowplotcpp11crosstalkdata.tableDerivdigestdoBydplyrDTellipseemmeansestimabilityevaluateFactoMineRfarverfastmapflashClustfontawesomeforecastFormulafracdifffsgenericsgeometryggplot2ggrepelgluegridExtragtablehighrhtmltoolshtmlwidgetsirlbaisobandjquerylibjsonliteknitrlabelinglaterlatticelazyevalleapslifecyclelinproglme4lmtestlpSolvelubridatemagicmagrittrMASSMatrixMatrixModelsmemoisemgcvmimeminqamodelrmomentsmultcompViewmvtnormnlmenloptrnnetnumDerivotelpatchworkpbkrtestpillarpkgconfigpromisespurrrquantregR6rappdirsrbibutilsRColorBrewerRcppRcppArmadilloRcppEigenRcppParallelRcppProgressRdpackreformulasRfastrglrlangrmarkdownS7sassscalesscatterplot3dshowtextshowtextdbSparseMstringistringrsuncalcsurvivalsysfontstibbletidyrtidyselecttimechangetimeDatetinytexurcautf8vctrsviridisLiteWaveletCompwithrxfunyamlziggzoo

Getting started with FishDiveR
How the method works | Setting up | 1. Import the depth record | 2. Wavelet analysis | 3. Daily statistics | 4. Principal component analysis | 5. Choose the number of clusters and cluster the days | 6. Plot the results | Analysing several tags together | Citation

Last update: 2026-11-04
Started: 2024-10-13

Large, high-frequency records
Where the memory goes | A longer lower period | Thinning the record | Choosing the interval | Using the thinned record | Keep tags consistent | Plotting large records

Last update: 2026-11-04
Started: 2026-11-04

Using the FishDiveR app
Starting the app | Projects and the folder layout | The tag table | The seven steps | 1. Project & tags | 2. Import | 3. Wavelets | 4. Daily stats | 5. PCA | 6. Clustering | 7. Results | Tips

Last update: 2026-11-04
Started: 2026-11-04