Skip to contents

Read Actigraphy File

Usage

read_actigraphy(file, ..., read_function = NULL)

Arguments

file

file to read

...

additional arguments to pass to function

read_function

A custom function to read the data in.

Value

An accelerometer object from the function used to read the file.

Examples



file = system.file("extdata",
"TAS1H30182785_2019-09-17.gt3x",
package = "SummarizedActigraphy")
res = read_actigraphy(file)
#> Input is a .gt3x file, unzipping to a temporary location first...
#> Unzipping gt3x data to /tmp/RtmpsiCePd
#> 1/1 
#> Unzipping /home/runner/work/_temp/Library/SummarizedActigraphy/extdata/TAS1H30182785_2019-09-17.gt3x
#>  === info.txt, log.bin extracted to /tmp/RtmpsiCePd/TAS1H30182785_2019-09-17
#> GT3X information
#>  $ Serial Number     :"TAS1H30182785"
#>  $ Device Type       :"Link"
#>  $ Firmware          :"1.7.2"
#>  $ Battery Voltage   :"4.18"
#>  $ Sample Rate       :100
#>  $ Start Date        : POSIXct, format: "2019-09-17 18:40:00"
#>  $ Stop Date         : POSIXct, format: "2019-09-18 19:00:00"
#>  $ Last Sample Time  : POSIXct, format: "2019-09-17 19:20:05"
#>  $ TimeZone          :"-04:00:00"
#>  $ Download Date     : POSIXct, format: "2019-09-17 19:20:05"
#>  $ Board Revision    :"8"
#>  $ Unexpected Resets :"0"
#>  $ Acceleration Scale:256
#>  $ Acceleration Min  :"-8.0"
#>  $ Acceleration Max  :"8.0"
#>  $ Subject Name      :"suffix_85"
#>  $ Serial Prefix     :"TAS"
#> Parsing GT3X data via CPP.. expected sample size: 240500
#> ---GT3X PARAMETERS
#> address: 0 key: 6 value: 1
#> address: 0 key: 7 value: 54703161
#> address: 0 key: 8 value: 8
#> address: 0 key: 9 value: 1534154836
#> address: 0 key: 13 value: 17235970
#> address: 0 key: 16 value: 3791650816
#> address: 0 key: 20 value: 0
#> address: 0 key: 21 value: 0
#> address: 0 key: 22 value: 0
#> address: 0 key: 23 value: 0
#> address: 0 key: 26 value: 2
#> address: 0 key: 28 value: 262013
#> address: 0 key: 29 value: 255
#> address: 0 key: 32 value: 16908288
#> address: 0 key: 37 value: 1024
#> address: 0 key: 38 value: 0
#> address: 0 key: 49 value: 2048
#> address: 0 key: 50 value: 88181047
#> address: 0 key: 51 value: 6.82667
#> address: 0 key: 55 value: 256
#> address: 0 key: 57 value: 333.87
#> address: 0 key: 58 value: 21
#> address: 0 key: 61 value: 2
#> address: 1 key: 0 value: 0
#> address: 1 key: 1 value: 872668711
#> address: 1 key: 2 (features)  value: 388
#> address: 1 key: 3 value: 1
#> address: 1 key: 4 value: 4294967131
#> address: 1 key: 5 value: 4294967095
#> address: 1 key: 6 value: 4294967149
#> address: 1 key: 7 value: 298
#> address: 1 key: 8 value: 286
#> address: 1 key: 9 value: 300
#> address: 1 key: 10 value: 100
#> address: 1 key: 12 (start time)  value: 1568745600
#> address: 1 key: 13 value: 1568833200
#> address: 1 key: 14 value: 1568745556
#> address: 1 key: 15 value: 74
#> address: 1 key: 16 value: 40
#> address: 1 key: 17 value: 72
#> address: 1 key: 20 value: 0
#> address: 1 key: 21 value: 0
#> address: 1 key: 33 value: 60000
#> address: 1 key: 34 value: 4294965247
#> address: 1 key: 35 value: 4294965190
#> address: 1 key: 36 value: 4294965237
#> address: 1 key: 37 value: 2051
#> address: 1 key: 38 value: 2000
#> address: 1 key: 39 value: 2048
#> address: 1 key: 40 value: 0
#> address: 1 key: 41 value: 1
#> address: 1 key: 42 value: 0
#> address: 1 key: 43 value: 4294967283
#> address: 1 key: 44 value: 0
#> address: 1 key: 45 value: 0
#> address: 1 key: 46 value: 0
#> ---END PARAMETERS
#> 
#> Activity with Sample Size of 0
#> payload start: 1568747741
#> total_records: 214100
#> max_samples: 240500
#> Activity with Sample Size of 0
#> payload start: 1568747759
#> total_records: 215900
#> max_samples: 240500
#> Total Records: 216000
#> Scaling...
#> Creating dimnames 
#> CPP returning 
#> Done (in 0.51097583770752 seconds)
testthat::expect_equal(mean(res$data$X), -0.0742151351351352)

