Skip to main content

A package to extract meaningful health information from large accelerometer datasets e.g. how much time individuals spend in sleep, sedentary behaviour, walking and moderate intensity physical activity

Project description

Accelerometer data processing overview

Github all releases install flake8 junit gt3x cwa

A tool to extract meaningful health information from large accelerometer datasets. The software generates time-series and summary metrics useful for answering key questions such as how much time is spent in sleep, sedentary behaviour, or doing physical activity.

Installation

pip install accelerometer

You also need Java 8 (1.8.0) or greater. Check with the following:

java -version

You can try the following to check if everything works properly:

# Create an isolated environment
$ mkdir test_baa/ ; cd test_baa/
$ python -m venv baa
$ source baa/bin/activate

# Install and test
$ pip install accelerometer
$ wget -P data/ http://gas.ndph.ox.ac.uk/aidend/accModels/sample.cwa.gz  # download a sample file
$ accProcess data/sample.cwa.gz
$ accPlot data/sample-timeSeries.csv.gz

Usage

To extract a summary of movement (average sample vector magnitude) and (non)wear time from raw Axivity .CWA (or gzipped .cwa.gz) accelerometer files:

$ accProcess data/sample.cwa.gz

 <output written to data/sample-outputSummary.json>
 <time series output written to data/sample-timeSeries.csv.gz>

The main JSON output will look like:

{
    "file-name": "sample.cwa.gz",
    "file-startTime": "2014-05-07 13:29:50",
    "file-endTime": "2014-05-13 09:49:50",
    "acc-overall-avg(mg)": 32.78149,
    "wearTime-overall(days)": 5.8,
    "nonWearTime-overall(days)": 0.04,
    "quality-goodWearTime": 1
}

To visualise the time series and activity classification output:

$ accPlot data/sample-timeSeries.csv.gz
 <output plot written to data/sample-timeSeries-plot.png>

Time series plot

You can also import the underlying modules to use in your custom python scripts:

from accelerometer import summariseEpoch
summary = {}
epochData, labels = summariseEpoch.getActivitySummary(
    "sample-epoch.csv.gz",
    "sample-nonWear.csv.gz",
    summary)
# <nonWear file written to "sample-nonWear.csv.gz" and dict "summary" updated
# with outcomes>

Under the hood

Interpreted levels of physical activity can vary, as many approaches can be taken to extract summary physical activity information from raw accelerometer data. To minimise error and bias, our tool uses published methods to calibrate, resample, and summarise the accelerometer data. Click here for detailed information on the data processing methods on our wiki.

Accelerometer data processing overview Activity classification

Citing our work

When describing or using the UK Biobank accelerometer dataset, please cite [Doherty2017]. When using this tool to extract sleep duration and physical activity behaviours from your accelerometer data, please cite:

  1. [Doherty2017] Doherty A, Jackson D, et al. (2017) Large scale population assessment of physical activity using wrist worn accelerometers: the UK Biobank study. PLOS ONE. 12(2):e0169649

  2. [Willetts2018] Willetts M, Hollowell S, et al. (2018) Statistical machine learning of sleep and physical activity phenotypes from sensor data in 96,220 UK Biobank participants. Scientific Reports. 8(1):7961

  3. [Doherty2018] Doherty A, Smith-Byrne K, et al. (2018) GWAS identifies 14 loci for device-measured physical activity and sleep duration. Nature Communications. 9(1):5257

  4. [Walmsley2021] Walmsley R, Chan S, Smith-Byrne K, et al. (2021) Reallocation of time between device-measured movement behaviours and risk of incident cardiovascular disease. British Journal of Sports Medicine. Published Online First. DOI: 10.1136/bjsports-2021-104050

Licence

This project is released under a BSD 2-Clause Licence (see LICENCE file)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

accelerometer-4.0.1.tar.gz (1.5 MB view details)

Uploaded Source

Built Distribution

accelerometer-4.0.1-py3-none-any.whl (1.5 MB view details)

Uploaded Python 3

File details

Details for the file accelerometer-4.0.1.tar.gz.

File metadata

  • Download URL: accelerometer-4.0.1.tar.gz
  • Upload date:
  • Size: 1.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.8.8

File hashes

Hashes for accelerometer-4.0.1.tar.gz
Algorithm Hash digest
SHA256 a2a4eed03ef5f301bf1ef36cd830795e93bfdb18e67c7fbb88cc432c6911d145
MD5 05efcb5679ea7a7bfd9b90305cf2a60f
BLAKE2b-256 9e48face8afae172c827c3a30a764100238c1d8b24193c9bc388ebf629f7e327

See more details on using hashes here.

File details

Details for the file accelerometer-4.0.1-py3-none-any.whl.

File metadata

  • Download URL: accelerometer-4.0.1-py3-none-any.whl
  • Upload date:
  • Size: 1.5 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.8.8

File hashes

Hashes for accelerometer-4.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 de07a213ad97162f66f89af9ae5427afbedd23c8c670e654f4253b17b3f70933
MD5 9a2fcbaafcb3c3d4c68c595ad46b78f3
BLAKE2b-256 4d40b3c6f11636decf9309ed7a0c6e7b141a7be4b10d3d1f1566f03c05266370

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page