The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
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[@]dogado.de.
actibase is the foundation layer for actigraphy and
activity data. It focuses on raw file reading, standardization,
calibration, resampling, activity counts, non-wear detection, and
transformation bookkeeping.
Higher-level summarization, step-count mapping, and downstream statistical analysis are meant to live in overlay packages that build on top of this core package.
The package ships with a small GT3X file and a small CWA file under
inst/extdata. We will use those examples here.
gt3x_file = acti_example_gt3x()
cwa_file = acti_example_cwa()
gt3x = acti_read_gt3x(gt3x_file, verbose = FALSE)
cwa = acti_read_cwa(cwa_file, verbose = FALSE)
class(gt3x)
[1] "tbl_df" "tbl" "data.frame"
names(gt3x)
[1] "time" "X" "Y" "Z"
class(cwa)
[1] "tbl_df" "tbl" "data.frame"
names(cwa)
[1] "time" "x" "y" "z" "temp" "battery" "light" The GT3X reader uses read.gt3x::read.gt3x() underneath,
while the CWA reader uses GGIRread::readAxivity().
If you need to inspect the GT3X metadata separately,
acti_info_gt3x() parses the header information without
returning the full data stream.
info = acti_info_gt3x(gt3x_file)
names(info)
[1] "Serial Number" "Device Type" "Firmware"
[4] "Battery Voltage" "Sample Rate" "Start Date"
[7] "Stop Date" "Last Sample Time" "TimeZone"
[10] "Download Date" "Board Revision" "Unexpected Resets"
[13] "Acceleration Scale" "Acceleration Min" "Acceleration Max"
[16] "Subject Name" "Serial Prefix" The readers also let you control timezone handling explicitly.
Setting apply_tz = FALSE keeps the timestamps as stored in
the file, and tz = NULL disables the final timezone forcing
step.
gt3x_no_tz = acti_read_gt3x(
gt3x_file,
tz = NULL,
apply_tz = FALSE,
verbose = FALSE,
fill_zeroes = FALSE
)
cwa_no_tz = acti_read_cwa(
cwa_file,
tz = NULL,
apply_tz = FALSE,
verbose = FALSE
)
get_transformations(gt3x_no_tz)
[1] "acti_read_gt3x:attributes_set" "acti_read_gt3x:data_read"
get_transformations(cwa_no_tz)
[1] "acti_read_cwa:data_read_via_readAxivity"Internally, Axivity files use fixed UTC offsets. The helper that maps those offsets to Olson timezone names is small but useful when you need to reason about the conversion logic:
The baseline package keeps the data in a consistent shape:
std = acti_standardize_data(gt3x)
head(std)
# A tibble: 6 × 4
time X Y Z
<dttm> <dbl> <dbl> <dbl>
1 2019-09-17 18:40:00 0 0.00781 0.996
2 2019-09-17 18:40:00 0.0156 0 1.01
3 2019-09-17 18:40:00 0.0195 -0.00781 1.00
4 2019-09-17 18:40:00 0.0156 -0.0117 1.01
5 2019-09-17 18:40:00 0.0156 -0.00781 1.01
6 2019-09-17 18:40:00 0.00781 -0.00781 1.01 You can resample a three-axis signal to a new sampling rate or to specific timestamps:
resampled = acti_resample(std, sample_rate = 30L)
get_transformations(resampled)
[1] "acti_resample:sample_rate_attribute_changed_to_30"
[2] "acti_resample:linear_resampled_to_30Hz"
[3] "acti_read_gt3x:attributes_set"
[4] "acti_fill_zeros:filled_zeros"
[5] "acti_read_gt3x:data_read"
same_times = acti_resample_to_time(
std,
times = lubridate::floor_date(std$time, unit = "1 second")
)
get_transformations(same_times)
[1] "acti_resample_to_time:resampled_to_specific_times"
[2] "acti_read_gt3x:attributes_set"
[3] "acti_fill_zeros:filled_zeros"
[4] "acti_read_gt3x:data_read" 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.
Health stats visible at Monitor.