file = "blah.exe"
testthat::expect_error(read_actigraphy(file))
# \donttest{
url = paste0("https://github.com/THLfi/read.gt3x/files/",
"3522749/GT3X%2B.01.day.gt3x.zip")
destfile = tempfile(fileext = ".zip")
dl = utils::download.file(url, destfile = destfile, mode = "wb")
gt3x_file = utils::unzip(destfile, exdir = tempdir())
gt3x_file = gt3x_file[!grepl("__MACOSX", gt3x_file)]
path = gt3x_file
res = read_actigraphy(path)
#> Input is a .gt3x file, unzipping to a temporary location first...
#> Unzipping gt3x data to /tmp/RtmpsiCePd
#> 1/1 
#> Unzipping /tmp/RtmpsiCePd/GT3X+ (01 day).gt3x
#>  === info.txt, activity.bin, lux.bin extracted to /tmp/RtmpsiCePd/GT3X+(01day)
#> GT3X information
#>  $ Serial Number     :"NEO1DXXXXXXXX"
#>  $ Device Type       :"GT3XPlus"
#>  $ Firmware          :"2.5.0"
#>  $ Battery Voltage   :"4.22"
#>  $ Sample Rate       :30
#>  $ Start Date        : POSIXct, format: "2012-06-27 10:54:00"
#>  $ Stop Date         : POSIXct, format: "2012-06-28 11:54:00"
#>  $ Download Date     : POSIXct, format: "2012-06-28 16:25:52"
#>  $ Board Revision    :"4"
#>  $ Unexpected Resets :"0"
#>  $ Sex               :"Male"
#>  $ Height            :"172.72"
#>  $ Mass              :"69.8532249799612"
#>  $ Age               :"43"
#>  $ Race              :"White / Caucasian"
#>  $ Limb              :"Ankle"
#>  $ Side              :"Left"
#>  $ Dominance         :"Non-Dominant"
#>  $ DateOfBirth       :"621132192000000000"
#>  $ Subject Name      :"GT3XPlus"
#>  $ Serial Prefix     :"NEO"
#>  $ Last Sample Time  : 'POSIXct' num(0) 
#>  - attr(*, "tzone")= chr "GMT"
#>  $ Acceleration Scale:341
#>  $ Acceleration Min  :"-6.0"
#>  $ Acceleration Max  :"6.0"
#> Parsing GT3X data via CPP.. expected sample size: 2700000
#> Using NHANES-GT3X format - older format
#> Sample size: 2700000
#> Scaling...
#> Done (in 1.88653993606567 seconds)
testthat::expect_equal(mean(res$data$X), -0.228406351135833)

dob = res$header$Value[res$header$Field == "DateOfBirth"]
if (length(dob) > 0) {
 SummarizedActigraphy:::ticks2datetime(dob)
}
#> [1] "1969-04-17 GMT"

# }