actimotus
The repository for the source code of the Motus system
Science Score: 44.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (16.1%) to scientific vocabulary
Keywords
Repository
The repository for the source code of the Motus system
Basic Info
- Host: GitHub
- Owner: motus-nfa
- License: bsd-3-clause
- Language: Python
- Default Branch: main
- Homepage: https://motus-system.notion.site
- Size: 480 KB
Statistics
- Stars: 4
- Watchers: 1
- Forks: 0
- Open Issues: 0
- Releases: 0
Topics
Metadata Files
README.md
For the latest implementation of ActiMotus, click here: acti-motus
ActiMotus is the data processing algorithms of the Motus system and are developed based on the Acti4 software.\ Motus is an activity detection system developed by the National Research Centre for the Working Environment (NFA).\ You can read more about the entire Motus system on our webpage.
In this repository you can find the Motus source code.
Citing ActiMotus
If you use ActiMotus in your research please cite the system as follows:
APA
The National Research Centre for the Working Environment (NFA). (2024). ActiMotus (2.0.0) [Computer software]. https://github.com/motus-nfa/ActiMotus
BibTex
@software{The_National_Research_Centre_for_the_Working_Environment_NFA_ActiMotus_2024,
author = {The National Research Centre for the Working Environment (NFA)},
month = jul,
title = {{ActiMotus}},
url = {https://github.com/motus-nfa/ActiMotus},
version = {2.0.0},
year = {2024}
}
How ActiMotus works
ActiMotus is based on the physical activity classification software, Acti4. While Acti4 was written in MatLab and developed as an offline software, ActiMotus is written in Python and runs on a cloud service hosted by SENSmotion. ActiMotus contains the same core algorithms and concepts as Acti4, but differs in the following ways (due to back-end memory limitiations):
The execution flow of the scripts is split into two main parts, preprocessing and activity classification
ActiMotus processes accelerometer data in two steps.
Step 1 reads the raw data in 12 hour chunks and runs pre-processing steps. These steps include
- Detecting sampling frequency (either 25 Hz or 12.5 Hz).
- Detecting periods where accelerometer is not worn.
- Computing rolling means and standard deviations of the three axes for overlapping windows of 2 seconds (overlap of 1 second), which are the primary features of the activity classification.
- Computing metrics used in the detection of cycling, estimation of the step count and in rotating the data based on a reference angle. These metrics are used in place of the raw data, which is unavailable in the second step.
The outputs from the processing of step 1 are used as inputs to step 2. In step 2 multiple chunks are read simultaneously such that data is processed for 24 hours at a time. In the second step, the sensor placement is revealed and, depending on this, different processes are activated. From a thigh worn accelerometer, the primary physical activities are classified using the Acti4 algorithm. Further sensors both improve the primary classification and produce angle-inclination signals. The output of step 2 is thus the classified activities on a second to second basis, along with step counts and angle signals (also on a second to second basis).
Sensor placements
- Thigh enables the primary activity classification.
- Upper back enchances the detection of lying compared to thigh-only measures. Further, forward bending of the back is measured.
- Arm is used to capture arm inclinations and movement.
New algorithms and sensors are added continuously.
Versions
ActiMotus is constantly developed and improved.
The current stable and integrated version of ActiMotus is 2.0.0
For an overview of versions and compatibilities please review our version overview.
Get in touch
If you want to use Motus or are interested in knowing more, please contact motus@nfa.dk.
Contributions and license
ActiMotus is published under the BSD 3-Clause License.
All contributions to Motus are welcome. If you have suggestions to features, you can open an issue or create a pull request with suggested changes.
Owner
- Name: Motus
- Login: motus-nfa
- Kind: user
- Location: Copenhagen
- Company: National Research Centre for the Working Environment
- Website: nfa.dk
- Repositories: 1
- Profile: https://github.com/motus-nfa
Citation (CITATION.cff)
cff-version: 1.2.0 message: "If you use Motus in your research please cite the system as follows" authors: - family-names: "The National Research Centre for the Working Environment (NFA)" given-names: "" title: "ActiMotus" version: 2.0.0 date-released: 2024-08-01 url: "https://github.com/motus-nfa/ActiMotus"
GitHub Events
Total
- Watch event: 1
Last Year
- Watch event: 1
Dependencies
- actions/checkout v4 composite
- psf/black stable composite
- Jinja2 ==3.1.2
- MarkupSafe ==2.1.3
- Pillow ==10.1.0
- PySocks ==1.7.1
- Pygments ==2.17.2
- altair ==5.2.0
- altair-data-server ==0.4.1
- altair-viewer ==0.4.0
- asttokens ==2.4.1
- attrs ==23.1.0
- backcall ==0.2.0
- certifi ==2023.11.17
- cffi ==1.16.0
- colorama ==0.4.6
- comm ==0.2.0
- contourpy ==1.1.1
- cycler ==0.12.1
- debugpy ==1.8.0
- decorator ==5.1.1
- exceptiongroup ==1.2.0
- executing ==2.0.1
- fastjsonschema ==2.19.0
- fonttools ==4.46.0
- h11 ==0.14.0
- idna ==3.6
- importlib-metadata ==7.0.0
- importlib-resources ==6.1.1
- ipykernel ==6.27.1
- ipython ==8.12.3
- jedi ==0.19.1
- jsonschema ==4.20.0
- jsonschema-specifications ==2023.11.2
- jupyter_client ==8.6.0
- jupyter_core ==5.5.0
- kiwisolver ==1.4.5
- matplotlib ==3.7.4
- matplotlib-inline ==0.1.6
- nbformat ==5.9.2
- nest-asyncio ==1.5.8
- numpy ==1.24.4
- outcome ==1.3.0.post0
- packaging ==23.2
- pandas ==2.0.3
- parso ==0.8.3
- pickleshare ==0.7.5
- pkgutil_resolve_name ==1.3.10
- platformdirs ==4.0.0
- plotly ==5.18.0
- portpicker ==1.6.0
- prettytable ==3.9.0
- prompt-toolkit ==3.0.41
- protobuf ==4.25.1
- psutil ==5.9.6
- pure-eval ==0.2.2
- pyarrow ==14.0.1
- pycparser ==2.21
- pyparsing ==3.1.1
- python-dateutil ==2.8.2
- pytz ==2023.3.post1
- pywin32 ==306
- pyzmq ==25.1.1
- referencing ==0.31.1
- rpds-py ==0.13.2
- scipy ==1.10.1
- selenium ==4.15.2
- six ==1.16.0
- sniffio ==1.3.0
- sortedcontainers ==2.4.0
- stack-data ==0.6.3
- tenacity ==8.2.3
- toolz ==0.12.0
- tornado ==6.4
- traitlets ==5.14.0
- trio ==0.23.1
- trio-websocket ==0.11.1
- typing_extensions ==4.8.0
- tzdata ==2023.3
- urllib3 ==2.1.0
- vegafusion ==1.4.5
- vegafusion-python-embed ==1.4.5
- vl-convert-python ==1.2.0
- wcwidth ==0.2.12
- wsproto ==1.2.0
- zipp ==3.17.0