The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]metanet.ch.
plot_time_at() plots time at depth or time at
temperature: the percentage of time in each depth or temperature range,
for the whole record, each month, or as a heat map of each day. It
returns the table of percentages, with the plot attached. In the app,
step 2 has a new “Time at depth & temperature” tab.plot_TDR() has a new colour_temp argument
to colour the depth record by temperature, from blue (cold) to red
(warm). The app’s depth record plot has a “Colour by temperature”
option. Both need the tag imported with its temperature column.import_tag_data() with output = TRUE now
also saves the settings it used (archive, deployment and release times,
columns and time zone) as import_settings.rds in the tag’s
folder. The app uses this to warn when a tag’s settings change after it
was imported: step 1 shows a warning when the tag is saved and in its
Check column, and step 2 marks the tag “Outdated” and lists what changed
until it is re-imported. For tags imported before the settings were
saved, the app checks the temperature column and time zone against the
imported record itself.import_tag_data(verbose = TRUE) now reports the mean,
minimum and maximum temperature when a temperature column is
imported.sampling_report() now lists each
irregularity and incomplete day with its times, up to
max_rows of each (5 by default; 20 in the app), and no
longer rounds nearly regular records up to “100%” of intervals.create_wavelet() no longer has the
allow_irregular_sampling argument (it was not functional),
and no longer stops on non-constant sampling intervals.run_app() opens a point-and-click app for FishDiveR
that runs locally in your browser (in development). It manages a project
folder and a table of tags, and covers the whole workflow: importing
tags, plotting their depth records, the wavelet analysis (with memory
estimates and optional thinning), daily statistics, PCA across tags,
choosing k and k-means clustering (with an interactive 3D view), and
plotting depth records by cluster and example days from each cluster.
Needs the ‘shiny’, ‘bslib’ and ‘DT’ packages.thin_archive() block-averages a depth record to a
longer sampling interval (e.g. 1 s to 15 s) before
create_wavelet(), cutting the wavelet’s memory and run time
for long, high-frequency records. In the app, step 3 has a thinning
option with a suggested interval based on the lower period.create_wavelet() now records the wavelet’s sampling
interval as sampling_s in wavelet_meta, and
with load_existing_wavelet = TRUE uses the saved wavelet’s
own sampling interval for the figures.plot_TDR() now attaches its ggplot to the returned data
as the attribute TDR_plot.plot_TDR() has a new minmax_bins argument
for fast plotting of large archives: it plots only the shallowest and
deepest record in each of that many time bins, keeping dive extremes
that every_nth can miss. plot_cluster_TDR()
has the same argument.sampling_report() checks a depth record for a
constant sampling interval and reports any irregularities: duplicate
times, gaps, changes of sampling rate, short intervals, times out of
order, and days with fewer records than expected. In the app, step 2
shows each imported tag’s sampling check.import_tag_data() now warns if the sampling interval is
not constant, listing the intervals detected and their record counts,
and suggests sampling_report() for details.create_wavelet(): the wavelet power spectrum figure no
longer has its end cut off for long, high-frequency records (e.g. 29
days at 1 s). Records with millions of samples are now thinned for
drawing only; the saved wavelet is unchanged. Redraw existing figures
with load_existing_wavelet = TRUE.k_clustering() with polygon = TRUE no
longer fails when a cluster’s points are flat in PC1 to PC3
(e.g. duplicate days); that cluster is drawn without a polygon.plot_clusters() with diel_shade = TRUE:
night is now shaded with one rectangle per night period, drawn beneath
the depth line, instead of one semi-transparent rectangle per depth
record drawn on top. Shading is now about as fast as no shading (e.g. 8
s instead of 19 minutes for 2 days per cluster at 1 s sampling),
night-time dives are no longer hidden, and the shade no longer varies
with sampling rate or every_nth.Added optional X-axis limits for TDR plots
select_k() now returns a single ggplot
object (a cowplot::plot_grid) instead of a list. Update
downstream code/tests accordingly..(...) with list(...) in
create_depth_stats().select_k() by using
withr::local_seed().RoxygenNote updated to
7.3.3.ggplot return class.These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.