From 61f418eb6b7b0beeeca00999d2db73098e1f632f Mon Sep 17 00:00:00 2001 From: github-actions Date: Tue, 1 Jun 2021 19:57:30 +0000 Subject: [PATCH] Deployed daced51 to 1.3 with MkDocs 1.1.2 and mike 1.0.1 --- 1.3/404.html | 1765 ++++++++++ 1.3/CNAME | 1 + 1.3/assets/images/favicon.png | Bin 0 -> 1870 bytes 1.3/assets/javascripts/bundle.0c4ae912.min.js | 108 + .../javascripts/lunr/min/lunr.ar.min.js | 1 + .../javascripts/lunr/min/lunr.da.min.js | 18 + .../javascripts/lunr/min/lunr.de.min.js | 18 + .../javascripts/lunr/min/lunr.du.min.js | 18 + .../javascripts/lunr/min/lunr.es.min.js | 18 + .../javascripts/lunr/min/lunr.fi.min.js | 18 + .../javascripts/lunr/min/lunr.fr.min.js | 18 + .../javascripts/lunr/min/lunr.hu.min.js | 18 + .../javascripts/lunr/min/lunr.it.min.js | 18 + .../javascripts/lunr/min/lunr.ja.min.js | 1 + .../javascripts/lunr/min/lunr.jp.min.js | 1 + .../javascripts/lunr/min/lunr.multi.min.js | 1 + .../javascripts/lunr/min/lunr.nl.min.js | 18 + .../javascripts/lunr/min/lunr.no.min.js | 18 + .../javascripts/lunr/min/lunr.pt.min.js | 18 + .../javascripts/lunr/min/lunr.ro.min.js | 18 + .../javascripts/lunr/min/lunr.ru.min.js | 18 + .../lunr/min/lunr.stemmer.support.min.js | 1 + .../javascripts/lunr/min/lunr.sv.min.js | 18 + .../javascripts/lunr/min/lunr.tr.min.js | 18 + .../javascripts/lunr/min/lunr.vi.min.js | 1 + 1.3/assets/javascripts/lunr/tinyseg.js | 206 ++ .../workers/search.df8cae7d.min.js | 59 + 1.3/assets/stylesheets/main.92048cb8.min.css | 1 + .../stylesheets/palette.73e53a79.min.css | 1 + 1.3/change-log/index.html | 2359 +++++++++++++ 1.3/citation/index.html | 2071 +++++++++++ 1.3/code_of_conduct/index.html | 2174 ++++++++++++ 1.3/common-errors/index.html | 2371 +++++++++++++ 1.3/contributing/index.html | 2073 +++++++++++ .../add-new-data-streams/index.html | 2357 +++++++++++++ 1.3/datastreams/aware-csv/index.html | 3123 +++++++++++++++++ 1.3/datastreams/aware-influxdb/index.html | 3112 ++++++++++++++++ 1.3/datastreams/aware-mysql/index.html | 3108 ++++++++++++++++ .../data-streams-introduction/index.html | 1960 +++++++++++ 1.3/datastreams/empatica-zip/index.html | 2165 ++++++++++++ 1.3/datastreams/fitbitjson-csv/index.html | 2515 +++++++++++++ 1.3/datastreams/fitbitjson-mysql/index.html | 2507 +++++++++++++ 1.3/datastreams/fitbitparsed-csv/index.html | 2573 ++++++++++++++ 1.3/datastreams/fitbitparsed-mysql/index.html | 2562 ++++++++++++++ .../mandatory-empatica-format/index.html | 2054 +++++++++++ .../mandatory-fitbit-format/index.html | 2119 +++++++++++ .../mandatory-phone-format/index.html | 2453 +++++++++++++ 1.3/developers/documentation/index.html | 2012 +++++++++++ 1.3/developers/git-flow/index.html | 2100 +++++++++++ 1.3/developers/remote-support/index.html | 1897 ++++++++++ 1.3/developers/test-cases/index.html | 2736 +++++++++++++++ 1.3/developers/testing/index.html | 2136 +++++++++++ .../validation-schema-config/index.html | 2171 ++++++++++++ .../virtual-environments/index.html | 2111 +++++++++++ 1.3/features/add-new-features/index.html | 2223 ++++++++++++ .../empatica-accelerometer/index.html | 2021 +++++++++++ .../empatica-blood-volume-pulse/index.html | 2039 +++++++++++ .../index.html | 2039 +++++++++++ 1.3/features/empatica-heartrate/index.html | 2039 +++++++++++ .../empatica-inter-beat-interval/index.html | 2039 +++++++++++ 1.3/features/empatica-tags/index.html | 1906 ++++++++++ 1.3/features/empatica-temperature/index.html | 2039 +++++++++++ 1.3/features/feature-introduction/index.html | 2034 +++++++++++ .../fitbit-calories-intraday/index.html | 2128 +++++++++++ 1.3/features/fitbit-data-yield/index.html | 2031 +++++++++++ .../fitbit-heartrate-intraday/index.html | 2046 +++++++++++ .../fitbit-heartrate-summary/index.html | 2081 +++++++++++ 1.3/features/fitbit-sleep-intraday/index.html | 2305 ++++++++++++ 1.3/features/fitbit-sleep-summary/index.html | 2099 +++++++++++ 1.3/features/fitbit-steps-intraday/index.html | 2095 +++++++++++ 1.3/features/fitbit-steps-summary/index.html | 2019 +++++++++++ 1.3/features/phone-accelerometer/index.html | 2121 +++++++++++ .../phone-activity-recognition/index.html | 2096 +++++++++++ .../phone-applications-crashes/index.html | 1919 ++++++++++ .../phone-applications-foreground/index.html | 2055 +++++++++++ .../index.html | 1919 ++++++++++ 1.3/features/phone-battery/index.html | 2034 +++++++++++ 1.3/features/phone-bluetooth/index.html | 2195 ++++++++++++ 1.3/features/phone-calls/index.html | 2100 +++++++++++ 1.3/features/phone-conversation/index.html | 2154 ++++++++++++ 1.3/features/phone-data-yield/index.html | 2052 +++++++++++ 1.3/features/phone-keyboard/index.html | 1973 +++++++++++ 1.3/features/phone-light/index.html | 2025 +++++++++++ 1.3/features/phone-locations/index.html | 2378 +++++++++++++ 1.3/features/phone-log/index.html | 1907 ++++++++++ 1.3/features/phone-messages/index.html | 2026 +++++++++++ 1.3/features/phone-screen/index.html | 2061 +++++++++++ 1.3/features/phone-wifi-connected/index.html | 2013 +++++++++++ 1.3/features/phone-wifi-visible/index.html | 2013 +++++++++++ 1.3/img/analysis_workflow.png | Bin 0 -> 518168 bytes 1.3/img/calls.csv | 9 + 1.3/img/dataflow.png | Bin 0 -> 345150 bytes 1.3/img/features_fitbit_sleep_intraday.png | Bin 0 -> 78290 bytes 1.3/img/files.png | Bin 0 -> 202701 bytes 1.3/img/h-data-yield.html | 3 + 1.3/img/h-data-yield.png | Bin 0 -> 112608 bytes ...data-yield-participants-absolute-time.html | 11 + ...-data-yield-participants-absolute-time.png | Bin 0 -> 184589 bytes ...data-yield-participants-relative-time.html | 11 + ...-data-yield-participants-relative-time.png | Bin 0 -> 194497 bytes 1.3/img/hm-data-yield-participants.html | 191 + 1.3/img/hm-feature-correlations.html | 96 + 1.3/img/hm-feature-correlations.png | Bin 0 -> 295093 bytes 1.3/img/hm-phone-sensors.html | 447 +++ 1.3/img/hm-phone-sensors.png | Bin 0 -> 279991 bytes 1.3/img/hm-sensor-rows.html | 447 +++ 1.3/img/hm-sensor-rows.png | Bin 0 -> 188334 bytes 1.3/img/logo.png | Bin 0 -> 12460 bytes 1.3/img/logos/cmu.png | Bin 0 -> 20857 bytes 1.3/img/logos/dbdp.png | Bin 0 -> 6023 bytes 1.3/img/logos/helsinki.jpg | Bin 0 -> 4514 bytes 1.3/img/logos/manchester.png | Bin 0 -> 80689 bytes 1.3/img/logos/monash.jpg | Bin 0 -> 33408 bytes 1.3/img/logos/oulu.png | Bin 0 -> 12503 bytes 1.3/img/logos/penn.png | Bin 0 -> 17623 bytes 1.3/img/logos/pitt.png | Bin 0 -> 23109 bytes 1.3/img/logos/uw.jpg | Bin 0 -> 5095 bytes 1.3/img/logos/virginia.jpg | Bin 0 -> 17135 bytes 1.3/img/sleep_intraday_price.png | Bin 0 -> 859861 bytes 1.3/img/sleep_intraday_rapids.png | Bin 0 -> 235048 bytes 1.3/img/sleep_summary_rapids.png | Bin 0 -> 300516 bytes 1.3/img/testing_eventsegments_mtz.png | Bin 0 -> 154167 bytes 1.3/index.html | 1952 +++++++++++ 1.3/javascripts/extra.js | 0 1.3/migrating-from-old-versions/index.html | 2001 +++++++++++ 1.3/overrides/main.html | 13 + .../partials/integrations/utterances.html | 38 + 1.3/search/search_index.json | 1 + 1.3/setup/configuration/index.html | 3063 ++++++++++++++++ 1.3/setup/execution/index.html | 1915 ++++++++++ 1.3/setup/installation/index.html | 2115 +++++++++++ 1.3/setup/overview/index.html | 2135 +++++++++++ 1.3/sitemap.xml | 287 ++ 1.3/sitemap.xml.gz | Bin 0 -> 853 bytes 1.3/snippets/aware_format/index.html | 2974 ++++++++++++++++ 1.3/snippets/database/index.html | 1879 ++++++++++ .../feature_introduction_example/index.html | 1852 ++++++++++ 1.3/snippets/jsonfitbit_format/index.html | 2373 +++++++++++++ 1.3/snippets/parsedfitbit_format/index.html | 2424 +++++++++++++ 1.3/stylesheets/extra.css | 51 + 1.3/team/index.html | 2282 ++++++++++++ .../data-quality-visualizations/index.html | 2036 +++++++++++ .../feature-visualizations/index.html | 1938 ++++++++++ 1.3/workflow-examples/analysis/index.html | 2052 +++++++++++ 1.3/workflow-examples/minimal/index.html | 2047 +++++++++++ latest/404.html | 6 +- latest/change-log/index.html | 6 +- latest/citation/index.html | 6 +- latest/code_of_conduct/index.html | 6 +- latest/common-errors/index.html | 6 +- latest/contributing/index.html | 6 +- .../add-new-data-streams/index.html | 6 +- latest/datastreams/aware-csv/index.html | 6 +- latest/datastreams/aware-influxdb/index.html | 6 +- latest/datastreams/aware-mysql/index.html | 6 +- .../data-streams-introduction/index.html | 6 +- latest/datastreams/empatica-zip/index.html | 6 +- latest/datastreams/fitbitjson-csv/index.html | 6 +- .../datastreams/fitbitjson-mysql/index.html | 6 +- .../datastreams/fitbitparsed-csv/index.html | 6 +- .../datastreams/fitbitparsed-mysql/index.html | 6 +- .../mandatory-empatica-format/index.html | 6 +- .../mandatory-fitbit-format/index.html | 6 +- .../mandatory-phone-format/index.html | 6 +- latest/developers/documentation/index.html | 6 +- latest/developers/git-flow/index.html | 6 +- latest/developers/remote-support/index.html | 6 +- latest/developers/test-cases/index.html | 6 +- latest/developers/testing/index.html | 6 +- .../validation-schema-config/index.html | 6 +- .../virtual-environments/index.html | 6 +- latest/features/add-new-features/index.html | 6 +- .../empatica-accelerometer/index.html | 6 +- .../empatica-blood-volume-pulse/index.html | 6 +- .../index.html | 6 +- latest/features/empatica-heartrate/index.html | 6 +- .../empatica-inter-beat-interval/index.html | 6 +- latest/features/empatica-tags/index.html | 6 +- .../features/empatica-temperature/index.html | 6 +- .../features/feature-introduction/index.html | 6 +- .../fitbit-calories-intraday/index.html | 6 +- latest/features/fitbit-data-yield/index.html | 6 +- .../fitbit-heartrate-intraday/index.html | 6 +- .../fitbit-heartrate-summary/index.html | 6 +- .../features/fitbit-sleep-intraday/index.html | 6 +- .../features/fitbit-sleep-summary/index.html | 6 +- .../features/fitbit-steps-intraday/index.html | 6 +- .../features/fitbit-steps-summary/index.html | 6 +- .../features/phone-accelerometer/index.html | 6 +- .../phone-activity-recognition/index.html | 6 +- .../phone-applications-crashes/index.html | 6 +- .../phone-applications-foreground/index.html | 6 +- .../index.html | 6 +- latest/features/phone-battery/index.html | 6 +- latest/features/phone-bluetooth/index.html | 6 +- latest/features/phone-calls/index.html | 6 +- latest/features/phone-conversation/index.html | 6 +- latest/features/phone-data-yield/index.html | 6 +- latest/features/phone-keyboard/index.html | 6 +- latest/features/phone-light/index.html | 6 +- latest/features/phone-locations/index.html | 6 +- latest/features/phone-log/index.html | 6 +- latest/features/phone-messages/index.html | 6 +- latest/features/phone-screen/index.html | 6 +- .../features/phone-wifi-connected/index.html | 6 +- latest/features/phone-wifi-visible/index.html | 6 +- latest/img/h-data-yield.html | 6 +- ...data-yield-participants-absolute-time.html | 6 +- ...data-yield-participants-relative-time.html | 6 +- latest/img/hm-data-yield-participants.html | 6 +- latest/img/hm-feature-correlations.html | 6 +- latest/img/hm-phone-sensors.html | 6 +- latest/img/hm-sensor-rows.html | 6 +- latest/index.html | 6 +- latest/migrating-from-old-versions/index.html | 6 +- latest/overrides/main.html | 6 +- .../partials/integrations/utterances.html | 6 +- latest/setup/configuration/index.html | 6 +- latest/setup/execution/index.html | 6 +- latest/setup/installation/index.html | 6 +- latest/setup/overview/index.html | 6 +- latest/snippets/aware_format/index.html | 6 +- latest/snippets/database/index.html | 6 +- .../feature_introduction_example/index.html | 6 +- latest/snippets/jsonfitbit_format/index.html | 6 +- .../snippets/parsedfitbit_format/index.html | 6 +- latest/team/index.html | 6 +- .../data-quality-visualizations/index.html | 6 +- .../feature-visualizations/index.html | 6 +- latest/workflow-examples/analysis/index.html | 6 +- latest/workflow-examples/minimal/index.html | 6 +- versions.json | 2 +- 232 files changed, 170362 insertions(+), 259 deletions(-) create mode 100644 1.3/404.html create mode 100644 1.3/CNAME create mode 100644 1.3/assets/images/favicon.png create mode 100644 1.3/assets/javascripts/bundle.0c4ae912.min.js create mode 100644 1.3/assets/javascripts/lunr/min/lunr.ar.min.js create mode 100644 1.3/assets/javascripts/lunr/min/lunr.da.min.js create mode 100644 1.3/assets/javascripts/lunr/min/lunr.de.min.js create mode 100644 1.3/assets/javascripts/lunr/min/lunr.du.min.js create mode 100644 1.3/assets/javascripts/lunr/min/lunr.es.min.js create mode 100644 1.3/assets/javascripts/lunr/min/lunr.fi.min.js create mode 100644 1.3/assets/javascripts/lunr/min/lunr.fr.min.js create mode 100644 1.3/assets/javascripts/lunr/min/lunr.hu.min.js create mode 100644 1.3/assets/javascripts/lunr/min/lunr.it.min.js create mode 100644 1.3/assets/javascripts/lunr/min/lunr.ja.min.js create mode 100644 1.3/assets/javascripts/lunr/min/lunr.jp.min.js create mode 100644 1.3/assets/javascripts/lunr/min/lunr.multi.min.js create mode 100644 1.3/assets/javascripts/lunr/min/lunr.nl.min.js create mode 100644 1.3/assets/javascripts/lunr/min/lunr.no.min.js create mode 100644 1.3/assets/javascripts/lunr/min/lunr.pt.min.js create mode 100644 1.3/assets/javascripts/lunr/min/lunr.ro.min.js create mode 100644 1.3/assets/javascripts/lunr/min/lunr.ru.min.js create mode 100644 1.3/assets/javascripts/lunr/min/lunr.stemmer.support.min.js create mode 100644 1.3/assets/javascripts/lunr/min/lunr.sv.min.js create mode 100644 1.3/assets/javascripts/lunr/min/lunr.tr.min.js create mode 100644 1.3/assets/javascripts/lunr/min/lunr.vi.min.js create mode 100644 1.3/assets/javascripts/lunr/tinyseg.js create mode 100644 1.3/assets/javascripts/workers/search.df8cae7d.min.js create mode 100644 1.3/assets/stylesheets/main.92048cb8.min.css create mode 100644 1.3/assets/stylesheets/palette.73e53a79.min.css create mode 100644 1.3/change-log/index.html create mode 100644 1.3/citation/index.html create mode 100644 1.3/code_of_conduct/index.html create mode 100644 1.3/common-errors/index.html create mode 100644 1.3/contributing/index.html create mode 100644 1.3/datastreams/add-new-data-streams/index.html create mode 100644 1.3/datastreams/aware-csv/index.html create mode 100644 1.3/datastreams/aware-influxdb/index.html create mode 100644 1.3/datastreams/aware-mysql/index.html create mode 100644 1.3/datastreams/data-streams-introduction/index.html create mode 100644 1.3/datastreams/empatica-zip/index.html create mode 100644 1.3/datastreams/fitbitjson-csv/index.html create mode 100644 1.3/datastreams/fitbitjson-mysql/index.html create mode 100644 1.3/datastreams/fitbitparsed-csv/index.html create mode 100644 1.3/datastreams/fitbitparsed-mysql/index.html create mode 100644 1.3/datastreams/mandatory-empatica-format/index.html create mode 100644 1.3/datastreams/mandatory-fitbit-format/index.html create mode 100644 1.3/datastreams/mandatory-phone-format/index.html create mode 100644 1.3/developers/documentation/index.html create mode 100644 1.3/developers/git-flow/index.html create mode 100644 1.3/developers/remote-support/index.html create mode 100644 1.3/developers/test-cases/index.html create mode 100644 1.3/developers/testing/index.html create mode 100644 1.3/developers/validation-schema-config/index.html create mode 100644 1.3/developers/virtual-environments/index.html create mode 100644 1.3/features/add-new-features/index.html create mode 100644 1.3/features/empatica-accelerometer/index.html create mode 100644 1.3/features/empatica-blood-volume-pulse/index.html create mode 100644 1.3/features/empatica-electrodermal-activity/index.html create mode 100644 1.3/features/empatica-heartrate/index.html create mode 100644 1.3/features/empatica-inter-beat-interval/index.html create mode 100644 1.3/features/empatica-tags/index.html create mode 100644 1.3/features/empatica-temperature/index.html create mode 100644 1.3/features/feature-introduction/index.html create mode 100644 1.3/features/fitbit-calories-intraday/index.html create mode 100644 1.3/features/fitbit-data-yield/index.html create mode 100644 1.3/features/fitbit-heartrate-intraday/index.html create mode 100644 1.3/features/fitbit-heartrate-summary/index.html create mode 100644 1.3/features/fitbit-sleep-intraday/index.html create mode 100644 1.3/features/fitbit-sleep-summary/index.html create mode 100644 1.3/features/fitbit-steps-intraday/index.html create mode 100644 1.3/features/fitbit-steps-summary/index.html create mode 100644 1.3/features/phone-accelerometer/index.html create mode 100644 1.3/features/phone-activity-recognition/index.html create mode 100644 1.3/features/phone-applications-crashes/index.html create mode 100644 1.3/features/phone-applications-foreground/index.html create mode 100644 1.3/features/phone-applications-notifications/index.html create mode 100644 1.3/features/phone-battery/index.html create mode 100644 1.3/features/phone-bluetooth/index.html create mode 100644 1.3/features/phone-calls/index.html create mode 100644 1.3/features/phone-conversation/index.html create mode 100644 1.3/features/phone-data-yield/index.html create mode 100644 1.3/features/phone-keyboard/index.html create mode 100644 1.3/features/phone-light/index.html create mode 100644 1.3/features/phone-locations/index.html create mode 100644 1.3/features/phone-log/index.html create mode 100644 1.3/features/phone-messages/index.html create mode 100644 1.3/features/phone-screen/index.html create mode 100644 1.3/features/phone-wifi-connected/index.html create mode 100644 1.3/features/phone-wifi-visible/index.html create mode 100644 1.3/img/analysis_workflow.png create mode 100644 1.3/img/calls.csv create mode 100644 1.3/img/dataflow.png create mode 100644 1.3/img/features_fitbit_sleep_intraday.png create mode 100644 1.3/img/files.png create mode 100644 1.3/img/h-data-yield.html create mode 100644 1.3/img/h-data-yield.png create mode 100644 1.3/img/hm-data-yield-participants-absolute-time.html create mode 100644 1.3/img/hm-data-yield-participants-absolute-time.png create mode 100644 1.3/img/hm-data-yield-participants-relative-time.html create mode 100644 1.3/img/hm-data-yield-participants-relative-time.png create mode 100644 1.3/img/hm-data-yield-participants.html create mode 100644 1.3/img/hm-feature-correlations.html create mode 100644 1.3/img/hm-feature-correlations.png create mode 100644 1.3/img/hm-phone-sensors.html create mode 100644 1.3/img/hm-phone-sensors.png create mode 100644 1.3/img/hm-sensor-rows.html create mode 100644 1.3/img/hm-sensor-rows.png create mode 100644 1.3/img/logo.png create mode 100644 1.3/img/logos/cmu.png create mode 100644 1.3/img/logos/dbdp.png create mode 100644 1.3/img/logos/helsinki.jpg create mode 100644 1.3/img/logos/manchester.png create mode 100644 1.3/img/logos/monash.jpg create mode 100644 1.3/img/logos/oulu.png create mode 100644 1.3/img/logos/penn.png create mode 100644 1.3/img/logos/pitt.png create mode 100644 1.3/img/logos/uw.jpg create mode 100644 1.3/img/logos/virginia.jpg create mode 100644 1.3/img/sleep_intraday_price.png create mode 100644 1.3/img/sleep_intraday_rapids.png create mode 100644 1.3/img/sleep_summary_rapids.png create mode 100644 1.3/img/testing_eventsegments_mtz.png create mode 100644 1.3/index.html create mode 100644 1.3/javascripts/extra.js create mode 100644 1.3/migrating-from-old-versions/index.html create mode 100644 1.3/overrides/main.html create mode 100644 1.3/overrides/partials/integrations/utterances.html create mode 100644 1.3/search/search_index.json create mode 100644 1.3/setup/configuration/index.html create mode 100644 1.3/setup/execution/index.html create mode 100644 1.3/setup/installation/index.html create mode 100644 1.3/setup/overview/index.html create mode 100644 1.3/sitemap.xml create mode 100644 1.3/sitemap.xml.gz create mode 100644 1.3/snippets/aware_format/index.html create mode 100644 1.3/snippets/database/index.html create mode 100644 1.3/snippets/feature_introduction_example/index.html create mode 100644 1.3/snippets/jsonfitbit_format/index.html create mode 100644 1.3/snippets/parsedfitbit_format/index.html create mode 100644 1.3/stylesheets/extra.css create mode 100644 1.3/team/index.html create mode 100644 1.3/visualizations/data-quality-visualizations/index.html create mode 100644 1.3/visualizations/feature-visualizations/index.html create mode 100644 1.3/workflow-examples/analysis/index.html create mode 100644 1.3/workflow-examples/minimal/index.html diff --git a/1.3/404.html b/1.3/404.html new file mode 100644 index 00000000..612948c5 --- /dev/null +++ b/1.3/404.html @@ -0,0 +1,1765 @@ + + + + + + + + + + + + + + + + + + + + RAPIDS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+ +

404 - Not found

+ + +
+ +
+
+ +
+ + + + +
+
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/1.3/CNAME b/1.3/CNAME new file mode 100644 index 00000000..17ba96bf --- /dev/null +++ b/1.3/CNAME @@ -0,0 +1 @@ +www.rapids.science \ No newline at end of file diff --git a/1.3/assets/images/favicon.png b/1.3/assets/images/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..1cf13b9f9d978896599290a74f77d5dbe7d1655c GIT binary patch literal 1870 zcmV-U2eJ5xP)Gc)JR9QMau)O=X#!i9;T z37kk-upj^(fsR36MHs_+1RCI)NNu9}lD0S{B^g8PN?Ww(5|~L#Ng*g{WsqleV}|#l zz8@ri&cTzw_h33bHI+12+kK6WN$h#n5cD8OQt`5kw6p~9H3()bUQ8OS4Q4HTQ=1Ol z_JAocz`fLbT2^{`8n~UAo=#AUOf=SOq4pYkt;XbC&f#7lb$*7=$na!mWCQ`dBQsO0 zLFBSPj*N?#u5&pf2t4XjEGH|=pPQ8xh7tpx;US5Cx_Ju;!O`ya-yF`)b%TEt5>eP1ZX~}sjjA%FJF?h7cX8=b!DZl<6%Cv z*G0uvvU+vmnpLZ2paivG-(cd*y3$hCIcsZcYOGh{$&)A6*XX&kXZd3G8m)G$Zz-LV z^GF3VAW^Mdv!)4OM8EgqRiz~*Cji;uzl2uC9^=8I84vNp;ltJ|q-*uQwGp2ma6cY7 z;`%`!9UXO@fr&Ebapfs34OmS9^u6$)bJxrucutf>`dKPKT%%*d3XlFVKunp9 zasduxjrjs>f8V=D|J=XNZp;_Zy^WgQ$9WDjgY=z@stwiEBm9u5*|34&1Na8BMjjgf3+SHcr`5~>oz1Y?SW^=K z^bTyO6>Gar#P_W2gEMwq)ot3; zREHn~U&Dp0l6YT0&k-wLwYjb?5zGK`W6S2v+K>AM(95m2C20L|3m~rN8dprPr@t)5lsk9Hu*W z?pS990s;Ez=+Rj{x7p``4>+c0G5^pYnB1^!TL=(?HLHZ+HicG{~4F1d^5Awl_2!1jICM-!9eoLhbbT^;yHcefyTAaqRcY zmuctDopPT!%k+}x%lZRKnzykr2}}XfG_ne?nRQO~?%hkzo;@RN{P6o`&mMUWBYMTe z6i8ChtjX&gXl`nvrU>jah)2iNM%JdjqoaeaU%yVn!^70x-flljp6Q5tK}5}&X8&&G zX3fpb3E(!rH=zVI_9Gjl45w@{(ITqngWFe7@9{mX;tO25Z_8 zQHEpI+FkTU#4xu>RkN>b3Tnc3UpWzPXWm#o55GKF09j^Mh~)K7{QqbO_~(@CVq! zS<8954|P8mXN2MRs86xZ&Q4EfM@JB94b=(YGuk)s&^jiSF=t3*oNK3`rD{H`yQ?d; ztE=laAUoZx5?RC8*WKOj`%LXEkgDd>&^Q4M^z`%u0rg-It=hLCVsq!Z%^6eB-OvOT zFZ28TN&cRmgU}Elrnk43)!>Z1FCPL2K$7}gwzIc48NX}#!A1BpJP?#v5wkNprhV** z?Cpalt1oH&{r!o3eSKc&ap)iz2BTn_VV`4>9M^b3;(YY}4>#ML6{~(4mH+?%07*qo IM6N<$f(jP3KmY&$ literal 0 HcmV?d00001 diff --git a/1.3/assets/javascripts/bundle.0c4ae912.min.js b/1.3/assets/javascripts/bundle.0c4ae912.min.js new file mode 100644 index 00000000..f96c24c9 --- /dev/null +++ b/1.3/assets/javascripts/bundle.0c4ae912.min.js @@ -0,0 +1,108 @@ +(()=>{var oa=Object.create,St=Object.defineProperty;var na=Object.getOwnPropertyDescriptor;var ia=Object.getOwnPropertyNames,wt=Object.getOwnPropertySymbols,aa=Object.getPrototypeOf,ar=Object.prototype.hasOwnProperty,Kr=Object.prototype.propertyIsEnumerable;var Br=(e,t,r)=>t in e?St(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,R=(e,t)=>{for(var r in t||(t={}))ar.call(t,r)&&Br(e,r,t[r]);if(wt)for(var r of wt(t))Kr.call(t,r)&&Br(e,r,t[r]);return e};var sa=e=>St(e,"__esModule",{value:!0});var Yr=(e,t)=>{var r={};for(var o in e)ar.call(e,o)&&t.indexOf(o)<0&&(r[o]=e[o]);if(e!=null&&wt)for(var o of wt(e))t.indexOf(o)<0&&Kr.call(e,o)&&(r[o]=e[o]);return r};var Et=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var ca=(e,t,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of ia(t))!ar.call(e,o)&&o!=="default"&&St(e,o,{get:()=>t[o],enumerable:!(r=na(t,o))||r.enumerable});return e},ct=e=>ca(sa(St(e!=null?oa(aa(e)):{},"default",e&&e.__esModule&&"default"in e?{get:()=>e.default,enumerable:!0}:{value:e,enumerable:!0})),e);var Jr=Et((sr,Gr)=>{(function(e,t){typeof sr=="object"&&typeof Gr!="undefined"?t():typeof define=="function"&&define.amd?define(t):t()})(sr,function(){"use strict";function e(r){var o=!0,n=!1,i=null,a={text:!0,search:!0,url:!0,tel:!0,email:!0,password:!0,number:!0,date:!0,month:!0,week:!0,time:!0,datetime:!0,"datetime-local":!0};function s(T){return!!(T&&T!==document&&T.nodeName!=="HTML"&&T.nodeName!=="BODY"&&"classList"in T&&"contains"in T.classList)}function c(T){var De=T.type,_e=T.tagName;return!!(_e==="INPUT"&&a[De]&&!T.readOnly||_e==="TEXTAREA"&&!T.readOnly||T.isContentEditable)}function l(T){T.classList.contains("focus-visible")||(T.classList.add("focus-visible"),T.setAttribute("data-focus-visible-added",""))}function p(T){!T.hasAttribute("data-focus-visible-added")||(T.classList.remove("focus-visible"),T.removeAttribute("data-focus-visible-added"))}function m(T){T.metaKey||T.altKey||T.ctrlKey||(s(r.activeElement)&&l(r.activeElement),o=!0)}function f(T){o=!1}function d(T){!s(T.target)||(o||c(T.target))&&l(T.target)}function v(T){!s(T.target)||(T.target.classList.contains("focus-visible")||T.target.hasAttribute("data-focus-visible-added"))&&(n=!0,window.clearTimeout(i),i=window.setTimeout(function(){n=!1},100),p(T.target))}function h(T){document.visibilityState==="hidden"&&(n&&(o=!0),U())}function U(){document.addEventListener("mousemove",P),document.addEventListener("mousedown",P),document.addEventListener("mouseup",P),document.addEventListener("pointermove",P),document.addEventListener("pointerdown",P),document.addEventListener("pointerup",P),document.addEventListener("touchmove",P),document.addEventListener("touchstart",P),document.addEventListener("touchend",P)}function Y(){document.removeEventListener("mousemove",P),document.removeEventListener("mousedown",P),document.removeEventListener("mouseup",P),document.removeEventListener("pointermove",P),document.removeEventListener("pointerdown",P),document.removeEventListener("pointerup",P),document.removeEventListener("touchmove",P),document.removeEventListener("touchstart",P),document.removeEventListener("touchend",P)}function P(T){T.target.nodeName&&T.target.nodeName.toLowerCase()==="html"||(o=!1,Y())}document.addEventListener("keydown",m,!0),document.addEventListener("mousedown",f,!0),document.addEventListener("pointerdown",f,!0),document.addEventListener("touchstart",f,!0),document.addEventListener("visibilitychange",h,!0),U(),r.addEventListener("focus",d,!0),r.addEventListener("blur",v,!0),r.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&r.host?r.host.setAttribute("data-js-focus-visible",""):r.nodeType===Node.DOCUMENT_NODE&&(document.documentElement.classList.add("js-focus-visible"),document.documentElement.setAttribute("data-js-focus-visible",""))}if(typeof window!="undefined"&&typeof document!="undefined"){window.applyFocusVisiblePolyfill=e;var t;try{t=new CustomEvent("focus-visible-polyfill-ready")}catch(r){t=document.createEvent("CustomEvent"),t.initCustomEvent("focus-visible-polyfill-ready",!1,!1,{})}window.dispatchEvent(t)}typeof document!="undefined"&&e(document)})});var xo=Et((hs,_t)=>{var Xr,Zr,eo,to,ro,oo,no,io,ao,Tt,cr,so,co,lo,Be,po,uo,fo,mo,ho,bo,vo,go,Ot;(function(e){var t=typeof global=="object"?global:typeof self=="object"?self:typeof this=="object"?this:{};typeof define=="function"&&define.amd?define("tslib",["exports"],function(o){e(r(t,r(o)))}):typeof _t=="object"&&typeof _t.exports=="object"?e(r(t,r(_t.exports))):e(r(t));function r(o,n){return o!==t&&(typeof Object.create=="function"?Object.defineProperty(o,"__esModule",{value:!0}):o.__esModule=!0),function(i,a){return o[i]=n?n(i,a):a}}})(function(e){var t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(o,n){o.__proto__=n}||function(o,n){for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(o[i]=n[i])};Xr=function(o,n){if(typeof n!="function"&&n!==null)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");t(o,n);function i(){this.constructor=o}o.prototype=n===null?Object.create(n):(i.prototype=n.prototype,new i)},Zr=Object.assign||function(o){for(var n,i=1,a=arguments.length;i=0;p--)(l=o[p])&&(c=(s<3?l(c):s>3?l(n,i,c):l(n,i))||c);return s>3&&c&&Object.defineProperty(n,i,c),c},ro=function(o,n){return function(i,a){n(i,a,o)}},oo=function(o,n){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(o,n)},no=function(o,n,i,a){function s(c){return c instanceof i?c:new i(function(l){l(c)})}return new(i||(i=Promise))(function(c,l){function p(d){try{f(a.next(d))}catch(v){l(v)}}function m(d){try{f(a.throw(d))}catch(v){l(v)}}function f(d){d.done?c(d.value):s(d.value).then(p,m)}f((a=a.apply(o,n||[])).next())})},io=function(o,n){var i={label:0,sent:function(){if(c[0]&1)throw c[1];return c[1]},trys:[],ops:[]},a,s,c,l;return l={next:p(0),throw:p(1),return:p(2)},typeof Symbol=="function"&&(l[Symbol.iterator]=function(){return this}),l;function p(f){return function(d){return m([f,d])}}function m(f){if(a)throw new TypeError("Generator is already executing.");for(;i;)try{if(a=1,s&&(c=f[0]&2?s.return:f[0]?s.throw||((c=s.return)&&c.call(s),0):s.next)&&!(c=c.call(s,f[1])).done)return c;switch(s=0,c&&(f=[f[0]&2,c.value]),f[0]){case 0:case 1:c=f;break;case 4:return i.label++,{value:f[1],done:!1};case 5:i.label++,s=f[1],f=[0];continue;case 7:f=i.ops.pop(),i.trys.pop();continue;default:if(c=i.trys,!(c=c.length>0&&c[c.length-1])&&(f[0]===6||f[0]===2)){i=0;continue}if(f[0]===3&&(!c||f[1]>c[0]&&f[1]=o.length&&(o=void 0),{value:o&&o[a++],done:!o}}};throw new TypeError(n?"Object is not iterable.":"Symbol.iterator is not defined.")},cr=function(o,n){var i=typeof Symbol=="function"&&o[Symbol.iterator];if(!i)return o;var a=i.call(o),s,c=[],l;try{for(;(n===void 0||n-- >0)&&!(s=a.next()).done;)c.push(s.value)}catch(p){l={error:p}}finally{try{s&&!s.done&&(i=a.return)&&i.call(a)}finally{if(l)throw l.error}}return c},so=function(){for(var o=[],n=0;n1||p(h,U)})})}function p(h,U){try{m(a[h](U))}catch(Y){v(c[0][3],Y)}}function m(h){h.value instanceof Be?Promise.resolve(h.value.v).then(f,d):v(c[0][2],h)}function f(h){p("next",h)}function d(h){p("throw",h)}function v(h,U){h(U),c.shift(),c.length&&p(c[0][0],c[0][1])}},uo=function(o){var n,i;return n={},a("next"),a("throw",function(s){throw s}),a("return"),n[Symbol.iterator]=function(){return this},n;function a(s,c){n[s]=o[s]?function(l){return(i=!i)?{value:Be(o[s](l)),done:s==="return"}:c?c(l):l}:c}},fo=function(o){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var n=o[Symbol.asyncIterator],i;return n?n.call(o):(o=typeof Tt=="function"?Tt(o):o[Symbol.iterator](),i={},a("next"),a("throw"),a("return"),i[Symbol.asyncIterator]=function(){return this},i);function a(c){i[c]=o[c]&&function(l){return new Promise(function(p,m){l=o[c](l),s(p,m,l.done,l.value)})}}function s(c,l,p,m){Promise.resolve(m).then(function(f){c({value:f,done:p})},l)}},mo=function(o,n){return Object.defineProperty?Object.defineProperty(o,"raw",{value:n}):o.raw=n,o};var r=Object.create?function(o,n){Object.defineProperty(o,"default",{enumerable:!0,value:n})}:function(o,n){o.default=n};ho=function(o){if(o&&o.__esModule)return o;var n={};if(o!=null)for(var i in o)i!=="default"&&Object.prototype.hasOwnProperty.call(o,i)&&Ot(n,o,i);return r(n,o),n},bo=function(o){return o&&o.__esModule?o:{default:o}},vo=function(o,n){if(!n.has(o))throw new TypeError("attempted to get private field on non-instance");return n.get(o)},go=function(o,n,i){if(!n.has(o))throw new TypeError("attempted to set private field on non-instance");return n.set(o,i),i},e("__extends",Xr),e("__assign",Zr),e("__rest",eo),e("__decorate",to),e("__param",ro),e("__metadata",oo),e("__awaiter",no),e("__generator",io),e("__exportStar",ao),e("__createBinding",Ot),e("__values",Tt),e("__read",cr),e("__spread",so),e("__spreadArrays",co),e("__spreadArray",lo),e("__await",Be),e("__asyncGenerator",po),e("__asyncDelegator",uo),e("__asyncValues",fo),e("__makeTemplateObject",mo),e("__importStar",ho),e("__importDefault",bo),e("__classPrivateFieldGet",vo),e("__classPrivateFieldSet",go)})});var Fr=Et((xt,Rr)=>{(function(t,r){typeof xt=="object"&&typeof Rr=="object"?Rr.exports=r():typeof define=="function"&&define.amd?define([],r):typeof xt=="object"?xt.ClipboardJS=r():t.ClipboardJS=r()})(xt,function(){return function(){var e={134:function(o,n,i){"use strict";i.d(n,{default:function(){return ta}});var a=i(279),s=i.n(a),c=i(370),l=i.n(c),p=i(817),m=i.n(p);function f(A){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?f=function(b){return typeof b}:f=function(b){return b&&typeof Symbol=="function"&&b.constructor===Symbol&&b!==Symbol.prototype?"symbol":typeof b},f(A)}function d(A,g){if(!(A instanceof g))throw new TypeError("Cannot call a class as a function")}function v(A,g){for(var b=0;b0&&arguments[0]!==void 0?arguments[0]:{};this.action=b.action,this.container=b.container,this.emitter=b.emitter,this.target=b.target,this.text=b.text,this.trigger=b.trigger,this.selectedText=""}},{key:"initSelection",value:function(){this.text?this.selectFake():this.target&&this.selectTarget()}},{key:"createFakeElement",value:function(){var b=document.documentElement.getAttribute("dir")==="rtl";this.fakeElem=document.createElement("textarea"),this.fakeElem.style.fontSize="12pt",this.fakeElem.style.border="0",this.fakeElem.style.padding="0",this.fakeElem.style.margin="0",this.fakeElem.style.position="absolute",this.fakeElem.style[b?"right":"left"]="-9999px";var C=window.pageYOffset||document.documentElement.scrollTop;return this.fakeElem.style.top="".concat(C,"px"),this.fakeElem.setAttribute("readonly",""),this.fakeElem.value=this.text,this.fakeElem}},{key:"selectFake",value:function(){var b=this,C=this.createFakeElement();this.fakeHandlerCallback=function(){return b.removeFake()},this.fakeHandler=this.container.addEventListener("click",this.fakeHandlerCallback)||!0,this.container.appendChild(C),this.selectedText=m()(C),this.copyText(),this.removeFake()}},{key:"removeFake",value:function(){this.fakeHandler&&(this.container.removeEventListener("click",this.fakeHandlerCallback),this.fakeHandler=null,this.fakeHandlerCallback=null),this.fakeElem&&(this.container.removeChild(this.fakeElem),this.fakeElem=null)}},{key:"selectTarget",value:function(){this.selectedText=m()(this.target),this.copyText()}},{key:"copyText",value:function(){var b;try{b=document.execCommand(this.action)}catch(C){b=!1}this.handleResult(b)}},{key:"handleResult",value:function(b){this.emitter.emit(b?"success":"error",{action:this.action,text:this.selectedText,trigger:this.trigger,clearSelection:this.clearSelection.bind(this)})}},{key:"clearSelection",value:function(){this.trigger&&this.trigger.focus(),document.activeElement.blur(),window.getSelection().removeAllRanges()}},{key:"destroy",value:function(){this.removeFake()}},{key:"action",set:function(){var b=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"copy";if(this._action=b,this._action!=="copy"&&this._action!=="cut")throw new Error('Invalid "action" value, use either "copy" or "cut"')},get:function(){return this._action}},{key:"target",set:function(b){if(b!==void 0)if(b&&f(b)==="object"&&b.nodeType===1){if(this.action==="copy"&&b.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if(this.action==="cut"&&(b.hasAttribute("readonly")||b.hasAttribute("disabled")))throw new Error(`Invalid "target" attribute. You can't cut text from elements with "readonly" or "disabled" attributes`);this._target=b}else throw new Error('Invalid "target" value, use a valid Element')},get:function(){return this._target}}]),A}(),Y=U;function P(A){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?P=function(b){return typeof b}:P=function(b){return b&&typeof Symbol=="function"&&b.constructor===Symbol&&b!==Symbol.prototype?"symbol":typeof b},P(A)}function T(A,g){if(!(A instanceof g))throw new TypeError("Cannot call a class as a function")}function De(A,g){for(var b=0;b0&&arguments[0]!==void 0?arguments[0]:{};this.action=typeof W.action=="function"?W.action:this.defaultAction,this.target=typeof W.target=="function"?W.target:this.defaultTarget,this.text=typeof W.text=="function"?W.text:this.defaultText,this.container=P(W.container)==="object"?W.container:document.body}},{key:"listenClick",value:function(W){var re=this;this.listener=l()(W,"click",function(st){return re.onClick(st)})}},{key:"onClick",value:function(W){var re=W.delegateTarget||W.currentTarget;this.clipboardAction&&(this.clipboardAction=null),this.clipboardAction=new Y({action:this.action(re),target:this.target(re),text:this.text(re),container:this.container,trigger:re,emitter:this})}},{key:"defaultAction",value:function(W){return ir("action",W)}},{key:"defaultTarget",value:function(W){var re=ir("target",W);if(re)return document.querySelector(re)}},{key:"defaultText",value:function(W){return ir("text",W)}},{key:"destroy",value:function(){this.listener.destroy(),this.clipboardAction&&(this.clipboardAction.destroy(),this.clipboardAction=null)}}],[{key:"isSupported",value:function(){var W=arguments.length>0&&arguments[0]!==void 0?arguments[0]:["copy","cut"],re=typeof W=="string"?[W]:W,st=!!document.queryCommandSupported;return re.forEach(function(ra){st=st&&!!document.queryCommandSupported(ra)}),st}}]),b}(s()),ta=ea},828:function(o){var n=9;if(typeof Element!="undefined"&&!Element.prototype.matches){var i=Element.prototype;i.matches=i.matchesSelector||i.mozMatchesSelector||i.msMatchesSelector||i.oMatchesSelector||i.webkitMatchesSelector}function a(s,c){for(;s&&s.nodeType!==n;){if(typeof s.matches=="function"&&s.matches(c))return s;s=s.parentNode}}o.exports=a},438:function(o,n,i){var a=i(828);function s(p,m,f,d,v){var h=l.apply(this,arguments);return p.addEventListener(f,h,v),{destroy:function(){p.removeEventListener(f,h,v)}}}function c(p,m,f,d,v){return typeof p.addEventListener=="function"?s.apply(null,arguments):typeof f=="function"?s.bind(null,document).apply(null,arguments):(typeof p=="string"&&(p=document.querySelectorAll(p)),Array.prototype.map.call(p,function(h){return s(h,m,f,d,v)}))}function l(p,m,f,d){return function(v){v.delegateTarget=a(v.target,m),v.delegateTarget&&d.call(p,v)}}o.exports=c},879:function(o,n){n.node=function(i){return i!==void 0&&i instanceof HTMLElement&&i.nodeType===1},n.nodeList=function(i){var a=Object.prototype.toString.call(i);return i!==void 0&&(a==="[object NodeList]"||a==="[object HTMLCollection]")&&"length"in i&&(i.length===0||n.node(i[0]))},n.string=function(i){return typeof i=="string"||i instanceof String},n.fn=function(i){var a=Object.prototype.toString.call(i);return a==="[object Function]"}},370:function(o,n,i){var a=i(879),s=i(438);function c(f,d,v){if(!f&&!d&&!v)throw new Error("Missing required arguments");if(!a.string(d))throw new TypeError("Second argument must be a String");if(!a.fn(v))throw new TypeError("Third argument must be a Function");if(a.node(f))return l(f,d,v);if(a.nodeList(f))return p(f,d,v);if(a.string(f))return m(f,d,v);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList")}function l(f,d,v){return f.addEventListener(d,v),{destroy:function(){f.removeEventListener(d,v)}}}function p(f,d,v){return Array.prototype.forEach.call(f,function(h){h.addEventListener(d,v)}),{destroy:function(){Array.prototype.forEach.call(f,function(h){h.removeEventListener(d,v)})}}}function m(f,d,v){return s(document.body,f,d,v)}o.exports=c},817:function(o){function n(i){var a;if(i.nodeName==="SELECT")i.focus(),a=i.value;else if(i.nodeName==="INPUT"||i.nodeName==="TEXTAREA"){var s=i.hasAttribute("readonly");s||i.setAttribute("readonly",""),i.select(),i.setSelectionRange(0,i.value.length),s||i.removeAttribute("readonly"),a=i.value}else{i.hasAttribute("contenteditable")&&i.focus();var c=window.getSelection(),l=document.createRange();l.selectNodeContents(i),c.removeAllRanges(),c.addRange(l),a=c.toString()}return a}o.exports=n},279:function(o){function n(){}n.prototype={on:function(i,a,s){var c=this.e||(this.e={});return(c[i]||(c[i]=[])).push({fn:a,ctx:s}),this},once:function(i,a,s){var c=this;function l(){c.off(i,l),a.apply(s,arguments)}return l._=a,this.on(i,l,s)},emit:function(i){var a=[].slice.call(arguments,1),s=((this.e||(this.e={}))[i]||[]).slice(),c=0,l=s.length;for(c;c{"use strict";var Za=/["'&<>]/;wi.exports=es;function es(e){var t=""+e,r=Za.exec(t);if(!r)return t;var o,n="",i=0,a=0;for(i=r.index;i0},enumerable:!1,configurable:!0}),t.prototype._trySubscribe=function(r){return this._throwIfClosed(),e.prototype._trySubscribe.call(this,r)},t.prototype._subscribe=function(r){return this._throwIfClosed(),this._checkFinalizedStatuses(r),this._innerSubscribe(r)},t.prototype._innerSubscribe=function(r){var o=this,n=o.hasError,i=o.isStopped,a=o.observers;return n||i?lr:(a.push(r),new le(function(){return Me(a,r)}))},t.prototype._checkFinalizedStatuses=function(r){var o=this,n=o.hasError,i=o.thrownError,a=o.isStopped;n?r.error(i):a&&r.complete()},t.prototype.asObservable=function(){var r=new k;return r.source=this,r},t.create=function(r,o){return new Ho(r,o)},t}(k);var Ho=function(e){X(t,e);function t(r,o){var n=e.call(this)||this;return n.destination=r,n.source=o,n}return t.prototype.next=function(r){var o,n;(n=(o=this.destination)===null||o===void 0?void 0:o.next)===null||n===void 0||n.call(o,r)},t.prototype.error=function(r){var o,n;(n=(o=this.destination)===null||o===void 0?void 0:o.error)===null||n===void 0||n.call(o,r)},t.prototype.complete=function(){var r,o;(o=(r=this.destination)===null||r===void 0?void 0:r.complete)===null||o===void 0||o.call(r)},t.prototype._subscribe=function(r){var o,n;return(n=(o=this.source)===null||o===void 0?void 0:o.subscribe(r))!==null&&n!==void 0?n:lr},t}(O);var ut={now:function(){return(ut.delegate||Date).now()},delegate:void 0};var ft=function(e){X(t,e);function t(r,o,n){r===void 0&&(r=Infinity),o===void 0&&(o=Infinity),n===void 0&&(n=ut);var i=e.call(this)||this;return i._bufferSize=r,i._windowTime=o,i._timestampProvider=n,i._buffer=[],i._infiniteTimeWindow=!0,i._infiniteTimeWindow=o===Infinity,i._bufferSize=Math.max(1,r),i._windowTime=Math.max(1,o),i}return t.prototype.next=function(r){var o=this,n=o.isStopped,i=o._buffer,a=o._infiniteTimeWindow,s=o._timestampProvider,c=o._windowTime;n||(i.push(r),!a&&i.push(s.now()+c)),this._trimBuffer(),e.prototype.next.call(this,r)},t.prototype._subscribe=function(r){this._throwIfClosed(),this._trimBuffer();for(var o=this._innerSubscribe(r),n=this,i=n._infiniteTimeWindow,a=n._buffer,s=a.slice(),c=0;c0?e.prototype.requestAsyncId.call(this,r,o,n):(r.actions.push(this),r._scheduled||(r._scheduled=Ge.requestAnimationFrame(function(){return r.flush(void 0)})))},t.prototype.recycleAsyncId=function(r,o,n){if(n===void 0&&(n=0),n!=null&&n>0||n==null&&this.delay>0)return e.prototype.recycleAsyncId.call(this,r,o,n);r.actions.length===0&&(Ge.cancelAnimationFrame(o),r._scheduled=void 0)},t}(jt);var Fo=function(e){X(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.flush=function(r){this._active=!0,this._scheduled=void 0;var o=this.actions,n,i=-1;r=r||o.shift();var a=o.length;do if(n=r.execute(r.state,r.delay))break;while(++i=2,!0))}function se(e){e===void 0&&(e={});var t=e.connector,r=t===void 0?function(){return new O}:t,o=e.resetOnError,n=o===void 0?!0:o,i=e.resetOnComplete,a=i===void 0?!0:i,s=e.resetOnRefCountZero,c=s===void 0?!0:s;return function(l){var p=null,m=null,f=null,d=0,v=!1,h=!1,U=function(){m==null||m.unsubscribe(),m=null},Y=function(){U(),p=f=null,v=h=!1},P=function(){var T=p;Y(),T==null||T.unsubscribe()};return x(function(T,De){d++,!h&&!v&&U();var _e=f=f!=null?f:r();De.add(function(){d--,d===0&&!h&&!v&&(m=_r(P,c))}),_e.subscribe(De),p||(p=new pt({next:function(Ke){return _e.next(Ke)},error:function(Ke){h=!0,U(),m=_r(Y,n,Ke),_e.error(Ke)},complete:function(){v=!0,U(),m=_r(Y,a),_e.complete()}}),we(T).subscribe(p))})(l)}}function _r(e,t){for(var r=[],o=2;ot==="focus"),N(e===Ne()))}var on=new O,Fa=de(()=>M(new ResizeObserver(e=>{for(let t of e)on.next(t)}))).pipe(S(e=>J.pipe(N(e)).pipe(j(()=>e.disconnect()))),ee(1));function Se(e){return{width:e.offsetWidth,height:e.offsetHeight}}function vt(e){return{width:e.scrollWidth,height:e.scrollHeight}}function nn(e){let t=e.parentElement;for(;t&&t!==e.offsetParent;){let r=Se(t);if(vt(t).height>r.height)return t;t=t.parentElement}}function Ve(e){return Fa.pipe(_(t=>t.observe(e)),S(t=>on.pipe(L(({target:r})=>r===e),j(()=>t.unobserve(e)),u(()=>Se(e)))),N(Se(e)))}function an(e){return{x:e.scrollLeft,y:e.scrollTop}}function Ia(e){return V(y(e,"scroll"),y(window,"resize")).pipe(u(()=>an(e)),N(an(e)))}function sn(e,t=16){return Ia(e).pipe(u(({y:r})=>{let o=Se(e),n=vt(e);return r>=n.height-o.height-t}),q())}function cn(e){if(e instanceof HTMLInputElement)e.select();else throw new Error("Not implemented")}var Bt={drawer:ae("[data-md-toggle=drawer]"),search:ae("[data-md-toggle=search]")};function ln(e){return Bt[e].checked}function Ue(e,t){Bt[e].checked!==t&&Bt[e].click()}function Yt(e){let t=Bt[e];return y(t,"change").pipe(u(()=>t.checked),N(t.checked))}function Pa(e){switch(e.tagName){case"INPUT":case"SELECT":case"TEXTAREA":return!0;default:return e.isContentEditable}}function pn(){return y(window,"keydown").pipe(L(e=>!(e.metaKey||e.ctrlKey)),u(e=>({mode:ln("search")?"search":"global",type:e.key,claim(){e.preventDefault(),e.stopPropagation()}})),L(({mode:e})=>{if(e==="global"){let t=Ne();if(typeof t!="undefined")return!Pa(t)}return!0}),se())}function ve(){return new URL(location.href)}function Gt(e){location.href=e.href}function un(){return new O}function fn(){return location.hash.substring(1)}function mn(e){let t=We("a");t.href=e,t.addEventListener("click",r=>r.stopPropagation()),t.click()}function $a(){return y(window,"hashchange").pipe(u(fn),N(fn()),L(e=>e.length>0),se())}function dn(){return $a().pipe(S(e=>M(pe(`[id="${e}"]`))))}function gt(e){let t=matchMedia(e);return Qt(r=>t.addListener(()=>r(t.matches))).pipe(N(t.matches))}function hn(){return y(window,"beforeprint").pipe(B(void 0))}function Hr(e,t){return e.pipe(S(r=>r?t():J))}function Jt(e,t={credentials:"same-origin"}){return we(fetch(`${e}`,t)).pipe(L(r=>r.status===200))}function Te(e,t){return Jt(e,t).pipe(S(r=>r.json()),ee(1))}function bn(e,t){let r=new DOMParser;return Jt(e,t).pipe(S(o=>o.text()),u(o=>r.parseFromString(o,"text/xml")),ee(1))}function vn(e){let t=We("script");return t.src=e,de(()=>(document.head.appendChild(t),V(y(t,"load"),y(t,"error").pipe(S(()=>gr(()=>new ReferenceError(`Invalid script: ${e}`))))).pipe(B(void 0),j(()=>document.head.removeChild(t)),oe(1))))}function gn(){return{x:Math.max(0,pageXOffset),y:Math.max(0,pageYOffset)}}function jr({x:e,y:t}){window.scrollTo(e||0,t||0)}function xn(){return V(y(window,"scroll",{passive:!0}),y(window,"resize",{passive:!0})).pipe(u(gn),N(gn()))}function yn(){return{width:innerWidth,height:innerHeight}}function Sn(){return y(window,"resize",{passive:!0}).pipe(u(yn),N(yn()))}function wn(){return z([xn(),Sn()]).pipe(u(([e,t])=>({offset:e,size:t})),ee(1))}function Xt(e,{viewport$:t,header$:r}){let o=t.pipe(D("size")),n=z([o,r]).pipe(u(()=>({x:e.offsetLeft,y:e.offsetTop})));return z([r,t,n]).pipe(u(([{height:i},{offset:a,size:s},{x:c,y:l}])=>({offset:{x:a.x-c,y:a.y-l+i},size:s})))}function En(e,{tx$:t}){let r=y(e,"message").pipe(u(({data:o})=>o));return t.pipe(kr(()=>r,{leading:!0,trailing:!0}),_(o=>e.postMessage(o)),Lr(r),se())}var Wa=ae("#__config"),ot=JSON.parse(Wa.textContent);ot.base=new URL(ot.base,ve()).toString().replace(/\/$/,"");function ue(){return ot}function ce(e){return ot.features.includes(e)}function te(e,t){return typeof t!="undefined"?ot.translations[e].replace("#",t.toString()):ot.translations[e]}function Oe(e,t=document){return ae(`[data-md-component=${e}]`,t)}function ne(e,t=document){return I(`[data-md-component=${e}]`,t)}var ai=ct(Fr());function Tn(e,t=0){e.setAttribute("tabindex",t.toString())}function On(e){e.removeAttribute("tabindex")}function _n(e,t){e.setAttribute("data-md-state","lock"),e.style.top=`-${t}px`}function Mn(e){let t=-1*parseInt(e.style.top,10);e.removeAttribute("data-md-state"),e.style.top="",t&&window.scrollTo(0,t)}function Ln(e,t){e.setAttribute("data-md-state",t)}function An(e){e.removeAttribute("data-md-state")}function kn(e,t){e.classList.toggle("md-nav__link--active",t)}function Cn(e){e.classList.remove("md-nav__link--active")}function Hn(e,t){e.firstElementChild.innerHTML=t}function jn(e,t){e.setAttribute("data-md-state",t)}function Rn(e){e.removeAttribute("data-md-state")}function Fn(e,t){e.setAttribute("data-md-state",t)}function In(e){e.removeAttribute("data-md-state")}function Pn(e,t){e.setAttribute("data-md-state",t)}function $n(e){e.removeAttribute("data-md-state")}function Wn(e,t){e.placeholder=t}function Vn(e){e.placeholder=te("search.placeholder")}function Un(e,t){if(typeof t=="string"||typeof t=="number")e.innerHTML+=t.toString();else if(t instanceof Node)e.appendChild(t);else if(Array.isArray(t))for(let r of t)Un(e,r)}function $(e,t,...r){let o=document.createElement(e);if(t)for(let n of Object.keys(t))typeof t[n]!="boolean"?o.setAttribute(n,t[n]):t[n]&&o.setAttribute(n,"");for(let n of r)Un(o,n);return o}function Dn(e,t){let r=t;if(e.length>r){for(;e[r]!==" "&&--r>0;);return`${e.substring(0,r)}...`}return e}function Zt(e){if(e>999){let t=+((e-950)%1e3>99);return`${((e+1e-6)/1e3).toFixed(t)}k`}else return e.toString()}function Nn(e,t){switch(t){case 0:e.textContent=te("search.result.none");break;case 1:e.textContent=te("search.result.one");break;default:e.textContent=te("search.result.other",Zt(t))}}function Ir(e){e.textContent=te("search.result.placeholder")}function zn(e,t){e.appendChild(t)}function qn(e){e.innerHTML=""}function Qn(e,t){e.style.top=`${t}px`}function Kn(e){e.style.top=""}function Bn(e,t){let r=e.firstElementChild;r.style.height=`${t-2*r.offsetTop}px`}function Yn(e){let t=e.firstElementChild;t.style.height=""}function Gn(e,t){e.lastElementChild.appendChild(t)}function Jn(e,t){e.lastElementChild.setAttribute("data-md-state",t)}function Xn(e,t){e.setAttribute("data-md-state",t)}function Pr(e){e.removeAttribute("data-md-state")}function Zn(e,t){e.setAttribute("data-md-state",t)}function $r(e){e.removeAttribute("data-md-state")}function ei(e){return $("button",{class:"md-clipboard md-icon",title:te("clipboard.copy"),"data-clipboard-target":`#${e} > code`})}function ti(e,t){return $("aside",{class:"md-annotation",tabIndex:0},$("div",{class:"md-tooltip"},$("div",{class:"md-tooltip__inner md-typeset"},Array.from(t.childNodes))),$("span",{class:"md-annotation__index"},e))}var qe;(function(r){r[r.TEASER=1]="TEASER",r[r.PARENT=2]="PARENT"})(qe||(qe={}));function Wr(e,t){let r=t&2,o=t&1,n=Object.keys(e.terms).filter(a=>!e.terms[a]).map(a=>[$("del",null,a)," "]).flat().slice(0,-1),i=new URL(e.location);return ce("search.highlight")&&i.searchParams.set("h",Object.entries(e.terms).filter(([,a])=>a).reduce((a,[s])=>`${a} ${s}`.trim(),"")),$("a",{href:`${i}`,class:"md-search-result__link",tabIndex:-1},$("article",{class:["md-search-result__article",...r?["md-search-result__article--document"]:[]].join(" "),"data-md-score":e.score.toFixed(2)},r>0&&$("div",{class:"md-search-result__icon md-icon"}),$("h1",{class:"md-search-result__title"},e.title),o>0&&e.text.length>0&&$("p",{class:"md-search-result__teaser"},Dn(e.text,320)),e.tags&&e.tags.map(a=>$("span",{class:"md-tag"},a)),o>0&&n.length>0&&$("p",{class:"md-search-result__terms"},te("search.result.term.missing"),": ",n)))}function ri(e){let t=e[0].score,r=[...e],o=r.findIndex(l=>!l.location.includes("#")),[n]=r.splice(o,1),i=r.findIndex(l=>l.scoreWr(l,1)),...s.length?[$("details",{class:"md-search-result__more"},$("summary",{tabIndex:-1},s.length>0&&s.length===1?te("search.result.more.one"):te("search.result.more.other",s.length)),s.map(l=>Wr(l,1)))]:[]];return $("li",{class:"md-search-result__item"},c)}function oi(e){return $("ul",{class:"md-source__facts"},Object.entries(e).map(([t,r])=>$("li",{class:`md-source__fact md-source__fact--${t}`},typeof r=="number"?Zt(r):r)))}function ni(e){return $("div",{class:"md-typeset__scrollwrap"},$("div",{class:"md-typeset__table"},e))}function Va(e){let t=ue(),r=new URL(`${e.version}/`,t.base);return $("li",{class:"md-version__item"},$("a",{href:`${r}`,class:"md-version__link"},e.title))}function ii(e,t){return $("div",{class:"md-version"},$("button",{class:"md-version__current"},t.title),$("ul",{class:"md-version__list"},e.map(Va)))}var Ua=0;function Da(e,{viewport$:t}){let r=M(e).pipe(S(i=>{let a=i.closest("[data-tabs]");return a instanceof HTMLElement?V(...I(":scope > input",a).map(s=>y(s,"change"))):J})),o=[],n=e.closest(".annotate.highlighttable")||e.closest(".annotate.highlight");if(n){let i=n.nextElementSibling;if(i instanceof HTMLOListElement){let a=Array.from(i.children);i.remove();for(let s of I(".c, .c1, .cm",e)){let[,c=-1]=s.textContent.match(/\((\d+)\)/)||[],l=a[+c-1];if(typeof l!="undefined"){let p=ti(+c,l);s.replaceWith(p),o.push(p)}}}}return t.pipe(D("size"),Ce(r),u(()=>{let i=Se(e),a=vt(e);return R({scroll:a.width>i.width},o.length&&{annotations:o})}),D("scroll"))}function si(e,t){let r=new O;if(r.pipe(ye(gt("(hover)"))).subscribe(([{scroll:o},n])=>{o&&n?Tn(e):On(e)}),r.pipe(oe(1),bt(({annotations:o})=>!!(o==null?void 0:o.length)),u(({annotations:o})=>o.map(n=>ae(".md-tooltip",n))),$e(viewport$.pipe(D("size")))).subscribe(([o,{size:n}])=>{for(let i of o){let{x:a,width:s}=i.getBoundingClientRect();a+s>n.width?i.classList.add("md-tooltip--end"):i.classList.remove("md-tooltip--end")}}),ai.default.isSupported()){let o=e.closest("pre");o.id=`__code_${++Ua}`,o.insertBefore(ei(o.id),e)}return Da(e,t).pipe(_(r),j(()=>r.complete()),u(o=>R({ref:e},o)))}var Vr,Na=0;function ci(e){return Vr||(Vr=vn("https://unpkg.com/mermaid@8.8.4/dist/mermaid.min.js").pipe(_(()=>mermaid.initialize({startOnLoad:!1,themeCSS:za})),ee(1))),Vr.subscribe(()=>{let t=e.innerText;mermaid.mermaidAPI.render(`__mermaid_${Na++}`,t,r=>{e.innerHTML=r})}),Vr.pipe(B({ref:e}))}var za=` + rect.actor { + fill: white; + } + .classLabel .box { + background-color: var(--md-mermaid-label-bg-color); + fill: var(--md-mermaid-label-bg-color); + opacity: 1; + } + .classLabel .label { + font-family: var(--md-mermaid-font-family); + fill: var(--md-mermaid-label-fg-color) + } + .statediagram-cluster.statediagram-cluster .inner { + fill: var(--md-default-bg-color); + } + .statediagram-state rect.divider { + stroke: var(--md-default-fg-color--lighter); + fill: var(--md-default-fg-color--lightest); + } + .cluster rect { + stroke: var(--md-default-fg-color--lighter); + fill: var(--md-default-fg-color--lightest); + } + .edgeLabel, + .edgeLabel rect { + background-color: var(--md-mermaid-label-bg-color); + fill: var(--md-mermaid-label-bg-color); + } + .cardinality text { + fill: inherit !important; + } + .cardinality, + g.classGroup text { + font-family: var(--md-mermaid-font-family); + fill: var(--md-mermaid-label-fg-color); + } + .edgeLabel .label rect { + fill: transparent; + } + .nodeLabel, + .label, + .label div .edgeLabel { + font-family: var(--md-mermaid-font-family); + color: var(--md-mermaid-label-fg-color); + } + .label foreignObject { + overflow: visible; + } + .arrowheadPath, + marker { + fill: var(--md-mermaid-edge-color) !important; + } + .edgePath .path, + .flowchart-link, + .relation, + .transition { + stroke: var(--md-mermaid-edge-color); + } + .statediagram-cluster rect, + g.classGroup line, + g.classGroup rect, + .node circle, + .node ellipse, + .node path, + .node polygon, + .node rect { + fill: var(--md-mermaid-node-bg-color); + stroke: var(--md-mermaid-node-fg-color); + } + .node circle.state-end { + fill: var(--md-mermaid-label-bg-color); + stroke: none; + } + .node circle.state-start { + fill: var(--md-mermaid-label-fg-color); + stroke: var(--md-mermaid-label-fg-color); + } +`;function qa(e,{target$:t,print$:r}){return t.pipe(u(o=>o.closest("details:not([open])")),L(o=>e===o),Ce(r),B(e))}function li(e,t){let r=new O;return r.subscribe(()=>{e.setAttribute("open",""),e.scrollIntoView()}),qa(e,t).pipe(_(r),j(()=>r.complete()),B({ref:e}))}var pi=We("table");function ui(e){return ze(e,pi),ze(pi,ni(e)),M({ref:e})}function Qa(e){return M(I(":scope > label",e)).pipe(S(t=>M(...t).pipe(Z(r=>{let o=r.previousElementSibling;return y(o,"change").pipe(B({active:r}))}))))}function fi(e){let t=new O;return t.subscribe(({active:r})=>{if(ce("content.tabs.link")){let o=r.innerText.trim();for(let i of I("[data-tabs]"))for(let a of I(":scope > label",i))if(a.innerText.trim()===o){let s=a.previousElementSibling;s.checked=!0;break}let n=__get("__tabs")||[];__set("__tabs",[...new Set([o,...n])])}}),Qa(e).pipe(_(t),j(()=>t.complete()),u(r=>R({ref:e},r)))}function mi(e,{target$:t,viewport$:r,print$:o}){return V(...I("pre:not([class^=mermaid]) > code",e).map(n=>si(n,{viewport$:r})),...I(".mermaid-experimental",e).map(n=>ci(n)),...I("table:not([class])",e).map(n=>ui(n)),...I("details",e).map(n=>li(n,{target$:t,print$:o})),...I("[data-tabs]",e).map(n=>fi(n)))}function Ka(e,{alert$:t}){return t.pipe(S(r=>V(M(!0),M(!1).pipe(ke(2e3))).pipe(u(o=>({message:r,open:o})))))}function di(e,t){let r=new O;return r.pipe(K(G)).subscribe(({message:o,open:n})=>{Hn(e,o),n?jn(e,"open"):Rn(e)}),Ka(e,t).pipe(_(r),j(()=>r.complete()),u(o=>R({ref:e},o)))}function Ba({viewport$:e}){if(!ce("header.autohide"))return M(!1);let t=e.pipe(u(({offset:{y:n}})=>n),xe(2,1),u(([n,i])=>[nMath.abs(i-n.y)>100),u(([,[n]])=>n),q()),o=Yt("search");return z([e,o]).pipe(u(([{offset:n},i])=>n.y>400&&!i),q(),S(n=>n?r:M(!1)),N(!1))}function hi(e,t){return de(()=>{let r=getComputedStyle(e);return M(r.position==="sticky"||r.position==="-webkit-sticky")}).pipe($e(Ve(e),Ba(t)),u(([r,{height:o},n])=>({height:r?o:0,sticky:r,hidden:n})),q((r,o)=>r.sticky===o.sticky&&r.height===o.height&&r.hidden===o.hidden),ee(1))}function bi(e,{header$:t,main$:r}){let o=new O;return o.pipe(D("active"),$e(t),K(G)).subscribe(([{active:n},{hidden:i}])=>{n?Fn(e,i?"hidden":"shadow"):In(e)}),r.subscribe(n=>o.next(n)),t.pipe(u(n=>R({ref:e},n)))}function Ya(e,{viewport$:t,header$:r}){return Xt(e,{header$:r,viewport$:t}).pipe(u(({offset:{y:o}})=>{let{height:n}=Se(e);return{active:o>=n}}),D("active"))}function vi(e,t){let r=new O;r.pipe(K(G)).subscribe(({active:n})=>{n?Pn(e,"active"):$n(e)});let o=pe("article h1");return typeof o=="undefined"?J:Ya(o,t).pipe(_(r),j(()=>r.complete()),u(n=>R({ref:e},n)))}function gi(e,{viewport$:t,header$:r}){let o=r.pipe(u(({height:i})=>i),q()),n=o.pipe(S(()=>Ve(e).pipe(u(({height:i})=>({top:e.offsetTop,bottom:e.offsetTop+i})),D("bottom"))));return z([o,n,t]).pipe(u(([i,{top:a,bottom:s},{offset:{y:c},size:{height:l}}])=>(l=Math.max(0,l-Math.max(0,a-c,i)-Math.max(0,l+c-s)),{offset:a-i,height:l,active:a-i<=c})),q((i,a)=>i.offset===a.offset&&i.height===a.height&&i.active===a.active))}function Ga(e){let t=__get("__palette")||{index:e.findIndex(o=>matchMedia(o.getAttribute("data-md-color-media")).matches)},r=M(...e).pipe(Z(o=>y(o,"change").pipe(B(o))),N(e[Math.max(0,t.index)]),u(o=>({index:e.indexOf(o),color:{scheme:o.getAttribute("data-md-color-scheme"),primary:o.getAttribute("data-md-color-primary"),accent:o.getAttribute("data-md-color-accent")}})),ee(1));return r.subscribe(o=>{__set("__palette",o)}),r}function xi(e){let t=new O;t.subscribe(o=>{for(let[n,i]of Object.entries(o.color))typeof i=="string"&&document.body.setAttribute(`data-md-color-${n}`,i);for(let n=0;nt.complete()),u(o=>R({ref:e},o)))}var Ur=ct(Fr());function Ja(e){let t=I(".md-annotation",e);for(let o of t)o.hidden=!0;let r=e.innerText;for(let o of t)o.hidden=!1;return r}function yi({alert$:e}){Ur.default.isSupported()&&new k(t=>{new Ur.default("[data-clipboard-target], [data-clipboard-text]",{text:r=>r.getAttribute("data-clipboard-text")||Ja(ae(r.getAttribute("data-clipboard-target")))}).on("success",r=>t.next(r))}).subscribe(()=>e.next(te("clipboard.copied")))}function Xa(e){if(e.length<2)return[""];let[t,r]=[...e].sort((n,i)=>n.length-i.length).map(n=>n.replace(/[^/]+$/,"")),o=0;if(t===r)o=t.length;else for(;t.charCodeAt(o)===r.charCodeAt(o);)o++;return e.map(n=>n.replace(t.slice(0,o),""))}function er(e){let t=__get("__sitemap",sessionStorage,e);if(t)return M(t);{let r=ue();return bn(new URL("sitemap.xml",e||r.base)).pipe(u(o=>Xa(I("loc",o).map(n=>n.textContent))),Ae([]),_(o=>__set("__sitemap",o,sessionStorage,e)))}}function Si({document$:e,location$:t,viewport$:r}){let o=ue();if(location.protocol==="file:")return;"scrollRestoration"in history&&(history.scrollRestoration="manual",y(window,"beforeunload").subscribe(()=>{history.scrollRestoration="auto"}));let n=pe("link[rel=icon]");typeof n!="undefined"&&(n.href=n.href);let i=er().pipe(u(l=>l.map(p=>`${o.base}/${p}`)),S(l=>y(document.body,"click").pipe(L(p=>!p.metaKey&&!p.ctrlKey),S(p=>{if(p.target instanceof Element){let m=p.target.closest("a");if(m&&!m.target&&l.includes(m.href))return p.preventDefault(),M({url:new URL(m.href)})}return J}))),se()),a=y(window,"popstate").pipe(L(l=>l.state!==null),u(l=>({url:new URL(location.href),offset:l.state})),se());V(i,a).pipe(q((l,p)=>l.url.href===p.url.href),u(({url:l})=>l)).subscribe(t);let s=t.pipe(D("pathname"),S(l=>Jt(l.href).pipe(tt(()=>(Gt(l),J)))),se());i.pipe(rt(s)).subscribe(({url:l})=>{history.pushState({},"",`${l}`)});let c=new DOMParser;s.pipe(S(l=>l.text()),u(l=>c.parseFromString(l,"text/html"))).subscribe(e),V(i,a).pipe(rt(e)).subscribe(({url:l,offset:p})=>{l.hash&&!p?mn(l.hash):jr(p||{y:0})}),e.pipe(Kt(1)).subscribe(l=>{for(let p of["title","link[rel=canonical]","meta[name=author]","meta[name=description]","[data-md-component=announce]","[data-md-component=container]","[data-md-component=header-topic]","[data-md-component=logo], .md-logo","[data-md-component=skip]"]){let m=pe(p),f=pe(p,l);typeof m!="undefined"&&typeof f!="undefined"&&ze(m,f)}}),e.pipe(Kt(1),u(()=>Oe("container")),S(l=>M(...I("script",l))),Sr(l=>{let p=We("script");if(l.src){for(let m of l.getAttributeNames())p.setAttribute(m,l.getAttribute(m));return ze(l,p),new k(m=>{p.onload=()=>m.complete()})}else return p.textContent=l.textContent,ze(l,p),ge})).subscribe(),r.pipe(Mr(i),wr(250),D("offset")).subscribe(({offset:l})=>{history.replaceState(l,"")}),V(i,a).pipe(xe(2,1),L(([l,p])=>l.url.pathname===p.url.pathname),u(([,l])=>l)).subscribe(({offset:l})=>{jr(l||{y:0})})}var ts=ct(Ei());function Dr(e){let t=new RegExp(e.separator,"img"),r=(o,n,i)=>`${n}${i}`;return o=>{o=o.replace(/[\s*+\-:~^]+/g," ").trim();let n=new RegExp(`(^|${e.separator})(${o.replace(/[|\\{}()[\]^$+*?.-]/g,"\\$&").replace(t,"|")})`,"img");return i=>i.replace(n,r).replace(/<\/mark>(\s+)]*>/img,"$1")}}function Ti(e){return e.split(/"([^"]+)"/g).map((t,r)=>r&1?t.replace(/^\b|^(?![^\x00-\x7F]|$)|\s+/g," +"):t).join("").replace(/"|(?:^|\s+)[*+\-:^~]+(?=\s+|$)/g,"").trim()}var je;(function(n){n[n.SETUP=0]="SETUP",n[n.READY=1]="READY",n[n.QUERY=2]="QUERY",n[n.RESULT=3]="RESULT"})(je||(je={}));function nt(e){return e.type===1}function Oi(e){return e.type===2}function it(e){return e.type===3}function rs({config:e,docs:t,index:r}){e.lang.length===1&&e.lang[0]==="en"&&(e.lang=[te("search.config.lang")]),e.separator==="[\\s\\-]+"&&(e.separator=te("search.config.separator"));let n={pipeline:te("search.config.pipeline").split(/\s*,\s*/).filter(Boolean),suggestions:ce("search.suggest")};return{config:e,docs:t,index:r,options:n}}function _i(e,t){let r=ue(),o=new Worker(e),n=new O,i=En(o,{tx$:n}).pipe(u(a=>{if(it(a))for(let s of a.data.items)for(let c of s)c.location=`${r.base}/${c.location}`;return a}),se());return we(t).pipe(u(a=>({type:je.SETUP,data:rs(a)}))).subscribe(n.next.bind(n)),{tx$:n,rx$:i}}function Mi(){let e=ue(),t=Te(new URL("versions.json",e.base)),r=t.pipe(u(o=>{let[,n]=e.base.match(/([^/]+)\/?$/);return o.find(({version:i,aliases:a})=>i===n||a.includes(n))||o[0]}));z([t,r]).pipe(u(([o,n])=>new Map(o.filter(i=>i!==n).map(i=>[`${new URL(`${i.version}/`,e.base)}`,i]))),S(o=>y(document.body,"click").pipe(L(n=>!n.metaKey&&!n.ctrlKey),S(n=>{if(n.target instanceof Element){let i=n.target.closest("a");if(i&&!i.target&&o.has(i.href))return n.preventDefault(),M(i.href)}return J}),S(n=>{let{version:i}=o.get(n);return er(n).pipe(u(a=>{let c=ve().href.replace(`${e.base}/`,"");return a.includes(c)?new URL(`${i}/${c}`,e.base):new URL(n)}))})))).subscribe(o=>Gt(o)),z([t,r]).subscribe(([o,n])=>{var a;if(ae(".md-header__topic").appendChild(ii(o,n)),__get("__outdated",sessionStorage)===null){let s=((a=e.version)==null?void 0:a.default)||"latest",c=!n.aliases.includes(s);if(__set("__outdated",c,sessionStorage),c)for(let l of ne("outdated"))l.hidden=!1}})}function os(e,{rx$:t}){let r=(__search==null?void 0:__search.transform)||Ti,o=rn(e),n=V(y(e,"keyup"),y(e,"focus").pipe(ke(1))).pipe(u(()=>r(e.value)),q()),i=ve();return i.searchParams.has("q")&&(Ue("search",!0),t.pipe(L(nt),oe(1)).subscribe(()=>{e.value=i.searchParams.get("q"),He(e)})),z([n,o]).pipe(u(([a,s])=>({value:a,focus:s})))}function Li(e,{tx$:t,rx$:r}){let o=new O;return o.pipe(D("value"),u(({value:n})=>({type:je.QUERY,data:n}))).subscribe(t.next.bind(t)),o.pipe(D("focus")).subscribe(({focus:n})=>{n?(Ue("search",n),Wn(e,"")):Vn(e)}),y(e.form,"reset").pipe(Ar(o.pipe(Tr(1)))).subscribe(()=>He(e)),os(e,{tx$:t,rx$:r}).pipe(_(o),j(()=>o.complete()),u(n=>R({ref:e},n)))}function Ai(e,{rx$:t},{query$:r}){let o=new O,n=sn(e.parentElement).pipe(L(Boolean)),i=ae(":scope > :first-child",e),a=ae(":scope > :last-child",e);return t.pipe(L(nt),oe(1)).subscribe(()=>{Ir(i)}),o.pipe(K(G),ye(r)).subscribe(([{items:c},{value:l}])=>{l?Nn(i,c.length):Ir(i)}),o.pipe(K(G),_(()=>qn(a)),S(({items:c})=>V(M(...c.slice(0,10)),M(...c.slice(10)).pipe(xe(4),Cr(n),S(([l])=>M(...l)))))).subscribe(c=>{zn(a,ri(c))}),t.pipe(L(it),u(({data:c})=>c)).pipe(_(o),j(()=>o.complete()),u(c=>R({ref:e},c)))}function ns(e,{query$:t}){return t.pipe(u(({value:r})=>{let o=ve();return o.searchParams.delete("h"),o.searchParams.set("q",r),{url:o}}))}function ki(e,t){let r=new O;return r.subscribe(({url:o})=>{e.setAttribute("data-clipboard-text",e.href),e.href=`${o}`}),y(e,"click").subscribe(o=>o.preventDefault()),ns(e,t).pipe(_(r),j(()=>r.complete()),u(o=>R({ref:e},o)))}function Ci(e,{rx$:t},{keyboard$:r}){let o=new O,n=Oe("search-query"),i=y(n,"keydown").pipe(K(Fe),u(()=>n.value),q());return o.pipe($e(i),u(([{suggestions:s},c])=>{let l=c.split(/([\s-]+)/);if((s==null?void 0:s.length)&&l[l.length-1]){let p=s[s.length-1];p.startsWith(l[l.length-1])&&(l[l.length-1]=p)}else l.length=0;return l})).subscribe(s=>e.innerHTML=s.join("").replace(/\s/g," ")),r.pipe(L(({mode:s})=>s==="search")).subscribe(s=>{switch(s.type){case"ArrowRight":e.innerText.length&&n.selectionStart===n.value.length&&(n.value=e.innerText);break}}),t.pipe(L(it),u(({data:s})=>s)).pipe(_(o),j(()=>o.complete()),u(()=>({ref:e})))}function Hi(e,{index$:t,keyboard$:r}){let o=ue(),n=_i(o.search,t),i=Oe("search-query",e),a=Oe("search-result",e),{tx$:s,rx$:c}=n;s.pipe(L(Oi),rt(c.pipe(L(nt),oe(1)))).subscribe(s.next.bind(s)),r.pipe(L(({mode:m})=>m==="search")).subscribe(m=>{let f=Ne();switch(m.type){case"Enter":if(f===i){let d=new Map;for(let v of I(":first-child [href]",a)){let h=v.firstElementChild;d.set(v,parseFloat(h.getAttribute("data-md-score")))}if(d.size){let[[v]]=[...d].sort(([,h],[,U])=>U-h);v.click()}m.claim()}break;case"Escape":case"Tab":Ue("search",!1),He(i,!1);break;case"ArrowUp":case"ArrowDown":if(typeof f=="undefined")He(i);else{let d=[i,...I(":not(details) > [href], summary, details[open] [href]",a)],v=Math.max(0,(Math.max(0,d.indexOf(f))+d.length+(m.type==="ArrowUp"?-1:1))%d.length);He(d[v])}m.claim();break;default:i!==Ne()&&He(i)}}),r.pipe(L(({mode:m})=>m==="global")).subscribe(m=>{switch(m.type){case"f":case"s":case"/":He(i),cn(i),m.claim();break}});let l=Li(i,n),p=Ai(a,n,{query$:l});return V(l,p).pipe(Ce(...ne("search-share",e).map(m=>ki(m,{query$:l})),...ne("search-suggest",e).map(m=>Ci(m,n,{keyboard$:r}))))}function ji(e,{index$:t,location$:r}){return z([t,r.pipe(N(ve()),L(o=>o.searchParams.has("h")))]).pipe(u(([o,n])=>Dr(o.config)(n.searchParams.get("h"))),u(o=>{var a;let n=new Map,i=document.createNodeIterator(e,NodeFilter.SHOW_TEXT);for(let s=i.nextNode();s;s=i.nextNode())if((a=s.parentElement)==null?void 0:a.offsetHeight){let c=s.textContent,l=o(c);l.length>c.length&&n.set(s,l)}for(let[s,c]of n){let{childNodes:l}=$("span",null,c);s.replaceWith(...Array.from(l))}return{ref:e,nodes:n}}))}function is(e,{viewport$:t,main$:r}){let o=e.parentElement.offsetTop-e.parentElement.parentElement.offsetTop;return z([r,t]).pipe(u(([{offset:n,height:i},{offset:{y:a}}])=>(i=i+Math.min(o,Math.max(0,a-n))-o,{height:i,locked:a>=n+o})),q((n,i)=>n.height===i.height&&n.locked===i.locked))}function Nr(e,o){var n=o,{header$:t}=n,r=Yr(n,["header$"]);let i=new O;return i.pipe(K(G),ye(t)).subscribe({next([{height:a},{height:s}]){Bn(e,a),Qn(e,s)},complete(){Kn(e),Yn(e)}}),i.pipe(K(G),oe(1)).subscribe(()=>{for(let a of I(".md-nav__link--active[href]",e)){let s=nn(a);if(typeof s!="undefined"){let c=a.offsetTop-s.offsetTop,{height:l}=Se(s);c-l+a.offsetHeight>0&&s.scrollTo(0,c-l/2)}}}),is(e,r).pipe(_(i),j(()=>i.complete()),u(a=>R({ref:e},a)))}function Ri(e,t){if(typeof t!="undefined"){let r=`https://api.github.com/repos/${e}/${t}`;return ht(Te(`${r}/releases/latest`).pipe(u(o=>({version:o.tag_name})),Ae({})),Te(r).pipe(u(o=>({stars:o.stargazers_count,forks:o.forks_count})),Ae({}))).pipe(u(([o,n])=>R(R({},o),n)))}else{let r=`https://api.github.com/repos/${e}`;return Te(r).pipe(u(o=>({repositories:o.public_repos})),Ae({}))}}function Fi(e,t){let r=`https://${e}/api/v4/projects/${encodeURIComponent(t)}`;return Te(r).pipe(u(({star_count:o,forks_count:n})=>({stars:o,forks:n})),Ae({}))}function Ii(e){let[t]=e.match(/(git(?:hub|lab))/i)||[];switch(t.toLowerCase()){case"github":let[,r,o]=e.match(/^.+github\.com\/([^/]+)\/?([^/]+)?/i);return Ri(r,o);case"gitlab":let[,n,i]=e.match(/^.+?([^/]*gitlab[^/]+)\/(.+?)\/?$/i);return Fi(n,i);default:return J}}var as;function ss(e){return as||(as=de(()=>{let t=__get("__source",sessionStorage);return t?M(t):Ii(e.href).pipe(_(r=>__set("__source",r,sessionStorage)))}).pipe(tt(()=>J),L(t=>Object.keys(t).length>0),u(t=>({facts:t})),ee(1)))}function Pi(e){let t=new O;return t.subscribe(({facts:r})=>{Gn(e,oi(r)),Jn(e,"done")}),ss(e).pipe(_(t),j(()=>t.complete()),u(r=>R({ref:e},r)))}function cs(e,{viewport$:t,header$:r}){return Ve(document.body).pipe(S(()=>Xt(e,{header$:r,viewport$:t})),u(({offset:{y:o}})=>({hidden:o>=10})),D("hidden"))}function $i(e,t){let r=new O;return r.pipe(K(G)).subscribe({next({hidden:o}){o?Xn(e,"hidden"):Pr(e)},complete(){Pr(e)}}),(ce("navigation.tabs.sticky")?M({hidden:!1}):cs(e,t)).pipe(_(r),j(()=>r.complete()),u(o=>R({ref:e},o)))}function ls(e,{viewport$:t,header$:r}){let o=new Map,n=I("[href^=\\#]",e);for(let s of n){let c=decodeURIComponent(s.hash.substring(1)),l=pe(`[id="${c}"]`);typeof l!="undefined"&&o.set(s,l)}let i=r.pipe(u(s=>24+s.height));return Ve(document.body).pipe(D("height"),S(s=>de(()=>{let c=[];return M([...o].reduce((l,[p,m])=>{for(;c.length&&o.get(c[c.length-1]).tagName>=m.tagName;)c.pop();let f=m.offsetTop;for(;!f&&m.parentElement;)m=m.parentElement,f=m.offsetTop;return l.set([...c=[...c,p]].reverse(),f)},new Map))}).pipe(u(c=>new Map([...c].sort(([,l],[,p])=>l-p))),S(c=>z([t,i]).pipe(Or(([l,p],[{offset:{y:m},size:f},d])=>{let v=m+f.height>=Math.floor(s.height);for(;p.length;){let[,h]=p[0];if(h-d=m&&!v)p=[l.pop(),...p];else break}return[l,p]},[[],[...c]]),q((l,p)=>l[0]===p[0]&&l[1]===p[1])))))).pipe(u(([s,c])=>({prev:s.map(([l])=>l),next:c.map(([l])=>l)})),N({prev:[],next:[]}),xe(2,1),u(([s,c])=>s.prev.length{for(let[i]of n)Cn(i),An(i);for(let[i,[a]]of o.entries())kn(a,i===o.length-1),Ln(a,"blur");if(ce("navigation.tracking")){let i=ve(),a=o[o.length-1];if(a&&a.length){let[s]=a,{hash:c}=new URL(s.href);i.hash!==c&&(i.hash=c,history.replaceState({},"",`${i}`))}else i.hash="",history.replaceState({},"",`${i}`)}}),ls(e,t).pipe(_(r),j(()=>r.complete()),u(o=>R({ref:e},o)))}function ps(e,{viewport$:t,main$:r}){let o=t.pipe(u(({offset:{y:i}})=>i),xe(2,1),u(([i,a])=>i>a),q()),n=r.pipe(D("active"));return z([n,o]).pipe(u(([{active:i},a])=>({hidden:!(i&&a)})),q((i,a)=>i.hidden===a.hidden))}function Vi(e,t){let r=new O;return r.pipe(K(G)).subscribe({next({hidden:o}){o?Zn(e,"hidden"):$r(e)},complete(){$r(e)}}),ps(e,t).pipe(_(r),j(()=>r.complete()),u(o=>R({ref:e},o)))}function Ui({document$:e,tablet$:t}){e.pipe(S(()=>M(...I("[data-md-state=indeterminate]"))),_(r=>{r.indeterminate=!0,r.checked=!1}),Z(r=>y(r,"change").pipe(bt(()=>r.hasAttribute("data-md-state")),B(r))),ye(t)).subscribe(([r,o])=>{r.removeAttribute("data-md-state"),o&&(r.checked=!1)})}function us(){return/(iPad|iPhone|iPod)/.test(navigator.userAgent)}function Di({document$:e}){e.pipe(S(()=>M(...I("[data-md-scrollfix]"))),_(t=>t.removeAttribute("data-md-scrollfix")),L(us),Z(t=>y(t,"touchstart").pipe(B(t)))).subscribe(t=>{let r=t.scrollTop;r===0?t.scrollTop=1:r+t.offsetHeight===t.scrollHeight&&(t.scrollTop=r-1)})}function Ni({viewport$:e,tablet$:t}){z([Yt("search"),t]).pipe(u(([r,o])=>r&&!o),S(r=>M(r).pipe(ke(r?400:100),K(G))),ye(e)).subscribe(([r,{offset:{y:o}}])=>{r?_n(document.body,o):Mn(document.body)})}document.documentElement.classList.remove("no-js");document.documentElement.classList.add("js");var at=tn(),tr=un(),zr=dn(),qr=pn(),he=wn(),rr=gt("(min-width: 960px)"),zi=gt("(min-width: 1220px)"),qi=hn(),Qi=ue(),Ki=document.forms.namedItem("search")?(__search==null?void 0:__search.index)||Te(`${Qi.base}/search/search_index.json`):J,Qr=new O;yi({alert$:Qr});ce("navigation.instant")&&Si({document$:at,location$:tr,viewport$:he});var Yi;((Yi=Qi.version)==null?void 0:Yi.provider)==="mike"&&Mi();V(tr,zr).pipe(ke(125)).subscribe(()=>{Ue("drawer",!1),Ue("search",!1)});qr.pipe(L(({mode:e})=>e==="global")).subscribe(e=>{switch(e.type){case"p":case",":let t=pe("[href][rel=prev]");typeof t!="undefined"&&t.click();break;case"n":case".":let r=pe("[href][rel=next]");typeof r!="undefined"&&r.click();break}});Ui({document$:at,tablet$:rr});Di({document$:at});Ni({viewport$:he,tablet$:rr});var Qe=hi(Oe("header"),{viewport$:he}),or=at.pipe(u(()=>Oe("main")),S(e=>gi(e,{viewport$:he,header$:Qe})),ee(1)),fs=V(...ne("dialog").map(e=>di(e,{alert$:Qr})),...ne("header").map(e=>bi(e,{viewport$:he,header$:Qe,main$:or})),...ne("palette").map(e=>xi(e)),...ne("search").map(e=>Hi(e,{index$:Ki,keyboard$:qr})),...ne("source").map(e=>Pi(e))),ms=de(()=>V(...ne("content").map(e=>mi(e,{target$:zr,viewport$:he,print$:qi})),...ne("content").map(e=>ce("search.highlight")?ji(e,{index$:Ki,location$:tr}):J),...ne("header-title").map(e=>vi(e,{viewport$:he,header$:Qe})),...ne("sidebar").map(e=>e.getAttribute("data-md-type")==="navigation"?Hr(zi,()=>Nr(e,{viewport$:he,header$:Qe,main$:or})):Hr(rr,()=>Nr(e,{viewport$:he,header$:Qe,main$:or}))),...ne("tabs").map(e=>$i(e,{viewport$:he,header$:Qe})),...ne("toc").map(e=>Wi(e,{viewport$:he,header$:Qe})),...ne("top").map(e=>Vi(e,{viewport$:he,main$:or})))),Bi=at.pipe(S(()=>ms),Ce(fs),ee(1));Bi.subscribe();window.document$=at;window.location$=tr;window.target$=zr;window.keyboard$=qr;window.viewport$=he;window.tablet$=rr;window.screen$=zi;window.print$=qi;window.alert$=Qr;window.component$=Bi;})(); +/*! + * clipboard.js v2.0.8 + * https://clipboardjs.com/ + * + * Licensed MIT © Zeno Rocha + */ +/*! + * escape-html + * Copyright(c) 2012-2013 TJ Holowaychuk + * Copyright(c) 2015 Andreas Lubbe + * Copyright(c) 2015 Tiancheng "Timothy" Gu + * MIT Licensed + */ +/*! ***************************************************************************** +Copyright (c) Microsoft Corporation. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. +***************************************************************************** */ diff --git a/1.3/assets/javascripts/lunr/min/lunr.ar.min.js b/1.3/assets/javascripts/lunr/min/lunr.ar.min.js new file mode 100644 index 00000000..248ddc5d --- /dev/null +++ b/1.3/assets/javascripts/lunr/min/lunr.ar.min.js @@ -0,0 +1 @@ +!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.ar=function(){this.pipeline.reset(),this.pipeline.add(e.ar.trimmer,e.ar.stopWordFilter,e.ar.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.ar.stemmer))},e.ar.wordCharacters="ء-ٛٱـ",e.ar.trimmer=e.trimmerSupport.generateTrimmer(e.ar.wordCharacters),e.Pipeline.registerFunction(e.ar.trimmer,"trimmer-ar"),e.ar.stemmer=function(){var e=this;return e.result=!1,e.preRemoved=!1,e.sufRemoved=!1,e.pre={pre1:"ف ك ب و س ل ن ا ي ت",pre2:"ال لل",pre3:"بال وال فال تال كال ولل",pre4:"فبال كبال وبال وكال"},e.suf={suf1:"ه ك ت ن ا ي",suf2:"نك نه ها وك يا اه ون ين تن تم نا وا ان كم كن ني نن ما هم هن تك ته ات يه",suf3:"تين كهم نيه نهم ونه وها يهم ونا ونك وني وهم تكم تنا تها تني تهم كما كها ناه نكم هنا تان يها",suf4:"كموه ناها ونني ونهم تكما تموه تكاه كماه ناكم ناهم نيها وننا"},e.patterns=JSON.parse('{"pt43":[{"pt":[{"c":"ا","l":1}]},{"pt":[{"c":"ا,ت,ن,ي","l":0}],"mPt":[{"c":"ف","l":0,"m":1},{"c":"ع","l":1,"m":2},{"c":"ل","l":2,"m":3}]},{"pt":[{"c":"و","l":2}],"mPt":[{"c":"ف","l":0,"m":0},{"c":"ع","l":1,"m":1},{"c":"ل","l":2,"m":3}]},{"pt":[{"c":"ا","l":2}]},{"pt":[{"c":"ي","l":2}],"mPt":[{"c":"ف","l":0,"m":0},{"c":"ع","l":1,"m":1},{"c":"ا","l":2},{"c":"ل","l":3,"m":3}]},{"pt":[{"c":"م","l":0}]}],"pt53":[{"pt":[{"c":"ت","l":0},{"c":"ا","l":2}]},{"pt":[{"c":"ا,ن,ت,ي","l":0},{"c":"ت","l":2}],"mPt":[{"c":"ا","l":0},{"c":"ف","l":1,"m":1},{"c":"ت","l":2},{"c":"ع","l":3,"m":3},{"c":"ا","l":4},{"c":"ل","l":5,"m":4}]},{"pt":[{"c":"ا","l":0},{"c":"ا","l":2}],"mPt":[{"c":"ا","l":0},{"c":"ف","l":1,"m":1},{"c":"ع","l":2,"m":3},{"c":"ل","l":3,"m":4},{"c":"ا","l":4},{"c":"ل","l":5,"m":4}]},{"pt":[{"c":"ا","l":0},{"c":"ا","l":3}],"mPt":[{"c":"ف","l":0,"m":1},{"c":"ع","l":1,"m":2},{"c":"ل","l":2,"m":4}]},{"pt":[{"c":"ا","l":3},{"c":"ن","l":4}]},{"pt":[{"c":"ت","l":0},{"c":"ي","l":3}]},{"pt":[{"c":"م","l":0},{"c":"و","l":3}]},{"pt":[{"c":"ا","l":1},{"c":"و","l":3}]},{"pt":[{"c":"و","l":1},{"c":"ا","l":2}]},{"pt":[{"c":"م","l":0},{"c":"ا","l":3}]},{"pt":[{"c":"م","l":0},{"c":"ي","l":3}]},{"pt":[{"c":"ا","l":2},{"c":"ن","l":3}]},{"pt":[{"c":"م","l":0},{"c":"ن","l":1}],"mPt":[{"c":"ا","l":0},{"c":"ن","l":1},{"c":"ف","l":2,"m":2},{"c":"ع","l":3,"m":3},{"c":"ا","l":4},{"c":"ل","l":5,"m":4}]},{"pt":[{"c":"م","l":0},{"c":"ت","l":2}],"mPt":[{"c":"ا","l":0},{"c":"ف","l":1,"m":1},{"c":"ت","l":2},{"c":"ع","l":3,"m":3},{"c":"ا","l":4},{"c":"ل","l":5,"m":4}]},{"pt":[{"c":"م","l":0},{"c":"ا","l":2}]},{"pt":[{"c":"م","l":1},{"c":"ا","l":3}]},{"pt":[{"c":"ي,ت,ا,ن","l":0},{"c":"ت","l":1}],"mPt":[{"c":"ف","l":0,"m":2},{"c":"ع","l":1,"m":3},{"c":"ا","l":2},{"c":"ل","l":3,"m":4}]},{"pt":[{"c":"ت,ي,ا,ن","l":0},{"c":"ت","l":2}],"mPt":[{"c":"ا","l":0},{"c":"ف","l":1,"m":1},{"c":"ت","l":2},{"c":"ع","l":3,"m":3},{"c":"ا","l":4},{"c":"ل","l":5,"m":4}]},{"pt":[{"c":"ا","l":2},{"c":"ي","l":3}]},{"pt":[{"c":"ا,ي,ت,ن","l":0},{"c":"ن","l":1}],"mPt":[{"c":"ا","l":0},{"c":"ن","l":1},{"c":"ف","l":2,"m":2},{"c":"ع","l":3,"m":3},{"c":"ا","l":4},{"c":"ل","l":5,"m":4}]},{"pt":[{"c":"ا","l":3},{"c":"ء","l":4}]}],"pt63":[{"pt":[{"c":"ا","l":0},{"c":"ت","l":2},{"c":"ا","l":4}]},{"pt":[{"c":"ا,ت,ن,ي","l":0},{"c":"س","l":1},{"c":"ت","l":2}],"mPt":[{"c":"ا","l":0},{"c":"س","l":1},{"c":"ت","l":2},{"c":"ف","l":3,"m":3},{"c":"ع","l":4,"m":4},{"c":"ا","l":5},{"c":"ل","l":6,"m":5}]},{"pt":[{"c":"ا,ن,ت,ي","l":0},{"c":"و","l":3}]},{"pt":[{"c":"م","l":0},{"c":"س","l":1},{"c":"ت","l":2}],"mPt":[{"c":"ا","l":0},{"c":"س","l":1},{"c":"ت","l":2},{"c":"ف","l":3,"m":3},{"c":"ع","l":4,"m":4},{"c":"ا","l":5},{"c":"ل","l":6,"m":5}]},{"pt":[{"c":"ي","l":1},{"c":"ي","l":3},{"c":"ا","l":4},{"c":"ء","l":5}]},{"pt":[{"c":"ا","l":0},{"c":"ن","l":1},{"c":"ا","l":4}]}],"pt54":[{"pt":[{"c":"ت","l":0}]},{"pt":[{"c":"ا,ي,ت,ن","l":0}],"mPt":[{"c":"ا","l":0},{"c":"ف","l":1,"m":1},{"c":"ع","l":2,"m":2},{"c":"ل","l":3,"m":3},{"c":"ر","l":4,"m":4},{"c":"ا","l":5},{"c":"ر","l":6,"m":4}]},{"pt":[{"c":"م","l":0}],"mPt":[{"c":"ا","l":0},{"c":"ف","l":1,"m":1},{"c":"ع","l":2,"m":2},{"c":"ل","l":3,"m":3},{"c":"ر","l":4,"m":4},{"c":"ا","l":5},{"c":"ر","l":6,"m":4}]},{"pt":[{"c":"ا","l":2}]},{"pt":[{"c":"ا","l":0},{"c":"ن","l":2}]}],"pt64":[{"pt":[{"c":"ا","l":0},{"c":"ا","l":4}]},{"pt":[{"c":"م","l":0},{"c":"ت","l":1}]}],"pt73":[{"pt":[{"c":"ا","l":0},{"c":"س","l":1},{"c":"ت","l":2},{"c":"ا","l":5}]}],"pt75":[{"pt":[{"c":"ا","l":0},{"c":"ا","l":5}]}]}'),e.execArray=["cleanWord","removeDiacritics","cleanAlef","removeStopWords","normalizeHamzaAndAlef","removeStartWaw","removePre432","removeEndTaa","wordCheck"],e.stem=function(){var r=0;for(e.result=!1,e.preRemoved=!1,e.sufRemoved=!1;r=0)return!0},e.normalizeHamzaAndAlef=function(){return e.word=e.word.replace("ؤ","ء"),e.word=e.word.replace("ئ","ء"),e.word=e.word.replace(/([\u0627])\1+/gi,"ا"),!1},e.removeEndTaa=function(){return!(e.word.length>2)||(e.word=e.word.replace(/[\u0627]$/,""),e.word=e.word.replace("ة",""),!1)},e.removeStartWaw=function(){return e.word.length>3&&"و"==e.word[0]&&"و"==e.word[1]&&(e.word=e.word.slice(1)),!1},e.removePre432=function(){var r=e.word;if(e.word.length>=7){var t=new RegExp("^("+e.pre.pre4.split(" ").join("|")+")");e.word=e.word.replace(t,"")}if(e.word==r&&e.word.length>=6){var c=new RegExp("^("+e.pre.pre3.split(" ").join("|")+")");e.word=e.word.replace(c,"")}if(e.word==r&&e.word.length>=5){var l=new RegExp("^("+e.pre.pre2.split(" ").join("|")+")");e.word=e.word.replace(l,"")}return r!=e.word&&(e.preRemoved=!0),!1},e.patternCheck=function(r){for(var t=0;t3){var t=new RegExp("^("+e.pre.pre1.split(" ").join("|")+")");e.word=e.word.replace(t,"")}return r!=e.word&&(e.preRemoved=!0),!1},e.removeSuf1=function(){var r=e.word;if(0==e.sufRemoved&&e.word.length>3){var t=new RegExp("("+e.suf.suf1.split(" ").join("|")+")$");e.word=e.word.replace(t,"")}return r!=e.word&&(e.sufRemoved=!0),!1},e.removeSuf432=function(){var r=e.word;if(e.word.length>=6){var t=new RegExp("("+e.suf.suf4.split(" ").join("|")+")$");e.word=e.word.replace(t,"")}if(e.word==r&&e.word.length>=5){var c=new RegExp("("+e.suf.suf3.split(" ").join("|")+")$");e.word=e.word.replace(c,"")}if(e.word==r&&e.word.length>=4){var l=new RegExp("("+e.suf.suf2.split(" ").join("|")+")$");e.word=e.word.replace(l,"")}return r!=e.word&&(e.sufRemoved=!0),!1},e.wordCheck=function(){for(var r=(e.word,[e.removeSuf432,e.removeSuf1,e.removePre1]),t=0,c=!1;e.word.length>=7&&!e.result&&t=f.limit)return;f.cursor++}for(;!f.out_grouping(w,97,248);){if(f.cursor>=f.limit)return;f.cursor++}d=f.cursor,d=d&&(r=f.limit_backward,f.limit_backward=d,f.ket=f.cursor,e=f.find_among_b(c,32),f.limit_backward=r,e))switch(f.bra=f.cursor,e){case 1:f.slice_del();break;case 2:f.in_grouping_b(p,97,229)&&f.slice_del()}}function t(){var e,r=f.limit-f.cursor;f.cursor>=d&&(e=f.limit_backward,f.limit_backward=d,f.ket=f.cursor,f.find_among_b(l,4)?(f.bra=f.cursor,f.limit_backward=e,f.cursor=f.limit-r,f.cursor>f.limit_backward&&(f.cursor--,f.bra=f.cursor,f.slice_del())):f.limit_backward=e)}function s(){var e,r,i,n=f.limit-f.cursor;if(f.ket=f.cursor,f.eq_s_b(2,"st")&&(f.bra=f.cursor,f.eq_s_b(2,"ig")&&f.slice_del()),f.cursor=f.limit-n,f.cursor>=d&&(r=f.limit_backward,f.limit_backward=d,f.ket=f.cursor,e=f.find_among_b(m,5),f.limit_backward=r,e))switch(f.bra=f.cursor,e){case 1:f.slice_del(),i=f.limit-f.cursor,t(),f.cursor=f.limit-i;break;case 2:f.slice_from("løs")}}function o(){var e;f.cursor>=d&&(e=f.limit_backward,f.limit_backward=d,f.ket=f.cursor,f.out_grouping_b(w,97,248)?(f.bra=f.cursor,u=f.slice_to(u),f.limit_backward=e,f.eq_v_b(u)&&f.slice_del()):f.limit_backward=e)}var a,d,u,c=[new r("hed",-1,1),new r("ethed",0,1),new r("ered",-1,1),new r("e",-1,1),new r("erede",3,1),new r("ende",3,1),new r("erende",5,1),new r("ene",3,1),new r("erne",3,1),new r("ere",3,1),new r("en",-1,1),new r("heden",10,1),new r("eren",10,1),new r("er",-1,1),new r("heder",13,1),new r("erer",13,1),new r("s",-1,2),new r("heds",16,1),new r("es",16,1),new r("endes",18,1),new r("erendes",19,1),new r("enes",18,1),new r("ernes",18,1),new r("eres",18,1),new r("ens",16,1),new r("hedens",24,1),new r("erens",24,1),new r("ers",16,1),new r("ets",16,1),new r("erets",28,1),new r("et",-1,1),new r("eret",30,1)],l=[new r("gd",-1,-1),new r("dt",-1,-1),new r("gt",-1,-1),new r("kt",-1,-1)],m=[new r("ig",-1,1),new r("lig",0,1),new r("elig",1,1),new r("els",-1,1),new r("løst",-1,2)],w=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,48,0,128],p=[239,254,42,3,0,0,0,0,0,0,0,0,0,0,0,0,16],f=new i;this.setCurrent=function(e){f.setCurrent(e)},this.getCurrent=function(){return f.getCurrent()},this.stem=function(){var r=f.cursor;return e(),f.limit_backward=r,f.cursor=f.limit,n(),f.cursor=f.limit,t(),f.cursor=f.limit,s(),f.cursor=f.limit,o(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return n.setCurrent(e),n.stem(),n.getCurrent()}):(n.setCurrent(e),n.stem(),n.getCurrent())}}(),e.Pipeline.registerFunction(e.da.stemmer,"stemmer-da"),e.da.stopWordFilter=e.generateStopWordFilter("ad af alle alt anden at blev blive bliver da de dem den denne der deres det dette dig din disse dog du efter eller en end er et for fra ham han hans har havde have hende hendes her hos hun hvad hvis hvor i ikke ind jeg jer jo kunne man mange med meget men mig min mine mit mod ned noget nogle nu når og også om op os over på selv sig sin sine sit skal skulle som sådan thi til ud under var vi vil ville vor være været".split(" ")),e.Pipeline.registerFunction(e.da.stopWordFilter,"stopWordFilter-da")}}); \ No newline at end of file diff --git a/1.3/assets/javascripts/lunr/min/lunr.de.min.js b/1.3/assets/javascripts/lunr/min/lunr.de.min.js new file mode 100644 index 00000000..f3b5c108 --- /dev/null +++ b/1.3/assets/javascripts/lunr/min/lunr.de.min.js @@ -0,0 +1,18 @@ +/*! + * Lunr languages, `German` language + * https://github.com/MihaiValentin/lunr-languages + * + * Copyright 2014, Mihai Valentin + * http://www.mozilla.org/MPL/ + */ +/*! + * based on + * Snowball JavaScript Library v0.3 + * http://code.google.com/p/urim/ + * http://snowball.tartarus.org/ + * + * Copyright 2010, Oleg Mazko + * http://www.mozilla.org/MPL/ + */ + +!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.de=function(){this.pipeline.reset(),this.pipeline.add(e.de.trimmer,e.de.stopWordFilter,e.de.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.de.stemmer))},e.de.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.de.trimmer=e.trimmerSupport.generateTrimmer(e.de.wordCharacters),e.Pipeline.registerFunction(e.de.trimmer,"trimmer-de"),e.de.stemmer=function(){var r=e.stemmerSupport.Among,n=e.stemmerSupport.SnowballProgram,i=new function(){function e(e,r,n){return!(!v.eq_s(1,e)||(v.ket=v.cursor,!v.in_grouping(p,97,252)))&&(v.slice_from(r),v.cursor=n,!0)}function i(){for(var r,n,i,s,t=v.cursor;;)if(r=v.cursor,v.bra=r,v.eq_s(1,"ß"))v.ket=v.cursor,v.slice_from("ss");else{if(r>=v.limit)break;v.cursor=r+1}for(v.cursor=t;;)for(n=v.cursor;;){if(i=v.cursor,v.in_grouping(p,97,252)){if(s=v.cursor,v.bra=s,e("u","U",i))break;if(v.cursor=s,e("y","Y",i))break}if(i>=v.limit)return void(v.cursor=n);v.cursor=i+1}}function s(){for(;!v.in_grouping(p,97,252);){if(v.cursor>=v.limit)return!0;v.cursor++}for(;!v.out_grouping(p,97,252);){if(v.cursor>=v.limit)return!0;v.cursor++}return!1}function t(){m=v.limit,l=m;var e=v.cursor+3;0<=e&&e<=v.limit&&(d=e,s()||(m=v.cursor,m=v.limit)return;v.cursor++}}}function c(){return m<=v.cursor}function u(){return l<=v.cursor}function a(){var e,r,n,i,s=v.limit-v.cursor;if(v.ket=v.cursor,(e=v.find_among_b(w,7))&&(v.bra=v.cursor,c()))switch(e){case 1:v.slice_del();break;case 2:v.slice_del(),v.ket=v.cursor,v.eq_s_b(1,"s")&&(v.bra=v.cursor,v.eq_s_b(3,"nis")&&v.slice_del());break;case 3:v.in_grouping_b(g,98,116)&&v.slice_del()}if(v.cursor=v.limit-s,v.ket=v.cursor,(e=v.find_among_b(f,4))&&(v.bra=v.cursor,c()))switch(e){case 1:v.slice_del();break;case 2:if(v.in_grouping_b(k,98,116)){var t=v.cursor-3;v.limit_backward<=t&&t<=v.limit&&(v.cursor=t,v.slice_del())}}if(v.cursor=v.limit-s,v.ket=v.cursor,(e=v.find_among_b(_,8))&&(v.bra=v.cursor,u()))switch(e){case 1:v.slice_del(),v.ket=v.cursor,v.eq_s_b(2,"ig")&&(v.bra=v.cursor,r=v.limit-v.cursor,v.eq_s_b(1,"e")||(v.cursor=v.limit-r,u()&&v.slice_del()));break;case 2:n=v.limit-v.cursor,v.eq_s_b(1,"e")||(v.cursor=v.limit-n,v.slice_del());break;case 3:if(v.slice_del(),v.ket=v.cursor,i=v.limit-v.cursor,!v.eq_s_b(2,"er")&&(v.cursor=v.limit-i,!v.eq_s_b(2,"en")))break;v.bra=v.cursor,c()&&v.slice_del();break;case 4:v.slice_del(),v.ket=v.cursor,e=v.find_among_b(b,2),e&&(v.bra=v.cursor,u()&&1==e&&v.slice_del())}}var d,l,m,h=[new r("",-1,6),new r("U",0,2),new r("Y",0,1),new r("ä",0,3),new r("ö",0,4),new r("ü",0,5)],w=[new r("e",-1,2),new r("em",-1,1),new r("en",-1,2),new r("ern",-1,1),new r("er",-1,1),new r("s",-1,3),new r("es",5,2)],f=[new r("en",-1,1),new r("er",-1,1),new r("st",-1,2),new r("est",2,1)],b=[new r("ig",-1,1),new r("lich",-1,1)],_=[new r("end",-1,1),new r("ig",-1,2),new r("ung",-1,1),new r("lich",-1,3),new r("isch",-1,2),new r("ik",-1,2),new r("heit",-1,3),new r("keit",-1,4)],p=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,8,0,32,8],g=[117,30,5],k=[117,30,4],v=new n;this.setCurrent=function(e){v.setCurrent(e)},this.getCurrent=function(){return v.getCurrent()},this.stem=function(){var e=v.cursor;return i(),v.cursor=e,t(),v.limit_backward=e,v.cursor=v.limit,a(),v.cursor=v.limit_backward,o(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return i.setCurrent(e),i.stem(),i.getCurrent()}):(i.setCurrent(e),i.stem(),i.getCurrent())}}(),e.Pipeline.registerFunction(e.de.stemmer,"stemmer-de"),e.de.stopWordFilter=e.generateStopWordFilter("aber alle allem allen aller alles als also am an ander andere anderem anderen anderer anderes anderm andern anderr anders auch auf aus bei bin bis bist da damit dann das dasselbe dazu daß dein deine deinem deinen deiner deines dem demselben den denn denselben der derer derselbe derselben des desselben dessen dich die dies diese dieselbe dieselben diesem diesen dieser dieses dir doch dort du durch ein eine einem einen einer eines einig einige einigem einigen einiger einiges einmal er es etwas euch euer eure eurem euren eurer eures für gegen gewesen hab habe haben hat hatte hatten hier hin hinter ich ihm ihn ihnen ihr ihre ihrem ihren ihrer ihres im in indem ins ist jede jedem jeden jeder jedes jene jenem jenen jener jenes jetzt kann kein keine keinem keinen keiner keines können könnte machen man manche manchem manchen mancher manches mein meine meinem meinen meiner meines mich mir mit muss musste nach nicht nichts noch nun nur ob oder ohne sehr sein seine seinem seinen seiner seines selbst sich sie sind so solche solchem solchen solcher solches soll sollte sondern sonst um und uns unse unsem unsen unser unses unter viel vom von vor war waren warst was weg weil weiter welche welchem welchen welcher welches wenn werde werden wie wieder will wir wird wirst wo wollen wollte während würde würden zu zum zur zwar zwischen über".split(" ")),e.Pipeline.registerFunction(e.de.stopWordFilter,"stopWordFilter-de")}}); \ No newline at end of file diff --git a/1.3/assets/javascripts/lunr/min/lunr.du.min.js b/1.3/assets/javascripts/lunr/min/lunr.du.min.js new file mode 100644 index 00000000..49a0f3f0 --- /dev/null +++ b/1.3/assets/javascripts/lunr/min/lunr.du.min.js @@ -0,0 +1,18 @@ +/*! + * Lunr languages, `Dutch` language + * https://github.com/MihaiValentin/lunr-languages + * + * Copyright 2014, Mihai Valentin + * http://www.mozilla.org/MPL/ + */ +/*! + * based on + * Snowball JavaScript Library v0.3 + * http://code.google.com/p/urim/ + * http://snowball.tartarus.org/ + * + * Copyright 2010, Oleg Mazko + * http://www.mozilla.org/MPL/ + */ + +!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");console.warn('[Lunr Languages] Please use the "nl" instead of the "du". The "nl" code is the standard code for Dutch language, and "du" will be removed in the next major versions.'),e.du=function(){this.pipeline.reset(),this.pipeline.add(e.du.trimmer,e.du.stopWordFilter,e.du.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.du.stemmer))},e.du.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.du.trimmer=e.trimmerSupport.generateTrimmer(e.du.wordCharacters),e.Pipeline.registerFunction(e.du.trimmer,"trimmer-du"),e.du.stemmer=function(){var r=e.stemmerSupport.Among,i=e.stemmerSupport.SnowballProgram,n=new function(){function e(){for(var e,r,i,o=C.cursor;;){if(C.bra=C.cursor,e=C.find_among(b,11))switch(C.ket=C.cursor,e){case 1:C.slice_from("a");continue;case 2:C.slice_from("e");continue;case 3:C.slice_from("i");continue;case 4:C.slice_from("o");continue;case 5:C.slice_from("u");continue;case 6:if(C.cursor>=C.limit)break;C.cursor++;continue}break}for(C.cursor=o,C.bra=o,C.eq_s(1,"y")?(C.ket=C.cursor,C.slice_from("Y")):C.cursor=o;;)if(r=C.cursor,C.in_grouping(q,97,232)){if(i=C.cursor,C.bra=i,C.eq_s(1,"i"))C.ket=C.cursor,C.in_grouping(q,97,232)&&(C.slice_from("I"),C.cursor=r);else if(C.cursor=i,C.eq_s(1,"y"))C.ket=C.cursor,C.slice_from("Y"),C.cursor=r;else if(n(r))break}else if(n(r))break}function n(e){return C.cursor=e,e>=C.limit||(C.cursor++,!1)}function o(){_=C.limit,f=_,t()||(_=C.cursor,_<3&&(_=3),t()||(f=C.cursor))}function t(){for(;!C.in_grouping(q,97,232);){if(C.cursor>=C.limit)return!0;C.cursor++}for(;!C.out_grouping(q,97,232);){if(C.cursor>=C.limit)return!0;C.cursor++}return!1}function s(){for(var e;;)if(C.bra=C.cursor,e=C.find_among(p,3))switch(C.ket=C.cursor,e){case 1:C.slice_from("y");break;case 2:C.slice_from("i");break;case 3:if(C.cursor>=C.limit)return;C.cursor++}}function u(){return _<=C.cursor}function c(){return f<=C.cursor}function a(){var e=C.limit-C.cursor;C.find_among_b(g,3)&&(C.cursor=C.limit-e,C.ket=C.cursor,C.cursor>C.limit_backward&&(C.cursor--,C.bra=C.cursor,C.slice_del()))}function l(){var e;w=!1,C.ket=C.cursor,C.eq_s_b(1,"e")&&(C.bra=C.cursor,u()&&(e=C.limit-C.cursor,C.out_grouping_b(q,97,232)&&(C.cursor=C.limit-e,C.slice_del(),w=!0,a())))}function m(){var e;u()&&(e=C.limit-C.cursor,C.out_grouping_b(q,97,232)&&(C.cursor=C.limit-e,C.eq_s_b(3,"gem")||(C.cursor=C.limit-e,C.slice_del(),a())))}function d(){var e,r,i,n,o,t,s=C.limit-C.cursor;if(C.ket=C.cursor,e=C.find_among_b(h,5))switch(C.bra=C.cursor,e){case 1:u()&&C.slice_from("heid");break;case 2:m();break;case 3:u()&&C.out_grouping_b(z,97,232)&&C.slice_del()}if(C.cursor=C.limit-s,l(),C.cursor=C.limit-s,C.ket=C.cursor,C.eq_s_b(4,"heid")&&(C.bra=C.cursor,c()&&(r=C.limit-C.cursor,C.eq_s_b(1,"c")||(C.cursor=C.limit-r,C.slice_del(),C.ket=C.cursor,C.eq_s_b(2,"en")&&(C.bra=C.cursor,m())))),C.cursor=C.limit-s,C.ket=C.cursor,e=C.find_among_b(k,6))switch(C.bra=C.cursor,e){case 1:if(c()){if(C.slice_del(),i=C.limit-C.cursor,C.ket=C.cursor,C.eq_s_b(2,"ig")&&(C.bra=C.cursor,c()&&(n=C.limit-C.cursor,!C.eq_s_b(1,"e")))){C.cursor=C.limit-n,C.slice_del();break}C.cursor=C.limit-i,a()}break;case 2:c()&&(o=C.limit-C.cursor,C.eq_s_b(1,"e")||(C.cursor=C.limit-o,C.slice_del()));break;case 3:c()&&(C.slice_del(),l());break;case 4:c()&&C.slice_del();break;case 5:c()&&w&&C.slice_del()}C.cursor=C.limit-s,C.out_grouping_b(j,73,232)&&(t=C.limit-C.cursor,C.find_among_b(v,4)&&C.out_grouping_b(q,97,232)&&(C.cursor=C.limit-t,C.ket=C.cursor,C.cursor>C.limit_backward&&(C.cursor--,C.bra=C.cursor,C.slice_del())))}var f,_,w,b=[new r("",-1,6),new r("á",0,1),new r("ä",0,1),new r("é",0,2),new r("ë",0,2),new r("í",0,3),new r("ï",0,3),new r("ó",0,4),new r("ö",0,4),new r("ú",0,5),new r("ü",0,5)],p=[new r("",-1,3),new r("I",0,2),new r("Y",0,1)],g=[new r("dd",-1,-1),new r("kk",-1,-1),new r("tt",-1,-1)],h=[new r("ene",-1,2),new r("se",-1,3),new r("en",-1,2),new r("heden",2,1),new r("s",-1,3)],k=[new r("end",-1,1),new r("ig",-1,2),new r("ing",-1,1),new r("lijk",-1,3),new r("baar",-1,4),new r("bar",-1,5)],v=[new r("aa",-1,-1),new r("ee",-1,-1),new r("oo",-1,-1),new r("uu",-1,-1)],q=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,128],j=[1,0,0,17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,128],z=[17,67,16,1,0,0,0,0,0,0,0,0,0,0,0,0,128],C=new i;this.setCurrent=function(e){C.setCurrent(e)},this.getCurrent=function(){return C.getCurrent()},this.stem=function(){var r=C.cursor;return e(),C.cursor=r,o(),C.limit_backward=r,C.cursor=C.limit,d(),C.cursor=C.limit_backward,s(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return n.setCurrent(e),n.stem(),n.getCurrent()}):(n.setCurrent(e),n.stem(),n.getCurrent())}}(),e.Pipeline.registerFunction(e.du.stemmer,"stemmer-du"),e.du.stopWordFilter=e.generateStopWordFilter(" aan al alles als altijd andere ben bij daar dan dat de der deze die dit doch doen door dus een eens en er ge geen geweest haar had heb hebben heeft hem het hier hij hoe hun iemand iets ik in is ja je kan kon kunnen maar me meer men met mij mijn moet na naar niet niets nog nu of om omdat onder ons ook op over reeds te tegen toch toen tot u uit uw van veel voor want waren was wat werd wezen wie wil worden wordt zal ze zelf zich zij zijn zo zonder zou".split(" ")),e.Pipeline.registerFunction(e.du.stopWordFilter,"stopWordFilter-du")}}); \ No newline at end of file diff --git a/1.3/assets/javascripts/lunr/min/lunr.es.min.js b/1.3/assets/javascripts/lunr/min/lunr.es.min.js new file mode 100644 index 00000000..2989d342 --- /dev/null +++ b/1.3/assets/javascripts/lunr/min/lunr.es.min.js @@ -0,0 +1,18 @@ +/*! + * Lunr languages, `Spanish` language + * https://github.com/MihaiValentin/lunr-languages + * + * Copyright 2014, Mihai Valentin + * http://www.mozilla.org/MPL/ + */ +/*! + * based on + * Snowball JavaScript Library v0.3 + * http://code.google.com/p/urim/ + * http://snowball.tartarus.org/ + * + * Copyright 2010, Oleg Mazko + * http://www.mozilla.org/MPL/ + */ + +!function(e,s){"function"==typeof define&&define.amd?define(s):"object"==typeof exports?module.exports=s():s()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.es=function(){this.pipeline.reset(),this.pipeline.add(e.es.trimmer,e.es.stopWordFilter,e.es.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.es.stemmer))},e.es.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.es.trimmer=e.trimmerSupport.generateTrimmer(e.es.wordCharacters),e.Pipeline.registerFunction(e.es.trimmer,"trimmer-es"),e.es.stemmer=function(){var s=e.stemmerSupport.Among,r=e.stemmerSupport.SnowballProgram,n=new function(){function e(){if(A.out_grouping(x,97,252)){for(;!A.in_grouping(x,97,252);){if(A.cursor>=A.limit)return!0;A.cursor++}return!1}return!0}function n(){if(A.in_grouping(x,97,252)){var s=A.cursor;if(e()){if(A.cursor=s,!A.in_grouping(x,97,252))return!0;for(;!A.out_grouping(x,97,252);){if(A.cursor>=A.limit)return!0;A.cursor++}}return!1}return!0}function i(){var s,r=A.cursor;if(n()){if(A.cursor=r,!A.out_grouping(x,97,252))return;if(s=A.cursor,e()){if(A.cursor=s,!A.in_grouping(x,97,252)||A.cursor>=A.limit)return;A.cursor++}}g=A.cursor}function a(){for(;!A.in_grouping(x,97,252);){if(A.cursor>=A.limit)return!1;A.cursor++}for(;!A.out_grouping(x,97,252);){if(A.cursor>=A.limit)return!1;A.cursor++}return!0}function t(){var e=A.cursor;g=A.limit,p=g,v=g,i(),A.cursor=e,a()&&(p=A.cursor,a()&&(v=A.cursor))}function o(){for(var e;;){if(A.bra=A.cursor,e=A.find_among(k,6))switch(A.ket=A.cursor,e){case 1:A.slice_from("a");continue;case 2:A.slice_from("e");continue;case 3:A.slice_from("i");continue;case 4:A.slice_from("o");continue;case 5:A.slice_from("u");continue;case 6:if(A.cursor>=A.limit)break;A.cursor++;continue}break}}function u(){return g<=A.cursor}function w(){return p<=A.cursor}function c(){return v<=A.cursor}function m(){var e;if(A.ket=A.cursor,A.find_among_b(y,13)&&(A.bra=A.cursor,(e=A.find_among_b(q,11))&&u()))switch(e){case 1:A.bra=A.cursor,A.slice_from("iendo");break;case 2:A.bra=A.cursor,A.slice_from("ando");break;case 3:A.bra=A.cursor,A.slice_from("ar");break;case 4:A.bra=A.cursor,A.slice_from("er");break;case 5:A.bra=A.cursor,A.slice_from("ir");break;case 6:A.slice_del();break;case 7:A.eq_s_b(1,"u")&&A.slice_del()}}function l(e,s){if(!c())return!0;A.slice_del(),A.ket=A.cursor;var r=A.find_among_b(e,s);return r&&(A.bra=A.cursor,1==r&&c()&&A.slice_del()),!1}function d(e){return!c()||(A.slice_del(),A.ket=A.cursor,A.eq_s_b(2,e)&&(A.bra=A.cursor,c()&&A.slice_del()),!1)}function b(){var e;if(A.ket=A.cursor,e=A.find_among_b(S,46)){switch(A.bra=A.cursor,e){case 1:if(!c())return!1;A.slice_del();break;case 2:if(d("ic"))return!1;break;case 3:if(!c())return!1;A.slice_from("log");break;case 4:if(!c())return!1;A.slice_from("u");break;case 5:if(!c())return!1;A.slice_from("ente");break;case 6:if(!w())return!1;A.slice_del(),A.ket=A.cursor,e=A.find_among_b(C,4),e&&(A.bra=A.cursor,c()&&(A.slice_del(),1==e&&(A.ket=A.cursor,A.eq_s_b(2,"at")&&(A.bra=A.cursor,c()&&A.slice_del()))));break;case 7:if(l(P,3))return!1;break;case 8:if(l(F,3))return!1;break;case 9:if(d("at"))return!1}return!0}return!1}function f(){var e,s;if(A.cursor>=g&&(s=A.limit_backward,A.limit_backward=g,A.ket=A.cursor,e=A.find_among_b(W,12),A.limit_backward=s,e)){if(A.bra=A.cursor,1==e){if(!A.eq_s_b(1,"u"))return!1;A.slice_del()}return!0}return!1}function _(){var e,s,r,n;if(A.cursor>=g&&(s=A.limit_backward,A.limit_backward=g,A.ket=A.cursor,e=A.find_among_b(L,96),A.limit_backward=s,e))switch(A.bra=A.cursor,e){case 1:r=A.limit-A.cursor,A.eq_s_b(1,"u")?(n=A.limit-A.cursor,A.eq_s_b(1,"g")?A.cursor=A.limit-n:A.cursor=A.limit-r):A.cursor=A.limit-r,A.bra=A.cursor;case 2:A.slice_del()}}function h(){var e,s;if(A.ket=A.cursor,e=A.find_among_b(z,8))switch(A.bra=A.cursor,e){case 1:u()&&A.slice_del();break;case 2:u()&&(A.slice_del(),A.ket=A.cursor,A.eq_s_b(1,"u")&&(A.bra=A.cursor,s=A.limit-A.cursor,A.eq_s_b(1,"g")&&(A.cursor=A.limit-s,u()&&A.slice_del())))}}var v,p,g,k=[new s("",-1,6),new s("á",0,1),new s("é",0,2),new s("í",0,3),new s("ó",0,4),new s("ú",0,5)],y=[new s("la",-1,-1),new s("sela",0,-1),new s("le",-1,-1),new s("me",-1,-1),new s("se",-1,-1),new s("lo",-1,-1),new s("selo",5,-1),new s("las",-1,-1),new s("selas",7,-1),new s("les",-1,-1),new s("los",-1,-1),new s("selos",10,-1),new s("nos",-1,-1)],q=[new s("ando",-1,6),new s("iendo",-1,6),new s("yendo",-1,7),new s("ándo",-1,2),new s("iéndo",-1,1),new s("ar",-1,6),new s("er",-1,6),new s("ir",-1,6),new s("ár",-1,3),new s("ér",-1,4),new s("ír",-1,5)],C=[new s("ic",-1,-1),new s("ad",-1,-1),new s("os",-1,-1),new s("iv",-1,1)],P=[new s("able",-1,1),new s("ible",-1,1),new s("ante",-1,1)],F=[new s("ic",-1,1),new s("abil",-1,1),new s("iv",-1,1)],S=[new s("ica",-1,1),new s("ancia",-1,2),new s("encia",-1,5),new s("adora",-1,2),new s("osa",-1,1),new s("ista",-1,1),new s("iva",-1,9),new s("anza",-1,1),new s("logía",-1,3),new s("idad",-1,8),new s("able",-1,1),new s("ible",-1,1),new s("ante",-1,2),new s("mente",-1,7),new s("amente",13,6),new s("ación",-1,2),new s("ución",-1,4),new s("ico",-1,1),new s("ismo",-1,1),new s("oso",-1,1),new s("amiento",-1,1),new s("imiento",-1,1),new s("ivo",-1,9),new s("ador",-1,2),new s("icas",-1,1),new s("ancias",-1,2),new s("encias",-1,5),new s("adoras",-1,2),new s("osas",-1,1),new s("istas",-1,1),new s("ivas",-1,9),new s("anzas",-1,1),new s("logías",-1,3),new s("idades",-1,8),new s("ables",-1,1),new s("ibles",-1,1),new s("aciones",-1,2),new s("uciones",-1,4),new s("adores",-1,2),new s("antes",-1,2),new s("icos",-1,1),new s("ismos",-1,1),new s("osos",-1,1),new s("amientos",-1,1),new s("imientos",-1,1),new s("ivos",-1,9)],W=[new s("ya",-1,1),new s("ye",-1,1),new s("yan",-1,1),new s("yen",-1,1),new s("yeron",-1,1),new s("yendo",-1,1),new s("yo",-1,1),new s("yas",-1,1),new s("yes",-1,1),new s("yais",-1,1),new s("yamos",-1,1),new s("yó",-1,1)],L=[new s("aba",-1,2),new s("ada",-1,2),new s("ida",-1,2),new s("ara",-1,2),new s("iera",-1,2),new s("ía",-1,2),new s("aría",5,2),new s("ería",5,2),new s("iría",5,2),new s("ad",-1,2),new s("ed",-1,2),new s("id",-1,2),new s("ase",-1,2),new s("iese",-1,2),new s("aste",-1,2),new s("iste",-1,2),new s("an",-1,2),new s("aban",16,2),new s("aran",16,2),new s("ieran",16,2),new s("ían",16,2),new s("arían",20,2),new s("erían",20,2),new s("irían",20,2),new s("en",-1,1),new s("asen",24,2),new s("iesen",24,2),new s("aron",-1,2),new s("ieron",-1,2),new s("arán",-1,2),new s("erán",-1,2),new s("irán",-1,2),new s("ado",-1,2),new s("ido",-1,2),new s("ando",-1,2),new s("iendo",-1,2),new s("ar",-1,2),new s("er",-1,2),new s("ir",-1,2),new s("as",-1,2),new s("abas",39,2),new s("adas",39,2),new s("idas",39,2),new s("aras",39,2),new s("ieras",39,2),new s("ías",39,2),new s("arías",45,2),new s("erías",45,2),new s("irías",45,2),new s("es",-1,1),new s("ases",49,2),new s("ieses",49,2),new s("abais",-1,2),new s("arais",-1,2),new s("ierais",-1,2),new s("íais",-1,2),new s("aríais",55,2),new s("eríais",55,2),new s("iríais",55,2),new s("aseis",-1,2),new s("ieseis",-1,2),new s("asteis",-1,2),new s("isteis",-1,2),new s("áis",-1,2),new s("éis",-1,1),new s("aréis",64,2),new s("eréis",64,2),new s("iréis",64,2),new s("ados",-1,2),new s("idos",-1,2),new s("amos",-1,2),new s("ábamos",70,2),new s("áramos",70,2),new s("iéramos",70,2),new s("íamos",70,2),new s("aríamos",74,2),new s("eríamos",74,2),new s("iríamos",74,2),new s("emos",-1,1),new s("aremos",78,2),new s("eremos",78,2),new s("iremos",78,2),new s("ásemos",78,2),new s("iésemos",78,2),new s("imos",-1,2),new s("arás",-1,2),new s("erás",-1,2),new s("irás",-1,2),new s("ís",-1,2),new s("ará",-1,2),new s("erá",-1,2),new s("irá",-1,2),new s("aré",-1,2),new s("eré",-1,2),new s("iré",-1,2),new s("ió",-1,2)],z=[new s("a",-1,1),new s("e",-1,2),new s("o",-1,1),new s("os",-1,1),new s("á",-1,1),new s("é",-1,2),new s("í",-1,1),new s("ó",-1,1)],x=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,0,1,17,4,10],A=new r;this.setCurrent=function(e){A.setCurrent(e)},this.getCurrent=function(){return A.getCurrent()},this.stem=function(){var e=A.cursor;return t(),A.limit_backward=e,A.cursor=A.limit,m(),A.cursor=A.limit,b()||(A.cursor=A.limit,f()||(A.cursor=A.limit,_())),A.cursor=A.limit,h(),A.cursor=A.limit_backward,o(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return n.setCurrent(e),n.stem(),n.getCurrent()}):(n.setCurrent(e),n.stem(),n.getCurrent())}}(),e.Pipeline.registerFunction(e.es.stemmer,"stemmer-es"),e.es.stopWordFilter=e.generateStopWordFilter("a al algo algunas algunos ante antes como con contra cual cuando de del desde donde durante e el ella ellas ellos en entre era erais eran eras eres es esa esas ese eso esos esta estaba estabais estaban estabas estad estada estadas estado estados estamos estando estar estaremos estará estarán estarás estaré estaréis estaría estaríais estaríamos estarían estarías estas este estemos esto estos estoy estuve estuviera estuvierais estuvieran estuvieras estuvieron estuviese estuvieseis estuviesen estuvieses estuvimos estuviste estuvisteis estuviéramos estuviésemos estuvo está estábamos estáis están estás esté estéis estén estés fue fuera fuerais fueran fueras fueron fuese fueseis fuesen fueses fui fuimos fuiste fuisteis fuéramos fuésemos ha habida habidas habido habidos habiendo habremos habrá habrán habrás habré habréis habría habríais habríamos habrían habrías habéis había habíais habíamos habían habías han has hasta hay haya hayamos hayan hayas hayáis he hemos hube hubiera hubierais hubieran hubieras hubieron hubiese hubieseis hubiesen hubieses hubimos hubiste hubisteis hubiéramos hubiésemos hubo la las le les lo los me mi mis mucho muchos muy más mí mía mías mío míos nada ni no nos nosotras nosotros nuestra nuestras nuestro nuestros o os otra otras otro otros para pero poco por porque que quien quienes qué se sea seamos sean seas seremos será serán serás seré seréis sería seríais seríamos serían serías seáis sido siendo sin sobre sois somos son soy su sus suya suyas suyo suyos sí también tanto te tendremos tendrá tendrán tendrás tendré tendréis tendría tendríais tendríamos tendrían tendrías tened tenemos tenga tengamos tengan tengas tengo tengáis tenida tenidas tenido tenidos teniendo tenéis tenía teníais teníamos tenían tenías ti tiene tienen tienes todo todos tu tus tuve tuviera tuvierais tuvieran tuvieras tuvieron tuviese tuvieseis tuviesen tuvieses tuvimos tuviste tuvisteis tuviéramos tuviésemos tuvo tuya tuyas tuyo tuyos tú un una uno unos vosotras vosotros vuestra vuestras vuestro vuestros y ya yo él éramos".split(" ")),e.Pipeline.registerFunction(e.es.stopWordFilter,"stopWordFilter-es")}}); \ No newline at end of file diff --git a/1.3/assets/javascripts/lunr/min/lunr.fi.min.js b/1.3/assets/javascripts/lunr/min/lunr.fi.min.js new file mode 100644 index 00000000..29f5dfce --- /dev/null +++ b/1.3/assets/javascripts/lunr/min/lunr.fi.min.js @@ -0,0 +1,18 @@ +/*! + * Lunr languages, `Finnish` language + * https://github.com/MihaiValentin/lunr-languages + * + * Copyright 2014, Mihai Valentin + * http://www.mozilla.org/MPL/ + */ +/*! + * based on + * Snowball JavaScript Library v0.3 + * http://code.google.com/p/urim/ + * http://snowball.tartarus.org/ + * + * Copyright 2010, Oleg Mazko + * http://www.mozilla.org/MPL/ + */ + +!function(i,e){"function"==typeof define&&define.amd?define(e):"object"==typeof exports?module.exports=e():e()(i.lunr)}(this,function(){return function(i){if(void 0===i)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===i.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");i.fi=function(){this.pipeline.reset(),this.pipeline.add(i.fi.trimmer,i.fi.stopWordFilter,i.fi.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(i.fi.stemmer))},i.fi.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",i.fi.trimmer=i.trimmerSupport.generateTrimmer(i.fi.wordCharacters),i.Pipeline.registerFunction(i.fi.trimmer,"trimmer-fi"),i.fi.stemmer=function(){var e=i.stemmerSupport.Among,r=i.stemmerSupport.SnowballProgram,n=new function(){function i(){f=A.limit,d=f,n()||(f=A.cursor,n()||(d=A.cursor))}function n(){for(var i;;){if(i=A.cursor,A.in_grouping(W,97,246))break;if(A.cursor=i,i>=A.limit)return!0;A.cursor++}for(A.cursor=i;!A.out_grouping(W,97,246);){if(A.cursor>=A.limit)return!0;A.cursor++}return!1}function t(){return d<=A.cursor}function s(){var i,e;if(A.cursor>=f)if(e=A.limit_backward,A.limit_backward=f,A.ket=A.cursor,i=A.find_among_b(h,10)){switch(A.bra=A.cursor,A.limit_backward=e,i){case 1:if(!A.in_grouping_b(x,97,246))return;break;case 2:if(!t())return}A.slice_del()}else A.limit_backward=e}function o(){var i,e,r;if(A.cursor>=f)if(e=A.limit_backward,A.limit_backward=f,A.ket=A.cursor,i=A.find_among_b(v,9))switch(A.bra=A.cursor,A.limit_backward=e,i){case 1:r=A.limit-A.cursor,A.eq_s_b(1,"k")||(A.cursor=A.limit-r,A.slice_del());break;case 2:A.slice_del(),A.ket=A.cursor,A.eq_s_b(3,"kse")&&(A.bra=A.cursor,A.slice_from("ksi"));break;case 3:A.slice_del();break;case 4:A.find_among_b(p,6)&&A.slice_del();break;case 5:A.find_among_b(g,6)&&A.slice_del();break;case 6:A.find_among_b(j,2)&&A.slice_del()}else A.limit_backward=e}function l(){return A.find_among_b(q,7)}function a(){return A.eq_s_b(1,"i")&&A.in_grouping_b(L,97,246)}function u(){var i,e,r;if(A.cursor>=f)if(e=A.limit_backward,A.limit_backward=f,A.ket=A.cursor,i=A.find_among_b(C,30)){switch(A.bra=A.cursor,A.limit_backward=e,i){case 1:if(!A.eq_s_b(1,"a"))return;break;case 2:case 9:if(!A.eq_s_b(1,"e"))return;break;case 3:if(!A.eq_s_b(1,"i"))return;break;case 4:if(!A.eq_s_b(1,"o"))return;break;case 5:if(!A.eq_s_b(1,"ä"))return;break;case 6:if(!A.eq_s_b(1,"ö"))return;break;case 7:if(r=A.limit-A.cursor,!l()&&(A.cursor=A.limit-r,!A.eq_s_b(2,"ie"))){A.cursor=A.limit-r;break}if(A.cursor=A.limit-r,A.cursor<=A.limit_backward){A.cursor=A.limit-r;break}A.cursor--,A.bra=A.cursor;break;case 8:if(!A.in_grouping_b(W,97,246)||!A.out_grouping_b(W,97,246))return}A.slice_del(),k=!0}else A.limit_backward=e}function c(){var i,e,r;if(A.cursor>=d)if(e=A.limit_backward,A.limit_backward=d,A.ket=A.cursor,i=A.find_among_b(P,14)){if(A.bra=A.cursor,A.limit_backward=e,1==i){if(r=A.limit-A.cursor,A.eq_s_b(2,"po"))return;A.cursor=A.limit-r}A.slice_del()}else A.limit_backward=e}function m(){var i;A.cursor>=f&&(i=A.limit_backward,A.limit_backward=f,A.ket=A.cursor,A.find_among_b(F,2)?(A.bra=A.cursor,A.limit_backward=i,A.slice_del()):A.limit_backward=i)}function w(){var i,e,r,n,t,s;if(A.cursor>=f){if(e=A.limit_backward,A.limit_backward=f,A.ket=A.cursor,A.eq_s_b(1,"t")&&(A.bra=A.cursor,r=A.limit-A.cursor,A.in_grouping_b(W,97,246)&&(A.cursor=A.limit-r,A.slice_del(),A.limit_backward=e,n=A.limit-A.cursor,A.cursor>=d&&(A.cursor=d,t=A.limit_backward,A.limit_backward=A.cursor,A.cursor=A.limit-n,A.ket=A.cursor,i=A.find_among_b(S,2))))){if(A.bra=A.cursor,A.limit_backward=t,1==i){if(s=A.limit-A.cursor,A.eq_s_b(2,"po"))return;A.cursor=A.limit-s}return void A.slice_del()}A.limit_backward=e}}function _(){var i,e,r,n;if(A.cursor>=f){for(i=A.limit_backward,A.limit_backward=f,e=A.limit-A.cursor,l()&&(A.cursor=A.limit-e,A.ket=A.cursor,A.cursor>A.limit_backward&&(A.cursor--,A.bra=A.cursor,A.slice_del())),A.cursor=A.limit-e,A.ket=A.cursor,A.in_grouping_b(y,97,228)&&(A.bra=A.cursor,A.out_grouping_b(W,97,246)&&A.slice_del()),A.cursor=A.limit-e,A.ket=A.cursor,A.eq_s_b(1,"j")&&(A.bra=A.cursor,r=A.limit-A.cursor,A.eq_s_b(1,"o")?A.slice_del():(A.cursor=A.limit-r,A.eq_s_b(1,"u")&&A.slice_del())),A.cursor=A.limit-e,A.ket=A.cursor,A.eq_s_b(1,"o")&&(A.bra=A.cursor,A.eq_s_b(1,"j")&&A.slice_del()),A.cursor=A.limit-e,A.limit_backward=i;;){if(n=A.limit-A.cursor,A.out_grouping_b(W,97,246)){A.cursor=A.limit-n;break}if(A.cursor=A.limit-n,A.cursor<=A.limit_backward)return;A.cursor--}A.ket=A.cursor,A.cursor>A.limit_backward&&(A.cursor--,A.bra=A.cursor,b=A.slice_to(),A.eq_v_b(b)&&A.slice_del())}}var k,b,d,f,h=[new e("pa",-1,1),new e("sti",-1,2),new e("kaan",-1,1),new e("han",-1,1),new e("kin",-1,1),new e("hän",-1,1),new e("kään",-1,1),new e("ko",-1,1),new e("pä",-1,1),new e("kö",-1,1)],p=[new e("lla",-1,-1),new e("na",-1,-1),new e("ssa",-1,-1),new e("ta",-1,-1),new e("lta",3,-1),new e("sta",3,-1)],g=[new e("llä",-1,-1),new e("nä",-1,-1),new e("ssä",-1,-1),new e("tä",-1,-1),new e("ltä",3,-1),new e("stä",3,-1)],j=[new e("lle",-1,-1),new e("ine",-1,-1)],v=[new e("nsa",-1,3),new e("mme",-1,3),new e("nne",-1,3),new e("ni",-1,2),new e("si",-1,1),new e("an",-1,4),new e("en",-1,6),new e("än",-1,5),new e("nsä",-1,3)],q=[new e("aa",-1,-1),new e("ee",-1,-1),new e("ii",-1,-1),new e("oo",-1,-1),new e("uu",-1,-1),new e("ää",-1,-1),new e("öö",-1,-1)],C=[new e("a",-1,8),new e("lla",0,-1),new e("na",0,-1),new e("ssa",0,-1),new e("ta",0,-1),new e("lta",4,-1),new e("sta",4,-1),new e("tta",4,9),new e("lle",-1,-1),new e("ine",-1,-1),new e("ksi",-1,-1),new e("n",-1,7),new e("han",11,1),new e("den",11,-1,a),new e("seen",11,-1,l),new e("hen",11,2),new e("tten",11,-1,a),new e("hin",11,3),new e("siin",11,-1,a),new e("hon",11,4),new e("hän",11,5),new e("hön",11,6),new e("ä",-1,8),new e("llä",22,-1),new e("nä",22,-1),new e("ssä",22,-1),new e("tä",22,-1),new e("ltä",26,-1),new e("stä",26,-1),new e("ttä",26,9)],P=[new e("eja",-1,-1),new e("mma",-1,1),new e("imma",1,-1),new e("mpa",-1,1),new e("impa",3,-1),new e("mmi",-1,1),new e("immi",5,-1),new e("mpi",-1,1),new e("impi",7,-1),new e("ejä",-1,-1),new e("mmä",-1,1),new e("immä",10,-1),new e("mpä",-1,1),new e("impä",12,-1)],F=[new e("i",-1,-1),new e("j",-1,-1)],S=[new e("mma",-1,1),new e("imma",0,-1)],y=[17,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8],W=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,8,0,32],L=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,32],x=[17,97,24,1,0,0,0,0,0,0,0,0,0,0,0,0,8,0,32],A=new r;this.setCurrent=function(i){A.setCurrent(i)},this.getCurrent=function(){return A.getCurrent()},this.stem=function(){var e=A.cursor;return i(),k=!1,A.limit_backward=e,A.cursor=A.limit,s(),A.cursor=A.limit,o(),A.cursor=A.limit,u(),A.cursor=A.limit,c(),A.cursor=A.limit,k?(m(),A.cursor=A.limit):(A.cursor=A.limit,w(),A.cursor=A.limit),_(),!0}};return function(i){return"function"==typeof i.update?i.update(function(i){return n.setCurrent(i),n.stem(),n.getCurrent()}):(n.setCurrent(i),n.stem(),n.getCurrent())}}(),i.Pipeline.registerFunction(i.fi.stemmer,"stemmer-fi"),i.fi.stopWordFilter=i.generateStopWordFilter("ei eivät emme en et ette että he heidän heidät heihin heille heillä heiltä heissä heistä heitä hän häneen hänelle hänellä häneltä hänen hänessä hänestä hänet häntä itse ja johon joiden joihin joiksi joilla joille joilta joina joissa joista joita joka joksi jolla jolle jolta jona jonka jos jossa josta jota jotka kanssa keiden keihin keiksi keille keillä keiltä keinä keissä keistä keitä keneen keneksi kenelle kenellä keneltä kenen kenenä kenessä kenestä kenet ketkä ketkä ketä koska kuin kuka kun me meidän meidät meihin meille meillä meiltä meissä meistä meitä mihin miksi mikä mille millä miltä minkä minkä minua minulla minulle minulta minun minussa minusta minut minuun minä minä missä mistä mitkä mitä mukaan mutta ne niiden niihin niiksi niille niillä niiltä niin niin niinä niissä niistä niitä noiden noihin noiksi noilla noille noilta noin noina noissa noista noita nuo nyt näiden näihin näiksi näille näillä näiltä näinä näissä näistä näitä nämä ole olemme olen olet olette oli olimme olin olisi olisimme olisin olisit olisitte olisivat olit olitte olivat olla olleet ollut on ovat poikki se sekä sen siihen siinä siitä siksi sille sillä sillä siltä sinua sinulla sinulle sinulta sinun sinussa sinusta sinut sinuun sinä sinä sitä tai te teidän teidät teihin teille teillä teiltä teissä teistä teitä tuo tuohon tuoksi tuolla tuolle tuolta tuon tuona tuossa tuosta tuota tähän täksi tälle tällä tältä tämä tämän tänä tässä tästä tätä vaan vai vaikka yli".split(" ")),i.Pipeline.registerFunction(i.fi.stopWordFilter,"stopWordFilter-fi")}}); \ No newline at end of file diff --git a/1.3/assets/javascripts/lunr/min/lunr.fr.min.js b/1.3/assets/javascripts/lunr/min/lunr.fr.min.js new file mode 100644 index 00000000..68cd0094 --- /dev/null +++ b/1.3/assets/javascripts/lunr/min/lunr.fr.min.js @@ -0,0 +1,18 @@ +/*! + * Lunr languages, `French` language + * https://github.com/MihaiValentin/lunr-languages + * + * Copyright 2014, Mihai Valentin + * http://www.mozilla.org/MPL/ + */ +/*! + * based on + * Snowball JavaScript Library v0.3 + * http://code.google.com/p/urim/ + * http://snowball.tartarus.org/ + * + * Copyright 2010, Oleg Mazko + * http://www.mozilla.org/MPL/ + */ + +!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.fr=function(){this.pipeline.reset(),this.pipeline.add(e.fr.trimmer,e.fr.stopWordFilter,e.fr.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.fr.stemmer))},e.fr.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.fr.trimmer=e.trimmerSupport.generateTrimmer(e.fr.wordCharacters),e.Pipeline.registerFunction(e.fr.trimmer,"trimmer-fr"),e.fr.stemmer=function(){var r=e.stemmerSupport.Among,s=e.stemmerSupport.SnowballProgram,i=new function(){function e(e,r,s){return!(!W.eq_s(1,e)||(W.ket=W.cursor,!W.in_grouping(F,97,251)))&&(W.slice_from(r),W.cursor=s,!0)}function i(e,r,s){return!!W.eq_s(1,e)&&(W.ket=W.cursor,W.slice_from(r),W.cursor=s,!0)}function n(){for(var r,s;;){if(r=W.cursor,W.in_grouping(F,97,251)){if(W.bra=W.cursor,s=W.cursor,e("u","U",r))continue;if(W.cursor=s,e("i","I",r))continue;if(W.cursor=s,i("y","Y",r))continue}if(W.cursor=r,W.bra=r,!e("y","Y",r)){if(W.cursor=r,W.eq_s(1,"q")&&(W.bra=W.cursor,i("u","U",r)))continue;if(W.cursor=r,r>=W.limit)return;W.cursor++}}}function t(){for(;!W.in_grouping(F,97,251);){if(W.cursor>=W.limit)return!0;W.cursor++}for(;!W.out_grouping(F,97,251);){if(W.cursor>=W.limit)return!0;W.cursor++}return!1}function u(){var e=W.cursor;if(q=W.limit,g=q,p=q,W.in_grouping(F,97,251)&&W.in_grouping(F,97,251)&&W.cursor=W.limit){W.cursor=q;break}W.cursor++}while(!W.in_grouping(F,97,251))}q=W.cursor,W.cursor=e,t()||(g=W.cursor,t()||(p=W.cursor))}function o(){for(var e,r;;){if(r=W.cursor,W.bra=r,!(e=W.find_among(h,4)))break;switch(W.ket=W.cursor,e){case 1:W.slice_from("i");break;case 2:W.slice_from("u");break;case 3:W.slice_from("y");break;case 4:if(W.cursor>=W.limit)return;W.cursor++}}}function c(){return q<=W.cursor}function a(){return g<=W.cursor}function l(){return p<=W.cursor}function w(){var e,r;if(W.ket=W.cursor,e=W.find_among_b(C,43)){switch(W.bra=W.cursor,e){case 1:if(!l())return!1;W.slice_del();break;case 2:if(!l())return!1;W.slice_del(),W.ket=W.cursor,W.eq_s_b(2,"ic")&&(W.bra=W.cursor,l()?W.slice_del():W.slice_from("iqU"));break;case 3:if(!l())return!1;W.slice_from("log");break;case 4:if(!l())return!1;W.slice_from("u");break;case 5:if(!l())return!1;W.slice_from("ent");break;case 6:if(!c())return!1;if(W.slice_del(),W.ket=W.cursor,e=W.find_among_b(z,6))switch(W.bra=W.cursor,e){case 1:l()&&(W.slice_del(),W.ket=W.cursor,W.eq_s_b(2,"at")&&(W.bra=W.cursor,l()&&W.slice_del()));break;case 2:l()?W.slice_del():a()&&W.slice_from("eux");break;case 3:l()&&W.slice_del();break;case 4:c()&&W.slice_from("i")}break;case 7:if(!l())return!1;if(W.slice_del(),W.ket=W.cursor,e=W.find_among_b(y,3))switch(W.bra=W.cursor,e){case 1:l()?W.slice_del():W.slice_from("abl");break;case 2:l()?W.slice_del():W.slice_from("iqU");break;case 3:l()&&W.slice_del()}break;case 8:if(!l())return!1;if(W.slice_del(),W.ket=W.cursor,W.eq_s_b(2,"at")&&(W.bra=W.cursor,l()&&(W.slice_del(),W.ket=W.cursor,W.eq_s_b(2,"ic")))){W.bra=W.cursor,l()?W.slice_del():W.slice_from("iqU");break}break;case 9:W.slice_from("eau");break;case 10:if(!a())return!1;W.slice_from("al");break;case 11:if(l())W.slice_del();else{if(!a())return!1;W.slice_from("eux")}break;case 12:if(!a()||!W.out_grouping_b(F,97,251))return!1;W.slice_del();break;case 13:return c()&&W.slice_from("ant"),!1;case 14:return c()&&W.slice_from("ent"),!1;case 15:return r=W.limit-W.cursor,W.in_grouping_b(F,97,251)&&c()&&(W.cursor=W.limit-r,W.slice_del()),!1}return!0}return!1}function f(){var e,r;if(W.cursor=q){if(s=W.limit_backward,W.limit_backward=q,W.ket=W.cursor,e=W.find_among_b(P,7))switch(W.bra=W.cursor,e){case 1:if(l()){if(i=W.limit-W.cursor,!W.eq_s_b(1,"s")&&(W.cursor=W.limit-i,!W.eq_s_b(1,"t")))break;W.slice_del()}break;case 2:W.slice_from("i");break;case 3:W.slice_del();break;case 4:W.eq_s_b(2,"gu")&&W.slice_del()}W.limit_backward=s}}function b(){var e=W.limit-W.cursor;W.find_among_b(U,5)&&(W.cursor=W.limit-e,W.ket=W.cursor,W.cursor>W.limit_backward&&(W.cursor--,W.bra=W.cursor,W.slice_del()))}function d(){for(var e,r=1;W.out_grouping_b(F,97,251);)r--;if(r<=0){if(W.ket=W.cursor,e=W.limit-W.cursor,!W.eq_s_b(1,"é")&&(W.cursor=W.limit-e,!W.eq_s_b(1,"è")))return;W.bra=W.cursor,W.slice_from("e")}}function k(){if(!w()&&(W.cursor=W.limit,!f()&&(W.cursor=W.limit,!m())))return W.cursor=W.limit,void _();W.cursor=W.limit,W.ket=W.cursor,W.eq_s_b(1,"Y")?(W.bra=W.cursor,W.slice_from("i")):(W.cursor=W.limit,W.eq_s_b(1,"ç")&&(W.bra=W.cursor,W.slice_from("c")))}var p,g,q,v=[new r("col",-1,-1),new r("par",-1,-1),new r("tap",-1,-1)],h=[new r("",-1,4),new r("I",0,1),new r("U",0,2),new r("Y",0,3)],z=[new r("iqU",-1,3),new r("abl",-1,3),new r("Ièr",-1,4),new r("ièr",-1,4),new r("eus",-1,2),new r("iv",-1,1)],y=[new r("ic",-1,2),new r("abil",-1,1),new r("iv",-1,3)],C=[new r("iqUe",-1,1),new r("atrice",-1,2),new r("ance",-1,1),new r("ence",-1,5),new r("logie",-1,3),new r("able",-1,1),new r("isme",-1,1),new r("euse",-1,11),new r("iste",-1,1),new r("ive",-1,8),new r("if",-1,8),new r("usion",-1,4),new r("ation",-1,2),new r("ution",-1,4),new r("ateur",-1,2),new r("iqUes",-1,1),new r("atrices",-1,2),new r("ances",-1,1),new r("ences",-1,5),new r("logies",-1,3),new r("ables",-1,1),new r("ismes",-1,1),new r("euses",-1,11),new r("istes",-1,1),new r("ives",-1,8),new r("ifs",-1,8),new r("usions",-1,4),new r("ations",-1,2),new r("utions",-1,4),new r("ateurs",-1,2),new r("ments",-1,15),new r("ements",30,6),new r("issements",31,12),new r("ités",-1,7),new r("ment",-1,15),new r("ement",34,6),new r("issement",35,12),new r("amment",34,13),new r("emment",34,14),new r("aux",-1,10),new r("eaux",39,9),new r("eux",-1,1),new r("ité",-1,7)],x=[new r("ira",-1,1),new r("ie",-1,1),new r("isse",-1,1),new r("issante",-1,1),new r("i",-1,1),new r("irai",4,1),new r("ir",-1,1),new r("iras",-1,1),new r("ies",-1,1),new r("îmes",-1,1),new r("isses",-1,1),new r("issantes",-1,1),new r("îtes",-1,1),new r("is",-1,1),new r("irais",13,1),new r("issais",13,1),new r("irions",-1,1),new r("issions",-1,1),new r("irons",-1,1),new r("issons",-1,1),new r("issants",-1,1),new r("it",-1,1),new r("irait",21,1),new r("issait",21,1),new r("issant",-1,1),new r("iraIent",-1,1),new r("issaIent",-1,1),new r("irent",-1,1),new r("issent",-1,1),new r("iront",-1,1),new r("ît",-1,1),new r("iriez",-1,1),new r("issiez",-1,1),new r("irez",-1,1),new r("issez",-1,1)],I=[new r("a",-1,3),new r("era",0,2),new r("asse",-1,3),new r("ante",-1,3),new r("ée",-1,2),new r("ai",-1,3),new r("erai",5,2),new r("er",-1,2),new r("as",-1,3),new r("eras",8,2),new r("âmes",-1,3),new r("asses",-1,3),new r("antes",-1,3),new r("âtes",-1,3),new r("ées",-1,2),new r("ais",-1,3),new r("erais",15,2),new r("ions",-1,1),new r("erions",17,2),new r("assions",17,3),new r("erons",-1,2),new r("ants",-1,3),new r("és",-1,2),new r("ait",-1,3),new r("erait",23,2),new r("ant",-1,3),new r("aIent",-1,3),new r("eraIent",26,2),new r("èrent",-1,2),new r("assent",-1,3),new r("eront",-1,2),new r("ât",-1,3),new r("ez",-1,2),new r("iez",32,2),new r("eriez",33,2),new r("assiez",33,3),new r("erez",32,2),new r("é",-1,2)],P=[new r("e",-1,3),new r("Ière",0,2),new r("ière",0,2),new r("ion",-1,1),new r("Ier",-1,2),new r("ier",-1,2),new r("ë",-1,4)],U=[new r("ell",-1,-1),new r("eill",-1,-1),new r("enn",-1,-1),new r("onn",-1,-1),new r("ett",-1,-1)],F=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,128,130,103,8,5],S=[1,65,20,0,0,0,0,0,0,0,0,0,0,0,0,0,128],W=new s;this.setCurrent=function(e){W.setCurrent(e)},this.getCurrent=function(){return W.getCurrent()},this.stem=function(){var e=W.cursor;return n(),W.cursor=e,u(),W.limit_backward=e,W.cursor=W.limit,k(),W.cursor=W.limit,b(),W.cursor=W.limit,d(),W.cursor=W.limit_backward,o(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return i.setCurrent(e),i.stem(),i.getCurrent()}):(i.setCurrent(e),i.stem(),i.getCurrent())}}(),e.Pipeline.registerFunction(e.fr.stemmer,"stemmer-fr"),e.fr.stopWordFilter=e.generateStopWordFilter("ai aie aient aies ait as au aura aurai auraient aurais aurait auras aurez auriez aurions aurons auront aux avaient avais avait avec avez aviez avions avons ayant ayez ayons c ce ceci celà ces cet cette d dans de des du elle en es est et eu eue eues eurent eus eusse eussent eusses eussiez eussions eut eux eûmes eût eûtes furent fus fusse fussent fusses fussiez fussions fut fûmes fût fûtes ici il ils j je l la le les leur leurs lui m ma mais me mes moi mon même n ne nos notre nous on ont ou par pas pour qu que quel quelle quelles quels qui s sa sans se sera serai seraient serais serait seras serez seriez serions serons seront ses soi soient sois soit sommes son sont soyez soyons suis sur t ta te tes toi ton tu un une vos votre vous y à étaient étais était étant étiez étions été étée étées étés êtes".split(" ")),e.Pipeline.registerFunction(e.fr.stopWordFilter,"stopWordFilter-fr")}}); \ No newline at end of file diff --git a/1.3/assets/javascripts/lunr/min/lunr.hu.min.js b/1.3/assets/javascripts/lunr/min/lunr.hu.min.js new file mode 100644 index 00000000..ed9d909f --- /dev/null +++ b/1.3/assets/javascripts/lunr/min/lunr.hu.min.js @@ -0,0 +1,18 @@ +/*! + * Lunr languages, `Hungarian` language + * https://github.com/MihaiValentin/lunr-languages + * + * Copyright 2014, Mihai Valentin + * http://www.mozilla.org/MPL/ + */ +/*! + * based on + * Snowball JavaScript Library v0.3 + * http://code.google.com/p/urim/ + * http://snowball.tartarus.org/ + * + * Copyright 2010, Oleg Mazko + * http://www.mozilla.org/MPL/ + */ + +!function(e,n){"function"==typeof define&&define.amd?define(n):"object"==typeof exports?module.exports=n():n()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.hu=function(){this.pipeline.reset(),this.pipeline.add(e.hu.trimmer,e.hu.stopWordFilter,e.hu.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.hu.stemmer))},e.hu.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.hu.trimmer=e.trimmerSupport.generateTrimmer(e.hu.wordCharacters),e.Pipeline.registerFunction(e.hu.trimmer,"trimmer-hu"),e.hu.stemmer=function(){var n=e.stemmerSupport.Among,r=e.stemmerSupport.SnowballProgram,i=new function(){function e(){var e,n=L.cursor;if(d=L.limit,L.in_grouping(W,97,252))for(;;){if(e=L.cursor,L.out_grouping(W,97,252))return L.cursor=e,L.find_among(g,8)||(L.cursor=e,e=L.limit)return void(d=e);L.cursor++}if(L.cursor=n,L.out_grouping(W,97,252)){for(;!L.in_grouping(W,97,252);){if(L.cursor>=L.limit)return;L.cursor++}d=L.cursor}}function i(){return d<=L.cursor}function a(){var e;if(L.ket=L.cursor,(e=L.find_among_b(h,2))&&(L.bra=L.cursor,i()))switch(e){case 1:L.slice_from("a");break;case 2:L.slice_from("e")}}function t(){var e=L.limit-L.cursor;return!!L.find_among_b(p,23)&&(L.cursor=L.limit-e,!0)}function s(){if(L.cursor>L.limit_backward){L.cursor--,L.ket=L.cursor;var e=L.cursor-1;L.limit_backward<=e&&e<=L.limit&&(L.cursor=e,L.bra=e,L.slice_del())}}function c(){var e;if(L.ket=L.cursor,(e=L.find_among_b(_,2))&&(L.bra=L.cursor,i())){if((1==e||2==e)&&!t())return;L.slice_del(),s()}}function o(){L.ket=L.cursor,L.find_among_b(v,44)&&(L.bra=L.cursor,i()&&(L.slice_del(),a()))}function w(){var e;if(L.ket=L.cursor,(e=L.find_among_b(z,3))&&(L.bra=L.cursor,i()))switch(e){case 1:L.slice_from("e");break;case 2:case 3:L.slice_from("a")}}function l(){var e;if(L.ket=L.cursor,(e=L.find_among_b(y,6))&&(L.bra=L.cursor,i()))switch(e){case 1:case 2:L.slice_del();break;case 3:L.slice_from("a");break;case 4:L.slice_from("e")}}function u(){var e;if(L.ket=L.cursor,(e=L.find_among_b(j,2))&&(L.bra=L.cursor,i())){if((1==e||2==e)&&!t())return;L.slice_del(),s()}}function m(){var e;if(L.ket=L.cursor,(e=L.find_among_b(C,7))&&(L.bra=L.cursor,i()))switch(e){case 1:L.slice_from("a");break;case 2:L.slice_from("e");break;case 3:case 4:case 5:case 6:case 7:L.slice_del()}}function k(){var e;if(L.ket=L.cursor,(e=L.find_among_b(P,12))&&(L.bra=L.cursor,i()))switch(e){case 1:case 4:case 7:case 9:L.slice_del();break;case 2:case 5:case 8:L.slice_from("e");break;case 3:case 6:L.slice_from("a")}}function f(){var e;if(L.ket=L.cursor,(e=L.find_among_b(F,31))&&(L.bra=L.cursor,i()))switch(e){case 1:case 4:case 7:case 8:case 9:case 12:case 13:case 16:case 17:case 18:L.slice_del();break;case 2:case 5:case 10:case 14:case 19:L.slice_from("a");break;case 3:case 6:case 11:case 15:case 20:L.slice_from("e")}}function b(){var e;if(L.ket=L.cursor,(e=L.find_among_b(S,42))&&(L.bra=L.cursor,i()))switch(e){case 1:case 4:case 5:case 6:case 9:case 10:case 11:case 14:case 15:case 16:case 17:case 20:case 21:case 24:case 25:case 26:case 29:L.slice_del();break;case 2:case 7:case 12:case 18:case 22:case 27:L.slice_from("a");break;case 3:case 8:case 13:case 19:case 23:case 28:L.slice_from("e")}}var d,g=[new n("cs",-1,-1),new n("dzs",-1,-1),new n("gy",-1,-1),new n("ly",-1,-1),new n("ny",-1,-1),new n("sz",-1,-1),new n("ty",-1,-1),new n("zs",-1,-1)],h=[new n("á",-1,1),new n("é",-1,2)],p=[new n("bb",-1,-1),new n("cc",-1,-1),new n("dd",-1,-1),new n("ff",-1,-1),new n("gg",-1,-1),new n("jj",-1,-1),new n("kk",-1,-1),new n("ll",-1,-1),new n("mm",-1,-1),new n("nn",-1,-1),new n("pp",-1,-1),new n("rr",-1,-1),new n("ccs",-1,-1),new n("ss",-1,-1),new n("zzs",-1,-1),new n("tt",-1,-1),new n("vv",-1,-1),new n("ggy",-1,-1),new n("lly",-1,-1),new n("nny",-1,-1),new n("tty",-1,-1),new n("ssz",-1,-1),new n("zz",-1,-1)],_=[new n("al",-1,1),new n("el",-1,2)],v=[new n("ba",-1,-1),new n("ra",-1,-1),new n("be",-1,-1),new n("re",-1,-1),new n("ig",-1,-1),new n("nak",-1,-1),new n("nek",-1,-1),new n("val",-1,-1),new n("vel",-1,-1),new n("ul",-1,-1),new n("nál",-1,-1),new n("nél",-1,-1),new n("ból",-1,-1),new n("ról",-1,-1),new n("tól",-1,-1),new n("bõl",-1,-1),new n("rõl",-1,-1),new n("tõl",-1,-1),new n("ül",-1,-1),new n("n",-1,-1),new n("an",19,-1),new n("ban",20,-1),new n("en",19,-1),new n("ben",22,-1),new n("képpen",22,-1),new n("on",19,-1),new n("ön",19,-1),new n("képp",-1,-1),new n("kor",-1,-1),new n("t",-1,-1),new n("at",29,-1),new n("et",29,-1),new n("ként",29,-1),new n("anként",32,-1),new n("enként",32,-1),new n("onként",32,-1),new n("ot",29,-1),new n("ért",29,-1),new n("öt",29,-1),new n("hez",-1,-1),new n("hoz",-1,-1),new n("höz",-1,-1),new n("vá",-1,-1),new n("vé",-1,-1)],z=[new n("án",-1,2),new n("én",-1,1),new n("ánként",-1,3)],y=[new n("stul",-1,2),new n("astul",0,1),new n("ástul",0,3),new n("stül",-1,2),new n("estül",3,1),new n("éstül",3,4)],j=[new n("á",-1,1),new n("é",-1,2)],C=[new n("k",-1,7),new n("ak",0,4),new n("ek",0,6),new n("ok",0,5),new n("ák",0,1),new n("ék",0,2),new n("ök",0,3)],P=[new n("éi",-1,7),new n("áéi",0,6),new n("ééi",0,5),new n("é",-1,9),new n("ké",3,4),new n("aké",4,1),new n("eké",4,1),new n("oké",4,1),new n("áké",4,3),new n("éké",4,2),new n("öké",4,1),new n("éé",3,8)],F=[new n("a",-1,18),new n("ja",0,17),new n("d",-1,16),new n("ad",2,13),new n("ed",2,13),new n("od",2,13),new n("ád",2,14),new n("éd",2,15),new n("öd",2,13),new n("e",-1,18),new n("je",9,17),new n("nk",-1,4),new n("unk",11,1),new n("ánk",11,2),new n("énk",11,3),new n("ünk",11,1),new n("uk",-1,8),new n("juk",16,7),new n("ájuk",17,5),new n("ük",-1,8),new n("jük",19,7),new n("éjük",20,6),new n("m",-1,12),new n("am",22,9),new n("em",22,9),new n("om",22,9),new n("ám",22,10),new n("ém",22,11),new n("o",-1,18),new n("á",-1,19),new n("é",-1,20)],S=[new n("id",-1,10),new n("aid",0,9),new n("jaid",1,6),new n("eid",0,9),new n("jeid",3,6),new n("áid",0,7),new n("éid",0,8),new n("i",-1,15),new n("ai",7,14),new n("jai",8,11),new n("ei",7,14),new n("jei",10,11),new n("ái",7,12),new n("éi",7,13),new n("itek",-1,24),new n("eitek",14,21),new n("jeitek",15,20),new n("éitek",14,23),new n("ik",-1,29),new n("aik",18,26),new n("jaik",19,25),new n("eik",18,26),new n("jeik",21,25),new n("áik",18,27),new n("éik",18,28),new n("ink",-1,20),new n("aink",25,17),new n("jaink",26,16),new n("eink",25,17),new n("jeink",28,16),new n("áink",25,18),new n("éink",25,19),new n("aitok",-1,21),new n("jaitok",32,20),new n("áitok",-1,22),new n("im",-1,5),new n("aim",35,4),new n("jaim",36,1),new n("eim",35,4),new n("jeim",38,1),new n("áim",35,2),new n("éim",35,3)],W=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,0,1,17,52,14],L=new r;this.setCurrent=function(e){L.setCurrent(e)},this.getCurrent=function(){return L.getCurrent()},this.stem=function(){var n=L.cursor;return e(),L.limit_backward=n,L.cursor=L.limit,c(),L.cursor=L.limit,o(),L.cursor=L.limit,w(),L.cursor=L.limit,l(),L.cursor=L.limit,u(),L.cursor=L.limit,k(),L.cursor=L.limit,f(),L.cursor=L.limit,b(),L.cursor=L.limit,m(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return i.setCurrent(e),i.stem(),i.getCurrent()}):(i.setCurrent(e),i.stem(),i.getCurrent())}}(),e.Pipeline.registerFunction(e.hu.stemmer,"stemmer-hu"),e.hu.stopWordFilter=e.generateStopWordFilter("a abban ahhoz ahogy ahol aki akik akkor alatt amely amelyek amelyekben amelyeket amelyet amelynek ami amikor amit amolyan amíg annak arra arról az azok azon azonban azt aztán azután azzal azért be belül benne bár cikk cikkek cikkeket csak de e ebben eddig egy egyes egyetlen egyik egyre egyéb egész ehhez ekkor el ellen elsõ elég elõ elõször elõtt emilyen ennek erre ez ezek ezen ezt ezzel ezért fel felé hanem hiszen hogy hogyan igen ill ill. illetve ilyen ilyenkor ismét ison itt jobban jó jól kell kellett keressünk keresztül ki kívül között közül legalább legyen lehet lehetett lenne lenni lesz lett maga magát majd majd meg mellett mely melyek mert mi mikor milyen minden mindenki mindent mindig mint mintha mit mivel miért most már más másik még míg nagy nagyobb nagyon ne nekem neki nem nincs néha néhány nélkül olyan ott pedig persze rá s saját sem semmi sok sokat sokkal szemben szerint szinte számára talán tehát teljes tovább továbbá több ugyanis utolsó után utána vagy vagyis vagyok valaki valami valamint való van vannak vele vissza viszont volna volt voltak voltam voltunk által általában át én éppen és így õ õk õket össze úgy új újabb újra".split(" ")),e.Pipeline.registerFunction(e.hu.stopWordFilter,"stopWordFilter-hu")}}); \ No newline at end of file diff --git a/1.3/assets/javascripts/lunr/min/lunr.it.min.js b/1.3/assets/javascripts/lunr/min/lunr.it.min.js new file mode 100644 index 00000000..344b6a3c --- /dev/null +++ b/1.3/assets/javascripts/lunr/min/lunr.it.min.js @@ -0,0 +1,18 @@ +/*! + * Lunr languages, `Italian` language + * https://github.com/MihaiValentin/lunr-languages + * + * Copyright 2014, Mihai Valentin + * http://www.mozilla.org/MPL/ + */ +/*! + * based on + * Snowball JavaScript Library v0.3 + * http://code.google.com/p/urim/ + * http://snowball.tartarus.org/ + * + * Copyright 2010, Oleg Mazko + * http://www.mozilla.org/MPL/ + */ + +!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.it=function(){this.pipeline.reset(),this.pipeline.add(e.it.trimmer,e.it.stopWordFilter,e.it.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.it.stemmer))},e.it.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.it.trimmer=e.trimmerSupport.generateTrimmer(e.it.wordCharacters),e.Pipeline.registerFunction(e.it.trimmer,"trimmer-it"),e.it.stemmer=function(){var r=e.stemmerSupport.Among,n=e.stemmerSupport.SnowballProgram,i=new function(){function e(e,r,n){return!(!x.eq_s(1,e)||(x.ket=x.cursor,!x.in_grouping(L,97,249)))&&(x.slice_from(r),x.cursor=n,!0)}function i(){for(var r,n,i,o,t=x.cursor;;){if(x.bra=x.cursor,r=x.find_among(h,7))switch(x.ket=x.cursor,r){case 1:x.slice_from("à");continue;case 2:x.slice_from("è");continue;case 3:x.slice_from("ì");continue;case 4:x.slice_from("ò");continue;case 5:x.slice_from("ù");continue;case 6:x.slice_from("qU");continue;case 7:if(x.cursor>=x.limit)break;x.cursor++;continue}break}for(x.cursor=t;;)for(n=x.cursor;;){if(i=x.cursor,x.in_grouping(L,97,249)){if(x.bra=x.cursor,o=x.cursor,e("u","U",i))break;if(x.cursor=o,e("i","I",i))break}if(x.cursor=i,x.cursor>=x.limit)return void(x.cursor=n);x.cursor++}}function o(e){if(x.cursor=e,!x.in_grouping(L,97,249))return!1;for(;!x.out_grouping(L,97,249);){if(x.cursor>=x.limit)return!1;x.cursor++}return!0}function t(){if(x.in_grouping(L,97,249)){var e=x.cursor;if(x.out_grouping(L,97,249)){for(;!x.in_grouping(L,97,249);){if(x.cursor>=x.limit)return o(e);x.cursor++}return!0}return o(e)}return!1}function s(){var e,r=x.cursor;if(!t()){if(x.cursor=r,!x.out_grouping(L,97,249))return;if(e=x.cursor,x.out_grouping(L,97,249)){for(;!x.in_grouping(L,97,249);){if(x.cursor>=x.limit)return x.cursor=e,void(x.in_grouping(L,97,249)&&x.cursor=x.limit)return;x.cursor++}k=x.cursor}function a(){for(;!x.in_grouping(L,97,249);){if(x.cursor>=x.limit)return!1;x.cursor++}for(;!x.out_grouping(L,97,249);){if(x.cursor>=x.limit)return!1;x.cursor++}return!0}function u(){var e=x.cursor;k=x.limit,p=k,g=k,s(),x.cursor=e,a()&&(p=x.cursor,a()&&(g=x.cursor))}function c(){for(var e;;){if(x.bra=x.cursor,!(e=x.find_among(q,3)))break;switch(x.ket=x.cursor,e){case 1:x.slice_from("i");break;case 2:x.slice_from("u");break;case 3:if(x.cursor>=x.limit)return;x.cursor++}}}function w(){return k<=x.cursor}function l(){return p<=x.cursor}function m(){return g<=x.cursor}function f(){var e;if(x.ket=x.cursor,x.find_among_b(C,37)&&(x.bra=x.cursor,(e=x.find_among_b(z,5))&&w()))switch(e){case 1:x.slice_del();break;case 2:x.slice_from("e")}}function v(){var e;if(x.ket=x.cursor,!(e=x.find_among_b(S,51)))return!1;switch(x.bra=x.cursor,e){case 1:if(!m())return!1;x.slice_del();break;case 2:if(!m())return!1;x.slice_del(),x.ket=x.cursor,x.eq_s_b(2,"ic")&&(x.bra=x.cursor,m()&&x.slice_del());break;case 3:if(!m())return!1;x.slice_from("log");break;case 4:if(!m())return!1;x.slice_from("u");break;case 5:if(!m())return!1;x.slice_from("ente");break;case 6:if(!w())return!1;x.slice_del();break;case 7:if(!l())return!1;x.slice_del(),x.ket=x.cursor,e=x.find_among_b(P,4),e&&(x.bra=x.cursor,m()&&(x.slice_del(),1==e&&(x.ket=x.cursor,x.eq_s_b(2,"at")&&(x.bra=x.cursor,m()&&x.slice_del()))));break;case 8:if(!m())return!1;x.slice_del(),x.ket=x.cursor,e=x.find_among_b(F,3),e&&(x.bra=x.cursor,1==e&&m()&&x.slice_del());break;case 9:if(!m())return!1;x.slice_del(),x.ket=x.cursor,x.eq_s_b(2,"at")&&(x.bra=x.cursor,m()&&(x.slice_del(),x.ket=x.cursor,x.eq_s_b(2,"ic")&&(x.bra=x.cursor,m()&&x.slice_del())))}return!0}function b(){var e,r;x.cursor>=k&&(r=x.limit_backward,x.limit_backward=k,x.ket=x.cursor,e=x.find_among_b(W,87),e&&(x.bra=x.cursor,1==e&&x.slice_del()),x.limit_backward=r)}function d(){var e=x.limit-x.cursor;if(x.ket=x.cursor,x.in_grouping_b(y,97,242)&&(x.bra=x.cursor,w()&&(x.slice_del(),x.ket=x.cursor,x.eq_s_b(1,"i")&&(x.bra=x.cursor,w()))))return void x.slice_del();x.cursor=x.limit-e}function _(){d(),x.ket=x.cursor,x.eq_s_b(1,"h")&&(x.bra=x.cursor,x.in_grouping_b(U,99,103)&&w()&&x.slice_del())}var g,p,k,h=[new r("",-1,7),new r("qu",0,6),new r("á",0,1),new r("é",0,2),new r("í",0,3),new r("ó",0,4),new r("ú",0,5)],q=[new r("",-1,3),new r("I",0,1),new r("U",0,2)],C=[new r("la",-1,-1),new r("cela",0,-1),new r("gliela",0,-1),new r("mela",0,-1),new r("tela",0,-1),new r("vela",0,-1),new r("le",-1,-1),new r("cele",6,-1),new r("gliele",6,-1),new r("mele",6,-1),new r("tele",6,-1),new r("vele",6,-1),new r("ne",-1,-1),new r("cene",12,-1),new r("gliene",12,-1),new r("mene",12,-1),new r("sene",12,-1),new r("tene",12,-1),new r("vene",12,-1),new r("ci",-1,-1),new r("li",-1,-1),new r("celi",20,-1),new r("glieli",20,-1),new r("meli",20,-1),new r("teli",20,-1),new r("veli",20,-1),new r("gli",20,-1),new r("mi",-1,-1),new r("si",-1,-1),new r("ti",-1,-1),new r("vi",-1,-1),new r("lo",-1,-1),new r("celo",31,-1),new r("glielo",31,-1),new r("melo",31,-1),new r("telo",31,-1),new r("velo",31,-1)],z=[new r("ando",-1,1),new r("endo",-1,1),new r("ar",-1,2),new r("er",-1,2),new r("ir",-1,2)],P=[new r("ic",-1,-1),new r("abil",-1,-1),new r("os",-1,-1),new r("iv",-1,1)],F=[new r("ic",-1,1),new r("abil",-1,1),new r("iv",-1,1)],S=[new r("ica",-1,1),new r("logia",-1,3),new r("osa",-1,1),new r("ista",-1,1),new r("iva",-1,9),new r("anza",-1,1),new r("enza",-1,5),new r("ice",-1,1),new r("atrice",7,1),new r("iche",-1,1),new r("logie",-1,3),new r("abile",-1,1),new r("ibile",-1,1),new r("usione",-1,4),new r("azione",-1,2),new r("uzione",-1,4),new r("atore",-1,2),new r("ose",-1,1),new r("ante",-1,1),new r("mente",-1,1),new r("amente",19,7),new r("iste",-1,1),new r("ive",-1,9),new r("anze",-1,1),new r("enze",-1,5),new r("ici",-1,1),new r("atrici",25,1),new r("ichi",-1,1),new r("abili",-1,1),new r("ibili",-1,1),new r("ismi",-1,1),new r("usioni",-1,4),new r("azioni",-1,2),new r("uzioni",-1,4),new r("atori",-1,2),new r("osi",-1,1),new r("anti",-1,1),new r("amenti",-1,6),new r("imenti",-1,6),new r("isti",-1,1),new r("ivi",-1,9),new r("ico",-1,1),new r("ismo",-1,1),new r("oso",-1,1),new r("amento",-1,6),new r("imento",-1,6),new r("ivo",-1,9),new r("ità",-1,8),new r("istà",-1,1),new r("istè",-1,1),new r("istì",-1,1)],W=[new r("isca",-1,1),new r("enda",-1,1),new r("ata",-1,1),new r("ita",-1,1),new r("uta",-1,1),new r("ava",-1,1),new r("eva",-1,1),new r("iva",-1,1),new r("erebbe",-1,1),new r("irebbe",-1,1),new r("isce",-1,1),new r("ende",-1,1),new r("are",-1,1),new r("ere",-1,1),new r("ire",-1,1),new r("asse",-1,1),new r("ate",-1,1),new r("avate",16,1),new r("evate",16,1),new r("ivate",16,1),new r("ete",-1,1),new r("erete",20,1),new r("irete",20,1),new r("ite",-1,1),new r("ereste",-1,1),new r("ireste",-1,1),new r("ute",-1,1),new r("erai",-1,1),new r("irai",-1,1),new r("isci",-1,1),new r("endi",-1,1),new r("erei",-1,1),new r("irei",-1,1),new r("assi",-1,1),new r("ati",-1,1),new r("iti",-1,1),new r("eresti",-1,1),new r("iresti",-1,1),new r("uti",-1,1),new r("avi",-1,1),new r("evi",-1,1),new r("ivi",-1,1),new r("isco",-1,1),new r("ando",-1,1),new r("endo",-1,1),new r("Yamo",-1,1),new r("iamo",-1,1),new r("avamo",-1,1),new r("evamo",-1,1),new r("ivamo",-1,1),new r("eremo",-1,1),new r("iremo",-1,1),new r("assimo",-1,1),new r("ammo",-1,1),new r("emmo",-1,1),new r("eremmo",54,1),new r("iremmo",54,1),new r("immo",-1,1),new r("ano",-1,1),new r("iscano",58,1),new r("avano",58,1),new r("evano",58,1),new r("ivano",58,1),new r("eranno",-1,1),new r("iranno",-1,1),new r("ono",-1,1),new r("iscono",65,1),new r("arono",65,1),new r("erono",65,1),new r("irono",65,1),new r("erebbero",-1,1),new r("irebbero",-1,1),new r("assero",-1,1),new r("essero",-1,1),new r("issero",-1,1),new r("ato",-1,1),new r("ito",-1,1),new r("uto",-1,1),new r("avo",-1,1),new r("evo",-1,1),new r("ivo",-1,1),new r("ar",-1,1),new r("ir",-1,1),new r("erà",-1,1),new r("irà",-1,1),new r("erò",-1,1),new r("irò",-1,1)],L=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,128,128,8,2,1],y=[17,65,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,8,2],U=[17],x=new n;this.setCurrent=function(e){x.setCurrent(e)},this.getCurrent=function(){return x.getCurrent()},this.stem=function(){var e=x.cursor;return i(),x.cursor=e,u(),x.limit_backward=e,x.cursor=x.limit,f(),x.cursor=x.limit,v()||(x.cursor=x.limit,b()),x.cursor=x.limit,_(),x.cursor=x.limit_backward,c(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return i.setCurrent(e),i.stem(),i.getCurrent()}):(i.setCurrent(e),i.stem(),i.getCurrent())}}(),e.Pipeline.registerFunction(e.it.stemmer,"stemmer-it"),e.it.stopWordFilter=e.generateStopWordFilter("a abbia abbiamo abbiano abbiate ad agl agli ai al all alla alle allo anche avemmo avendo avesse avessero avessi avessimo aveste avesti avete aveva avevamo avevano avevate avevi avevo avrai avranno avrebbe avrebbero avrei avremmo avremo avreste avresti avrete avrà avrò avuta avute avuti avuto c che chi ci coi col come con contro cui da dagl dagli dai dal dall dalla dalle dallo degl degli dei del dell della delle dello di dov dove e ebbe ebbero ebbi ed era erano eravamo eravate eri ero essendo faccia facciamo facciano facciate faccio facemmo facendo facesse facessero facessi facessimo faceste facesti faceva facevamo facevano facevate facevi facevo fai fanno farai faranno farebbe farebbero farei faremmo faremo fareste faresti farete farà farò fece fecero feci fosse fossero fossi fossimo foste fosti fu fui fummo furono gli ha hai hanno ho i il in io l la le lei li lo loro lui ma mi mia mie miei mio ne negl negli nei nel nell nella nelle nello noi non nostra nostre nostri nostro o per perché più quale quanta quante quanti quanto quella quelle quelli quello questa queste questi questo sarai saranno sarebbe sarebbero sarei saremmo saremo sareste saresti sarete sarà sarò se sei si sia siamo siano siate siete sono sta stai stando stanno starai staranno starebbe starebbero starei staremmo staremo stareste staresti starete starà starò stava stavamo stavano stavate stavi stavo stemmo stesse stessero stessi stessimo steste stesti stette stettero stetti stia stiamo stiano stiate sto su sua sue sugl sugli sui sul sull sulla sulle sullo suo suoi ti tra tu tua tue tuo tuoi tutti tutto un una uno vi voi vostra vostre vostri vostro è".split(" ")),e.Pipeline.registerFunction(e.it.stopWordFilter,"stopWordFilter-it")}}); \ No newline at end of file diff --git a/1.3/assets/javascripts/lunr/min/lunr.ja.min.js b/1.3/assets/javascripts/lunr/min/lunr.ja.min.js new file mode 100644 index 00000000..5f254ebe --- /dev/null +++ b/1.3/assets/javascripts/lunr/min/lunr.ja.min.js @@ -0,0 +1 @@ +!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var r="2"==e.version[0];e.ja=function(){this.pipeline.reset(),this.pipeline.add(e.ja.trimmer,e.ja.stopWordFilter,e.ja.stemmer),r?this.tokenizer=e.ja.tokenizer:(e.tokenizer&&(e.tokenizer=e.ja.tokenizer),this.tokenizerFn&&(this.tokenizerFn=e.ja.tokenizer))};var t=new e.TinySegmenter;e.ja.tokenizer=function(i){var n,o,s,p,a,u,m,l,c,f;if(!arguments.length||null==i||void 0==i)return[];if(Array.isArray(i))return i.map(function(t){return r?new e.Token(t.toLowerCase()):t.toLowerCase()});for(o=i.toString().toLowerCase().replace(/^\s+/,""),n=o.length-1;n>=0;n--)if(/\S/.test(o.charAt(n))){o=o.substring(0,n+1);break}for(a=[],s=o.length,c=0,l=0;c<=s;c++)if(u=o.charAt(c),m=c-l,u.match(/\s/)||c==s){if(m>0)for(p=t.segment(o.slice(l,c)).filter(function(e){return!!e}),f=l,n=0;n=C.limit)break;C.cursor++;continue}break}for(C.cursor=o,C.bra=o,C.eq_s(1,"y")?(C.ket=C.cursor,C.slice_from("Y")):C.cursor=o;;)if(e=C.cursor,C.in_grouping(q,97,232)){if(i=C.cursor,C.bra=i,C.eq_s(1,"i"))C.ket=C.cursor,C.in_grouping(q,97,232)&&(C.slice_from("I"),C.cursor=e);else if(C.cursor=i,C.eq_s(1,"y"))C.ket=C.cursor,C.slice_from("Y"),C.cursor=e;else if(n(e))break}else if(n(e))break}function n(r){return C.cursor=r,r>=C.limit||(C.cursor++,!1)}function o(){_=C.limit,d=_,t()||(_=C.cursor,_<3&&(_=3),t()||(d=C.cursor))}function t(){for(;!C.in_grouping(q,97,232);){if(C.cursor>=C.limit)return!0;C.cursor++}for(;!C.out_grouping(q,97,232);){if(C.cursor>=C.limit)return!0;C.cursor++}return!1}function s(){for(var r;;)if(C.bra=C.cursor,r=C.find_among(p,3))switch(C.ket=C.cursor,r){case 1:C.slice_from("y");break;case 2:C.slice_from("i");break;case 3:if(C.cursor>=C.limit)return;C.cursor++}}function u(){return _<=C.cursor}function c(){return d<=C.cursor}function a(){var r=C.limit-C.cursor;C.find_among_b(g,3)&&(C.cursor=C.limit-r,C.ket=C.cursor,C.cursor>C.limit_backward&&(C.cursor--,C.bra=C.cursor,C.slice_del()))}function l(){var r;w=!1,C.ket=C.cursor,C.eq_s_b(1,"e")&&(C.bra=C.cursor,u()&&(r=C.limit-C.cursor,C.out_grouping_b(q,97,232)&&(C.cursor=C.limit-r,C.slice_del(),w=!0,a())))}function m(){var r;u()&&(r=C.limit-C.cursor,C.out_grouping_b(q,97,232)&&(C.cursor=C.limit-r,C.eq_s_b(3,"gem")||(C.cursor=C.limit-r,C.slice_del(),a())))}function f(){var r,e,i,n,o,t,s=C.limit-C.cursor;if(C.ket=C.cursor,r=C.find_among_b(h,5))switch(C.bra=C.cursor,r){case 1:u()&&C.slice_from("heid");break;case 2:m();break;case 3:u()&&C.out_grouping_b(j,97,232)&&C.slice_del()}if(C.cursor=C.limit-s,l(),C.cursor=C.limit-s,C.ket=C.cursor,C.eq_s_b(4,"heid")&&(C.bra=C.cursor,c()&&(e=C.limit-C.cursor,C.eq_s_b(1,"c")||(C.cursor=C.limit-e,C.slice_del(),C.ket=C.cursor,C.eq_s_b(2,"en")&&(C.bra=C.cursor,m())))),C.cursor=C.limit-s,C.ket=C.cursor,r=C.find_among_b(k,6))switch(C.bra=C.cursor,r){case 1:if(c()){if(C.slice_del(),i=C.limit-C.cursor,C.ket=C.cursor,C.eq_s_b(2,"ig")&&(C.bra=C.cursor,c()&&(n=C.limit-C.cursor,!C.eq_s_b(1,"e")))){C.cursor=C.limit-n,C.slice_del();break}C.cursor=C.limit-i,a()}break;case 2:c()&&(o=C.limit-C.cursor,C.eq_s_b(1,"e")||(C.cursor=C.limit-o,C.slice_del()));break;case 3:c()&&(C.slice_del(),l());break;case 4:c()&&C.slice_del();break;case 5:c()&&w&&C.slice_del()}C.cursor=C.limit-s,C.out_grouping_b(z,73,232)&&(t=C.limit-C.cursor,C.find_among_b(v,4)&&C.out_grouping_b(q,97,232)&&(C.cursor=C.limit-t,C.ket=C.cursor,C.cursor>C.limit_backward&&(C.cursor--,C.bra=C.cursor,C.slice_del())))}var d,_,w,b=[new e("",-1,6),new e("á",0,1),new e("ä",0,1),new e("é",0,2),new e("ë",0,2),new e("í",0,3),new e("ï",0,3),new e("ó",0,4),new e("ö",0,4),new e("ú",0,5),new e("ü",0,5)],p=[new e("",-1,3),new e("I",0,2),new e("Y",0,1)],g=[new e("dd",-1,-1),new e("kk",-1,-1),new e("tt",-1,-1)],h=[new e("ene",-1,2),new e("se",-1,3),new e("en",-1,2),new e("heden",2,1),new e("s",-1,3)],k=[new e("end",-1,1),new e("ig",-1,2),new e("ing",-1,1),new e("lijk",-1,3),new e("baar",-1,4),new e("bar",-1,5)],v=[new e("aa",-1,-1),new e("ee",-1,-1),new e("oo",-1,-1),new e("uu",-1,-1)],q=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,128],z=[1,0,0,17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,128],j=[17,67,16,1,0,0,0,0,0,0,0,0,0,0,0,0,128],C=new i;this.setCurrent=function(r){C.setCurrent(r)},this.getCurrent=function(){return C.getCurrent()},this.stem=function(){var e=C.cursor;return r(),C.cursor=e,o(),C.limit_backward=e,C.cursor=C.limit,f(),C.cursor=C.limit_backward,s(),!0}};return function(r){return"function"==typeof r.update?r.update(function(r){return n.setCurrent(r),n.stem(),n.getCurrent()}):(n.setCurrent(r),n.stem(),n.getCurrent())}}(),r.Pipeline.registerFunction(r.nl.stemmer,"stemmer-nl"),r.nl.stopWordFilter=r.generateStopWordFilter(" aan al alles als altijd andere ben bij daar dan dat de der deze die dit doch doen door dus een eens en er ge geen geweest haar had heb hebben heeft hem het hier hij hoe hun iemand iets ik in is ja je kan kon kunnen maar me meer men met mij mijn moet na naar niet niets nog nu of om omdat onder ons ook op over reeds te tegen toch toen tot u uit uw van veel voor want waren was wat werd wezen wie wil worden wordt zal ze zelf zich zij zijn zo zonder zou".split(" ")),r.Pipeline.registerFunction(r.nl.stopWordFilter,"stopWordFilter-nl")}}); \ No newline at end of file diff --git a/1.3/assets/javascripts/lunr/min/lunr.no.min.js b/1.3/assets/javascripts/lunr/min/lunr.no.min.js new file mode 100644 index 00000000..92bc7e4e --- /dev/null +++ b/1.3/assets/javascripts/lunr/min/lunr.no.min.js @@ -0,0 +1,18 @@ +/*! + * Lunr languages, `Norwegian` language + * https://github.com/MihaiValentin/lunr-languages + * + * Copyright 2014, Mihai Valentin + * http://www.mozilla.org/MPL/ + */ +/*! + * based on + * Snowball JavaScript Library v0.3 + * http://code.google.com/p/urim/ + * http://snowball.tartarus.org/ + * + * Copyright 2010, Oleg Mazko + * http://www.mozilla.org/MPL/ + */ + +!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.no=function(){this.pipeline.reset(),this.pipeline.add(e.no.trimmer,e.no.stopWordFilter,e.no.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.no.stemmer))},e.no.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.no.trimmer=e.trimmerSupport.generateTrimmer(e.no.wordCharacters),e.Pipeline.registerFunction(e.no.trimmer,"trimmer-no"),e.no.stemmer=function(){var r=e.stemmerSupport.Among,n=e.stemmerSupport.SnowballProgram,i=new function(){function e(){var e,r=w.cursor+3;if(a=w.limit,0<=r||r<=w.limit){for(s=r;;){if(e=w.cursor,w.in_grouping(d,97,248)){w.cursor=e;break}if(e>=w.limit)return;w.cursor=e+1}for(;!w.out_grouping(d,97,248);){if(w.cursor>=w.limit)return;w.cursor++}a=w.cursor,a=a&&(r=w.limit_backward,w.limit_backward=a,w.ket=w.cursor,e=w.find_among_b(m,29),w.limit_backward=r,e))switch(w.bra=w.cursor,e){case 1:w.slice_del();break;case 2:n=w.limit-w.cursor,w.in_grouping_b(c,98,122)?w.slice_del():(w.cursor=w.limit-n,w.eq_s_b(1,"k")&&w.out_grouping_b(d,97,248)&&w.slice_del());break;case 3:w.slice_from("er")}}function t(){var e,r=w.limit-w.cursor;w.cursor>=a&&(e=w.limit_backward,w.limit_backward=a,w.ket=w.cursor,w.find_among_b(u,2)?(w.bra=w.cursor,w.limit_backward=e,w.cursor=w.limit-r,w.cursor>w.limit_backward&&(w.cursor--,w.bra=w.cursor,w.slice_del())):w.limit_backward=e)}function o(){var e,r;w.cursor>=a&&(r=w.limit_backward,w.limit_backward=a,w.ket=w.cursor,e=w.find_among_b(l,11),e?(w.bra=w.cursor,w.limit_backward=r,1==e&&w.slice_del()):w.limit_backward=r)}var s,a,m=[new r("a",-1,1),new r("e",-1,1),new r("ede",1,1),new r("ande",1,1),new r("ende",1,1),new r("ane",1,1),new r("ene",1,1),new r("hetene",6,1),new r("erte",1,3),new r("en",-1,1),new r("heten",9,1),new r("ar",-1,1),new r("er",-1,1),new r("heter",12,1),new r("s",-1,2),new r("as",14,1),new r("es",14,1),new r("edes",16,1),new r("endes",16,1),new r("enes",16,1),new r("hetenes",19,1),new r("ens",14,1),new r("hetens",21,1),new r("ers",14,1),new r("ets",14,1),new r("et",-1,1),new r("het",25,1),new r("ert",-1,3),new r("ast",-1,1)],u=[new r("dt",-1,-1),new r("vt",-1,-1)],l=[new r("leg",-1,1),new r("eleg",0,1),new r("ig",-1,1),new r("eig",2,1),new r("lig",2,1),new r("elig",4,1),new r("els",-1,1),new r("lov",-1,1),new r("elov",7,1),new r("slov",7,1),new r("hetslov",9,1)],d=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,48,0,128],c=[119,125,149,1],w=new n;this.setCurrent=function(e){w.setCurrent(e)},this.getCurrent=function(){return w.getCurrent()},this.stem=function(){var r=w.cursor;return e(),w.limit_backward=r,w.cursor=w.limit,i(),w.cursor=w.limit,t(),w.cursor=w.limit,o(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return i.setCurrent(e),i.stem(),i.getCurrent()}):(i.setCurrent(e),i.stem(),i.getCurrent())}}(),e.Pipeline.registerFunction(e.no.stemmer,"stemmer-no"),e.no.stopWordFilter=e.generateStopWordFilter("alle at av bare begge ble blei bli blir blitt både båe da de deg dei deim deira deires dem den denne der dere deres det dette di din disse ditt du dykk dykkar då eg ein eit eitt eller elles en enn er et ett etter for fordi fra før ha hadde han hans har hennar henne hennes her hjå ho hoe honom hoss hossen hun hva hvem hver hvilke hvilken hvis hvor hvordan hvorfor i ikke ikkje ikkje ingen ingi inkje inn inni ja jeg kan kom korleis korso kun kunne kva kvar kvarhelst kven kvi kvifor man mange me med medan meg meget mellom men mi min mine mitt mot mykje ned no noe noen noka noko nokon nokor nokre nå når og også om opp oss over på samme seg selv si si sia sidan siden sin sine sitt sjøl skal skulle slik so som som somme somt så sånn til um upp ut uten var vart varte ved vere verte vi vil ville vore vors vort vår være være vært å".split(" ")),e.Pipeline.registerFunction(e.no.stopWordFilter,"stopWordFilter-no")}}); \ No newline at end of file diff --git a/1.3/assets/javascripts/lunr/min/lunr.pt.min.js b/1.3/assets/javascripts/lunr/min/lunr.pt.min.js new file mode 100644 index 00000000..6c16996d --- /dev/null +++ b/1.3/assets/javascripts/lunr/min/lunr.pt.min.js @@ -0,0 +1,18 @@ +/*! + * Lunr languages, `Portuguese` language + * https://github.com/MihaiValentin/lunr-languages + * + * Copyright 2014, Mihai Valentin + * http://www.mozilla.org/MPL/ + */ +/*! + * based on + * Snowball JavaScript Library v0.3 + * http://code.google.com/p/urim/ + * http://snowball.tartarus.org/ + * + * Copyright 2010, Oleg Mazko + * http://www.mozilla.org/MPL/ + */ + +!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.pt=function(){this.pipeline.reset(),this.pipeline.add(e.pt.trimmer,e.pt.stopWordFilter,e.pt.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.pt.stemmer))},e.pt.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.pt.trimmer=e.trimmerSupport.generateTrimmer(e.pt.wordCharacters),e.Pipeline.registerFunction(e.pt.trimmer,"trimmer-pt"),e.pt.stemmer=function(){var r=e.stemmerSupport.Among,s=e.stemmerSupport.SnowballProgram,n=new function(){function e(){for(var e;;){if(z.bra=z.cursor,e=z.find_among(k,3))switch(z.ket=z.cursor,e){case 1:z.slice_from("a~");continue;case 2:z.slice_from("o~");continue;case 3:if(z.cursor>=z.limit)break;z.cursor++;continue}break}}function n(){if(z.out_grouping(y,97,250)){for(;!z.in_grouping(y,97,250);){if(z.cursor>=z.limit)return!0;z.cursor++}return!1}return!0}function i(){if(z.in_grouping(y,97,250))for(;!z.out_grouping(y,97,250);){if(z.cursor>=z.limit)return!1;z.cursor++}return g=z.cursor,!0}function o(){var e,r,s=z.cursor;if(z.in_grouping(y,97,250))if(e=z.cursor,n()){if(z.cursor=e,i())return}else g=z.cursor;if(z.cursor=s,z.out_grouping(y,97,250)){if(r=z.cursor,n()){if(z.cursor=r,!z.in_grouping(y,97,250)||z.cursor>=z.limit)return;z.cursor++}g=z.cursor}}function t(){for(;!z.in_grouping(y,97,250);){if(z.cursor>=z.limit)return!1;z.cursor++}for(;!z.out_grouping(y,97,250);){if(z.cursor>=z.limit)return!1;z.cursor++}return!0}function a(){var e=z.cursor;g=z.limit,b=g,h=g,o(),z.cursor=e,t()&&(b=z.cursor,t()&&(h=z.cursor))}function u(){for(var e;;){if(z.bra=z.cursor,e=z.find_among(q,3))switch(z.ket=z.cursor,e){case 1:z.slice_from("ã");continue;case 2:z.slice_from("õ");continue;case 3:if(z.cursor>=z.limit)break;z.cursor++;continue}break}}function w(){return g<=z.cursor}function m(){return b<=z.cursor}function c(){return h<=z.cursor}function l(){var e;if(z.ket=z.cursor,!(e=z.find_among_b(F,45)))return!1;switch(z.bra=z.cursor,e){case 1:if(!c())return!1;z.slice_del();break;case 2:if(!c())return!1;z.slice_from("log");break;case 3:if(!c())return!1;z.slice_from("u");break;case 4:if(!c())return!1;z.slice_from("ente");break;case 5:if(!m())return!1;z.slice_del(),z.ket=z.cursor,e=z.find_among_b(j,4),e&&(z.bra=z.cursor,c()&&(z.slice_del(),1==e&&(z.ket=z.cursor,z.eq_s_b(2,"at")&&(z.bra=z.cursor,c()&&z.slice_del()))));break;case 6:if(!c())return!1;z.slice_del(),z.ket=z.cursor,e=z.find_among_b(C,3),e&&(z.bra=z.cursor,1==e&&c()&&z.slice_del());break;case 7:if(!c())return!1;z.slice_del(),z.ket=z.cursor,e=z.find_among_b(P,3),e&&(z.bra=z.cursor,1==e&&c()&&z.slice_del());break;case 8:if(!c())return!1;z.slice_del(),z.ket=z.cursor,z.eq_s_b(2,"at")&&(z.bra=z.cursor,c()&&z.slice_del());break;case 9:if(!w()||!z.eq_s_b(1,"e"))return!1;z.slice_from("ir")}return!0}function f(){var e,r;if(z.cursor>=g){if(r=z.limit_backward,z.limit_backward=g,z.ket=z.cursor,e=z.find_among_b(S,120))return z.bra=z.cursor,1==e&&z.slice_del(),z.limit_backward=r,!0;z.limit_backward=r}return!1}function d(){var e;z.ket=z.cursor,(e=z.find_among_b(W,7))&&(z.bra=z.cursor,1==e&&w()&&z.slice_del())}function v(e,r){if(z.eq_s_b(1,e)){z.bra=z.cursor;var s=z.limit-z.cursor;if(z.eq_s_b(1,r))return z.cursor=z.limit-s,w()&&z.slice_del(),!1}return!0}function p(){var e;if(z.ket=z.cursor,e=z.find_among_b(L,4))switch(z.bra=z.cursor,e){case 1:w()&&(z.slice_del(),z.ket=z.cursor,z.limit-z.cursor,v("u","g")&&v("i","c"));break;case 2:z.slice_from("c")}}function _(){if(!l()&&(z.cursor=z.limit,!f()))return z.cursor=z.limit,void d();z.cursor=z.limit,z.ket=z.cursor,z.eq_s_b(1,"i")&&(z.bra=z.cursor,z.eq_s_b(1,"c")&&(z.cursor=z.limit,w()&&z.slice_del()))}var h,b,g,k=[new r("",-1,3),new r("ã",0,1),new r("õ",0,2)],q=[new r("",-1,3),new r("a~",0,1),new r("o~",0,2)],j=[new r("ic",-1,-1),new r("ad",-1,-1),new r("os",-1,-1),new r("iv",-1,1)],C=[new r("ante",-1,1),new r("avel",-1,1),new r("ível",-1,1)],P=[new r("ic",-1,1),new r("abil",-1,1),new r("iv",-1,1)],F=[new r("ica",-1,1),new r("ância",-1,1),new r("ência",-1,4),new r("ira",-1,9),new r("adora",-1,1),new r("osa",-1,1),new r("ista",-1,1),new r("iva",-1,8),new r("eza",-1,1),new r("logía",-1,2),new r("idade",-1,7),new r("ante",-1,1),new r("mente",-1,6),new r("amente",12,5),new r("ável",-1,1),new r("ível",-1,1),new r("ución",-1,3),new r("ico",-1,1),new r("ismo",-1,1),new r("oso",-1,1),new r("amento",-1,1),new r("imento",-1,1),new r("ivo",-1,8),new r("aça~o",-1,1),new r("ador",-1,1),new r("icas",-1,1),new r("ências",-1,4),new r("iras",-1,9),new r("adoras",-1,1),new r("osas",-1,1),new r("istas",-1,1),new r("ivas",-1,8),new r("ezas",-1,1),new r("logías",-1,2),new r("idades",-1,7),new r("uciones",-1,3),new r("adores",-1,1),new r("antes",-1,1),new r("aço~es",-1,1),new r("icos",-1,1),new r("ismos",-1,1),new r("osos",-1,1),new r("amentos",-1,1),new r("imentos",-1,1),new r("ivos",-1,8)],S=[new r("ada",-1,1),new r("ida",-1,1),new r("ia",-1,1),new r("aria",2,1),new r("eria",2,1),new r("iria",2,1),new r("ara",-1,1),new r("era",-1,1),new r("ira",-1,1),new r("ava",-1,1),new r("asse",-1,1),new r("esse",-1,1),new r("isse",-1,1),new r("aste",-1,1),new r("este",-1,1),new r("iste",-1,1),new r("ei",-1,1),new r("arei",16,1),new r("erei",16,1),new r("irei",16,1),new r("am",-1,1),new r("iam",20,1),new r("ariam",21,1),new r("eriam",21,1),new r("iriam",21,1),new r("aram",20,1),new r("eram",20,1),new r("iram",20,1),new r("avam",20,1),new r("em",-1,1),new r("arem",29,1),new r("erem",29,1),new r("irem",29,1),new r("assem",29,1),new r("essem",29,1),new r("issem",29,1),new r("ado",-1,1),new r("ido",-1,1),new r("ando",-1,1),new r("endo",-1,1),new r("indo",-1,1),new r("ara~o",-1,1),new r("era~o",-1,1),new r("ira~o",-1,1),new r("ar",-1,1),new r("er",-1,1),new r("ir",-1,1),new r("as",-1,1),new r("adas",47,1),new r("idas",47,1),new r("ias",47,1),new r("arias",50,1),new r("erias",50,1),new r("irias",50,1),new r("aras",47,1),new r("eras",47,1),new r("iras",47,1),new r("avas",47,1),new r("es",-1,1),new r("ardes",58,1),new r("erdes",58,1),new r("irdes",58,1),new r("ares",58,1),new r("eres",58,1),new r("ires",58,1),new r("asses",58,1),new r("esses",58,1),new r("isses",58,1),new r("astes",58,1),new r("estes",58,1),new r("istes",58,1),new r("is",-1,1),new r("ais",71,1),new r("eis",71,1),new r("areis",73,1),new r("ereis",73,1),new r("ireis",73,1),new r("áreis",73,1),new r("éreis",73,1),new r("íreis",73,1),new r("ásseis",73,1),new r("ésseis",73,1),new r("ísseis",73,1),new r("áveis",73,1),new r("íeis",73,1),new r("aríeis",84,1),new r("eríeis",84,1),new r("iríeis",84,1),new r("ados",-1,1),new r("idos",-1,1),new r("amos",-1,1),new r("áramos",90,1),new r("éramos",90,1),new r("íramos",90,1),new r("ávamos",90,1),new r("íamos",90,1),new r("aríamos",95,1),new r("eríamos",95,1),new r("iríamos",95,1),new r("emos",-1,1),new r("aremos",99,1),new r("eremos",99,1),new r("iremos",99,1),new r("ássemos",99,1),new r("êssemos",99,1),new r("íssemos",99,1),new r("imos",-1,1),new r("armos",-1,1),new r("ermos",-1,1),new r("irmos",-1,1),new r("ámos",-1,1),new r("arás",-1,1),new r("erás",-1,1),new r("irás",-1,1),new r("eu",-1,1),new r("iu",-1,1),new r("ou",-1,1),new r("ará",-1,1),new r("erá",-1,1),new r("irá",-1,1)],W=[new r("a",-1,1),new r("i",-1,1),new r("o",-1,1),new r("os",-1,1),new r("á",-1,1),new r("í",-1,1),new r("ó",-1,1)],L=[new r("e",-1,1),new r("ç",-1,2),new r("é",-1,1),new r("ê",-1,1)],y=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,0,3,19,12,2],z=new s;this.setCurrent=function(e){z.setCurrent(e)},this.getCurrent=function(){return z.getCurrent()},this.stem=function(){var r=z.cursor;return e(),z.cursor=r,a(),z.limit_backward=r,z.cursor=z.limit,_(),z.cursor=z.limit,p(),z.cursor=z.limit_backward,u(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return n.setCurrent(e),n.stem(),n.getCurrent()}):(n.setCurrent(e),n.stem(),n.getCurrent())}}(),e.Pipeline.registerFunction(e.pt.stemmer,"stemmer-pt"),e.pt.stopWordFilter=e.generateStopWordFilter("a ao aos aquela aquelas aquele aqueles aquilo as até com como da das de dela delas dele deles depois do dos e ela elas ele eles em entre era eram essa essas esse esses esta estamos estas estava estavam este esteja estejam estejamos estes esteve estive estivemos estiver estivera estiveram estiverem estivermos estivesse estivessem estivéramos estivéssemos estou está estávamos estão eu foi fomos for fora foram forem formos fosse fossem fui fôramos fôssemos haja hajam hajamos havemos hei houve houvemos houver houvera houveram houverei houverem houveremos houveria houveriam houvermos houverá houverão houveríamos houvesse houvessem houvéramos houvéssemos há hão isso isto já lhe lhes mais mas me mesmo meu meus minha minhas muito na nas nem no nos nossa nossas nosso nossos num numa não nós o os ou para pela pelas pelo pelos por qual quando que quem se seja sejam sejamos sem serei seremos seria seriam será serão seríamos seu seus somos sou sua suas são só também te tem temos tenha tenham tenhamos tenho terei teremos teria teriam terá terão teríamos teu teus teve tinha tinham tive tivemos tiver tivera tiveram tiverem tivermos tivesse tivessem tivéramos tivéssemos tu tua tuas tém tínhamos um uma você vocês vos à às éramos".split(" ")),e.Pipeline.registerFunction(e.pt.stopWordFilter,"stopWordFilter-pt")}}); \ No newline at end of file diff --git a/1.3/assets/javascripts/lunr/min/lunr.ro.min.js b/1.3/assets/javascripts/lunr/min/lunr.ro.min.js new file mode 100644 index 00000000..72771401 --- /dev/null +++ b/1.3/assets/javascripts/lunr/min/lunr.ro.min.js @@ -0,0 +1,18 @@ +/*! + * Lunr languages, `Romanian` language + * https://github.com/MihaiValentin/lunr-languages + * + * Copyright 2014, Mihai Valentin + * http://www.mozilla.org/MPL/ + */ +/*! + * based on + * Snowball JavaScript Library v0.3 + * http://code.google.com/p/urim/ + * http://snowball.tartarus.org/ + * + * Copyright 2010, Oleg Mazko + * http://www.mozilla.org/MPL/ + */ + +!function(e,i){"function"==typeof define&&define.amd?define(i):"object"==typeof exports?module.exports=i():i()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.ro=function(){this.pipeline.reset(),this.pipeline.add(e.ro.trimmer,e.ro.stopWordFilter,e.ro.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.ro.stemmer))},e.ro.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.ro.trimmer=e.trimmerSupport.generateTrimmer(e.ro.wordCharacters),e.Pipeline.registerFunction(e.ro.trimmer,"trimmer-ro"),e.ro.stemmer=function(){var i=e.stemmerSupport.Among,r=e.stemmerSupport.SnowballProgram,n=new function(){function e(e,i){L.eq_s(1,e)&&(L.ket=L.cursor,L.in_grouping(W,97,259)&&L.slice_from(i))}function n(){for(var i,r;;){if(i=L.cursor,L.in_grouping(W,97,259)&&(r=L.cursor,L.bra=r,e("u","U"),L.cursor=r,e("i","I")),L.cursor=i,L.cursor>=L.limit)break;L.cursor++}}function t(){if(L.out_grouping(W,97,259)){for(;!L.in_grouping(W,97,259);){if(L.cursor>=L.limit)return!0;L.cursor++}return!1}return!0}function a(){if(L.in_grouping(W,97,259))for(;!L.out_grouping(W,97,259);){if(L.cursor>=L.limit)return!0;L.cursor++}return!1}function o(){var e,i,r=L.cursor;if(L.in_grouping(W,97,259)){if(e=L.cursor,!t())return void(h=L.cursor);if(L.cursor=e,!a())return void(h=L.cursor)}L.cursor=r,L.out_grouping(W,97,259)&&(i=L.cursor,t()&&(L.cursor=i,L.in_grouping(W,97,259)&&L.cursor=L.limit)return!1;L.cursor++}for(;!L.out_grouping(W,97,259);){if(L.cursor>=L.limit)return!1;L.cursor++}return!0}function c(){var e=L.cursor;h=L.limit,k=h,g=h,o(),L.cursor=e,u()&&(k=L.cursor,u()&&(g=L.cursor))}function s(){for(var e;;){if(L.bra=L.cursor,e=L.find_among(z,3))switch(L.ket=L.cursor,e){case 1:L.slice_from("i");continue;case 2:L.slice_from("u");continue;case 3:if(L.cursor>=L.limit)break;L.cursor++;continue}break}}function w(){return h<=L.cursor}function m(){return k<=L.cursor}function l(){return g<=L.cursor}function f(){var e,i;if(L.ket=L.cursor,(e=L.find_among_b(C,16))&&(L.bra=L.cursor,m()))switch(e){case 1:L.slice_del();break;case 2:L.slice_from("a");break;case 3:L.slice_from("e");break;case 4:L.slice_from("i");break;case 5:i=L.limit-L.cursor,L.eq_s_b(2,"ab")||(L.cursor=L.limit-i,L.slice_from("i"));break;case 6:L.slice_from("at");break;case 7:L.slice_from("aţi")}}function p(){var e,i=L.limit-L.cursor;if(L.ket=L.cursor,(e=L.find_among_b(P,46))&&(L.bra=L.cursor,m())){switch(e){case 1:L.slice_from("abil");break;case 2:L.slice_from("ibil");break;case 3:L.slice_from("iv");break;case 4:L.slice_from("ic");break;case 5:L.slice_from("at");break;case 6:L.slice_from("it")}return _=!0,L.cursor=L.limit-i,!0}return!1}function d(){var e,i;for(_=!1;;)if(i=L.limit-L.cursor,!p()){L.cursor=L.limit-i;break}if(L.ket=L.cursor,(e=L.find_among_b(F,62))&&(L.bra=L.cursor,l())){switch(e){case 1:L.slice_del();break;case 2:L.eq_s_b(1,"ţ")&&(L.bra=L.cursor,L.slice_from("t"));break;case 3:L.slice_from("ist")}_=!0}}function b(){var e,i,r;if(L.cursor>=h){if(i=L.limit_backward,L.limit_backward=h,L.ket=L.cursor,e=L.find_among_b(q,94))switch(L.bra=L.cursor,e){case 1:if(r=L.limit-L.cursor,!L.out_grouping_b(W,97,259)&&(L.cursor=L.limit-r,!L.eq_s_b(1,"u")))break;case 2:L.slice_del()}L.limit_backward=i}}function v(){var e;L.ket=L.cursor,(e=L.find_among_b(S,5))&&(L.bra=L.cursor,w()&&1==e&&L.slice_del())}var _,g,k,h,z=[new i("",-1,3),new i("I",0,1),new i("U",0,2)],C=[new i("ea",-1,3),new i("aţia",-1,7),new i("aua",-1,2),new i("iua",-1,4),new i("aţie",-1,7),new i("ele",-1,3),new i("ile",-1,5),new i("iile",6,4),new i("iei",-1,4),new i("atei",-1,6),new i("ii",-1,4),new i("ului",-1,1),new i("ul",-1,1),new i("elor",-1,3),new i("ilor",-1,4),new i("iilor",14,4)],P=[new i("icala",-1,4),new i("iciva",-1,4),new i("ativa",-1,5),new i("itiva",-1,6),new i("icale",-1,4),new i("aţiune",-1,5),new i("iţiune",-1,6),new i("atoare",-1,5),new i("itoare",-1,6),new i("ătoare",-1,5),new i("icitate",-1,4),new i("abilitate",-1,1),new i("ibilitate",-1,2),new i("ivitate",-1,3),new i("icive",-1,4),new i("ative",-1,5),new i("itive",-1,6),new i("icali",-1,4),new i("atori",-1,5),new i("icatori",18,4),new i("itori",-1,6),new i("ători",-1,5),new i("icitati",-1,4),new i("abilitati",-1,1),new i("ivitati",-1,3),new i("icivi",-1,4),new i("ativi",-1,5),new i("itivi",-1,6),new i("icităi",-1,4),new i("abilităi",-1,1),new i("ivităi",-1,3),new i("icităţi",-1,4),new i("abilităţi",-1,1),new i("ivităţi",-1,3),new i("ical",-1,4),new i("ator",-1,5),new i("icator",35,4),new i("itor",-1,6),new i("ător",-1,5),new i("iciv",-1,4),new i("ativ",-1,5),new i("itiv",-1,6),new i("icală",-1,4),new i("icivă",-1,4),new i("ativă",-1,5),new i("itivă",-1,6)],F=[new i("ica",-1,1),new i("abila",-1,1),new i("ibila",-1,1),new i("oasa",-1,1),new i("ata",-1,1),new i("ita",-1,1),new i("anta",-1,1),new i("ista",-1,3),new i("uta",-1,1),new i("iva",-1,1),new i("ic",-1,1),new i("ice",-1,1),new i("abile",-1,1),new i("ibile",-1,1),new i("isme",-1,3),new i("iune",-1,2),new i("oase",-1,1),new i("ate",-1,1),new i("itate",17,1),new i("ite",-1,1),new i("ante",-1,1),new i("iste",-1,3),new i("ute",-1,1),new i("ive",-1,1),new i("ici",-1,1),new i("abili",-1,1),new i("ibili",-1,1),new i("iuni",-1,2),new i("atori",-1,1),new i("osi",-1,1),new i("ati",-1,1),new i("itati",30,1),new i("iti",-1,1),new i("anti",-1,1),new i("isti",-1,3),new i("uti",-1,1),new i("işti",-1,3),new i("ivi",-1,1),new i("ităi",-1,1),new i("oşi",-1,1),new i("ităţi",-1,1),new i("abil",-1,1),new i("ibil",-1,1),new i("ism",-1,3),new i("ator",-1,1),new i("os",-1,1),new i("at",-1,1),new i("it",-1,1),new i("ant",-1,1),new i("ist",-1,3),new i("ut",-1,1),new i("iv",-1,1),new i("ică",-1,1),new i("abilă",-1,1),new i("ibilă",-1,1),new i("oasă",-1,1),new i("ată",-1,1),new i("ită",-1,1),new i("antă",-1,1),new i("istă",-1,3),new i("ută",-1,1),new i("ivă",-1,1)],q=[new i("ea",-1,1),new i("ia",-1,1),new i("esc",-1,1),new i("ăsc",-1,1),new i("ind",-1,1),new i("ând",-1,1),new i("are",-1,1),new i("ere",-1,1),new i("ire",-1,1),new i("âre",-1,1),new i("se",-1,2),new i("ase",10,1),new i("sese",10,2),new i("ise",10,1),new i("use",10,1),new i("âse",10,1),new i("eşte",-1,1),new i("ăşte",-1,1),new i("eze",-1,1),new i("ai",-1,1),new i("eai",19,1),new i("iai",19,1),new i("sei",-1,2),new i("eşti",-1,1),new i("ăşti",-1,1),new i("ui",-1,1),new i("ezi",-1,1),new i("âi",-1,1),new i("aşi",-1,1),new i("seşi",-1,2),new i("aseşi",29,1),new i("seseşi",29,2),new i("iseşi",29,1),new i("useşi",29,1),new i("âseşi",29,1),new i("işi",-1,1),new i("uşi",-1,1),new i("âşi",-1,1),new i("aţi",-1,2),new i("eaţi",38,1),new i("iaţi",38,1),new i("eţi",-1,2),new i("iţi",-1,2),new i("âţi",-1,2),new i("arăţi",-1,1),new i("serăţi",-1,2),new i("aserăţi",45,1),new i("seserăţi",45,2),new i("iserăţi",45,1),new i("userăţi",45,1),new i("âserăţi",45,1),new i("irăţi",-1,1),new i("urăţi",-1,1),new i("ârăţi",-1,1),new i("am",-1,1),new i("eam",54,1),new i("iam",54,1),new i("em",-1,2),new i("asem",57,1),new i("sesem",57,2),new i("isem",57,1),new i("usem",57,1),new i("âsem",57,1),new i("im",-1,2),new i("âm",-1,2),new i("ăm",-1,2),new i("arăm",65,1),new i("serăm",65,2),new i("aserăm",67,1),new i("seserăm",67,2),new i("iserăm",67,1),new i("userăm",67,1),new i("âserăm",67,1),new i("irăm",65,1),new i("urăm",65,1),new i("ârăm",65,1),new i("au",-1,1),new i("eau",76,1),new i("iau",76,1),new i("indu",-1,1),new i("ându",-1,1),new i("ez",-1,1),new i("ească",-1,1),new i("ară",-1,1),new i("seră",-1,2),new i("aseră",84,1),new i("seseră",84,2),new i("iseră",84,1),new i("useră",84,1),new i("âseră",84,1),new i("iră",-1,1),new i("ură",-1,1),new i("âră",-1,1),new i("ează",-1,1)],S=[new i("a",-1,1),new i("e",-1,1),new i("ie",1,1),new i("i",-1,1),new i("ă",-1,1)],W=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,0,2,32,0,0,4],L=new r;this.setCurrent=function(e){L.setCurrent(e)},this.getCurrent=function(){return L.getCurrent()},this.stem=function(){var e=L.cursor;return n(),L.cursor=e,c(),L.limit_backward=e,L.cursor=L.limit,f(),L.cursor=L.limit,d(),L.cursor=L.limit,_||(L.cursor=L.limit,b(),L.cursor=L.limit),v(),L.cursor=L.limit_backward,s(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return n.setCurrent(e),n.stem(),n.getCurrent()}):(n.setCurrent(e),n.stem(),n.getCurrent())}}(),e.Pipeline.registerFunction(e.ro.stemmer,"stemmer-ro"),e.ro.stopWordFilter=e.generateStopWordFilter("acea aceasta această aceea acei aceia acel acela acele acelea acest acesta aceste acestea aceşti aceştia acolo acord acum ai aia aibă aici al ale alea altceva altcineva am ar are asemenea asta astea astăzi asupra au avea avem aveţi azi aş aşadar aţi bine bucur bună ca care caut ce cel ceva chiar cinci cine cineva contra cu cum cumva curând curînd când cât câte câtva câţi cînd cît cîte cîtva cîţi că căci cărei căror cărui către da dacă dar datorită dată dau de deci deja deoarece departe deşi din dinaintea dintr- dintre doi doilea două drept după dă ea ei el ele eram este eu eşti face fata fi fie fiecare fii fim fiu fiţi frumos fără graţie halbă iar ieri la le li lor lui lângă lîngă mai mea mei mele mereu meu mi mie mine mult multă mulţi mulţumesc mâine mîine mă ne nevoie nici nicăieri nimeni nimeri nimic nişte noastre noastră noi noroc nostru nouă noştri nu opt ori oricare orice oricine oricum oricând oricât oricînd oricît oriunde patra patru patrulea pe pentru peste pic poate pot prea prima primul prin puţin puţina puţină până pînă rog sa sale sau se spate spre sub sunt suntem sunteţi sută sînt sîntem sînteţi să săi său ta tale te timp tine toate toată tot totuşi toţi trei treia treilea tu tăi tău un una unde undeva unei uneia unele uneori unii unor unora unu unui unuia unul vi voastre voastră voi vostru vouă voştri vreme vreo vreun vă zece zero zi zice îi îl îmi împotriva în înainte înaintea încotro încât încît între întrucât întrucît îţi ăla ălea ăsta ăstea ăştia şapte şase şi ştiu ţi ţie".split(" ")),e.Pipeline.registerFunction(e.ro.stopWordFilter,"stopWordFilter-ro")}}); \ No newline at end of file diff --git a/1.3/assets/javascripts/lunr/min/lunr.ru.min.js b/1.3/assets/javascripts/lunr/min/lunr.ru.min.js new file mode 100644 index 00000000..186cc485 --- /dev/null +++ b/1.3/assets/javascripts/lunr/min/lunr.ru.min.js @@ -0,0 +1,18 @@ +/*! + * Lunr languages, `Russian` language + * https://github.com/MihaiValentin/lunr-languages + * + * Copyright 2014, Mihai Valentin + * http://www.mozilla.org/MPL/ + */ +/*! + * based on + * Snowball JavaScript Library v0.3 + * http://code.google.com/p/urim/ + * http://snowball.tartarus.org/ + * + * Copyright 2010, Oleg Mazko + * http://www.mozilla.org/MPL/ + */ + +!function(e,n){"function"==typeof define&&define.amd?define(n):"object"==typeof exports?module.exports=n():n()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.ru=function(){this.pipeline.reset(),this.pipeline.add(e.ru.trimmer,e.ru.stopWordFilter,e.ru.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.ru.stemmer))},e.ru.wordCharacters="Ѐ-҄҇-ԯᴫᵸⷠ-ⷿꙀ-ꚟ︮︯",e.ru.trimmer=e.trimmerSupport.generateTrimmer(e.ru.wordCharacters),e.Pipeline.registerFunction(e.ru.trimmer,"trimmer-ru"),e.ru.stemmer=function(){var n=e.stemmerSupport.Among,r=e.stemmerSupport.SnowballProgram,t=new function(){function e(){for(;!W.in_grouping(S,1072,1103);){if(W.cursor>=W.limit)return!1;W.cursor++}return!0}function t(){for(;!W.out_grouping(S,1072,1103);){if(W.cursor>=W.limit)return!1;W.cursor++}return!0}function w(){b=W.limit,_=b,e()&&(b=W.cursor,t()&&e()&&t()&&(_=W.cursor))}function i(){return _<=W.cursor}function u(e,n){var r,t;if(W.ket=W.cursor,r=W.find_among_b(e,n)){switch(W.bra=W.cursor,r){case 1:if(t=W.limit-W.cursor,!W.eq_s_b(1,"а")&&(W.cursor=W.limit-t,!W.eq_s_b(1,"я")))return!1;case 2:W.slice_del()}return!0}return!1}function o(){return u(h,9)}function s(e,n){var r;return W.ket=W.cursor,!!(r=W.find_among_b(e,n))&&(W.bra=W.cursor,1==r&&W.slice_del(),!0)}function c(){return s(g,26)}function m(){return!!c()&&(u(C,8),!0)}function f(){return s(k,2)}function l(){return u(P,46)}function a(){s(v,36)}function p(){var e;W.ket=W.cursor,(e=W.find_among_b(F,2))&&(W.bra=W.cursor,i()&&1==e&&W.slice_del())}function d(){var e;if(W.ket=W.cursor,e=W.find_among_b(q,4))switch(W.bra=W.cursor,e){case 1:if(W.slice_del(),W.ket=W.cursor,!W.eq_s_b(1,"н"))break;W.bra=W.cursor;case 2:if(!W.eq_s_b(1,"н"))break;case 3:W.slice_del()}}var _,b,h=[new n("в",-1,1),new n("ив",0,2),new n("ыв",0,2),new n("вши",-1,1),new n("ивши",3,2),new n("ывши",3,2),new n("вшись",-1,1),new n("ившись",6,2),new n("ывшись",6,2)],g=[new n("ее",-1,1),new n("ие",-1,1),new n("ое",-1,1),new n("ые",-1,1),new n("ими",-1,1),new n("ыми",-1,1),new n("ей",-1,1),new n("ий",-1,1),new n("ой",-1,1),new n("ый",-1,1),new n("ем",-1,1),new n("им",-1,1),new n("ом",-1,1),new n("ым",-1,1),new n("его",-1,1),new n("ого",-1,1),new n("ему",-1,1),new n("ому",-1,1),new n("их",-1,1),new n("ых",-1,1),new n("ею",-1,1),new n("ою",-1,1),new n("ую",-1,1),new n("юю",-1,1),new n("ая",-1,1),new n("яя",-1,1)],C=[new n("ем",-1,1),new n("нн",-1,1),new n("вш",-1,1),new n("ивш",2,2),new n("ывш",2,2),new n("щ",-1,1),new n("ющ",5,1),new n("ующ",6,2)],k=[new n("сь",-1,1),new n("ся",-1,1)],P=[new n("ла",-1,1),new n("ила",0,2),new n("ыла",0,2),new n("на",-1,1),new n("ена",3,2),new n("ете",-1,1),new n("ите",-1,2),new n("йте",-1,1),new n("ейте",7,2),new n("уйте",7,2),new n("ли",-1,1),new n("или",10,2),new n("ыли",10,2),new n("й",-1,1),new n("ей",13,2),new n("уй",13,2),new n("л",-1,1),new n("ил",16,2),new n("ыл",16,2),new n("ем",-1,1),new n("им",-1,2),new n("ым",-1,2),new n("н",-1,1),new n("ен",22,2),new n("ло",-1,1),new n("ило",24,2),new n("ыло",24,2),new n("но",-1,1),new n("ено",27,2),new n("нно",27,1),new n("ет",-1,1),new n("ует",30,2),new n("ит",-1,2),new n("ыт",-1,2),new n("ют",-1,1),new n("уют",34,2),new n("ят",-1,2),new n("ны",-1,1),new n("ены",37,2),new n("ть",-1,1),new n("ить",39,2),new n("ыть",39,2),new n("ешь",-1,1),new n("ишь",-1,2),new n("ю",-1,2),new n("ую",44,2)],v=[new n("а",-1,1),new n("ев",-1,1),new n("ов",-1,1),new n("е",-1,1),new n("ие",3,1),new n("ье",3,1),new n("и",-1,1),new n("еи",6,1),new n("ии",6,1),new n("ами",6,1),new n("ями",6,1),new n("иями",10,1),new n("й",-1,1),new n("ей",12,1),new n("ией",13,1),new n("ий",12,1),new n("ой",12,1),new n("ам",-1,1),new n("ем",-1,1),new n("ием",18,1),new n("ом",-1,1),new n("ям",-1,1),new n("иям",21,1),new n("о",-1,1),new n("у",-1,1),new n("ах",-1,1),new n("ях",-1,1),new n("иях",26,1),new n("ы",-1,1),new n("ь",-1,1),new n("ю",-1,1),new n("ию",30,1),new n("ью",30,1),new n("я",-1,1),new n("ия",33,1),new n("ья",33,1)],F=[new n("ост",-1,1),new n("ость",-1,1)],q=[new n("ейше",-1,1),new n("н",-1,2),new n("ейш",-1,1),new n("ь",-1,3)],S=[33,65,8,232],W=new r;this.setCurrent=function(e){W.setCurrent(e)},this.getCurrent=function(){return W.getCurrent()},this.stem=function(){return w(),W.cursor=W.limit,!(W.cursor=i&&(e-=i,t[e>>3]&1<<(7&e)))return this.cursor++,!0}return!1},in_grouping_b:function(t,i,s){if(this.cursor>this.limit_backward){var e=r.charCodeAt(this.cursor-1);if(e<=s&&e>=i&&(e-=i,t[e>>3]&1<<(7&e)))return this.cursor--,!0}return!1},out_grouping:function(t,i,s){if(this.cursors||e>3]&1<<(7&e)))return this.cursor++,!0}return!1},out_grouping_b:function(t,i,s){if(this.cursor>this.limit_backward){var e=r.charCodeAt(this.cursor-1);if(e>s||e>3]&1<<(7&e)))return this.cursor--,!0}return!1},eq_s:function(t,i){if(this.limit-this.cursor>1),f=0,l=o0||e==s||c)break;c=!0}}for(;;){var _=t[s];if(o>=_.s_size){if(this.cursor=n+_.s_size,!_.method)return _.result;var b=_.method();if(this.cursor=n+_.s_size,b)return _.result}if((s=_.substring_i)<0)return 0}},find_among_b:function(t,i){for(var s=0,e=i,n=this.cursor,u=this.limit_backward,o=0,h=0,c=!1;;){for(var a=s+(e-s>>1),f=0,l=o=0;m--){if(n-l==u){f=-1;break}if(f=r.charCodeAt(n-1-l)-_.s[m])break;l++}if(f<0?(e=a,h=l):(s=a,o=l),e-s<=1){if(s>0||e==s||c)break;c=!0}}for(;;){var _=t[s];if(o>=_.s_size){if(this.cursor=n-_.s_size,!_.method)return _.result;var b=_.method();if(this.cursor=n-_.s_size,b)return _.result}if((s=_.substring_i)<0)return 0}},replace_s:function(t,i,s){var e=s.length-(i-t),n=r.substring(0,t),u=r.substring(i);return r=n+s+u,this.limit+=e,this.cursor>=i?this.cursor+=e:this.cursor>t&&(this.cursor=t),e},slice_check:function(){if(this.bra<0||this.bra>this.ket||this.ket>this.limit||this.limit>r.length)throw"faulty slice operation"},slice_from:function(r){this.slice_check(),this.replace_s(this.bra,this.ket,r)},slice_del:function(){this.slice_from("")},insert:function(r,t,i){var s=this.replace_s(r,t,i);r<=this.bra&&(this.bra+=s),r<=this.ket&&(this.ket+=s)},slice_to:function(){return this.slice_check(),r.substring(this.bra,this.ket)},eq_v_b:function(r){return this.eq_s_b(r.length,r)}}}},r.trimmerSupport={generateTrimmer:function(r){var t=new RegExp("^[^"+r+"]+"),i=new RegExp("[^"+r+"]+$");return function(r){return"function"==typeof r.update?r.update(function(r){return r.replace(t,"").replace(i,"")}):r.replace(t,"").replace(i,"")}}}}}); \ No newline at end of file diff --git a/1.3/assets/javascripts/lunr/min/lunr.sv.min.js b/1.3/assets/javascripts/lunr/min/lunr.sv.min.js new file mode 100644 index 00000000..3e5eb640 --- /dev/null +++ b/1.3/assets/javascripts/lunr/min/lunr.sv.min.js @@ -0,0 +1,18 @@ +/*! + * Lunr languages, `Swedish` language + * https://github.com/MihaiValentin/lunr-languages + * + * Copyright 2014, Mihai Valentin + * http://www.mozilla.org/MPL/ + */ +/*! + * based on + * Snowball JavaScript Library v0.3 + * http://code.google.com/p/urim/ + * http://snowball.tartarus.org/ + * + * Copyright 2010, Oleg Mazko + * http://www.mozilla.org/MPL/ + */ + +!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.sv=function(){this.pipeline.reset(),this.pipeline.add(e.sv.trimmer,e.sv.stopWordFilter,e.sv.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.sv.stemmer))},e.sv.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.sv.trimmer=e.trimmerSupport.generateTrimmer(e.sv.wordCharacters),e.Pipeline.registerFunction(e.sv.trimmer,"trimmer-sv"),e.sv.stemmer=function(){var r=e.stemmerSupport.Among,n=e.stemmerSupport.SnowballProgram,t=new function(){function e(){var e,r=w.cursor+3;if(o=w.limit,0<=r||r<=w.limit){for(a=r;;){if(e=w.cursor,w.in_grouping(l,97,246)){w.cursor=e;break}if(w.cursor=e,w.cursor>=w.limit)return;w.cursor++}for(;!w.out_grouping(l,97,246);){if(w.cursor>=w.limit)return;w.cursor++}o=w.cursor,o=o&&(w.limit_backward=o,w.cursor=w.limit,w.ket=w.cursor,e=w.find_among_b(u,37),w.limit_backward=r,e))switch(w.bra=w.cursor,e){case 1:w.slice_del();break;case 2:w.in_grouping_b(d,98,121)&&w.slice_del()}}function i(){var e=w.limit_backward;w.cursor>=o&&(w.limit_backward=o,w.cursor=w.limit,w.find_among_b(c,7)&&(w.cursor=w.limit,w.ket=w.cursor,w.cursor>w.limit_backward&&(w.bra=--w.cursor,w.slice_del())),w.limit_backward=e)}function s(){var e,r;if(w.cursor>=o){if(r=w.limit_backward,w.limit_backward=o,w.cursor=w.limit,w.ket=w.cursor,e=w.find_among_b(m,5))switch(w.bra=w.cursor,e){case 1:w.slice_del();break;case 2:w.slice_from("lös");break;case 3:w.slice_from("full")}w.limit_backward=r}}var a,o,u=[new r("a",-1,1),new r("arna",0,1),new r("erna",0,1),new r("heterna",2,1),new r("orna",0,1),new r("ad",-1,1),new r("e",-1,1),new r("ade",6,1),new r("ande",6,1),new r("arne",6,1),new r("are",6,1),new r("aste",6,1),new r("en",-1,1),new r("anden",12,1),new r("aren",12,1),new r("heten",12,1),new r("ern",-1,1),new r("ar",-1,1),new r("er",-1,1),new r("heter",18,1),new r("or",-1,1),new r("s",-1,2),new r("as",21,1),new r("arnas",22,1),new r("ernas",22,1),new r("ornas",22,1),new r("es",21,1),new r("ades",26,1),new r("andes",26,1),new r("ens",21,1),new r("arens",29,1),new r("hetens",29,1),new r("erns",21,1),new r("at",-1,1),new r("andet",-1,1),new r("het",-1,1),new r("ast",-1,1)],c=[new r("dd",-1,-1),new r("gd",-1,-1),new r("nn",-1,-1),new r("dt",-1,-1),new r("gt",-1,-1),new r("kt",-1,-1),new r("tt",-1,-1)],m=[new r("ig",-1,1),new r("lig",0,1),new r("els",-1,1),new r("fullt",-1,3),new r("löst",-1,2)],l=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,24,0,32],d=[119,127,149],w=new n;this.setCurrent=function(e){w.setCurrent(e)},this.getCurrent=function(){return w.getCurrent()},this.stem=function(){var r=w.cursor;return e(),w.limit_backward=r,w.cursor=w.limit,t(),w.cursor=w.limit,i(),w.cursor=w.limit,s(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return t.setCurrent(e),t.stem(),t.getCurrent()}):(t.setCurrent(e),t.stem(),t.getCurrent())}}(),e.Pipeline.registerFunction(e.sv.stemmer,"stemmer-sv"),e.sv.stopWordFilter=e.generateStopWordFilter("alla allt att av blev bli blir blivit de dem den denna deras dess dessa det detta dig din dina ditt du där då efter ej eller en er era ert ett från för ha hade han hans har henne hennes hon honom hur här i icke ingen inom inte jag ju kan kunde man med mellan men mig min mina mitt mot mycket ni nu när någon något några och om oss på samma sedan sig sin sina sitta själv skulle som så sådan sådana sådant till under upp ut utan vad var vara varför varit varje vars vart vem vi vid vilka vilkas vilken vilket vår våra vårt än är åt över".split(" ")),e.Pipeline.registerFunction(e.sv.stopWordFilter,"stopWordFilter-sv")}}); \ No newline at end of file diff --git a/1.3/assets/javascripts/lunr/min/lunr.tr.min.js b/1.3/assets/javascripts/lunr/min/lunr.tr.min.js new file mode 100644 index 00000000..563f6ec1 --- /dev/null +++ b/1.3/assets/javascripts/lunr/min/lunr.tr.min.js @@ -0,0 +1,18 @@ +/*! + * Lunr languages, `Turkish` language + * https://github.com/MihaiValentin/lunr-languages + * + * Copyright 2014, Mihai Valentin + * http://www.mozilla.org/MPL/ + */ +/*! + * based on + * Snowball JavaScript Library v0.3 + * http://code.google.com/p/urim/ + * http://snowball.tartarus.org/ + * + * Copyright 2010, Oleg Mazko + * http://www.mozilla.org/MPL/ + */ + +!function(r,i){"function"==typeof define&&define.amd?define(i):"object"==typeof exports?module.exports=i():i()(r.lunr)}(this,function(){return function(r){if(void 0===r)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===r.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");r.tr=function(){this.pipeline.reset(),this.pipeline.add(r.tr.trimmer,r.tr.stopWordFilter,r.tr.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(r.tr.stemmer))},r.tr.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",r.tr.trimmer=r.trimmerSupport.generateTrimmer(r.tr.wordCharacters),r.Pipeline.registerFunction(r.tr.trimmer,"trimmer-tr"),r.tr.stemmer=function(){var i=r.stemmerSupport.Among,e=r.stemmerSupport.SnowballProgram,n=new function(){function r(r,i,e){for(;;){var n=Dr.limit-Dr.cursor;if(Dr.in_grouping_b(r,i,e)){Dr.cursor=Dr.limit-n;break}if(Dr.cursor=Dr.limit-n,Dr.cursor<=Dr.limit_backward)return!1;Dr.cursor--}return!0}function n(){var i,e;i=Dr.limit-Dr.cursor,r(Wr,97,305);for(var n=0;nDr.limit_backward&&(Dr.cursor--,e=Dr.limit-Dr.cursor,i()))?(Dr.cursor=Dr.limit-e,!0):(Dr.cursor=Dr.limit-n,r()?(Dr.cursor=Dr.limit-n,!1):(Dr.cursor=Dr.limit-n,!(Dr.cursor<=Dr.limit_backward)&&(Dr.cursor--,!!i()&&(Dr.cursor=Dr.limit-n,!0))))}function u(r){return t(r,function(){return Dr.in_grouping_b(Wr,97,305)})}function o(){return u(function(){return Dr.eq_s_b(1,"n")})}function s(){return u(function(){return Dr.eq_s_b(1,"s")})}function c(){return u(function(){return Dr.eq_s_b(1,"y")})}function l(){return t(function(){return Dr.in_grouping_b(Lr,105,305)},function(){return Dr.out_grouping_b(Wr,97,305)})}function a(){return Dr.find_among_b(ur,10)&&l()}function m(){return n()&&Dr.in_grouping_b(Lr,105,305)&&s()}function d(){return Dr.find_among_b(or,2)}function f(){return n()&&Dr.in_grouping_b(Lr,105,305)&&c()}function b(){return n()&&Dr.find_among_b(sr,4)}function w(){return n()&&Dr.find_among_b(cr,4)&&o()}function _(){return n()&&Dr.find_among_b(lr,2)&&c()}function k(){return n()&&Dr.find_among_b(ar,2)}function p(){return n()&&Dr.find_among_b(mr,4)}function g(){return n()&&Dr.find_among_b(dr,2)}function y(){return n()&&Dr.find_among_b(fr,4)}function z(){return n()&&Dr.find_among_b(br,2)}function v(){return n()&&Dr.find_among_b(wr,2)&&c()}function h(){return Dr.eq_s_b(2,"ki")}function q(){return n()&&Dr.find_among_b(_r,2)&&o()}function C(){return n()&&Dr.find_among_b(kr,4)&&c()}function P(){return n()&&Dr.find_among_b(pr,4)}function F(){return n()&&Dr.find_among_b(gr,4)&&c()}function S(){return Dr.find_among_b(yr,4)}function W(){return n()&&Dr.find_among_b(zr,2)}function L(){return n()&&Dr.find_among_b(vr,4)}function x(){return n()&&Dr.find_among_b(hr,8)}function A(){return Dr.find_among_b(qr,2)}function E(){return n()&&Dr.find_among_b(Cr,32)&&c()}function j(){return Dr.find_among_b(Pr,8)&&c()}function T(){return n()&&Dr.find_among_b(Fr,4)&&c()}function Z(){return Dr.eq_s_b(3,"ken")&&c()}function B(){var r=Dr.limit-Dr.cursor;return!(T()||(Dr.cursor=Dr.limit-r,E()||(Dr.cursor=Dr.limit-r,j()||(Dr.cursor=Dr.limit-r,Z()))))}function D(){if(A()){var r=Dr.limit-Dr.cursor;if(S()||(Dr.cursor=Dr.limit-r,W()||(Dr.cursor=Dr.limit-r,C()||(Dr.cursor=Dr.limit-r,P()||(Dr.cursor=Dr.limit-r,F()||(Dr.cursor=Dr.limit-r))))),T())return!1}return!0}function G(){if(W()){Dr.bra=Dr.cursor,Dr.slice_del();var r=Dr.limit-Dr.cursor;return Dr.ket=Dr.cursor,x()||(Dr.cursor=Dr.limit-r,E()||(Dr.cursor=Dr.limit-r,j()||(Dr.cursor=Dr.limit-r,T()||(Dr.cursor=Dr.limit-r)))),nr=!1,!1}return!0}function H(){if(!L())return!0;var r=Dr.limit-Dr.cursor;return!E()&&(Dr.cursor=Dr.limit-r,!j())}function I(){var r,i=Dr.limit-Dr.cursor;return!(S()||(Dr.cursor=Dr.limit-i,F()||(Dr.cursor=Dr.limit-i,P()||(Dr.cursor=Dr.limit-i,C()))))||(Dr.bra=Dr.cursor,Dr.slice_del(),r=Dr.limit-Dr.cursor,Dr.ket=Dr.cursor,T()||(Dr.cursor=Dr.limit-r),!1)}function J(){var r,i=Dr.limit-Dr.cursor;if(Dr.ket=Dr.cursor,nr=!0,B()&&(Dr.cursor=Dr.limit-i,D()&&(Dr.cursor=Dr.limit-i,G()&&(Dr.cursor=Dr.limit-i,H()&&(Dr.cursor=Dr.limit-i,I()))))){if(Dr.cursor=Dr.limit-i,!x())return;Dr.bra=Dr.cursor,Dr.slice_del(),Dr.ket=Dr.cursor,r=Dr.limit-Dr.cursor,S()||(Dr.cursor=Dr.limit-r,W()||(Dr.cursor=Dr.limit-r,C()||(Dr.cursor=Dr.limit-r,P()||(Dr.cursor=Dr.limit-r,F()||(Dr.cursor=Dr.limit-r))))),T()||(Dr.cursor=Dr.limit-r)}Dr.bra=Dr.cursor,Dr.slice_del()}function K(){var r,i,e,n;if(Dr.ket=Dr.cursor,h()){if(r=Dr.limit-Dr.cursor,p())return Dr.bra=Dr.cursor,Dr.slice_del(),i=Dr.limit-Dr.cursor,Dr.ket=Dr.cursor,W()?(Dr.bra=Dr.cursor,Dr.slice_del(),K()):(Dr.cursor=Dr.limit-i,a()&&(Dr.bra=Dr.cursor,Dr.slice_del(),Dr.ket=Dr.cursor,W()&&(Dr.bra=Dr.cursor,Dr.slice_del(),K()))),!0;if(Dr.cursor=Dr.limit-r,w()){if(Dr.bra=Dr.cursor,Dr.slice_del(),Dr.ket=Dr.cursor,e=Dr.limit-Dr.cursor,d())Dr.bra=Dr.cursor,Dr.slice_del();else{if(Dr.cursor=Dr.limit-e,Dr.ket=Dr.cursor,!a()&&(Dr.cursor=Dr.limit-e,!m()&&(Dr.cursor=Dr.limit-e,!K())))return!0;Dr.bra=Dr.cursor,Dr.slice_del(),Dr.ket=Dr.cursor,W()&&(Dr.bra=Dr.cursor,Dr.slice_del(),K())}return!0}if(Dr.cursor=Dr.limit-r,g()){if(n=Dr.limit-Dr.cursor,d())Dr.bra=Dr.cursor,Dr.slice_del();else if(Dr.cursor=Dr.limit-n,m())Dr.bra=Dr.cursor,Dr.slice_del(),Dr.ket=Dr.cursor,W()&&(Dr.bra=Dr.cursor,Dr.slice_del(),K());else if(Dr.cursor=Dr.limit-n,!K())return!1;return!0}}return!1}function M(r){if(Dr.ket=Dr.cursor,!g()&&(Dr.cursor=Dr.limit-r,!k()))return!1;var i=Dr.limit-Dr.cursor;if(d())Dr.bra=Dr.cursor,Dr.slice_del();else if(Dr.cursor=Dr.limit-i,m())Dr.bra=Dr.cursor,Dr.slice_del(),Dr.ket=Dr.cursor,W()&&(Dr.bra=Dr.cursor,Dr.slice_del(),K());else if(Dr.cursor=Dr.limit-i,!K())return!1;return!0}function N(r){if(Dr.ket=Dr.cursor,!z()&&(Dr.cursor=Dr.limit-r,!b()))return!1;var i=Dr.limit-Dr.cursor;return!(!m()&&(Dr.cursor=Dr.limit-i,!d()))&&(Dr.bra=Dr.cursor,Dr.slice_del(),Dr.ket=Dr.cursor,W()&&(Dr.bra=Dr.cursor,Dr.slice_del(),K()),!0)}function O(){var r,i=Dr.limit-Dr.cursor;return Dr.ket=Dr.cursor,!(!w()&&(Dr.cursor=Dr.limit-i,!v()))&&(Dr.bra=Dr.cursor,Dr.slice_del(),r=Dr.limit-Dr.cursor,Dr.ket=Dr.cursor,!(!W()||(Dr.bra=Dr.cursor,Dr.slice_del(),!K()))||(Dr.cursor=Dr.limit-r,Dr.ket=Dr.cursor,!(a()||(Dr.cursor=Dr.limit-r,m()||(Dr.cursor=Dr.limit-r,K())))||(Dr.bra=Dr.cursor,Dr.slice_del(),Dr.ket=Dr.cursor,W()&&(Dr.bra=Dr.cursor,Dr.slice_del(),K()),!0)))}function Q(){var r,i,e=Dr.limit-Dr.cursor;if(Dr.ket=Dr.cursor,!p()&&(Dr.cursor=Dr.limit-e,!f()&&(Dr.cursor=Dr.limit-e,!_())))return!1;if(Dr.bra=Dr.cursor,Dr.slice_del(),Dr.ket=Dr.cursor,r=Dr.limit-Dr.cursor,a())Dr.bra=Dr.cursor,Dr.slice_del(),i=Dr.limit-Dr.cursor,Dr.ket=Dr.cursor,W()||(Dr.cursor=Dr.limit-i);else if(Dr.cursor=Dr.limit-r,!W())return!0;return Dr.bra=Dr.cursor,Dr.slice_del(),Dr.ket=Dr.cursor,K(),!0}function R(){var r,i,e=Dr.limit-Dr.cursor;if(Dr.ket=Dr.cursor,W())return Dr.bra=Dr.cursor,Dr.slice_del(),void K();if(Dr.cursor=Dr.limit-e,Dr.ket=Dr.cursor,q())if(Dr.bra=Dr.cursor,Dr.slice_del(),r=Dr.limit-Dr.cursor,Dr.ket=Dr.cursor,d())Dr.bra=Dr.cursor,Dr.slice_del();else{if(Dr.cursor=Dr.limit-r,Dr.ket=Dr.cursor,!a()&&(Dr.cursor=Dr.limit-r,!m())){if(Dr.cursor=Dr.limit-r,Dr.ket=Dr.cursor,!W())return;if(Dr.bra=Dr.cursor,Dr.slice_del(),!K())return}Dr.bra=Dr.cursor,Dr.slice_del(),Dr.ket=Dr.cursor,W()&&(Dr.bra=Dr.cursor,Dr.slice_del(),K())}else if(Dr.cursor=Dr.limit-e,!M(e)&&(Dr.cursor=Dr.limit-e,!N(e))){if(Dr.cursor=Dr.limit-e,Dr.ket=Dr.cursor,y())return Dr.bra=Dr.cursor,Dr.slice_del(),Dr.ket=Dr.cursor,i=Dr.limit-Dr.cursor,void(a()?(Dr.bra=Dr.cursor,Dr.slice_del(),Dr.ket=Dr.cursor,W()&&(Dr.bra=Dr.cursor,Dr.slice_del(),K())):(Dr.cursor=Dr.limit-i,W()?(Dr.bra=Dr.cursor,Dr.slice_del(),K()):(Dr.cursor=Dr.limit-i,K())));if(Dr.cursor=Dr.limit-e,!O()){if(Dr.cursor=Dr.limit-e,d())return Dr.bra=Dr.cursor,void Dr.slice_del();Dr.cursor=Dr.limit-e,K()||(Dr.cursor=Dr.limit-e,Q()||(Dr.cursor=Dr.limit-e,Dr.ket=Dr.cursor,(a()||(Dr.cursor=Dr.limit-e,m()))&&(Dr.bra=Dr.cursor,Dr.slice_del(),Dr.ket=Dr.cursor,W()&&(Dr.bra=Dr.cursor,Dr.slice_del(),K()))))}}}function U(){var r;if(Dr.ket=Dr.cursor,r=Dr.find_among_b(Sr,4))switch(Dr.bra=Dr.cursor,r){case 1:Dr.slice_from("p");break;case 2:Dr.slice_from("ç");break;case 3:Dr.slice_from("t");break;case 4:Dr.slice_from("k")}}function V(){for(;;){var r=Dr.limit-Dr.cursor;if(Dr.in_grouping_b(Wr,97,305)){Dr.cursor=Dr.limit-r;break}if(Dr.cursor=Dr.limit-r,Dr.cursor<=Dr.limit_backward)return!1;Dr.cursor--}return!0}function X(r,i,e){if(Dr.cursor=Dr.limit-r,V()){var n=Dr.limit-Dr.cursor;if(!Dr.eq_s_b(1,i)&&(Dr.cursor=Dr.limit-n,!Dr.eq_s_b(1,e)))return!0;Dr.cursor=Dr.limit-r;var t=Dr.cursor;return Dr.insert(Dr.cursor,Dr.cursor,e),Dr.cursor=t,!1}return!0}function Y(){var r=Dr.limit-Dr.cursor;(Dr.eq_s_b(1,"d")||(Dr.cursor=Dr.limit-r,Dr.eq_s_b(1,"g")))&&X(r,"a","ı")&&X(r,"e","i")&&X(r,"o","u")&&X(r,"ö","ü")}function $(){for(var r,i=Dr.cursor,e=2;;){for(r=Dr.cursor;!Dr.in_grouping(Wr,97,305);){if(Dr.cursor>=Dr.limit)return Dr.cursor=r,!(e>0)&&(Dr.cursor=i,!0);Dr.cursor++}e--}}function rr(r,i,e){for(;!Dr.eq_s(i,e);){if(Dr.cursor>=Dr.limit)return!0;Dr.cursor++}return(tr=i)!=Dr.limit||(Dr.cursor=r,!1)}function ir(){var r=Dr.cursor;return!rr(r,2,"ad")||(Dr.cursor=r,!rr(r,5,"soyad"))}function er(){var r=Dr.cursor;return!ir()&&(Dr.limit_backward=r,Dr.cursor=Dr.limit,Y(),Dr.cursor=Dr.limit,U(),!0)}var nr,tr,ur=[new i("m",-1,-1),new i("n",-1,-1),new i("miz",-1,-1),new i("niz",-1,-1),new i("muz",-1,-1),new i("nuz",-1,-1),new i("müz",-1,-1),new i("nüz",-1,-1),new i("mız",-1,-1),new i("nız",-1,-1)],or=[new i("leri",-1,-1),new i("ları",-1,-1)],sr=[new i("ni",-1,-1),new i("nu",-1,-1),new i("nü",-1,-1),new i("nı",-1,-1)],cr=[new i("in",-1,-1),new i("un",-1,-1),new i("ün",-1,-1),new i("ın",-1,-1)],lr=[new i("a",-1,-1),new i("e",-1,-1)],ar=[new i("na",-1,-1),new i("ne",-1,-1)],mr=[new i("da",-1,-1),new i("ta",-1,-1),new i("de",-1,-1),new i("te",-1,-1)],dr=[new i("nda",-1,-1),new i("nde",-1,-1)],fr=[new i("dan",-1,-1),new i("tan",-1,-1),new i("den",-1,-1),new i("ten",-1,-1)],br=[new i("ndan",-1,-1),new i("nden",-1,-1)],wr=[new i("la",-1,-1),new i("le",-1,-1)],_r=[new i("ca",-1,-1),new i("ce",-1,-1)],kr=[new i("im",-1,-1),new i("um",-1,-1),new i("üm",-1,-1),new i("ım",-1,-1)],pr=[new i("sin",-1,-1),new i("sun",-1,-1),new i("sün",-1,-1),new i("sın",-1,-1)],gr=[new i("iz",-1,-1),new i("uz",-1,-1),new i("üz",-1,-1),new i("ız",-1,-1)],yr=[new i("siniz",-1,-1),new i("sunuz",-1,-1),new i("sünüz",-1,-1),new i("sınız",-1,-1)],zr=[new i("lar",-1,-1),new i("ler",-1,-1)],vr=[new i("niz",-1,-1),new i("nuz",-1,-1),new i("nüz",-1,-1),new i("nız",-1,-1)],hr=[new i("dir",-1,-1),new i("tir",-1,-1),new i("dur",-1,-1),new i("tur",-1,-1),new i("dür",-1,-1),new i("tür",-1,-1),new i("dır",-1,-1),new i("tır",-1,-1)],qr=[new i("casına",-1,-1),new i("cesine",-1,-1)],Cr=[new i("di",-1,-1),new i("ti",-1,-1),new i("dik",-1,-1),new i("tik",-1,-1),new i("duk",-1,-1),new i("tuk",-1,-1),new i("dük",-1,-1),new i("tük",-1,-1),new i("dık",-1,-1),new i("tık",-1,-1),new i("dim",-1,-1),new i("tim",-1,-1),new i("dum",-1,-1),new i("tum",-1,-1),new i("düm",-1,-1),new i("tüm",-1,-1),new i("dım",-1,-1),new i("tım",-1,-1),new i("din",-1,-1),new i("tin",-1,-1),new i("dun",-1,-1),new i("tun",-1,-1),new i("dün",-1,-1),new i("tün",-1,-1),new i("dın",-1,-1),new i("tın",-1,-1),new i("du",-1,-1),new i("tu",-1,-1),new i("dü",-1,-1),new i("tü",-1,-1),new i("dı",-1,-1),new i("tı",-1,-1)],Pr=[new i("sa",-1,-1),new i("se",-1,-1),new i("sak",-1,-1),new i("sek",-1,-1),new i("sam",-1,-1),new i("sem",-1,-1),new i("san",-1,-1),new i("sen",-1,-1)],Fr=[new i("miş",-1,-1),new i("muş",-1,-1),new i("müş",-1,-1),new i("mış",-1,-1)],Sr=[new i("b",-1,1),new i("c",-1,2),new i("d",-1,3),new i("ğ",-1,4)],Wr=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,8,0,0,0,0,0,0,1],Lr=[1,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,1],xr=[1,64,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],Ar=[17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,130],Er=[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],jr=[17],Tr=[65],Zr=[65],Br=[["a",xr,97,305],["e",Ar,101,252],["ı",Er,97,305],["i",jr,101,105],["o",Tr,111,117],["ö",Zr,246,252],["u",Tr,111,117]],Dr=new e;this.setCurrent=function(r){Dr.setCurrent(r)},this.getCurrent=function(){return Dr.getCurrent()},this.stem=function(){return!!($()&&(Dr.limit_backward=Dr.cursor,Dr.cursor=Dr.limit,J(),Dr.cursor=Dr.limit,nr&&(R(),Dr.cursor=Dr.limit_backward,er())))}};return function(r){return"function"==typeof r.update?r.update(function(r){return n.setCurrent(r),n.stem(),n.getCurrent()}):(n.setCurrent(r),n.stem(),n.getCurrent())}}(),r.Pipeline.registerFunction(r.tr.stemmer,"stemmer-tr"),r.tr.stopWordFilter=r.generateStopWordFilter("acaba altmış altı ama ancak arada aslında ayrıca bana bazı belki ben benden beni benim beri beş bile bin bir biri birkaç birkez birçok birşey birşeyi biz bizden bize bizi bizim bu buna bunda bundan bunlar bunları bunların bunu bunun burada böyle böylece da daha dahi de defa değil diye diğer doksan dokuz dolayı dolayısıyla dört edecek eden ederek edilecek ediliyor edilmesi ediyor elli en etmesi etti ettiği ettiğini eğer gibi göre halen hangi hatta hem henüz hep hepsi her herhangi herkesin hiç hiçbir iki ile ilgili ise itibaren itibariyle için işte kadar karşın katrilyon kendi kendilerine kendini kendisi kendisine kendisini kez ki kim kimden kime kimi kimse kırk milyar milyon mu mü mı nasıl ne neden nedenle nerde nerede nereye niye niçin o olan olarak oldu olduklarını olduğu olduğunu olmadı olmadığı olmak olması olmayan olmaz olsa olsun olup olur olursa oluyor on ona ondan onlar onlardan onları onların onu onun otuz oysa pek rağmen sadece sanki sekiz seksen sen senden seni senin siz sizden sizi sizin tarafından trilyon tüm var vardı ve veya ya yani yapacak yapmak yaptı yaptıkları yaptığı yaptığını yapılan yapılması yapıyor yedi yerine yetmiş yine yirmi yoksa yüz zaten çok çünkü öyle üzere üç şey şeyden şeyi şeyler şu şuna şunda şundan şunları şunu şöyle".split(" ")),r.Pipeline.registerFunction(r.tr.stopWordFilter,"stopWordFilter-tr")}}); \ No newline at end of file diff --git a/1.3/assets/javascripts/lunr/min/lunr.vi.min.js b/1.3/assets/javascripts/lunr/min/lunr.vi.min.js new file mode 100644 index 00000000..22aed28c --- /dev/null +++ b/1.3/assets/javascripts/lunr/min/lunr.vi.min.js @@ -0,0 +1 @@ +!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.vi=function(){this.pipeline.reset(),this.pipeline.add(e.vi.stopWordFilter,e.vi.trimmer)},e.vi.wordCharacters="[A-Za-ẓ̀͐́͑̉̃̓ÂâÊêÔôĂ-ăĐ-đƠ-ơƯ-ư]",e.vi.trimmer=e.trimmerSupport.generateTrimmer(e.vi.wordCharacters),e.Pipeline.registerFunction(e.vi.trimmer,"trimmer-vi"),e.vi.stopWordFilter=e.generateStopWordFilter("là cái nhưng mà".split(" "))}}); \ No newline at end of file diff --git a/1.3/assets/javascripts/lunr/tinyseg.js b/1.3/assets/javascripts/lunr/tinyseg.js new file mode 100644 index 00000000..167fa6dd --- /dev/null +++ b/1.3/assets/javascripts/lunr/tinyseg.js @@ -0,0 +1,206 @@ +/** + * export the module via AMD, CommonJS or as a browser global + * Export code from https://github.com/umdjs/umd/blob/master/returnExports.js + */ +;(function (root, factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(factory) + } else if (typeof exports === 'object') { + /** + * Node. Does not work with strict CommonJS, but + * only CommonJS-like environments that support module.exports, + * like Node. + */ + module.exports = factory() + } else { + // Browser globals (root is window) + factory()(root.lunr); + } +}(this, function () { + /** + * Just return a value to define the module export. + * This example returns an object, but the module + * can return a function as the exported value. + */ + + return function(lunr) { + // TinySegmenter 0.1 -- Super compact Japanese tokenizer in Javascript + // (c) 2008 Taku Kudo + // TinySegmenter is freely distributable under the terms of a new BSD licence. + // For details, see http://chasen.org/~taku/software/TinySegmenter/LICENCE.txt + + function TinySegmenter() { + var patterns = { + "[一二三四五六七八九十百千万億兆]":"M", + "[一-龠々〆ヵヶ]":"H", + "[ぁ-ん]":"I", + "[ァ-ヴーア-ン゙ー]":"K", + "[a-zA-Za-zA-Z]":"A", + "[0-90-9]":"N" + } + this.chartype_ = []; + for (var i in patterns) { + var regexp = new RegExp(i); + this.chartype_.push([regexp, patterns[i]]); + } + + this.BIAS__ = -332 + this.BC1__ = {"HH":6,"II":2461,"KH":406,"OH":-1378}; + this.BC2__ = {"AA":-3267,"AI":2744,"AN":-878,"HH":-4070,"HM":-1711,"HN":4012,"HO":3761,"IA":1327,"IH":-1184,"II":-1332,"IK":1721,"IO":5492,"KI":3831,"KK":-8741,"MH":-3132,"MK":3334,"OO":-2920}; + this.BC3__ = {"HH":996,"HI":626,"HK":-721,"HN":-1307,"HO":-836,"IH":-301,"KK":2762,"MK":1079,"MM":4034,"OA":-1652,"OH":266}; + this.BP1__ = {"BB":295,"OB":304,"OO":-125,"UB":352}; + this.BP2__ = {"BO":60,"OO":-1762}; + this.BQ1__ = {"BHH":1150,"BHM":1521,"BII":-1158,"BIM":886,"BMH":1208,"BNH":449,"BOH":-91,"BOO":-2597,"OHI":451,"OIH":-296,"OKA":1851,"OKH":-1020,"OKK":904,"OOO":2965}; + this.BQ2__ = {"BHH":118,"BHI":-1159,"BHM":466,"BIH":-919,"BKK":-1720,"BKO":864,"OHH":-1139,"OHM":-181,"OIH":153,"UHI":-1146}; + this.BQ3__ = {"BHH":-792,"BHI":2664,"BII":-299,"BKI":419,"BMH":937,"BMM":8335,"BNN":998,"BOH":775,"OHH":2174,"OHM":439,"OII":280,"OKH":1798,"OKI":-793,"OKO":-2242,"OMH":-2402,"OOO":11699}; + this.BQ4__ = {"BHH":-3895,"BIH":3761,"BII":-4654,"BIK":1348,"BKK":-1806,"BMI":-3385,"BOO":-12396,"OAH":926,"OHH":266,"OHK":-2036,"ONN":-973}; + this.BW1__ = {",と":660,",同":727,"B1あ":1404,"B1同":542,"、と":660,"、同":727,"」と":1682,"あっ":1505,"いう":1743,"いっ":-2055,"いる":672,"うし":-4817,"うん":665,"から":3472,"がら":600,"こう":-790,"こと":2083,"こん":-1262,"さら":-4143,"さん":4573,"した":2641,"して":1104,"すで":-3399,"そこ":1977,"それ":-871,"たち":1122,"ため":601,"った":3463,"つい":-802,"てい":805,"てき":1249,"でき":1127,"です":3445,"では":844,"とい":-4915,"とみ":1922,"どこ":3887,"ない":5713,"なっ":3015,"など":7379,"なん":-1113,"にし":2468,"には":1498,"にも":1671,"に対":-912,"の一":-501,"の中":741,"ませ":2448,"まで":1711,"まま":2600,"まる":-2155,"やむ":-1947,"よっ":-2565,"れた":2369,"れで":-913,"をし":1860,"を見":731,"亡く":-1886,"京都":2558,"取り":-2784,"大き":-2604,"大阪":1497,"平方":-2314,"引き":-1336,"日本":-195,"本当":-2423,"毎日":-2113,"目指":-724,"B1あ":1404,"B1同":542,"」と":1682}; + this.BW2__ = {"..":-11822,"11":-669,"――":-5730,"−−":-13175,"いう":-1609,"うか":2490,"かし":-1350,"かも":-602,"から":-7194,"かれ":4612,"がい":853,"がら":-3198,"きた":1941,"くな":-1597,"こと":-8392,"この":-4193,"させ":4533,"され":13168,"さん":-3977,"しい":-1819,"しか":-545,"した":5078,"して":972,"しな":939,"その":-3744,"たい":-1253,"たた":-662,"ただ":-3857,"たち":-786,"たと":1224,"たは":-939,"った":4589,"って":1647,"っと":-2094,"てい":6144,"てき":3640,"てく":2551,"ては":-3110,"ても":-3065,"でい":2666,"でき":-1528,"でし":-3828,"です":-4761,"でも":-4203,"とい":1890,"とこ":-1746,"とと":-2279,"との":720,"とみ":5168,"とも":-3941,"ない":-2488,"なが":-1313,"など":-6509,"なの":2614,"なん":3099,"にお":-1615,"にし":2748,"にな":2454,"によ":-7236,"に対":-14943,"に従":-4688,"に関":-11388,"のか":2093,"ので":-7059,"のに":-6041,"のの":-6125,"はい":1073,"はが":-1033,"はず":-2532,"ばれ":1813,"まし":-1316,"まで":-6621,"まれ":5409,"めて":-3153,"もい":2230,"もの":-10713,"らか":-944,"らし":-1611,"らに":-1897,"りし":651,"りま":1620,"れた":4270,"れて":849,"れば":4114,"ろう":6067,"われ":7901,"を通":-11877,"んだ":728,"んな":-4115,"一人":602,"一方":-1375,"一日":970,"一部":-1051,"上が":-4479,"会社":-1116,"出て":2163,"分の":-7758,"同党":970,"同日":-913,"大阪":-2471,"委員":-1250,"少な":-1050,"年度":-8669,"年間":-1626,"府県":-2363,"手権":-1982,"新聞":-4066,"日新":-722,"日本":-7068,"日米":3372,"曜日":-601,"朝鮮":-2355,"本人":-2697,"東京":-1543,"然と":-1384,"社会":-1276,"立て":-990,"第に":-1612,"米国":-4268,"11":-669}; + this.BW3__ = {"あた":-2194,"あり":719,"ある":3846,"い.":-1185,"い。":-1185,"いい":5308,"いえ":2079,"いく":3029,"いた":2056,"いっ":1883,"いる":5600,"いわ":1527,"うち":1117,"うと":4798,"えと":1454,"か.":2857,"か。":2857,"かけ":-743,"かっ":-4098,"かに":-669,"から":6520,"かり":-2670,"が,":1816,"が、":1816,"がき":-4855,"がけ":-1127,"がっ":-913,"がら":-4977,"がり":-2064,"きた":1645,"けど":1374,"こと":7397,"この":1542,"ころ":-2757,"さい":-714,"さを":976,"し,":1557,"し、":1557,"しい":-3714,"した":3562,"して":1449,"しな":2608,"しま":1200,"す.":-1310,"す。":-1310,"する":6521,"ず,":3426,"ず、":3426,"ずに":841,"そう":428,"た.":8875,"た。":8875,"たい":-594,"たの":812,"たり":-1183,"たる":-853,"だ.":4098,"だ。":4098,"だっ":1004,"った":-4748,"って":300,"てい":6240,"てお":855,"ても":302,"です":1437,"でに":-1482,"では":2295,"とう":-1387,"とし":2266,"との":541,"とも":-3543,"どう":4664,"ない":1796,"なく":-903,"など":2135,"に,":-1021,"に、":-1021,"にし":1771,"にな":1906,"には":2644,"の,":-724,"の、":-724,"の子":-1000,"は,":1337,"は、":1337,"べき":2181,"まし":1113,"ます":6943,"まっ":-1549,"まで":6154,"まれ":-793,"らし":1479,"られ":6820,"るる":3818,"れ,":854,"れ、":854,"れた":1850,"れて":1375,"れば":-3246,"れる":1091,"われ":-605,"んだ":606,"んで":798,"カ月":990,"会議":860,"入り":1232,"大会":2217,"始め":1681,"市":965,"新聞":-5055,"日,":974,"日、":974,"社会":2024,"カ月":990}; + this.TC1__ = {"AAA":1093,"HHH":1029,"HHM":580,"HII":998,"HOH":-390,"HOM":-331,"IHI":1169,"IOH":-142,"IOI":-1015,"IOM":467,"MMH":187,"OOI":-1832}; + this.TC2__ = {"HHO":2088,"HII":-1023,"HMM":-1154,"IHI":-1965,"KKH":703,"OII":-2649}; + this.TC3__ = {"AAA":-294,"HHH":346,"HHI":-341,"HII":-1088,"HIK":731,"HOH":-1486,"IHH":128,"IHI":-3041,"IHO":-1935,"IIH":-825,"IIM":-1035,"IOI":-542,"KHH":-1216,"KKA":491,"KKH":-1217,"KOK":-1009,"MHH":-2694,"MHM":-457,"MHO":123,"MMH":-471,"NNH":-1689,"NNO":662,"OHO":-3393}; + this.TC4__ = {"HHH":-203,"HHI":1344,"HHK":365,"HHM":-122,"HHN":182,"HHO":669,"HIH":804,"HII":679,"HOH":446,"IHH":695,"IHO":-2324,"IIH":321,"III":1497,"IIO":656,"IOO":54,"KAK":4845,"KKA":3386,"KKK":3065,"MHH":-405,"MHI":201,"MMH":-241,"MMM":661,"MOM":841}; + this.TQ1__ = {"BHHH":-227,"BHHI":316,"BHIH":-132,"BIHH":60,"BIII":1595,"BNHH":-744,"BOHH":225,"BOOO":-908,"OAKK":482,"OHHH":281,"OHIH":249,"OIHI":200,"OIIH":-68}; + this.TQ2__ = {"BIHH":-1401,"BIII":-1033,"BKAK":-543,"BOOO":-5591}; + this.TQ3__ = {"BHHH":478,"BHHM":-1073,"BHIH":222,"BHII":-504,"BIIH":-116,"BIII":-105,"BMHI":-863,"BMHM":-464,"BOMH":620,"OHHH":346,"OHHI":1729,"OHII":997,"OHMH":481,"OIHH":623,"OIIH":1344,"OKAK":2792,"OKHH":587,"OKKA":679,"OOHH":110,"OOII":-685}; + this.TQ4__ = {"BHHH":-721,"BHHM":-3604,"BHII":-966,"BIIH":-607,"BIII":-2181,"OAAA":-2763,"OAKK":180,"OHHH":-294,"OHHI":2446,"OHHO":480,"OHIH":-1573,"OIHH":1935,"OIHI":-493,"OIIH":626,"OIII":-4007,"OKAK":-8156}; + this.TW1__ = {"につい":-4681,"東京都":2026}; + this.TW2__ = {"ある程":-2049,"いった":-1256,"ころが":-2434,"しょう":3873,"その後":-4430,"だって":-1049,"ていた":1833,"として":-4657,"ともに":-4517,"もので":1882,"一気に":-792,"初めて":-1512,"同時に":-8097,"大きな":-1255,"対して":-2721,"社会党":-3216}; + this.TW3__ = {"いただ":-1734,"してい":1314,"として":-4314,"につい":-5483,"にとっ":-5989,"に当た":-6247,"ので,":-727,"ので、":-727,"のもの":-600,"れから":-3752,"十二月":-2287}; + this.TW4__ = {"いう.":8576,"いう。":8576,"からな":-2348,"してい":2958,"たが,":1516,"たが、":1516,"ている":1538,"という":1349,"ました":5543,"ません":1097,"ようと":-4258,"よると":5865}; + this.UC1__ = {"A":484,"K":93,"M":645,"O":-505}; + this.UC2__ = {"A":819,"H":1059,"I":409,"M":3987,"N":5775,"O":646}; + this.UC3__ = {"A":-1370,"I":2311}; + this.UC4__ = {"A":-2643,"H":1809,"I":-1032,"K":-3450,"M":3565,"N":3876,"O":6646}; + this.UC5__ = {"H":313,"I":-1238,"K":-799,"M":539,"O":-831}; + this.UC6__ = {"H":-506,"I":-253,"K":87,"M":247,"O":-387}; + this.UP1__ = {"O":-214}; + this.UP2__ = {"B":69,"O":935}; + this.UP3__ = {"B":189}; + this.UQ1__ = {"BH":21,"BI":-12,"BK":-99,"BN":142,"BO":-56,"OH":-95,"OI":477,"OK":410,"OO":-2422}; + this.UQ2__ = {"BH":216,"BI":113,"OK":1759}; + this.UQ3__ = {"BA":-479,"BH":42,"BI":1913,"BK":-7198,"BM":3160,"BN":6427,"BO":14761,"OI":-827,"ON":-3212}; + this.UW1__ = {",":156,"、":156,"「":-463,"あ":-941,"う":-127,"が":-553,"き":121,"こ":505,"で":-201,"と":-547,"ど":-123,"に":-789,"の":-185,"は":-847,"も":-466,"や":-470,"よ":182,"ら":-292,"り":208,"れ":169,"を":-446,"ん":-137,"・":-135,"主":-402,"京":-268,"区":-912,"午":871,"国":-460,"大":561,"委":729,"市":-411,"日":-141,"理":361,"生":-408,"県":-386,"都":-718,"「":-463,"・":-135}; + this.UW2__ = {",":-829,"、":-829,"〇":892,"「":-645,"」":3145,"あ":-538,"い":505,"う":134,"お":-502,"か":1454,"が":-856,"く":-412,"こ":1141,"さ":878,"ざ":540,"し":1529,"す":-675,"せ":300,"そ":-1011,"た":188,"だ":1837,"つ":-949,"て":-291,"で":-268,"と":-981,"ど":1273,"な":1063,"に":-1764,"の":130,"は":-409,"ひ":-1273,"べ":1261,"ま":600,"も":-1263,"や":-402,"よ":1639,"り":-579,"る":-694,"れ":571,"を":-2516,"ん":2095,"ア":-587,"カ":306,"キ":568,"ッ":831,"三":-758,"不":-2150,"世":-302,"中":-968,"主":-861,"事":492,"人":-123,"会":978,"保":362,"入":548,"初":-3025,"副":-1566,"北":-3414,"区":-422,"大":-1769,"天":-865,"太":-483,"子":-1519,"学":760,"実":1023,"小":-2009,"市":-813,"年":-1060,"強":1067,"手":-1519,"揺":-1033,"政":1522,"文":-1355,"新":-1682,"日":-1815,"明":-1462,"最":-630,"朝":-1843,"本":-1650,"東":-931,"果":-665,"次":-2378,"民":-180,"気":-1740,"理":752,"発":529,"目":-1584,"相":-242,"県":-1165,"立":-763,"第":810,"米":509,"自":-1353,"行":838,"西":-744,"見":-3874,"調":1010,"議":1198,"込":3041,"開":1758,"間":-1257,"「":-645,"」":3145,"ッ":831,"ア":-587,"カ":306,"キ":568}; + this.UW3__ = {",":4889,"1":-800,"−":-1723,"、":4889,"々":-2311,"〇":5827,"」":2670,"〓":-3573,"あ":-2696,"い":1006,"う":2342,"え":1983,"お":-4864,"か":-1163,"が":3271,"く":1004,"け":388,"げ":401,"こ":-3552,"ご":-3116,"さ":-1058,"し":-395,"す":584,"せ":3685,"そ":-5228,"た":842,"ち":-521,"っ":-1444,"つ":-1081,"て":6167,"で":2318,"と":1691,"ど":-899,"な":-2788,"に":2745,"の":4056,"は":4555,"ひ":-2171,"ふ":-1798,"へ":1199,"ほ":-5516,"ま":-4384,"み":-120,"め":1205,"も":2323,"や":-788,"よ":-202,"ら":727,"り":649,"る":5905,"れ":2773,"わ":-1207,"を":6620,"ん":-518,"ア":551,"グ":1319,"ス":874,"ッ":-1350,"ト":521,"ム":1109,"ル":1591,"ロ":2201,"ン":278,"・":-3794,"一":-1619,"下":-1759,"世":-2087,"両":3815,"中":653,"主":-758,"予":-1193,"二":974,"人":2742,"今":792,"他":1889,"以":-1368,"低":811,"何":4265,"作":-361,"保":-2439,"元":4858,"党":3593,"全":1574,"公":-3030,"六":755,"共":-1880,"円":5807,"再":3095,"分":457,"初":2475,"別":1129,"前":2286,"副":4437,"力":365,"動":-949,"務":-1872,"化":1327,"北":-1038,"区":4646,"千":-2309,"午":-783,"協":-1006,"口":483,"右":1233,"各":3588,"合":-241,"同":3906,"和":-837,"員":4513,"国":642,"型":1389,"場":1219,"外":-241,"妻":2016,"学":-1356,"安":-423,"実":-1008,"家":1078,"小":-513,"少":-3102,"州":1155,"市":3197,"平":-1804,"年":2416,"広":-1030,"府":1605,"度":1452,"建":-2352,"当":-3885,"得":1905,"思":-1291,"性":1822,"戸":-488,"指":-3973,"政":-2013,"教":-1479,"数":3222,"文":-1489,"新":1764,"日":2099,"旧":5792,"昨":-661,"時":-1248,"曜":-951,"最":-937,"月":4125,"期":360,"李":3094,"村":364,"東":-805,"核":5156,"森":2438,"業":484,"氏":2613,"民":-1694,"決":-1073,"法":1868,"海":-495,"無":979,"物":461,"特":-3850,"生":-273,"用":914,"町":1215,"的":7313,"直":-1835,"省":792,"県":6293,"知":-1528,"私":4231,"税":401,"立":-960,"第":1201,"米":7767,"系":3066,"約":3663,"級":1384,"統":-4229,"総":1163,"線":1255,"者":6457,"能":725,"自":-2869,"英":785,"見":1044,"調":-562,"財":-733,"費":1777,"車":1835,"軍":1375,"込":-1504,"通":-1136,"選":-681,"郎":1026,"郡":4404,"部":1200,"金":2163,"長":421,"開":-1432,"間":1302,"関":-1282,"雨":2009,"電":-1045,"非":2066,"駅":1620,"1":-800,"」":2670,"・":-3794,"ッ":-1350,"ア":551,"グ":1319,"ス":874,"ト":521,"ム":1109,"ル":1591,"ロ":2201,"ン":278}; + this.UW4__ = {",":3930,".":3508,"―":-4841,"、":3930,"。":3508,"〇":4999,"「":1895,"」":3798,"〓":-5156,"あ":4752,"い":-3435,"う":-640,"え":-2514,"お":2405,"か":530,"が":6006,"き":-4482,"ぎ":-3821,"く":-3788,"け":-4376,"げ":-4734,"こ":2255,"ご":1979,"さ":2864,"し":-843,"じ":-2506,"す":-731,"ず":1251,"せ":181,"そ":4091,"た":5034,"だ":5408,"ち":-3654,"っ":-5882,"つ":-1659,"て":3994,"で":7410,"と":4547,"な":5433,"に":6499,"ぬ":1853,"ね":1413,"の":7396,"は":8578,"ば":1940,"ひ":4249,"び":-4134,"ふ":1345,"へ":6665,"べ":-744,"ほ":1464,"ま":1051,"み":-2082,"む":-882,"め":-5046,"も":4169,"ゃ":-2666,"や":2795,"ょ":-1544,"よ":3351,"ら":-2922,"り":-9726,"る":-14896,"れ":-2613,"ろ":-4570,"わ":-1783,"を":13150,"ん":-2352,"カ":2145,"コ":1789,"セ":1287,"ッ":-724,"ト":-403,"メ":-1635,"ラ":-881,"リ":-541,"ル":-856,"ン":-3637,"・":-4371,"ー":-11870,"一":-2069,"中":2210,"予":782,"事":-190,"井":-1768,"人":1036,"以":544,"会":950,"体":-1286,"作":530,"側":4292,"先":601,"党":-2006,"共":-1212,"内":584,"円":788,"初":1347,"前":1623,"副":3879,"力":-302,"動":-740,"務":-2715,"化":776,"区":4517,"協":1013,"参":1555,"合":-1834,"和":-681,"員":-910,"器":-851,"回":1500,"国":-619,"園":-1200,"地":866,"場":-1410,"塁":-2094,"士":-1413,"多":1067,"大":571,"子":-4802,"学":-1397,"定":-1057,"寺":-809,"小":1910,"屋":-1328,"山":-1500,"島":-2056,"川":-2667,"市":2771,"年":374,"庁":-4556,"後":456,"性":553,"感":916,"所":-1566,"支":856,"改":787,"政":2182,"教":704,"文":522,"方":-856,"日":1798,"時":1829,"最":845,"月":-9066,"木":-485,"来":-442,"校":-360,"業":-1043,"氏":5388,"民":-2716,"気":-910,"沢":-939,"済":-543,"物":-735,"率":672,"球":-1267,"生":-1286,"産":-1101,"田":-2900,"町":1826,"的":2586,"目":922,"省":-3485,"県":2997,"空":-867,"立":-2112,"第":788,"米":2937,"系":786,"約":2171,"経":1146,"統":-1169,"総":940,"線":-994,"署":749,"者":2145,"能":-730,"般":-852,"行":-792,"規":792,"警":-1184,"議":-244,"谷":-1000,"賞":730,"車":-1481,"軍":1158,"輪":-1433,"込":-3370,"近":929,"道":-1291,"選":2596,"郎":-4866,"都":1192,"野":-1100,"銀":-2213,"長":357,"間":-2344,"院":-2297,"際":-2604,"電":-878,"領":-1659,"題":-792,"館":-1984,"首":1749,"高":2120,"「":1895,"」":3798,"・":-4371,"ッ":-724,"ー":-11870,"カ":2145,"コ":1789,"セ":1287,"ト":-403,"メ":-1635,"ラ":-881,"リ":-541,"ル":-856,"ン":-3637}; + this.UW5__ = {",":465,".":-299,"1":-514,"E2":-32768,"]":-2762,"、":465,"。":-299,"「":363,"あ":1655,"い":331,"う":-503,"え":1199,"お":527,"か":647,"が":-421,"き":1624,"ぎ":1971,"く":312,"げ":-983,"さ":-1537,"し":-1371,"す":-852,"だ":-1186,"ち":1093,"っ":52,"つ":921,"て":-18,"で":-850,"と":-127,"ど":1682,"な":-787,"に":-1224,"の":-635,"は":-578,"べ":1001,"み":502,"め":865,"ゃ":3350,"ょ":854,"り":-208,"る":429,"れ":504,"わ":419,"を":-1264,"ん":327,"イ":241,"ル":451,"ン":-343,"中":-871,"京":722,"会":-1153,"党":-654,"務":3519,"区":-901,"告":848,"員":2104,"大":-1296,"学":-548,"定":1785,"嵐":-1304,"市":-2991,"席":921,"年":1763,"思":872,"所":-814,"挙":1618,"新":-1682,"日":218,"月":-4353,"査":932,"格":1356,"機":-1508,"氏":-1347,"田":240,"町":-3912,"的":-3149,"相":1319,"省":-1052,"県":-4003,"研":-997,"社":-278,"空":-813,"統":1955,"者":-2233,"表":663,"語":-1073,"議":1219,"選":-1018,"郎":-368,"長":786,"間":1191,"題":2368,"館":-689,"1":-514,"E2":-32768,"「":363,"イ":241,"ル":451,"ン":-343}; + this.UW6__ = {",":227,".":808,"1":-270,"E1":306,"、":227,"。":808,"あ":-307,"う":189,"か":241,"が":-73,"く":-121,"こ":-200,"じ":1782,"す":383,"た":-428,"っ":573,"て":-1014,"で":101,"と":-105,"な":-253,"に":-149,"の":-417,"は":-236,"も":-206,"り":187,"る":-135,"を":195,"ル":-673,"ン":-496,"一":-277,"中":201,"件":-800,"会":624,"前":302,"区":1792,"員":-1212,"委":798,"学":-960,"市":887,"広":-695,"後":535,"業":-697,"相":753,"社":-507,"福":974,"空":-822,"者":1811,"連":463,"郎":1082,"1":-270,"E1":306,"ル":-673,"ン":-496}; + + return this; + } + TinySegmenter.prototype.ctype_ = function(str) { + for (var i in this.chartype_) { + if (str.match(this.chartype_[i][0])) { + return this.chartype_[i][1]; + } + } + return "O"; + } + + TinySegmenter.prototype.ts_ = function(v) { + if (v) { return v; } + return 0; + } + + TinySegmenter.prototype.segment = function(input) { + if (input == null || input == undefined || input == "") { + return []; + } + var result = []; + var seg = ["B3","B2","B1"]; + var ctype = ["O","O","O"]; + var o = input.split(""); + for (i = 0; i < o.length; ++i) { + seg.push(o[i]); + ctype.push(this.ctype_(o[i])) + } + seg.push("E1"); + seg.push("E2"); + seg.push("E3"); + ctype.push("O"); + ctype.push("O"); + ctype.push("O"); + var word = seg[3]; + var p1 = "U"; + var p2 = "U"; + var p3 = "U"; + for (var i = 4; i < seg.length - 3; ++i) { + var score = this.BIAS__; + var w1 = seg[i-3]; + var w2 = seg[i-2]; + var w3 = seg[i-1]; + var w4 = seg[i]; + var w5 = seg[i+1]; + var w6 = seg[i+2]; + var c1 = ctype[i-3]; + var c2 = ctype[i-2]; + var c3 = ctype[i-1]; + var c4 = ctype[i]; + var c5 = ctype[i+1]; + var c6 = ctype[i+2]; + score += this.ts_(this.UP1__[p1]); + score += this.ts_(this.UP2__[p2]); + score += this.ts_(this.UP3__[p3]); + score += this.ts_(this.BP1__[p1 + p2]); + score += this.ts_(this.BP2__[p2 + p3]); + score += this.ts_(this.UW1__[w1]); + score += this.ts_(this.UW2__[w2]); + score += this.ts_(this.UW3__[w3]); + score += this.ts_(this.UW4__[w4]); + score += this.ts_(this.UW5__[w5]); + score += this.ts_(this.UW6__[w6]); + score += this.ts_(this.BW1__[w2 + w3]); + score += this.ts_(this.BW2__[w3 + w4]); + score += this.ts_(this.BW3__[w4 + w5]); + score += this.ts_(this.TW1__[w1 + w2 + w3]); + score += this.ts_(this.TW2__[w2 + w3 + w4]); + score += this.ts_(this.TW3__[w3 + w4 + w5]); + score += this.ts_(this.TW4__[w4 + w5 + w6]); + score += this.ts_(this.UC1__[c1]); + score += this.ts_(this.UC2__[c2]); + score += this.ts_(this.UC3__[c3]); + score += this.ts_(this.UC4__[c4]); + score += this.ts_(this.UC5__[c5]); + score += this.ts_(this.UC6__[c6]); + score += this.ts_(this.BC1__[c2 + c3]); + score += this.ts_(this.BC2__[c3 + c4]); + score += this.ts_(this.BC3__[c4 + c5]); + score += this.ts_(this.TC1__[c1 + c2 + c3]); + score += this.ts_(this.TC2__[c2 + c3 + c4]); + score += this.ts_(this.TC3__[c3 + c4 + c5]); + score += this.ts_(this.TC4__[c4 + c5 + c6]); + // score += this.ts_(this.TC5__[c4 + c5 + c6]); + score += this.ts_(this.UQ1__[p1 + c1]); + score += this.ts_(this.UQ2__[p2 + c2]); + score += this.ts_(this.UQ3__[p3 + c3]); + score += this.ts_(this.BQ1__[p2 + c2 + c3]); + score += this.ts_(this.BQ2__[p2 + c3 + c4]); + score += this.ts_(this.BQ3__[p3 + c2 + c3]); + score += this.ts_(this.BQ4__[p3 + c3 + c4]); + score += this.ts_(this.TQ1__[p2 + c1 + c2 + c3]); + score += this.ts_(this.TQ2__[p2 + c2 + c3 + c4]); + score += this.ts_(this.TQ3__[p3 + c1 + c2 + c3]); + score += this.ts_(this.TQ4__[p3 + c2 + c3 + c4]); + var p = "O"; + if (score > 0) { + result.push(word); + word = ""; + p = "B"; + } + p1 = p2; + p2 = p3; + p3 = p; + word += seg[i]; + } + result.push(word); + + return result; + } + + lunr.TinySegmenter = TinySegmenter; + }; + +})); \ No newline at end of file diff --git a/1.3/assets/javascripts/workers/search.df8cae7d.min.js b/1.3/assets/javascripts/workers/search.df8cae7d.min.js new file mode 100644 index 00000000..4197eccc --- /dev/null +++ b/1.3/assets/javascripts/workers/search.df8cae7d.min.js @@ -0,0 +1,59 @@ +(()=>{var ge=Object.create,U=Object.defineProperty,ye=Object.defineProperties,me=Object.getOwnPropertyDescriptor,ve=Object.getOwnPropertyDescriptors,xe=Object.getOwnPropertyNames,Y=Object.getOwnPropertySymbols,Se=Object.getPrototypeOf,G=Object.prototype.hasOwnProperty,Qe=Object.prototype.propertyIsEnumerable;var J=(t,e,r)=>e in t?U(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,j=(t,e)=>{for(var r in e||(e={}))G.call(e,r)&&J(t,r,e[r]);if(Y)for(var r of Y(e))Qe.call(e,r)&&J(t,r,e[r]);return t},X=(t,e)=>ye(t,ve(e)),be=t=>U(t,"__esModule",{value:!0});var Z=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var we=(t,e,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of xe(e))!G.call(t,n)&&n!=="default"&&U(t,n,{get:()=>e[n],enumerable:!(r=me(e,n))||r.enumerable});return t},K=t=>we(be(U(t!=null?ge(Se(t)):{},"default",t&&t.__esModule&&"default"in t?{get:()=>t.default,enumerable:!0}:{value:t,enumerable:!0})),t);var W=(t,e,r)=>new Promise((n,i)=>{var s=u=>{try{a(r.next(u))}catch(c){i(c)}},o=u=>{try{a(r.throw(u))}catch(c){i(c)}},a=u=>u.done?n(u.value):Promise.resolve(u.value).then(s,o);a((r=r.apply(t,e)).next())});var re=Z((ee,te)=>{(function(){var t=function(e){var r=new t.Builder;return r.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),r.searchPipeline.add(t.stemmer),e.call(r,r),r.build()};t.version="2.3.9";t.utils={},t.utils.warn=function(e){return function(r){e.console&&console.warn&&console.warn(r)}}(this),t.utils.asString=function(e){return e==null?"":e.toString()},t.utils.clone=function(e){if(e==null)return e;for(var r=Object.create(null),n=Object.keys(e),i=0;i0){var h=t.utils.clone(r)||{};h.position=[a,c],h.index=s.length,s.push(new t.Token(n.slice(a,o),h))}a=o+1}}return s},t.tokenizer.separator=/[\s\-]+/;t.Pipeline=function(){this._stack=[]},t.Pipeline.registeredFunctions=Object.create(null),t.Pipeline.registerFunction=function(e,r){r in this.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+r),e.label=r,t.Pipeline.registeredFunctions[e.label]=e},t.Pipeline.warnIfFunctionNotRegistered=function(e){var r=e.label&&e.label in this.registeredFunctions;r||t.utils.warn(`Function is not registered with pipeline. This may cause problems when serialising the index. +`,e)},t.Pipeline.load=function(e){var r=new t.Pipeline;return e.forEach(function(n){var i=t.Pipeline.registeredFunctions[n];if(i)r.add(i);else throw new Error("Cannot load unregistered function: "+n)}),r},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(r){t.Pipeline.warnIfFunctionNotRegistered(r),this._stack.push(r)},this)},t.Pipeline.prototype.after=function(e,r){t.Pipeline.warnIfFunctionNotRegistered(r);var n=this._stack.indexOf(e);if(n==-1)throw new Error("Cannot find existingFn");n=n+1,this._stack.splice(n,0,r)},t.Pipeline.prototype.before=function(e,r){t.Pipeline.warnIfFunctionNotRegistered(r);var n=this._stack.indexOf(e);if(n==-1)throw new Error("Cannot find existingFn");this._stack.splice(n,0,r)},t.Pipeline.prototype.remove=function(e){var r=this._stack.indexOf(e);r!=-1&&this._stack.splice(r,1)},t.Pipeline.prototype.run=function(e){for(var r=this._stack.length,n=0;n1&&(oe&&(n=s),o!=e);)i=n-r,s=r+Math.floor(i/2),o=this.elements[s*2];if(o==e||o>e)return s*2;if(ou?h+=2:a==u&&(r+=n[c+1]*i[h+1],c+=2,h+=2);return r},t.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},t.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),r=1,n=0;r0){var o=s.str.charAt(0),a;o in s.node.edges?a=s.node.edges[o]:(a=new t.TokenSet,s.node.edges[o]=a),s.str.length==1&&(a.final=!0),i.push({node:a,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(s.editsRemaining!=0){if("*"in s.node.edges)var u=s.node.edges["*"];else{var u=new t.TokenSet;s.node.edges["*"]=u}if(s.str.length==0&&(u.final=!0),i.push({node:u,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&i.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),s.str.length==1&&(s.node.final=!0),s.str.length>=1){if("*"in s.node.edges)var c=s.node.edges["*"];else{var c=new t.TokenSet;s.node.edges["*"]=c}s.str.length==1&&(c.final=!0),i.push({node:c,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var h=s.str.charAt(0),y=s.str.charAt(1),g;y in s.node.edges?g=s.node.edges[y]:(g=new t.TokenSet,s.node.edges[y]=g),s.str.length==1&&(g.final=!0),i.push({node:g,editsRemaining:s.editsRemaining-1,str:h+s.str.slice(2)})}}}return n},t.TokenSet.fromString=function(e){for(var r=new t.TokenSet,n=r,i=0,s=e.length;i=e;r--){var n=this.uncheckedNodes[r],i=n.child.toString();i in this.minimizedNodes?n.parent.edges[n.char]=this.minimizedNodes[i]:(n.child._str=i,this.minimizedNodes[i]=n.child),this.uncheckedNodes.pop()}};t.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},t.Index.prototype.search=function(e){return this.query(function(r){var n=new t.QueryParser(e,r);n.parse()})},t.Index.prototype.query=function(e){for(var r=new t.Query(this.fields),n=Object.create(null),i=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),u=0;u1?this._b=1:this._b=e},t.Builder.prototype.k1=function(e){this._k1=e},t.Builder.prototype.add=function(e,r){var n=e[this._ref],i=Object.keys(this._fields);this._documents[n]=r||{},this.documentCount+=1;for(var s=0;s=this.length)return t.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},t.QueryLexer.prototype.width=function(){return this.pos-this.start},t.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},t.QueryLexer.prototype.backup=function(){this.pos-=1},t.QueryLexer.prototype.acceptDigitRun=function(){var e,r;do e=this.next(),r=e.charCodeAt(0);while(r>47&&r<58);e!=t.QueryLexer.EOS&&this.backup()},t.QueryLexer.prototype.more=function(){return this.pos1&&(e.backup(),e.emit(t.QueryLexer.TERM)),e.ignore(),e.more())return t.QueryLexer.lexText},t.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.EDIT_DISTANCE),t.QueryLexer.lexText},t.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.BOOST),t.QueryLexer.lexText},t.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(t.QueryLexer.TERM)},t.QueryLexer.termSeparator=t.tokenizer.separator,t.QueryLexer.lexText=function(e){for(;;){var r=e.next();if(r==t.QueryLexer.EOS)return t.QueryLexer.lexEOS;if(r.charCodeAt(0)==92){e.escapeCharacter();continue}if(r==":")return t.QueryLexer.lexField;if(r=="~")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexEditDistance;if(r=="^")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexBoost;if(r=="+"&&e.width()===1||r=="-"&&e.width()===1)return e.emit(t.QueryLexer.PRESENCE),t.QueryLexer.lexText;if(r.match(t.QueryLexer.termSeparator))return t.QueryLexer.lexTerm}},t.QueryParser=function(e,r){this.lexer=new t.QueryLexer(e),this.query=r,this.currentClause={},this.lexemeIdx=0},t.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=t.QueryParser.parseClause;e;)e=e(this);return this.query},t.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},t.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},t.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},t.QueryParser.parseClause=function(e){var r=e.peekLexeme();if(r!=null)switch(r.type){case t.QueryLexer.PRESENCE:return t.QueryParser.parsePresence;case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var n="expected either a field or a term, found "+r.type;throw r.str.length>=1&&(n+=" with value '"+r.str+"'"),new t.QueryParseError(n,r.start,r.end)}},t.QueryParser.parsePresence=function(e){var r=e.consumeLexeme();if(r!=null){switch(r.str){case"-":e.currentClause.presence=t.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=t.Query.presence.REQUIRED;break;default:var n="unrecognised presence operator'"+r.str+"'";throw new t.QueryParseError(n,r.start,r.end)}var i=e.peekLexeme();if(i==null){var n="expecting term or field, found nothing";throw new t.QueryParseError(n,r.start,r.end)}switch(i.type){case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var n="expecting term or field, found '"+i.type+"'";throw new t.QueryParseError(n,i.start,i.end)}}},t.QueryParser.parseField=function(e){var r=e.consumeLexeme();if(r!=null){if(e.query.allFields.indexOf(r.str)==-1){var n=e.query.allFields.map(function(o){return"'"+o+"'"}).join(", "),i="unrecognised field '"+r.str+"', possible fields: "+n;throw new t.QueryParseError(i,r.start,r.end)}e.currentClause.fields=[r.str];var s=e.peekLexeme();if(s==null){var i="expecting term, found nothing";throw new t.QueryParseError(i,r.start,r.end)}switch(s.type){case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var i="expecting term, found '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseTerm=function(e){var r=e.consumeLexeme();if(r!=null){e.currentClause.term=r.str.toLowerCase(),r.str.indexOf("*")!=-1&&(e.currentClause.usePipeline=!1);var n=e.peekLexeme();if(n==null){e.nextClause();return}switch(n.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+n.type+"'";throw new t.QueryParseError(i,n.start,n.end)}}},t.QueryParser.parseEditDistance=function(e){var r=e.consumeLexeme();if(r!=null){var n=parseInt(r.str,10);if(isNaN(n)){var i="edit distance must be numeric";throw new t.QueryParseError(i,r.start,r.end)}e.currentClause.editDistance=n;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseBoost=function(e){var r=e.consumeLexeme();if(r!=null){var n=parseInt(r.str,10);if(isNaN(n)){var i="boost must be numeric";throw new t.QueryParseError(i,r.start,r.end)}e.currentClause.boost=n;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},function(e,r){typeof define=="function"&&define.amd?define(r):typeof ee=="object"?te.exports=r():e.lunr=r()}(this,function(){return t})})()});var ie=Z((Te,ne)=>{"use strict";var Le=/["'&<>]/;ne.exports=Ee;function Ee(t){var e=""+t,r=Le.exec(e);if(!r)return e;var n,i="",s=0,o=0;for(s=r.index;s`${i}${s}`;return n=>{n=n.replace(/[\s*+\-:~^]+/g," ").trim();let i=new RegExp(`(^|${t.separator})(${n.replace(/[|\\{}()[\]^$+*?.-]/g,"\\$&").replace(e,"|")})`,"img");return s=>s.replace(i,r).replace(/<\/mark>(\s+)]*>/img,"$1")}}function ue(t){let e=new lunr.Query(["title","text"]);return new lunr.QueryParser(t,e).parse(),e.clauses}function ce(t,e){let r=new Set(t),n={};for(let i=0;i!n.has(i)))]}var q=class{constructor({config:e,docs:r,index:n,options:i}){this.options=i,this.documents=oe(r),this.highlight=ae(e),lunr.tokenizer.separator=new RegExp(e.separator),typeof n=="undefined"?this.index=lunr(function(){e.lang.length===1&&e.lang[0]!=="en"?this.use(lunr[e.lang[0]]):e.lang.length>1&&this.use(lunr.multiLanguage(...e.lang));let s=ke(["trimmer","stopWordFilter","stemmer"],i.pipeline);for(let o of e.lang.map(a=>a==="en"?lunr:lunr[a]))for(let a of s)this.pipeline.remove(o[a]),this.searchPipeline.remove(o[a]);this.ref("location"),this.field("title",{boost:1e3}),this.field("text"),this.field("tags",{boost:1e6});for(let o of r)this.add(o,{boost:o.boost})}):this.index=lunr.Index.load(n)}search(e){if(e)try{let r=this.highlight(e),n=ue(e).filter(o=>o.presence!==lunr.Query.presence.PROHIBITED),i=this.index.search(`${e}*`).reduce((o,{ref:a,score:u,matchData:c})=>{let h=this.documents.get(a);if(typeof h!="undefined"){let{location:y,title:g,text:b,tags:m,parent:Q}=h,f=ce(n,Object.keys(c.metadata)),p=+!Q+ +Object.values(f).every(L=>L);o.push(X(j({location:y,title:r(g),text:r(b)},m&&{tags:m.map(r)}),{score:u*(1+p),terms:f}))}return o},[]).sort((o,a)=>a.score-o.score).reduce((o,a)=>{let u=this.documents.get(a.location);if(typeof u!="undefined"){let c="parent"in u?u.parent.location:u.location;o.set(c,[...o.get(c)||[],a])}return o},new Map),s;if(this.options.suggestions){let o=this.index.query(a=>{for(let u of n)a.term(u.term,{fields:["title"],presence:lunr.Query.presence.REQUIRED,wildcard:lunr.Query.wildcard.TRAILING})});s=o.length?Object.keys(o[0].matchData.metadata):[]}return j({items:[...i.values()]},typeof s!="undefined"&&{suggestions:s})}catch(r){console.warn(`Invalid query: ${e} \u2013 see https://bit.ly/2s3ChXG`)}return{items:[]}}};var T;(function(i){i[i.SETUP=0]="SETUP",i[i.READY=1]="READY",i[i.QUERY=2]="QUERY",i[i.RESULT=3]="RESULT"})(T||(T={}));var H;function Pe(t){return W(this,null,function*(){let e="../lunr";if(typeof parent!="undefined"&&"IFrameWorker"in parent){let n=document.querySelector("script[src]"),[i]=n.src.split("/worker");e=e.replace("..",i)}let r=[];for(let n of t.lang)n==="ja"&&r.push(`${e}/tinyseg.js`),n!=="en"&&r.push(`${e}/min/lunr.${n}.min.js`);t.lang.length>1&&r.push(`${e}/min/lunr.multi.min.js`),r.length&&(yield importScripts(`${e}/min/lunr.stemmer.support.min.js`,...r))})}function Ie(t){return W(this,null,function*(){switch(t.type){case T.SETUP:return yield Pe(t.data.config),H=new q(t.data),{type:T.READY};case T.QUERY:return{type:T.RESULT,data:H?H.search(t.data):{items:[]}};default:throw new TypeError("Invalid message type")}})}self.lunr=le.default;addEventListener("message",t=>W(void 0,null,function*(){postMessage(yield Ie(t.data))}));})(); +/*! + * escape-html + * Copyright(c) 2012-2013 TJ Holowaychuk + * Copyright(c) 2015 Andreas Lubbe + * Copyright(c) 2015 Tiancheng "Timothy" Gu + * MIT Licensed + */ +/*! + * lunr.Builder + * Copyright (C) 2020 Oliver Nightingale + */ +/*! + * lunr.Index + * Copyright (C) 2020 Oliver Nightingale + */ +/*! + * lunr.Pipeline + * Copyright (C) 2020 Oliver Nightingale + */ +/*! + * lunr.Set + * Copyright (C) 2020 Oliver Nightingale + */ +/*! + * lunr.TokenSet + * Copyright (C) 2020 Oliver Nightingale + */ +/*! + * lunr.Vector + * Copyright (C) 2020 Oliver Nightingale + */ +/*! + * lunr.stemmer + * Copyright (C) 2020 Oliver Nightingale + * Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt + */ +/*! + * lunr.stopWordFilter + * Copyright (C) 2020 Oliver Nightingale + */ +/*! + * lunr.tokenizer + * Copyright (C) 2020 Oliver Nightingale + */ +/*! + * lunr.trimmer + * Copyright (C) 2020 Oliver Nightingale + */ +/*! + * lunr.utils + * Copyright (C) 2020 Oliver Nightingale + */ +/** + * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.9 + * Copyright (C) 2020 Oliver Nightingale + * @license MIT + */ diff --git a/1.3/assets/stylesheets/main.92048cb8.min.css b/1.3/assets/stylesheets/main.92048cb8.min.css new file mode 100644 index 00000000..d4d59a00 --- /dev/null +++ b/1.3/assets/stylesheets/main.92048cb8.min.css @@ -0,0 +1 @@ +@charset "UTF-8";html{-webkit-text-size-adjust:none;-ms-text-size-adjust:none;text-size-adjust:none;box-sizing:border-box}*,:after,:before{box-sizing:inherit}body{margin:0}a,button,input,label{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}hr{border:0;box-sizing:content-box;display:block;height:.05rem;overflow:visible;padding:0}small{font-size:80%}sub,sup{line-height:1em}img{border-style:none}table{border-collapse:separate;border-spacing:0}td,th{font-weight:400;vertical-align:top}button{background:transparent;border:0;font-family:inherit;font-size:inherit;margin:0;padding:0}input{border:0;outline:none}:root{--md-default-fg-color:rgba(0,0,0,0.87);--md-default-fg-color--light:rgba(0,0,0,0.54);--md-default-fg-color--lighter:rgba(0,0,0,0.32);--md-default-fg-color--lightest:rgba(0,0,0,0.07);--md-default-bg-color:#fff;--md-default-bg-color--light:hsla(0,0%,100%,0.7);--md-default-bg-color--lighter:hsla(0,0%,100%,0.3);--md-default-bg-color--lightest:hsla(0,0%,100%,0.12);--md-primary-fg-color:#4051b5;--md-primary-fg-color--light:#5d6cc0;--md-primary-fg-color--dark:#303fa1;--md-primary-bg-color:#fff;--md-primary-bg-color--light:hsla(0,0%,100%,0.7);--md-accent-fg-color:#526cfe;--md-accent-fg-color--transparent:rgba(82,108,254,0.1);--md-accent-bg-color:#fff;--md-accent-bg-color--light:hsla(0,0%,100%,0.7)}:root>*{--md-code-fg-color:#36464e;--md-code-bg-color:#f5f5f5;--md-code-hl-color:rgba(255,255,0,0.5);--md-code-hl-number-color:#d52a2a;--md-code-hl-special-color:#db1457;--md-code-hl-function-color:#a846b9;--md-code-hl-constant-color:#6e59d9;--md-code-hl-keyword-color:#3f6ec6;--md-code-hl-string-color:#1c7d4d;--md-code-hl-name-color:var(--md-code-fg-color);--md-code-hl-operator-color:var(--md-default-fg-color--light);--md-code-hl-punctuation-color:var(--md-default-fg-color--light);--md-code-hl-comment-color:var(--md-default-fg-color--light);--md-code-hl-generic-color:var(--md-default-fg-color--light);--md-code-hl-variable-color:var(--md-default-fg-color--light);--md-typeset-color:var(--md-default-fg-color);--md-typeset-a-color:var(--md-primary-fg-color);--md-typeset-mark-color:rgba(255,255,0,0.5);--md-typeset-del-color:rgba(245,80,61,0.15);--md-typeset-ins-color:rgba(11,213,112,0.15);--md-typeset-kbd-color:#fafafa;--md-typeset-kbd-accent-color:#fff;--md-typeset-kbd-border-color:#b8b8b8;--md-admonition-fg-color:var(--md-default-fg-color);--md-admonition-bg-color:var(--md-default-bg-color);--md-footer-fg-color:#fff;--md-footer-fg-color--light:hsla(0,0%,100%,0.7);--md-footer-fg-color--lighter:hsla(0,0%,100%,0.3);--md-footer-bg-color:rgba(0,0,0,0.87);--md-footer-bg-color--dark:rgba(0,0,0,0.32)}.md-icon svg{fill:currentColor;display:block;height:1.2rem;width:1.2rem}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}aside,body,input{font-feature-settings:"kern","liga";color:var(--md-typeset-color);font-family:var(--md-text-font-family,_),-apple-system,BlinkMacSystemFont,Helvetica,Arial,sans-serif}code,kbd,pre{font-feature-settings:"kern";font-family:var(--md-code-font-family,_),SFMono-Regular,Consolas,Menlo,monospace}:root{--md-typeset-table--ascending:url('data:image/svg+xml;charset=utf-8,');--md-typeset-table--descending:url('data:image/svg+xml;charset=utf-8,')}.md-typeset{-webkit-print-color-adjust:exact;color-adjust:exact;font-size:.8rem;line-height:1.6}@media print{.md-typeset{font-size:.68rem}}.md-typeset blockquote,.md-typeset dl,.md-typeset figure,.md-typeset ol,.md-typeset pre,.md-typeset ul{margin:1em 0}.md-typeset h1{color:var(--md-default-fg-color--light);font-size:2em;line-height:1.3;margin:0 0 1.25em}.md-typeset h1,.md-typeset h2{font-weight:300;letter-spacing:-.01em}.md-typeset h2{font-size:1.5625em;line-height:1.4;margin:1.6em 0 .64em}.md-typeset h3{font-size:1.25em;font-weight:400;letter-spacing:-.01em;line-height:1.5;margin:1.6em 0 .8em}.md-typeset h2+h3{margin-top:.8em}.md-typeset h4{font-weight:700;letter-spacing:-.01em;margin:1em 0}.md-typeset h5,.md-typeset h6{color:var(--md-default-fg-color--light);font-size:.8em;font-weight:700;letter-spacing:-.01em;margin:1.25em 0}.md-typeset h5{text-transform:uppercase}.md-typeset hr{border-bottom:.05rem solid var(--md-default-fg-color--lightest);display:flow-root;margin:1.5em 0}.md-typeset a{color:var(--md-typeset-a-color);word-break:break-word}.md-typeset a,.md-typeset a:before{transition:color 125ms}.md-typeset a:focus,.md-typeset a:hover{color:var(--md-accent-fg-color)}.md-typeset a.focus-visible{outline-color:var(--md-accent-fg-color);outline-offset:.2rem}.md-typeset code,.md-typeset kbd,.md-typeset pre{color:var(--md-code-fg-color);direction:ltr}@media print{.md-typeset code,.md-typeset kbd,.md-typeset pre{white-space:pre-wrap}}.md-typeset code{background-color:var(--md-code-bg-color);border-radius:.1rem;-webkit-box-decoration-break:clone;box-decoration-break:clone;font-size:.85em;padding:0 .2941176471em;word-break:break-word}.md-typeset code:not(.focus-visible){-webkit-tap-highlight-color:transparent;outline:none}.md-typeset h1 code,.md-typeset h2 code,.md-typeset h3 code,.md-typeset h4 code,.md-typeset h5 code,.md-typeset h6 code{background-color:transparent;box-shadow:none;margin:initial;padding:initial}.md-typeset a code{color:currentColor}.md-typeset pre{display:flow-root;line-height:1.4;position:relative}.md-typeset pre>code{-webkit-box-decoration-break:slice;box-decoration-break:slice;box-shadow:none;display:block;margin:0;overflow:auto;padding:.7720588235em 1.1764705882em;scrollbar-color:var(--md-default-fg-color--lighter) transparent;scrollbar-width:thin;touch-action:auto;word-break:normal}.md-typeset pre>code:hover{scrollbar-color:var(--md-accent-fg-color) transparent}.md-typeset pre>code::-webkit-scrollbar{height:.2rem;width:.2rem}.md-typeset pre>code::-webkit-scrollbar-thumb{background-color:var(--md-default-fg-color--lighter)}.md-typeset pre>code::-webkit-scrollbar-thumb:hover{background-color:var(--md-accent-fg-color)}@media screen and (max-width:44.9375em){.md-content>.md-typeset>pre{margin:1em -.8rem}.md-content>.md-typeset>pre code{border-radius:0}}.md-typeset kbd{background-color:var(--md-typeset-kbd-color);border-radius:.1rem;box-shadow:0 .1rem 0 .05rem var(--md-typeset-kbd-border-color),0 .1rem 0 var(--md-typeset-kbd-border-color),0 -.1rem .2rem var(--md-typeset-kbd-accent-color) inset;color:var(--md-default-fg-color);display:inline-block;font-size:.75em;padding:0 .6666666667em;vertical-align:text-top;word-break:break-word}.md-typeset mark{background-color:var(--md-typeset-mark-color);-webkit-box-decoration-break:clone;box-decoration-break:clone;color:inherit;word-break:break-word}.md-typeset abbr{border-bottom:.05rem dotted var(--md-default-fg-color--light);cursor:help;text-decoration:none}@media (hover:none){.md-typeset abbr{position:relative}.md-typeset abbr[title]:focus:after,.md-typeset abbr[title]:hover:after{background-color:var(--md-default-fg-color);border-radius:.1rem;box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12),0 3px 1px -2px rgba(0,0,0,.2);color:var(--md-default-bg-color);content:attr(title);display:inline-block;font-size:.7rem;left:0;margin-top:2em;max-width:80%;min-width:-webkit-max-content;min-width:-moz-max-content;min-width:max-content;padding:.2rem .3rem;position:absolute;width:auto}}.md-typeset small{opacity:.75}.md-typeset sub,.md-typeset sup{margin-left:.078125em}[dir=rtl] .md-typeset sub,[dir=rtl] .md-typeset sup{margin-left:0;margin-right:.078125em}.md-typeset blockquote{border-left:.2rem solid var(--md-default-fg-color--lighter);color:var(--md-default-fg-color--light);display:flow-root;padding-left:.6rem}[dir=rtl] .md-typeset blockquote{border-left:initial;border-right:.2rem solid var(--md-default-fg-color--lighter);padding-left:0;padding-right:.6rem}.md-typeset ul{list-style-type:disc}.md-typeset ol,.md-typeset ul{display:flow-root;margin-left:.625em;padding:0}[dir=rtl] .md-typeset ol,[dir=rtl] .md-typeset ul{margin-left:0;margin-right:.625em}.md-typeset ol ol,.md-typeset ul ol{list-style-type:lower-alpha}.md-typeset ol ol ol,.md-typeset ul ol ol{list-style-type:lower-roman}.md-typeset ol li,.md-typeset ul li{margin-bottom:.5em;margin-left:1.25em}[dir=rtl] .md-typeset ol li,[dir=rtl] .md-typeset ul li{margin-left:0;margin-right:1.25em}.md-typeset ol li blockquote,.md-typeset ol li p,.md-typeset ul li blockquote,.md-typeset ul li p{margin:.5em 0}.md-typeset ol li:last-child,.md-typeset ul li:last-child{margin-bottom:0}.md-typeset ol li ol,.md-typeset ol li ul,.md-typeset ul li ol,.md-typeset ul li ul{margin:.5em 0 .5em .625em}[dir=rtl] .md-typeset ol li ol,[dir=rtl] .md-typeset ol li ul,[dir=rtl] .md-typeset ul li ol,[dir=rtl] .md-typeset ul li ul{margin-left:0;margin-right:.625em}.md-typeset dd{margin:1em 0 1.5em 1.875em}[dir=rtl] .md-typeset dd{margin-left:0;margin-right:1.875em}.md-typeset img,.md-typeset svg{height:auto;max-width:100%}.md-typeset img[align=left],.md-typeset svg[align=left]{margin:1em 1em 1em 0}.md-typeset img[align=right],.md-typeset svg[align=right]{margin:1em 0 1em 1em}.md-typeset img[align]:only-child,.md-typeset svg[align]:only-child{margin-top:0}.md-typeset figure{display:flow-root;margin:0 auto;max-width:100%;text-align:center;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.md-typeset figure img{display:block}.md-typeset figcaption{font-style:italic;margin:1em auto 2em;max-width:24rem}.md-typeset iframe{max-width:100%}.md-typeset table:not([class]){background-color:var(--md-default-bg-color);border-radius:.1rem;box-shadow:0 .2rem .5rem rgba(0,0,0,.05),0 0 .05rem rgba(0,0,0,.1);display:inline-block;font-size:.64rem;max-width:100%;overflow:auto;touch-action:auto}@media print{.md-typeset table:not([class]){display:table}}.md-typeset table:not([class])+*{margin-top:1.5em}.md-typeset table:not([class]) td>:first-child,.md-typeset table:not([class]) th>:first-child{margin-top:0}.md-typeset table:not([class]) td>:last-child,.md-typeset table:not([class]) th>:last-child{margin-bottom:0}.md-typeset table:not([class]) td:not([align]),.md-typeset table:not([class]) th:not([align]){text-align:left}[dir=rtl] .md-typeset table:not([class]) td:not([align]),[dir=rtl] .md-typeset table:not([class]) th:not([align]){text-align:right}.md-typeset table:not([class]) th{background-color:var(--md-default-fg-color--light);color:var(--md-default-bg-color);min-width:5rem;padding:.9375em 1.25em;vertical-align:top}.md-typeset table:not([class]) th a{color:inherit}.md-typeset table:not([class]) td{border-top:.05rem solid var(--md-default-fg-color--lightest);padding:.9375em 1.25em;vertical-align:top}.md-typeset table:not([class]) tr{transition:background-color 125ms}.md-typeset table:not([class]) tr:hover{background-color:rgba(0,0,0,.04);box-shadow:0 .05rem 0 var(--md-default-bg-color) inset}.md-typeset table:not([class]) tr:first-child td{border-top:0}.md-typeset table:not([class]) a{word-break:normal}.md-typeset table th[role=columnheader]{cursor:pointer}.md-typeset table th[role=columnheader]:after{content:"";display:inline-block;height:1.2em;margin-left:.5em;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;vertical-align:sub;width:1.2em}.md-typeset table th[role=columnheader][aria-sort=ascending]:after{background-color:currentColor;-webkit-mask-image:var(--md-typeset-table--ascending);mask-image:var(--md-typeset-table--ascending)}.md-typeset table th[role=columnheader][aria-sort=descending]:after{background-color:currentColor;-webkit-mask-image:var(--md-typeset-table--descending);mask-image:var(--md-typeset-table--descending)}.md-typeset__scrollwrap{margin:1em -.8rem;overflow-x:auto;touch-action:auto}.md-typeset__table{display:inline-block;margin-bottom:.5em;padding:0 .8rem}@media print{.md-typeset__table{display:block}}html .md-typeset__table table{display:table;margin:0;overflow:hidden;width:100%}html{font-size:125%;height:100%;overflow-x:hidden}@media screen and (min-width:100em){html{font-size:137.5%}}@media screen and (min-width:125em){html{font-size:150%}}body{background-color:var(--md-default-bg-color);display:flex;flex-direction:column;font-size:.5rem;min-height:100%;position:relative;width:100%}@media print{body{display:block}}@media screen and (max-width:59.9375em){body[data-md-state=lock]{position:fixed}}.md-grid{margin-left:auto;margin-right:auto;max-width:61rem}.md-container{display:flex;flex-direction:column;flex-grow:1}@media print{.md-container{display:block}}.md-main{flex-grow:1}.md-main__inner{display:flex;height:100%;margin-top:1.5rem}.md-ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.md-toggle{display:none}.md-option{height:0;opacity:0;position:absolute;width:0}.md-option:checked+label:not([hidden]){display:block}.md-option.focus-visible+label{outline-color:var(--md-accent-fg-color);outline-style:auto}.md-skip{background-color:var(--md-default-fg-color);border-radius:.1rem;color:var(--md-default-bg-color);font-size:.64rem;margin:.5rem;opacity:0;outline-color:var(--md-accent-fg-color);padding:.3rem .5rem;position:fixed;transform:translateY(.4rem);z-index:-1}.md-skip:focus{opacity:1;transform:translateY(0);transition:transform .25s cubic-bezier(.4,0,.2,1),opacity 175ms 75ms;z-index:10}@page{margin:25mm}.md-banner{background-color:var(--md-footer-bg-color);color:var(--md-footer-fg-color);overflow:auto}@media print{.md-banner{display:none}}.md-banner--warning{background:var(--md-typeset-mark-color);color:var(--md-default-fg-color)}.md-banner__inner{font-size:.7rem;margin:.6rem auto;padding:0 .8rem}:root{--md-clipboard-icon:url('data:image/svg+xml;charset=utf-8,')}.md-clipboard{border-radius:.1rem;color:var(--md-default-fg-color--lightest);cursor:pointer;height:1.5em;outline-color:var(--md-accent-fg-color);outline-offset:.1rem;position:absolute;right:.5em;top:.5em;transition:color .25s;width:1.5em;z-index:1}@media print{.md-clipboard{display:none}}.md-clipboard:not(.focus-visible){-webkit-tap-highlight-color:transparent;outline:none}:hover>.md-clipboard{color:var(--md-default-fg-color--light)}.md-clipboard:focus,.md-clipboard:hover{color:var(--md-accent-fg-color)}.md-clipboard:after{background-color:currentColor;content:"";display:block;height:1.125em;margin:0 auto;-webkit-mask-image:var(--md-clipboard-icon);mask-image:var(--md-clipboard-icon);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:1.125em}.md-clipboard--inline{cursor:pointer}.md-clipboard--inline code{transition:color .25s,background-color .25s}.md-clipboard--inline:focus code,.md-clipboard--inline:hover code{background-color:var(--md-accent-fg-color--transparent);color:var(--md-accent-fg-color)}.md-content{flex-grow:1;min-width:0}.md-content__inner{margin:0 .8rem 1.2rem;padding-top:.6rem}@media screen and (min-width:76.25em){.md-sidebar--primary:not([hidden])~.md-content>.md-content__inner{margin-left:1.2rem}[dir=rtl] .md-sidebar--primary:not([hidden])~.md-content>.md-content__inner{margin-left:.8rem;margin-right:1.2rem}.md-sidebar--secondary:not([hidden])~.md-content>.md-content__inner{margin-right:1.2rem}[dir=rtl] .md-sidebar--secondary:not([hidden])~.md-content>.md-content__inner{margin-left:1.2rem;margin-right:.8rem}}.md-content__inner:before{content:"";display:block;height:.4rem}.md-content__inner>:last-child{margin-bottom:0}.md-content__button{float:right;margin:.4rem 0 .4rem .4rem;padding:0}@media print{.md-content__button{display:none}}[dir=rtl] .md-content__button{float:left;margin-left:0;margin-right:.4rem}[dir=rtl] .md-content__button svg{transform:scaleX(-1)}.md-typeset .md-content__button{color:var(--md-default-fg-color--lighter)}.md-content__button svg{display:inline;vertical-align:top}.md-dialog{background-color:var(--md-default-fg-color);border-radius:.1rem;bottom:.8rem;box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12),0 3px 1px -2px rgba(0,0,0,.2);left:auto;min-width:11.1rem;opacity:0;padding:.4rem .6rem;pointer-events:none;position:fixed;right:.8rem;transform:translateY(100%);transition:transform 0ms .4s,opacity .4s;z-index:3}@media print{.md-dialog{display:none}}[dir=rtl] .md-dialog{left:.8rem;right:auto}.md-dialog[data-md-state=open]{opacity:1;pointer-events:auto;transform:translateY(0);transition:transform .4s cubic-bezier(.075,.85,.175,1),opacity .4s}.md-dialog__inner{color:var(--md-default-bg-color);font-size:.7rem}.md-typeset .md-button{border:.1rem solid;border-radius:.1rem;color:var(--md-primary-fg-color);display:inline-block;font-weight:700;padding:.625em 2em;transition:color 125ms,background-color 125ms,border-color 125ms}.md-typeset .md-button--primary{background-color:var(--md-primary-fg-color);border-color:var(--md-primary-fg-color);color:var(--md-primary-bg-color)}.md-typeset .md-button:focus,.md-typeset .md-button:hover{background-color:var(--md-accent-fg-color);border-color:var(--md-accent-fg-color);color:var(--md-accent-bg-color)}.md-typeset .md-input{border-radius:.1rem;box-shadow:0 .2rem .5rem rgba(0,0,0,.1),0 .025rem .05rem rgba(0,0,0,.1);font-size:.8rem;height:1.8rem;padding:0 .6rem;transition:box-shadow .25s}.md-typeset .md-input:focus,.md-typeset .md-input:hover{box-shadow:0 .4rem 1rem rgba(0,0,0,.15),0 .025rem .05rem rgba(0,0,0,.15)}.md-typeset .md-input--stretch{width:100%}.md-header{background-color:var(--md-primary-fg-color);box-shadow:0 0 .2rem transparent,0 .2rem .4rem transparent;color:var(--md-primary-bg-color);left:0;position:-webkit-sticky;position:sticky;right:0;top:0;z-index:3}@media print{.md-header{display:none}}.md-header[data-md-state=shadow]{box-shadow:0 0 .2rem rgba(0,0,0,.1),0 .2rem .4rem rgba(0,0,0,.2);transition:transform .25s cubic-bezier(.1,.7,.1,1),box-shadow .25s}.md-header[data-md-state=hidden]{transform:translateY(-100%);transition:transform .25s cubic-bezier(.8,0,.6,1),box-shadow .25s}.md-header__inner{align-items:center;display:flex;padding:0 .2rem}.md-header__button{color:currentColor;cursor:pointer;margin:.2rem;outline-color:var(--md-accent-fg-color);padding:.4rem;position:relative;transition:opacity .25s;vertical-align:middle;z-index:1}.md-header__button:hover{opacity:.7}.md-header__button:not([hidden]){display:inline-block}.md-header__button:not(.focus-visible){-webkit-tap-highlight-color:transparent;outline:none}.md-header__button.md-logo{margin:.2rem;padding:.4rem}@media screen and (max-width:76.1875em){.md-header__button.md-logo{display:none}}.md-header__button.md-logo img,.md-header__button.md-logo svg{fill:currentColor;display:block;height:1.2rem;width:1.2rem}@media screen and (min-width:60em){.md-header__button[for=__search]{display:none}}.no-js .md-header__button[for=__search]{display:none}[dir=rtl] .md-header__button[for=__search] svg{transform:scaleX(-1)}@media screen and (min-width:76.25em){.md-header__button[for=__drawer]{display:none}}.md-header__topic{display:flex;max-width:100%;position:absolute;transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .15s}.md-header__topic+.md-header__topic{opacity:0;pointer-events:none;transform:translateX(1.25rem);transition:transform .4s cubic-bezier(1,.7,.1,.1),opacity .15s;z-index:-1}[dir=rtl] .md-header__topic+.md-header__topic{transform:translateX(-1.25rem)}.md-header__title{flex-grow:1;font-size:.9rem;height:2.4rem;line-height:2.4rem;margin-left:1rem;margin-right:.4rem}.md-header__title[data-md-state=active] .md-header__topic{opacity:0;pointer-events:none;transform:translateX(-1.25rem);transition:transform .4s cubic-bezier(1,.7,.1,.1),opacity .15s;z-index:-1}[dir=rtl] .md-header__title[data-md-state=active] .md-header__topic{transform:translateX(1.25rem)}.md-header__title[data-md-state=active] .md-header__topic+.md-header__topic{opacity:1;pointer-events:auto;transform:translateX(0);transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .15s;z-index:0}.md-header__title>.md-header__ellipsis{height:100%;position:relative;width:100%}.md-header__option{display:flex;flex-shrink:0;max-width:100%;transition:max-width 0ms .25s,opacity .25s .25s;white-space:nowrap}[data-md-toggle=search]:checked~.md-header .md-header__option{max-width:0;opacity:0;transition:max-width 0ms,opacity 0ms}.md-header__source{display:none}@media screen and (min-width:60em){.md-header__source{display:block;margin-left:1rem;max-width:11.7rem;width:11.7rem}[dir=rtl] .md-header__source{margin-left:0;margin-right:1rem}}@media screen and (min-width:76.25em){.md-header__source{margin-left:1.4rem}[dir=rtl] .md-header__source{margin-right:1.4rem}}.md-footer{background-color:var(--md-footer-bg-color);color:var(--md-footer-fg-color)}@media print{.md-footer{display:none}}.md-footer__inner{overflow:auto;padding:.2rem}.md-footer__link{display:flex;outline-color:var(--md-accent-fg-color);padding-bottom:.4rem;padding-top:1.4rem;transition:opacity .25s}@media screen and (min-width:45em){.md-footer__link{width:50%}}.md-footer__link:focus,.md-footer__link:hover{opacity:.7}.md-footer__link--prev{float:left}@media screen and (max-width:44.9375em){.md-footer__link--prev{width:25%}.md-footer__link--prev .md-footer__title{display:none}}[dir=rtl] .md-footer__link--prev{float:right}[dir=rtl] .md-footer__link--prev svg{transform:scaleX(-1)}.md-footer__link--next{float:right;text-align:right}@media screen and (max-width:44.9375em){.md-footer__link--next{width:75%}}[dir=rtl] .md-footer__link--next{float:left;text-align:left}[dir=rtl] .md-footer__link--next svg{transform:scaleX(-1)}.md-footer__title{flex-grow:1;font-size:.9rem;line-height:2.4rem;max-width:calc(100% - 2.4rem);padding:0 1rem;position:relative}.md-footer__button{margin:.2rem;padding:.4rem}.md-footer__direction{font-size:.64rem;left:0;margin-top:-1rem;opacity:.7;padding:0 1rem;position:absolute;right:0}.md-footer-meta{background-color:var(--md-footer-bg-color--dark)}.md-footer-meta__inner{display:flex;flex-wrap:wrap;justify-content:space-between;padding:.2rem}html .md-footer-meta.md-typeset a{color:var(--md-footer-fg-color--light)}html .md-footer-meta.md-typeset a:focus,html .md-footer-meta.md-typeset a:hover{color:var(--md-footer-fg-color)}.md-footer-copyright{color:var(--md-footer-fg-color--lighter);font-size:.64rem;margin:auto .6rem;padding:.4rem 0;width:100%}@media screen and (min-width:45em){.md-footer-copyright{width:auto}}.md-footer-copyright__highlight{color:var(--md-footer-fg-color--light)}.md-footer-social{margin:0 .4rem;padding:.2rem 0 .6rem}@media screen and (min-width:45em){.md-footer-social{padding:.6rem 0}}.md-footer-social__link{display:inline-block;height:1.6rem;text-align:center;width:1.6rem}.md-footer-social__link:before{line-height:1.9}.md-footer-social__link svg{fill:currentColor;max-height:.8rem;vertical-align:-25%}:root{--md-nav-icon--prev:url('data:image/svg+xml;charset=utf-8,');--md-nav-icon--next:url('data:image/svg+xml;charset=utf-8,');--md-toc-icon:url('data:image/svg+xml;charset=utf-8,')}.md-nav{font-size:.7rem;line-height:1.3}.md-nav__title{display:block;font-weight:700;overflow:hidden;padding:0 .6rem;text-overflow:ellipsis}.md-nav__title .md-nav__button{display:none}.md-nav__title .md-nav__button img{height:100%;width:auto}.md-nav__title .md-nav__button.md-logo img,.md-nav__title .md-nav__button.md-logo svg{fill:currentColor;display:block;height:2.4rem;width:2.4rem}.md-nav__list{margin:0;padding:0}.md-nav__item{display:block;padding:0 .6rem}.md-nav__item .md-nav__item{padding-right:0}[dir=rtl] .md-nav__item .md-nav__item{padding-left:0;padding-right:.6rem}.md-nav__link{cursor:pointer;display:block;margin-top:.625em;overflow:hidden;scroll-snap-align:start;text-overflow:ellipsis;transition:color 125ms}.md-nav__link[data-md-state=blur]{color:var(--md-default-fg-color--light)}.md-nav__link--container{display:flex}.md-nav__link--container>:first-child{flex-grow:1}.md-nav__link--container>*{cursor:inherit}.md-nav__item .md-nav__link--active{color:var(--md-typeset-a-color)}.md-nav__link:focus,.md-nav__link:hover{color:var(--md-accent-fg-color)}.md-nav__link.focus-visible{outline-color:var(--md-accent-fg-color);outline-offset:.2rem}.md-nav--primary .md-nav__link[for=__toc]{display:none}.md-nav--primary .md-nav__link[for=__toc] .md-icon:after{background-color:currentColor;display:block;height:100%;-webkit-mask-image:var(--md-toc-icon);mask-image:var(--md-toc-icon);width:100%}.md-nav--primary .md-nav__link[for=__toc]~.md-nav{display:none}.md-nav__source{display:none}@media screen and (max-width:76.1875em){.md-nav--primary,.md-nav--primary .md-nav{background-color:var(--md-default-bg-color);display:flex;flex-direction:column;height:100%;left:0;position:absolute;right:0;top:0;z-index:1}.md-nav--primary .md-nav__item,.md-nav--primary .md-nav__title{font-size:.8rem;line-height:1.5}.md-nav--primary .md-nav__title{background-color:var(--md-default-fg-color--lightest);color:var(--md-default-fg-color--light);cursor:pointer;font-weight:400;height:5.6rem;line-height:2.4rem;padding:3rem .8rem .2rem;position:relative;white-space:nowrap}.md-nav--primary .md-nav__title .md-nav__icon{display:block;height:1.2rem;left:.4rem;margin:.2rem;position:absolute;top:.4rem;width:1.2rem}[dir=rtl] .md-nav--primary .md-nav__title .md-nav__icon{left:auto;right:.4rem}.md-nav--primary .md-nav__title .md-nav__icon:after{background-color:currentColor;content:"";display:block;height:100%;-webkit-mask-image:var(--md-nav-icon--prev);mask-image:var(--md-nav-icon--prev);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:100%}.md-nav--primary .md-nav__title~.md-nav__list{background-color:var(--md-default-bg-color);box-shadow:0 .05rem 0 var(--md-default-fg-color--lightest) inset;overflow-y:auto;-ms-scroll-snap-type:y mandatory;scroll-snap-type:y mandatory;touch-action:pan-y}.md-nav--primary .md-nav__title~.md-nav__list>:first-child{border-top:0}.md-nav--primary .md-nav__title[for=__drawer]{background-color:var(--md-primary-fg-color);color:var(--md-primary-bg-color)}.md-nav--primary .md-nav__title .md-logo{display:block;left:.2rem;margin:.2rem;padding:.4rem;position:absolute;top:.2rem}[dir=rtl] .md-nav--primary .md-nav__title .md-logo{left:auto;right:.2rem}.md-nav--primary .md-nav__list{flex:1}.md-nav--primary .md-nav__item{border-top:.05rem solid var(--md-default-fg-color--lightest);padding:0}.md-nav--primary .md-nav__item--nested>.md-nav__link{padding-right:2.4rem}[dir=rtl] .md-nav--primary .md-nav__item--nested>.md-nav__link{padding-left:2.4rem;padding-right:.8rem}.md-nav--primary .md-nav__item--active>.md-nav__link{color:var(--md-typeset-a-color)}.md-nav--primary .md-nav__item--active>.md-nav__link:focus,.md-nav--primary .md-nav__item--active>.md-nav__link:hover{color:var(--md-accent-fg-color)}.md-nav--primary .md-nav__link{margin-top:0;padding:.6rem .8rem;position:relative}.md-nav--primary .md-nav__link .md-nav__icon{color:inherit;font-size:1.2rem;height:1.2rem;margin-top:-.6rem;position:absolute;right:.6rem;top:50%;width:1.2rem}[dir=rtl] .md-nav--primary .md-nav__link .md-nav__icon{left:.6rem;right:auto}.md-nav--primary .md-nav__link .md-nav__icon:after{background-color:currentColor;content:"";display:block;height:100%;-webkit-mask-image:var(--md-nav-icon--next);mask-image:var(--md-nav-icon--next);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:100%}[dir=rtl] .md-nav--primary .md-nav__icon:after{transform:scale(-1)}.md-nav--primary .md-nav--secondary .md-nav__link{position:static}.md-nav--primary .md-nav--secondary .md-nav{background-color:transparent;position:static}.md-nav--primary .md-nav--secondary .md-nav .md-nav__link{padding-left:1.4rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav__link{padding-left:0;padding-right:1.4rem}.md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav__link{padding-left:2rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav__link{padding-left:0;padding-right:2rem}.md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav__link{padding-left:2.6rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav__link{padding-left:0;padding-right:2.6rem}.md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav .md-nav__link{padding-left:3.2rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav .md-nav__link{padding-left:0;padding-right:3.2rem}.md-nav--secondary{background-color:transparent}.md-nav__toggle~.md-nav{display:flex;opacity:0;transform:translateX(100%);transition:transform .25s cubic-bezier(.8,0,.6,1),opacity 125ms 50ms}[dir=rtl] .md-nav__toggle~.md-nav{transform:translateX(-100%)}.md-nav__toggle:checked~.md-nav{opacity:1;transform:translateX(0);transition:transform .25s cubic-bezier(.4,0,.2,1),opacity 125ms 125ms}.md-nav__toggle:checked~.md-nav>.md-nav__list{-webkit-backface-visibility:hidden;backface-visibility:hidden}}@media screen and (max-width:59.9375em){.md-nav--primary .md-nav__link[for=__toc]{display:block;padding-right:2.4rem}[dir=rtl] .md-nav--primary .md-nav__link[for=__toc]{padding-left:2.4rem;padding-right:.8rem}.md-nav--primary .md-nav__link[for=__toc] .md-icon:after{content:""}.md-nav--primary .md-nav__link[for=__toc]+.md-nav__link{display:none}.md-nav--primary .md-nav__link[for=__toc]~.md-nav{display:flex}.md-nav__source{background-color:var(--md-primary-fg-color--dark);color:var(--md-primary-bg-color);display:block;padding:0 .2rem}}@media screen and (min-width:60em) and (max-width:76.1875em){.md-nav--integrated .md-nav__link[for=__toc]{display:block;padding-right:2.4rem;scroll-snap-align:none}[dir=rtl] .md-nav--integrated .md-nav__link[for=__toc]{padding-left:2.4rem;padding-right:.8rem}.md-nav--integrated .md-nav__link[for=__toc] .md-icon:after{content:""}.md-nav--integrated .md-nav__link[for=__toc]+.md-nav__link{display:none}.md-nav--integrated .md-nav__link[for=__toc]~.md-nav{display:flex}}@media screen and (min-width:60em){.md-nav--secondary .md-nav__title{background:var(--md-default-bg-color);box-shadow:0 0 .4rem .4rem var(--md-default-bg-color);position:-webkit-sticky;position:sticky;top:0}.md-nav--secondary .md-nav__title[for=__toc]{scroll-snap-align:start}.md-nav--secondary .md-nav__title .md-nav__icon{display:none}}@media screen and (min-width:76.25em){.md-nav{transition:max-height .25s cubic-bezier(.86,0,.07,1)}.md-nav--primary .md-nav__title{background:var(--md-default-bg-color);box-shadow:0 0 .4rem .4rem var(--md-default-bg-color);position:-webkit-sticky;position:sticky;top:0}.md-nav--primary .md-nav__title[for=__drawer]{scroll-snap-align:start}.md-nav--primary .md-nav__title .md-nav__icon{display:none}.md-nav__toggle~.md-nav{display:none}.md-nav__toggle:checked~.md-nav,.md-nav__toggle:indeterminate~.md-nav{display:block}.md-nav__item--nested>.md-nav>.md-nav__title{display:none}.md-nav__item--section{display:block;margin:1.25em 0}.md-nav__item--section:last-child{margin-bottom:0}.md-nav__item--section>.md-nav__link{font-weight:700;pointer-events:none}.md-nav__item--section>.md-nav__link>*{pointer-events:auto}.md-nav__item--section>.md-nav__link .md-icon{display:none}.md-nav__item--section>.md-nav{display:block}.md-nav__item--section>.md-nav>.md-nav__list>.md-nav__item{padding:0}.md-nav__icon{float:right;height:.9rem;transition:transform .25s;width:.9rem}[dir=rtl] .md-nav__icon{float:left;transform:rotate(180deg)}.md-nav__icon:after{background-color:currentColor;content:"";display:inline-block;height:100%;-webkit-mask-image:var(--md-nav-icon--next);mask-image:var(--md-nav-icon--next);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;vertical-align:-.1rem;width:100%}.md-nav__item--nested .md-nav__toggle:checked~.md-nav__link .md-nav__icon,.md-nav__item--nested .md-nav__toggle:indeterminate~.md-nav__link .md-nav__icon{transform:rotate(90deg)}.md-nav--lifted>.md-nav__list>.md-nav__item--nested,.md-nav--lifted>.md-nav__title{display:none}.md-nav--lifted>.md-nav__list>.md-nav__item{display:none}.md-nav--lifted>.md-nav__list>.md-nav__item--active{display:block;padding:0}.md-nav--lifted>.md-nav__list>.md-nav__item--active>.md-nav__link{display:none}.md-nav--lifted>.md-nav__list>.md-nav__item--active>.md-nav>.md-nav__title{display:block;padding:0 .6rem;pointer-events:none;scroll-snap-align:start}.md-nav--lifted .md-nav[data-md-level="1"]{display:block}.md-nav--lifted .md-nav[data-md-level="1"]>.md-nav__list>.md-nav__item{padding-right:.6rem}.md-nav--integrated .md-nav__link[for=__toc]~.md-nav{border-left:.05rem solid var(--md-primary-fg-color);display:block;margin-bottom:1.25em}.md-nav--integrated .md-nav__link[for=__toc]~.md-nav>.md-nav__title{display:none}}:root{--md-search-result-icon:url('data:image/svg+xml;charset=utf-8,')}.md-search{position:relative}@media screen and (min-width:60em){.md-search{padding:.2rem 0}}.no-js .md-search{display:none}.md-search__overlay{opacity:0;z-index:1}@media screen and (max-width:59.9375em){.md-search__overlay{background-color:var(--md-default-bg-color);border-radius:1rem;height:2rem;left:-2.2rem;overflow:hidden;pointer-events:none;position:absolute;top:.2rem;transform-origin:center;transition:transform .3s .1s,opacity .2s .2s;width:2rem}[dir=rtl] .md-search__overlay{left:auto;right:-2.2rem}[data-md-toggle=search]:checked~.md-header .md-search__overlay{opacity:1;transition:transform .4s,opacity .1s}}@media screen and (min-width:60em){.md-search__overlay{background-color:rgba(0,0,0,.54);cursor:pointer;height:0;left:0;position:fixed;top:0;transition:width 0ms .25s,height 0ms .25s,opacity .25s;width:0}[dir=rtl] .md-search__overlay{left:auto;right:0}[data-md-toggle=search]:checked~.md-header .md-search__overlay{height:200vh;opacity:1;transition:width 0ms,height 0ms,opacity .25s;width:100%}}@media screen and (max-width:29.9375em){[data-md-toggle=search]:checked~.md-header .md-search__overlay{transform:scale(45)}}@media screen and (min-width:30em) and (max-width:44.9375em){[data-md-toggle=search]:checked~.md-header .md-search__overlay{transform:scale(60)}}@media screen and (min-width:45em) and (max-width:59.9375em){[data-md-toggle=search]:checked~.md-header .md-search__overlay{transform:scale(75)}}.md-search__inner{-webkit-backface-visibility:hidden;backface-visibility:hidden}@media screen and (max-width:59.9375em){.md-search__inner{height:100%;left:100%;opacity:0;position:fixed;top:0;transform:translateX(5%);transition:right 0ms .3s,left 0ms .3s,transform .15s cubic-bezier(.4,0,.2,1) .15s,opacity .15s .15s;width:100%;z-index:2}[data-md-toggle=search]:checked~.md-header .md-search__inner{left:0;opacity:1;transform:translateX(0);transition:right 0ms 0ms,left 0ms 0ms,transform .15s cubic-bezier(.1,.7,.1,1) .15s,opacity .15s .15s}[dir=rtl] [data-md-toggle=search]:checked~.md-header .md-search__inner{left:auto;right:0}html [dir=rtl] .md-search__inner{left:auto;right:100%;transform:translateX(-5%)}}@media screen and (min-width:60em){.md-search__inner{float:right;padding:.1rem 0;position:relative;transition:width .25s cubic-bezier(.1,.7,.1,1);width:11.7rem}[dir=rtl] .md-search__inner{float:left}}@media screen and (min-width:60em) and (max-width:76.1875em){[data-md-toggle=search]:checked~.md-header .md-search__inner{width:23.4rem}}@media screen and (min-width:76.25em){[data-md-toggle=search]:checked~.md-header .md-search__inner{width:34.4rem}}.md-search__form{background-color:var(--md-default-bg-color);box-shadow:0 0 .6rem transparent;height:2.4rem;position:relative;transition:color .25s,background-color .25s;z-index:2}@media screen and (min-width:60em){.md-search__form{background-color:rgba(0,0,0,.26);border-radius:.1rem;height:1.8rem}.md-search__form:hover{background-color:hsla(0,0%,100%,.12)}}[data-md-toggle=search]:checked~.md-header .md-search__form{background-color:var(--md-default-bg-color);border-radius:.1rem .1rem 0 0;box-shadow:0 0 .6rem rgba(0,0,0,.07);color:var(--md-default-fg-color)}.md-search__input{background:transparent;font-size:.9rem;height:100%;padding:0 2.2rem 0 3.6rem;position:relative;text-overflow:ellipsis;width:100%;z-index:2}[dir=rtl] .md-search__input{padding:0 3.6rem 0 2.2rem}.md-search__input::-webkit-input-placeholder{-webkit-transition:color .25s;transition:color .25s}.md-search__input::-moz-placeholder{-moz-transition:color .25s;transition:color .25s}.md-search__input::-ms-input-placeholder{-ms-transition:color .25s;transition:color .25s}.md-search__input::placeholder{transition:color .25s}.md-search__input::-webkit-input-placeholder{color:var(--md-default-fg-color--light)}.md-search__input::-moz-placeholder{color:var(--md-default-fg-color--light)}.md-search__input::-ms-input-placeholder{color:var(--md-default-fg-color--light)}.md-search__input::placeholder,.md-search__input~.md-search__icon{color:var(--md-default-fg-color--light)}.md-search__input::-ms-clear{display:none}@media screen and (max-width:59.9375em){.md-search__input{font-size:.9rem;height:2.4rem;width:100%}}@media screen and (min-width:60em){.md-search__input{color:inherit;font-size:.8rem;padding-left:2.2rem}[dir=rtl] .md-search__input{padding-right:2.2rem}.md-search__input::-webkit-input-placeholder{color:var(--md-primary-bg-color--light)}.md-search__input::-moz-placeholder{color:var(--md-primary-bg-color--light)}.md-search__input::-ms-input-placeholder{color:var(--md-primary-bg-color--light)}.md-search__input::placeholder{color:var(--md-primary-bg-color--light)}.md-search__input+.md-search__icon{color:var(--md-primary-bg-color)}[data-md-toggle=search]:checked~.md-header .md-search__input{text-overflow:clip}[data-md-toggle=search]:checked~.md-header .md-search__input::-webkit-input-placeholder{color:var(--md-default-fg-color--light)}[data-md-toggle=search]:checked~.md-header .md-search__input::-moz-placeholder{color:var(--md-default-fg-color--light)}[data-md-toggle=search]:checked~.md-header .md-search__input::-ms-input-placeholder{color:var(--md-default-fg-color--light)}[data-md-toggle=search]:checked~.md-header .md-search__input+.md-search__icon,[data-md-toggle=search]:checked~.md-header .md-search__input::placeholder{color:var(--md-default-fg-color--light)}}.md-search__icon{cursor:pointer;display:inline-block;height:1.2rem;transition:color .25s,opacity .25s;width:1.2rem}.md-search__icon:hover{opacity:.7}.md-search__icon[for=__search]{left:.5rem;position:absolute;top:.3rem;z-index:2}[dir=rtl] .md-search__icon[for=__search]{left:auto;right:.5rem}[dir=rtl] .md-search__icon[for=__search] svg{transform:scaleX(-1)}@media screen and (max-width:59.9375em){.md-search__icon[for=__search]{left:.8rem;top:.6rem}[dir=rtl] .md-search__icon[for=__search]{left:auto;right:.8rem}.md-search__icon[for=__search] svg:first-child{display:none}}@media screen and (min-width:60em){.md-search__icon[for=__search]{pointer-events:none}.md-search__icon[for=__search] svg:last-child{display:none}}.md-search__options{pointer-events:none;position:absolute;right:.5rem;top:.3rem;z-index:2}[dir=rtl] .md-search__options{left:.5rem;right:auto}@media screen and (max-width:59.9375em){.md-search__options{right:.8rem;top:.6rem}[dir=rtl] .md-search__options{left:.8rem;right:auto}}.md-search__options>*{color:var(--md-default-fg-color--light);margin-left:.2rem;opacity:0;transform:scale(.75);transition:transform .15s cubic-bezier(.1,.7,.1,1),opacity .15s}.md-search__options>:not(.focus-visible){-webkit-tap-highlight-color:transparent;outline:none}[data-md-toggle=search]:checked~.md-header .md-search__input:valid~.md-search__options>*{opacity:1;pointer-events:auto;transform:scale(1)}[data-md-toggle=search]:checked~.md-header .md-search__input:valid~.md-search__options>:hover{opacity:.7}.md-search__suggest{align-items:center;color:var(--md-default-fg-color--lighter);display:flex;font-size:.9rem;height:100%;opacity:0;padding:0 2.2rem 0 3.6rem;position:absolute;top:0;transition:opacity 50ms;white-space:nowrap;width:100%}[dir=rtl] .md-search__suggest{padding:0 3.6rem 0 2.2rem}@media screen and (min-width:60em){.md-search__suggest{font-size:.8rem;padding-left:2.2rem}[dir=rtl] .md-search__suggest{padding-right:2.2rem}}[data-md-toggle=search]:checked~.md-header .md-search__suggest{opacity:1;transition:opacity .3s .1s}.md-search__output{border-radius:0 0 .1rem .1rem;overflow:hidden;position:absolute;width:100%;z-index:1}@media screen and (max-width:59.9375em){.md-search__output{bottom:0;top:2.4rem}}@media screen and (min-width:60em){.md-search__output{opacity:0;top:1.9rem;transition:opacity .4s}[data-md-toggle=search]:checked~.md-header .md-search__output{box-shadow:0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12),0 3px 5px -1px rgba(0,0,0,.4);opacity:1}}.md-search__scrollwrap{-webkit-backface-visibility:hidden;backface-visibility:hidden;background-color:var(--md-default-bg-color);height:100%;overflow-y:auto;touch-action:pan-y}@media (-webkit-max-device-pixel-ratio:1),(max-resolution:1dppx){.md-search__scrollwrap{transform:translateZ(0)}}@media screen and (min-width:60em) and (max-width:76.1875em){.md-search__scrollwrap{width:23.4rem}}@media screen and (min-width:76.25em){.md-search__scrollwrap{width:34.4rem}}@media screen and (min-width:60em){.md-search__scrollwrap{max-height:0;scrollbar-color:var(--md-default-fg-color--lighter) transparent;scrollbar-width:thin}[data-md-toggle=search]:checked~.md-header .md-search__scrollwrap{max-height:75vh}.md-search__scrollwrap:hover{scrollbar-color:var(--md-accent-fg-color) transparent}.md-search__scrollwrap::-webkit-scrollbar{height:.2rem;width:.2rem}.md-search__scrollwrap::-webkit-scrollbar-thumb{background-color:var(--md-default-fg-color--lighter)}.md-search__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:var(--md-accent-fg-color)}}.md-search-result{color:var(--md-default-fg-color);word-break:break-word}.md-search-result__meta{background-color:var(--md-default-fg-color--lightest);color:var(--md-default-fg-color--light);font-size:.64rem;line-height:1.8rem;padding:0 .8rem;scroll-snap-align:start}@media screen and (min-width:60em){.md-search-result__meta{padding-left:2.2rem}[dir=rtl] .md-search-result__meta{padding-left:0;padding-right:2.2rem}}.md-search-result__list{list-style:none;margin:0;padding:0}.md-search-result__item{box-shadow:0 -.05rem 0 var(--md-default-fg-color--lightest)}.md-search-result__item:first-child{box-shadow:none}.md-search-result__link{display:block;outline:none;scroll-snap-align:start;transition:background-color .25s}.md-search-result__link:focus,.md-search-result__link:hover{background-color:var(--md-accent-fg-color--transparent)}.md-search-result__link:last-child p:last-child{margin-bottom:.6rem}.md-search-result__more summary{color:var(--md-typeset-a-color);cursor:pointer;display:block;font-size:.64rem;outline:none;padding:.75em .8rem;scroll-snap-align:start;transition:color .25s,background-color .25s}@media screen and (min-width:60em){.md-search-result__more summary{padding-left:2.2rem}[dir=rtl] .md-search-result__more summary{padding-left:.8rem;padding-right:2.2rem}}.md-search-result__more summary:focus,.md-search-result__more summary:hover{background-color:var(--md-accent-fg-color--transparent);color:var(--md-accent-fg-color)}.md-search-result__more summary::-webkit-details-marker,.md-search-result__more summary::marker{display:none}.md-search-result__more summary~*>*{opacity:.65}.md-search-result__article{overflow:hidden;padding:0 .8rem;position:relative}@media screen and (min-width:60em){.md-search-result__article{padding-left:2.2rem}[dir=rtl] .md-search-result__article{padding-left:.8rem;padding-right:2.2rem}}.md-search-result__article--document .md-search-result__title{font-size:.8rem;font-weight:400;line-height:1.4;margin:.55rem 0}.md-search-result__icon{color:var(--md-default-fg-color--light);height:1.2rem;left:0;margin:.5rem;position:absolute;width:1.2rem}@media screen and (max-width:59.9375em){.md-search-result__icon{display:none}}.md-search-result__icon:after{background-color:currentColor;content:"";display:inline-block;height:100%;-webkit-mask-image:var(--md-search-result-icon);mask-image:var(--md-search-result-icon);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:100%}[dir=rtl] .md-search-result__icon{left:auto;right:0}[dir=rtl] .md-search-result__icon:after{transform:scaleX(-1)}.md-search-result__title{font-size:.64rem;font-weight:700;line-height:1.6;margin:.5em 0}.md-search-result__teaser{-webkit-box-orient:vertical;-webkit-line-clamp:2;color:var(--md-default-fg-color--light);display:-webkit-box;font-size:.64rem;line-height:1.6;margin:.5em 0;max-height:2rem;overflow:hidden;text-overflow:ellipsis}@media screen and (max-width:44.9375em){.md-search-result__teaser{-webkit-line-clamp:3;max-height:3rem}}@media screen and (min-width:60em) and (max-width:76.1875em){.md-search-result__teaser{-webkit-line-clamp:3;max-height:3rem}}.md-search-result__teaser mark{background-color:transparent;text-decoration:underline}.md-search-result__terms{font-size:.64rem;font-style:italic;margin:.5em 0}.md-search-result mark{background-color:transparent;color:var(--md-accent-fg-color)}.md-select{position:relative;z-index:1}.md-select__inner{background-color:var(--md-default-bg-color);border-radius:.1rem;box-shadow:0 .2rem .5rem rgba(0,0,0,.1),0 0 .05rem rgba(0,0,0,.25);color:var(--md-default-fg-color);left:50%;margin-top:.2rem;max-height:0;opacity:0;position:absolute;top:calc(100% - .2rem);transform:translate3d(-50%,.3rem,0);transition:transform .25s 375ms,opacity .25s .25s,max-height 0ms .5s}.md-select:focus-within .md-select__inner,.md-select:hover .md-select__inner{max-height:10rem;opacity:1;transform:translate3d(-50%,0,0);transition:transform .25s cubic-bezier(.1,.7,.1,1),opacity .25s,max-height 0ms}.md-select__inner:after{border-bottom:.2rem solid transparent;border-bottom-color:var(--md-default-bg-color);border-left:.2rem solid transparent;border-right:.2rem solid transparent;border-top:0;content:"";height:0;left:50%;margin-left:-.2rem;margin-top:-.2rem;position:absolute;top:0;width:0}.md-select__list{border-radius:.1rem;font-size:.8rem;list-style-type:none;margin:0;max-height:inherit;overflow:auto;padding:0}.md-select__item{line-height:1.8rem}.md-select__link{cursor:pointer;display:block;outline:none;padding-left:.6rem;padding-right:1.2rem;scroll-snap-align:start;transition:background-color .25s,color .25s;width:100%}[dir=rtl] .md-select__link{padding-left:1.2rem;padding-right:.6rem}.md-select__link:focus,.md-select__link:hover{color:var(--md-accent-fg-color)}.md-select__link:focus{background-color:var(--md-default-fg-color--lightest)}.md-sidebar{align-self:flex-start;flex-shrink:0;padding:1.2rem 0;position:-webkit-sticky;position:sticky;top:2.4rem;width:12.1rem}@media print{.md-sidebar{display:none}}@media screen and (max-width:76.1875em){.md-sidebar--primary{background-color:var(--md-default-bg-color);display:block;height:100%;left:-12.1rem;position:fixed;top:0;transform:translateX(0);transition:transform .25s cubic-bezier(.4,0,.2,1),box-shadow .25s;width:12.1rem;z-index:4}[dir=rtl] .md-sidebar--primary{left:auto;right:-12.1rem}[data-md-toggle=drawer]:checked~.md-container .md-sidebar--primary{box-shadow:0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12),0 5px 5px -3px rgba(0,0,0,.4);transform:translateX(12.1rem)}[dir=rtl] [data-md-toggle=drawer]:checked~.md-container .md-sidebar--primary{transform:translateX(-12.1rem)}.md-sidebar--primary .md-sidebar__scrollwrap{bottom:0;left:0;margin:0;overflow:hidden;position:absolute;right:0;-ms-scroll-snap-type:none;scroll-snap-type:none;top:0}}@media screen and (min-width:76.25em){.md-sidebar{height:0}.no-js .md-sidebar{height:auto}}.md-sidebar--secondary{display:none;order:2}@media screen and (min-width:60em){.md-sidebar--secondary{height:0}.no-js .md-sidebar--secondary{height:auto}.md-sidebar--secondary:not([hidden]){display:block}.md-sidebar--secondary .md-sidebar__scrollwrap{touch-action:pan-y}}.md-sidebar__scrollwrap{-webkit-backface-visibility:hidden;backface-visibility:hidden;margin:0 .2rem;overflow-y:auto;scrollbar-color:var(--md-default-fg-color--lighter) transparent;scrollbar-width:thin}.md-sidebar__scrollwrap:hover{scrollbar-color:var(--md-accent-fg-color) transparent}.md-sidebar__scrollwrap::-webkit-scrollbar{height:.2rem;width:.2rem}.md-sidebar__scrollwrap::-webkit-scrollbar-thumb{background-color:var(--md-default-fg-color--lighter)}.md-sidebar__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:var(--md-accent-fg-color)}@media screen and (max-width:76.1875em){.md-overlay{background-color:rgba(0,0,0,.54);height:0;opacity:0;position:fixed;top:0;transition:width 0ms .25s,height 0ms .25s,opacity .25s;width:0;z-index:4}[data-md-toggle=drawer]:checked~.md-overlay{height:100%;opacity:1;transition:width 0ms,height 0ms,opacity .25s;width:100%}}@-webkit-keyframes facts{0%{height:0}to{height:.65rem}}@keyframes facts{0%{height:0}to{height:.65rem}}@-webkit-keyframes fact{0%{opacity:0;transform:translateY(100%)}50%{opacity:0}to{opacity:1;transform:translateY(0)}}@keyframes fact{0%{opacity:0;transform:translateY(100%)}50%{opacity:0}to{opacity:1;transform:translateY(0)}}:root{--md-source-forks-icon:url('data:image/svg+xml;charset=utf-8,');--md-source-repositories-icon:url('data:image/svg+xml;charset=utf-8,');--md-source-stars-icon:url('data:image/svg+xml;charset=utf-8,');--md-source-version-icon:url('data:image/svg+xml;charset=utf-8,')}.md-source{-webkit-backface-visibility:hidden;backface-visibility:hidden;display:block;font-size:.65rem;line-height:1.2;outline-color:var(--md-accent-fg-color);transition:opacity .25s;white-space:nowrap}.md-source:hover{opacity:.7}.md-source__icon{display:inline-block;height:2.4rem;vertical-align:middle;width:2rem}.md-source__icon svg{margin-left:.6rem;margin-top:.6rem}[dir=rtl] .md-source__icon svg{margin-left:0;margin-right:.6rem}.md-source__icon+.md-source__repository{margin-left:-2rem;padding-left:2rem}[dir=rtl] .md-source__icon+.md-source__repository{margin-left:0;margin-right:-2rem;padding-left:0;padding-right:2rem}.md-source__repository{display:inline-block;margin-left:.6rem;max-width:calc(100% - 1.2rem);overflow:hidden;text-overflow:ellipsis;vertical-align:middle}.md-source__facts{font-size:.55rem;list-style-type:none;margin:.1rem 0 0;opacity:.75;overflow:hidden;padding:0}[data-md-state=done] .md-source__facts{-webkit-animation:facts .25s ease-in;animation:facts .25s ease-in}.md-source__fact{display:inline-block}[data-md-state=done] .md-source__fact{-webkit-animation:fact .4s ease-out;animation:fact .4s ease-out}.md-source__fact:before{background-color:currentColor;content:"";display:inline-block;height:.6rem;margin-right:.1rem;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;vertical-align:text-top;width:.6rem}.md-source__fact:nth-child(1n+2):before{margin-left:.4rem}[dir=rtl] .md-source__fact{margin-left:.1rem;margin-right:0}[dir=rtl] .md-source__fact:nth-child(1n+2):before{margin-left:0;margin-right:.4rem}.md-source__fact--version:before{-webkit-mask-image:var(--md-source-version-icon);mask-image:var(--md-source-version-icon)}.md-source__fact--stars:before{-webkit-mask-image:var(--md-source-stars-icon);mask-image:var(--md-source-stars-icon)}.md-source__fact--forks:before{-webkit-mask-image:var(--md-source-forks-icon);mask-image:var(--md-source-forks-icon)}.md-source__fact--repositories:before{-webkit-mask-image:var(--md-source-repositories-icon);mask-image:var(--md-source-repositories-icon)}.md-tabs{background-color:var(--md-primary-fg-color);color:var(--md-primary-bg-color);overflow:auto;width:100%}@media print{.md-tabs{display:none}}@media screen and (max-width:76.1875em){.md-tabs{display:none}}.md-tabs[data-md-state=hidden]{pointer-events:none}.md-tabs__list{contain:content;list-style:none;margin:0 0 0 .2rem;padding:0;white-space:nowrap}[dir=rtl] .md-tabs__list{margin-left:0;margin-right:.2rem}.md-tabs__item{display:inline-block;height:2.4rem;padding-left:.6rem;padding-right:.6rem}.md-tabs__link{-webkit-backface-visibility:hidden;backface-visibility:hidden;display:block;font-size:.7rem;margin-top:.8rem;opacity:.7;outline-color:var(--md-accent-fg-color);outline-offset:.2rem;transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .25s}.md-tabs__link--active,.md-tabs__link:focus,.md-tabs__link:hover{color:inherit;opacity:1}.md-tabs__item:nth-child(2) .md-tabs__link{transition-delay:20ms}.md-tabs__item:nth-child(3) .md-tabs__link{transition-delay:40ms}.md-tabs__item:nth-child(4) .md-tabs__link{transition-delay:60ms}.md-tabs__item:nth-child(5) .md-tabs__link{transition-delay:80ms}.md-tabs__item:nth-child(6) .md-tabs__link{transition-delay:.1s}.md-tabs__item:nth-child(7) .md-tabs__link{transition-delay:.12s}.md-tabs__item:nth-child(8) .md-tabs__link{transition-delay:.14s}.md-tabs__item:nth-child(9) .md-tabs__link{transition-delay:.16s}.md-tabs__item:nth-child(10) .md-tabs__link{transition-delay:.18s}.md-tabs__item:nth-child(11) .md-tabs__link{transition-delay:.2s}.md-tabs__item:nth-child(12) .md-tabs__link{transition-delay:.22s}.md-tabs__item:nth-child(13) .md-tabs__link{transition-delay:.24s}.md-tabs__item:nth-child(14) .md-tabs__link{transition-delay:.26s}.md-tabs__item:nth-child(15) .md-tabs__link{transition-delay:.28s}.md-tabs__item:nth-child(16) .md-tabs__link{transition-delay:.3s}.md-tabs[data-md-state=hidden] .md-tabs__link{opacity:0;transform:translateY(50%);transition:transform 0ms .1s,opacity .1s}.md-tags{margin-bottom:.75em}.md-tag{background:var(--md-default-fg-color--lightest);border-radius:.4rem;display:inline-block;font-size:.64rem;font-weight:700;line-height:1.6;margin-bottom:.5em;margin-right:.5em;padding:.3125em .9375em}.md-tag[href]{-webkit-tap-highlight-color:transparent;color:inherit;outline:none;transition:color 125ms,background-color 125ms}.md-tag[href]:focus,.md-tag[href]:hover{background-color:var(--md-accent-fg-color);color:var(--md-accent-bg-color)}[id]>.md-tag{vertical-align:text-top}@-webkit-keyframes md-annotation--pulse{0%{box-shadow:0 0 0 0 var(--md-default-fg-color--lightest)}75%{box-shadow:0 0 0 .625em transparent}to{box-shadow:0 0 0 0 transparent}}@keyframes md-annotation--pulse{0%{box-shadow:0 0 0 0 var(--md-default-fg-color--lightest)}75%{box-shadow:0 0 0 .625em transparent}to{box-shadow:0 0 0 0 transparent}}.md-tooltip{-webkit-backface-visibility:hidden;backface-visibility:hidden;background-color:var(--md-default-bg-color);border-radius:.1rem;box-shadow:0 .2rem .5rem rgba(0,0,0,.1),0 0 .05rem rgba(0,0,0,.25);color:var(--md-default-fg-color);max-height:0;opacity:0;overflow:auto;position:absolute;transform:translateY(.4rem);transition:transform .25s 375ms,opacity .25s,max-height 0ms .25s,z-index .25s;z-index:0}.md-tooltip__inner{font-size:.64rem;padding:.8rem}.md-tooltip__inner>:first-child{margin-top:0}.md-tooltip__inner>:last-child{margin-bottom:0}:focus-within>.md-tooltip,:focus>.md-tooltip{max-height:1000%;opacity:1;transform:translateY(0);transition:transform .25s cubic-bezier(.1,.7,.1,1),opacity .25s,max-height .25s 0ms,z-index 0ms}:focus-within>.md-tooltip--end,:focus>.md-tooltip--end{transform:translate(-100%)}:focus-within>.md-tooltip--center,:focus>.md-tooltip--center{transform:translate(-50%)}.focus-visible>.md-tooltip{outline:var(--md-accent-fg-color) auto}.md-tooltip--end{transform:translate(-100%,.4rem)}.md-tooltip--center{transform:translate(-50%,.4rem)}.md-annotation{outline:none;white-space:normal}.md-annotation:focus-within>*{z-index:2}.md-annotation:not([hidden]){display:inline-block}.md-annotation__index{-webkit-animation:md-annotation--pulse 2s infinite;animation:md-annotation--pulse 2s infinite;background-color:var(--md-default-fg-color--lighter);border-radius:1.25em;color:var(--md-accent-bg-color);cursor:pointer;display:inline-block;min-width:1.4em;padding:0 .375em;position:relative;text-align:center;transition:background-color .25s,z-index .25s;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:0}:focus-within>.md-annotation__index{-webkit-animation:none;animation:none;transition:background-color .25s,z-index 0ms}:focus-within>.md-annotation__index,:hover>.md-annotation__index{background-color:var(--md-accent-fg-color)}.md-annotation .md-tooltip{margin:-1.1764705882em .7352941176em 0;max-width:60%;min-width:16rem}.md-annotation .md-tooltip--center{margin-top:.7352941176em}.md-top{background:var(--md-primary-fg-color);border-radius:100%;bottom:.4rem;box-shadow:0 .2rem .5rem rgba(0,0,0,.1),0 .025rem .05rem rgba(0,0,0,.1);color:var(--md-primary-bg-color);float:right;margin:-2.8rem .4rem .4rem;outline:none;padding:.4rem;position:-webkit-sticky;position:sticky;transform:translateY(0);transition:opacity 125ms,transform 125ms cubic-bezier(.4,0,.2,1),background-color 125ms;z-index:1}[dir=rtl] .md-top{float:left}.md-top[data-md-state=hidden]{opacity:0;pointer-events:none;transform:translateY(-.2rem)}.md-top:focus,.md-top:hover{background:var(--md-accent-fg-color);transform:scale(1.1)}@-webkit-keyframes hoverfix{0%{pointer-events:none}}@keyframes hoverfix{0%{pointer-events:none}}:root{--md-version-icon:url('data:image/svg+xml;charset=utf-8,')}.md-version{flex-shrink:0;font-size:.8rem;height:2.4rem}.md-version__current{color:inherit;cursor:pointer;margin-left:1.4rem;margin-right:.4rem;outline:none;position:relative;top:.05rem}[dir=rtl] .md-version__current{margin-left:.4rem;margin-right:1.4rem}.md-version__current:after{background-color:currentColor;content:"";display:inline-block;height:.6rem;margin-left:.4rem;-webkit-mask-image:var(--md-version-icon);mask-image:var(--md-version-icon);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;width:.4rem}[dir=rtl] .md-version__current:after{margin-left:0;margin-right:.4rem}.md-version__list{background-color:var(--md-default-bg-color);border-radius:.1rem;box-shadow:0 .2rem .5rem rgba(0,0,0,.1),0 0 .05rem rgba(0,0,0,.25);color:var(--md-default-fg-color);list-style-type:none;margin:.2rem .8rem;max-height:0;opacity:0;overflow:auto;padding:0;position:absolute;-ms-scroll-snap-type:y mandatory;scroll-snap-type:y mandatory;top:.15rem;transition:max-height 0ms .5s,opacity .25s .25s;z-index:1}.md-version:focus-within .md-version__list,.md-version:hover .md-version__list{max-height:10rem;opacity:1;transition:max-height 0ms,opacity .25s}@media (pointer:coarse){.md-version:hover .md-version__list{-webkit-animation:hoverfix .25s forwards;animation:hoverfix .25s forwards}.md-version:focus-within .md-version__list{-webkit-animation:none;animation:none}}.md-version__item{line-height:1.8rem}.md-version__link{cursor:pointer;display:block;outline:none;padding-left:.6rem;padding-right:1.2rem;scroll-snap-align:start;transition:color .25s,background-color .25s;white-space:nowrap;width:100%}[dir=rtl] .md-version__link{padding-left:1.2rem;padding-right:.6rem}.md-version__link:focus,.md-version__link:hover{color:var(--md-accent-fg-color)}.md-version__link:focus{background-color:var(--md-default-fg-color--lightest)}:root{--md-admonition-icon--note:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--abstract:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--info:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--tip:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--success:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--question:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--warning:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--failure:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--danger:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--bug:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--example:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--quote:url('data:image/svg+xml;charset=utf-8,')}.md-typeset .admonition,.md-typeset details{background-color:var(--md-admonition-bg-color);border-left:.2rem solid #448aff;border-radius:.1rem;box-shadow:0 .2rem .5rem rgba(0,0,0,.05),0 .025rem .05rem rgba(0,0,0,.05);color:var(--md-admonition-fg-color);display:flow-root;font-size:.64rem;margin:1.5625em 0;padding:0 .6rem;page-break-inside:avoid}@media print{.md-typeset .admonition,.md-typeset details{box-shadow:none}}[dir=rtl] .md-typeset .admonition,[dir=rtl] .md-typeset details{border-left:none;border-right:.2rem solid #448aff}.md-typeset .admonition .admonition,.md-typeset .admonition details,.md-typeset details .admonition,.md-typeset details details{margin-bottom:1em;margin-top:1em}.md-typeset .admonition .md-typeset__scrollwrap,.md-typeset details .md-typeset__scrollwrap{margin:1em -.6rem}.md-typeset .admonition .md-typeset__table,.md-typeset details .md-typeset__table{padding:0 .6rem}.md-typeset .admonition>.tabbed-set:only-child,.md-typeset details>.tabbed-set:only-child{margin-top:0}html .md-typeset .admonition>:last-child,html .md-typeset details>:last-child{margin-bottom:.6rem}.md-typeset .admonition-title,.md-typeset summary{background-color:rgba(68,138,255,.1);border-left:.2rem solid #448aff;border-top-left-radius:.1rem;font-weight:700;margin:0 -.6rem 0 -.8rem;padding:.4rem .6rem .4rem 2rem;position:relative}[dir=rtl] .md-typeset .admonition-title,[dir=rtl] .md-typeset summary{border-left:none;border-right:.2rem solid #448aff;margin:0 -.8rem 0 -.6rem;padding:.4rem 2rem .4rem .6rem}html .md-typeset .admonition-title:last-child,html .md-typeset summary:last-child{margin-bottom:0}.md-typeset .admonition-title:before,.md-typeset summary:before{background-color:#448aff;content:"";height:1rem;left:.6rem;-webkit-mask-image:var(--md-admonition-icon--note);mask-image:var(--md-admonition-icon--note);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;position:absolute;width:1rem}[dir=rtl] .md-typeset .admonition-title:before,[dir=rtl] .md-typeset summary:before{left:auto;right:.6rem}.md-typeset .admonition-title+.tabbed-set:last-child,.md-typeset summary+.tabbed-set:last-child{margin-top:0}.md-typeset .admonition.note,.md-typeset details.note{border-color:#448aff}.md-typeset .note>.admonition-title,.md-typeset .note>summary{background-color:rgba(68,138,255,.1);border-color:#448aff}.md-typeset .note>.admonition-title:before,.md-typeset .note>summary:before{background-color:#448aff;-webkit-mask-image:var(--md-admonition-icon--note);mask-image:var(--md-admonition-icon--note);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset .admonition.abstract,.md-typeset .admonition.summary,.md-typeset .admonition.tldr,.md-typeset details.abstract,.md-typeset details.summary,.md-typeset details.tldr{border-color:#00b0ff}.md-typeset .abstract>.admonition-title,.md-typeset .abstract>summary,.md-typeset .summary>.admonition-title,.md-typeset .summary>summary,.md-typeset .tldr>.admonition-title,.md-typeset .tldr>summary{background-color:rgba(0,176,255,.1);border-color:#00b0ff}.md-typeset .abstract>.admonition-title:before,.md-typeset .abstract>summary:before,.md-typeset .summary>.admonition-title:before,.md-typeset .summary>summary:before,.md-typeset .tldr>.admonition-title:before,.md-typeset .tldr>summary:before{background-color:#00b0ff;-webkit-mask-image:var(--md-admonition-icon--abstract);mask-image:var(--md-admonition-icon--abstract);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset .admonition.info,.md-typeset .admonition.todo,.md-typeset details.info,.md-typeset details.todo{border-color:#00b8d4}.md-typeset .info>.admonition-title,.md-typeset .info>summary,.md-typeset .todo>.admonition-title,.md-typeset .todo>summary{background-color:rgba(0,184,212,.1);border-color:#00b8d4}.md-typeset .info>.admonition-title:before,.md-typeset .info>summary:before,.md-typeset .todo>.admonition-title:before,.md-typeset .todo>summary:before{background-color:#00b8d4;-webkit-mask-image:var(--md-admonition-icon--info);mask-image:var(--md-admonition-icon--info);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset .admonition.hint,.md-typeset .admonition.important,.md-typeset .admonition.tip,.md-typeset details.hint,.md-typeset details.important,.md-typeset details.tip{border-color:#00bfa5}.md-typeset .hint>.admonition-title,.md-typeset .hint>summary,.md-typeset .important>.admonition-title,.md-typeset .important>summary,.md-typeset .tip>.admonition-title,.md-typeset .tip>summary{background-color:rgba(0,191,165,.1);border-color:#00bfa5}.md-typeset .hint>.admonition-title:before,.md-typeset .hint>summary:before,.md-typeset .important>.admonition-title:before,.md-typeset .important>summary:before,.md-typeset .tip>.admonition-title:before,.md-typeset .tip>summary:before{background-color:#00bfa5;-webkit-mask-image:var(--md-admonition-icon--tip);mask-image:var(--md-admonition-icon--tip);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset .admonition.check,.md-typeset .admonition.done,.md-typeset .admonition.success,.md-typeset details.check,.md-typeset details.done,.md-typeset details.success{border-color:#00c853}.md-typeset .check>.admonition-title,.md-typeset .check>summary,.md-typeset .done>.admonition-title,.md-typeset .done>summary,.md-typeset .success>.admonition-title,.md-typeset .success>summary{background-color:rgba(0,200,83,.1);border-color:#00c853}.md-typeset .check>.admonition-title:before,.md-typeset .check>summary:before,.md-typeset .done>.admonition-title:before,.md-typeset .done>summary:before,.md-typeset .success>.admonition-title:before,.md-typeset .success>summary:before{background-color:#00c853;-webkit-mask-image:var(--md-admonition-icon--success);mask-image:var(--md-admonition-icon--success);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset .admonition.faq,.md-typeset .admonition.help,.md-typeset .admonition.question,.md-typeset details.faq,.md-typeset details.help,.md-typeset details.question{border-color:#64dd17}.md-typeset .faq>.admonition-title,.md-typeset .faq>summary,.md-typeset .help>.admonition-title,.md-typeset .help>summary,.md-typeset .question>.admonition-title,.md-typeset .question>summary{background-color:rgba(100,221,23,.1);border-color:#64dd17}.md-typeset .faq>.admonition-title:before,.md-typeset .faq>summary:before,.md-typeset .help>.admonition-title:before,.md-typeset .help>summary:before,.md-typeset .question>.admonition-title:before,.md-typeset .question>summary:before{background-color:#64dd17;-webkit-mask-image:var(--md-admonition-icon--question);mask-image:var(--md-admonition-icon--question);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset .admonition.attention,.md-typeset .admonition.caution,.md-typeset .admonition.warning,.md-typeset details.attention,.md-typeset details.caution,.md-typeset details.warning{border-color:#ff9100}.md-typeset .attention>.admonition-title,.md-typeset .attention>summary,.md-typeset .caution>.admonition-title,.md-typeset .caution>summary,.md-typeset .warning>.admonition-title,.md-typeset .warning>summary{background-color:rgba(255,145,0,.1);border-color:#ff9100}.md-typeset .attention>.admonition-title:before,.md-typeset .attention>summary:before,.md-typeset .caution>.admonition-title:before,.md-typeset .caution>summary:before,.md-typeset .warning>.admonition-title:before,.md-typeset .warning>summary:before{background-color:#ff9100;-webkit-mask-image:var(--md-admonition-icon--warning);mask-image:var(--md-admonition-icon--warning);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset .admonition.fail,.md-typeset .admonition.failure,.md-typeset .admonition.missing,.md-typeset details.fail,.md-typeset details.failure,.md-typeset details.missing{border-color:#ff5252}.md-typeset .fail>.admonition-title,.md-typeset .fail>summary,.md-typeset .failure>.admonition-title,.md-typeset .failure>summary,.md-typeset .missing>.admonition-title,.md-typeset .missing>summary{background-color:rgba(255,82,82,.1);border-color:#ff5252}.md-typeset .fail>.admonition-title:before,.md-typeset .fail>summary:before,.md-typeset .failure>.admonition-title:before,.md-typeset .failure>summary:before,.md-typeset .missing>.admonition-title:before,.md-typeset .missing>summary:before{background-color:#ff5252;-webkit-mask-image:var(--md-admonition-icon--failure);mask-image:var(--md-admonition-icon--failure);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset .admonition.danger,.md-typeset .admonition.error,.md-typeset details.danger,.md-typeset details.error{border-color:#ff1744}.md-typeset .danger>.admonition-title,.md-typeset .danger>summary,.md-typeset .error>.admonition-title,.md-typeset .error>summary{background-color:rgba(255,23,68,.1);border-color:#ff1744}.md-typeset .danger>.admonition-title:before,.md-typeset .danger>summary:before,.md-typeset .error>.admonition-title:before,.md-typeset .error>summary:before{background-color:#ff1744;-webkit-mask-image:var(--md-admonition-icon--danger);mask-image:var(--md-admonition-icon--danger);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset .admonition.bug,.md-typeset details.bug{border-color:#f50057}.md-typeset .bug>.admonition-title,.md-typeset .bug>summary{background-color:rgba(245,0,87,.1);border-color:#f50057}.md-typeset .bug>.admonition-title:before,.md-typeset .bug>summary:before{background-color:#f50057;-webkit-mask-image:var(--md-admonition-icon--bug);mask-image:var(--md-admonition-icon--bug);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset .admonition.example,.md-typeset details.example{border-color:#7c4dff}.md-typeset .example>.admonition-title,.md-typeset .example>summary{background-color:rgba(124,77,255,.1);border-color:#7c4dff}.md-typeset .example>.admonition-title:before,.md-typeset .example>summary:before{background-color:#7c4dff;-webkit-mask-image:var(--md-admonition-icon--example);mask-image:var(--md-admonition-icon--example);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset .admonition.cite,.md-typeset .admonition.quote,.md-typeset details.cite,.md-typeset details.quote{border-color:#9e9e9e}.md-typeset .cite>.admonition-title,.md-typeset .cite>summary,.md-typeset .quote>.admonition-title,.md-typeset .quote>summary{background-color:hsla(0,0%,62%,.1);border-color:#9e9e9e}.md-typeset .cite>.admonition-title:before,.md-typeset .cite>summary:before,.md-typeset .quote>.admonition-title:before,.md-typeset .quote>summary:before{background-color:#9e9e9e;-webkit-mask-image:var(--md-admonition-icon--quote);mask-image:var(--md-admonition-icon--quote);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}:root{--md-footnotes-icon:url('data:image/svg+xml;charset=utf-8,')}.md-typeset .footnote{color:var(--md-default-fg-color--light);font-size:.64rem}.md-typeset .footnote>ol{margin-left:0}.md-typeset .footnote>ol>li{transition:color 125ms}.md-typeset .footnote>ol>li:target{color:var(--md-default-fg-color)}.md-typeset .footnote>ol>li:hover .footnote-backref,.md-typeset .footnote>ol>li:target .footnote-backref{opacity:1;transform:translateX(0)}.md-typeset .footnote>ol>li>:first-child{margin-top:0}.md-typeset .footnote-ref{font-size:.75em;font-weight:700}html .md-typeset .footnote-ref{outline-offset:.1rem}.md-typeset .footnote-backref{color:var(--md-typeset-a-color);display:inline-block;font-size:0;opacity:0;transform:translateX(.25rem);transition:color .25s,transform .25s .25s,opacity 125ms .25s;vertical-align:text-bottom}@media print{.md-typeset .footnote-backref{color:var(--md-typeset-a-color);opacity:1;transform:translateX(0)}}[dir=rtl] .md-typeset .footnote-backref{transform:translateX(-.25rem)}.md-typeset .footnote-backref:hover{color:var(--md-accent-fg-color)}.md-typeset .footnote-backref:before{background-color:currentColor;content:"";display:inline-block;height:.8rem;-webkit-mask-image:var(--md-footnotes-icon);mask-image:var(--md-footnotes-icon);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:.8rem}[dir=rtl] .md-typeset .footnote-backref:before svg{transform:scaleX(-1)}.md-typeset [id^="fnref:"]:target{margin-top:-3.4rem;padding-top:3.4rem;scroll-margin-top:0}.md-typeset [id^="fnref:"]:target>.footnote-ref{outline:auto}.md-typeset [id^="fn:"]:target{margin-top:-3.45rem;padding-top:3.45rem;scroll-margin-top:0}.md-typeset .headerlink{color:var(--md-default-fg-color--lighter);display:inline-block;margin-left:.5rem;opacity:0;transition:color .25s,opacity 125ms}@media print{.md-typeset .headerlink{display:none}}[dir=rtl] .md-typeset .headerlink{margin-left:0;margin-right:.5rem}.md-typeset .headerlink:focus,.md-typeset :hover>.headerlink,.md-typeset :target>.headerlink{opacity:1;transition:color .25s,opacity 125ms}.md-typeset .headerlink:focus,.md-typeset .headerlink:hover,.md-typeset :target>.headerlink{color:var(--md-accent-fg-color)}.md-typeset :target{scroll-margin-top:3.6rem}@media screen and (min-width:76.25em){.md-header--lifted~.md-container .md-typeset :target{scroll-margin-top:6rem}}.md-typeset h1:target,.md-typeset h2:target,.md-typeset h3:target{scroll-margin-top:0}.md-typeset h1:target:before,.md-typeset h2:target:before,.md-typeset h3:target:before{content:"";display:block;margin-top:-3.4rem;padding-top:3.4rem}@media screen and (min-width:76.25em){.md-header--lifted~.md-container .md-typeset h1:target,.md-header--lifted~.md-container .md-typeset h2:target,.md-header--lifted~.md-container .md-typeset h3:target{scroll-margin-top:0}.md-header--lifted~.md-container .md-typeset h1:target:before,.md-header--lifted~.md-container .md-typeset h2:target:before,.md-header--lifted~.md-container .md-typeset h3:target:before{margin-top:-5.8rem;padding-top:5.8rem}}.md-typeset h4:target{scroll-margin-top:0}.md-typeset h4:target:before{content:"";display:block;margin-top:-3.45rem;padding-top:3.45rem}@media screen and (min-width:76.25em){.md-header--lifted~.md-container .md-typeset h4:target{scroll-margin-top:0}.md-header--lifted~.md-container .md-typeset h4:target:before{margin-top:-5.85rem;padding-top:5.85rem}}.md-typeset h5:target,.md-typeset h6:target{scroll-margin-top:0}.md-typeset h5:target:before,.md-typeset h6:target:before{content:"";display:block;margin-top:-3.6rem;padding-top:3.6rem}@media screen and (min-width:76.25em){.md-header--lifted~.md-container .md-typeset h5:target,.md-header--lifted~.md-container .md-typeset h6:target{scroll-margin-top:0}.md-header--lifted~.md-container .md-typeset h5:target:before,.md-header--lifted~.md-container .md-typeset h6:target:before{margin-top:-6rem;padding-top:6rem}}.md-typeset div.arithmatex{overflow:auto}@media screen and (max-width:44.9375em){.md-typeset div.arithmatex{margin:0 -.8rem}}.md-typeset div.arithmatex>*{margin:1em auto!important;padding:0 .8rem;touch-action:auto;width:-webkit-min-content;width:-moz-min-content;width:min-content}.md-typeset .critic.comment,.md-typeset del.critic,.md-typeset ins.critic{-webkit-box-decoration-break:clone;box-decoration-break:clone}.md-typeset del.critic{background-color:var(--md-typeset-del-color)}.md-typeset ins.critic{background-color:var(--md-typeset-ins-color)}.md-typeset .critic.comment{color:var(--md-code-hl-comment-color)}.md-typeset .critic.comment:before{content:"/* "}.md-typeset .critic.comment:after{content:" */"}.md-typeset .critic.block{box-shadow:none;display:block;margin:1em 0;overflow:auto;padding-left:.8rem;padding-right:.8rem}.md-typeset .critic.block>:first-child{margin-top:.5em}.md-typeset .critic.block>:last-child{margin-bottom:.5em}:root{--md-details-icon:url('data:image/svg+xml;charset=utf-8,')}.md-typeset details{display:flow-root;overflow:visible;padding-top:0}.md-typeset details[open]>summary:after{transform:rotate(90deg)}.md-typeset details:not([open]){box-shadow:none;padding-bottom:0}.md-typeset details:not([open])>summary{border-radius:.1rem}.md-typeset summary{border-top-left-radius:.1rem;border-top-right-radius:.1rem;cursor:pointer;display:block;min-height:1rem;padding:.4rem 1.8rem .4rem 2rem}[dir=rtl] .md-typeset summary{padding:.4rem 2.2rem .4rem 1.8rem}.md-typeset summary:not(.focus-visible){-webkit-tap-highlight-color:transparent;outline:none}.md-typeset summary:after{background-color:currentColor;content:"";height:1rem;-webkit-mask-image:var(--md-details-icon);mask-image:var(--md-details-icon);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;position:absolute;right:.4rem;top:.4rem;transform:rotate(0deg);transition:transform .25s;width:1rem}[dir=rtl] .md-typeset summary:after{left:.4rem;right:auto;transform:rotate(180deg)}.md-typeset summary::-webkit-details-marker,.md-typeset summary::marker{display:none}.md-typeset .emojione,.md-typeset .gemoji,.md-typeset .twemoji{display:inline-flex;height:1.125em;vertical-align:text-top}.md-typeset .emojione svg,.md-typeset .gemoji svg,.md-typeset .twemoji svg{fill:currentColor;max-height:100%;width:1.125em}.highlight .o,.highlight .ow{color:var(--md-code-hl-operator-color)}.highlight .p{color:var(--md-code-hl-punctuation-color)}.highlight .cpf,.highlight .l,.highlight .s,.highlight .s1,.highlight .s2,.highlight .sb,.highlight .sc,.highlight .si,.highlight .ss{color:var(--md-code-hl-string-color)}.highlight .cp,.highlight .se,.highlight .sh,.highlight .sr,.highlight .sx{color:var(--md-code-hl-special-color)}.highlight .il,.highlight .m,.highlight .mb,.highlight .mf,.highlight .mh,.highlight .mi,.highlight .mo{color:var(--md-code-hl-number-color)}.highlight .k,.highlight .kd,.highlight .kn,.highlight .kp,.highlight .kr,.highlight .kt{color:var(--md-code-hl-keyword-color)}.highlight .kc,.highlight .n{color:var(--md-code-hl-name-color)}.highlight .bp,.highlight .nb,.highlight .no{color:var(--md-code-hl-constant-color)}.highlight .nc,.highlight .ne,.highlight .nf,.highlight .nn{color:var(--md-code-hl-function-color)}.highlight .nd,.highlight .ni,.highlight .nl,.highlight .nt{color:var(--md-code-hl-keyword-color)}.highlight .c,.highlight .c1,.highlight .ch,.highlight .cm,.highlight .cs,.highlight .sd{color:var(--md-code-hl-comment-color)}.highlight .na,.highlight .nv,.highlight .vc,.highlight .vg,.highlight .vi{color:var(--md-code-hl-variable-color)}.highlight .ge,.highlight .gh,.highlight .go,.highlight .gp,.highlight .gr,.highlight .gs,.highlight .gt,.highlight .gu{color:var(--md-code-hl-generic-color)}.highlight .gd,.highlight .gi{border-radius:.1rem;margin:0 -.125em;padding:0 .125em}.highlight .gd{background-color:var(--md-typeset-del-color)}.highlight .gi{background-color:var(--md-typeset-ins-color)}.highlight .hll{background-color:var(--md-code-hl-color);display:block;margin:0 -1.1764705882em;padding:0 1.1764705882em}.highlight [data-linenos]:before{background-color:var(--md-code-bg-color);box-shadow:-.05rem 0 var(--md-default-fg-color--lightest) inset;color:var(--md-default-fg-color--light);content:attr(data-linenos);float:left;left:-1.1764705882em;margin-left:-1.1764705882em;margin-right:1.1764705882em;padding-left:1.1764705882em;position:-webkit-sticky;position:sticky;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:3}.highlighttable{display:flow-root}.highlighttable tbody,.highlighttable td{display:block;padding:0}.highlighttable tr{display:flex}.highlighttable pre{margin:0}.highlighttable .linenos{background-color:var(--md-code-bg-color);font-size:.85em;padding:.7720588235em 0 .7720588235em 1.1764705882em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.highlighttable .linenodiv{box-shadow:-.05rem 0 var(--md-default-fg-color--lightest) inset;padding-right:.5882352941em}.highlighttable .linenodiv pre{color:var(--md-default-fg-color--light);text-align:right}.highlighttable .code{flex:1;min-width:0}.md-typeset .highlighttable{border-radius:.1rem;direction:ltr;margin:1em 0}.md-typeset .highlighttable code{border-radius:0}@media screen and (max-width:44.9375em){.md-typeset.md-content__inner>.highlight{margin:1em -.8rem}.md-typeset.md-content__inner>.highlight .hll{margin:0 -.8rem;padding:0 .8rem}.md-typeset.md-content__inner>.highlight code{border-radius:0}.md-typeset>.highlighttable{border-radius:0;margin:1em -.8rem}.md-typeset>.highlighttable .hll{margin:0 -.8rem;padding:0 .8rem}}.md-typeset .keys kbd:after,.md-typeset .keys kbd:before{-moz-osx-font-smoothing:initial;-webkit-font-smoothing:initial;color:inherit;margin:0;position:relative}.md-typeset .keys span{color:var(--md-default-fg-color--light);padding:0 .2em}.md-typeset .keys .key-alt:before{content:"⎇";padding-right:.4em}.md-typeset .keys .key-left-alt:before{content:"⎇";padding-right:.4em}.md-typeset .keys .key-right-alt:before{content:"⎇";padding-right:.4em}.md-typeset .keys .key-command:before{content:"⌘";padding-right:.4em}.md-typeset .keys .key-left-command:before{content:"⌘";padding-right:.4em}.md-typeset .keys .key-right-command:before{content:"⌘";padding-right:.4em}.md-typeset .keys .key-control:before{content:"⌃";padding-right:.4em}.md-typeset .keys .key-left-control:before{content:"⌃";padding-right:.4em}.md-typeset .keys .key-right-control:before{content:"⌃";padding-right:.4em}.md-typeset .keys .key-meta:before{content:"◆";padding-right:.4em}.md-typeset .keys .key-left-meta:before{content:"◆";padding-right:.4em}.md-typeset .keys .key-right-meta:before{content:"◆";padding-right:.4em}.md-typeset .keys .key-option:before{content:"⌥";padding-right:.4em}.md-typeset .keys .key-left-option:before{content:"⌥";padding-right:.4em}.md-typeset .keys .key-right-option:before{content:"⌥";padding-right:.4em}.md-typeset .keys .key-shift:before{content:"⇧";padding-right:.4em}.md-typeset .keys .key-left-shift:before{content:"⇧";padding-right:.4em}.md-typeset .keys .key-right-shift:before{content:"⇧";padding-right:.4em}.md-typeset .keys .key-super:before{content:"❖";padding-right:.4em}.md-typeset .keys .key-left-super:before{content:"❖";padding-right:.4em}.md-typeset .keys .key-right-super:before{content:"❖";padding-right:.4em}.md-typeset .keys .key-windows:before{content:"⊞";padding-right:.4em}.md-typeset .keys .key-left-windows:before{content:"⊞";padding-right:.4em}.md-typeset .keys .key-right-windows:before{content:"⊞";padding-right:.4em}.md-typeset .keys .key-arrow-down:before{content:"↓";padding-right:.4em}.md-typeset .keys .key-arrow-left:before{content:"←";padding-right:.4em}.md-typeset .keys .key-arrow-right:before{content:"→";padding-right:.4em}.md-typeset .keys .key-arrow-up:before{content:"↑";padding-right:.4em}.md-typeset .keys .key-backspace:before{content:"⌫";padding-right:.4em}.md-typeset .keys .key-backtab:before{content:"⇤";padding-right:.4em}.md-typeset .keys .key-caps-lock:before{content:"⇪";padding-right:.4em}.md-typeset .keys .key-clear:before{content:"⌧";padding-right:.4em}.md-typeset .keys .key-context-menu:before{content:"☰";padding-right:.4em}.md-typeset .keys .key-delete:before{content:"⌦";padding-right:.4em}.md-typeset .keys .key-eject:before{content:"⏏";padding-right:.4em}.md-typeset .keys .key-end:before{content:"⤓";padding-right:.4em}.md-typeset .keys .key-escape:before{content:"⎋";padding-right:.4em}.md-typeset .keys .key-home:before{content:"⤒";padding-right:.4em}.md-typeset .keys .key-insert:before{content:"⎀";padding-right:.4em}.md-typeset .keys .key-page-down:before{content:"⇟";padding-right:.4em}.md-typeset .keys .key-page-up:before{content:"⇞";padding-right:.4em}.md-typeset .keys .key-print-screen:before{content:"⎙";padding-right:.4em}.md-typeset .keys .key-tab:after{content:"⇥";padding-left:.4em}.md-typeset .keys .key-num-enter:after{content:"⌤";padding-left:.4em}.md-typeset .keys .key-enter:after{content:"⏎";padding-left:.4em}.md-typeset .tabbed-content{box-shadow:0 -.05rem var(--md-default-fg-color--lightest);display:none;order:99;width:100%}@media print{.md-typeset .tabbed-content{display:block;order:0}}.md-typeset .tabbed-content>.highlight:only-child pre,.md-typeset .tabbed-content>.highlighttable:only-child,.md-typeset .tabbed-content>pre:only-child{margin:0}.md-typeset .tabbed-content>.highlight:only-child pre>code,.md-typeset .tabbed-content>.highlighttable:only-child>code,.md-typeset .tabbed-content>pre:only-child>code{border-top-left-radius:0;border-top-right-radius:0}.md-typeset .tabbed-content>.tabbed-set{margin:0}.md-typeset .tabbed-set{border-radius:.1rem;display:flex;flex-wrap:wrap;margin:1em 0;position:relative}.md-typeset .tabbed-set>input{height:0;opacity:0;position:absolute;width:0}.md-typeset .tabbed-set>input:checked+label{border-color:var(--md-accent-fg-color);color:var(--md-accent-fg-color)}.md-typeset .tabbed-set>input:checked+label+.tabbed-content{display:block}.md-typeset .tabbed-set>input:focus+label{outline-color:var(--md-accent-fg-color);outline-style:auto}.md-typeset .tabbed-set>input:not(.focus-visible)+label{-webkit-tap-highlight-color:transparent;outline:none}.md-typeset .tabbed-set>label{border-bottom:.1rem solid transparent;color:var(--md-default-fg-color--light);cursor:pointer;font-size:.64rem;font-weight:700;padding:.9375em 1.25em .78125em;transition:color .25s;width:auto;z-index:1}.no-js .md-typeset .tabbed-set>label{transition:none}.md-typeset .tabbed-set>label:hover{color:var(--md-accent-fg-color)}:root{--md-tasklist-icon:url('data:image/svg+xml;charset=utf-8,');--md-tasklist-icon--checked:url('data:image/svg+xml;charset=utf-8,')}.md-typeset .task-list-item{list-style-type:none;position:relative}.md-typeset .task-list-item [type=checkbox]{left:-2em;position:absolute;top:.45em}[dir=rtl] .md-typeset .task-list-item [type=checkbox]{left:auto;right:-2em}.md-typeset .task-list-control [type=checkbox]{opacity:0;z-index:-1}.md-typeset .task-list-indicator:before{background-color:var(--md-default-fg-color--lightest);content:"";height:1.25em;left:-1.5em;-webkit-mask-image:var(--md-tasklist-icon);mask-image:var(--md-tasklist-icon);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;position:absolute;top:.15em;width:1.25em}[dir=rtl] .md-typeset .task-list-indicator:before{left:auto;right:-1.5em}.md-typeset [type=checkbox]:checked+.task-list-indicator:before{background-color:#00e676;-webkit-mask-image:var(--md-tasklist-icon--checked);mask-image:var(--md-tasklist-icon--checked)}:root>*{--md-mermaid-font-family:var(--md-text-font-family) sans-serif;--md-mermaid-edge-color:var(--md-default-fg-color);--md-mermaid-node-bg-color:var(--md-accent-fg-color--transparent);--md-mermaid-node-fg-color:var(--md-accent-fg-color);--md-mermaid-label-bg-color:var(--md-default-bg-color);--md-mermaid-label-fg-color:var(--md-default-fg-color)}@media screen and (min-width:45em){.md-typeset .inline{float:left;margin-bottom:.8rem;margin-right:.8rem;margin-top:0;width:11.7rem}[dir=rtl] .md-typeset .inline{float:right;margin-left:.8rem;margin-right:0}.md-typeset .inline.end{float:right;margin-left:.8rem;margin-right:0}[dir=rtl] .md-typeset .inline.end{float:left;margin-left:0;margin-right:.8rem}} \ No newline at end of file diff --git a/1.3/assets/stylesheets/palette.73e53a79.min.css b/1.3/assets/stylesheets/palette.73e53a79.min.css new file mode 100644 index 00000000..03a02114 --- /dev/null +++ b/1.3/assets/stylesheets/palette.73e53a79.min.css @@ -0,0 +1 @@ +[data-md-color-accent=red]{--md-accent-fg-color:#ff1947;--md-accent-fg-color--transparent:rgba(255,25,71,0.1);--md-accent-bg-color:#fff;--md-accent-bg-color--light:hsla(0,0%,100%,0.7)}[data-md-color-accent=pink]{--md-accent-fg-color:#f50056;--md-accent-fg-color--transparent:rgba(245,0,86,0.1);--md-accent-bg-color:#fff;--md-accent-bg-color--light:hsla(0,0%,100%,0.7)}[data-md-color-accent=purple]{--md-accent-fg-color:#df41fb;--md-accent-fg-color--transparent:rgba(223,65,251,0.1);--md-accent-bg-color:#fff;--md-accent-bg-color--light:hsla(0,0%,100%,0.7)}[data-md-color-accent=deep-purple]{--md-accent-fg-color:#7c4dff;--md-accent-fg-color--transparent:rgba(124,77,255,0.1);--md-accent-bg-color:#fff;--md-accent-bg-color--light:hsla(0,0%,100%,0.7)}[data-md-color-accent=indigo]{--md-accent-fg-color:#526cfe;--md-accent-fg-color--transparent:rgba(82,108,254,0.1);--md-accent-bg-color:#fff;--md-accent-bg-color--light:hsla(0,0%,100%,0.7)}[data-md-color-accent=blue]{--md-accent-fg-color:#4287ff;--md-accent-fg-color--transparent:rgba(66,135,255,0.1);--md-accent-bg-color:#fff;--md-accent-bg-color--light:hsla(0,0%,100%,0.7)}[data-md-color-accent=light-blue]{--md-accent-fg-color:#0091eb;--md-accent-fg-color--transparent:rgba(0,145,235,0.1);--md-accent-bg-color:#fff;--md-accent-bg-color--light:hsla(0,0%,100%,0.7)}[data-md-color-accent=cyan]{--md-accent-fg-color:#00bad6;--md-accent-fg-color--transparent:rgba(0,186,214,0.1);--md-accent-bg-color:#fff;--md-accent-bg-color--light:hsla(0,0%,100%,0.7)}[data-md-color-accent=teal]{--md-accent-fg-color:#00bda4;--md-accent-fg-color--transparent:rgba(0,189,164,0.1);--md-accent-bg-color:#fff;--md-accent-bg-color--light:hsla(0,0%,100%,0.7)}[data-md-color-accent=green]{--md-accent-fg-color:#00c753;--md-accent-fg-color--transparent:rgba(0,199,83,0.1);--md-accent-bg-color:#fff;--md-accent-bg-color--light:hsla(0,0%,100%,0.7)}[data-md-color-accent=light-green]{--md-accent-fg-color:#63de17;--md-accent-fg-color--transparent:rgba(99,222,23,0.1);--md-accent-bg-color:#fff;--md-accent-bg-color--light:hsla(0,0%,100%,0.7)}[data-md-color-accent=lime]{--md-accent-fg-color:#b0eb00;--md-accent-fg-color--transparent:rgba(176,235,0,0.1);--md-accent-bg-color:rgba(0,0,0,0.87);--md-accent-bg-color--light:rgba(0,0,0,0.54)}[data-md-color-accent=yellow]{--md-accent-fg-color:#ffd500;--md-accent-fg-color--transparent:rgba(255,213,0,0.1);--md-accent-bg-color:rgba(0,0,0,0.87);--md-accent-bg-color--light:rgba(0,0,0,0.54)}[data-md-color-accent=amber]{--md-accent-fg-color:#fa0;--md-accent-fg-color--transparent:rgba(255,170,0,0.1);--md-accent-bg-color:rgba(0,0,0,0.87);--md-accent-bg-color--light:rgba(0,0,0,0.54)}[data-md-color-accent=orange]{--md-accent-fg-color:#ff9100;--md-accent-fg-color--transparent:rgba(255,145,0,0.1);--md-accent-bg-color:rgba(0,0,0,0.87);--md-accent-bg-color--light:rgba(0,0,0,0.54)}[data-md-color-accent=deep-orange]{--md-accent-fg-color:#ff6e42;--md-accent-fg-color--transparent:rgba(255,110,66,0.1);--md-accent-bg-color:#fff;--md-accent-bg-color--light:hsla(0,0%,100%,0.7)}[data-md-color-primary=red]{--md-primary-fg-color:#ef5552;--md-primary-fg-color--light:#e57171;--md-primary-fg-color--dark:#e53734;--md-primary-bg-color:#fff;--md-primary-bg-color--light:hsla(0,0%,100%,0.7)}[data-md-color-primary=pink]{--md-primary-fg-color:#e92063;--md-primary-fg-color--light:#ec417a;--md-primary-fg-color--dark:#c3185d;--md-primary-bg-color:#fff;--md-primary-bg-color--light:hsla(0,0%,100%,0.7)}[data-md-color-primary=purple]{--md-primary-fg-color:#ab47bd;--md-primary-fg-color--light:#bb69c9;--md-primary-fg-color--dark:#8c24a8;--md-primary-bg-color:#fff;--md-primary-bg-color--light:hsla(0,0%,100%,0.7)}[data-md-color-primary=deep-purple]{--md-primary-fg-color:#7e56c2;--md-primary-fg-color--light:#9574cd;--md-primary-fg-color--dark:#673ab6;--md-primary-bg-color:#fff;--md-primary-bg-color--light:hsla(0,0%,100%,0.7)}[data-md-color-primary=indigo]{--md-primary-fg-color:#4051b5;--md-primary-fg-color--light:#5d6cc0;--md-primary-fg-color--dark:#303fa1;--md-primary-bg-color:#fff;--md-primary-bg-color--light:hsla(0,0%,100%,0.7)}[data-md-color-primary=blue]{--md-primary-fg-color:#2094f3;--md-primary-fg-color--light:#42a5f5;--md-primary-fg-color--dark:#1975d2;--md-primary-bg-color:#fff;--md-primary-bg-color--light:hsla(0,0%,100%,0.7)}[data-md-color-primary=light-blue]{--md-primary-fg-color:#02a6f2;--md-primary-fg-color--light:#28b5f6;--md-primary-fg-color--dark:#0287cf;--md-primary-bg-color:#fff;--md-primary-bg-color--light:hsla(0,0%,100%,0.7)}[data-md-color-primary=cyan]{--md-primary-fg-color:#00bdd6;--md-primary-fg-color--light:#25c5da;--md-primary-fg-color--dark:#0097a8;--md-primary-bg-color:#fff;--md-primary-bg-color--light:hsla(0,0%,100%,0.7)}[data-md-color-primary=teal]{--md-primary-fg-color:#009485;--md-primary-fg-color--light:#26a699;--md-primary-fg-color--dark:#007a6c;--md-primary-bg-color:#fff;--md-primary-bg-color--light:hsla(0,0%,100%,0.7)}[data-md-color-primary=green]{--md-primary-fg-color:#4cae4f;--md-primary-fg-color--light:#68bb6c;--md-primary-fg-color--dark:#398e3d;--md-primary-bg-color:#fff;--md-primary-bg-color--light:hsla(0,0%,100%,0.7)}[data-md-color-primary=light-green]{--md-primary-fg-color:#8bc34b;--md-primary-fg-color--light:#9ccc66;--md-primary-fg-color--dark:#689f38;--md-primary-bg-color:#fff;--md-primary-bg-color--light:hsla(0,0%,100%,0.7)}[data-md-color-primary=lime]{--md-primary-fg-color:#cbdc38;--md-primary-fg-color--light:#d3e156;--md-primary-fg-color--dark:#b0b52c;--md-primary-bg-color:rgba(0,0,0,0.87);--md-primary-bg-color--light:rgba(0,0,0,0.54)}[data-md-color-primary=yellow]{--md-primary-fg-color:#ffec3d;--md-primary-fg-color--light:#ffee57;--md-primary-fg-color--dark:#fbc02d;--md-primary-bg-color:rgba(0,0,0,0.87);--md-primary-bg-color--light:rgba(0,0,0,0.54)}[data-md-color-primary=amber]{--md-primary-fg-color:#ffc105;--md-primary-fg-color--light:#ffc929;--md-primary-fg-color--dark:#ffa200;--md-primary-bg-color:rgba(0,0,0,0.87);--md-primary-bg-color--light:rgba(0,0,0,0.54)}[data-md-color-primary=orange]{--md-primary-fg-color:#ffa724;--md-primary-fg-color--light:#ffa724;--md-primary-fg-color--dark:#fa8900;--md-primary-bg-color:rgba(0,0,0,0.87);--md-primary-bg-color--light:rgba(0,0,0,0.54)}[data-md-color-primary=deep-orange]{--md-primary-fg-color:#ff6e42;--md-primary-fg-color--light:#ff8a66;--md-primary-fg-color--dark:#f4511f;--md-primary-bg-color:#fff;--md-primary-bg-color--light:hsla(0,0%,100%,0.7)}[data-md-color-primary=brown]{--md-primary-fg-color:#795649;--md-primary-fg-color--light:#8d6e62;--md-primary-fg-color--dark:#5d4037;--md-primary-bg-color:#fff;--md-primary-bg-color--light:hsla(0,0%,100%,0.7)}[data-md-color-primary=grey]{--md-primary-fg-color:#757575;--md-primary-fg-color--light:#9e9e9e;--md-primary-fg-color--dark:#616161;--md-primary-bg-color:#fff;--md-primary-bg-color--light:hsla(0,0%,100%,0.7)}[data-md-color-primary=blue-grey]{--md-primary-fg-color:#546d78;--md-primary-fg-color--light:#607c8a;--md-primary-fg-color--dark:#455a63;--md-primary-bg-color:#fff;--md-primary-bg-color--light:hsla(0,0%,100%,0.7)}[data-md-color-primary=white]{--md-primary-fg-color:#fff;--md-primary-fg-color--light:hsla(0,0%,100%,0.7);--md-primary-fg-color--dark:rgba(0,0,0,0.07);--md-primary-bg-color:rgba(0,0,0,0.87);--md-primary-bg-color--light:rgba(0,0,0,0.54);--md-typeset-a-color:#4051b5}@media screen and (min-width:60em){[data-md-color-primary=white] .md-search__form{background-color:rgba(0,0,0,.07)}[data-md-color-primary=white] .md-search__form:hover{background-color:rgba(0,0,0,.32)}[data-md-color-primary=white] .md-search__input+.md-search__icon{color:rgba(0,0,0,.87)}}@media screen and (min-width:76.25em){[data-md-color-primary=white] .md-tabs{border-bottom:.05rem solid rgba(0,0,0,.07)}}[data-md-color-primary=black]{--md-primary-fg-color:#000;--md-primary-fg-color--light:rgba(0,0,0,0.54);--md-primary-fg-color--dark:#000;--md-primary-bg-color:#fff;--md-primary-bg-color--light:hsla(0,0%,100%,0.7);--md-typeset-a-color:#4051b5}[data-md-color-primary=black] .md-header{background-color:#000}@media screen and (max-width:59.9375em){[data-md-color-primary=black] .md-nav__source{background-color:rgba(0,0,0,.87)}}@media screen and (min-width:60em){[data-md-color-primary=black] .md-search__form{background-color:hsla(0,0%,100%,.12)}[data-md-color-primary=black] .md-search__form:hover{background-color:hsla(0,0%,100%,.3)}}@media screen and (max-width:76.1875em){html [data-md-color-primary=black] .md-nav--primary .md-nav__title[for=__drawer]{background-color:#000}}@media screen and (min-width:76.25em){[data-md-color-primary=black] .md-tabs{background-color:#000}}@media screen{[data-md-color-scheme=slate]{--md-hue:232;--md-default-fg-color:hsla(var(--md-hue),75%,95%,1);--md-default-fg-color--light:hsla(var(--md-hue),75%,90%,0.62);--md-default-fg-color--lighter:hsla(var(--md-hue),75%,90%,0.32);--md-default-fg-color--lightest:hsla(var(--md-hue),75%,90%,0.12);--md-default-bg-color:hsla(var(--md-hue),15%,21%,1);--md-default-bg-color--light:hsla(var(--md-hue),15%,21%,0.54);--md-default-bg-color--lighter:hsla(var(--md-hue),15%,21%,0.26);--md-default-bg-color--lightest:hsla(var(--md-hue),15%,21%,0.07);--md-code-fg-color:hsla(var(--md-hue),18%,86%,1);--md-code-bg-color:hsla(var(--md-hue),15%,15%,1);--md-code-hl-color:rgba(66,135,255,0.15);--md-code-hl-number-color:#e6695b;--md-code-hl-special-color:#f06090;--md-code-hl-function-color:#c973d9;--md-code-hl-constant-color:#9383e2;--md-code-hl-keyword-color:#6791e0;--md-code-hl-string-color:#2fb170;--md-code-hl-name-color:var(--md-code-fg-color);--md-code-hl-operator-color:var(--md-default-fg-color--light);--md-code-hl-punctuation-color:var(--md-default-fg-color--light);--md-code-hl-comment-color:var(--md-default-fg-color--light);--md-code-hl-generic-color:var(--md-default-fg-color--light);--md-code-hl-variable-color:var(--md-default-fg-color--light);--md-typeset-color:var(--md-default-fg-color);--md-typeset-a-color:var(--md-primary-fg-color);--md-typeset-mark-color:rgba(66,135,255,0.3);--md-typeset-kbd-color:hsla(var(--md-hue),15%,94%,0.12);--md-typeset-kbd-accent-color:hsla(var(--md-hue),15%,94%,0.2);--md-typeset-kbd-border-color:hsla(var(--md-hue),15%,14%,1);--md-admonition-bg-color:hsla(var(--md-hue),0%,100%,0.025);--md-footer-bg-color:hsla(var(--md-hue),15%,12%,0.87);--md-footer-bg-color--dark:hsla(var(--md-hue),15%,10%,1)}[data-md-color-scheme=slate][data-md-color-primary=black],[data-md-color-scheme=slate][data-md-color-primary=white]{--md-typeset-a-color:#5d6cc0}} \ No newline at end of file diff --git a/1.3/change-log/index.html b/1.3/change-log/index.html new file mode 100644 index 00000000..3b92da09 --- /dev/null +++ b/1.3/change-log/index.html @@ -0,0 +1,2359 @@ + + + + + + + + + + + + + + + + + + + + + + Change Log - RAPIDS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + +
+
+
+ + +
+
+ + + + + + + + +

Change Log

+

v1.3.0

+
    +
  • Refactor PHONE_LOCATIONS DORYAB provider. Fix bugs and faster execution up to 30x
  • +
  • New PHONE_KEYBOARD features
  • +
  • Add a new strategy to infer home location that can handle multiple homes for the same participant
  • +
  • Add module to exclude sleep episodes from steps intraday features
  • +
  • Fix PID matching when joining data from multiple participants. Now, we can handle PIDS with an arbitrary format.
  • +
  • Fix bug that did not correctly parse participants with more than 2 phones or more than 1 wearable
  • +
  • Fix crash when no phone data yield is needed to process location data (ALL & GPS location providers)
  • +
  • Remove location rows with the same timestamp based on their accuracy
  • +
  • Fix PHONE_CONVERSATION bug that produced inaccurate ratio features when time segments were not daily.
  • +
  • Other minor bug fixes
  • +
+

v1.2.0

+
    +
  • Sleep summary and intraday features are more consistent.
  • +
  • Add wake and bedtime features for sleep summary data.
  • +
  • Fix bugs with sleep PRICE features.
  • +
  • Update home page
  • +
  • Add contributing guide
  • +
+

v1.1.1

+
    +
  • Fix length of periodic segments on days with DLS
  • +
  • Fix crash when scraping data for an app that does not exist
  • +
  • Add tests for phone screen data
  • +
+

v1.1.0

+
    +
  • Add Fitbit calories intraday features
  • +
+

v1.0.1

+
    +
  • Fix crash in chunk_episodes of utils.py for multi time zone data
  • +
  • Fix crash in BT Doryab provider when the number of clusters is 2
  • +
  • Fix Fitbit multi time zone inference from phone data (simplify)
  • +
  • Fix missing columns when the input for phone data yield is empty
  • +
  • Fix wrong date time labels for event segments for multi time zone data (all labels are computed based on a single tz)
  • +
  • Fix periodic segment crash when there are no segments to assign (only affects wday, mday, qday, or yday)
  • +
  • Fix crash in Analysis Workflow with new suffix in segments’ labels
  • +
+

v1.0.0

+
    +
  • Add a new Overview page.
  • +
  • You can extend RAPIDS with your own data streams. Data streams are data collected with other sensing apps besides AWARE (like Beiwe, mindLAMP), and stored in other data containers (databases, files) besides MySQL.
  • +
  • Support to analyze Empatica wearable data (thanks to Joe Kim and Brinnae Bent from the DBDP)
  • +
  • Support to analyze AWARE data stored in CSV files and InfluxDB databases
  • +
  • Support to analyze data collected over multiple time zones
  • +
  • Support for sleep intraday features from the core team and also from the community (thanks to Stephen Price)
  • +
  • Users can comment on the documentation (powered by utterances).
  • +
  • SCR_SCRIPT and SRC_LANGUAGE are replaced by SRC_SCRIPT.
  • +
  • Add RAPIDS new logo
  • +
  • Move Citation and Minimal Example page to the Setup section
  • +
  • Add config.yaml validation schema and documentation. Now it’s more difficult to modify the config.yaml file with invalid values.
  • +
  • Add new time at home Doryab location feature
  • +
  • Add and home coordinates to the location data file so location providers can build features based on it.
  • +
  • If you are migrating from RAPIDS 0.4.3 or older, check this guide
  • +
+

v0.4.3

+
    +
  • Fix bug when any of the rows from any sensor do not belong a time segment
  • +
+

v0.4.2

+
    +
  • Update battery testing
  • +
  • Fix location processing bug when certain columns don’t exist
  • +
  • Fix HR intraday bug when minutesonZONE features were 0
  • +
  • Update FAQs
  • +
  • Fix HR summary bug when restinghr=0 (ignore those rows)
  • +
  • Fix ROG, location entropy and normalized entropy in Doryab location provider
  • +
  • Remove sampling frequency dependance in Doryab location provider
  • +
  • Update documentation of Doryab location provider
  • +
  • Add new FITBIT_DATA_YIELD RAPIDS provider
  • +
  • Deprecate Doryab circadian movement feature until it is fixed
  • +
+

v0.4.1

+
    +
  • Fix bug when no error message was displayed for an empty [PHONE_DATA_YIELD][SENSORS] when resampling location data
  • +
+

v0.4.0

+
    +
  • Add four new phone sensors that can be used for PHONE_DATA_YIELD
  • +
  • Add code so new feature providers can be added for the new four sensors
  • +
  • Add new clustering algorithm (OPTICS) for Doryab features
  • +
  • Update default EPS parameter for Doryab location clustering
  • +
  • Add clearer error message for invalid phone data yield sensors
  • +
  • Add ALL_RESAMPLED flag and accuracy limit for location features
  • +
  • Add FAQ about null characters in phone tables
  • +
  • Reactivate light and wifi tests and update testing docs
  • +
  • Fix bug when parsing Fitbit steps data
  • +
  • Fix bugs when merging features from empty time segments
  • +
  • Fix minor issues in the documentation
  • +
+

v0.3.2

+
    +
  • Update docker and linux instructions to use RSPM binary repo for for faster installation
  • +
  • Update CI to create a release on a tagged push that passes the tests
  • +
  • Clarify in DB credential configuration that we only support MySQL
  • +
  • Add Windows installation instructions
  • +
  • Fix bugs in the create_participants_file script
  • +
  • Fix bugs in Fitbit data parsing.
  • +
  • Fixed Doryab location features context of clustering.
  • +
  • Fixed the wrong shifting while calculating distance in Doryab location features.
  • +
  • Refactored the haversine function
  • +
+

v0.3.1

+
    +
  • Update installation docs for RAPIDS’ docker container
  • +
  • Fix example analysis use of accelerometer data in a plot
  • +
  • Update FAQ
  • +
  • Update minimal example documentation
  • +
  • Minor doc updates
  • +
+

v0.3.0

+
    +
  • Update R and Python virtual environments
  • +
  • Add GH actions CI support for tests and docker
  • +
  • Add release and test badges to README
  • +
+

v0.2.6

+
    +
  • Fix old versions banner on nested pages
  • +
+

v0.2.5

+
    +
  • Fix docs deploy typo
  • +
+

v0.2.4

+
    +
  • Fix broken links in landing page and docs deploy
  • +
+

v0.2.3

+
    +
  • Fix participant IDS in the example analysis workflow
  • +
+

v0.2.2

+
    +
  • Fix readme link to docs
  • +
+

v0.2.1

+
    +
  • FIx link to the most recent version in the old version banner
  • +
+

v0.2.0

+
    +
  • Add new PHONE_BLUETOOTH DORYAB provider
  • +
  • Deprecate PHONE_BLUETOOTH RAPIDS provider
  • +
  • Fix bug in filter_data_by_segment for Python when dataset was empty
  • +
  • Minor doc updates
  • +
  • New FAQ item
  • +
+

v0.1.0

+ + + + + + + +

Comments

+ + + + + + +
+ +
+
+ +
+ + + + +
+
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/1.3/citation/index.html b/1.3/citation/index.html new file mode 100644 index 00000000..de8a2916 --- /dev/null +++ b/1.3/citation/index.html @@ -0,0 +1,2071 @@ + + + + + + + + + + + + + + + + + + + + + + Citation - RAPIDS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+ +
+
+ + +
+
+ + + + + + + + +

Cite RAPIDS and providers

+
+

RAPIDS and the community

+

RAPIDS is a community effort and as such we want to continue recognizing the contributions from other researchers. Besides citing RAPIDS, we ask you to cite any of the authors listed below if you used those sensor providers in your analysis, thank you!

+
+

RAPIDS

+

If you used RAPIDS, please cite this paper.

+
+

RAPIDS et al. citation

+

Vega J, Li M, Aguillera K, Goel N, Joshi E, Durica KC, Kunta AR, Low CA +RAPIDS: Reproducible Analysis Pipeline for Data Streams Collected with Mobile Devices +JMIR Preprints. 18/08/2020:23246 +DOI: 10.2196/preprints.23246 +URL: https://preprints.jmir.org/preprint/23246

+
+

DBDP (all Empatica sensors)

+

If you computed features using the provider [DBDP] of any of the Empatica sensors (accelerometer, heart rate, temperature, EDA, BVP, IBI, tags) cite this paper in addition to RAPIDS.

+
+

Bent et al. citation

+

Bent, B., Wang, K., Grzesiak, E., Jiang, C., Qi, Y., Jiang, Y., Cho, P., Zingler, K., Ogbeide, F.I., Zhao, A., Runge, R., Sim, I., Dunn, J. (2020). The Digital Biomarker Discovery Pipeline: An open source software platform for the development of digital biomarkers using mHealth and wearables data. Journal of Clinical and Translational Science, 1-28. doi:10.1017/cts.2020.511

+
+

Panda (accelerometer)

+

If you computed accelerometer features using the provider [PHONE_ACCLEROMETER][PANDA] cite this paper in addition to RAPIDS.

+
+

Panda et al. citation

+

Panda N, Solsky I, Huang EJ, Lipsitz S, Pradarelli JC, Delisle M, Cusack JC, Gadd MA, Lubitz CC, Mullen JT, Qadan M, Smith BL, Specht M, Stephen AE, Tanabe KK, Gawande AA, Onnela JP, Haynes AB. Using Smartphones to Capture Novel Recovery Metrics After Cancer Surgery. JAMA Surg. 2020 Feb 1;155(2):123-129. doi: 10.1001/jamasurg.2019.4702. PMID: 31657854; PMCID: PMC6820047.

+
+

Stachl (applications foreground)

+

If you computed applications foreground features using the app category (genre) catalogue in [PHONE_APPLICATIONS_FOREGROUND][RAPIDS] cite this paper in addition to RAPIDS.

+
+

Stachl et al. citation

+

Clemens Stachl, Quay Au, Ramona Schoedel, Samuel D. Gosling, Gabriella M. Harari, Daniel Buschek, Sarah Theres Völkel, Tobias Schuwerk, Michelle Oldemeier, Theresa Ullmann, Heinrich Hussmann, Bernd Bischl, Markus Bühner. Proceedings of the National Academy of Sciences Jul 2020, 117 (30) 17680-17687; DOI: 10.1073/pnas.1920484117

+
+

Doryab (bluetooth)

+

If you computed bluetooth features using the provider [PHONE_BLUETOOTH][DORYAB] cite this paper in addition to RAPIDS.

+
+

Doryab et al. citation

+

Doryab, A., Chikarsel, P., Liu, X., & Dey, A. K. (2019). Extraction of Behavioral Features from Smartphone and Wearable Data. ArXiv:1812.10394 [Cs, Stat]. http://arxiv.org/abs/1812.10394

+
+

Barnett (locations)

+

If you computed locations features using the provider [PHONE_LOCATIONS][BARNETT] cite this paper and this paper in addition to RAPIDS.

+
+

Barnett et al. citation

+

Ian Barnett, Jukka-Pekka Onnela, Inferring mobility measures from GPS traces with missing data, Biostatistics, Volume 21, Issue 2, April 2020, Pages e98–e112, https://doi.org/10.1093/biostatistics/kxy059

+
+
+

Canzian et al. citation

+

Luca Canzian and Mirco Musolesi. 2015. Trajectories of depression: unobtrusive monitoring of depressive states by means of smartphone mobility traces analysis. In Proceedings of the 2015 ACM International Joint Conference on Pervasive and Ubiquitous Computing (UbiComp ‘15). Association for Computing Machinery, New York, NY, USA, 1293–1304. DOI:https://doi.org/10.1145/2750858.2805845

+
+

Doryab (locations)

+

If you computed locations features using the provider [PHONE_LOCATIONS][DORYAB] cite this paper and this paper in addition to RAPIDS. In addition, if you used the SUN_LI_VEGA_STRATEGY strategy, cite this paper as well.

+
+

Doryab et al. citation

+

Doryab, A., Chikarsel, P., Liu, X., & Dey, A. K. (2019). Extraction of Behavioral Features from Smartphone and Wearable Data. ArXiv:1812.10394 [Cs, Stat]. http://arxiv.org/abs/1812.10394

+
+
+

Canzian et al. citation

+

Luca Canzian and Mirco Musolesi. 2015. Trajectories of depression: unobtrusive monitoring of depressive states by means of smartphone mobility traces analysis. In Proceedings of the 2015 ACM International Joint Conference on Pervasive and Ubiquitous Computing (UbiComp ‘15). Association for Computing Machinery, New York, NY, USA, 1293–1304. DOI:https://doi.org/10.1145/2750858.2805845

+
+
+

Sun et al. citation

+

Sun S, Folarin AA, Ranjan Y, Rashid Z, Conde P, Stewart C, Cummins N, Matcham F, Dalla Costa G, Simblett S, Leocani L, Lamers F, Sørensen PS, Buron M, Zabalza A, Guerrero Pérez AI, Penninx BW, Siddi S, Haro JM, Myin-Germeys I, Rintala A, Wykes T, Narayan VA, Comi G, Hotopf M, Dobson RJ, RADAR-CNS Consortium. Using Smartphones and Wearable Devices to Monitor Behavioral Changes During COVID-19. J Med Internet Res 2020;22(9):e19992

+
+ + + + + + +

Comments

+ + + + + + +
+ +
+
+ +
+ + + + +
+
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/1.3/code_of_conduct/index.html b/1.3/code_of_conduct/index.html new file mode 100644 index 00000000..37183806 --- /dev/null +++ b/1.3/code_of_conduct/index.html @@ -0,0 +1,2174 @@ + + + + + + + + + + + + + + + + + + + + + + Code of Conduct - RAPIDS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + +
+
+
+ + +
+
+ + + + + + + + +

Contributor Covenant Code of Conduct

+

Our Pledge

+

We as members, contributors, and leaders pledge to make participation in our +community a harassment-free experience for everyone, regardless of age, body +size, visible or invisible disability, ethnicity, sex characteristics, gender +identity and expression, level of experience, education, socio-economic status, +nationality, personal appearance, race, religion, or sexual identity +and orientation.

+

We pledge to act and interact in ways that contribute to an open, welcoming, +diverse, inclusive, and healthy community.

+

Our Standards

+

Examples of behavior that contributes to a positive environment for our +community include:

+
    +
  • Demonstrating empathy and kindness toward other people
  • +
  • Being respectful of differing opinions, viewpoints, and experiences
  • +
  • Giving and gracefully accepting constructive feedback
  • +
  • Accepting responsibility and apologizing to those affected by our mistakes, + and learning from the experience
  • +
  • Focusing on what is best not just for us as individuals, but for the + overall community
  • +
+

Examples of unacceptable behavior include:

+
    +
  • The use of sexualized language or imagery, and sexual attention or + advances of any kind
  • +
  • Trolling, insulting or derogatory comments, and personal or political attacks
  • +
  • Public or private harassment
  • +
  • Publishing others’ private information, such as a physical or email + address, without their explicit permission
  • +
  • Other conduct which could reasonably be considered inappropriate in a + professional setting
  • +
+

Enforcement Responsibilities

+

Community leaders are responsible for clarifying and enforcing our standards of +acceptable behavior and will take appropriate and fair corrective action in +response to any behavior that they deem inappropriate, threatening, offensive, +or harmful.

+

Community leaders have the right and responsibility to remove, edit, or reject +comments, commits, code, wiki edits, issues, and other contributions that are +not aligned to this Code of Conduct, and will communicate reasons for moderation +decisions when appropriate.

+

Scope

+

This Code of Conduct applies within all community spaces, and also applies when +an individual is officially representing the community in public spaces. +Examples of representing our community include using an official e-mail address, +posting via an official social media account, or acting as an appointed +representative at an online or offline event.

+

Enforcement

+

Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported to the community leaders responsible for enforcement at +moshi@pitt.edu. +All complaints will be reviewed and investigated promptly and fairly.

+

All community leaders are obligated to respect the privacy and security of the +reporter of any incident.

+

Enforcement Guidelines

+

Community leaders will follow these Community Impact Guidelines in determining +the consequences for any action they deem in violation of this Code of Conduct:

+

1. Correction

+

Community Impact: Use of inappropriate language or other behavior deemed +unprofessional or unwelcome in the community.

+

Consequence: A private, written warning from community leaders, providing +clarity around the nature of the violation and an explanation of why the +behavior was inappropriate. A public apology may be requested.

+

2. Warning

+

Community Impact: A violation through a single incident or series +of actions.

+

Consequence: A warning with consequences for continued behavior. No +interaction with the people involved, including unsolicited interaction with +those enforcing the Code of Conduct, for a specified period of time. This +includes avoiding interactions in community spaces as well as external channels +like social media. Violating these terms may lead to a temporary or +permanent ban.

+

3. Temporary Ban

+

Community Impact: A serious violation of community standards, including +sustained inappropriate behavior.

+

Consequence: A temporary ban from any sort of interaction or public +communication with the community for a specified period of time. No public or +private interaction with the people involved, including unsolicited interaction +with those enforcing the Code of Conduct, is allowed during this period. +Violating these terms may lead to a permanent ban.

+

4. Permanent Ban

+

Community Impact: Demonstrating a pattern of violation of community +standards, including sustained inappropriate behavior, harassment of an +individual, or aggression toward or disparagement of classes of individuals.

+

Consequence: A permanent ban from any sort of public interaction within +the community.

+

Attribution

+

This Code of Conduct is adapted from the Contributor Covenant, +version 2.0, available at +https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.

+

Community Impact Guidelines were inspired by +Mozilla’s code of conduct enforcement ladder.

+

For answers to common questions about this code of conduct, see the FAQ at +https://www.contributor-covenant.org/faq. Translations are available +at https://www.contributor-covenant.org/translations.

+ + + + + + +

Comments

+ + + + + + +
+ +
+
+ +
+ + + + +
+
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/1.3/common-errors/index.html b/1.3/common-errors/index.html new file mode 100644 index 00000000..1423c3ab --- /dev/null +++ b/1.3/common-errors/index.html @@ -0,0 +1,2371 @@ + + + + + + + + + + + + + + + + + + + + + + Common Errors - RAPIDS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + + + + +
+
+ + + + + + + + +

Common Errors

+

Cannot connect to your MySQL server

+
Problem
**Error in .local(drv, \...) :** **Failed to connect to database: Error:
+Can\'t initialize character set unknown (path: compiled\_in)** :
+
+Calls: dbConnect -> dbConnect -> .local -> .Call
+Execution halted
+[Tue Mar 10 19:40:15 2020]
+Error in rule download_dataset:
+    jobid: 531
+    output: data/raw/p60/locations_raw.csv
+
+RuleException:
+CalledProcessError in line 20 of /home/ubuntu/rapids/rules/preprocessing.snakefile:
+Command 'set -euo pipefail;  Rscript --vanilla /home/ubuntu/rapids/.snakemake/scripts/tmp_2jnvqs7.download_dataset.R' returned non-zero exit status 1.
+File "/home/ubuntu/rapids/rules/preprocessing.snakefile", line 20, in __rule_download_dataset
+File "/home/ubuntu/anaconda3/envs/moshi-env/lib/python3.7/concurrent/futures/thread.py", line 57, in run
+Shutting down, this might take some time.
+Exiting because a job execution failed. Look above for error message
+
+
+
Solution

Please make sure the DATABASE_GROUP in config.yaml matches your DB credentials group in .env.

+
+
+

Cannot start mysql in linux via brew services start mysql

+
Problem

Cannot start mysql in linux via brew services start mysql

+
+
Solution

Use mysql.server start

+
+
+

Every time I run force the download_dataset rule all rules are executed

+
Problem

When running snakemake -j1 -R pull_phone_data or ./rapids -j1 -R pull_phone_data all the rules and files are re-computed

+
+
Solution

This is expected behavior. The advantage of using snakemake under the hood is that every time a file containing data is modified every rule that depends on that file will be re-executed to update their results. In this case, since download_dataset updates all the raw data, and you are forcing the rule with the flag -R every single rule that depends on those raw files will be executed.

+
+
+

Error Table XXX doesn't exist while running the download_phone_data or download_fitbit_data rule.

+
Problem
Error in .local(conn, statement, ...) : 
+  could not run statement: Table 'db_name.table_name' doesn't exist
+Calls: colnames ... .local -> dbSendQuery -> dbSendQuery -> .local -> .Call
+Execution halted
+
+
+
Solution

Please make sure the sensors listed in [PHONE_VALID_SENSED_BINS][PHONE_SENSORS] and the [CONTAINER] of each sensor you activated in config.yaml match your database tables or files.

+
+
+

How do I install RAPIDS on Ubuntu 16.04

+
Solution
    +
  1. +

    Install dependencies (Homebrew - if not installed):

    +
      +
    • sudo apt-get install libmariadb-client-lgpl-dev libxml2-dev libssl-dev
    • +
    • Install brew for linux and add the following line to ~/.bashrc: export PATH=$HOME/.linuxbrew/bin:$PATH
    • +
    • source ~/.bashrc
    • +
    +
  2. +
  3. +

    Install MySQL

    +
      +
    • brew install mysql
    • +
    • brew services start mysql
    • +
    +
  4. +
  5. +

    Install R, pandoc and rmarkdown:

    +
      +
    • brew install r
    • +
    • brew install gcc@6 (needed due to this bug)
    • +
    • HOMEBREW_CC=gcc-6 brew install pandoc
    • +
    +
  6. +
  7. +

    Install miniconda using these instructions

    +
  8. +
  9. +

    Clone our repo:

    +
      +
    • git clone https://github.com/carissalow/rapids
    • +
    +
  10. +
  11. +

    Create a python virtual environment:

    +
      +
    • cd rapids
    • +
    • conda env create -f environment.yml -n MY_ENV_NAME
    • +
    • conda activate MY_ENV_NAME
    • +
    +
  12. +
  13. +

    Install R packages and virtual environment:

    +
      +
    • snakemake renv_install
    • +
    • snakemake renv_init
    • +
    • snakemake renv_restore
    • +
    +

    This step could take several minutes to complete. Please be patient and let it run until completion.

    +
  14. +
+
+
+

mysql.h cannot be found

+
Problem
--------------------------[ ERROR MESSAGE ]----------------------------
+<stdin>:1:10: fatal error: mysql.h: No such file or directory
+compilation terminated.
+-----------------------------------------------------------------------
+ERROR: configuration failed for package 'RMySQL'
+
+
+
Solution
sudo apt install libmariadbclient-dev
+
+
+
+

No package libcurl found

+
Problem

libcurl cannot be found

+
+
Solution

Install libcurl +

sudo apt install libcurl4-openssl-dev
+

+
+
+

Configuration failed because openssl was not found.

+
Problem

openssl cannot be found

+
+
Solution

Install openssl +

sudo apt install libssl-dev
+

+
+
+

Configuration failed because libxml-2.0 was not found

+
Problem

libxml-2.0 cannot be found

+
+
Solution

Install libxml-2.0 +

sudo apt install libxml2-dev
+

+
+
+

SSL connection error when running RAPIDS

+
Problem

You are getting the following error message when running RAPIDS: +

Error: Failed to connect: SSL connection error: error:1425F102:SSL routines:ssl_choose_client_version:unsupported protocol.
+

+
+
Solution

This is a bug in Ubuntu 20.04 when trying to connect to an old MySQL server with MySQL client 8.0. You should get the same error message if you try to connect from the command line. There you can add the option --ssl-mode=DISABLED but we can't do this from the R connector.

+

If you can't update your server, the quickest solution would be to import your database to another server or to a local environment. Alternatively, you could replace mysql-client and libmysqlclient-dev with mariadb-client and libmariadbclient-dev and reinstall renv. More info about this issue here

+
+
+

DB_TABLES key not found

+
Problem

If you get the following error KeyError in line 43 of preprocessing.smk: 'PHONE_SENSORS', it means that the indentation of the key [PHONE_SENSORS] is not matching the other child elements of PHONE_VALID_SENSED_BINS

+
+
Solution

You need to add or remove any leading whitespaces as needed on that line.

+
PHONE_VALID_SENSED_BINS:
+    COMPUTE: False # This flag is automatically ignored (set to True) if you are extracting PHONE_VALID_SENSED_DAYS or screen or Barnett's location features
+    BIN_SIZE: &bin_size 5 # (in minutes)
+    PHONE_SENSORS: []
+
+
+
+

Error while updating your conda environment in Ubuntu

+
Problem

You get the following error: +

CondaMultiError: CondaVerificationError: The package for tk located at /home/ubuntu/miniconda2/pkgs/tk-8.6.9-hed695b0_1003
+    appears to be corrupted. The path 'include/mysqlStubs.h'
+    specified in the package manifest cannot be found.
+ClobberError: This transaction has incompatible packages due to a shared path.
+    packages: conda-forge/linux-64::llvm-openmp-10.0.0-hc9558a2_0, anaconda/linux-64::intel-openmp-2019.4-243
+    path: 'lib/libiomp5.so'
+

+
+
Solution

Reinstall conda

+
+

Embedded nul in string

+
Problem

You get the following error when downloading sensor data: +

Error in result_fetch(res@ptr, n = n) : 
+  embedded nul in string:
+

+
+
Solution

This problem is due to the way RMariaDB handles a mismatch between data types in R and MySQL (see this issue). Since it seems this problem won’t be handled by RMariaDB, you have two options:

+
    +
  1. Remove the the null character from the conflictive table cell(s). You can adapt the following query on a MySQL server 8.0 or older +
    update YOUR_TABLE set YOUR_COLUMN = regexp_replace(YOUR_COLUMN, '\0', '');
    +
  2. +
  3. If it’s not feasible to modify your data you can try swapping RMariaDB with RMySQL. Just have in mind you might have problems connecting to modern MySQL servers running in Linux:
      +
    • Add RMySQL to the renv environment by running the following command in a terminal open on RAPIDS root folder +
      R -e 'renv::install("RMySQL")'
      +
    • +
    • Go to src/data/streams/pull_phone_data.R or src/data/streams/pull_fitbit_data.R and replace library(RMariaDB) with library(RMySQL)
    • +
    • In the same file(s) replace dbEngine <- dbConnect(MariaDB(), default.file = "./.env", group = group) with dbEngine <- dbConnect(MySQL(), default.file = "./.env", group = group)
    • +
    +
  4. +
+
+

There is no package called RMariaDB

+
Problem

You get the following error when executing RAPIDS: +

Error in library(RMariaDB) : there is no package called 'RMariaDB'
+Execution halted
+

+
+
Solution

In RAPIDS v0.1.0 we replaced RMySQL R package with RMariaDB, this error means your R virtual environment is out of date, to update it run snakemake -j1 renv_restore

+
+

Unrecognized output timezone “America/New_York”

+
Problem

When running RAPIDS with R 4.0.3 on MacOS on M1, lubridate may throw an error associated with the timezone. +

Error in C_force_tz(time, tz = tzone, roll):
+   CCTZ: Unrecognized output timezone: "America/New_York"
+Calls: get_timestamp_filter ... .parse_date_time -> .strptime -> force_tz -> C_force_tz
+

+
+
Solution
+

This is because R timezone library is not set. Please add Sys.setenv(“TZDIR” = file.path(R.home(), “share”, “zoneinfo”)) to the file active.R in renv folder to set the timezone library. For further details on how to test if TZDIR is properly set, please refer to https://github.com/tidyverse/lubridate/issues/928#issuecomment-720059233.

+

Unimplemented MAX_NO_FIELD_TYPES

+
Problem

You get the following error when downloading Fitbit data: +

Error: Unimplemented MAX_NO_FIELD_TYPES
+Execution halted
+

+
+
Solution

At the moment RMariaDB cannot handle MySQL columns of JSON type. Change the type of your Fitbit data column to longtext (note that the content will not change and will still be a JSON object just interpreted as a string).

+
+

Running RAPIDS on Apple Silicon M1 Mac

+
Problem

You get the following error when installing pandoc or running rapids: +

MoSHI/rapids/renv/staging/1/00LOCK-KernSmooth/00new/KernSmooth/libs/KernSmooth.so: mach-0, but wrong architecture
+

+
+
Solution

As of Feb 2020 in M1 macs, R needs to be installed via brew under Rosetta (x86 arch) due to some incompatibility with selected R libraries. To do this, run your terminal via Rosetta, then proceed with the usual brew installation command. x86 homebrew should be installed in /usr/local/bin/brew, you can check which brew you are using by typing which brew. Then use x86 homebrew to install R and restore RAPIDS packages (renv_restore).

+
+ + + + + + +

Comments

+ + + + + + +
+ +
+
+ +
+ + + + +
+
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/1.3/contributing/index.html b/1.3/contributing/index.html new file mode 100644 index 00000000..567c79a6 --- /dev/null +++ b/1.3/contributing/index.html @@ -0,0 +1,2073 @@ + + + + + + + + + + + + + + + + + + + + + + Contributing - RAPIDS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+ +
+
+ + +
+
+ + + + + + + + +

Contributing

+

Thank you for taking the time to contribute!

+

All changes, small or big, are welcome, and regardless of who you are, we are always happy to work together to make your contribution as strong as possible. We follow the Covenant Code of Conduct, so we ask you to uphold it. Be kind to everyone in the community, and please report unacceptable behavior to moshiresearch@gmail.com.

+

Questions, Feature Requests, and Discussions

+

Post any questions, feature requests, or discussions in our GitHub Discussions tab.

+

Bug Reports

+

Report any bugs in our GithHub issue tracker keeping in mind to:

+
    +
  • Debug and simplify the problem to create a minimal example. For example, reduce the problem to a single participant, sensor, and a few rows of data.
  • +
  • Provide a clear and succinct description of the problem (expected behavior vs. actual behavior).
  • +
  • Attach your config.yaml, time segments file, and time zones file if appropriate.
  • +
  • Attach test data if possible and any screenshots or extra resources that will help us debug the problem.
  • +
  • Share the commit you are running: git rev-parse --short HEAD
  • +
  • Share your OS version (e.g., Windows 10)
  • +
  • Share the device/sensor you are processing (e.g., phone accelerometer)
  • +
+

Documentation Contributions

+

If you want to fix a typo or any other minor changes, you can edit the file online by clicking on the pencil icon at the top right of any page and opening a pull request using Github’s website

+

If your changes are more complex, clone RAPIDS’ repository, setup the dev environment for our documentation with this tutorial, and submit any changes on a new feature branch following our git flow.

+

Code Contributions

+
+

Hints for any code changes

+
    +
  • To submit any new code, use a new feature branch following our git flow.
  • +
  • If you neeed a new Python or R package in RAPIDS’ virtual environments, follow this tutorial
  • +
  • If you need to change the config.yaml you will need to update its validation schema with this tutorial
  • +
+
+

New Data Streams

+

New data containers. If you want to process data from a device RAPIDS supports (see this table) but it’s stored in a database engine or file type we don’t support yet, implement a new data stream container and format. You can copy and paste the format.yaml of one of the other streams of the device you are targeting.

+

New sensing apps. If you want to add support for new smartphone sensing apps like Beiwe, implement a new data stream container and format.

+

New wearable devices. If you want to add support for a new wearable, open a Github discussion, so we can add the necessary initial configuration files and code.

+

New Behavioral Features

+

If you want to add new behavioral features for mobile sensors RAPIDS already supports, follow this tutorial. A sensor is supported if it has a configuration section in config.yaml.

+

If you want to add new behavioral features for mobile sensors RAPIDS does not support yet, open a Github discussion, so we can add the necessary initial configuration files and code.

+

New Tests

+

If you want to add new tests for existent behavioral features, follow this tutorial.

+

New Visualizations

+

Open a Github discussion, so we can add the necessary initial configuration files and code.

+ + + + + + +

Comments

+ + + + + + +
+ +
+
+ +
+ + + + +
+
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/1.3/datastreams/add-new-data-streams/index.html b/1.3/datastreams/add-new-data-streams/index.html new file mode 100644 index 00000000..9199d8ee --- /dev/null +++ b/1.3/datastreams/add-new-data-streams/index.html @@ -0,0 +1,2357 @@ + + + + + + + + + + + + + + + + + + + + + + Add New Data Streams - RAPIDS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + +
+
+
+ + +
+
+ + + + + + + + +

Add New Data Streams

+

A data stream is a set of sensor data collected using a specific type of device with a specific format and stored in a specific container. RAPIDS is agnostic to data streams’ formats and container; see the Data Streams Introduction for a list of supported streams.

+

A container is queried with an R or Python script that connects to the database, API or file where your stream’s raw data is stored.

+

A format is described using a format.yaml file that specifies how to map and mutate your stream’s raw data to match the data and format RAPIDS needs.

+

The most common cases when you would want to implement a new data stream are:

+
    +
  • You collected data with a mobile sensing app RAPIDS does not support yet. For example, Beiwe data stored in MySQL. You will need to define a new format file and a new container script.
  • +
  • You collected data with a mobile sensing app RAPIDS supports, but this data is stored in a container that RAPIDS can’t connect to yet. For example, AWARE data stored in PostgreSQL. In this case, you can reuse the format file of the aware_mysql stream, but you will need to implement a new container script.
  • +
+
+

Hint

+

Both the container.[R|py] and the format.yaml are stored in ./src/data/streams/[stream_name] where [stream_name] can be aware_mysql for example.

+
+

Implement a Container

+

The container script of a data stream can be implemented in R (strongly recommended) or python. This script must have two functions if you are implementing a stream for phone data or one function otherwise. The script can contain other auxiliary functions.

+

First of all, add any parameters your script might need in config.yaml under (device)_DATA_STREAMS. These parameters will be available in the stream_parameters argument of the one or two functions you implement. For example, if you are adding support for Beiwe data stored in PostgreSQL and your container needs a set of credentials to connect to a database, your new data stream configuration would be:

+
PHONE_DATA_STREAMS:
+  USE: aware_python
+
+  # AVAILABLE:
+  aware_mysql: 
+    DATABASE_GROUP: MY_GROUP
+  beiwe_postgresql: 
+    DATABASE_GROUP: MY_GROUP # users define this group (user, password, host, etc.) in credentials.yaml
+
+

Then implement one or both of the following functions:

+
+

This function returns the data columns for a specific sensor and participant. It has the following parameters:

+ + + + + + + + + + + + + + + + + + + + + + + + + +
ParamDescription
stream_parametersAny parameters (keys/values) set by the user in any [DEVICE_DATA_STREAMS][stream_name] key of config.yaml. For example, [DATABASE_GROUP] inside [FITBIT_DATA_STREAMS][fitbitjson_mysql]
sensor_containerThe value set by the user in any [DEVICE_SENSOR][CONTAINER] key of config.yaml. It can be a table, file path, or whatever data source you want to support that contains the data from a single sensor for all participants. For example, [PHONE_ACCELEROMETER][CONTAINER]
deviceThe device id that you need to get the data for (this is set by the user in the participant files). For example, in AWARE this device id is a uuid
columnsA list of the columns that you need to get from sensor_container. You specify these columns in your stream’s format.yaml
+
+

Example

+

This is the pull_data function we implemented for aware_mysql. Note that we can message, warn or stop the user during execution.

+
pull_data <- function(stream_parameters, device, sensor_container, columns){
+    # get_db_engine is an auxiliary function not shown here for brevity bu can be found in src/data/streams/aware_mysql/container.R
+    dbEngine <- get_db_engine(stream_parameters$DATABASE_GROUP)
+    query <- paste0("SELECT ", paste(columns, collapse = ",")," FROM ", sensor_container, " WHERE device_id = '", device,"'")
+    # Letting the user know what we are doing
+    message(paste0("Executing the following query to download data: ", query)) 
+    sensor_data <- dbGetQuery(dbEngine, query)
+
+    dbDisconnect(dbEngine)
+
+    if(nrow(sensor_data) == 0)
+        warning(paste("The device '", device,"' did not have data in ", sensor_container))
+
+    return(sensor_data)
+}
+
+
+
+
+
+

Warning

+

This function is only necessary for phone data streams.

+
+

RAPIDS allows users to use the keyword infer (previously multiple) to automatically infer the mobile Operative System a phone was running.

+

If you have a way to infer the OS of a device id, implement this function. For example, for AWARE data we use the aware_device table.

+

If you don’t have a way to infer the OS, call stop("Error Message") so other users know they can’t use infer or the inference failed, and they have to assign the OS manually in the participant file.

+

This function returns the operative system (android or ios) for a specific phone device id. It has the following parameters:

+ + + + + + + + + + + + + + + + + +
ParamDescription
stream_parametersAny parameters (keys/values) set by the user in any [DEVICE_DATA_STREAMS][stream_name] key of config.yaml. For example, [DATABASE_GROUP] inside [FITBIT_DATA_STREAMS][fitbitjson_mysql]
deviceThe device id that you need to infer the OS for (this is set by the user in the participant files). For example, in AWARE this device id is a uuid
+
+

Example

+

This is the infer_device_os function we implemented for aware_mysql. Note that we can message, warn or stop the user during execution.

+
infer_device_os <- function(stream_parameters, device){
+    # get_db_engine is an auxiliary function not shown here for brevity bu can be found in src/data/streams/aware_mysql/container.R
+    group <- stream_parameters$DATABASE_GROUP
+
+    dbEngine <- dbConnect(MariaDB(), default.file = "./.env", group = group)
+    query <- paste0("SELECT device_id,brand FROM aware_device WHERE device_id = '", device, "'")
+    message(paste0("Executing the following query to infer phone OS: ", query)) 
+    os <- dbGetQuery(dbEngine, query)
+    dbDisconnect(dbEngine)
+
+    if(nrow(os) > 0)
+        return(os %>% mutate(os = ifelse(brand == "iPhone", "ios", "android")) %>% pull(os))
+    else
+        stop(paste("We cannot infer the OS of the following device id because it does not exist in the aware_device table:", device))
+
+    return(os)
+}
+
+
+
+
+

Implement a Format

+

A format file format.yaml describes the mapping between your stream’s raw data and the data that RAPIDS needs. This file has a section per sensor (e.g. PHONE_ACCELEROMETER), and each section has two attributes (keys):

+
    +
  1. +

    RAPIDS_COLUMN_MAPPINGS are mappings between the columns RAPIDS needs and the columns your raw data already has.

    +
      +
    1. The reserved keyword FLAG_TO_MUTATE flags columns that RAPIDS requires but that are not initially present in your container (database, CSV file). These columns have to be created by your mutation scripts.
    2. +
    +
  2. +
  3. +

    MUTATION. Sometimes your raw data needs to be transformed to match the format RAPIDS can handle (including creating columns marked as FLAG_TO_MUTATE)

    +
      +
    1. +

      COLUMN_MAPPINGS are mappings between the columns a mutation SCRIPT needs and the columns your raw data has.

      +
    2. +
    3. +

      SCRIPTS are a collection of R or Python scripts that transform one or more raw data columns into the format RAPIDS needs.

      +
    4. +
    +
  4. +
+
+

Hint

+

[RAPIDS_COLUMN_MAPPINGS] and [MUTATE][COLUMN_MAPPINGS] have a key (left-hand side string) and a value (right-hand side string). The values are the names used to pulled columns from a container (e.g., columns in a database table). All values are renamed to their keys in lower case. The renamed columns are sent to every mutation script within the data argument, and the final output is the input RAPIDS process further.

+

For example, let’s assume we are implementing beiwe_mysql and defining the following format for PHONE_FAKESENSOR:

+
PHONE_FAKESENSOR:
+    ANDROID:
+        RAPIDS_COLUMN_MAPPINGS:
+            TIMESTAMP: beiwe_timestamp
+            DEVICE_ID: beiwe_deviceID
+            MAGNITUDE_SQUARED: FLAG_TO_MUTATE
+        MUTATE:
+            COLUMN_MAPPINGS:
+                MAGNITUDE: beiwe_value
+            SCRIPTS:
+              - src/data/streams/mutations/phone/square_magnitude.py
+
+

RAPIDS will:

+
    +
  1. Download beiwe_timestamp, beiwe_deviceID, and beiwe_value from the container of beiwe_mysql (MySQL DB)
  2. +
  3. Rename these columns to timestamp, device_id, and magnitude, respectively.
  4. +
  5. Execute square_magnitude.py with a data frame as an argument containing the renamed columns. This script will square magnitude and rename it to magnitude_squared
  6. +
  7. Verify the data frame returned by square_magnitude.py has the columns RAPIDS needs timestamp, device_id, and magnitude_squared.
  8. +
  9. Use this data frame as the input to be processed in the pipeline.
  10. +
+

Note that although RAPIDS_COLUMN_MAPPINGS and [MUTATE][COLUMN_MAPPINGS] keys are in capital letters for readability (e.g. MAGNITUDE_SQUARED), the names of the final columns you mutate in your scripts should be lower case.

+
+

Let’s explain in more depth this column mapping with examples.

+

Name mapping

+

The mapping for some sensors is straightforward. For example, accelerometer data most of the time has a timestamp, three axes (x,y,z), and a device id that produced it. AWARE and a different sensing app like Beiwe likely logged accelerometer data in the same way but with different column names. In this case, we only need to match Beiwe data columns to RAPIDS columns one-to-one:

+
PHONE_ACCELEROMETER:
+  ANDROID:
+    RAPIDS_COLUMN_MAPPINGS:
+      TIMESTAMP: beiwe_timestamp
+      DEVICE_ID: beiwe_deviceID
+      DOUBLE_VALUES_0: beiwe_x
+      DOUBLE_VALUES_1: beiwe_y
+      DOUBLE_VALUES_2: beiwe_z
+    MUTATE:
+      COLUMN_MAPPINGS:
+      SCRIPTS: # it's ok if this is empty
+
+

Value mapping

+

For some sensors, we need to map column names and values. For example, screen data has ON and OFF events; let’s suppose Beiwe represents an ON event with the number 1, but RAPIDS identifies ON events with the number 2. In this case, we need to mutate the raw data coming from Beiwe and replace all 1s with 2s.

+

We do this by listing one or more R or Python scripts in MUTATION_SCRIPTS that will be executed in order. We usually store all mutation scripts under src/data/streams/mutations/[device]/[platform]/ and they can be reused across data streams.

+
PHONE_SCREEN:
+  ANDROID:
+    RAPIDS_COLUMN_MAPPINGS:
+      TIMESTAMP: beiwe_timestamp
+      DEVICE_ID: beiwe_deviceID
+      EVENT: beiwe_event
+     MUTATE:
+      COLUMN_MAPPINGS:
+      SCRIPTS:
+        - src/data/streams/mutations/phone/beiwe/beiwe_screen_map.py
+
+
+

Hint

+
    +
  • A MUTATION_SCRIPT can also be used to clean/preprocess your data before extracting behavioral features.
  • +
  • A mutation script has to have a main function that receives two arguments, data and stream_parameters.
  • +
  • The stream_parameters argument contains the config.yaml key/values of your data stream (this is the same argument that your container.[py|R] script receives, see Implement a Container).
  • +
+
+

Example of a python mutation script +

import pandas as pd
+
+def main(data, stream_parameters):
+    # mutate data
+    return(data)
+

+
+
+

Example of a R mutation script +

source("renv/activate.R") # needed to use RAPIDS renv environment
+library(dplyr)
+
+main <- function(data, stream_parameters){
+    # mutate data
+    return(data)
+}
+

+
+
+
+

Complex mapping

+

Sometimes, your raw data doesn’t even have the same columns RAPIDS expects for a sensor. For example, let’s pretend Beiwe stores PHONE_ACCELEROMETER axis data in a single column called acc_col instead of three. You have to create a MUTATION_SCRIPT to split acc_col into three columns x, y, and z.

+

For this, you mark the three axes columns RAPIDS needs in [RAPIDS_COLUMN_MAPPINGS] with the word FLAG_TO_MUTATE, map acc_col in [MUTATION][COLUMN_MAPPINGS], and list a Python script under [MUTATION][SCRIPTS] with the code to split acc_col. See an example below.

+

RAPIDS expects that every column mapped as FLAG_TO_MUTATE will be generated by your mutation script, so it won’t try to retrieve them from your container (database, CSV file, etc.).

+

In our example, acc_col will be fetched from the stream’s container and renamed to JOINED_AXES because beiwe_split_acc.py will split it into double_values_0, double_values_1, and double_values_2.

+
PHONE_ACCELEROMETER:
+  ANDROID:
+    RAPIDS_COLUMN_MAPPINGS:
+      TIMESTAMP: beiwe_timestamp
+      DEVICE_ID: beiwe_deviceID
+      DOUBLE_VALUES_0: FLAG_TO_MUTATE
+      DOUBLE_VALUES_1: FLAG_TO_MUTATE
+      DOUBLE_VALUES_2: FLAG_TO_MUTATE
+    MUTATE:
+      COLUMN_MAPPINGS:
+        JOINED_AXES: acc_col
+      SCRIPTS:
+        - src/data/streams/mutations/phone/beiwe/beiwe_split_acc.py
+
+

This is a draft of beiwe_split_acc.py MUTATION_SCRIPT: +

import pandas as pd
+
+def main(data, stream_parameters):
+    # data has the acc_col
+    # split acc_col into three columns: double_values_0, double_values_1, double_values_2 to match RAPIDS format
+    # remove acc_col since we don't need it anymore
+    return(data)
+

+

OS complex mapping

+

There is a special case for a complex mapping scenario for smartphone data streams. The Android and iOS sensor APIs return data in different formats for certain sensors (like screen, activity recognition, battery, among others).

+

In case you didn’t notice, the examples we have used so far are grouped under an ANDROID key, which means they will be applied to data collected by Android phones. Additionally, each sensor has an IOS key for a similar purpose. We use the complex mapping described above to transform iOS data into an Android format (it’s always iOS to Android and any new phone data stream must do the same).

+

For example, this is the format.yaml key for PHONE_ACTVITY_RECOGNITION. Note that the ANDROID mapping is simple (one-to-one) but the IOS mapping is complex with three FLAG_TO_MUTATE columns, two [MUTATE][COLUMN_MAPPINGS] mappings, and one [MUTATION][SCRIPT].

+
PHONE_ACTIVITY_RECOGNITION:
+  ANDROID:
+    RAPIDS_COLUMN_MAPPINGS:
+      TIMESTAMP: timestamp
+      DEVICE_ID: device_id
+      ACTIVITY_TYPE: activity_type
+      ACTIVITY_NAME: activity_name
+      CONFIDENCE: confidence
+    MUTATION:
+      COLUMN_MAPPINGS:
+      SCRIPTS:
+  IOS:
+    RAPIDS_COLUMN_MAPPINGS:
+      TIMESTAMP: timestamp
+      DEVICE_ID: device_id
+      ACTIVITY_TYPE: FLAG_TO_MUTATE
+      ACTIVITY_NAME: FLAG_TO_MUTATE
+      CONFIDENCE: FLAG_TO_MUTATE
+    MUTATION:
+      COLUMN_MAPPINGS:
+        ACTIVITIES: activities
+        CONFIDENCE: confidence
+      SCRIPTS:
+        - "src/data/streams/mutations/phone/aware/activity_recogniton_ios_unification.R"
+
+
Example activity_recogniton_ios_unification.R

In this MUTATION_SCRIPT we create ACTIVITY_NAME and ACTIVITY_TYPE based on activities, and map confidence iOS values to Android values. +

source("renv/activate.R")
+library("dplyr", warn.conflicts = F)
+library(stringr)
+
+clean_ios_activity_column <- function(ios_gar){
+    ios_gar <- ios_gar %>%
+        mutate(activities = str_replace_all(activities, pattern = '("|\\[|\\])', replacement = ""))
+
+    existent_multiple_activities <- ios_gar %>%
+        filter(str_detect(activities, ",")) %>% 
+        group_by(activities) %>%
+        summarise(mutiple_activities = unique(activities), .groups = "drop_last") %>% 
+        pull(mutiple_activities)
+
+    known_multiple_activities <- c("stationary,automotive")
+    unkown_multiple_actvities <- setdiff(existent_multiple_activities, known_multiple_activities)
+    if(length(unkown_multiple_actvities) > 0){
+        stop(paste0("There are unkwown combinations of ios activities, you need to implement the decision of the ones to keep: ", unkown_multiple_actvities))
+    }
+
+    ios_gar <- ios_gar %>%
+        mutate(activities = str_replace_all(activities, pattern = "stationary,automotive", replacement = "automotive"))
+
+    return(ios_gar)
+}
+
+unify_ios_activity_recognition <- function(ios_gar){
+    # We only need to unify Google Activity Recognition data for iOS
+    # discard rows where activities column is blank
+    ios_gar <- ios_gar[-which(ios_gar$activities == ""), ]
+    # clean "activities" column of ios_gar
+    ios_gar <- clean_ios_activity_column(ios_gar)
+
+    # make it compatible with android version: generate "activity_name" and "activity_type" columns
+    ios_gar  <-  ios_gar %>% 
+        mutate(activity_name = case_when(activities == "automotive" ~ "in_vehicle",
+                                        activities == "cycling" ~ "on_bicycle",
+                                        activities == "walking" ~ "walking",
+                                        activities == "running" ~ "running",
+                                        activities == "stationary" ~ "still"),
+                activity_type = case_when(activities == "automotive" ~ 0,
+                                        activities == "cycling" ~ 1,
+                                        activities == "walking" ~ 7,
+                                        activities == "running" ~ 8,
+                                        activities == "stationary" ~ 3,
+                                        activities == "unknown" ~ 4),
+                confidence = case_when(confidence == 0 ~ 0,
+                                      confidence == 1 ~ 50,
+                                      confidence == 2 ~ 100)
+                                    ) %>% 
+        select(-activities)
+
+    return(ios_gar)
+}
+
+main <- function(data, stream_parameters){
+    return(unify_ios_activity_recognition(data, stream_parameters))
+}
+

+
+ + + + + + +

Comments

+ + + + + + +
+ +
+
+ +
+ + + + +
+
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/1.3/datastreams/aware-csv/index.html b/1.3/datastreams/aware-csv/index.html new file mode 100644 index 00000000..5c2ca9a0 --- /dev/null +++ b/1.3/datastreams/aware-csv/index.html @@ -0,0 +1,3123 @@ + + + + + + + + + + + + + + + + + + + + + + aware_csv - RAPIDS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + +
+
+
+ + +
+
+ + + + + + + + +

aware_csv

+

This data stream handles iOS and Android sensor data collected with the AWARE Framework and stored in CSV files.

+
+

Warning

+

The CSV files have to use , as separator, \ as escape character (do not escape " with ""), and wrap any string columns with ".

+

See examples in the CSV files inside rapids_example_csv.zip

+
Example of a valid CSV file
"_id","timestamp","device_id","activities","confidence","stationary","walking","running","automotive","cycling","unknown","label"
+1,1587528000000,"13dbc8a3-dae3-4834-823a-4bc96a7d459d","[\"stationary\"]",2,1,0,0,0,0,0,""
+2,1587528060000,"13dbc8a3-dae3-4834-823a-4bc96a7d459d","[\"stationary\"]",2,1,0,0,0,0,0,"supplement"
+3,1587528120000,"13dbc8a3-dae3-4834-823a-4bc96a7d459d","[\"stationary\"]",2,1,0,0,0,0,0,"supplement"
+4,1587528180000,"13dbc8a3-dae3-4834-823a-4bc96a7d459d","[\"stationary\"]",2,1,0,0,0,0,0,"supplement"
+5,1587528240000,"13dbc8a3-dae3-4834-823a-4bc96a7d459d","[\"stationary\"]",2,1,0,0,0,0,0,"supplement"
+6,1587528300000,"13dbc8a3-dae3-4834-823a-4bc96a7d459d","[\"stationary\"]",2,1,0,0,0,0,0,"supplement"
+7,1587528360000,"13dbc8a3-dae3-4834-823a-4bc96a7d459d","[\"stationary\"]",2,1,0,0,0,0,0,"supplement"
+
+
+
+

Container

+

A CSV file per sensor, each containing the data for all participants.

+

The script to connect and download data from this container is at: +

src/data/streams/aware_csv/container.R
+

+

Format

+

If you collected sensor data with the vanilla (original) AWARE mobile clients, you shouldn’t need to modify this format (described below).

+

Remember that a format maps and transforms columns in your raw data stream to the mandatory columns RAPIDS needs.

+

The yaml file that describes the format of this data stream is at: +

src/data/streams/aware_csv/format.yaml
+

+

For some sensors, we need to transform iOS data into Android format; you can refer to OS complex mapping for learn how this works.

+
+

Hint

+

The mappings in this stream (RAPIDS/Stream) are the same names because AWARE data was the first stream RAPIDS supported, meaning that it considers AWARE column names the default.

+
+
PHONE_ACCELEROMETER
+

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPtimestamp
DEVICE_IDdevice_id
DOUBLE_VALUES_0double_values_0
DOUBLE_VALUES_1double_values_1
DOUBLE_VALUES_2double_values_2
+

MUTATION

+
    +
  • COLUMN_MAPPINGS (None)
  • +
  • SCRIPTS (None)
  • +
+
+
+

Same as ANDROID

+
+
+
+
PHONE_ACTIVITY_RECOGNITION
+

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPtimestamp
DEVICE_IDdevice_id
ACTIVITY_NAMEactivity_name
ACTIVITY_TYPEactivity_type
CONFIDENCEconfidence
+

MUTATION

+
    +
  • COLUMN_MAPPINGS (None)
  • +
  • SCRIPTS (None)
  • +
+
+
+

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPtimestamp
DEVICE_IDdevice_id
ACTIVITY_NAMEFLAG_TO_MUTATE
ACTIVITY_TYPEFLAG_TO_MUTATE
CONFIDENCEFLAG_TO_MUTATE
+

MUTATION

+
    +
  • COLUMN_MAPPINGS
  • +
+ + + + + + + + + + + + + + + + + +
Script columnStream column
ACTIVITIESactivities
CONFIDENCEconfidence
+
    +
  • SCRIPTS
  • +
+
src/data/streams/mutations/phone/aware/activity_recogniton_ios_unification.R
+
+
+

Note

+

For RAPIDS columns of ACTIVITY_NAME and ACTIVITY_TYPE:

+
    +
  • if stream’s activities field is automotive, set ACTIVITY_NAME = in_vehicle and ACTIVITY_TYPE = 0
  • +
  • if stream’s activities field is cycling, set ACTIVITY_NAME = on_bicycle and ACTIVITY_TYPE = 1
  • +
  • if stream’s activities field is walking, set ACTIVITY_NAME = walking and ACTIVITY_TYPE = 7
  • +
  • if stream’s activities field is running, set ACTIVITY_NAME = running and ACTIVITY_TYPE = 8
  • +
  • if stream’s activities field is stationary, set ACTIVITY_NAME = still and ACTIVITY_TYPE = 3
  • +
  • if stream’s activities field is unknown, set ACTIVITY_NAME = unknown and ACTIVITY_TYPE = 4
  • +
+

For RAPIDS CONFIDENCE column:

+
    +
  • if stream’s confidence field is 0, set CONFIDENCE = 0
  • +
  • if stream’s confidence field is 1, set CONFIDENCE = 50
  • +
  • if stream’s confidence field is 2, set CONFIDENCE = 100
  • +
+
+
+
+
+
PHONE_APPLICATIONS_CRASHES
+

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPtimestamp
DEVICE_IDdevice_id
PACKAGE_NAMEpackage_name
APPLICATION_NAMEapplication_name
APPLICATION_VERSIONapplication_version
ERROR_SHORTerror_short
ERROR_LONGerror_long
ERROR_CONDITIONerror_condition
IS_SYSTEM_APPis_system_app
+

MUTATION

+
    +
  • COLUMN_MAPPINGS (None)
  • +
  • SCRIPTS (None)
  • +
+
+
+

This sensor is not supported by iOS devices.

+
+
+
+
PHONE_APPLICATIONS_FOREGROUND
+

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPtimestamp
DEVICE_IDdevice_id
PACKAGE_NAMEpackage_name
APPLICATION_NAMEapplication_name
IS_SYSTEM_APPis_system_app
+

MUTATION

+
    +
  • COLUMN_MAPPINGS (None)
  • +
  • SCRIPTS (None)
  • +
+
+
+

This sensor is not supported by iOS devices.

+
+
+
+
PHONE_APPLICATIONS_NOTIFICATIONS
+

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPtimestamp
DEVICE_IDdevice_id
PACKAGE_NAMEpackage_name
APPLICATION_NAMEapplication_name
TEXTtext
SOUNDsound
VIBRATEvibrate
DEFAULTSdefaults
FLAGSflags
+

MUTATION

+
    +
  • COLUMN_MAPPINGS (None)
  • +
  • SCRIPTS (None)
  • +
+
+
+

This sensor is not supported by iOS devices.

+
+
+
+
PHONE_BATTERY
+

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPtimestamp
DEVICE_IDdevice_id
BATTERY_STATUSbattery_status
BATTERY_LEVELbattery_level
BATTERY_SCALEbattery_scale
+

MUTATION

+
    +
  • COLUMN_MAPPINGS (None)
  • +
  • SCRIPTS (None)
  • +
+
+
+

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPtimestamp
DEVICE_IDdevice_id
BATTERY_STATUSFLAG_TO_MUTATE
BATTERY_LEVELbattery_level
BATTERY_SCALEbattery_scale
+

MUTATION

+
    +
  • COLUMN_MAPPINGS
  • +
+ + + + + + + + + + + + + +
Script columnStream column
BATTERY_STATUSbattery_status
+
    +
  • SCRIPTS
  • +
+
src/data/streams/mutations/phone/aware/battery_ios_unification.R
+
+
+

Note

+

For RAPIDS BATTERY_STATUS column:

+
    +
  • if stream’s battery_status field is 3, set BATTERY_STATUS = 5 (full status)
  • +
  • if stream’s battery_status field is 1, set BATTERY_STATUS = 3 (discharge)
  • +
+
+
+
+

Same as ANDROID

+
+
+
+
PHONE_BLUETOOTH
+

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPtimestamp
DEVICE_IDdevice_id
BT_ADDRESSbt_address
BT_NAMEbt_name
BT_RSSIbt_rssi
+

MUTATION

+
    +
  • COLUMN_MAPPINGS (None)
  • +
  • SCRIPTS (None)
  • +
+
+
+

Only old iOS versions supported this sensor (same mapping as Android).

+
+
+
+
PHONE_CALLS
+

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPtimestamp
DEVICE_IDdevice_id
CALL_TYPEcall_type
CALL_DURATIONcall_duration
TRACEtrace
+

MUTATION

+
    +
  • COLUMN_MAPPINGS (None)
  • +
  • SCRIPTS (None)
  • +
+
+
+

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPtimestamp
DEVICE_IDdevice_id
CALL_TYPEFLAG_TO_MUTATE
CALL_DURATIONcall_duration
TRACEtrace
+

MUTATION

+
    +
  • COLUMN_MAPPINGS
  • +
+ + + + + + + + + + + + + +
Script columnStream column
CALL_TYPEcall_type
+
    +
  • SCRIPTS
  • +
+
src/data/streams/mutations/phone/aware/calls_ios_unification.R
+
+
+

Note

+

We transform iOS call logs into Android’s format. iOS stores call status: 1=incoming, 2=connected, 3=dialing, 4=disconnected, as opposed to Android’s events: 1=incoming, 2=outgoing, 3=missed.

+

We follow this algorithm to convert iOS call data (there are some inaccuracies in the way we handle sequences, see new rules below):

+
    +
  • Search for the disconnected (4) status as it is common to all calls
  • +
  • Group all events that preceded every status 4
  • +
  • We convert every 1,2,4 (or 2,1,4) sequence to an incoming call
  • +
  • We convert every 3,2,4 (or 2,3,4) sequence to an outgoing call
  • +
  • We convert every 1,4 or 3,4 sequence to a missed call (either incoming or outgoing)
  • +
  • We set the duration of the call to be the sum of every status (dialing/ringing to hangup) as opposed to the duration of the last status (pick up to hang up)
  • +
+

Tested with an Android (OnePlus 7T) and an iPhone XR

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Call typeAndroid (duration)iOS (duration)New Rule
Outgoing missed ended by me2 (0)3,4 (0,X)3,4 is converted to 2 with duration 0
Outgoing missed ended by them2(0)3,2,4 (0,X,X2)3,2,4 is converted to 2 with duration X2*
Incoming missed ended by meNA**1,4 (0,X)1,4 is converted to 3 with duration 0
Incoming missed ended by them3(0)1,4 (0,X)1,4 is converted to 3 with duration 0
Outgoing answered2(X excluding dialing time)3,2,4 (0,X,X2)3,2,4 is converted to 2 with duration X2
Incoming answered1(X excluding dialing time)1,2,4 (0,X,X2)1,2,4 is converted to 1 with duration X2
+

.* There is no way to differentiate an outgoing missed call ended by them from an outgoing answered call because the phone goes directly to voice mail and it counts as call time (essentially the voice mail answered).

+

.** Android does not record incoming missed calls ended by the participant, just those ended by the person calling or ignored by the participant.

+
+
+
+
+
PHONE_CONVERSATION
+

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPtimestamp
DEVICE_IDdevice_id
DOUBLE_ENERGYdouble_energy
INFERENCEinference
DOUBLE_CONVO_STARTdouble_convo_start
DOUBLE_CONVO_ENDdouble_convo_end
+

MUTATION

+
    +
  • COLUMN_MAPPINGS (None)
  • +
  • SCRIPTS (None)
  • +
+
+
+

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPtimestamp
DEVICE_IDdevice_id
DOUBLE_ENERGYdouble_energy
INFERENCEinference
DOUBLE_CONVO_STARTFLAG_TO_MUTATE
DOUBLE_CONVO_ENDFLAG_TO_MUTATE
+

MUTATION

+
    +
  • COLUMN_MAPPINGS
  • +
+ + + + + + + + + + + + + + + + + +
Script columnStream column
DOUBLE_CONVO_STARTdouble_convo_start
DOUBLE_CONVO_ENDdouble_convo_end
+
    +
  • SCRIPTS
  • +
+
src/data/streams/mutations/phone/aware/conversation_ios_timestamp.R
+
+
+

Note

+

For RAPIDS columns of DOUBLE_CONVO_START and DOUBLE_CONVO_END:

+
    +
  • if stream’s double_convo_start field is smaller than 9999999999, it is in seconds instead of milliseconds. Set DOUBLE_CONVO_START = 1000 * double_convo_start.
  • +
  • if stream’s double_convo_end field is smaller than 9999999999, it is in seconds instead of milliseconds. Set DOUBLE_CONVO_END = 1000 * double_convo_end.
  • +
+
+
+
+
+
PHONE_KEYBOARD
+

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPtimestamp
DEVICE_IDdevice_id
PACKAGE_NAMEpackage_name
BEFORE_TEXTbefore_text
CURRENT_TEXTcurrent_text
IS_PASSWORDis_password
+

MUTATION

+
    +
  • COLUMN_MAPPINGS (None)
  • +
  • SCRIPTS (None)
  • +
+
+
+

This sensor is not supported by iOS devices.

+
+
+
+
PHONE_LIGHT
+

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPtimestamp
DEVICE_IDdevice_id
DOUBLE_LIGHT_LUXdouble_light_lux
ACCURACYaccuracy
+

MUTATION

+
    +
  • COLUMN_MAPPINGS (None)
  • +
  • SCRIPTS (None)
  • +
+
+
+

This sensor is not supported by iOS devices.

+
+
+
+
PHONE_LOCATIONS
+

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPtimestamp
DEVICE_IDdevice_id
DOUBLE_LATITUDEdouble_latitude
DOUBLE_LONGITUDEdouble_longitude
DOUBLE_BEARINGdouble_bearing
DOUBLE_SPEEDdouble_speed
DOUBLE_ALTITUDEdouble_altitude
PROVIDERprovider
ACCURACYaccuracy
+

MUTATION

+
    +
  • COLUMN_MAPPINGS (None)
  • +
  • SCRIPTS (None)
  • +
+
+
+

Same as ANDROID

+
+
+
+
PHONE_LOG
+

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPtimestamp
DEVICE_IDdevice_id
LOG_MESSAGElog_message
+

MUTATION

+
    +
  • COLUMN_MAPPINGS (None)
  • +
  • SCRIPTS (None)
  • +
+
+
+

Same as ANDROID

+
+
+
+
PHONE_MESSAGES
+

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPtimestamp
DEVICE_IDdevice_id
MESSAGE_TYPEmessage_type
TRACEtrace
+

MUTATION

+
    +
  • COLUMN_MAPPINGS (None)
  • +
  • SCRIPTS (None)
  • +
+
+
+

This sensor is not supported by iOS devices.

+
+
+
+
PHONE_SCREEN
+

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPtimestamp
DEVICE_IDdevice_id
SCREEN_STATUSscreen_status
+

MUTATION

+
    +
  • COLUMN_MAPPINGS (None)
  • +
  • SCRIPTS (None)
  • +
+
+
+

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPtimestamp
DEVICE_IDdevice_id
SCREEN_STATUSFLAG_TO_MUTATE
+

MUTATION

+
    +
  • COLUMN_MAPPINGS
  • +
+ + + + + + + + + + + + + +
Script columnStream column
SCREEN_STATUSscreen_status
+
    +
  • SCRIPTS
  • +
+
src/data/streams/mutations/phone/aware/screen_ios_unification.R
+
+
+

Note

+

For SCREEN_STATUS RAPIDS column:

+
    +
  • if stream’s screen_status field is 2 (lock episode), set SCREEN_STATUS = 0 (off episode).
  • +
+
+
+
+
+
PHONE_WIFI_CONNECTED
+

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPtimestamp
DEVICE_IDdevice_id
MAC_ADDRESSmac_address
SSIDssid
BSSIDbssid
+

MUTATION

+
    +
  • COLUMN_MAPPINGS (None)
  • +
  • SCRIPTS (None)
  • +
+
+
+

Same as ANDROID

+
+
+
+
PHONE_WIFI_VISIBLE
+

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPtimestamp
DEVICE_IDdevice_id
SSIDssid
BSSIDbssid
SECURITYsecurity
FREQUENCYfrequency
RSSIrssi
+

MUTATION

+
    +
  • COLUMN_MAPPINGS (None)
  • +
  • SCRIPTS (None)
  • +
+
+
+

Only old iOS versions supported this sensor (same mapping as Android).

+
+
+
+ + + + + + +

Comments

+ + + + + + +
+ +
+
+ +
+ + + + +
+
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/1.3/datastreams/aware-influxdb/index.html b/1.3/datastreams/aware-influxdb/index.html new file mode 100644 index 00000000..a663d398 --- /dev/null +++ b/1.3/datastreams/aware-influxdb/index.html @@ -0,0 +1,3112 @@ + + + + + + + + + + + + + + + + + + + + + + aware_influxdb (beta) - RAPIDS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + +
+
+
+ + +
+
+ + + + + + + + +

aware_influxdb (beta)

+
+

Warning

+

This data stream is being released in beta while we test it thoroughly.

+
+

This data stream handles iOS and Android sensor data collected with the AWARE Framework and stored in an InfluxDB database.

+

Container

+

An InfluxDB database with a table per sensor, each containing the data for all participants.

+

The script to connect and download data from this container is at: +

src/data/streams/aware_influxdb/container.R
+

+

Format

+

If you collected sensor data with the vanilla (original) AWARE mobile clients, you shouldn’t need to modify this format (described below).

+

Remember that a format maps and transforms columns in your raw data stream to the mandatory columns RAPIDS needs.

+

The yaml file that describes the format of this data stream is at: +

src/data/streams/aware_csv/format.yaml
+

+

For some sensors, we need to transform iOS data into Android format; you can refer to OS complex mapping for learn how this works.

+
+

Hint

+

The mappings in this stream (RAPIDS/Stream) are the same names because AWARE data was the first stream RAPIDS supported, meaning that it considers AWARE column names the default.

+
+
PHONE_ACCELEROMETER
+

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPtimestamp
DEVICE_IDdevice_id
DOUBLE_VALUES_0double_values_0
DOUBLE_VALUES_1double_values_1
DOUBLE_VALUES_2double_values_2
+

MUTATION

+
    +
  • COLUMN_MAPPINGS (None)
  • +
  • SCRIPTS (None)
  • +
+
+
+

Same as ANDROID

+
+
+
+
PHONE_ACTIVITY_RECOGNITION
+

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPtimestamp
DEVICE_IDdevice_id
ACTIVITY_NAMEactivity_name
ACTIVITY_TYPEactivity_type
CONFIDENCEconfidence
+

MUTATION

+
    +
  • COLUMN_MAPPINGS (None)
  • +
  • SCRIPTS (None)
  • +
+
+
+

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPtimestamp
DEVICE_IDdevice_id
ACTIVITY_NAMEFLAG_TO_MUTATE
ACTIVITY_TYPEFLAG_TO_MUTATE
CONFIDENCEFLAG_TO_MUTATE
+

MUTATION

+
    +
  • COLUMN_MAPPINGS
  • +
+ + + + + + + + + + + + + + + + + +
Script columnStream column
ACTIVITIESactivities
CONFIDENCEconfidence
+
    +
  • SCRIPTS
  • +
+
src/data/streams/mutations/phone/aware/activity_recogniton_ios_unification.R
+
+
+

Note

+

For RAPIDS columns of ACTIVITY_NAME and ACTIVITY_TYPE:

+
    +
  • if stream’s activities field is automotive, set ACTIVITY_NAME = in_vehicle and ACTIVITY_TYPE = 0
  • +
  • if stream’s activities field is cycling, set ACTIVITY_NAME = on_bicycle and ACTIVITY_TYPE = 1
  • +
  • if stream’s activities field is walking, set ACTIVITY_NAME = walking and ACTIVITY_TYPE = 7
  • +
  • if stream’s activities field is running, set ACTIVITY_NAME = running and ACTIVITY_TYPE = 8
  • +
  • if stream’s activities field is stationary, set ACTIVITY_NAME = still and ACTIVITY_TYPE = 3
  • +
  • if stream’s activities field is unknown, set ACTIVITY_NAME = unknown and ACTIVITY_TYPE = 4
  • +
+

For RAPIDS CONFIDENCE column:

+
    +
  • if stream’s confidence field is 0, set CONFIDENCE = 0
  • +
  • if stream’s confidence field is 1, set CONFIDENCE = 50
  • +
  • if stream’s confidence field is 2, set CONFIDENCE = 100
  • +
+
+
+
+
+
PHONE_APPLICATIONS_CRASHES
+

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPtimestamp
DEVICE_IDdevice_id
PACKAGE_NAMEpackage_name
APPLICATION_NAMEapplication_name
APPLICATION_VERSIONapplication_version
ERROR_SHORTerror_short
ERROR_LONGerror_long
ERROR_CONDITIONerror_condition
IS_SYSTEM_APPis_system_app
+

MUTATION

+
    +
  • COLUMN_MAPPINGS (None)
  • +
  • SCRIPTS (None)
  • +
+
+
+

This sensor is not supported by iOS devices.

+
+
+
+
PHONE_APPLICATIONS_FOREGROUND
+

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPtimestamp
DEVICE_IDdevice_id
PACKAGE_NAMEpackage_name
APPLICATION_NAMEapplication_name
IS_SYSTEM_APPis_system_app
+

MUTATION

+
    +
  • COLUMN_MAPPINGS (None)
  • +
  • SCRIPTS (None)
  • +
+
+
+

This sensor is not supported by iOS devices.

+
+
+
+
PHONE_APPLICATIONS_NOTIFICATIONS
+

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPtimestamp
DEVICE_IDdevice_id
PACKAGE_NAMEpackage_name
APPLICATION_NAMEapplication_name
TEXTtext
SOUNDsound
VIBRATEvibrate
DEFAULTSdefaults
FLAGSflags
+

MUTATION

+
    +
  • COLUMN_MAPPINGS (None)
  • +
  • SCRIPTS (None)
  • +
+
+
+

This sensor is not supported by iOS devices.

+
+
+
+
PHONE_BATTERY
+

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPtimestamp
DEVICE_IDdevice_id
BATTERY_STATUSbattery_status
BATTERY_LEVELbattery_level
BATTERY_SCALEbattery_scale
+

MUTATION

+
    +
  • COLUMN_MAPPINGS (None)
  • +
  • SCRIPTS (None)
  • +
+
+
+

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPtimestamp
DEVICE_IDdevice_id
BATTERY_STATUSFLAG_TO_MUTATE
BATTERY_LEVELbattery_level
BATTERY_SCALEbattery_scale
+

MUTATION

+
    +
  • COLUMN_MAPPINGS
  • +
+ + + + + + + + + + + + + +
Script columnStream column
BATTERY_STATUSbattery_status
+
    +
  • SCRIPTS
  • +
+
src/data/streams/mutations/phone/aware/battery_ios_unification.R
+
+
+

Note

+

For RAPIDS BATTERY_STATUS column:

+
    +
  • if stream’s battery_status field is 3, set BATTERY_STATUS = 5 (full status)
  • +
  • if stream’s battery_status field is 1, set BATTERY_STATUS = 3 (discharge)
  • +
+
+
+
+

Same as ANDROID

+
+
+
+
PHONE_BLUETOOTH
+

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPtimestamp
DEVICE_IDdevice_id
BT_ADDRESSbt_address
BT_NAMEbt_name
BT_RSSIbt_rssi
+

MUTATION

+
    +
  • COLUMN_MAPPINGS (None)
  • +
  • SCRIPTS (None)
  • +
+
+
+

Only old iOS versions supported this sensor (same mapping as Android).

+
+
+
+
PHONE_CALLS
+

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPtimestamp
DEVICE_IDdevice_id
CALL_TYPEcall_type
CALL_DURATIONcall_duration
TRACEtrace
+

MUTATION

+
    +
  • COLUMN_MAPPINGS (None)
  • +
  • SCRIPTS (None)
  • +
+
+
+

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPtimestamp
DEVICE_IDdevice_id
CALL_TYPEFLAG_TO_MUTATE
CALL_DURATIONcall_duration
TRACEtrace
+

MUTATION

+
    +
  • COLUMN_MAPPINGS
  • +
+ + + + + + + + + + + + + +
Script columnStream column
CALL_TYPEcall_type
+
    +
  • SCRIPTS
  • +
+
src/data/streams/mutations/phone/aware/calls_ios_unification.R
+
+
+

Note

+

We transform iOS call logs into Android’s format. iOS stores call status: 1=incoming, 2=connected, 3=dialing, 4=disconnected, as opposed to Android’s events: 1=incoming, 2=outgoing, 3=missed.

+

We follow this algorithm to convert iOS call data (there are some inaccuracies in the way we handle sequences, see new rules below):

+
    +
  • Search for the disconnected (4) status as it is common to all calls
  • +
  • Group all events that preceded every status 4
  • +
  • We convert every 1,2,4 (or 2,1,4) sequence to an incoming call
  • +
  • We convert every 3,2,4 (or 2,3,4) sequence to an outgoing call
  • +
  • We convert every 1,4 or 3,4 sequence to a missed call (either incoming or outgoing)
  • +
  • We set the duration of the call to be the sum of every status (dialing/ringing to hangup) as opposed to the duration of the last status (pick up to hang up)
  • +
+

Tested with an Android (OnePlus 7T) and an iPhone XR

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Call typeAndroid (duration)iOS (duration)New Rule
Outgoing missed ended by me2 (0)3,4 (0,X)3,4 is converted to 2 with duration 0
Outgoing missed ended by them2(0)3,2,4 (0,X,X2)3,2,4 is converted to 2 with duration X2*
Incoming missed ended by meNA**1,4 (0,X)1,4 is converted to 3 with duration 0
Incoming missed ended by them3(0)1,4 (0,X)1,4 is converted to 3 with duration 0
Outgoing answered2(X excluding dialing time)3,2,4 (0,X,X2)3,2,4 is converted to 2 with duration X2
Incoming answered1(X excluding dialing time)1,2,4 (0,X,X2)1,2,4 is converted to 1 with duration X2
+

.* There is no way to differentiate an outgoing missed call ended by them from an outgoing answered call because the phone goes directly to voice mail and it counts as call time (essentially the voice mail answered).

+

.** Android does not record incoming missed calls ended by the participant, just those ended by the person calling or ignored by the participant.

+
+
+
+
+
PHONE_CONVERSATION
+

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPtimestamp
DEVICE_IDdevice_id
DOUBLE_ENERGYdouble_energy
INFERENCEinference
DOUBLE_CONVO_STARTdouble_convo_start
DOUBLE_CONVO_ENDdouble_convo_end
+

MUTATION

+
    +
  • COLUMN_MAPPINGS (None)
  • +
  • SCRIPTS (None)
  • +
+
+
+

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPtimestamp
DEVICE_IDdevice_id
DOUBLE_ENERGYdouble_energy
INFERENCEinference
DOUBLE_CONVO_STARTFLAG_TO_MUTATE
DOUBLE_CONVO_ENDFLAG_TO_MUTATE
+

MUTATION

+
    +
  • COLUMN_MAPPINGS
  • +
+ + + + + + + + + + + + + + + + + +
Script columnStream column
DOUBLE_CONVO_STARTdouble_convo_start
DOUBLE_CONVO_ENDdouble_convo_end
+
    +
  • SCRIPTS
  • +
+
src/data/streams/mutations/phone/aware/conversation_ios_timestamp.R
+
+
+

Note

+

For RAPIDS columns of DOUBLE_CONVO_START and DOUBLE_CONVO_END:

+
    +
  • if stream’s double_convo_start field is smaller than 9999999999, it is in seconds instead of milliseconds. Set DOUBLE_CONVO_START = 1000 * double_convo_start.
  • +
  • if stream’s double_convo_end field is smaller than 9999999999, it is in seconds instead of milliseconds. Set DOUBLE_CONVO_END = 1000 * double_convo_end.
  • +
+
+
+
+
+
PHONE_KEYBOARD
+

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPtimestamp
DEVICE_IDdevice_id
PACKAGE_NAMEpackage_name
BEFORE_TEXTbefore_text
CURRENT_TEXTcurrent_text
IS_PASSWORDis_password
+

MUTATION

+
    +
  • COLUMN_MAPPINGS (None)
  • +
  • SCRIPTS (None)
  • +
+
+
+

This sensor is not supported by iOS devices.

+
+
+
+
PHONE_LIGHT
+

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPtimestamp
DEVICE_IDdevice_id
DOUBLE_LIGHT_LUXdouble_light_lux
ACCURACYaccuracy
+

MUTATION

+
    +
  • COLUMN_MAPPINGS (None)
  • +
  • SCRIPTS (None)
  • +
+
+
+

This sensor is not supported by iOS devices.

+
+
+
+
PHONE_LOCATIONS
+

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPtimestamp
DEVICE_IDdevice_id
DOUBLE_LATITUDEdouble_latitude
DOUBLE_LONGITUDEdouble_longitude
DOUBLE_BEARINGdouble_bearing
DOUBLE_SPEEDdouble_speed
DOUBLE_ALTITUDEdouble_altitude
PROVIDERprovider
ACCURACYaccuracy
+

MUTATION

+
    +
  • COLUMN_MAPPINGS (None)
  • +
  • SCRIPTS (None)
  • +
+
+
+

Same as ANDROID

+
+
+
+
PHONE_LOG
+

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPtimestamp
DEVICE_IDdevice_id
LOG_MESSAGElog_message
+

MUTATION

+
    +
  • COLUMN_MAPPINGS (None)
  • +
  • SCRIPTS (None)
  • +
+
+
+

Same as ANDROID

+
+
+
+
PHONE_MESSAGES
+

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPtimestamp
DEVICE_IDdevice_id
MESSAGE_TYPEmessage_type
TRACEtrace
+

MUTATION

+
    +
  • COLUMN_MAPPINGS (None)
  • +
  • SCRIPTS (None)
  • +
+
+
+

This sensor is not supported by iOS devices.

+
+
+
+
PHONE_SCREEN
+

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPtimestamp
DEVICE_IDdevice_id
SCREEN_STATUSscreen_status
+

MUTATION

+
    +
  • COLUMN_MAPPINGS (None)
  • +
  • SCRIPTS (None)
  • +
+
+
+

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPtimestamp
DEVICE_IDdevice_id
SCREEN_STATUSFLAG_TO_MUTATE
+

MUTATION

+
    +
  • COLUMN_MAPPINGS
  • +
+ + + + + + + + + + + + + +
Script columnStream column
SCREEN_STATUSscreen_status
+
    +
  • SCRIPTS
  • +
+
src/data/streams/mutations/phone/aware/screen_ios_unification.R
+
+
+

Note

+

For SCREEN_STATUS RAPIDS column:

+
    +
  • if stream’s screen_status field is 2 (lock episode), set SCREEN_STATUS = 0 (off episode).
  • +
+
+
+
+
+
PHONE_WIFI_CONNECTED
+

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPtimestamp
DEVICE_IDdevice_id
MAC_ADDRESSmac_address
SSIDssid
BSSIDbssid
+

MUTATION

+
    +
  • COLUMN_MAPPINGS (None)
  • +
  • SCRIPTS (None)
  • +
+
+
+

Same as ANDROID

+
+
+
+
PHONE_WIFI_VISIBLE
+

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPtimestamp
DEVICE_IDdevice_id
SSIDssid
BSSIDbssid
SECURITYsecurity
FREQUENCYfrequency
RSSIrssi
+

MUTATION

+
    +
  • COLUMN_MAPPINGS (None)
  • +
  • SCRIPTS (None)
  • +
+
+
+

Only old iOS versions supported this sensor (same mapping as Android).

+
+
+
+ + + + + + +

Comments

+ + + + + + +
+ +
+
+ +
+ + + + +
+
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/1.3/datastreams/aware-mysql/index.html b/1.3/datastreams/aware-mysql/index.html new file mode 100644 index 00000000..29e1ef6a --- /dev/null +++ b/1.3/datastreams/aware-mysql/index.html @@ -0,0 +1,3108 @@ + + + + + + + + + + + + + + + + + + + + + + aware_mysql - RAPIDS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + +
+
+
+ + +
+
+ + + + + + + + +

aware_mysql

+

This data stream handles iOS and Android sensor data collected with the AWARE Framework and stored in a MySQL database.

+

Container

+

A MySQL database with a table per sensor, each containing the data for all participants. This is the default database created by the old PHP AWARE server (as opposed to the new JavaScript Micro server).

+

The script to connect and download data from this container is at: +

src/data/streams/aware_mysql/container.R
+

+

Format

+

If you collected sensor data with the vanilla (original) AWARE mobile clients, you shouldn’t need to modify this format (described below).

+

Remember that a format maps and transforms columns in your raw data stream to the mandatory columns RAPIDS needs.

+

The yaml file that describes the format of this data stream is at: +

src/data/streams/aware_csv/format.yaml
+

+

For some sensors, we need to transform iOS data into Android format; you can refer to OS complex mapping for learn how this works.

+
+

Hint

+

The mappings in this stream (RAPIDS/Stream) are the same names because AWARE data was the first stream RAPIDS supported, meaning that it considers AWARE column names the default.

+
+
PHONE_ACCELEROMETER
+

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPtimestamp
DEVICE_IDdevice_id
DOUBLE_VALUES_0double_values_0
DOUBLE_VALUES_1double_values_1
DOUBLE_VALUES_2double_values_2
+

MUTATION

+
    +
  • COLUMN_MAPPINGS (None)
  • +
  • SCRIPTS (None)
  • +
+
+
+

Same as ANDROID

+
+
+
+
PHONE_ACTIVITY_RECOGNITION
+

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPtimestamp
DEVICE_IDdevice_id
ACTIVITY_NAMEactivity_name
ACTIVITY_TYPEactivity_type
CONFIDENCEconfidence
+

MUTATION

+
    +
  • COLUMN_MAPPINGS (None)
  • +
  • SCRIPTS (None)
  • +
+
+
+

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPtimestamp
DEVICE_IDdevice_id
ACTIVITY_NAMEFLAG_TO_MUTATE
ACTIVITY_TYPEFLAG_TO_MUTATE
CONFIDENCEFLAG_TO_MUTATE
+

MUTATION

+
    +
  • COLUMN_MAPPINGS
  • +
+ + + + + + + + + + + + + + + + + +
Script columnStream column
ACTIVITIESactivities
CONFIDENCEconfidence
+
    +
  • SCRIPTS
  • +
+
src/data/streams/mutations/phone/aware/activity_recogniton_ios_unification.R
+
+
+

Note

+

For RAPIDS columns of ACTIVITY_NAME and ACTIVITY_TYPE:

+
    +
  • if stream’s activities field is automotive, set ACTIVITY_NAME = in_vehicle and ACTIVITY_TYPE = 0
  • +
  • if stream’s activities field is cycling, set ACTIVITY_NAME = on_bicycle and ACTIVITY_TYPE = 1
  • +
  • if stream’s activities field is walking, set ACTIVITY_NAME = walking and ACTIVITY_TYPE = 7
  • +
  • if stream’s activities field is running, set ACTIVITY_NAME = running and ACTIVITY_TYPE = 8
  • +
  • if stream’s activities field is stationary, set ACTIVITY_NAME = still and ACTIVITY_TYPE = 3
  • +
  • if stream’s activities field is unknown, set ACTIVITY_NAME = unknown and ACTIVITY_TYPE = 4
  • +
+

For RAPIDS CONFIDENCE column:

+
    +
  • if stream’s confidence field is 0, set CONFIDENCE = 0
  • +
  • if stream’s confidence field is 1, set CONFIDENCE = 50
  • +
  • if stream’s confidence field is 2, set CONFIDENCE = 100
  • +
+
+
+
+
+
PHONE_APPLICATIONS_CRASHES
+

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPtimestamp
DEVICE_IDdevice_id
PACKAGE_NAMEpackage_name
APPLICATION_NAMEapplication_name
APPLICATION_VERSIONapplication_version
ERROR_SHORTerror_short
ERROR_LONGerror_long
ERROR_CONDITIONerror_condition
IS_SYSTEM_APPis_system_app
+

MUTATION

+
    +
  • COLUMN_MAPPINGS (None)
  • +
  • SCRIPTS (None)
  • +
+
+
+

This sensor is not supported by iOS devices.

+
+
+
+
PHONE_APPLICATIONS_FOREGROUND
+

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPtimestamp
DEVICE_IDdevice_id
PACKAGE_NAMEpackage_name
APPLICATION_NAMEapplication_name
IS_SYSTEM_APPis_system_app
+

MUTATION

+
    +
  • COLUMN_MAPPINGS (None)
  • +
  • SCRIPTS (None)
  • +
+
+
+

This sensor is not supported by iOS devices.

+
+
+
+
PHONE_APPLICATIONS_NOTIFICATIONS
+

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPtimestamp
DEVICE_IDdevice_id
PACKAGE_NAMEpackage_name
APPLICATION_NAMEapplication_name
TEXTtext
SOUNDsound
VIBRATEvibrate
DEFAULTSdefaults
FLAGSflags
+

MUTATION

+
    +
  • COLUMN_MAPPINGS (None)
  • +
  • SCRIPTS (None)
  • +
+
+
+

This sensor is not supported by iOS devices.

+
+
+
+
PHONE_BATTERY
+

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPtimestamp
DEVICE_IDdevice_id
BATTERY_STATUSbattery_status
BATTERY_LEVELbattery_level
BATTERY_SCALEbattery_scale
+

MUTATION

+
    +
  • COLUMN_MAPPINGS (None)
  • +
  • SCRIPTS (None)
  • +
+
+
+

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPtimestamp
DEVICE_IDdevice_id
BATTERY_STATUSFLAG_TO_MUTATE
BATTERY_LEVELbattery_level
BATTERY_SCALEbattery_scale
+

MUTATION

+
    +
  • COLUMN_MAPPINGS
  • +
+ + + + + + + + + + + + + +
Script columnStream column
BATTERY_STATUSbattery_status
+
    +
  • SCRIPTS
  • +
+
src/data/streams/mutations/phone/aware/battery_ios_unification.R
+
+
+

Note

+

For RAPIDS BATTERY_STATUS column:

+
    +
  • if stream’s battery_status field is 3, set BATTERY_STATUS = 5 (full status)
  • +
  • if stream’s battery_status field is 1, set BATTERY_STATUS = 3 (discharge)
  • +
+
+
+
+

Same as ANDROID

+
+
+
+
PHONE_BLUETOOTH
+

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPtimestamp
DEVICE_IDdevice_id
BT_ADDRESSbt_address
BT_NAMEbt_name
BT_RSSIbt_rssi
+

MUTATION

+
    +
  • COLUMN_MAPPINGS (None)
  • +
  • SCRIPTS (None)
  • +
+
+
+

Only old iOS versions supported this sensor (same mapping as Android).

+
+
+
+
PHONE_CALLS
+

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPtimestamp
DEVICE_IDdevice_id
CALL_TYPEcall_type
CALL_DURATIONcall_duration
TRACEtrace
+

MUTATION

+
    +
  • COLUMN_MAPPINGS (None)
  • +
  • SCRIPTS (None)
  • +
+
+
+

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPtimestamp
DEVICE_IDdevice_id
CALL_TYPEFLAG_TO_MUTATE
CALL_DURATIONcall_duration
TRACEtrace
+

MUTATION

+
    +
  • COLUMN_MAPPINGS
  • +
+ + + + + + + + + + + + + +
Script columnStream column
CALL_TYPEcall_type
+
    +
  • SCRIPTS
  • +
+
src/data/streams/mutations/phone/aware/calls_ios_unification.R
+
+
+

Note

+

We transform iOS call logs into Android’s format. iOS stores call status: 1=incoming, 2=connected, 3=dialing, 4=disconnected, as opposed to Android’s events: 1=incoming, 2=outgoing, 3=missed.

+

We follow this algorithm to convert iOS call data (there are some inaccuracies in the way we handle sequences, see new rules below):

+
    +
  • Search for the disconnected (4) status as it is common to all calls
  • +
  • Group all events that preceded every status 4
  • +
  • We convert every 1,2,4 (or 2,1,4) sequence to an incoming call
  • +
  • We convert every 3,2,4 (or 2,3,4) sequence to an outgoing call
  • +
  • We convert every 1,4 or 3,4 sequence to a missed call (either incoming or outgoing)
  • +
  • We set the duration of the call to be the sum of every status (dialing/ringing to hangup) as opposed to the duration of the last status (pick up to hang up)
  • +
+

Tested with an Android (OnePlus 7T) and an iPhone XR

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Call typeAndroid (duration)iOS (duration)New Rule
Outgoing missed ended by me2 (0)3,4 (0,X)3,4 is converted to 2 with duration 0
Outgoing missed ended by them2(0)3,2,4 (0,X,X2)3,2,4 is converted to 2 with duration X2*
Incoming missed ended by meNA**1,4 (0,X)1,4 is converted to 3 with duration 0
Incoming missed ended by them3(0)1,4 (0,X)1,4 is converted to 3 with duration 0
Outgoing answered2(X excluding dialing time)3,2,4 (0,X,X2)3,2,4 is converted to 2 with duration X2
Incoming answered1(X excluding dialing time)1,2,4 (0,X,X2)1,2,4 is converted to 1 with duration X2
+

.* There is no way to differentiate an outgoing missed call ended by them from an outgoing answered call because the phone goes directly to voice mail and it counts as call time (essentially the voice mail answered).

+

.** Android does not record incoming missed calls ended by the participant, just those ended by the person calling or ignored by the participant.

+
+
+
+
+
PHONE_CONVERSATION
+

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPtimestamp
DEVICE_IDdevice_id
DOUBLE_ENERGYdouble_energy
INFERENCEinference
DOUBLE_CONVO_STARTdouble_convo_start
DOUBLE_CONVO_ENDdouble_convo_end
+

MUTATION

+
    +
  • COLUMN_MAPPINGS (None)
  • +
  • SCRIPTS (None)
  • +
+
+
+

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPtimestamp
DEVICE_IDdevice_id
DOUBLE_ENERGYdouble_energy
INFERENCEinference
DOUBLE_CONVO_STARTFLAG_TO_MUTATE
DOUBLE_CONVO_ENDFLAG_TO_MUTATE
+

MUTATION

+
    +
  • COLUMN_MAPPINGS
  • +
+ + + + + + + + + + + + + + + + + +
Script columnStream column
DOUBLE_CONVO_STARTdouble_convo_start
DOUBLE_CONVO_ENDdouble_convo_end
+
    +
  • SCRIPTS
  • +
+
src/data/streams/mutations/phone/aware/conversation_ios_timestamp.R
+
+
+

Note

+

For RAPIDS columns of DOUBLE_CONVO_START and DOUBLE_CONVO_END:

+
    +
  • if stream’s double_convo_start field is smaller than 9999999999, it is in seconds instead of milliseconds. Set DOUBLE_CONVO_START = 1000 * double_convo_start.
  • +
  • if stream’s double_convo_end field is smaller than 9999999999, it is in seconds instead of milliseconds. Set DOUBLE_CONVO_END = 1000 * double_convo_end.
  • +
+
+
+
+
+
PHONE_KEYBOARD
+

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPtimestamp
DEVICE_IDdevice_id
PACKAGE_NAMEpackage_name
BEFORE_TEXTbefore_text
CURRENT_TEXTcurrent_text
IS_PASSWORDis_password
+

MUTATION

+
    +
  • COLUMN_MAPPINGS (None)
  • +
  • SCRIPTS (None)
  • +
+
+
+

This sensor is not supported by iOS devices.

+
+
+
+
PHONE_LIGHT
+

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPtimestamp
DEVICE_IDdevice_id
DOUBLE_LIGHT_LUXdouble_light_lux
ACCURACYaccuracy
+

MUTATION

+
    +
  • COLUMN_MAPPINGS (None)
  • +
  • SCRIPTS (None)
  • +
+
+
+

This sensor is not supported by iOS devices.

+
+
+
+
PHONE_LOCATIONS
+

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPtimestamp
DEVICE_IDdevice_id
DOUBLE_LATITUDEdouble_latitude
DOUBLE_LONGITUDEdouble_longitude
DOUBLE_BEARINGdouble_bearing
DOUBLE_SPEEDdouble_speed
DOUBLE_ALTITUDEdouble_altitude
PROVIDERprovider
ACCURACYaccuracy
+

MUTATION

+
    +
  • COLUMN_MAPPINGS (None)
  • +
  • SCRIPTS (None)
  • +
+
+
+

Same as ANDROID

+
+
+
+
PHONE_LOG
+

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPtimestamp
DEVICE_IDdevice_id
LOG_MESSAGElog_message
+

MUTATION

+
    +
  • COLUMN_MAPPINGS (None)
  • +
  • SCRIPTS (None)
  • +
+
+
+

Same as ANDROID

+
+
+
+
PHONE_MESSAGES
+

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPtimestamp
DEVICE_IDdevice_id
MESSAGE_TYPEmessage_type
TRACEtrace
+

MUTATION

+
    +
  • COLUMN_MAPPINGS (None)
  • +
  • SCRIPTS (None)
  • +
+
+
+

This sensor is not supported by iOS devices.

+
+
+
+
PHONE_SCREEN
+

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPtimestamp
DEVICE_IDdevice_id
SCREEN_STATUSscreen_status
+

MUTATION

+
    +
  • COLUMN_MAPPINGS (None)
  • +
  • SCRIPTS (None)
  • +
+
+
+

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPtimestamp
DEVICE_IDdevice_id
SCREEN_STATUSFLAG_TO_MUTATE
+

MUTATION

+
    +
  • COLUMN_MAPPINGS
  • +
+ + + + + + + + + + + + + +
Script columnStream column
SCREEN_STATUSscreen_status
+
    +
  • SCRIPTS
  • +
+
src/data/streams/mutations/phone/aware/screen_ios_unification.R
+
+
+

Note

+

For SCREEN_STATUS RAPIDS column:

+
    +
  • if stream’s screen_status field is 2 (lock episode), set SCREEN_STATUS = 0 (off episode).
  • +
+
+
+
+
+
PHONE_WIFI_CONNECTED
+

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPtimestamp
DEVICE_IDdevice_id
MAC_ADDRESSmac_address
SSIDssid
BSSIDbssid
+

MUTATION

+
    +
  • COLUMN_MAPPINGS (None)
  • +
  • SCRIPTS (None)
  • +
+
+
+

Same as ANDROID

+
+
+
+
PHONE_WIFI_VISIBLE
+

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPtimestamp
DEVICE_IDdevice_id
SSIDssid
BSSIDbssid
SECURITYsecurity
FREQUENCYfrequency
RSSIrssi
+

MUTATION

+
    +
  • COLUMN_MAPPINGS (None)
  • +
  • SCRIPTS (None)
  • +
+
+
+

Only old iOS versions supported this sensor (same mapping as Android).

+
+
+
+ + + + + + +

Comments

+ + + + + + +
+ +
+
+ +
+ + + + +
+
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/1.3/datastreams/data-streams-introduction/index.html b/1.3/datastreams/data-streams-introduction/index.html new file mode 100644 index 00000000..55f639cd --- /dev/null +++ b/1.3/datastreams/data-streams-introduction/index.html @@ -0,0 +1,1960 @@ + + + + + + + + + + + + + + + + + + + + + + Introduction - RAPIDS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + +
+
+
+ + +
+
+ + + + + + + + +

Data Streams Introduction

+

A data stream is a set of sensor data collected using a specific type of device with a specific format and stored in a specific container.

+

For example, the aware_mysql data stream handles smartphone data (device) collected with the AWARE Framework (format) stored in a MySQL database (container). Similarly, smartphone data collected with Beiwe will have a different format and could be stored in a container like a PostgreSQL database or a CSV file.

+

If you want to process a data stream using RAPIDS, make sure that your data is stored in a supported format and container (see table below).

+

If RAPIDS doesn’t support your data stream yet (e.g. Beiwe data stored in PostgreSQL, or AWARE data stored in SQLite), you can always implement a new data stream. If it’s something you think other people might be interested on, we will be happy to include your new data stream in RAPIDS, so get in touch!.

+
+

Hint

+

Currently, you can add new data streams for smartphones, Fitbit, and Empatica devices. If you need RAPIDS to process data from other devices, like Oura Rings or Actigraph wearables, get in touch. It is a more complicated process that could take a couple of days to implement for someone familiar with R or Python, but we would be happy to work on it together.

+
+

For reference, these are the data streams we currently support:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Data StreamDeviceFormatContainerDocs
aware_mysqlPhoneAWARE appMySQLlink
aware_csvPhoneAWARE appCSV fileslink
aware_influxdb (beta)PhoneAWARE appInfluxDBlink
fitbitjson_mysqlFitbitJSON (per Fitbit’s API)MySQLlink
fitbitjson_csvFitbitJSON (per Fitbit’s API)CSV fileslink
fitbitparsed_mysqlFitbitParsed (parsed API data)MySQLlink
fitbitparsed_csvFitbitParsed (parsed API data)CSV fileslink
empatica_zipEmpaticaE4 ConnectZIP fileslink
+ + + + + + +

Comments

+ + + + + + +
+ +
+
+ +
+ + + + +
+
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/1.3/datastreams/empatica-zip/index.html b/1.3/datastreams/empatica-zip/index.html new file mode 100644 index 00000000..23ef997b --- /dev/null +++ b/1.3/datastreams/empatica-zip/index.html @@ -0,0 +1,2165 @@ + + + + + + + + + + + + + + + + + + + + + + empatica_zip - RAPIDS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + +
+
+
+ + +
+
+ + + + + + + + +

empatica_zip

+

This data stream handles Empatica sensor data downloaded as zip files using the E4 Connect.

+

Container

+

You need to create a subfolder for every participant named after their device id inside the folder specified by [EMPATICA_DATA_STREAMS][empatica_zipfiles][FOLDER]. You can add one or more Empatica zip files to any subfolder.

+

The script to connect and download data from this container is at: +

src/data/streams/empatica_zip/container.R
+

+

Format

+

The format.yaml maps and transforms columns in your raw data stream to the mandatory columns RAPIDS needs for Empatica sensors. This file is at:

+
src/data/streams/empatica_zip/format.yaml
+
+

All columns are mutated from the raw data in the zip files so you don’t need to modify any column mappings.

+
EMPATICA_ACCELEROMETER

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPtimestamp
DEVICE_IDdevice_id
DOUBLE_VALUES_0double_values_0
DOUBLE_VALUES_1double_values_1
DOUBLE_VALUES_2double_values_2
+

MUTATION

+
    +
  • COLUMN_MAPPINGS (None)
  • +
  • SCRIPTS (None)
  • +
+
+
EMPATICA_HEARTRATE

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPtimestamp
DEVICE_IDdevice_id
HEARTRATEheartrate
+

MUTATION

+
    +
  • COLUMN_MAPPINGS (None)
  • +
  • SCRIPTS (None)
  • +
+
+
EMPATICA_TEMPERATURE

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPtimestamp
DEVICE_IDdevice_id
TEMPERATUREtemperature
+

MUTATION

+
    +
  • COLUMN_MAPPINGS (None)
  • +
  • SCRIPTS (None)
  • +
+
+
EMPATICA_ELECTRODERMAL_ACTIVITY

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPtimestamp
DEVICE_IDdevice_id
ELECTRODERMAL_ACTIVITYelectrodermal_activity
+

MUTATION

+
    +
  • COLUMN_MAPPINGS (None)
  • +
  • SCRIPTS (None)
  • +
+
+
EMPATICA_BLOOD_VOLUME_PULSE

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPtimestamp
DEVICE_IDdevice_id
BLOOD_VOLUME_PULSEblood_volume_pulse
+

MUTATION

+
    +
  • COLUMN_MAPPINGS (None)
  • +
  • SCRIPTS (None)
  • +
+
+
EMPATICA_INTER_BEAT_INTERVAL

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPtimestamp
DEVICE_IDdevice_id
INTER_BEAT_INTERVALinter_beat_interval
+

MUTATION

+
    +
  • COLUMN_MAPPINGS (None)
  • +
  • SCRIPTS (None)
  • +
+
+
EMPATICA_EMPATICA_TAGS

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPtimestamp
DEVICE_IDdevice_id
TAGStags
+

MUTATION

+
    +
  • COLUMN_MAPPINGS (None)
  • +
  • SCRIPTS (None)
  • +
+
+ + + + + + +

Comments

+ + + + + + +
+ +
+
+ +
+ + + + +
+
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/1.3/datastreams/fitbitjson-csv/index.html b/1.3/datastreams/fitbitjson-csv/index.html new file mode 100644 index 00000000..84642ed3 --- /dev/null +++ b/1.3/datastreams/fitbitjson-csv/index.html @@ -0,0 +1,2515 @@ + + + + + + + + + + + + + + + + + + + + + + fitbitjson_csv - RAPIDS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + +
+
+
+ + +
+
+ + + + + + + + +

fitbitjson_csv

+

This data stream handles Fitbit sensor data downloaded using the Fitbit Web API and stored in a CSV file. Please note that RAPIDS cannot query the API directly; you need to use other available tools or implement your own. Once you have your sensor data in a CSV file, RAPIDS can process it.

+
+

Warning

+

The CSV files have to use , as separator, \ as escape character (do not escape " with ""), and wrap any string columns with ".

+
Example of a valid CSV file
"timestamp","device_id","label","fitbit_id","fitbit_data_type","fitbit_data"
+1587614400000,"a748ee1a-1d0b-4ae9-9074-279a2b6ba524","5S","5ZKN9B","steps","{\"activities-steps\":[{\"dateTime\":\"2020-04-23\",\"value\":\"7881\"}]"
+
+
+
+

Container

+

The container should be a CSV file per Fitbit sensor, each containing all participants’ data.

+

The script to connect and download data from this container is at: +

src/data/streams/fitbitjson_csv/container.R
+

+

Format

+

The format.yaml maps and transforms columns in your raw data stream to the mandatory columns RAPIDS needs for Fitbit sensors. This file is at:

+
src/data/streams/fitbitjson_csv/format.yaml
+
+

If you want RAPIDS to process Fitbit sensor data using this stream, you will need to map DEVICE_ID and JSON_FITBIT_COLUMN to your own raw data columns inside each sensor section in format.yaml.

+
FITBIT_HEARTRATE_SUMMARY

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
LOCAL_DATE_TIMEFLAG_TO_MUTATE
DEVICE_IDdevice_id
HEARTRATE_DAILY_RESTINGHRFLAG_TO_MUTATE
HEARTRATE_DAILY_CALORIESOUTOFRANGEFLAG_TO_MUTATE
HEARTRATE_DAILY_CALORIESFATBURNFLAG_TO_MUTATE
HEARTRATE_DAILY_CALORIESCARDIOFLAG_TO_MUTATE
HEARTRATE_DAILY_CALORIESPEAKFLAG_TO_MUTATE
+

MUTATION

+
    +
  • +

    COLUMN_MAPPINGS

    + + + + + + + + + + + + + +
    Script columnStream column
    JSON_FITBIT_COLUMNfitbit_data
    +
  • +
  • +

    SCRIPTS

    +
    - src/data/streams/mutations/fitbit/parse_heartrate_summary_json.py
    +- src/data/streams/mutations/fitbit/add_zero_timestamp.py
    +
    +
    +

    Note

    +

    All columns except DEVICE_ID are parsed from JSON_FITBIT_COLUMN. JSON_FITBIT_COLUMN is a string column containing the JSON objects returned by Fitbit’s API. See an example of the raw data RAPIDS expects for this data stream:

    +
    Example of the raw data RAPIDS expects for this data stream + + + + + + + + + + + + + + + + + + + + +
    device_idfitbit_data
    a748ee1a-1d0b-4ae9-9074-279a2b6ba524{“activities-heart”:[{“dateTime”:”2020-10-07”,”value”:{“customHeartRateZones”:[],”heartRateZones”:[{“caloriesOut”:1200.6102,”max”:88,”min”:31,”minutes”:1058,”name”:”Out of Range”},{“caloriesOut”:760.3020,”max”:120,”min”:86,”minutes”:366,”name”:”Fat Burn”},{“caloriesOut”:15.2048,”max”:146,”min”:120,”minutes”:2,”name”:”Cardio”},{“caloriesOut”:0,”max”:221,”min”:148,”minutes”:0,”name”:”Peak”}],”restingHeartRate”:72}}],”activities-heart-intraday”:{“dataset”:[{“time”:”00:00:00”,”value”:68},{“time”:”00:01:00”,”value”:67},{“time”:”00:02:00”,”value”:67},…],”datasetInterval”:1,”datasetType”:”minute”}}
    a748ee1a-1d0b-4ae9-9074-279a2b6ba524{“activities-heart”:[{“dateTime”:”2020-10-08”,”value”:{“customHeartRateZones”:[],”heartRateZones”:[{“caloriesOut”:1100.1120,”max”:89,”min”:30,”minutes”:921,”name”:”Out of Range”},{“caloriesOut”:660.0012,”max”:118,”min”:82,”minutes”:361,”name”:”Fat Burn”},{“caloriesOut”:23.7088,”max”:142,”min”:108,”minutes”:3,”name”:”Cardio”},{“caloriesOut”:0,”max”:221,”min”:148,”minutes”:0,”name”:”Peak”}],”restingHeartRate”:70}}],”activities-heart-intraday”:{“dataset”:[{“time”:”00:00:00”,”value”:77},{“time”:”00:01:00”,”value”:75},{“time”:”00:02:00”,”value”:73},…],”datasetInterval”:1,”datasetType”:”minute”}}
    a748ee1a-1d0b-4ae9-9074-279a2b6ba524{“activities-heart”:[{“dateTime”:”2020-10-09”,”value”:{“customHeartRateZones”:[],”heartRateZones”:[{“caloriesOut”:750.3615,”max”:77,”min”:30,”minutes”:851,”name”:”Out of Range”},{“caloriesOut”:734.1516,”max”:107,”min”:77,”minutes”:550,”name”:”Fat Burn”},{“caloriesOut”:131.8579,”max”:130,”min”:107,”minutes”:29,”name”:”Cardio”},{“caloriesOut”:0,”max”:220,”min”:130,”minutes”:0,”name”:”Peak”}],”restingHeartRate”:69}}],”activities-heart-intraday”:{“dataset”:[{“time”:”00:00:00”,”value”:90},{“time”:”00:01:00”,”value”:89},{“time”:”00:02:00”,”value”:88},…],”datasetInterval”:1,”datasetType”:”minute”}}
    +
    +
    +
  • +
+
+
FITBIT_HEARTRATE_INTRADAY

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
LOCAL_DATE_TIMEFLAG_TO_MUTATE
DEVICE_IDdevice_id
HEARTRATEFLAG_TO_MUTATE
HEARTRATE_ZONEFLAG_TO_MUTATE
+

MUTATION

+
    +
  • +

    COLUMN_MAPPINGS

    + + + + + + + + + + + + + +
    Script columnStream column
    JSON_FITBIT_COLUMNfitbit_data
    +
  • +
  • +

    SCRIPTS

    +
    - src/data/streams/mutations/fitbit/parse_heartrate_intraday_json.py
    +- src/data/streams/mutations/fitbit/add_zero_timestamp.py
    +
    +
    +

    Note

    +

    All columns except DEVICE_ID are parsed from JSON_FITBIT_COLUMN. JSON_FITBIT_COLUMN is a string column containing the JSON objects returned by Fitbit’s API. See an example of the raw data RAPIDS expects for this data stream:

    +
    Example of the raw data RAPIDS expects for this data stream + + + + + + + + + + + + + + + + + + + + +
    device_idfitbit_data
    a748ee1a-1d0b-4ae9-9074-279a2b6ba524{“activities-heart”:[{“dateTime”:”2020-10-07”,”value”:{“customHeartRateZones”:[],”heartRateZones”:[{“caloriesOut”:1200.6102,”max”:88,”min”:31,”minutes”:1058,”name”:”Out of Range”},{“caloriesOut”:760.3020,”max”:120,”min”:86,”minutes”:366,”name”:”Fat Burn”},{“caloriesOut”:15.2048,”max”:146,”min”:120,”minutes”:2,”name”:”Cardio”},{“caloriesOut”:0,”max”:221,”min”:148,”minutes”:0,”name”:”Peak”}],”restingHeartRate”:72}}],”activities-heart-intraday”:{“dataset”:[{“time”:”00:00:00”,”value”:68},{“time”:”00:01:00”,”value”:67},{“time”:”00:02:00”,”value”:67},…],”datasetInterval”:1,”datasetType”:”minute”}}
    a748ee1a-1d0b-4ae9-9074-279a2b6ba524{“activities-heart”:[{“dateTime”:”2020-10-08”,”value”:{“customHeartRateZones”:[],”heartRateZones”:[{“caloriesOut”:1100.1120,”max”:89,”min”:30,”minutes”:921,”name”:”Out of Range”},{“caloriesOut”:660.0012,”max”:118,”min”:82,”minutes”:361,”name”:”Fat Burn”},{“caloriesOut”:23.7088,”max”:142,”min”:108,”minutes”:3,”name”:”Cardio”},{“caloriesOut”:0,”max”:221,”min”:148,”minutes”:0,”name”:”Peak”}],”restingHeartRate”:70}}],”activities-heart-intraday”:{“dataset”:[{“time”:”00:00:00”,”value”:77},{“time”:”00:01:00”,”value”:75},{“time”:”00:02:00”,”value”:73},…],”datasetInterval”:1,”datasetType”:”minute”}}
    a748ee1a-1d0b-4ae9-9074-279a2b6ba524{“activities-heart”:[{“dateTime”:”2020-10-09”,”value”:{“customHeartRateZones”:[],”heartRateZones”:[{“caloriesOut”:750.3615,”max”:77,”min”:30,”minutes”:851,”name”:”Out of Range”},{“caloriesOut”:734.1516,”max”:107,”min”:77,”minutes”:550,”name”:”Fat Burn”},{“caloriesOut”:131.8579,”max”:130,”min”:107,”minutes”:29,”name”:”Cardio”},{“caloriesOut”:0,”max”:220,”min”:130,”minutes”:0,”name”:”Peak”}],”restingHeartRate”:69}}],”activities-heart-intraday”:{“dataset”:[{“time”:”00:00:00”,”value”:90},{“time”:”00:01:00”,”value”:89},{“time”:”00:02:00”,”value”:88},…],”datasetInterval”:1,”datasetType”:”minute”}}
    +
    +
    +
  • +
+
+
FITBIT_SLEEP_SUMMARY

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPFLAG_TO_MUTATE
LOCAL_DATE_TIMEFLAG_TO_MUTATE
LOCAL_START_DATE_TIMEFLAG_TO_MUTATE
LOCAL_END_DATE_TIMEFLAG_TO_MUTATE
DEVICE_IDdevice_id
EFFICIENCYFLAG_TO_MUTATE
MINUTES_AFTER_WAKEUPFLAG_TO_MUTATE
MINUTES_ASLEEPFLAG_TO_MUTATE
MINUTES_AWAKEFLAG_TO_MUTATE
MINUTES_TO_FALL_ASLEEPFLAG_TO_MUTATE
MINUTES_IN_BEDFLAG_TO_MUTATE
IS_MAIN_SLEEPFLAG_TO_MUTATE
TYPEFLAG_TO_MUTATE
+

MUTATION

+
    +
  • +

    COLUMN_MAPPINGS

    + + + + + + + + + + + + + +
    Script columnStream column
    JSON_FITBIT_COLUMNfitbit_data
    +
  • +
  • +

    SCRIPTS

    +
    - src/data/streams/mutations/fitbit/parse_sleep_summary_json.py
    +- src/data/streams/mutations/fitbit/add_local_date_time.py
    +- src/data/streams/mutations/fitbit/add_zero_timestamp.py
    +
    +
    +

    Note

    +

    Fitbit API has two versions for sleep data, v1 and v1.2. We support both but ignore v1’s count_awake, duration_awake, and count_awakenings, count_restless, duration_restless columns.

    +

    All columns except DEVICE_ID are parsed from JSON_FITBIT_COLUMN. JSON_FITBIT_COLUMN is a string column containing the JSON objects returned by Fitbit’s API. See an example of the raw data RAPIDS expects for this data stream:

    +
    Example of the expected raw data + + + + + + + + + + + + + + + + + + + + +
    device_idfitbit_data
    a748ee1a-1d0b-4ae9-9074-279a2b6ba524{“sleep”:[{“dateOfSleep”:”2020-10-10”,”duration”:3600000,”efficiency”:92,”endTime”:”2020-10-10T16:37:00.000”,”infoCode”:2,”isMainSleep”:false,”levels”:{“data”:[{“dateTime”:”2020-10-10T15:36:30.000”,”level”:”restless”,”seconds”:60},{“dateTime”:”2020-10-10T15:37:30.000”,”level”:”asleep”,”seconds”:660},{“dateTime”:”2020-10-10T15:48:30.000”,”level”:”restless”,”seconds”:60},…], “summary”:{“asleep”:{“count”:0,”minutes”:56},”awake”:{“count”:0,”minutes”:0},”restless”:{“count”:3,”minutes”:4}}},”logId”:26315914306,”minutesAfterWakeup”:0,”minutesAsleep”:55,”minutesAwake”:5,”minutesToFallAsleep”:0,”startTime”:”2020-10-10T15:36:30.000”,”timeInBed”:60,”type”:”classic”},{“dateOfSleep”:”2020-10-10”,”duration”:22980000,”efficiency”:88,”endTime”:”2020-10-10T08:10:00.000”,”infoCode”:0,”isMainSleep”:true,”levels”:{“data”:[{“dateTime”:”2020-10-10T01:46:30.000”,”level”:”light”,”seconds”:420},{“dateTime”:”2020-10-10T01:53:30.000”,”level”:”deep”,”seconds”:1230},{“dateTime”:”2020-10-10T02:14:00.000”,”level”:”light”,”seconds”:360},…], “summary”:{“deep”:{“count”:3,”minutes”:92,”thirtyDayAvgMinutes”:0},”light”:{“count”:29,”minutes”:193,”thirtyDayAvgMinutes”:0},”rem”:{“count”:4,”minutes”:33,”thirtyDayAvgMinutes”:0},”wake”:{“count”:28,”minutes”:65,”thirtyDayAvgMinutes”:0}}},”logId”:26311786557,”minutesAfterWakeup”:0,”minutesAsleep”:318,”minutesAwake”:65,”minutesToFallAsleep”:0,”startTime”:”2020-10-10T01:46:30.000”,”timeInBed”:383,”type”:”stages”}],”summary”:{“stages”:{“deep”:92,”light”:193,”rem”:33,”wake”:65},”totalMinutesAsleep”:373,”totalSleepRecords”:2,”totalTimeInBed”:443}}
    a748ee1a-1d0b-4ae9-9074-279a2b6ba524{“sleep”:[{“dateOfSleep”:”2020-10-11”,”duration”:41640000,”efficiency”:89,”endTime”:”2020-10-11T11:47:00.000”,”infoCode”:0,”isMainSleep”:true,”levels”:{“data”:[{“dateTime”:”2020-10-11T00:12:30.000”,”level”:”wake”,”seconds”:450},{“dateTime”:”2020-10-11T00:20:00.000”,”level”:”light”,”seconds”:870},{“dateTime”:”2020-10-11T00:34:30.000”,”level”:”wake”,”seconds”:780},…], “summary”:{“deep”:{“count”:4,”minutes”:52,”thirtyDayAvgMinutes”:62},”light”:{“count”:32,”minutes”:442,”thirtyDayAvgMinutes”:364},”rem”:{“count”:6,”minutes”:68,”thirtyDayAvgMinutes”:58},”wake”:{“count”:29,”minutes”:132,”thirtyDayAvgMinutes”:94}}},”logId”:26589710670,”minutesAfterWakeup”:1,”minutesAsleep”:562,”minutesAwake”:132,”minutesToFallAsleep”:0,”startTime”:”2020-10-11T00:12:30.000”,”timeInBed”:694,”type”:”stages”}],”summary”:{“stages”:{“deep”:52,”light”:442,”rem”:68,”wake”:132},”totalMinutesAsleep”:562,”totalSleepRecords”:1,”totalTimeInBed”:694}}
    a748ee1a-1d0b-4ae9-9074-279a2b6ba524{“sleep”:[{“dateOfSleep”:”2020-10-12”,”duration”:28980000,”efficiency”:93,”endTime”:”2020-10-12T09:34:30.000”,”infoCode”:0,”isMainSleep”:true,”levels”:{“data”:[{“dateTime”:”2020-10-12T01:31:00.000”,”level”:”wake”,”seconds”:600},{“dateTime”:”2020-10-12T01:41:00.000”,”level”:”light”,”seconds”:60},{“dateTime”:”2020-10-12T01:42:00.000”,”level”:”deep”,”seconds”:2340},…], “summary”:{“deep”:{“count”:4,”minutes”:63,”thirtyDayAvgMinutes”:59},”light”:{“count”:27,”minutes”:257,”thirtyDayAvgMinutes”:364},”rem”:{“count”:5,”minutes”:94,”thirtyDayAvgMinutes”:58},”wake”:{“count”:24,”minutes”:69,”thirtyDayAvgMinutes”:95}}},”logId”:26589710673,”minutesAfterWakeup”:0,”minutesAsleep”:415,”minutesAwake”:68,”minutesToFallAsleep”:0,”startTime”:”2020-10-12T01:31:00.000”,”timeInBed”:483,”type”:”stages”}],”summary”:{“stages”:{“deep”:63,”light”:257,”rem”:94,”wake”:69},”totalMinutesAsleep”:415,”totalSleepRecords”:1,”totalTimeInBed”:483}}
    +
    +
    +
  • +
+
+
FITBIT_SLEEP_INTRADAY

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPFLAG_TO_MUTATE
LOCAL_DATE_TIMEFLAG_TO_MUTATE
DEVICE_IDdevice_id
TYPE_EPISODE_IDFLAG_TO_MUTATE
DURATIONFLAG_TO_MUTATE
IS_MAIN_SLEEPFLAG_TO_MUTATE
TYPEFLAG_TO_MUTATE
LEVELFLAG_TO_MUTATE
+

MUTATION

+
    +
  • +

    COLUMN_MAPPINGS

    + + + + + + + + + + + + + +
    Script columnStream column
    JSON_FITBIT_COLUMNfitbit_data
    +
  • +
  • +

    SCRIPTS

    +
    - src/data/streams/mutations/fitbit/parse_sleep_intraday_json.py
    +- src/data/streams/mutations/fitbit/add_zero_timestamp.py
    +
    +
    +

    Note

    +

    Fitbit API has two versions for sleep data, v1 and v1.2, we support both.

    +

    All columns except DEVICE_ID are parsed from JSON_FITBIT_COLUMN. JSON_FITBIT_COLUMN is a string column containing the JSON objects returned by Fitbit’s API. See an example of the raw data RAPIDS expects for this data stream:

    +
    Example of the expected raw data + + + + + + + + + + + + + + + + + + + + +
    device_idfitbit_data
    a748ee1a-1d0b-4ae9-9074-279a2b6ba524{“sleep”:[{“dateOfSleep”:”2020-10-10”,”duration”:3600000,”efficiency”:92,”endTime”:”2020-10-10T16:37:00.000”,”infoCode”:2,”isMainSleep”:false,”levels”:{“data”:[{“dateTime”:”2020-10-10T15:36:30.000”,”level”:”restless”,”seconds”:60},{“dateTime”:”2020-10-10T15:37:30.000”,”level”:”asleep”,”seconds”:660},{“dateTime”:”2020-10-10T15:48:30.000”,”level”:”restless”,”seconds”:60},…], “summary”:{“asleep”:{“count”:0,”minutes”:56},”awake”:{“count”:0,”minutes”:0},”restless”:{“count”:3,”minutes”:4}}},”logId”:26315914306,”minutesAfterWakeup”:0,”minutesAsleep”:55,”minutesAwake”:5,”minutesToFallAsleep”:0,”startTime”:”2020-10-10T15:36:30.000”,”timeInBed”:60,”type”:”classic”},{“dateOfSleep”:”2020-10-10”,”duration”:22980000,”efficiency”:88,”endTime”:”2020-10-10T08:10:00.000”,”infoCode”:0,”isMainSleep”:true,”levels”:{“data”:[{“dateTime”:”2020-10-10T01:46:30.000”,”level”:”light”,”seconds”:420},{“dateTime”:”2020-10-10T01:53:30.000”,”level”:”deep”,”seconds”:1230},{“dateTime”:”2020-10-10T02:14:00.000”,”level”:”light”,”seconds”:360},…], “summary”:{“deep”:{“count”:3,”minutes”:92,”thirtyDayAvgMinutes”:0},”light”:{“count”:29,”minutes”:193,”thirtyDayAvgMinutes”:0},”rem”:{“count”:4,”minutes”:33,”thirtyDayAvgMinutes”:0},”wake”:{“count”:28,”minutes”:65,”thirtyDayAvgMinutes”:0}}},”logId”:26311786557,”minutesAfterWakeup”:0,”minutesAsleep”:318,”minutesAwake”:65,”minutesToFallAsleep”:0,”startTime”:”2020-10-10T01:46:30.000”,”timeInBed”:383,”type”:”stages”}],”summary”:{“stages”:{“deep”:92,”light”:193,”rem”:33,”wake”:65},”totalMinutesAsleep”:373,”totalSleepRecords”:2,”totalTimeInBed”:443}}
    a748ee1a-1d0b-4ae9-9074-279a2b6ba524{“sleep”:[{“dateOfSleep”:”2020-10-11”,”duration”:41640000,”efficiency”:89,”endTime”:”2020-10-11T11:47:00.000”,”infoCode”:0,”isMainSleep”:true,”levels”:{“data”:[{“dateTime”:”2020-10-11T00:12:30.000”,”level”:”wake”,”seconds”:450},{“dateTime”:”2020-10-11T00:20:00.000”,”level”:”light”,”seconds”:870},{“dateTime”:”2020-10-11T00:34:30.000”,”level”:”wake”,”seconds”:780},…], “summary”:{“deep”:{“count”:4,”minutes”:52,”thirtyDayAvgMinutes”:62},”light”:{“count”:32,”minutes”:442,”thirtyDayAvgMinutes”:364},”rem”:{“count”:6,”minutes”:68,”thirtyDayAvgMinutes”:58},”wake”:{“count”:29,”minutes”:132,”thirtyDayAvgMinutes”:94}}},”logId”:26589710670,”minutesAfterWakeup”:1,”minutesAsleep”:562,”minutesAwake”:132,”minutesToFallAsleep”:0,”startTime”:”2020-10-11T00:12:30.000”,”timeInBed”:694,”type”:”stages”}],”summary”:{“stages”:{“deep”:52,”light”:442,”rem”:68,”wake”:132},”totalMinutesAsleep”:562,”totalSleepRecords”:1,”totalTimeInBed”:694}}
    a748ee1a-1d0b-4ae9-9074-279a2b6ba524{“sleep”:[{“dateOfSleep”:”2020-10-12”,”duration”:28980000,”efficiency”:93,”endTime”:”2020-10-12T09:34:30.000”,”infoCode”:0,”isMainSleep”:true,”levels”:{“data”:[{“dateTime”:”2020-10-12T01:31:00.000”,”level”:”wake”,”seconds”:600},{“dateTime”:”2020-10-12T01:41:00.000”,”level”:”light”,”seconds”:60},{“dateTime”:”2020-10-12T01:42:00.000”,”level”:”deep”,”seconds”:2340},…], “summary”:{“deep”:{“count”:4,”minutes”:63,”thirtyDayAvgMinutes”:59},”light”:{“count”:27,”minutes”:257,”thirtyDayAvgMinutes”:364},”rem”:{“count”:5,”minutes”:94,”thirtyDayAvgMinutes”:58},”wake”:{“count”:24,”minutes”:69,”thirtyDayAvgMinutes”:95}}},”logId”:26589710673,”minutesAfterWakeup”:0,”minutesAsleep”:415,”minutesAwake”:68,”minutesToFallAsleep”:0,”startTime”:”2020-10-12T01:31:00.000”,”timeInBed”:483,”type”:”stages”}],”summary”:{“stages”:{“deep”:63,”light”:257,”rem”:94,”wake”:69},”totalMinutesAsleep”:415,”totalSleepRecords”:1,”totalTimeInBed”:483}}
    +
    +
    +
  • +
+
+
FITBIT_STEPS_SUMMARY

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPFLAG_TO_MUTATE
DEVICE_IDdevice_id
LOCAL_DATE_TIMEFLAG_TO_MUTATE
STEPSFLAG_TO_MUTATE
+

MUTATION

+
    +
  • +

    COLUMN_MAPPINGS

    + + + + + + + + + + + + + +
    Script columnStream column
    JSON_FITBIT_COLUMNfitbit_data
    +
  • +
  • +

    SCRIPTS

    +
    - src/data/streams/mutations/fitbit/parse_steps_summary_json.py
    +- src/data/streams/mutations/fitbit/add_zero_timestamp.py
    +
    +
    +

    Note

    +

    TIMESTAMP, LOCAL_DATE_TIME, and STEPS are parsed from JSON_FITBIT_COLUMN. JSON_FITBIT_COLUMN is a string column containing the JSON objects returned by Fitbit’s API. See an example of the raw data RAPIDS expects for this data stream:

    +
    Example of the expected raw data + + + + + + + + + + + + + + + + + + + + +
    device_idfitbit_data
    a748ee1a-1d0b-4ae9-9074-279a2b6ba524“activities-steps”:[{“dateTime”:”2020-10-07”,”value”:”1775”}],”activities-steps-intraday”:{“dataset”:[{“time”:”00:00:00”,”value”:5},{“time”:”00:01:00”,”value”:3},{“time”:”00:02:00”,”value”:0},…],”datasetInterval”:1,”datasetType”:”minute”}}
    a748ee1a-1d0b-4ae9-9074-279a2b6ba524“activities-steps”:[{“dateTime”:”2020-10-08”,”value”:”3201”}],”activities-steps-intraday”:{“dataset”:[{“time”:”00:00:00”,”value”:14},{“time”:”00:01:00”,”value”:11},{“time”:”00:02:00”,”value”:10},…],”datasetInterval”:1,”datasetType”:”minute”}}
    a748ee1a-1d0b-4ae9-9074-279a2b6ba524“activities-steps”:[{“dateTime”:”2020-10-09”,”value”:”998”}],”activities-steps-intraday”:{“dataset”:[{“time”:”00:00:00”,”value”:0},{“time”:”00:01:00”,”value”:0},{“time”:”00:02:00”,”value”:0},…],”datasetInterval”:1,”datasetType”:”minute”}}
    +
    +
    +
  • +
+
+
FITBIT_STEPS_INTRADAY

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPFLAG_TO_MUTATE
DEVICE_IDdevice_id
LOCAL_DATE_TIMEFLAG_TO_MUTATE
STEPSFLAG_TO_MUTATE
+

MUTATION

+
    +
  • +

    COLUMN_MAPPINGS

    + + + + + + + + + + + + + +
    Script columnStream column
    JSON_FITBIT_COLUMNfitbit_data
    +
  • +
  • +

    SCRIPTS

    +
    - src/data/streams/mutations/fitbit/parse_steps_intraday_json.py
    +- src/data/streams/mutations/fitbit/add_zero_timestamp.py
    +
    +
    +

    Note

    +

    TIMESTAMP, LOCAL_DATE_TIME, and STEPS are parsed from JSON_FITBIT_COLUMN. JSON_FITBIT_COLUMN is a string column containing the JSON objects returned by Fitbit’s API. See an example of the raw data RAPIDS expects for this data stream:

    +
    Example of the expected raw data + + + + + + + + + + + + + + + + + + + + +
    device_idfitbit_data
    a748ee1a-1d0b-4ae9-9074-279a2b6ba524“activities-steps”:[{“dateTime”:”2020-10-07”,”value”:”1775”}],”activities-steps-intraday”:{“dataset”:[{“time”:”00:00:00”,”value”:5},{“time”:”00:01:00”,”value”:3},{“time”:”00:02:00”,”value”:0},…],”datasetInterval”:1,”datasetType”:”minute”}}
    a748ee1a-1d0b-4ae9-9074-279a2b6ba524“activities-steps”:[{“dateTime”:”2020-10-08”,”value”:”3201”}],”activities-steps-intraday”:{“dataset”:[{“time”:”00:00:00”,”value”:14},{“time”:”00:01:00”,”value”:11},{“time”:”00:02:00”,”value”:10},…],”datasetInterval”:1,”datasetType”:”minute”}}
    a748ee1a-1d0b-4ae9-9074-279a2b6ba524“activities-steps”:[{“dateTime”:”2020-10-09”,”value”:”998”}],”activities-steps-intraday”:{“dataset”:[{“time”:”00:00:00”,”value”:0},{“time”:”00:01:00”,”value”:0},{“time”:”00:02:00”,”value”:0},…],”datasetInterval”:1,”datasetType”:”minute”}}
    +
    +
    +
  • +
+
+ + + + + + +

Comments

+ + + + + + +
+ +
+
+ +
+ + + + +
+
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/1.3/datastreams/fitbitjson-mysql/index.html b/1.3/datastreams/fitbitjson-mysql/index.html new file mode 100644 index 00000000..363683f1 --- /dev/null +++ b/1.3/datastreams/fitbitjson-mysql/index.html @@ -0,0 +1,2507 @@ + + + + + + + + + + + + + + + + + + + + + + fitbitjson_mysql - RAPIDS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + +
+
+
+ + +
+
+ + + + + + + + +

fitbitjson_mysql

+

This data stream handles Fitbit sensor data downloaded using the Fitbit Web API and stored in a MySQL database. Please note that RAPIDS cannot query the API directly; you need to use other available tools or implement your own. Once you have your sensor data in a MySQL database, RAPIDS can process it.

+

Container

+

The container should be a MySQL database with a table per sensor, each containing all participants’ data.

+

The script to connect and download data from this container is at: +

src/data/streams/fitbitjson_mysql/container.R
+

+

Format

+

The format.yaml maps and transforms columns in your raw data stream to the mandatory columns RAPIDS needs for Fitbit sensors. This file is at:

+
src/data/streams/fitbitjson_csv/format.yaml
+
+

If you want RAPIDS to process Fitbit sensor data using this stream, you will need to map DEVICE_ID and JSON_FITBIT_COLUMN to your own raw data columns inside each sensor section in format.yaml.

+
FITBIT_HEARTRATE_SUMMARY

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
LOCAL_DATE_TIMEFLAG_TO_MUTATE
DEVICE_IDdevice_id
HEARTRATE_DAILY_RESTINGHRFLAG_TO_MUTATE
HEARTRATE_DAILY_CALORIESOUTOFRANGEFLAG_TO_MUTATE
HEARTRATE_DAILY_CALORIESFATBURNFLAG_TO_MUTATE
HEARTRATE_DAILY_CALORIESCARDIOFLAG_TO_MUTATE
HEARTRATE_DAILY_CALORIESPEAKFLAG_TO_MUTATE
+

MUTATION

+
    +
  • +

    COLUMN_MAPPINGS

    + + + + + + + + + + + + + +
    Script columnStream column
    JSON_FITBIT_COLUMNfitbit_data
    +
  • +
  • +

    SCRIPTS

    +
    - src/data/streams/mutations/fitbit/parse_heartrate_summary_json.py
    +- src/data/streams/mutations/fitbit/add_zero_timestamp.py
    +
    +
    +

    Note

    +

    All columns except DEVICE_ID are parsed from JSON_FITBIT_COLUMN. JSON_FITBIT_COLUMN is a string column containing the JSON objects returned by Fitbit’s API. See an example of the raw data RAPIDS expects for this data stream:

    +
    Example of the raw data RAPIDS expects for this data stream + + + + + + + + + + + + + + + + + + + + +
    device_idfitbit_data
    a748ee1a-1d0b-4ae9-9074-279a2b6ba524{“activities-heart”:[{“dateTime”:”2020-10-07”,”value”:{“customHeartRateZones”:[],”heartRateZones”:[{“caloriesOut”:1200.6102,”max”:88,”min”:31,”minutes”:1058,”name”:”Out of Range”},{“caloriesOut”:760.3020,”max”:120,”min”:86,”minutes”:366,”name”:”Fat Burn”},{“caloriesOut”:15.2048,”max”:146,”min”:120,”minutes”:2,”name”:”Cardio”},{“caloriesOut”:0,”max”:221,”min”:148,”minutes”:0,”name”:”Peak”}],”restingHeartRate”:72}}],”activities-heart-intraday”:{“dataset”:[{“time”:”00:00:00”,”value”:68},{“time”:”00:01:00”,”value”:67},{“time”:”00:02:00”,”value”:67},…],”datasetInterval”:1,”datasetType”:”minute”}}
    a748ee1a-1d0b-4ae9-9074-279a2b6ba524{“activities-heart”:[{“dateTime”:”2020-10-08”,”value”:{“customHeartRateZones”:[],”heartRateZones”:[{“caloriesOut”:1100.1120,”max”:89,”min”:30,”minutes”:921,”name”:”Out of Range”},{“caloriesOut”:660.0012,”max”:118,”min”:82,”minutes”:361,”name”:”Fat Burn”},{“caloriesOut”:23.7088,”max”:142,”min”:108,”minutes”:3,”name”:”Cardio”},{“caloriesOut”:0,”max”:221,”min”:148,”minutes”:0,”name”:”Peak”}],”restingHeartRate”:70}}],”activities-heart-intraday”:{“dataset”:[{“time”:”00:00:00”,”value”:77},{“time”:”00:01:00”,”value”:75},{“time”:”00:02:00”,”value”:73},…],”datasetInterval”:1,”datasetType”:”minute”}}
    a748ee1a-1d0b-4ae9-9074-279a2b6ba524{“activities-heart”:[{“dateTime”:”2020-10-09”,”value”:{“customHeartRateZones”:[],”heartRateZones”:[{“caloriesOut”:750.3615,”max”:77,”min”:30,”minutes”:851,”name”:”Out of Range”},{“caloriesOut”:734.1516,”max”:107,”min”:77,”minutes”:550,”name”:”Fat Burn”},{“caloriesOut”:131.8579,”max”:130,”min”:107,”minutes”:29,”name”:”Cardio”},{“caloriesOut”:0,”max”:220,”min”:130,”minutes”:0,”name”:”Peak”}],”restingHeartRate”:69}}],”activities-heart-intraday”:{“dataset”:[{“time”:”00:00:00”,”value”:90},{“time”:”00:01:00”,”value”:89},{“time”:”00:02:00”,”value”:88},…],”datasetInterval”:1,”datasetType”:”minute”}}
    +
    +
    +
  • +
+
+
FITBIT_HEARTRATE_INTRADAY

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
LOCAL_DATE_TIMEFLAG_TO_MUTATE
DEVICE_IDdevice_id
HEARTRATEFLAG_TO_MUTATE
HEARTRATE_ZONEFLAG_TO_MUTATE
+

MUTATION

+
    +
  • +

    COLUMN_MAPPINGS

    + + + + + + + + + + + + + +
    Script columnStream column
    JSON_FITBIT_COLUMNfitbit_data
    +
  • +
  • +

    SCRIPTS

    +
    - src/data/streams/mutations/fitbit/parse_heartrate_intraday_json.py
    +- src/data/streams/mutations/fitbit/add_zero_timestamp.py
    +
    +
    +

    Note

    +

    All columns except DEVICE_ID are parsed from JSON_FITBIT_COLUMN. JSON_FITBIT_COLUMN is a string column containing the JSON objects returned by Fitbit’s API. See an example of the raw data RAPIDS expects for this data stream:

    +
    Example of the raw data RAPIDS expects for this data stream + + + + + + + + + + + + + + + + + + + + +
    device_idfitbit_data
    a748ee1a-1d0b-4ae9-9074-279a2b6ba524{“activities-heart”:[{“dateTime”:”2020-10-07”,”value”:{“customHeartRateZones”:[],”heartRateZones”:[{“caloriesOut”:1200.6102,”max”:88,”min”:31,”minutes”:1058,”name”:”Out of Range”},{“caloriesOut”:760.3020,”max”:120,”min”:86,”minutes”:366,”name”:”Fat Burn”},{“caloriesOut”:15.2048,”max”:146,”min”:120,”minutes”:2,”name”:”Cardio”},{“caloriesOut”:0,”max”:221,”min”:148,”minutes”:0,”name”:”Peak”}],”restingHeartRate”:72}}],”activities-heart-intraday”:{“dataset”:[{“time”:”00:00:00”,”value”:68},{“time”:”00:01:00”,”value”:67},{“time”:”00:02:00”,”value”:67},…],”datasetInterval”:1,”datasetType”:”minute”}}
    a748ee1a-1d0b-4ae9-9074-279a2b6ba524{“activities-heart”:[{“dateTime”:”2020-10-08”,”value”:{“customHeartRateZones”:[],”heartRateZones”:[{“caloriesOut”:1100.1120,”max”:89,”min”:30,”minutes”:921,”name”:”Out of Range”},{“caloriesOut”:660.0012,”max”:118,”min”:82,”minutes”:361,”name”:”Fat Burn”},{“caloriesOut”:23.7088,”max”:142,”min”:108,”minutes”:3,”name”:”Cardio”},{“caloriesOut”:0,”max”:221,”min”:148,”minutes”:0,”name”:”Peak”}],”restingHeartRate”:70}}],”activities-heart-intraday”:{“dataset”:[{“time”:”00:00:00”,”value”:77},{“time”:”00:01:00”,”value”:75},{“time”:”00:02:00”,”value”:73},…],”datasetInterval”:1,”datasetType”:”minute”}}
    a748ee1a-1d0b-4ae9-9074-279a2b6ba524{“activities-heart”:[{“dateTime”:”2020-10-09”,”value”:{“customHeartRateZones”:[],”heartRateZones”:[{“caloriesOut”:750.3615,”max”:77,”min”:30,”minutes”:851,”name”:”Out of Range”},{“caloriesOut”:734.1516,”max”:107,”min”:77,”minutes”:550,”name”:”Fat Burn”},{“caloriesOut”:131.8579,”max”:130,”min”:107,”minutes”:29,”name”:”Cardio”},{“caloriesOut”:0,”max”:220,”min”:130,”minutes”:0,”name”:”Peak”}],”restingHeartRate”:69}}],”activities-heart-intraday”:{“dataset”:[{“time”:”00:00:00”,”value”:90},{“time”:”00:01:00”,”value”:89},{“time”:”00:02:00”,”value”:88},…],”datasetInterval”:1,”datasetType”:”minute”}}
    +
    +
    +
  • +
+
+
FITBIT_SLEEP_SUMMARY

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPFLAG_TO_MUTATE
LOCAL_DATE_TIMEFLAG_TO_MUTATE
LOCAL_START_DATE_TIMEFLAG_TO_MUTATE
LOCAL_END_DATE_TIMEFLAG_TO_MUTATE
DEVICE_IDdevice_id
EFFICIENCYFLAG_TO_MUTATE
MINUTES_AFTER_WAKEUPFLAG_TO_MUTATE
MINUTES_ASLEEPFLAG_TO_MUTATE
MINUTES_AWAKEFLAG_TO_MUTATE
MINUTES_TO_FALL_ASLEEPFLAG_TO_MUTATE
MINUTES_IN_BEDFLAG_TO_MUTATE
IS_MAIN_SLEEPFLAG_TO_MUTATE
TYPEFLAG_TO_MUTATE
+

MUTATION

+
    +
  • +

    COLUMN_MAPPINGS

    + + + + + + + + + + + + + +
    Script columnStream column
    JSON_FITBIT_COLUMNfitbit_data
    +
  • +
  • +

    SCRIPTS

    +
    - src/data/streams/mutations/fitbit/parse_sleep_summary_json.py
    +- src/data/streams/mutations/fitbit/add_local_date_time.py
    +- src/data/streams/mutations/fitbit/add_zero_timestamp.py
    +
    +
    +

    Note

    +

    Fitbit API has two versions for sleep data, v1 and v1.2. We support both but ignore v1’s count_awake, duration_awake, and count_awakenings, count_restless, duration_restless columns.

    +

    All columns except DEVICE_ID are parsed from JSON_FITBIT_COLUMN. JSON_FITBIT_COLUMN is a string column containing the JSON objects returned by Fitbit’s API. See an example of the raw data RAPIDS expects for this data stream:

    +
    Example of the expected raw data + + + + + + + + + + + + + + + + + + + + +
    device_idfitbit_data
    a748ee1a-1d0b-4ae9-9074-279a2b6ba524{“sleep”:[{“dateOfSleep”:”2020-10-10”,”duration”:3600000,”efficiency”:92,”endTime”:”2020-10-10T16:37:00.000”,”infoCode”:2,”isMainSleep”:false,”levels”:{“data”:[{“dateTime”:”2020-10-10T15:36:30.000”,”level”:”restless”,”seconds”:60},{“dateTime”:”2020-10-10T15:37:30.000”,”level”:”asleep”,”seconds”:660},{“dateTime”:”2020-10-10T15:48:30.000”,”level”:”restless”,”seconds”:60},…], “summary”:{“asleep”:{“count”:0,”minutes”:56},”awake”:{“count”:0,”minutes”:0},”restless”:{“count”:3,”minutes”:4}}},”logId”:26315914306,”minutesAfterWakeup”:0,”minutesAsleep”:55,”minutesAwake”:5,”minutesToFallAsleep”:0,”startTime”:”2020-10-10T15:36:30.000”,”timeInBed”:60,”type”:”classic”},{“dateOfSleep”:”2020-10-10”,”duration”:22980000,”efficiency”:88,”endTime”:”2020-10-10T08:10:00.000”,”infoCode”:0,”isMainSleep”:true,”levels”:{“data”:[{“dateTime”:”2020-10-10T01:46:30.000”,”level”:”light”,”seconds”:420},{“dateTime”:”2020-10-10T01:53:30.000”,”level”:”deep”,”seconds”:1230},{“dateTime”:”2020-10-10T02:14:00.000”,”level”:”light”,”seconds”:360},…], “summary”:{“deep”:{“count”:3,”minutes”:92,”thirtyDayAvgMinutes”:0},”light”:{“count”:29,”minutes”:193,”thirtyDayAvgMinutes”:0},”rem”:{“count”:4,”minutes”:33,”thirtyDayAvgMinutes”:0},”wake”:{“count”:28,”minutes”:65,”thirtyDayAvgMinutes”:0}}},”logId”:26311786557,”minutesAfterWakeup”:0,”minutesAsleep”:318,”minutesAwake”:65,”minutesToFallAsleep”:0,”startTime”:”2020-10-10T01:46:30.000”,”timeInBed”:383,”type”:”stages”}],”summary”:{“stages”:{“deep”:92,”light”:193,”rem”:33,”wake”:65},”totalMinutesAsleep”:373,”totalSleepRecords”:2,”totalTimeInBed”:443}}
    a748ee1a-1d0b-4ae9-9074-279a2b6ba524{“sleep”:[{“dateOfSleep”:”2020-10-11”,”duration”:41640000,”efficiency”:89,”endTime”:”2020-10-11T11:47:00.000”,”infoCode”:0,”isMainSleep”:true,”levels”:{“data”:[{“dateTime”:”2020-10-11T00:12:30.000”,”level”:”wake”,”seconds”:450},{“dateTime”:”2020-10-11T00:20:00.000”,”level”:”light”,”seconds”:870},{“dateTime”:”2020-10-11T00:34:30.000”,”level”:”wake”,”seconds”:780},…], “summary”:{“deep”:{“count”:4,”minutes”:52,”thirtyDayAvgMinutes”:62},”light”:{“count”:32,”minutes”:442,”thirtyDayAvgMinutes”:364},”rem”:{“count”:6,”minutes”:68,”thirtyDayAvgMinutes”:58},”wake”:{“count”:29,”minutes”:132,”thirtyDayAvgMinutes”:94}}},”logId”:26589710670,”minutesAfterWakeup”:1,”minutesAsleep”:562,”minutesAwake”:132,”minutesToFallAsleep”:0,”startTime”:”2020-10-11T00:12:30.000”,”timeInBed”:694,”type”:”stages”}],”summary”:{“stages”:{“deep”:52,”light”:442,”rem”:68,”wake”:132},”totalMinutesAsleep”:562,”totalSleepRecords”:1,”totalTimeInBed”:694}}
    a748ee1a-1d0b-4ae9-9074-279a2b6ba524{“sleep”:[{“dateOfSleep”:”2020-10-12”,”duration”:28980000,”efficiency”:93,”endTime”:”2020-10-12T09:34:30.000”,”infoCode”:0,”isMainSleep”:true,”levels”:{“data”:[{“dateTime”:”2020-10-12T01:31:00.000”,”level”:”wake”,”seconds”:600},{“dateTime”:”2020-10-12T01:41:00.000”,”level”:”light”,”seconds”:60},{“dateTime”:”2020-10-12T01:42:00.000”,”level”:”deep”,”seconds”:2340},…], “summary”:{“deep”:{“count”:4,”minutes”:63,”thirtyDayAvgMinutes”:59},”light”:{“count”:27,”minutes”:257,”thirtyDayAvgMinutes”:364},”rem”:{“count”:5,”minutes”:94,”thirtyDayAvgMinutes”:58},”wake”:{“count”:24,”minutes”:69,”thirtyDayAvgMinutes”:95}}},”logId”:26589710673,”minutesAfterWakeup”:0,”minutesAsleep”:415,”minutesAwake”:68,”minutesToFallAsleep”:0,”startTime”:”2020-10-12T01:31:00.000”,”timeInBed”:483,”type”:”stages”}],”summary”:{“stages”:{“deep”:63,”light”:257,”rem”:94,”wake”:69},”totalMinutesAsleep”:415,”totalSleepRecords”:1,”totalTimeInBed”:483}}
    +
    +
    +
  • +
+
+
FITBIT_SLEEP_INTRADAY

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPFLAG_TO_MUTATE
LOCAL_DATE_TIMEFLAG_TO_MUTATE
DEVICE_IDdevice_id
TYPE_EPISODE_IDFLAG_TO_MUTATE
DURATIONFLAG_TO_MUTATE
IS_MAIN_SLEEPFLAG_TO_MUTATE
TYPEFLAG_TO_MUTATE
LEVELFLAG_TO_MUTATE
+

MUTATION

+
    +
  • +

    COLUMN_MAPPINGS

    + + + + + + + + + + + + + +
    Script columnStream column
    JSON_FITBIT_COLUMNfitbit_data
    +
  • +
  • +

    SCRIPTS

    +
    - src/data/streams/mutations/fitbit/parse_sleep_intraday_json.py
    +- src/data/streams/mutations/fitbit/add_zero_timestamp.py
    +
    +
    +

    Note

    +

    Fitbit API has two versions for sleep data, v1 and v1.2, we support both.

    +

    All columns except DEVICE_ID are parsed from JSON_FITBIT_COLUMN. JSON_FITBIT_COLUMN is a string column containing the JSON objects returned by Fitbit’s API. See an example of the raw data RAPIDS expects for this data stream:

    +
    Example of the expected raw data + + + + + + + + + + + + + + + + + + + + +
    device_idfitbit_data
    a748ee1a-1d0b-4ae9-9074-279a2b6ba524{“sleep”:[{“dateOfSleep”:”2020-10-10”,”duration”:3600000,”efficiency”:92,”endTime”:”2020-10-10T16:37:00.000”,”infoCode”:2,”isMainSleep”:false,”levels”:{“data”:[{“dateTime”:”2020-10-10T15:36:30.000”,”level”:”restless”,”seconds”:60},{“dateTime”:”2020-10-10T15:37:30.000”,”level”:”asleep”,”seconds”:660},{“dateTime”:”2020-10-10T15:48:30.000”,”level”:”restless”,”seconds”:60},…], “summary”:{“asleep”:{“count”:0,”minutes”:56},”awake”:{“count”:0,”minutes”:0},”restless”:{“count”:3,”minutes”:4}}},”logId”:26315914306,”minutesAfterWakeup”:0,”minutesAsleep”:55,”minutesAwake”:5,”minutesToFallAsleep”:0,”startTime”:”2020-10-10T15:36:30.000”,”timeInBed”:60,”type”:”classic”},{“dateOfSleep”:”2020-10-10”,”duration”:22980000,”efficiency”:88,”endTime”:”2020-10-10T08:10:00.000”,”infoCode”:0,”isMainSleep”:true,”levels”:{“data”:[{“dateTime”:”2020-10-10T01:46:30.000”,”level”:”light”,”seconds”:420},{“dateTime”:”2020-10-10T01:53:30.000”,”level”:”deep”,”seconds”:1230},{“dateTime”:”2020-10-10T02:14:00.000”,”level”:”light”,”seconds”:360},…], “summary”:{“deep”:{“count”:3,”minutes”:92,”thirtyDayAvgMinutes”:0},”light”:{“count”:29,”minutes”:193,”thirtyDayAvgMinutes”:0},”rem”:{“count”:4,”minutes”:33,”thirtyDayAvgMinutes”:0},”wake”:{“count”:28,”minutes”:65,”thirtyDayAvgMinutes”:0}}},”logId”:26311786557,”minutesAfterWakeup”:0,”minutesAsleep”:318,”minutesAwake”:65,”minutesToFallAsleep”:0,”startTime”:”2020-10-10T01:46:30.000”,”timeInBed”:383,”type”:”stages”}],”summary”:{“stages”:{“deep”:92,”light”:193,”rem”:33,”wake”:65},”totalMinutesAsleep”:373,”totalSleepRecords”:2,”totalTimeInBed”:443}}
    a748ee1a-1d0b-4ae9-9074-279a2b6ba524{“sleep”:[{“dateOfSleep”:”2020-10-11”,”duration”:41640000,”efficiency”:89,”endTime”:”2020-10-11T11:47:00.000”,”infoCode”:0,”isMainSleep”:true,”levels”:{“data”:[{“dateTime”:”2020-10-11T00:12:30.000”,”level”:”wake”,”seconds”:450},{“dateTime”:”2020-10-11T00:20:00.000”,”level”:”light”,”seconds”:870},{“dateTime”:”2020-10-11T00:34:30.000”,”level”:”wake”,”seconds”:780},…], “summary”:{“deep”:{“count”:4,”minutes”:52,”thirtyDayAvgMinutes”:62},”light”:{“count”:32,”minutes”:442,”thirtyDayAvgMinutes”:364},”rem”:{“count”:6,”minutes”:68,”thirtyDayAvgMinutes”:58},”wake”:{“count”:29,”minutes”:132,”thirtyDayAvgMinutes”:94}}},”logId”:26589710670,”minutesAfterWakeup”:1,”minutesAsleep”:562,”minutesAwake”:132,”minutesToFallAsleep”:0,”startTime”:”2020-10-11T00:12:30.000”,”timeInBed”:694,”type”:”stages”}],”summary”:{“stages”:{“deep”:52,”light”:442,”rem”:68,”wake”:132},”totalMinutesAsleep”:562,”totalSleepRecords”:1,”totalTimeInBed”:694}}
    a748ee1a-1d0b-4ae9-9074-279a2b6ba524{“sleep”:[{“dateOfSleep”:”2020-10-12”,”duration”:28980000,”efficiency”:93,”endTime”:”2020-10-12T09:34:30.000”,”infoCode”:0,”isMainSleep”:true,”levels”:{“data”:[{“dateTime”:”2020-10-12T01:31:00.000”,”level”:”wake”,”seconds”:600},{“dateTime”:”2020-10-12T01:41:00.000”,”level”:”light”,”seconds”:60},{“dateTime”:”2020-10-12T01:42:00.000”,”level”:”deep”,”seconds”:2340},…], “summary”:{“deep”:{“count”:4,”minutes”:63,”thirtyDayAvgMinutes”:59},”light”:{“count”:27,”minutes”:257,”thirtyDayAvgMinutes”:364},”rem”:{“count”:5,”minutes”:94,”thirtyDayAvgMinutes”:58},”wake”:{“count”:24,”minutes”:69,”thirtyDayAvgMinutes”:95}}},”logId”:26589710673,”minutesAfterWakeup”:0,”minutesAsleep”:415,”minutesAwake”:68,”minutesToFallAsleep”:0,”startTime”:”2020-10-12T01:31:00.000”,”timeInBed”:483,”type”:”stages”}],”summary”:{“stages”:{“deep”:63,”light”:257,”rem”:94,”wake”:69},”totalMinutesAsleep”:415,”totalSleepRecords”:1,”totalTimeInBed”:483}}
    +
    +
    +
  • +
+
+
FITBIT_STEPS_SUMMARY

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPFLAG_TO_MUTATE
DEVICE_IDdevice_id
LOCAL_DATE_TIMEFLAG_TO_MUTATE
STEPSFLAG_TO_MUTATE
+

MUTATION

+
    +
  • +

    COLUMN_MAPPINGS

    + + + + + + + + + + + + + +
    Script columnStream column
    JSON_FITBIT_COLUMNfitbit_data
    +
  • +
  • +

    SCRIPTS

    +
    - src/data/streams/mutations/fitbit/parse_steps_summary_json.py
    +- src/data/streams/mutations/fitbit/add_zero_timestamp.py
    +
    +
    +

    Note

    +

    TIMESTAMP, LOCAL_DATE_TIME, and STEPS are parsed from JSON_FITBIT_COLUMN. JSON_FITBIT_COLUMN is a string column containing the JSON objects returned by Fitbit’s API. See an example of the raw data RAPIDS expects for this data stream:

    +
    Example of the expected raw data + + + + + + + + + + + + + + + + + + + + +
    device_idfitbit_data
    a748ee1a-1d0b-4ae9-9074-279a2b6ba524“activities-steps”:[{“dateTime”:”2020-10-07”,”value”:”1775”}],”activities-steps-intraday”:{“dataset”:[{“time”:”00:00:00”,”value”:5},{“time”:”00:01:00”,”value”:3},{“time”:”00:02:00”,”value”:0},…],”datasetInterval”:1,”datasetType”:”minute”}}
    a748ee1a-1d0b-4ae9-9074-279a2b6ba524“activities-steps”:[{“dateTime”:”2020-10-08”,”value”:”3201”}],”activities-steps-intraday”:{“dataset”:[{“time”:”00:00:00”,”value”:14},{“time”:”00:01:00”,”value”:11},{“time”:”00:02:00”,”value”:10},…],”datasetInterval”:1,”datasetType”:”minute”}}
    a748ee1a-1d0b-4ae9-9074-279a2b6ba524“activities-steps”:[{“dateTime”:”2020-10-09”,”value”:”998”}],”activities-steps-intraday”:{“dataset”:[{“time”:”00:00:00”,”value”:0},{“time”:”00:01:00”,”value”:0},{“time”:”00:02:00”,”value”:0},…],”datasetInterval”:1,”datasetType”:”minute”}}
    +
    +
    +
  • +
+
+
FITBIT_STEPS_INTRADAY

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPFLAG_TO_MUTATE
DEVICE_IDdevice_id
LOCAL_DATE_TIMEFLAG_TO_MUTATE
STEPSFLAG_TO_MUTATE
+

MUTATION

+
    +
  • +

    COLUMN_MAPPINGS

    + + + + + + + + + + + + + +
    Script columnStream column
    JSON_FITBIT_COLUMNfitbit_data
    +
  • +
  • +

    SCRIPTS

    +
    - src/data/streams/mutations/fitbit/parse_steps_intraday_json.py
    +- src/data/streams/mutations/fitbit/add_zero_timestamp.py
    +
    +
    +

    Note

    +

    TIMESTAMP, LOCAL_DATE_TIME, and STEPS are parsed from JSON_FITBIT_COLUMN. JSON_FITBIT_COLUMN is a string column containing the JSON objects returned by Fitbit’s API. See an example of the raw data RAPIDS expects for this data stream:

    +
    Example of the expected raw data + + + + + + + + + + + + + + + + + + + + +
    device_idfitbit_data
    a748ee1a-1d0b-4ae9-9074-279a2b6ba524“activities-steps”:[{“dateTime”:”2020-10-07”,”value”:”1775”}],”activities-steps-intraday”:{“dataset”:[{“time”:”00:00:00”,”value”:5},{“time”:”00:01:00”,”value”:3},{“time”:”00:02:00”,”value”:0},…],”datasetInterval”:1,”datasetType”:”minute”}}
    a748ee1a-1d0b-4ae9-9074-279a2b6ba524“activities-steps”:[{“dateTime”:”2020-10-08”,”value”:”3201”}],”activities-steps-intraday”:{“dataset”:[{“time”:”00:00:00”,”value”:14},{“time”:”00:01:00”,”value”:11},{“time”:”00:02:00”,”value”:10},…],”datasetInterval”:1,”datasetType”:”minute”}}
    a748ee1a-1d0b-4ae9-9074-279a2b6ba524“activities-steps”:[{“dateTime”:”2020-10-09”,”value”:”998”}],”activities-steps-intraday”:{“dataset”:[{“time”:”00:00:00”,”value”:0},{“time”:”00:01:00”,”value”:0},{“time”:”00:02:00”,”value”:0},…],”datasetInterval”:1,”datasetType”:”minute”}}
    +
    +
    +
  • +
+
+ + + + + + +

Comments

+ + + + + + +
+ +
+
+ +
+ + + + +
+
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/1.3/datastreams/fitbitparsed-csv/index.html b/1.3/datastreams/fitbitparsed-csv/index.html new file mode 100644 index 00000000..e6b01e52 --- /dev/null +++ b/1.3/datastreams/fitbitparsed-csv/index.html @@ -0,0 +1,2573 @@ + + + + + + + + + + + + + + + + + + + + + + fitbitparsed_csv - RAPIDS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + +
+
+
+ + +
+
+ + + + + + + + +

fitbitparsed_csv

+

This data stream handles Fitbit sensor data downloaded using the Fitbit Web API, parsed, and stored in a CSV file. Please note that RAPIDS cannot query the API directly; you need to use other available tools or implement your own. Once you have your parsed sensor data in a CSV file, RAPIDS can process it.

+
+

What is the difference between JSON and plain data streams

+

Most people will only need fitbitjson_* because they downloaded and stored their data directly from Fitbit’s API. However, if, for some reason, you don’t have access to that JSON data and instead only have the parsed data (columns and rows), you can use this data stream.

+
+
+

Warning

+

The CSV files have to use , as separator, \ as escape character (do not escape " with ""), and wrap any string columns with ".

+
Example of a valid CSV file
"device_id","heartrate","heartrate_zone","local_date_time","timestamp"
+"a748ee1a-1d0b-4ae9-9074-279a2b6ba524",69,"outofrange","2020-04-23 00:00:00",0
+"a748ee1a-1d0b-4ae9-9074-279a2b6ba524",69,"outofrange","2020-04-23 00:01:00",0
+"a748ee1a-1d0b-4ae9-9074-279a2b6ba524",67,"outofrange","2020-04-23 00:02:00",0
+"a748ee1a-1d0b-4ae9-9074-279a2b6ba524",69,"outofrange","2020-04-23 00:03:00",0
+
+
+
+

Container

+

The container should be a CSV file per sensor, each containing all participants’ data.

+

The script to connect and download data from this container is at: +

src/data/streams/fitbitparsed_csv/container.R
+

+

Format

+

The format.yaml maps and transforms columns in your raw data stream to the mandatory columns RAPIDS needs for Fitbit sensors. This file is at:

+
src/data/streams/fitbitparsed_mysql/format.yaml
+
+

If you want to use this stream with your data, modify every sensor in format.yaml to map all columns except TIMESTAMP in [RAPIDS_COLUMN_MAPPINGS] to your raw data column names.

+

All columns are mandatory; however, all except device_id and local_date_time can be empty if you don’t have that data. Just have in mind that some features will be empty if some of these columns are empty.

+
FITBIT_HEARTRATE_SUMMARY

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPFLAG_TO_MUTATE
LOCAL_DATE_TIMElocal_date_time
DEVICE_IDdevice_id
HEARTRATE_DAILY_RESTINGHRheartrate_daily_restinghr
HEARTRATE_DAILY_CALORIESOUTOFRANGEheartrate_daily_caloriesoutofrange
HEARTRATE_DAILY_CALORIESFATBURNheartrate_daily_caloriesfatburn
HEARTRATE_DAILY_CALORIESCARDIOheartrate_daily_caloriescardio
HEARTRATE_DAILY_CALORIESPEAKheartrate_daily_caloriespeak
+

MUTATION

+
    +
  • +

    COLUMN_MAPPINGS (None)

    +
  • +
  • +

    SCRIPTS

    +
    src/data/streams/mutations/fitbit/add_zero_timestamp.py
    +
    +
  • +
+
+

Note

+

add_zero_timestamp adds an all-zero column called timestamp that will be filled in later in the pipeline by readable_time.R converting LOCAL_DATE_TIME to a unix timestamp taking into account single or multiple time zones.

+
Example of the raw data RAPIDS expects for this data stream + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
device_idlocal_date_timeheartrate_daily_restinghrheartrate_daily_caloriesoutofrangeheartrate_daily_caloriesfatburnheartrate_daily_caloriescardioheartrate_daily_caloriespeak
a748ee1a-1d0b-4ae9-9074-279a2b6ba5242020-10-07721200.6102760.302015.20480
a748ee1a-1d0b-4ae9-9074-279a2b6ba5242020-10-08701100.1120660.001223.70880
a748ee1a-1d0b-4ae9-9074-279a2b6ba5242020-10-0969750.3615734.1516131.85790
+
+
+
+
FITBIT_HEARTRATE_INTRADAY

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPFLAG_TO_MUTATE
LOCAL_DATE_TIMElocal_date_time
DEVICE_IDdevice_id
HEARTRATEheartrate
HEARTRATE_ZONEheartrate_zone
+

MUTATION

+
    +
  • +

    COLUMN_MAPPINGS (None)

    +
  • +
  • +

    SCRIPTS

    +
    src/data/streams/mutations/fitbit/add_zero_timestamp.py
    +
    +
  • +
+
+

Note

+

add_zero_timestamp adds an all-zero column called timestamp that will be filled in later in the pipeline by readable_time.R converting LOCAL_DATE_TIME to a unix timestamp taking into account single or multiple time zones.

+
Example of the raw data RAPIDS expects for this data stream + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
device_idlocal_date_timeheartrateheartrate_zone
a748ee1a-1d0b-4ae9-9074-279a2b6ba5242020-10-07 00:00:0068outofrange
a748ee1a-1d0b-4ae9-9074-279a2b6ba5242020-10-07 00:01:0067outofrange
a748ee1a-1d0b-4ae9-9074-279a2b6ba5242020-10-07 00:02:0067outofrange
+
+
+
+
FITBIT_SLEEP_SUMMARY

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPFLAG_TO_MUTATE
LOCAL_DATE_TIMEFLAG_TO_MUTATE
LOCAL_START_DATE_TIMElocal_start_date_time
LOCAL_END_DATE_TIMElocal_end_date_time
DEVICE_IDdevice_id
EFFICIENCYefficiency
MINUTES_AFTER_WAKEUPminutes_after_wakeup
MINUTES_ASLEEPminutes_asleep
MINUTES_AWAKEminutes_awake
MINUTES_TO_FALL_ASLEEPminutes_to_fall_asleep
MINUTES_IN_BEDminutes_in_bed
IS_MAIN_SLEEPis_main_sleep
TYPEtype
+

MUTATION

+
    +
  • +

    COLUMN_MAPPINGS (None)

    +
  • +
  • +

    SCRIPTS

    +
    - src/data/streams/mutations/fitbit/add_local_date_time.py
    +- src/data/streams/mutations/fitbit/add_zero_timestamp.py
    +
    +
  • +
+
+

Note

+

add_zero_timestamp adds an all-zero column called timestamp that will be filled in later in the pipeline by readable_time.R converting LOCAL_DATE_TIME to a unix timestamp taking into account single or multiple time zones.

+

Fitbit API has two versions for sleep data, v1 and v1.2. We support both but ignore v1’s count_awake, duration_awake, and count_awakenings, count_restless, duration_restless columns.

+
Example of the expected raw data + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
device_idlocal_start_date_timelocal_end_date_timeefficiencyminutes_after_wakeupminutes_asleepminutes_awakeminutes_to_fall_asleepminutes_in_bedis_main_sleeptype
a748ee1a-1d0b-4ae9-9074-279a2b6ba5242020-10-10 15:36:302020-10-10 16:37:009205550600classic
a748ee1a-1d0b-4ae9-9074-279a2b6ba5242020-10-10 01:46:302020-10-10 08:10:008803186503831stages
a748ee1a-1d0b-4ae9-9074-279a2b6ba5242020-10-11 00:12:302020-10-11 11:47:0089156213206941stages
a748ee1a-1d0b-4ae9-9074-279a2b6ba5242020-10-12 01:31:002020-10-12 09:34:309304156804831stages
+
+
+
+
FITBIT_SLEEP_INTRADAY

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPFLAG_TO_MUTATE
LOCAL_DATE_TIMElocal_date_time
DEVICE_IDdevice_id
TYPE_EPISODE_IDtype_episode_id
DURATIONduration
IS_MAIN_SLEEPis_main_sleep
TYPEtype
LEVELlevel
+

MUTATION

+
    +
  • +

    COLUMN_MAPPINGS (None)

    +
  • +
  • +

    SCRIPTS

    +
    src/data/streams/mutations/fitbit/add_zero_timestamp.py
    +
    +
  • +
+
+

Note

+

add_zero_timestamp adds an all-zero column called timestamp that will be filled in later in the pipeline by readable_time.R converting LOCAL_DATE_TIME to a unix timestamp taking into account single or multiple time zones.

+

Fitbit API has two versions for sleep data, v1 and v1.2, we support both.

+
Example of the expected raw data + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
device_idtype_episode_idlocal_date_timedurationlevelis_main_sleeptype
a748ee1a-1d0b-4ae9-9074-279a2b6ba52402020-10-10 15:36:3060restless0classic
a748ee1a-1d0b-4ae9-9074-279a2b6ba52402020-10-10 15:37:30660asleep0classic
a748ee1a-1d0b-4ae9-9074-279a2b6ba52402020-10-10 15:48:3060restless0classic
a748ee1a-1d0b-4ae9-9074-279a2b6ba524
a748ee1a-1d0b-4ae9-9074-279a2b6ba52412020-10-10 01:46:30420light1stages
a748ee1a-1d0b-4ae9-9074-279a2b6ba52412020-10-10 01:53:301230deep1stages
+
+
+
+
FITBIT_STEPS_SUMMARY

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPFLAG_TO_MUTATE
DEVICE_IDdevice_id
LOCAL_DATE_TIMElocal_date_time
STEPSsteps
+

MUTATION

+
    +
  • +

    COLUMN_MAPPINGS (None)

    +
  • +
  • +

    SCRIPTS

    +
    src/data/streams/mutations/fitbit/add_zero_timestamp.py
    +
    +
  • +
+
+

Note

+

add_zero_timestamp adds an all-zero column called timestamp that will be filled in later in the pipeline by readable_time.R converting LOCAL_DATE_TIME to a unix timestamp taking into account single or multiple time zones.

+
Example of the expected raw data + + + + + + + + + + + + + + + + + + + + + + + + +
device_idlocal_date_timesteps
a748ee1a-1d0b-4ae9-9074-279a2b6ba5242020-10-071775
a748ee1a-1d0b-4ae9-9074-279a2b6ba5242020-10-083201
a748ee1a-1d0b-4ae9-9074-279a2b6ba5242020-10-09998
+
+
+
+
FITBIT_STEPS_INTRADAY

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPFLAG_TO_MUTATE
DEVICE_IDdevice_id
LOCAL_DATE_TIMElocal_date_time
STEPSsteps
+

MUTATION

+
    +
  • +

    COLUMN_MAPPINGS (None)

    +
  • +
  • +

    SCRIPTS

    +
    src/data/streams/mutations/fitbit/add_zero_timestamp.py
    +
    +
  • +
+
+

Note

+

add_zero_timestamp adds an all-zero column called timestamp that will be filled in later in the pipeline by readable_time.R converting LOCAL_DATE_TIME to a unix timestamp taking into account single or multiple time zones.

+
Example of the expected raw data + + + + + + + + + + + + + + + + + + + + + + + + +
device_idlocal_date_timesteps
a748ee1a-1d0b-4ae9-9074-279a2b6ba5242020-10-07 00:00:005
a748ee1a-1d0b-4ae9-9074-279a2b6ba5242020-10-07 00:01:003
a748ee1a-1d0b-4ae9-9074-279a2b6ba5242020-10-07 00:02:000
+
+
+
+ + + + + + +

Comments

+ + + + + + +
+ +
+
+ +
+ + + + +
+
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/1.3/datastreams/fitbitparsed-mysql/index.html b/1.3/datastreams/fitbitparsed-mysql/index.html new file mode 100644 index 00000000..c598edb2 --- /dev/null +++ b/1.3/datastreams/fitbitparsed-mysql/index.html @@ -0,0 +1,2562 @@ + + + + + + + + + + + + + + + + + + + + + + fitbitparsed_mysql - RAPIDS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + +
+
+
+ + +
+
+ + + + + + + + +

fitbitparsed_mysql

+

This data stream handles Fitbit sensor data downloaded using the Fitbit Web API, parsed, and stored in a MySQL database. Please note that RAPIDS cannot query the API directly; you need to use other available tools or implement your own. Once you have your parsed sensor data in a MySQL database, RAPIDS can process it.

+
+

What is the difference between JSON and plain data streams

+

Most people will only need fitbitjson_* because they downloaded and stored their data directly from Fitbit’s API. However, if, for some reason, you don’t have access to that JSON data and instead only have the parsed data (columns and rows), you can use this data stream.

+
+

Container

+

The container should be a MySQL database with a table per sensor, each containing all participants’ data.

+

The script to connect and download data from this container is at: +

src/data/streams/fitbitparsed_mysql/container.R
+

+

Format

+

The format.yaml maps and transforms columns in your raw data stream to the mandatory columns RAPIDS needs for Fitbit sensors. This file is at:

+
src/data/streams/fitbitparsed_mysql/format.yaml
+
+

If you want to use this stream with your data, modify every sensor in format.yaml to map all columns except TIMESTAMP in [RAPIDS_COLUMN_MAPPINGS] to your raw data column names.

+

All columns are mandatory; however, all except device_id and local_date_time can be empty if you don’t have that data. Just have in mind that some features will be empty if some of these columns are empty.

+
FITBIT_HEARTRATE_SUMMARY

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPFLAG_TO_MUTATE
LOCAL_DATE_TIMElocal_date_time
DEVICE_IDdevice_id
HEARTRATE_DAILY_RESTINGHRheartrate_daily_restinghr
HEARTRATE_DAILY_CALORIESOUTOFRANGEheartrate_daily_caloriesoutofrange
HEARTRATE_DAILY_CALORIESFATBURNheartrate_daily_caloriesfatburn
HEARTRATE_DAILY_CALORIESCARDIOheartrate_daily_caloriescardio
HEARTRATE_DAILY_CALORIESPEAKheartrate_daily_caloriespeak
+

MUTATION

+
    +
  • +

    COLUMN_MAPPINGS (None)

    +
  • +
  • +

    SCRIPTS

    +
    src/data/streams/mutations/fitbit/add_zero_timestamp.py
    +
    +
  • +
+
+

Note

+

add_zero_timestamp adds an all-zero column called timestamp that will be filled in later in the pipeline by readable_time.R converting LOCAL_DATE_TIME to a unix timestamp taking into account single or multiple time zones.

+
Example of the raw data RAPIDS expects for this data stream + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
device_idlocal_date_timeheartrate_daily_restinghrheartrate_daily_caloriesoutofrangeheartrate_daily_caloriesfatburnheartrate_daily_caloriescardioheartrate_daily_caloriespeak
a748ee1a-1d0b-4ae9-9074-279a2b6ba5242020-10-07721200.6102760.302015.20480
a748ee1a-1d0b-4ae9-9074-279a2b6ba5242020-10-08701100.1120660.001223.70880
a748ee1a-1d0b-4ae9-9074-279a2b6ba5242020-10-0969750.3615734.1516131.85790
+
+
+
+
FITBIT_HEARTRATE_INTRADAY

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPFLAG_TO_MUTATE
LOCAL_DATE_TIMElocal_date_time
DEVICE_IDdevice_id
HEARTRATEheartrate
HEARTRATE_ZONEheartrate_zone
+

MUTATION

+
    +
  • +

    COLUMN_MAPPINGS (None)

    +
  • +
  • +

    SCRIPTS

    +
    src/data/streams/mutations/fitbit/add_zero_timestamp.py
    +
    +
  • +
+
+

Note

+

add_zero_timestamp adds an all-zero column called timestamp that will be filled in later in the pipeline by readable_time.R converting LOCAL_DATE_TIME to a unix timestamp taking into account single or multiple time zones.

+
Example of the raw data RAPIDS expects for this data stream + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
device_idlocal_date_timeheartrateheartrate_zone
a748ee1a-1d0b-4ae9-9074-279a2b6ba5242020-10-07 00:00:0068outofrange
a748ee1a-1d0b-4ae9-9074-279a2b6ba5242020-10-07 00:01:0067outofrange
a748ee1a-1d0b-4ae9-9074-279a2b6ba5242020-10-07 00:02:0067outofrange
+
+
+
+
FITBIT_SLEEP_SUMMARY

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPFLAG_TO_MUTATE
LOCAL_DATE_TIMEFLAG_TO_MUTATE
LOCAL_START_DATE_TIMElocal_start_date_time
LOCAL_END_DATE_TIMElocal_end_date_time
DEVICE_IDdevice_id
EFFICIENCYefficiency
MINUTES_AFTER_WAKEUPminutes_after_wakeup
MINUTES_ASLEEPminutes_asleep
MINUTES_AWAKEminutes_awake
MINUTES_TO_FALL_ASLEEPminutes_to_fall_asleep
MINUTES_IN_BEDminutes_in_bed
IS_MAIN_SLEEPis_main_sleep
TYPEtype
+

MUTATION

+
    +
  • +

    COLUMN_MAPPINGS (None)

    +
  • +
  • +

    SCRIPTS

    +
    - src/data/streams/mutations/fitbit/add_local_date_time.py
    +- src/data/streams/mutations/fitbit/add_zero_timestamp.py
    +
    +
  • +
+
+

Note

+

add_zero_timestamp adds an all-zero column called timestamp that will be filled in later in the pipeline by readable_time.R converting LOCAL_DATE_TIME to a unix timestamp taking into account single or multiple time zones.

+

Fitbit API has two versions for sleep data, v1 and v1.2. We support both but ignore v1’s count_awake, duration_awake, and count_awakenings, count_restless, duration_restless columns.

+
Example of the expected raw data + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
device_idlocal_start_date_timelocal_end_date_timeefficiencyminutes_after_wakeupminutes_asleepminutes_awakeminutes_to_fall_asleepminutes_in_bedis_main_sleeptype
a748ee1a-1d0b-4ae9-9074-279a2b6ba5242020-10-10 15:36:302020-10-10 16:37:009205550600classic
a748ee1a-1d0b-4ae9-9074-279a2b6ba5242020-10-10 01:46:302020-10-10 08:10:008803186503831stages
a748ee1a-1d0b-4ae9-9074-279a2b6ba5242020-10-11 00:12:302020-10-11 11:47:0089156213206941stages
a748ee1a-1d0b-4ae9-9074-279a2b6ba5242020-10-12 01:31:002020-10-12 09:34:309304156804831stages
+
+
+
+
FITBIT_SLEEP_INTRADAY

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPFLAG_TO_MUTATE
LOCAL_DATE_TIMElocal_date_time
DEVICE_IDdevice_id
TYPE_EPISODE_IDtype_episode_id
DURATIONduration
IS_MAIN_SLEEPis_main_sleep
TYPEtype
LEVELlevel
+

MUTATION

+
    +
  • +

    COLUMN_MAPPINGS (None)

    +
  • +
  • +

    SCRIPTS

    +
    src/data/streams/mutations/fitbit/add_zero_timestamp.py
    +
    +
  • +
+
+

Note

+

add_zero_timestamp adds an all-zero column called timestamp that will be filled in later in the pipeline by readable_time.R converting LOCAL_DATE_TIME to a unix timestamp taking into account single or multiple time zones.

+

Fitbit API has two versions for sleep data, v1 and v1.2, we support both.

+
Example of the expected raw data + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
device_idtype_episode_idlocal_date_timedurationlevelis_main_sleeptype
a748ee1a-1d0b-4ae9-9074-279a2b6ba52402020-10-10 15:36:3060restless0classic
a748ee1a-1d0b-4ae9-9074-279a2b6ba52402020-10-10 15:37:30660asleep0classic
a748ee1a-1d0b-4ae9-9074-279a2b6ba52402020-10-10 15:48:3060restless0classic
a748ee1a-1d0b-4ae9-9074-279a2b6ba524
a748ee1a-1d0b-4ae9-9074-279a2b6ba52412020-10-10 01:46:30420light1stages
a748ee1a-1d0b-4ae9-9074-279a2b6ba52412020-10-10 01:53:301230deep1stages
+
+
+
+
FITBIT_STEPS_SUMMARY

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPFLAG_TO_MUTATE
DEVICE_IDdevice_id
LOCAL_DATE_TIMElocal_date_time
STEPSsteps
+

MUTATION

+
    +
  • +

    COLUMN_MAPPINGS (None)

    +
  • +
  • +

    SCRIPTS

    +
    src/data/streams/mutations/fitbit/add_zero_timestamp.py
    +
    +
  • +
+
+

Note

+

add_zero_timestamp adds an all-zero column called timestamp that will be filled in later in the pipeline by readable_time.R converting LOCAL_DATE_TIME to a unix timestamp taking into account single or multiple time zones.

+
Example of the expected raw data + + + + + + + + + + + + + + + + + + + + + + + + +
device_idlocal_date_timesteps
a748ee1a-1d0b-4ae9-9074-279a2b6ba5242020-10-071775
a748ee1a-1d0b-4ae9-9074-279a2b6ba5242020-10-083201
a748ee1a-1d0b-4ae9-9074-279a2b6ba5242020-10-09998
+
+
+
+
FITBIT_STEPS_INTRADAY

RAPIDS_COLUMN_MAPPINGS

+ + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnStream column
TIMESTAMPFLAG_TO_MUTATE
DEVICE_IDdevice_id
LOCAL_DATE_TIMElocal_date_time
STEPSsteps
+

MUTATION

+
    +
  • +

    COLUMN_MAPPINGS (None)

    +
  • +
  • +

    SCRIPTS

    +
    src/data/streams/mutations/fitbit/add_zero_timestamp.py
    +
    +
  • +
+
+

Note

+

add_zero_timestamp adds an all-zero column called timestamp that will be filled in later in the pipeline by readable_time.R converting LOCAL_DATE_TIME to a unix timestamp taking into account single or multiple time zones.

+
Example of the expected raw data + + + + + + + + + + + + + + + + + + + + + + + + +
device_idlocal_date_timesteps
a748ee1a-1d0b-4ae9-9074-279a2b6ba5242020-10-07 00:00:005
a748ee1a-1d0b-4ae9-9074-279a2b6ba5242020-10-07 00:01:003
a748ee1a-1d0b-4ae9-9074-279a2b6ba5242020-10-07 00:02:000
+
+
+
+ + + + + + +

Comments

+ + + + + + +
+ +
+
+ +
+ + + + +
+
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/1.3/datastreams/mandatory-empatica-format/index.html b/1.3/datastreams/mandatory-empatica-format/index.html new file mode 100644 index 00000000..9010f893 --- /dev/null +++ b/1.3/datastreams/mandatory-empatica-format/index.html @@ -0,0 +1,2054 @@ + + + + + + + + + + + + + + + + + + + + + + Mandatory Empatica Format - RAPIDS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + +
+
+
+ + +
+
+ + + + + + + + +

Mandatory Empatica Format

+

This is a description of the format RAPIDS needs to process data for the following Empatica sensors.

+
EMPATICA_ACCELEROMETER + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnDescription
TIMESTAMPAn UNIX timestamp (13 digits) when a row of data was logged
DEVICE_IDA string that uniquely identifies a device
DOUBLE_VALUES_0x axis of acceleration
DOUBLE_VALUES_1y axis of acceleration
DOUBLE_VALUES_2z axis of acceleration
+
+
EMPATICA_HEARTRATE + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnDescription
TIMESTAMPAn UNIX timestamp (13 digits) when a row of data was logged (automatically created by RAPIDS)
DEVICE_IDA string that uniquely identifies a device
HEARTRATEIntraday heartrate
+
+
EMPATICA_TEMPERATURE + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnDescription
TIMESTAMPAn UNIX timestamp (13 digits) when a row of data was logged (automatically created by RAPIDS)
DEVICE_IDA string that uniquely identifies a device
TEMPERATUREtemperature
+
+
EMPATICA_ELECTRODERMAL_ACTIVITY + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnDescription
TIMESTAMPAn UNIX timestamp (13 digits) when a row of data was logged (automatically created by RAPIDS)
DEVICE_IDA string that uniquely identifies a device
ELECTRODERMAL_ACTIVITYelectrical conductance
+
+
EMPATICA_BLOOD_VOLUME_PULSE + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnDescription
TIMESTAMPAn UNIX timestamp (13 digits) when a row of data was logged (automatically created by RAPIDS)
DEVICE_IDA string that uniquely identifies a device
BLOOD_VOLUME_PULSEblood volume pulse
+
+
EMPATICA_INTER_BEAT_INTERVAL + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnDescription
TIMESTAMPAn UNIX timestamp (13 digits) when a row of data was logged (automatically created by RAPIDS)
DEVICE_IDA string that uniquely identifies a device
INTER_BEAT_INTERVALinter beat interval
+
+
EMPATICA_TAGS + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnDescription
TIMESTAMPAn UNIX timestamp (13 digits) when a row of data was logged (automatically created by RAPIDS)
DEVICE_IDA string that uniquely identifies a device
TAGStags
+
+ + + + + + +

Comments

+ + + + + + +
+ +
+
+ +
+ + + + +
+
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/1.3/datastreams/mandatory-fitbit-format/index.html b/1.3/datastreams/mandatory-fitbit-format/index.html new file mode 100644 index 00000000..1a06c878 --- /dev/null +++ b/1.3/datastreams/mandatory-fitbit-format/index.html @@ -0,0 +1,2119 @@ + + + + + + + + + + + + + + + + + + + + + + Mandatory Fitbit Format - RAPIDS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + +
+
+
+ + +
+
+ + + + + + + + +

Mandatory Fitbit Format

+

This is a description of the format RAPIDS needs to process data for the following Fitbit sensors.

+
FITBIT_HEARTRATE_SUMMARY + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnDescription
TIMESTAMPAn UNIX timestamp (13 digits) when a row of data was logged (automatically created by RAPIDS)
LOCAL_DATE_TIMEDate time string with format yyyy-mm-dd hh:mm:ss
DEVICE_IDA string that uniquely identifies a device
HEARTRATE_DAILY_RESTINGHRDaily resting heartrate
HEARTRATE_DAILY_CALORIESOUTOFRANGECalories spent while heartrate was oustide a heartrate zone
HEARTRATE_DAILY_CALORIESFATBURNCalories spent while heartrate was inside the fat burn zone
HEARTRATE_DAILY_CALORIESCARDIOCalories spent while heartrate was inside the cardio zone
HEARTRATE_DAILY_CALORIESPEAKCalories spent while heartrate was inside the peak zone
+
+
FITBIT_HEARTRATE_INTRADAY + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnDescription
TIMESTAMPAn UNIX timestamp (13 digits) when a row of data was logged (automatically created by RAPIDS)
LOCAL_DATE_TIMEDate time string with format yyyy-mm-dd hh:mm:ss
DEVICE_IDA string that uniquely identifies a device
HEARTRATEIntraday heartrate
HEARTRATE_ZONEHeartrate zone that HEARTRATE belongs to. It is based on the heartrate zone ranges of each device
+
+
FITBIT_SLEEP_SUMMARY + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnDescription
TIMESTAMPAn UNIX timestamp (13 digits) when a row of data was logged (automatically created by RAPIDS)
LOCAL_DATE_TIMEDate time string with format yyyy-mm-dd 00:00:00, the date is the same as the start date of a daily sleep episode if its time is after SLEEP_SUMMARY_LAST_NIGHT_END, otherwise it is the day before the start date of that sleep episode
LOCAL_START_DATE_TIMEDate time string with format yyyy-mm-dd hh:mm:ss representing the start of a daily sleep episode
LOCAL_END_DATE_TIMEDate time string with format yyyy-mm-dd hh:mm:ss representing the end of a daily sleep episode
DEVICE_IDA string that uniquely identifies a device
EFFICIENCYSleep efficiency computed by fitbit as time asleep / (total time in bed - time to fall asleep)
MINUTES_AFTER_WAKEUPMinutes the participant spent in bed after waking up
MINUTES_ASLEEPMinutes the participant was asleep
MINUTES_AWAKEMinutes the participant was awake
MINUTES_TO_FALL_ASLEEPMinutes the participant spent in bed before falling asleep
MINUTES_IN_BEDMinutes the participant spent in bed across the sleep episode
IS_MAIN_SLEEP0 if this episode is a nap, or 1 if it is a main sleep episode
TYPEstages or classic sleep data
+
+
FITBIT_SLEEP_INTRADAY + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnDescription
TIMESTAMPAn UNIX timestamp (13 digits) when a row of data was logged (automatically created by RAPIDS)
LOCAL_DATE_TIMEDate time string with format yyyy-mm-dd hh:mm:ss, this either is a copy of LOCAL_START_DATE_TIME or LOCAL_END_DATE_TIME depending on which column is used to assign an episode to a specific day
DEVICE_IDA string that uniquely identifies a device
TYPE_EPISODE_IDAn id for each unique main or nap episode. Main and nap episodes have different levels, each row in this table is one of such levels, so multiple rows can have the same TYPE_EPISODE_ID
DURATIONDuration of the episode level in minutes
IS_MAIN_SLEEP0 if this episode level belongs to a nap, or 1 if it belongs to a main sleep episode
TYPEtype of level: stages or classic sleep data
LEVELFor stages levels one of wake, deep, light, or rem. For classic levels one of awake, restless, and asleep
+
+
FITBIT_STEPS_SUMMARY + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnDescription
TIMESTAMPAn UNIX timestamp (13 digits) when a row of data was logged (automatically created by RAPIDS)
LOCAL_DATE_TIMEDate time string with format yyyy-mm-dd hh:mm:ss
DEVICE_IDA string that uniquely identifies a device
STEPSDaily step count
+
+
FITBIT_STEPS_INTRADAY + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnDescription
TIMESTAMPAn UNIX timestamp (13 digits) when a row of data was logged (automatically created by RAPIDS)
LOCAL_DATE_TIMEDate time string with format yyyy-mm-dd hh:mm:ss
DEVICE_IDA string that uniquely identifies a device
STEPSIntraday step count (usually every minute)
+
+ + + + + + +

Comments

+ + + + + + +
+ +
+
+ +
+ + + + +
+
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/1.3/datastreams/mandatory-phone-format/index.html b/1.3/datastreams/mandatory-phone-format/index.html new file mode 100644 index 00000000..35a5dfd0 --- /dev/null +++ b/1.3/datastreams/mandatory-phone-format/index.html @@ -0,0 +1,2453 @@ + + + + + + + + + + + + + + + + + + + + + + Mandatory Phone Format - RAPIDS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + +
+
+
+ + +
+
+ + + + + + + + +

Mandatory Phone Format

+

This is a description of the format RAPIDS needs to process data for the following PHONE sensors.

+

See examples in the CSV files inside rapids_example_csv.zip

+
PHONE_ACCELEROMETER + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnDescription
TIMESTAMPAn UNIX timestamp (13 digits) when a row of data was logged
DEVICE_IDA string that uniquely identifies a device
DOUBLE_VALUES_0x axis of acceleration
DOUBLE_VALUES_1y axis of acceleration
DOUBLE_VALUES_2z axis of acceleration
+
+
PHONE_ACTIVITY_RECOGNITION + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnDescription
TIMESTAMPAn UNIX timestamp (13 digits) when a row of data was logged
DEVICE_IDA string that uniquely identifies a device
ACTIVITY_NAMEAn string that denotes current activity name: in_vehicle, on_bicycle, on_foot, still, unknown, tilting, walking or running
ACTIVITY_TYPEAn integer (ranged from 0 to 8) that denotes current activity type
CONFIDENCEAn integer (ranged from 0 to 100) that denotes the prediction accuracy
+
+
PHONE_APPLICATIONS_CRASHES + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnDescription
TIMESTAMPAn UNIX timestamp (13 digits) when a row of data was logged
DEVICE_IDA string that uniquely identifies a device
PACKAGE_NAMEApplication’s package name
APPLICATION_NAMEApplication’s localized name
APPLICATION_VERSIONApplication’s version code
ERROR_SHORTShort description of the error
ERROR_LONGMore verbose version of the error description
ERROR_CONDITION1 = code error; 2 = non-responsive (ANR error)
IS_SYSTEM_APPDevice’s pre-installed application
+
+
PHONE_APPLICATIONS_FOREGROUND + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnDescription
TIMESTAMPAn UNIX timestamp (13 digits) when a row of data was logged
DEVICE_IDA string that uniquely identifies a device
PACKAGE_NAMEApplication’s package name
APPLICATION_NAMEApplication’s localized name
IS_SYSTEM_APPDevice’s pre-installed application
+
+
PHONE_APPLICATIONS_NOTIFICATIONS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnDescription
TIMESTAMPAn UNIX timestamp (13 digits) when a row of data was logged
DEVICE_IDA string that uniquely identifies a device
PACKAGE_NAMEApplication’s package name
APPLICATION_NAMEApplication’s localized name
TEXTNotification’s header text, not the content
SOUNDNotification’s sound source (if applicable)
VIBRATENotification’s vibration pattern (if applicable)
DEFAULTSIf notification was delivered according to device’s default settings
FLAGSAn integer that denotes Android notification flag
+
+
PHONE_BATTERY + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnDescription
TIMESTAMPAn UNIX timestamp (13 digits) when a row of data was logged
DEVICE_IDA string that uniquely identifies a device
BATTERY_STATUSAn integer that denotes battery status: 0 or 1 = unknown, 2 = charging, 3 = discharging, 4 = not charging, 5 = full
BATTERY_LEVELAn integer that denotes battery level, between 0 and BATTERY_SCALE
BATTERY_SCALEAn integer that denotes the maximum battery level
+
+
PHONE_BLUETOOTH + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnDescription
TIMESTAMPAn UNIX timestamp (13 digits) when a row of data was logged
DEVICE_IDA string that uniquely identifies a device
BT_ADDRESSMAC address of the device’s Bluetooth sensor
BT_NAMEUser assigned name of the device’s Bluetooth sensor
BT_RSSIThe RSSI dB to the scanned device
+
+
PHONE_CALLS + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnDescription
TIMESTAMPAn UNIX timestamp (13 digits) when a row of data was logged
DEVICE_IDA string that uniquely identifies a device
CALL_TYPEAn integer that denotes call type: 1 = incoming, 2 = outgoing, 3 = missed
CALL_DURATIONLength of the call session
TRACESHA-1 one-way source/target of the call
+
+
PHONE_CONVERSATION + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnDescription
TIMESTAMPAn UNIX timestamp (13 digits) when a row of data was logged
DEVICE_IDA string that uniquely identifies a device
DOUBLE_ENERGYA number that denotes the amplitude of an audio sample (L2-norm of the audio frame)
INFERENCEAn integer (ranged from 0 to 3) that denotes the type of an audio sample: 0 = silence, 1 = noise, 2 = voice, 3 = unknown
DOUBLE_CONVO_STARTUNIX timestamp (13 digits) of the beginning of a conversation
DOUBLE_CONVO_ENDUNIX timestamp (13 digits) of the end of a conversation
+
+
PHONE_KEYBOARD + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnDescription
TIMESTAMPAn UNIX timestamp (13 digits) when a row of data was logged
DEVICE_IDA string that uniquely identifies a device
PACKAGE_NAMEThe application’s package name of keyboard interaction
BEFORE_TEXTThe previous keyboard input (empty if password)
CURRENT_TEXTThe current keyboard input (empty if password)
IS_PASSWORDAn integer: 0 = not password; 1 = password
+
+
PHONE_LIGHT + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnDescription
TIMESTAMPAn UNIX timestamp (13 digits) when a row of data was logged
DEVICE_IDA string that uniquely identifies a device
DOUBLE_LIGHT_LUXThe ambient luminance in lux units
ACCURACYAn integer that denotes the sensor’s accuracy level: 3 = maximum accuracy, 2 = medium accuracy, 1 = low accuracy
+
+
PHONE_LOCATIONS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnDescription
TIMESTAMPAn UNIX timestamp (13 digits) when a row of data was logged
DEVICE_IDA string that uniquely identifies a device
DOUBLE_LATITUDEThe location’s latitude, in degrees
DOUBLE_LONGITUDEThe location’s longitude, in degrees
DOUBLE_BEARINGThe location’s bearing, in degrees
DOUBLE_SPEEDThe speed if available, in meters/second over ground
DOUBLE_ALTITUDEThe altitude if available, in meters above sea level
PROVIDERA string that denotes the provider: gps, fused or network
ACCURACYThe estimated location accuracy
+
+
PHONE_LOG + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnDescription
TIMESTAMPAn UNIX timestamp (13 digits) when a row of data was logged
DEVICE_IDA string that uniquely identifies a device
LOG_MESSAGEA string that denotes log message
+
+
PHONE_MESSAGES + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnDescription
TIMESTAMPAn UNIX timestamp (13 digits) when a row of data was logged
DEVICE_IDA string that uniquely identifies a device
MESSAGE_TYPEAn integer that denotes message type: 1 = received, 2 = sent
TRACESHA-1 one-way source/target of the message
+
+
PHONE_SCREEN + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnDescription
TIMESTAMPAn UNIX timestamp (13 digits) when a row of data was logged
DEVICE_IDA string that uniquely identifies a device
SCREEN_STATUSAn integer that denotes screen status: 0 = off, 1 = on, 2 = locked, 3 = unlocked
+
+
PHONE_WIFI_CONNECTED + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnDescription
TIMESTAMPAn UNIX timestamp (13 digits) when a row of data was logged
DEVICE_IDA string that uniquely identifies a device
MAC_ADDRESSDevice’s MAC address
SSIDCurrently connected access point network name
BSSIDCurrently connected access point MAC address
+
+
PHONE_WIFI_VISIBLE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RAPIDS columnDescription
TIMESTAMPAn UNIX timestamp (13 digits) when a row of data was logged
DEVICE_IDA string that uniquely identifies a device
SSIDDetected access point network name
BSSIDDetected access point MAC address
SECURITYActive security protocols
FREQUENCYWi-Fi band frequency (e.g., 2427, 5180), in Hz
RSSIRSSI dB to the scanned device
+
+ + + + + + +

Comments

+ + + + + + +
+ +
+
+ +
+ + + + +
+
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/1.3/developers/documentation/index.html b/1.3/developers/documentation/index.html new file mode 100644 index 00000000..7ad8360d --- /dev/null +++ b/1.3/developers/documentation/index.html @@ -0,0 +1,2012 @@ + + + + + + + + + + + + + + + + + + + + + + Documentation - RAPIDS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + +
+
+
+ + +
+
+ + + + + + + + +

Documentation

+

We use mkdocs with the material theme to write these docs. Whenever you make any changes, just push them back to the repo and the documentation will be deployed automatically.

+

Set up development environment

+
    +
  1. Make sure your conda environment is active
  2. +
  3. pip install mkdocs
  4. +
  5. pip install mkdocs-material
  6. +
+

Preview

+

Run the following command in RAPIDS root folder and go to http://127.0.0.1:8000:

+
mkdocs serve
+
+

File Structure

+

The documentation config file is /mkdocs.yml, if you are adding new .md files to the docs modify the nav attribute at the bottom of that file. You can use the hierarchy there to find all the files that appear in the documentation.

+

Reference

+

Check this page to get familiar with the different visual elements we can use in the docs (admonitions, code blocks, tables, etc.) You can also refer to /docs/setup/installation.md and /docs/setup/configuration.md to see practical examples of these elements.

+
+

Hint

+

Any links to internal pages should be relative to the current page. For example, any link from this page (documentation) which is inside ./developers should begin with ../ to go one folder level up like: +

[mylink](../setup/installation.md)
+

+
+

Extras

+

You can insert emojis using this syntax :[SOURCE]-[ICON_NAME] from the following sources:

+ +

You can use this page to create markdown tables more easily

+ + + + + + +

Comments

+ + + + + + +
+ +
+
+ +
+ + + + +
+
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/1.3/developers/git-flow/index.html b/1.3/developers/git-flow/index.html new file mode 100644 index 00000000..af0b4432 --- /dev/null +++ b/1.3/developers/git-flow/index.html @@ -0,0 +1,2100 @@ + + + + + + + + + + + + + + + + + + + + + + Git Flow - RAPIDS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + +
+
+
+ + +
+
+ + + + + + + + +

Git Flow

+

We use the develop/master variation of the OneFlow git flow

+

Add New Features

+

We use feature (topic) branches to implement new features

+
+

You are an internal developer if you have writing permissions to the repository.

+

Most feature branches are never pushed to the repo, only do so if you expect that its development will take days (to avoid losing your work if you computer is damaged). Otherwise follow the following instructions to locally rebase your feature branch into develop and push those rebased changes online.

+

Starting your feature branch

+
    +
  1. Pull the latest develop +
    git checkout develop
    +git pull
    +
  2. +
  3. Create your feature branch +
    git checkout -b feature/feature1
    +
  4. +
  5. Add, modify or delete the necessary files to add your new feature
  6. +
  7. Update the change log (docs/change-log.md)
  8. +
  9. Stage and commit your changes using VS Code git GUI or the following commands +
    git add modified-file1 modified-file2
    +git commit -m "Add my new feature" # use a concise description
    +
  10. +
+

Merging back your feature branch

+

If your changes took time to be implemented it is possible that there are new commits in our develop branch, so we need to rebase your feature branch.

+
    +
  1. +

    Fetch the latest changes to develop +

    git fetch origin develop
    +

    +
  2. +
  3. +

    Rebase your feature branch +

    git checkout feature/feature1
    +git rebase -i develop
    +

    +
  4. +
  5. +

    Integrate your new feature to develop +

    git checkout develop
    +git merge --no-ff feature/feature1 # (use the default merge message)
    +git push origin develop
    +git branch -d feature/feature1
    +

    +
  6. +
+
+
+

You are an external developer if you do NOT have writing permissions to the repository.

+

Starting your feature branch

+
    +
  1. Fork and clone our repository on Github
  2. +
  3. Switch to the latest develop +
    git checkout develop
    +
  4. +
  5. Create your feature branch +
    git checkout -b feature/external-test
    +
  6. +
  7. Add, modify or delete the necessary files to add your new feature
  8. +
  9. Stage and commit your changes using VS Code git GUI or the following commands +
    git add modified-file1 modified-file2
    +git commit -m "Add my new feature" # use a concise description
    +
  10. +
+

Merging back your feature branch

+

If your changes took time to be implemented, it is possible that there are new commits in our develop branch, so we need to rebase your feature branch.

+
    +
  1. +

    Add our repo as another remote +

    git remote add upstream https://github.com/carissalow/rapids/
    +

    +
  2. +
  3. +

    Fetch the latest changes to develop +

    git fetch upstream develop 
    +

    +
  4. +
  5. +

    Rebase your feature branch +

    git checkout feature/external-test
    +git rebase -i develop
    +

    +
  6. +
  7. +

    Push your feature branch online +

    git push --set-upstream origin feature/external-test
    +

    +
  8. +
  9. +

    Open a pull request to the develop branch using Github’s GUI

    +
  10. +
+
+
+

Release a New Version

+
    +
  1. Pull the latest develop +
    git checkout develop
    +git pull
    +
  2. +
  3. Create a new release branch +
    git describe --abbrev=0 --tags # Bump the release (0.1.0 to 0.2.0 => NEW_HOTFIX)
    +git checkout -b release/v[NEW_RELEASE] develop
    +
  4. +
  5. Add new tag +
    git tag v[NEW_RELEASE]
    +
  6. +
  7. Merge and push the release branch +
    git checkout develop
    +git merge release/v[NEW_RELEASE]
    +git push --tags origin develop
    +git branch -d release/v[NEW_RELEASE]
    +
  8. +
  9. Fast-forward master +
    git checkout master
    +git merge --ff-only develop
    +git push
    +
  10. +
  11. Go to GitHub and create a new release based on the newest tag v[NEW_RELEASE] (remember to add the change log)
  12. +
+

Release a Hotfix

+
    +
  1. Pull the latest master +
    git checkout master
    +git pull
    +
  2. +
  3. Start a hotfix branch +
    git describe --abbrev=0 --tags # Bump the hotfix (0.1.0 to 0.1.1 => NEW_HOTFIX)
    +git checkout -b hotfix/v[NEW_HOTFIX] master
    +
  4. +
  5. Fix whatever needs to be fixed
  6. +
  7. Update the change log
  8. +
  9. Tag and merge the hotfix +
    git tag v[NEW_HOTFIX]
    +git checkout develop
    +git merge hotfix/v[NEW_HOTFIX]
    +git push --tags origin develop
    +git branch -d hotfix/v[NEW_HOTFIX]
    +
  10. +
  11. Fast-forward master +
    git checkout master
    +git merge --ff-only v[NEW_HOTFIX]
    +git push
    +
  12. +
  13. Go to GitHub and create a new release based on the newest tag v[NEW_HOTFIX] (remember to add the change log)
  14. +
+ + + + + + +

Comments

+ + + + + + +
+ +
+
+ +
+ + + + +
+
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/1.3/developers/remote-support/index.html b/1.3/developers/remote-support/index.html new file mode 100644 index 00000000..3b2247ca --- /dev/null +++ b/1.3/developers/remote-support/index.html @@ -0,0 +1,1897 @@ + + + + + + + + + + + + + + + + + + + + + + Remote Support - RAPIDS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + +
+
+
+ + +
+
+ + + + + + + + +

Remote Support

+

We use the Live Share extension of Visual Studio Code to debug bugs when sharing data or database credentials is not possible.

+
    +
  1. Install Visual Studio Code
  2. +
  3. Open your RAPIDS root folder in a new VSCode window
  4. +
  5. Open a new terminal in Visual Studio Code Terminal > New terminal
  6. +
  7. Install the Live Share extension pack
  8. +
  9. +

    Press Ctrl+P or Cmd+P and run this command:

    +
    >live share: start collaboration session
    +
    +
  10. +
  11. +

    Follow the instructions and share the session link you receive

    +
  12. +
+ + + + + + +

Comments

+ + + + + + +
+ +
+
+ +
+ + + + +
+
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/1.3/developers/test-cases/index.html b/1.3/developers/test-cases/index.html new file mode 100644 index 00000000..61231d0f --- /dev/null +++ b/1.3/developers/test-cases/index.html @@ -0,0 +1,2736 @@ + + + + + + + + + + + + + + + + + + + + + + Test cases - RAPIDS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + +
+
+
+ + +
+
+ + + + + + + + +

Test Cases

+

Along with the continued development and the addition of new sensors and features to the RAPIDS pipeline, tests for the currently available sensors and features are being implemented. Since this is a Work In Progress this page will be updated with the list of sensors and features for which testing is available. For each of the sensors listed a description of the data used for testing (test cases) are outline. Currently for all intent and testing purposes the tests/data/raw/test01/ contains all the test data files for testing android data formats and tests/data/raw/test02/ contains all the test data files for testing iOS data formats. It follows that the expected (verified output) are contained in the tests/data/processed/test01/ and tests/data/processed/test02/ for Android and iOS respectively. tests/data/raw/test03/ and tests/data/raw/test04/ contain data files for testing empty raw data files for android and iOS respectively.

+

The following is a list of the sensors that testing is currently available.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SensorProviderPeriodicFrequencyEvent
Phone AccelerometerPandaNNN
Phone AccelerometerRAPIDSNNN
Phone Activity RecognitionRAPIDSNNN
Phone Applications ForegroundRAPIDSNNN
Phone BatteryRAPIDSYYN
Phone BluetoothDoryabNNN
Phone BluetoothRAPIDSYYY
Phone CallsRAPIDSYYN
Phone ConversationRAPIDSYYN
Phone Data YieldRAPIDSNNN
Phone LightRAPIDSYYN
Phone LocationsDoryabNNN
Phone LocationsBarnettNNN
Phone MessagesRAPIDSYYN
Phone ScreenRAPIDSYNN
Phone WiFi ConnectedRAPIDSYYN
Phone WiFi VisibleRAPIDSYYN
Fitbit Calories IntradayRAPIDSYYY
Fitbit Data YieldRAPIDSNNN
Fitbit Heart Rate SummaryRAPIDSNNN
Fitbit Heart Rate IntradayRAPIDSNNN
Fitbit Sleep SummaryRAPIDSNNN
Fitbit Sleep IntradayRAPIDSYYY
Fitbit Sleep IntradayPRICEYYY
Fitbit Steps SummaryRAPIDSNNN
Fitbit Steps IntradayRAPIDSNNN
+

Messages (SMS)

+
    +
  • The raw message data file contains data for 2 separate days.
  • +
  • The data for the first day contains records 5 records for every + epoch.
  • +
  • The second day's data contains 6 records for each of only 2 + epoch (currently morning and evening)
  • +
  • The raw message data contains records for both message_types + (i.e. recieved and sent) in both days in all epochs. The + number records with each message_types per epoch is randomly + distributed There is at least one records with each + message_types per epoch.
  • +
  • There is one raw message data file each, as described above, for + testing both iOS and Android data.
  • +
  • There is also an additional empty data file for both android and + iOS for testing empty data files
  • +
+

Calls

+

Due to the difference in the format of the raw call data for iOS and Android the following is the expected results the calls_with_datetime_unified.csv. This would give a better idea of the use cases being tested since the calls_with_datetime_unified.csv would make both the iOS and Android data comparable.

+
    +
  • The call data would contain data for 2 days.
  • +
  • The data for the first day contains 6 records for every epoch.
  • +
  • The second day's data contains 6 records for each of only 2 + epoch (currently morning and evening)
  • +
  • The call data contains records for all call_types (i.e. + incoming, outgoing and missed) in both days in all epochs. + The number records with each of the call_types per epoch is + randomly distributed. There is at least one records with each + call_types per epoch.
  • +
  • There is one call data file each, as described above, for testing + both iOS and Android data.
  • +
  • There is also an additional empty data file for both android and + iOS for testing empty data files
  • +
+

Screen

+

Due to the difference in the format of the raw screen data for iOS and Android the following is the expected results the screen_deltas.csv. This would give a better idea of the use cases being tested since the screen_eltas.csv would make both the iOS and Android data comparable These files are used to calculate the features for the screen sensor

+
    +
  • The screen delta data file contains data for 1 day.
  • +
  • The screen delta data contains 1 record to represent an unlock + episode that falls within an epoch for every epoch.
  • +
  • The screen delta data contains 1 record to represent an unlock + episode that falls across the boundary of 2 epochs. Namely the + unlock episode starts in one epoch and ends in the next, thus + there is a record for unlock episodes that fall across night + to morning, morning to afternoon and finally afternoon to + night
  • +
  • The testing is done for unlock episode_type.
  • +
  • There is one screen data file each for testing both iOS and + Android data formats.
  • +
  • There is also an additional empty data file for both android and + iOS for testing empty data files
  • +
+

Battery

+

Due to the difference in the format of the raw battery data for iOS and Android as well as versions of iOS the following is the expected results the battery_deltas.csv. This would give a better idea of the use cases being tested since the battery_deltas.csv would make both the iOS and Android data comparable. These files are used to calculate the features for the battery sensor.

+
    +
  • The battery delta data file contains data for 1 day.
  • +
  • The battery delta data contains 1 record each for a charging and + discharging episode that falls within an epoch for every + epoch. Thus, for the daily epoch there would be multiple + charging and discharging episodes
  • +
  • Since either a charging episode or a discharging episode and + not both can occur across epochs, in order to test episodes that + occur across epochs alternating episodes of charging and + discharging episodes that fall across night to morning, + morning to afternoon and finally afternoon to night are + present in the battery delta data. This starts with a + discharging episode that begins in night and end in morning.
  • +
  • There is one battery data file each, for testing both iOS and + Android data formats.
  • +
  • There is also an additional empty data file for both android and + iOS for testing empty data files
  • +
+

Bluetooth

+
    +
  • The raw Bluetooth data file contains data for 1 day.
  • +
  • The raw Bluetooth data contains at least 2 records for each + epoch. Each epoch has a record with a timestamp for the + beginning boundary for that epoch and a record with a + timestamp for the ending boundary for that epoch. (e.g. For + the morning epoch there is a record with a timestamp for + 6:00AM and another record with a timestamp for 11:59:59AM. + These are to test edge cases)
  • +
  • An option of 5 Bluetooth devices are randomly distributed + throughout the data records.
  • +
  • There is one raw Bluetooth data file each, for testing both iOS + and Android data formats.
  • +
  • There is also an additional empty data file for both android and + iOS for testing empty data files.
  • +
+

WIFI

+
    +
  • There are 2 data files (wifi_raw.csv and sensor_wifi_raw.csv) + for each fake participant for each phone platform.
  • +
  • The raw WIFI data files contain data for 1 day.
  • +
  • The sensor_wifi_raw.csv data contains at least 2 records for + each epoch. Each epoch has a record with a timestamp for the + beginning boundary for that epoch and a record with a + timestamp for the ending boundary for that epoch. (e.g. For + the morning epoch there is a record with a timestamp for + 6:00AM and another record with a timestamp for 11:59:59AM. + These are to test edge cases)
  • +
  • The wifi_raw.csv data contains 3 records with random timestamps + for each epoch to represent visible broadcasting WIFI network. + This file is empty for the iOS phone testing data.
  • +
  • An option of 10 access point devices is randomly distributed + throughout the data records. 5 each for sensor_wifi_raw.csv and + wifi_raw.csv.
  • +
  • There data files for testing both iOS and Android data formats.
  • +
  • There are also additional empty data files for both android and + iOS for testing empty data files.
  • +
+

Light

+
    +
  • The raw light data file contains data for 1 day.
  • +
  • The raw light data contains 3 or 4 rows of data for each epoch + except night. The single row of data for night is for testing + features for single values inputs. (Example testing the standard + deviation of one input value)
  • +
  • Since light is only available for Android there is only one file + that contains data for Android. All other files (i.e. for iPhone) + are empty data files.
  • +
+

Locations

+

Description

+
    +
  • The participant’s home location is (latitude=1, longitude=1).
  • +
  • From Sat 10:56:00 to Sat 11:04:00, the center of the cluster is (latitude=-100, longitude=-100).
  • +
  • From Sun 03:30:00 to Sun 03:47:00, the center of the cluster is (latitude=1, longitude=1). Home location is extracted from this period.
  • +
  • From Sun 11:30:00 to Sun 11:38:00, the center of the cluster is (latitude=100, longitude=100).
  • +
+

Application Foreground

+
    +
  • The raw application foreground data file contains data for 1 day.
  • +
  • The raw application foreground data contains 7 - 9 rows of data + for each epoch. The records for each epoch contains apps that + are randomly selected from a list of apps that are from the + MULTIPLE_CATEGORIES and SINGLE_CATEGORIES (See + testing_config.yaml). There are also records in each epoch + that have apps randomly selected from a list of apps that are from + the EXCLUDED_CATEGORIES and EXCLUDED_APPS. This is to test + that these apps are actually being excluded from the calculations + of features. There are also records to test SINGLE_APPS + calculations.
  • +
  • Since application foreground is only available for Android there + is only one file that contains data for Android. All other files + (i.e. for iPhone) are empty data files.
  • +
+

Activity Recognition

+
    +
  • The raw Activity Recognition data file contains data for 1 day.
  • +
  • The raw Activity Recognition data each epoch period contains + rows that records 2 - 5 different activity_types. The is such + that durations of activities can be tested. Additionally, there + are records that mimic the duration of an activity over the time + boundary of neighboring epochs. (For example, there a set of + records that mimic the participant in_vehicle from afternoon + into evening)
  • +
  • There is one file each with raw Activity Recognition data for + testing both iOS and Android data formats. + (plugin_google_activity_recognition_raw.csv for android and + plugin_ios_activity_recognition_raw.csv for iOS)
  • +
  • There is also an additional empty data file for both android and + iOS for testing empty data files.
  • +
+

Conversation

+
    +
  • The raw conversation data file contains data for 2 day.
  • +
  • The raw conversation data contains records with a sample of both + datatypes (i.e. voice/noise = 0, and conversation = 2 ) + as well as rows with for samples of each of the inference values + (i.e. silence = 0, noise = 1, voice = 2, and unknown + = 3) for each epoch. The different datatype and inference + records are randomly distributed throughout the epoch.
  • +
  • Additionally there are 2 - 5 records for conversations (datatype + = 2, and inference = -1) in each epoch and for each epoch + except night, there is a conversation record that has a + double_convo_start timestamp that is from the previous + epoch. This is to test the calculations of features across + epochs.
  • +
  • There is a raw conversation data file for both android and iOS + platforms (plugin_studentlife_audio_android_raw.csv and + plugin_studentlife_audio_raw.csv respectively).
  • +
  • Finally, there are also additional empty data files for both + android and iOS for testing empty data files
  • +
+

Keyboard

+
    +
  • The raw keyboard data file contains data for 4 days.
  • +
  • +

    The raw keyboard data contains records with difference in timestamp ranging from + milliseconds to seconds.

    +
  • +
  • +

    With difference in timestamps between consecutive records more than 5 seconds helps us to create separate + sessions within the usage of the same app. This helps to verify the case where sessions have to be different.

    +
  • +
  • +

    The raw keyboard data contains records where the difference in text is less + than 5 seconds which makes it into 1 session but because of difference of app + new session starts. This edge case determines the behaviour within particular app + and also within 5 seconds.

    +
  • +
  • +

    The raw keyboard data also contains the records where length of current_text varies between consecutive rows. This helps us to tests on the cases where input text is entered by auto-suggested + or auto-correct operations.

    +
  • +
  • +

    One three-minute episode with a 1-minute row on Sun 08:59:54.65 and 09:00:00,another on Sun 12:01:02 that are considering a single episode in multi-timezone event segments to showcase how + inferring time zone data for Keyboard from phone data can produce inaccurate results around the tz change. This happens because the device was on LA time until 11:59 and switched to NY time at 12pm, in terms of actual time 09 am LA and 12 pm NY represent the same moment in time so 09:00 LA and 12:01 NY are consecutive minutes.

    +
  • +
+

Fitbit Calories Intraday

+

Description

+
    +
  • A five-minute sedentary episode on Fri 11:00:00
  • +
  • A one-minute sedentary episode on Sun 02:00:00. It exists in November but not in February in STZ
  • +
  • A five-minute sedentary episode on Fri 11:58:00. It is split within two 30-min segments and the morning
  • +
  • A three-minute lightly active episode on Fri 11:10:00, a one-minute at 11:18:00 and a one-minute 11:24:00. These check for start and end times of first/last/longest episode
  • +
  • A three-minute fairly active episode on Fri 11:40:00, a one-minute at 11:48:00 and a one-minute 11:54:00. These check for start and end times of first/last/longest episode
  • +
  • A three-minute very active episode on Fri 12:10:00, a one-minute at 12:18:00 and a one-minute 12:24:00. These check for start and end times of first/last/longest episode
  • +
  • A eight-minute MVPA episode with intertwined fairly and very active rows on Fri 12:30:00
  • +
  • The above episodes contain six higmet (>= 3 MET) episodes and nine lowmet episodes.
  • +
  • One two-minute sedentary episode with a 1-minute row on Sun 09:00:00 and another on Sun 12:01:01 that are considering a single episode in multi-timezone event segments to showcase how inferring time zone data for Fitbit from phone data can produce inaccurate results around the tz change. This happens because the device was on LA time until 11:59 and switched to NY time at 12pm, in terms of actual time 09 am LA and 12 pm NY represent the same moment in time so 09:00 LA and 12:01 NY are consecutive minutes.
  • +
  • A three-minute sedentary episode on Sat 08:59 that will be ignored for multi-timezone event segments.
  • +
  • A three-minute sedentary episode on Sat 12:59 of which the first minute will be ignored for multi-timezone event segments since the test segment starts at 13:00
  • +
  • A three-minute sedentary episode on Sat 16:00
  • +
  • A four-minute sedentary episode on Sun 10:01 that will be ignored for Novembers’s multi-timezone event segments since the test segment ends at 10am on that weekend.
  • +
  • A three-minute very active episode on Sat 16:03. This episode and the one at 16:00 are counted as one for lowmet episodes
  • +
+

Checklist

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
time segmentsingle tzmulti tzplatform
30minOKOKfitbit
morningOKOKfitbit
dailyOKOKfitbit
threedayOKOKfitbit
weekendOKOKfitbit
beforeMarchEventOKOKfitbit
beforeNovemberEventOKOKfitbit
+

Fitbit Sleep Summary

+

Description

+
    +
  • A main sleep episode that starts on Fri 20:00:00 and ends on Sat 02:00:00. This episode starts after 11am (Last Night End) which will be considered as today’s (Fri) data.
  • +
  • A nap that starts on Sat 04:00:00 and ends on Sat 06:00:00. This episode starts before 11am (Last Night End) which will be considered as yesterday’s (Fri) data.
  • +
  • A nap that starts on Sat 13:00:00 and ends on Sat 15:00:00. This episode starts after 11am (Last Night End) which will be considered as today’s (Sat) data.
  • +
  • A main sleep that starts on Sun 01:00:00 and ends on Sun 12:00:00. This episode starts before 11am (Last Night End) which will be considered as yesterday’s (Sat) data.
  • +
  • A main sleep that starts on Sun 23:00:00 and ends on Mon 07:00:00. This episode starts after 11am (Last Night End) which will be considered as today’s (Sun) data.
  • +
  • Any segment shorter than one day will be ignored for sleep RAPIDS features.
  • +
+

Checklist

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
time segmentsingle tzmulti tzplatform
30minOKOKfitbit
morningOKOKfitbit
dailyOKOKfitbit
threedayOKOKfitbit
weekendOKOKfitbit
beforeMarchEventOKOKfitbit
beforeNovemberEventOKOKfitbit
+

Fitbit Sleep Intraday

+

Description

+
    +
  • A five-minute main sleep episode with asleep-classic level on Fri 11:00:00.
  • +
  • An eight-hour main sleep episode on Fri 17:00:00. It is split into 2 parts for daily segment: a seven-hour sleep episode on Fri 17:00:00 and an one-hour sleep episode on Sat 00:00:00.
  • +
  • A two-hour nap on Sat 01:00:00 that will be ignored for main sleep features.
  • +
  • An one-hour nap on Sat 13:00:00 that will be ignored for main sleep features.
  • +
  • An eight-hour main sleep episode on Sat 22:00:00. This episode ends on Sun 08:00:00 (NY) for March and Sun 06:00:00 (NY) for Novembers due to daylight savings. It will be considered for beforeMarchEvent segment and ignored for beforeNovemberEvent segment.
  • +
  • A nine-hour main sleep episode on Sun 11:00:00. Start time will be assigned as NY time zone and converted to 14:00:00.
  • +
  • A seven-hour main sleep episode on Mon 06:00:00. This episode will be split into two parts: a five-hour sleep episode on Mon 06:00:00 and a two-hour sleep episode on Mon 11:00:00. The first part will be discarded as it is before 11am (Last Night End)
  • +
  • Any segment shorter than one day will be ignored for sleep PRICE features.
  • +
+

Checklist

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
time segmentsingle tzmulti tzplatform
30minOKOKfitbit
morningOKOKfitbit
dailyOKOKfitbit
threedayOKOKfitbit
weekendOKOKfitbit
beforeMarchEventOKOKfitbit
beforeNovemberEventOKOKfitbit
+ + + + + + +

Comments

+ + + + + + +
+ +
+
+ +
+ + + + +
+
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/1.3/developers/testing/index.html b/1.3/developers/testing/index.html new file mode 100644 index 00000000..3453da22 --- /dev/null +++ b/1.3/developers/testing/index.html @@ -0,0 +1,2136 @@ + + + + + + + + + + + + + + + + + + + + + + Testing - RAPIDS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + +
+
+
+ + +
+
+ + + + + + + + +

Testing

+

The following is a simple guide to run RAPIDS’ tests. All files necessary for testing are stored in the ./tests/ directory

+

Steps for Testing

+
Testing Overview
    +
  1. You have to create a single four day test dataset for the sensor you are working on.
  2. +
  3. You will adjust your dataset with tests/script/assign_test_timestamps.py to fit Fri March 6th 2020 - Mon March 9th 2020 and Fri Oct 30th 2020 - Mon Nov 2nd 2020. We test daylight saving times with these dates.
  4. +
  5. We have one test participant per platform (pids: android, ios, fitbit, empatica, empty). The data device_id should be equal to the pid.
  6. +
  7. We will run this test dataset against six test pipelines, three for frequency, periodic, and event time segments in a single time zone, and the same three in multiple time zones.
  8. +
  9. You will have to create your test data to cover as many corner cases as possible. These cases depend on the sensor you are working on.
  10. +
  11. The time segments and time zones to be tested are:
  12. +
+
Frequency
    +
  • 30 minutes (30min,30)
  • +
+
+
Periodic
    +
  • morning (morning,06:00:00,5H 59M 59S,every_day,0)
  • +
  • daily (daily,00:00:00,23H 59M 59S,every_day,0)
  • +
  • three-day segments that repeat every day (threeday,00:00:00,71H 59M 59S,every_day,0)
  • +
  • three-day segments that repeat every Friday (weekend,00:00:00,71H 59M 59S,wday,5)
  • +
+
+
Event
    +
  • A segment that starts 3 hour before an event (Sat Mar 07 2020 19:00:00 EST) and lasts for 22 hours. Note that the last part of this segment will happen during a daylight saving change on Sunday at 2am when the clock moves forward and the period 2am-3am does not exist. In this case, the segment would start on Sat Mar 07 2020 16:00:00 EST (timestamp: 1583614800000) and end on Sun Mar 08 2020 15:00:00 EST (timestamp: 1583694000000). (beforeMarchEvent,1583625600000,22H,3H,-1,android)
  • +
  • A segment that starts 3 hour before an event (Sat Oct 31 2020 19:00:00 EST) and lasts for 22 hours. Note that the last part of this segment will happen during a daylight saving change on Sunday at 2am when the clock moves back and the period 1am-2am exists twice. In this case, the segment would start on Sat Oct 31 2020 16:00:00 EST (timestamp: 1604174400000) and end on Sun Nov 01 2020 13:00:00 EST (timestamp: 1604253600000). (beforeNovemberEvent,1604185200000,22H,3H,-1,android)
  • +
+
+
Single time zone to test

America/New_York

+
+
Multi time zones to test
    +
  • America/New_York starting at 0
  • +
  • America/Los_Angeles starting at 1583600400000 (Sat Mar 07 2020 12:00:00 EST)
  • +
  • America/New_York starting at 1583683200000 (Sun Mar 08 2020 12:00:00 EST)
  • +
  • America/Los_Angeles starting at 1604160000000 (Sat Oct 31 2020 12:00:00 EST)
  • +
  • America/New_York starting at 1604250000000 (Sun Nov 01 2020 12:00:00 EST)
  • +
+
+
Understanding event segments with multi timezones

+ +

+
+
+
Document your tests
    +
  • Before you start implementing any test data you need to document your tests.
  • +
  • The documentation of your tests should be added to docs/developers/test-cases.md under the corresponding sensor.
  • +
  • You will need to add two subsections Description and the Checklist
  • +
  • The amount of data you need depends on each sensor but you can be efficient by creating data that covers corner cases in more than one time segment. For example, a battery episode from 11am to 1pm, covers the case when an episode has to be split for 30min frequency segments and for morning segments.
  • +
  • As a rule of thumb think about corner cases for 30min segments as they will give you the most flexibility.
  • +
  • Only add tests for iOS if the raw data format is different than Android’s (for example for screen)
  • +
  • Create specific tests for Sunday before and after 02:00. These will test daylight saving switches, in March 02:00 to 02:59 do not exist, and in November 01:00 to 01:59 exist twice (read below how tests/script/assign_test_timestamps.py handles this)
  • +
+
Example of Description

Description is a list and every item describes the different scenarios your test data is covering. For example, if we are testing PHONE_BATTERY:

+
- We test 24 discharge episodes, 24 charge episodes and 2 episodes with a 0 discharge rate
+- One episode is shorter than 30 minutes (`start timestamp` to `end timestamp`)
+- One episode is 120 minutes long from 11:00 to 13:00 (`start timestamp` to `end timestamp`). This one covers the case when an episode has to be chunked for 30min frequency segments and for morning segments
+- One episode is 60 minutes long from 23:30 to 00:30 (`start timestamp` to `end timestamp`). This one covers the case when an episode has to be chunked for 30min frequency segments and for daly segments (overnight)
+- One 0 discharge rate episode 10 minutes long that happens within a 30-minute segment (10:00 to 10:29) (`start timestamp` to `end timestamp`)
+- Three discharge episodes that happen between during beforeMarchEvent (start/end timestamps of those discharge episodes)
+- Three charge episodes that happen between during beforeMarchEvent (start/end timestamps of those charge episodes)
+- One discharge episode that happen between 00:30 and 04:00 to test for daylight saving times in March and Novemeber 2020.
+- ... any other test corner cases you can think of
+
+

Describe your test cases in as much detail as possible so in the future if we find a bug in RAPIDS, we know what test case we did not include and should add.

+
+
Example of Checklist

Checklist is a table where you confirm you have verified the output of your dataset for the different time segments and time zones

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
time segmentsingle tzmulti tzplatform
30minOKOKandroid and iOS
morningOKOKandroid and iOS
dailyOKOKandroid and iOS
threedayOKOKandroid and iOS
weekendOKOKandroid and iOS
beforeMarchEventOKOKandroid and iOS
beforeNovemberEventOKOKandroid and iOS
+
+
+
Add raw input data.
    +
  1. Add the raw test data to the corresponding sensor CSV file in tests/data/manual/aware_csv/SENSOR_raw.csv. Create the CSV if it does not exist.
  2. +
  3. The test data you create will have the same columns as normal raw data except test_time replaces timestamp. To make your life easier, you can place a test data row in time using the test_time column with the following format: Day HH:MM:SS.XXX, for example Fri 22:54:30.597.
  4. +
  5. +

    You can convert your manual test data to actual raw test data with the following commands:

    +
      +
    • +

      For the selected files: (It could be a single file name or multiple file names separated by whitespace(s)) +

      python tests/scripts/assign_test_timestamps.py -f file_name_1 file_name_2
      +

      +
    • +
    • +

      For all files under the tests/data/manual/aware_csv folder: +

      python tests/scripts/assign_test_timestamps.py -a
      +

      +
    • +
    +
  6. +
  7. +

    The script assign_test_timestamps.py converts you test_time column into a timestamp. For example, Fri 22:54:30.597 is converted to 1583553270597 (Fri Mar 06 2020 22:54:30 GMT-0500) and to 1604112870597 (Fri Oct 30 2020 22:54:30 GMT-0400). Note you can include milliseconds.

    +
  8. +
  9. The device_id should be the same as pid.
  10. +
+
Example of test data you need to create

The test_time column will be automatically converted to a timestamp that fits our testing periods in March and November by tests/script/assign_test_timestamps.py

+
test_time,device_id,battery_level,battery_scale,battery_status
+Fri 01:00:00.000,ios,90,100,4
+Fri 01:00:30.500,ios,89,100,4
+Fri 01:01:00.000,ios,80,100,4
+Fri 01:01:45.500,ios,79,100,4
+...
+Sat 08:00:00.000,ios,78,100,4
+Sat 08:01:00.000,ios,50,100,4
+Sat 08:02:00.000,ios,49,100,4
+
+
+
+
Add expected output data.
    +
  1. Add or update the expected output feature file of the participant and sensor you are testing: +
    tests/data/processed/features/{type_of_time_segment}/{pid}/device_sensor.csv 
    +
    +# this example is expected output data for battery tests for periodic segments in a single timezone
    +tests/data/processed/features/stz_periodic/android/phone_sensor.csv 
    +
    +# this example is expected output data for battery tests for periodic segments in multi timezones
    +tests/data/processed/features/mtz_periodic/android/phone_sensor.csv 
    +
  2. +
+
+
Edit the config file(s).
    +
  1. Activate the sensor provider you are testing if it isn’t already. Set [SENSOR][PROVIDER][COMPUTE] to TRUE in the config.yaml of the time segments and time zones you are testing: +
    - tests/settings/stz_frequency_config.yaml # For single-timezone frequency time segments
    +- tests/settings/stz_periodic_config.yaml # For single-timezone periodic time segments
    +- tests/settings/stz_event_config.yaml # For single-timezone event time segments
    +
    +- tests/settings/mtz_frequency_config.yaml # For multi-timezone frequency time segments
    +- tests/settings/mtz_periodic_config.yaml # For multi-timezone periodic time segments
    +- tests/settings/mtz_event_config.yaml # For multi-timezone event time segments
    +
  2. +
+
+
Run the pipeline and tests.
    +
  1. You can run all six segment pipelines and their tests +
    bash tests/scripts/run_tests.sh -t all
    +
  2. +
  3. You can run only the pipeline of a specific time segment and its tests +
    bash tests/scripts/run_tests.sh -t stz_frequency -a both # swap stz_frequency for mtz_frequency, stz_event, mtz_event, etc
    +
  4. +
  5. Or, if you are working on your tests and you want to run a pipeline and its tests independently +
    bash tests/scripts/run_tests.sh -t stz_frequency -a run
    +bash tests/scripts/run_tests.sh -t stz_frequency -a test
    +
  6. +
+
How does the test execution work?

This bash script tests/scripts/run_tests.sh executes one or all test pipelines for different time segment types (frequency, periodic, and events) and single or multiple timezones.

+

The python script tests/scripts/run_tests.py runs the tests. It parses the involved participants and active sensor providers in the config.yaml file of the time segment type and time zone being tested. We test that the output file we expect exists and that its content matches the expected values.

+
+
Output Example

The following is a snippet of the output you should see after running your test.

+
test_sensors_files_exist (test_sensor_features.TestSensorFeatures) ... stz_periodic
+ok
+test_sensors_features_calculations (test_sensor_features.TestSensorFeatures) ... stz_periodic
+ok
+
+test_sensors_files_exist (test_sensor_features.TestSensorFeatures) ... stz_frequency
+ok
+test_sensors_features_calculations (test_sensor_features.TestSensorFeatures) ... stz_frequency
+FAIL
+
+

The results above show that the for stz_periodic, both test_sensors_files_exist and test_sensors_features_calculations passed. While for stz_frequency, the first test test_sensors_files_exist passed while test_sensors_features_calculations failed. Additionally, you should get the traceback of the failure (not shown here).

+
+
+ + + + + + +

Comments

+ + + + + + +
+ +
+
+ +
+ + + + +
+
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/1.3/developers/validation-schema-config/index.html b/1.3/developers/validation-schema-config/index.html new file mode 100644 index 00000000..0c3259f2 --- /dev/null +++ b/1.3/developers/validation-schema-config/index.html @@ -0,0 +1,2171 @@ + + + + + + + + + + + + + + + + + + + + + + Validation schema of config.yaml - RAPIDS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + +
+
+
+ + +
+
+ + + + + + + + +

Validation schema of config.yaml

+
+

Why do we need to validate the config.yaml?

+

Most of the key/values in the config.yaml are constrained to a set of possible values or types. For example [TIME_SEGMENTS][TYPE] can only be one of ["FREQUENCY", "PERIODIC", "EVENT"], and [TIMEZONE] has to be a string.

+

We should show the user an error if that’s not the case. We could validate this in Python or R but since we reuse scripts and keys in multiple places, tracking these validations can be time consuming and get out of control. Thus, we do these validations through a schema and check that schema before RAPIDS starts processing any data so the user can see the error right away.

+

Keep in mind these validations can only cover certain base cases. Some validations that require more complex logic should still be done in the respective script. For example, we can check that a CSV file path actually ends in .csv but we can only check that the file actually exists in a Python script.

+
+

The structure and values of the config.yaml file are validated using a YAML schema stored in tools/config.schema.yaml. Each key in config.yaml, for example PIDS, has a corresponding entry in the schema where we can validate its type, possible values, required properties, min and max values, among other things.

+

The config.yaml is validated against the schema every time RAPIDS runs (see the top of the Snakefile):

+
validate(config, "tools/config.schema.yaml")
+
+

Structure of the schema

+

The schema has three main sections required, definitions, and properties. All of them are just nested key/value YAML pairs, where the value can be a primitive type (integer, string, boolean, number) or can be another key/value pair (object).

+

required

+

required lists properties that should be present in the config.yaml. We will almost always add every config.yaml key to this list (meaning that the user cannot delete any of those keys like TIMEZONE or PIDS).

+

definitions

+

definitions lists key/values that are common to different properties so we can reuse them. You can define a key/value under definitions and use $ref to refer to it in any property.

+

For example, every sensor like [PHONE_ACCELEROMETER] has one or more providers like RAPIDS and PANDA, these providers have some common properties like the COMPUTE flag or the SRC_SCRIPT string. Therefore we define a shared provider “template” that is used by every provider and extended with properties exclusive to each one of them. For example:

+
+

The PROVIDER definition will be used later on different properties.

+
PROVIDER:
+    type: object
+    required: [COMPUTE, SRC_SCRIPT, FEATURES]
+    properties:
+    COMPUTE:
+        type: boolean
+    FEATURES:
+        type: [array, object]
+    SRC_SCRIPT:
+        type: string
+        pattern: "^.*\\.(py|R)$"
+
+
+
+

Notice that RAPIDS (a provider) uses and extends the PROVIDER template in this example. The FEATURES key is overriding the FEATURES key from the #/definitions/PROVIDER template but is keeping the validation for COMPUTE, and SRC_SCRIPT. For more details about reusing properties, go to this link

+
PHONE_ACCELEROMETER:
+    type: object
+     # .. other properties
+    PROVIDERS:
+        type: ["null", object]
+        properties:
+        RAPIDS:
+            allOf:
+            - $ref: "#/definitions/PROVIDER"
+            - properties:
+                FEATURES: 
+                    type: array
+                    uniqueItems: True
+                    items:
+                    type: string
+                    enum: ["maxmagnitude", "minmagnitude", "avgmagnitude", "medianmagnitude", "stdmagnitude"]
+
+
+
+

properties

+

properties are nested key/values that describe the different components of our config.yaml file. Values can be of one or more primitive types like string, number, array, boolean and null. Values can also be another key/value pair (of type object) that are similar to a dictionary in Python.

+

For example, the following property validates the PIDS of our config.yaml. It checks that PIDS is an array with unique items of type string.

+
PIDS:
+    type: array
+    uniqueItems: True
+    items:
+      type: string
+
+

Modifying the schema

+
+

Validating the config.yaml during development

+

If you updated the schema and want to check the config.yaml is compliant, you can run the command snakemake --list-params-changes. You will see Building DAG of jobs... if there are no problems or an error message otherwise (try setting any COMPUTE flag to a string like test instead of False/True).

+

You can use this command without having to configure RAPIDS to process any participants or sensors.

+
+

You can validate different aspects of each key/value in our config.yaml file:

+
+

Including min and max values +

MINUTE_RATIO_THRESHOLD_FOR_VALID_YIELDED_HOURS:
+    type: number
+    minimum: 0
+    maximum: 1
+
+FUSED_RESAMPLED_CONSECUTIVE_THRESHOLD:
+    type: integer
+    exclusiveMinimum: 0
+

+
+
+

Including valid values (enum) +

items:
+    type: string
+    enum: ["count", "maxlux", "minlux", "avglux", "medianlux", "stdlux"]
+

+
+
+
MINUTES_DATA_USED:
+    type: boolean
+
+
+
+

Including whether or not it should have unique values, the type of the array’s elements (strings, numbers) and valid values (enum). +

MESSAGES_TYPES:
+    type: array
+    uniqueItems: True
+    items:
+        type: string
+        enum: ["received", "sent"]
+

+
+
+

PARENT is an object that has two properties. KID1 is one of those properties that are, in turn, another object that will reuse the "#/definitions/PROVIDER" definition AND also include (extend) two extra properties GRAND_KID1 of type array and GRAND_KID2 of type number. KID2 is another property of PARENT of type boolean.

+

The schema validation looks like this +

PARENT:
+    type: object
+    properties:
+      KID1:
+        allOf:
+          - $ref: "#/definitions/PROVIDER"
+          - properties:
+              GRAND_KID1:
+                type: array
+                uniqueItems: True
+              GRAND_KID2:
+                type: number
+      KID2:
+        type: boolean
+

+

The config.yaml key that the previous schema validates looks like this: +

PARENT:
+    KID1:
+        # These four come from the `PROVIDER` definition (template)
+        COMPUTE: False
+        FEATURES: [x, y] # an array
+        SRC_SCRIPT: "a path to a py or R script"
+
+        # This two come from the extension
+        GRAND_KID1: [a, b] # an array
+        GRAND_KID2: 5.1 # an number
+     KID2: True # a boolean
+

+
+
+

Verifying the schema is correct

+

We recommend that before you start modifying the schema you modify the config.yaml key that you want to validate with an invalid value. For example, if you want to validate that COMPUTE is boolean, you set COMPUTE: 123. Then create your validation, run snakemake --list-params-changes and make sure your validation fails (123 is not boolean), and then set the key to the correct value. In other words, make sure it’s broken first so that you know that your validation works.

+
+

Warning

+

Be careful. You can check that the schema config.schema.yaml has a valid format by running python tools/check_schema.py. You will see this message if its structure is correct: Schema is OK. However, we don’t have a way to detect typos, for example allOf will work but allOF won’t (capital F) and it won’t show any error. That’s why we recommend to start with an invalid key/value in your config.yaml so that you can be sure the schema validation finds the problem.

+
+

Useful resources

+

Read the following links to learn more about what we can validate with schemas. They are based on JSON instead of YAML schemas but the same concepts apply.

+ + + + + + + +

Comments

+ + + + + + +
+ +
+
+ +
+ + + + +
+
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/1.3/developers/virtual-environments/index.html b/1.3/developers/virtual-environments/index.html new file mode 100644 index 00000000..1db91a43 --- /dev/null +++ b/1.3/developers/virtual-environments/index.html @@ -0,0 +1,2111 @@ + + + + + + + + + + + + + + + + + + + + + + Virtual Environments - RAPIDS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + + + + +
+
+ + + + + + + + +

Virtual Environments

+ +

Python Virtual Environment

+

Add new packages

+

Try to install any new package using conda install -c CHANNEL PACKAGE_NAME (you can use pip if the package is only available there). Make sure your Python virtual environment is active (conda activate YOUR_ENV).

+

Remove packages

+

Uninstall packages using the same manager you used to install them conda remove PACKAGE_NAME or pip uninstall PACKAGE_NAME

+

Updating all packages

+

Make sure your Python virtual environment is active (conda activate YOUR_ENV), then run +

conda update --all
+

+

Update your conda environment.yaml

+

After installing or removing a package you can use the following command in your terminal to update your environment.yaml before publishing your pipeline. Note that we ignore the package version for libfortran and mkl to keep compatibility with Linux: +

conda env export --no-builds | sed 's/^.*libgfortran.*$/  - libgfortran/' | sed 's/^.*mkl=.*$/  - mkl/' >  environment.yml
+

+

R Virtual Environment

+

Add new packages

+
    +
  1. Open your terminal and navigate to RAPIDS’ root folder
  2. +
  3. Run R to open an R interactive session
  4. +
  5. Run renv::install("PACKAGE_NAME")
  6. +
+

Remove packages

+
    +
  1. Open your terminal and navigate to RAPIDS’ root folder
  2. +
  3. Run R to open an R interactive session
  4. +
  5. Run renv::remove("PACKAGE_NAME")
  6. +
+

Updating all packages

+
    +
  1. Open your terminal and navigate to RAPIDS’ root folder
  2. +
  3. Run R to open an R interactive session
  4. +
  5. Run renv::update()
  6. +
+

Update your R renv.lock

+

After installing or removing a package you can use the following command in your terminal to update your renv.lock before publishing your pipeline.

+
    +
  1. Open your terminal and navigate to RAPIDS’ root folder
  2. +
  3. Run R to open an R interactive session
  4. +
  5. Run renv::snapshot() (renv will ask you to confirm any updates to this file)
  6. +
+ + + + + + +

Comments

+ + + + + + +
+ +
+
+ +
+ + + + +
+
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/1.3/features/add-new-features/index.html b/1.3/features/add-new-features/index.html new file mode 100644 index 00000000..71db97b9 --- /dev/null +++ b/1.3/features/add-new-features/index.html @@ -0,0 +1,2223 @@ + + + + + + + + + + + + + + + + + + + + + + Add New Features - RAPIDS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + + + + +
+
+ + + + + + + + +

Add New Features

+
+

Hint

+
    +
  • We recommend reading the Behavioral Features Introduction before reading this page.
  • +
  • You can implement new features in Python or R scripts.
  • +
  • You won’t have to deal with time zones, dates, times, data cleaning, or preprocessing. The data that RAPIDS pipes to your feature extraction code are ready to process.
  • +
+
+

New Features for Existing Sensors

+

You can add new features to any existing sensors (see list below) by adding a new provider in three steps:

+
    +
  1. Modify the config.yaml file
  2. +
  3. Create your feature provider script
  4. +
  5. Implement your features extraction code
  6. +
+

As a tutorial, we will add a new provider for PHONE_ACCELEROMETER called VEGA that extracts feature1, feature2, feature3 with a Python script that requires a parameter from the user called MY_PARAMETER.

+
Existing Sensors

An existing sensor of any device with a configuration entry in config.yaml:

+

Smartphone (AWARE)

+
    +
  • Phone Accelerometer
  • +
  • Phone Activity Recognition
  • +
  • Phone Applications Crashes
  • +
  • Phone Applications Foreground
  • +
  • Phone Applications Notifications
  • +
  • Phone Battery
  • +
  • Phone Bluetooth
  • +
  • Phone Calls
  • +
  • Phone Conversation
  • +
  • Phone Data Yield
  • +
  • Phone Keyboard
  • +
  • Phone Light
  • +
  • Phone Locations
  • +
  • Phone Log
  • +
  • Phone Messages
  • +
  • Phone Screen
  • +
  • Phone WiFI Connected
  • +
  • Phone WiFI Visible
  • +
+

Fitbit

+
    +
  • Fitbit Data Yield
  • +
  • Fitbit Heart Rate Summary
  • +
  • Fitbit Heart Rate Intraday
  • +
  • Fitbit Sleep Summary
  • +
  • Fitbit Sleep Intraday
  • +
  • Fitbit Steps Summary
  • +
  • Fitbit Steps Intraday
  • +
+

Empatica

+
    +
  • Empatica Accelerometer
  • +
  • Empatica Heart Rate
  • +
  • Empatica Temperature
  • +
  • Empatica Electrodermal Activity
  • +
  • Empatica Blood Volume Pulse
  • +
  • Empatica Inter Beat Interval
  • +
  • Empatica Tags
  • +
+
+

Modify the config.yaml file

+

In this step, you need to add your provider configuration section under the relevant sensor in config.yaml. See our example for our tutorial’s VEGA provider for PHONE_ACCELEROMETER:

+
Example configuration for a new accelerometer provider VEGA
PHONE_ACCELEROMETER:
+    CONTAINER: accelerometer
+    PROVIDERS:
+        RAPIDS: # this is a feature provider
+            COMPUTE: False
+            ...
+
+        PANDA: # this is another feature provider
+            COMPUTE: False
+            ...
+
+        VEGA: # this is our new feature provider
+            COMPUTE: False
+            FEATURES: ["feature1", "feature2", "feature3"]
+            MY_PARAMTER: a_string
+            SRC_SCRIPT: src/features/phone_accelerometer/vega/main.py
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Key                         Description
[COMPUTE]Flag to activate/deactivate your provider
[FEATURES]List of features your provider supports. Your provider code should only return the features on this list
[MY_PARAMTER]An arbitrary parameter that our example provider VEGA needs. This can be a boolean, integer, float, string, or an array of any of such types.
[SRC_SCRIPT]The relative path from RAPIDS’ root folder to a script that computes the features for this provider. It can be implemented in R or Python.
+

Create a feature provider script

+

Create your feature Python or R script called main.py or main.R in the correct folder, src/feature/[sensorname]/[providername]/. RAPIDS automatically loads and executes it based on the config key [SRC_SCRIPT] you added in the last step. For our example, this script is: +

src/feature/phone_accelerometer/vega/main.py
+

+

Implement your feature extraction code

+

Every feature script (main.[py|R]) needs a [providername]_features function with specific parameters. RAPIDS calls this function with the sensor data ready to process and with other functions and arguments you will need.

+
+
def [providername]_features(sensor_data_files, time_segment, provider, filter_data_by_segment, *args, **kwargs):
+    # empty for now
+    return(your_features_df)
+
+
+
+
[providername]_features <- function(sensor_data, time_segment, provider){
+    # empty for now
+    return(your_features_df)
+}
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter                                      Description
sensor_data_filesPath to the CSV file containing the data of a single participant. This data has been cleaned and preprocessed. Your function will be automatically called for each participant in your study (in the [PIDS] array in config.yaml)
time_segmentThe label of the time segment that should be processed.
providerThe parameters you configured for your provider in config.yaml will be available in this variable as a dictionary in Python or a list in R. In our example, this dictionary contains {MY_PARAMETER:"a_string"}
filter_data_by_segmentPython only. A function that you will use to filter your data. In R, this function is already available in the environment.
*argsPython only. Not used for now
**kwargsPython only. Not used for now
+

The next step is to implement the code that computes your behavioral features in your provider script’s function. As with any other script, this function can call other auxiliary methods, but in general terms, it should have three stages:

+
1. Read a participant’s data by loading the CSV data stored in the file pointed by sensor_data_files
acc_data = pd.read_csv(sensor_data_files["sensor_data"])
+
+

Note that the phone’s battery, screen, and activity recognition data are given as episodes instead of event rows (for example, start and end timestamps of the periods the phone screen was on)

+
+
2. Filter your data to process only those rows that belong to time_segment

This step is only one line of code, but keep reading to understand why we need it. +

acc_data = filter_data_by_segment(acc_data, time_segment)
+

+

You should use the filter_data_by_segment() function to process and group those rows that belong to each of the time segments RAPIDS could be configured with.

+

Let’s understand the filter_data_by_segment() function with an example. A RAPIDS user can extract features on any arbitrary time segment. A time segment is a period that has a label and one or more instances. For example, the user (or you) could have requested features on a daily, weekly, and weekend basis for p01. The labels are arbitrary, and the instances depend on the days a participant was monitored for:

+
    +
  • the daily segment could be named my_days and if p01 was monitored for 14 days, it would have 14 instances
  • +
  • the weekly segment could be named my_weeks and if p01 was monitored for 14 days, it would have 2 instances.
  • +
  • the weekend segment could be named my_weekends and if p01 was monitored for 14 days, it would have 2 instances.
  • +
+

For this example, RAPIDS will call your provider function three times for p01, once where time_segment is my_days, once where time_segment is my_weeks, and once where time_segment is my_weekends. In this example, not every row in p01‘s data needs to take part in the feature computation for either segment and the rows need to be grouped differently.

+

Thus filter_data_by_segment() comes in handy, it will return a data frame that contains the rows that were logged during a time segment plus an extra column called local_segment. This new column will have as many unique values as time segment instances exist (14, 2, and 2 for our p01‘s my_days, my_weeks, and my_weekends examples). After filtering, you should group the data frame by this column and compute any desired features, for example:

+
acc_features["maxmagnitude"] = acc_data.groupby(["local_segment"])["magnitude"].max()
+
+

The reason RAPIDS does not filter the participant’s data set for you is because your code might need to compute something based on a participant’s complete dataset before computing their features. For example, you might want to identify the number that called a participant the most throughout the study before computing a feature with the number of calls the participant received from that number.

+
+
3. Return a data frame with your features

After filtering, grouping your data, and computing your features, your provider function should return a data frame that has:

+
    +
  • One row per time segment instance (e.g., 14 our p01‘s my_days example)
  • +
  • The local_segment column added by filter_data_by_segment()
  • +
  • One column per feature. The name of your features should only contain letters or numbers (feature1) by convention. RAPIDS automatically adds the correct sensor and provider prefix; in our example, this prefix is phone_accelerometr_vega_.
  • +
+
+
PHONE_ACCELEROMETER Provider Example

For your reference, this our own provider (RAPIDS) for PHONE_ACCELEROMETER that computes five acceleration features

+
import pandas as pd
+import numpy as np
+
+def rapids_features(sensor_data_files, time_segment, provider, filter_data_by_segment, *args, **kwargs):
+
+    acc_data = pd.read_csv(sensor_data_files["sensor_data"])
+    requested_features = provider["FEATURES"]
+    # name of the features this function can compute
+    base_features_names = ["maxmagnitude", "minmagnitude", "avgmagnitude", "medianmagnitude", "stdmagnitude"]
+    # the subset of requested features this function can compute
+    features_to_compute = list(set(requested_features) & set(base_features_names))
+
+    acc_features = pd.DataFrame(columns=["local_segment"] + features_to_compute)
+    if not acc_data.empty:
+        acc_data = filter_data_by_segment(acc_data, time_segment)
+
+        if not acc_data.empty:
+            acc_features = pd.DataFrame()
+            # get magnitude related features: magnitude = sqrt(x^2+y^2+z^2)
+            magnitude = acc_data.apply(lambda row: np.sqrt(row["double_values_0"] ** 2 + row["double_values_1"] ** 2 + row["double_values_2"] ** 2), axis=1)
+            acc_data = acc_data.assign(magnitude = magnitude.values)
+
+            if "maxmagnitude" in features_to_compute:
+                acc_features["maxmagnitude"] = acc_data.groupby(["local_segment"])["magnitude"].max()
+            if "minmagnitude" in features_to_compute:
+                acc_features["minmagnitude"] = acc_data.groupby(["local_segment"])["magnitude"].min()
+            if "avgmagnitude" in features_to_compute:
+                acc_features["avgmagnitude"] = acc_data.groupby(["local_segment"])["magnitude"].mean()
+            if "medianmagnitude" in features_to_compute:
+                acc_features["medianmagnitude"] = acc_data.groupby(["local_segment"])["magnitude"].median()
+            if "stdmagnitude" in features_to_compute:
+                acc_features["stdmagnitude"] = acc_data.groupby(["local_segment"])["magnitude"].std()
+
+            acc_features = acc_features.reset_index()
+
+    return acc_features
+
+
+

New Features for Non-Existing Sensors

+

If you want to add features for a device or a sensor that we do not support at the moment (those that do not appear in the "Existing Sensors" list above), open a new discussion in Github and we can add the necessary code so you can follow the instructions above.

+ + + + + + +

Comments

+ + + + + + +
+ +
+
+ +
+ + + + +
+
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/1.3/features/empatica-accelerometer/index.html b/1.3/features/empatica-accelerometer/index.html new file mode 100644 index 00000000..65d7637a --- /dev/null +++ b/1.3/features/empatica-accelerometer/index.html @@ -0,0 +1,2021 @@ + + + + + + + + + + + + + + + + + + + + + + Empatica Accelerometer - RAPIDS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + +
+
+
+ + +
+
+ + + + + + + + +

Empatica Accelerometer

+

Sensor parameters description for [EMPATICA_ACCELEROMETER]:

+ + + + + + + + + + + + + +
Key                             Description
[CONTAINER]Name of the CSV file containing accelerometer data that is compressed inside an Empatica zip file. Since these zip files are created automatically by Empatica, there is no need to change the value of this attribute.
+

DBDP provider

+
+

Available time segments and platforms

+
    +
  • Available for all time segments
  • +
+
+
+

File Sequence

+
- data/raw/{pid}/empatica_accelerometer_raw.csv
+- data/raw/{pid}/empatica_accelerometer_with_datetime.csv
+- data/interim/{pid}/empatica_accelerometer_features/empatica_accelerometer_{language}_{provider_key}.csv
+- data/processed/features/{pid}/empatica_accelerometer.csv
+
+
+

Parameters description for [EMPATICA_ACCELEROMETER][PROVIDERS][DBDP]:

+ + + + + + + + + + + + + + + + + +
Key                             Description
[COMPUTE]Set to True to extract EMPATICA_ACCELEROMETER features from the DBDP provider
[FEATURES]Features to be computed, see table below
+

Features description for [EMPATICA_ACCELEROMETER][PROVIDERS][RAPDBDPIDS]:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FeatureUnitsDescription
maxmagnitudem/s2The maximum magnitude of acceleration (\(\|acceleration\| = \sqrt{x^2 + y^2 + z^2}\)).
minmagnitudem/s2The minimum magnitude of acceleration.
avgmagnitudem/s2The average magnitude of acceleration.
medianmagnitudem/s2The median magnitude of acceleration.
stdmagnitudem/s2The standard deviation of acceleration.
+
+

Assumptions/Observations

+
    +
  1. Analyzing accelerometer data is a memory intensive task. If RAPIDS crashes is likely because the accelerometer dataset for a participant is too big to fit in memory. We are considering different alternatives to overcome this problem, if this is something you need, get in touch and we can discuss how to implement it.
  2. +
+
+ + + + + + +

Comments

+ + + + + + +
+ +
+
+ +
+ + + + +
+
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/1.3/features/empatica-blood-volume-pulse/index.html b/1.3/features/empatica-blood-volume-pulse/index.html new file mode 100644 index 00000000..5076daea --- /dev/null +++ b/1.3/features/empatica-blood-volume-pulse/index.html @@ -0,0 +1,2039 @@ + + + + + + + + + + + + + + + + + + + + + + Empatica Blood Volume Pulse - RAPIDS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + +
+
+
+ + +
+
+ + + + + + + + +

Empatica Blood Volume Pulse

+

Sensor parameters description for [EMPATICA_BLOOD_VOLUME_PULSE]:

+ + + + + + + + + + + + + +
Key                             Description
[CONTAINER]Name of the CSV file containing blood volume pulse data that is compressed inside an Empatica zip file. Since these zip files are created automatically by Empatica, there is no need to change the value of this attribute.
+

DBDP provider

+
+

Available time segments and platforms

+
    +
  • Available for all time segments
  • +
+
+
+

File Sequence

+
- data/raw/{pid}/empatica_blood_volume_pulse_raw.csv 
+- data/raw/{pid}/empatica_blood_volume_pulse_with_datetime.csv
+- data/interim/{pid}/empatica_blood_volume_pulse_features/empatica_blood_volume_pulse_{language}_{provider_key}.csv
+- data/processed/features/{pid}/empatica_blood_volume_pulse.csv
+
+
+

Parameters description for [EMPATICA_BLOOD_VOLUME_PULSE][PROVIDERS][DBDP]:

+ + + + + + + + + + + + + + + + + +
Key                             Description
[COMPUTE]Set to True to extract EMPATICA_BLOOD_VOLUME_PULSE features from the DBDP provider
[FEATURES]Features to be computed from blood volume pulse intraday data, see table below
+

Features description for [EMPATICA_BLOOD_VOLUME_PULSE][PROVIDERS][DBDP]:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FeatureUnitsDescription
maxbvp-The maximum blood volume pulse during a time segment.
minbvp-The minimum blood volume pulse during a time segment.
avgbvp-The average blood volume pulse during a time segment.
medianbvp-The median of blood volume pulse during a time segment.
modebvp-The mode of blood volume pulse during a time segment.
stdbvp-The standard deviation of blood volume pulse during a time segment.
diffmaxmodebvp-The difference between the maximum and mode blood volume pulse during a time segment.
diffminmodebvp-The difference between the mode and minimum blood volume pulse during a time segment.
entropybvpnatsShannon’s entropy measurement based on blood volume pulse during a time segment.
+
+

Assumptions/Observations

+

For more information about BVP read this.

+
+ + + + + + +

Comments

+ + + + + + +
+ +
+
+ +
+ + + + +
+
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/1.3/features/empatica-electrodermal-activity/index.html b/1.3/features/empatica-electrodermal-activity/index.html new file mode 100644 index 00000000..8df2785a --- /dev/null +++ b/1.3/features/empatica-electrodermal-activity/index.html @@ -0,0 +1,2039 @@ + + + + + + + + + + + + + + + + + + + + + + Empatica Electrodermal Activity - RAPIDS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + +
+
+
+ + +
+
+ + + + + + + + +

Empatica Electrodermal Activity

+

Sensor parameters description for [EMPATICA_ELECTRODERMAL_ACTIVITY]:

+ + + + + + + + + + + + + +
Key                             Description
[CONTAINER]Name of the CSV file containing electrodermal activity data that is compressed inside an Empatica zip file. Since these zip files are created automatically by Empatica, there is no need to change the value of this attribute.
+

DBDP provider

+
+

Available time segments and platforms

+
    +
  • Available for all time segments
  • +
+
+
+

File Sequence

+
- data/raw/{pid}/empatica_electrodermal_activity_raw.csv
+- data/raw/{pid}/empatica_electrodermal_activity_with_datetime.csv
+- data/interim/{pid}/empatica_electrodermal_activity_features/empatica_electrodermal activity_{language}_{provider_key}.csv
+- data/processed/features/{pid}/empatica_electrodermal_activity.csv
+
+
+

Parameters description for [EMPATICA_ELECTRODERMAL_ACTIVITY][PROVIDERS][DBDP]:

+ + + + + + + + + + + + + + + + + +
Key                             Description
[COMPUTE]Set to True to extract EMPATICA_ELECTRODERMAL_ACTIVITY features from the DBDP provider
[FEATURES]Features to be computed from electrodermal activity intraday data, see table below
+

Features description for [EMPATICA_ELECTRODERMAL ACTIVITY][PROVIDERS][DBDP]:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FeatureUnitsDescription
maxedamicrosiemensThe maximum electrical conductance during a time segment.
minedamicrosiemensThe minimum electrical conductance during a time segment.
avgedamicrosiemensThe average electrical conductance during a time segment.
medianedamicrosiemensThe median of electrical conductance during a time segment.
modeedamicrosiemensThe mode of electrical conductance during a time segment.
stdedamicrosiemensThe standard deviation of electrical conductance during a time segment.
diffmaxmodeedamicrosiemensThe difference between the maximum and mode electrical conductance during a time segment.
diffminmodeedamicrosiemensThe difference between the mode and minimum electrical conductance during a time segment.
entropyedanatsShannon’s entropy measurement based on electrical conductance during a time segment.
+
+

Assumptions/Observations

+

None

+
+ + + + + + +

Comments

+ + + + + + +
+ +
+
+ +
+ + + + +
+
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/1.3/features/empatica-heartrate/index.html b/1.3/features/empatica-heartrate/index.html new file mode 100644 index 00000000..167c362c --- /dev/null +++ b/1.3/features/empatica-heartrate/index.html @@ -0,0 +1,2039 @@ + + + + + + + + + + + + + + + + + + + + + + Empatica Heart Rate - RAPIDS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + +
+
+
+ + +
+
+ + + + + + + + +

Empatica Heart Rate

+

Sensor parameters description for [EMPATICA_HEARTRATE]:

+ + + + + + + + + + + + + +
Key                             Description
[CONTAINER]Name of the CSV file containing heart rate data that is compressed inside an Empatica zip file. Since these zip files are created automatically by Empatica, there is no need to change the value of this attribute.
+

DBDP provider

+
+

Available time segments and platforms

+
    +
  • Available for all time segments
  • +
+
+
+

File Sequence

+
- data/raw/{pid}/empatica_heartrate_raw.csv
+- data/raw/{pid}/empatica_heartrate_with_datetime.csv
+- data/interim/{pid}/empatica_heartrate_features/empatica_heartrate_{language}_{provider_key}.csv
+- data/processed/features/{pid}/empatica_heartrate.csv
+
+
+

Parameters description for [EMPATICA_HEARTRATE][PROVIDERS][DBDP]:

+ + + + + + + + + + + + + + + + + +
Key                             Description
[COMPUTE]Set to True to extract EMPATICA_HEARTRATE features from the DBDP provider
[FEATURES]Features to be computed from heart rate intraday data, see table below
+

Features description for [EMPATICA_HEARTRATE][PROVIDERS][DBDP]:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FeatureUnitsDescription
maxhrbeatsThe maximum heart rate during a time segment.
minhrbeatsThe minimum heart rate during a time segment.
avghrbeatsThe average heart rate during a time segment.
medianhrbeatsThe median of heart rate during a time segment.
modehrbeatsThe mode of heart rate during a time segment.
stdhrbeatsThe standard deviation of heart rate during a time segment.
diffmaxmodehrbeatsThe difference between the maximum and mode heart rate during a time segment.
diffminmodehrbeatsThe difference between the mode and minimum heart rate during a time segment.
entropyhrnatsShannon’s entropy measurement based on heart rate during a time segment.
+
+

Assumptions/Observations

+

We extract the previous features based on the average heart rate values computed in 10-second windows.

+
+ + + + + + +

Comments

+ + + + + + +
+ +
+
+ +
+ + + + +
+
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/1.3/features/empatica-inter-beat-interval/index.html b/1.3/features/empatica-inter-beat-interval/index.html new file mode 100644 index 00000000..302daea1 --- /dev/null +++ b/1.3/features/empatica-inter-beat-interval/index.html @@ -0,0 +1,2039 @@ + + + + + + + + + + + + + + + + + + + + + + Empatica Inter Beat Interval - RAPIDS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + +
+
+
+ + +
+
+ + + + + + + + +

Empatica Inter Beat Interval

+

Sensor parameters description for [EMPATICA_INTER_BEAT_INTERVAL]:

+ + + + + + + + + + + + + +
Key                             Description
[CONTAINER]Name of the CSV file containing inter beat interval data that is compressed inside an Empatica zip file. Since these zip files are created automatically by Empatica, there is no need to change the value of this attribute.
+

DBDP provider

+
+

Available time segments and platforms

+
    +
  • Available for all time segments
  • +
+
+
+

File Sequence

+
- data/raw/{pid}/empatica_inter_beat_interval_raw.csv
+- data/raw/{pid}/empatica_inter_beat_interval_with_datetime.csv
+- data/interim/{pid}/empatica_inter_beat_interval_features/empatica_inter_beat_interval_{language}_{provider_key}.csv
+- data/processed/features/{pid}/empatica_inter_beat_interval.csv
+
+
+

Parameters description for [EMPATICA_INTER_BEAT_INTERVAL][PROVIDERS][DBDP]:

+ + + + + + + + + + + + + + + + + +
Key                             Description
[COMPUTE]Set to True to extract EMPATICA_INTER_BEAT_INTERVAL features from the DBDP provider
[FEATURES]Features to be computed from inter beat interval intraday data, see table below
+

Features description for [EMPATICA_INTER_BEAT_INTERVAL][PROVIDERS][DBDP]:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FeatureUnitsDescription
maxibisecondsThe maximum inter beat interval during a time segment.
minibisecondsThe minimum inter beat interval during a time segment.
avgibisecondsThe average inter beat interval during a time segment.
medianibisecondsThe median of inter beat interval during a time segment.
modeibisecondsThe mode of inter beat interval during a time segment.
stdibisecondsThe standard deviation of inter beat interval during a time segment.
diffmaxmodeibisecondsThe difference between the maximum and mode inter beat interval during a time segment.
diffminmodeibisecondsThe difference between the mode and minimum inter beat interval during a time segment.
entropyibinatsShannon’s entropy measurement based on inter beat interval during a time segment.
+
+

Assumptions/Observations

+

For more information about IBI read this.

+
+ + + + + + +

Comments

+ + + + + + +
+ +
+
+ +
+ + + + +
+
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/1.3/features/empatica-tags/index.html b/1.3/features/empatica-tags/index.html new file mode 100644 index 00000000..f9cd2594 --- /dev/null +++ b/1.3/features/empatica-tags/index.html @@ -0,0 +1,1906 @@ + + + + + + + + + + + + + + + + + + + + + + Empatica Tags - RAPIDS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + +
+
+
+ + +
+
+ + + + + + + + +

Empatica Tags

+

Sensor parameters description for [EMPATICA_TAGS]:

+ + + + + + + + + + + + + +
Key                             Description
[CONTAINER]Name of the CSV file containing tags data that is compressed inside an Empatica zip file. Since these zip files are created automatically by Empatica, there is no need to change the value of this attribute.
+
+

Note

+ +
+ + + + + + +

Comments

+ + + + + + +
+ +
+
+ +
+ + + + +
+
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/1.3/features/empatica-temperature/index.html b/1.3/features/empatica-temperature/index.html new file mode 100644 index 00000000..ba54d498 --- /dev/null +++ b/1.3/features/empatica-temperature/index.html @@ -0,0 +1,2039 @@ + + + + + + + + + + + + + + + + + + + + + + Empatica Temperature - RAPIDS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + +
+
+
+ + +
+
+ + + + + + + + +

Empatica Temperature

+

Sensor parameters description for [EMPATICA_TEMPERATURE]:

+ + + + + + + + + + + + + +
Key                             Description
[CONTAINER]Name of the CSV file containing temperature data that is compressed inside an Empatica zip file. Since these zip files are created automatically by Empatica, there is no need to change the value of this attribute.
+

DBDP provider

+
+

Available time segments and platforms

+
    +
  • Available for all time segments
  • +
+
+
+

File Sequence

+
- data/raw/{pid}/empatica_temperature_raw.csv
+- data/raw/{pid}/empatica_temperature_with_datetime.csv
+- data/interim/{pid}/empatica_temperature_features/empatica_temperature_{language}_{provider_key}.csv
+- data/processed/features/{pid}/empatica_temperature.csv
+
+
+

Parameters description for [EMPATICA_TEMPERATURE][PROVIDERS][DBDP]:

+ + + + + + + + + + + + + + + + + +
Key                             Description
[COMPUTE]Set to True to extract EMPATICA_TEMPERATURE features from the DBDP provider
[FEATURES]Features to be computed from temperature intraday data, see table below
+

Features description for [EMPATICA_TEMPERATURE][PROVIDERS][DBDP]:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FeatureUnitsDescription
maxtempdegrees CThe maximum temperature during a time segment.
mintempdegrees CThe minimum temperature during a time segment.
avgtempdegrees CThe average temperature during a time segment.
mediantempdegrees CThe median of temperature during a time segment.
modetempdegrees CThe mode of temperature during a time segment.
stdtempdegrees CThe standard deviation of temperature during a time segment.
diffmaxmodetempdegrees CThe difference between the maximum and mode temperature during a time segment.
diffminmodetempdegrees CThe difference between the mode and minimum temperature during a time segment.
entropytempnatsShannon’s entropy measurement based on temperature during a time segment.
+
+

Assumptions/Observations

+

None

+
+ + + + + + +

Comments

+ + + + + + +
+ +
+
+ +
+ + + + +
+
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/1.3/features/feature-introduction/index.html b/1.3/features/feature-introduction/index.html new file mode 100644 index 00000000..dae732c2 --- /dev/null +++ b/1.3/features/feature-introduction/index.html @@ -0,0 +1,2034 @@ + + + + + + + + + + + + + + + + + + + + + + Introduction - RAPIDS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + +
+
+
+ + +
+
+ + + + + + + + +

Behavioral Features Introduction

+

A behavioral feature is a metric computed from raw sensor data quantifying the behavior of a participant. For example, the time spent at home computed based on location data. These are also known as digital biomarkers.

+

RAPIDS’ config.yaml has a section for each supported device/sensor (e.g., PHONE_ACCELEROMETER, FITBIT_STEPS, EMPATICA_HEARTRATE). These sections follow a similar structure, and they can have one or more feature PROVIDERS, that compute one or more behavioral features. You will modify the parameters of these PROVIDERS to obtain features from different mobile sensors. We’ll use PHONE_ACCELEROMETER as an example to explain this further.

+
+

Hint

+
    +
  • We recommend reading this page if you are using RAPIDS for the first time
  • +
  • All computed sensor features are stored under /data/processed/features on files per sensor, per participant and per study (all participants).
  • +
  • Every time you change any sensor parameters, provider parameters or provider features, all the necessary files will be updated as soon as you execute RAPIDS.
  • +
  • In short, to extract features offered by a provider, you need to set its [COMPUTE] flag to TRUE, configure any of its parameters, and execute RAPIDS.
  • +
+
+

Explaining the config.yaml sensor sections with an example

+

Each sensor section follows the same structure. Click on the numbered markers to know more.

+
PHONE_ACCELEROMETER: # (1)
+
+    CONTAINER: accelerometer # (2)
+
+    PROVIDERS: # (3)
+        RAPIDS:
+            COMPUTE: False # (4)
+            FEATURES: ["maxmagnitude", "minmagnitude", "avgmagnitude", "medianmagnitude", "stdmagnitude"]
+
+            SRC_SCRIPT: src/features/phone_accelerometer/rapids/main.py
+
+        PANDA:
+            COMPUTE: False
+            VALID_SENSED_MINUTES: False
+            FEATURES: # (5)
+                exertional_activity_episode: ["sumduration", "maxduration", "minduration", "avgduration", "medianduration", "stdduration"]
+                nonexertional_activity_episode: ["sumduration", "maxduration", "minduration", "avgduration", "medianduration", "stdduration"]
+
+                        # (6)
+            SRC_SCRIPT: src/features/phone_accelerometer/panda/main.py
+
+
    +
  1. +

    Sensor section

    +

    Each sensor (accelerometer, screen, etc.) of every supported device (smartphone, Fitbit, etc.) has a section in the config.yaml with parameters and feature PROVIDERS.

    +
  2. +
  3. +

    Sensor Parameters.

    +

    Each sensor section has one or more parameters. These are parameters that affect different aspects of how the raw data is pulled, and processed.

    +

    The CONTAINER parameter exists for every sensor, but some sensors will have extra parameters like [PHONE_LOCATIONS].

    +

    We explain these parameters in a table at the top of each sensor documentation page.

    +
  4. +
  5. +

    Sensor Providers

    +

    Each object in this list represents a feature PROVIDER. Each sensor can have zero, one, or more providers.

    +

    A PROVIDER is a script that creates behavioral features for a specific sensor. Providers are created by the core RAPIDS team or by the community, which are named after its first author like [PHONE_LOCATIONS][DORYAB].

    +

    In this example, there are two accelerometer feature providers RAPIDS and PANDA.

    +
  6. +
  7. +

    PROVIDER Parameters

    +

    Each PROVIDER has parameters that affect the computation of the behavioral features it offers.

    +

    These parameters include at least a [COMPUTE] flag that you switch to True to extract a provider’s behavioral features.

    +

    We explain every provider’s parameter in a table under the Parameters description heading on each provider documentation page.

    +
  8. +
  9. +

    PROVIDER Features

    +

    Each PROVIDER offers a set of behavioral features.

    +

    These features are grouped in an array for some providers, like those for RAPIDS provider. For others, they are grouped in a collection of arrays, like those for PANDAS provider.

    +

    In either case, you can delete the features you are not interested in, and they will not be included in the sensor’s output feature file.

    +

    We explain each behavioral feature in a table under the Features description heading on each provider documentation page.

    +
  10. +
  11. +

    PROVIDER script

    +

    Each PROVIDER has a SRC_SCRIPT that points to the script implementing its behavioral features.

    +

    It has to be a relative path from RAPIDS’ root folder and the script’s parent folder should be named after the provider, e.g. panda.

    +
  12. +
+

These are the descriptions of each marker for accessibility:

+
    +
  1. +

    Sensor section

    +

    Each sensor (accelerometer, screen, etc.) of every supported device (smartphone, Fitbit, etc.) has a section in the config.yaml with parameters and feature PROVIDERS.

    +
  2. +
  3. +

    Sensor Parameters.

    +

    Each sensor section has one or more parameters. These are parameters that affect different aspects of how the raw data is pulled, and processed.

    +

    The CONTAINER parameter exists for every sensor, but some sensors will have extra parameters like [PHONE_LOCATIONS].

    +

    We explain these parameters in a table at the top of each sensor documentation page.

    +
  4. +
  5. +

    Sensor Providers

    +

    Each object in this list represents a feature PROVIDER. Each sensor can have zero, one, or more providers.

    +

    A PROVIDER is a script that creates behavioral features for a specific sensor. Providers are created by the core RAPIDS team or by the community, which are named after its first author like [PHONE_LOCATIONS][DORYAB].

    +

    In this example, there are two accelerometer feature providers RAPIDS and PANDA.

    +
  6. +
  7. +

    PROVIDER Parameters

    +

    Each PROVIDER has parameters that affect the computation of the behavioral features it offers.

    +

    These parameters include at least a [COMPUTE] flag that you switch to True to extract a provider’s behavioral features.

    +

    We explain every provider’s parameter in a table under the Parameters description heading on each provider documentation page.

    +
  8. +
  9. +

    PROVIDER Features

    +

    Each PROVIDER offers a set of behavioral features.

    +

    These features are grouped in an array for some providers, like those for RAPIDS provider. For others, they are grouped in a collection of arrays, like those for PANDAS provider.

    +

    In either case, you can delete the features you are not interested in, and they will not be included in the sensor’s output feature file.

    +

    We explain each behavioral feature in a table under the Features description heading on each provider documentation page.

    +
  10. +
  11. +

    PROVIDER script

    +

    Each PROVIDER has a SRC_SCRIPT that points to the script implementing its behavioral features.

    +

    It has to be a relative path from RAPIDS’ root folder and the script’s parent folder should be named after the provider, e.g. panda.

    +
  12. +
+ + + + + + +

Comments

+ + + + + + +
+ +
+
+ +
+ + + + +
+
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/1.3/features/fitbit-calories-intraday/index.html b/1.3/features/fitbit-calories-intraday/index.html new file mode 100644 index 00000000..0881eac4 --- /dev/null +++ b/1.3/features/fitbit-calories-intraday/index.html @@ -0,0 +1,2128 @@ + + + + + + + + + + + + + + + + + + + + + + Fitbit Calories Intraday - RAPIDS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + +
+
+
+ + +
+
+ + + + + + + + +

Fitbit Calories Intraday

+

Sensor parameters description for [FITBIT_CALORIES_INTRADAY]:

+ + + + + + + + + + + + + +
Key                             Description
[CONTAINER]Container where your calories intraday data is stored, depending on the data stream you are using this can be a database table, a CSV file, etc.
+

RAPIDS provider

+
+

Available time segments

+
    +
  • Available for all time segments
  • +
+
+
+

File Sequence

+
- data/raw/{pid}/fitbit_calories_intraday_raw.csv
+- data/raw/{pid}/fitbit_calories_intraday_with_datetime.csv
+- data/interim/{pid}/fitbit_calories_intraday_features/fitbit_calories_intraday_{language}_{provider_key}.csv
+- data/processed/features/{pid}/fitbit_calories_intraday.csv
+
+
+

Parameters description for [FITBIT_CALORIES_INTRADAY][PROVIDERS][RAPIDS]:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Key                                               Description
[COMPUTE]Set to True to extract FITBIT_CALORIES_INTRADAY features from the RAPIDS provider
[FEATURES]Features to be computed from calories intraday data, see table below
[EPISODE_TYPE]RAPIDS will compute features for any episodes in this list. There are seven types of episodes defined as consecutive appearances of a label. Four are based on the activity level labels provided by Fitbit: sedentary, lightly active, fairly active, and very active. One is defined by RAPIDS as moderate to vigorous physical activity MVPA episodes that are based on all fairly active, and very active labels. Two are defined by the user based on a threshold that divides low or high MET (metabolic equivalent) episodes.
EPISODE_TIME_THRESHOLDAny consecutive rows of the same [EPISODE_TYPE] will be considered a single episode if the time difference between them is less or equal than this threshold in minutes
[EPISODE_MET_THRESHOLD]Any 1-minute calorie data chunk with a MET value equal or higher than this threshold will be considered a high MET episode and low MET otherwise. The default value is 3
[EPISODE_MVPA_CATEGORIES]The Fitbit level labels that are considered part of a moderate to vigorous physical activity episode. One or more of sedentary, lightly active, fairly active, and very active. The default are fairly active and very active
[EPISODE_REFERENCE_TIME]Reference time for the start/end time features. MIDNIGHT sets the reference time to 00:00 of each day, START_OF_THE_SEGMENT sets the reference time to the start of the time segment (useful when a segment is shorter than a day or spans multiple days)
+

Features description for [FITBIT_CALORIES_INTRADAY][PROVIDERS][RAPIDS]:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Feature                                                           UnitsDescription
starttimefirstepisodeEPISODE_TYPEminutesStart time of the first episode of type [EPISODE_TYPE]
endtimefirstepisodeEPISODE_TYPEminutesEnd time of the first episode of type [EPISODE_TYPE]
starttimelastepisodeEPISODE_TYPEminutesStart time of the last episode of type [EPISODE_TYPE]
endtimelastepisodeEPISODE_TYPEminutesEnd time of the last episode of type [EPISODE_TYPE]
starttimelongestepisodeEPISODE_TYPEminutesStart time of the longest episode of type [EPISODE_TYPE]
endtimelongestepisodeEPISODE_TYPEminutesEnd time of the longest episode of type [EPISODE_TYPE]
countepisodeEPISODE_TYPEepisodesThe number of episodes of type [EPISODE_TYPE]
sumdurationepisodeEPISODE_TYPEminutesThe sum of the duration of episodes of type [EPISODE_TYPE]
avgdurationepisodeEPISODE_TYPEminutesThe average of the duration of episodes of type [EPISODE_TYPE]
maxdurationepisodeEPISODE_TYPEminutesThe maximum of the duration of episodes of type [EPISODE_TYPE]
mindurationepisodeEPISODE_TYPEminutesThe minimum of the duration of episodes of type [EPISODE_TYPE]
stddurationepisodeEPISODE_TYPEminutesThe standard deviation of the duration of episodes of type [EPISODE_TYPE]
summetEPISODE_TYPEMETsThe sum of all METs during episodes of type [EPISODE_TYPE]
avgmetEPISODE_TYPEMETsThe average of all METs during episodes of type [EPISODE_TYPE]
maxmetEPISODE_TYPEMETsThe maximum of all METs during episodes of type [EPISODE_TYPE]
minmetEPISODE_TYPEMETsThe minimum of all METs during episodes of type [EPISODE_TYPE]
stdmetEPISODE_TYPEMETsThe standard deviation of all METs during episodes of type [EPISODE_TYPE]
sumcaloriesEPISODE_TYPEcaloriesThe sum of all calories during episodes of type [EPISODE_TYPE]
avgcaloriesEPISODE_TYPEcaloriesThe average of all calories during episodes of type [EPISODE_TYPE]
maxcaloriesEPISODE_TYPEcaloriesThe maximum of all calories during episodes of type [EPISODE_TYPE]
mincaloriesEPISODE_TYPEcaloriesThe minimum of all calories during episodes of type [EPISODE_TYPE]
stdcaloriesEPISODE_TYPEcaloriesThe standard deviation of all calories during episodes of type [EPISODE_TYPE]
+
+

Assumptions/Observations

+
    +
  • These features are based on intraday calories data that is usually obtained in 1-minute chunks from Fitbit’s API.
  • +
  • The MET value returned by Fitbit is divided by 10
  • +
  • Take into account that the intraday data returned by Fitbit can contain time series for calories burned inclusive of BMR, tracked activity, and manually logged activities.
  • +
+
+ + + + + + +

Comments

+ + + + + + +
+ +
+
+ +
+ + + + +
+
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/1.3/features/fitbit-data-yield/index.html b/1.3/features/fitbit-data-yield/index.html new file mode 100644 index 00000000..855afc1f --- /dev/null +++ b/1.3/features/fitbit-data-yield/index.html @@ -0,0 +1,2031 @@ + + + + + + + + + + + + + + + + + + + + + + Fitbit Data Yield - RAPIDS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + +
+
+
+ + +
+
+ + + + + + + + +

Fitbit Data Yield

+

We use Fitbit heart rate intraday data to extract data yield features. Fitbit data yield features can be used to remove rows (time segments) that do not contain enough Fitbit data. You should decide what is your “enough” threshold depending on the time a participant was supposed to be wearing their Fitbit, the length of your study, and the rates of missing data that your analysis could handle.

+
+

Why is Fitbit data yield important?

+

Imagine that you want to extract FITBIT_STEPS_SUMMARY features on daily segments (00:00 to 23:59). Let’s say that on day 1 the Fitbit logged 6k as the total step count and the heart rate sensor logged 24 hours of data and on day 2 the Fitbit logged 101 as the total step count and the heart rate sensor logged 2 hours of data. It’s very likely that on day 2 you walked during the other 22 hours so including this day in your analysis could bias your results.

+
+

Sensor parameters description for [FITBIT_DATA_YIELD]:

+ + + + + + + + + + + + + +
Key                   Description
[SENSORS]The Fitbit sensor we considered for calculating the Fitbit data yield features. We only support FITBIT_HEARTRATE_INTRADAY since sleep data is commonly collected only overnight, and step counts are 0 even when not wearing the Fitbit device.
+

RAPIDS provider

+

Before explaining the data yield features, let’s define the following relevant concepts:

+
    +
  • A valid minute is any 60 second window when Fitbit heart rate intraday sensor logged at least 1 row of data
  • +
  • A valid hour is any 60 minute window with at least X valid minutes. The X or threshold is given by [MINUTE_RATIO_THRESHOLD_FOR_VALID_YIELDED_HOURS]
  • +
+
+

Available time segments and platforms

+
    +
  • Available for all time segments
  • +
+
+
+

File Sequence

+
- data/raw/{pid}/fitbit_heartrate_intraday_raw.csv
+- data/raw/{pid}/fitbit_heartrate_intraday_with_datetime.csv
+- data/interim/{pid}/fitbit_data_yield_features/fitbit_data_yield_{language}_{provider_key}.csv
+- data/processed/features/{pid}/fitbit_data_yield.csv
+
+
+

Parameters description for [FITBIT_DATA_YIELD][PROVIDERS][RAPIDS]:

+ + + + + + + + + + + + + + + + + + + + + +
Key                             Description
[COMPUTE]Set to True to extract FITBIT_DATA_YIELD features from the RAPIDS provider
[FEATURES]Features to be computed, see table below
[MINUTE_RATIO_THRESHOLD_FOR_VALID_YIELDED_HOURS]The proportion [0.0 ,1.0] of valid minutes in a 60-minute window necessary to flag that window as valid.
+

Features description for [FITBIT_DATA_YIELD][PROVIDERS][RAPIDS]:

+ + + + + + + + + + + + + + + + + + + + +
FeatureUnitsDescription
ratiovalidyieldedminutes-The ratio between the number of valid minutes and the duration in minutes of a time segment.
ratiovalidyieldedhours-The ratio between the number of valid hours and the duration in hours of a time segment. If the time segment is shorter than 1 hour this feature will always be 1.
+
+

Assumptions/Observations

+
    +
  1. +

    We recommend using ratiovalidyieldedminutes on time segments that are shorter than two or three hours and ratiovalidyieldedhours for longer segments. This is because relying on yielded minutes only can be misleading when a big chunk of those missing minutes are clustered together.

    +

    For example, let’s assume we are working with a 24-hour time segment that is missing 12 hours of data. Two extreme cases can occur:

    +

      +
    1. the 12 missing hours are from the beginning of the segment or
    2. +
    3. 30 minutes could be missing from every hour (24 * 30 minutes = 12 hours).
    4. +

    +

    ratiovalidyieldedminutes would be 0.5 for both a and b (hinting the missing circumstances are similar). However, ratiovalidyieldedhours would be 0.5 for a and 1.0 for b if [MINUTE_RATIO_THRESHOLD_FOR_VALID_YIELDED_HOURS] is between [0.0 and 0.49] (hinting that the missing circumstances might be more favorable for b. In other words, sensed data for b is more evenly spread compared to a.

    +
  2. +
  3. +

    We assume your Fitbit intraday data was sampled (requested form the Fitbit API) at 1 minute intervals, if the interval is longer, for example 15 minutes, you need to take into account that valid minutes and valid hours ratios are going to be small (for example you would have at most 4 “minutes” of data per hour because you would have four 15-minute windows) and so you should adjust your thresholds to include and exclude rows accordingly. If you are in this situation, get in touch with us, we could implement this use case but we are not sure there is enough demand for it at the moment since you can control the sampling rate of the data you request from Fitbit API.

    +
  4. +
+
+ + + + + + +

Comments

+ + + + + + +
+ +
+
+ +
+ + + + +
+
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/1.3/features/fitbit-heartrate-intraday/index.html b/1.3/features/fitbit-heartrate-intraday/index.html new file mode 100644 index 00000000..d471b9a1 --- /dev/null +++ b/1.3/features/fitbit-heartrate-intraday/index.html @@ -0,0 +1,2046 @@ + + + + + + + + + + + + + + + + + + + + + + Fitbit Heart Rate Intraday - RAPIDS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + +
+
+
+ + +
+
+ + + + + + + + +

Fitbit Heart Rate Intraday

+

Sensor parameters description for [FITBIT_HEARTRATE_INTRADAY]:

+ + + + + + + + + + + + + +
Key                             Description
[CONTAINER]Container where your heart rate intraday data is stored, depending on the data stream you are using this can be a database table, a CSV file, etc.
+

RAPIDS provider

+
+

Available time segments

+
    +
  • Available for all time segments
  • +
+
+
+

File Sequence

+
- data/raw/{pid}/fitbit_heartrate_intraday_raw.csv
+- data/raw/{pid}/fitbit_heartrate_intraday_with_datetime.csv
+- data/interim/{pid}/fitbit_heartrate_intraday_features/fitbit_heartrate_intraday_{language}_{provider_key}.csv
+- data/processed/features/{pid}/fitbit_heartrate_intraday.csv
+
+
+

Parameters description for [FITBIT_HEARTRATE_INTRADAY][PROVIDERS][RAPIDS]:

+ + + + + + + + + + + + + + + + + +
Key                             Description
[COMPUTE]Set to True to extract FITBIT_HEARTRATE_INTRADAY features from the RAPIDS provider
[FEATURES]Features to be computed from heart rate intraday data, see table below
+

Features description for [FITBIT_HEARTRATE_INTRADAY][PROVIDERS][RAPIDS]:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FeatureUnitsDescription
maxhrbeats/minsThe maximum heart rate during a time segment.
minhrbeats/minsThe minimum heart rate during a time segment.
avghrbeats/minsThe average heart rate during a time segment.
medianhrbeats/minsThe median of heart rate during a time segment.
modehrbeats/minsThe mode of heart rate during a time segment.
stdhrbeats/minsThe standard deviation of heart rate during a time segment.
diffmaxmodehrbeats/minsThe difference between the maximum and mode heart rate during a time segment.
diffminmodehrbeats/minsThe difference between the mode and minimum heart rate during a time segment.
entropyhrnatsShannon’s entropy measurement based on heart rate during a time segment.
minutesonZONEminutesNumber of minutes the user’s heart rate fell within each heartrate_zone during a time segment.
+
+

Assumptions/Observations

+
    +
  1. There are four heart rate zones (ZONE): outofrange, fatburn, cardio, and peak. Please refer to Fitbit documentation for more information about the way they are computed.
  2. +
+
+ + + + + + +

Comments

+ + + + + + +
+ +
+
+ +
+ + + + +
+
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/1.3/features/fitbit-heartrate-summary/index.html b/1.3/features/fitbit-heartrate-summary/index.html new file mode 100644 index 00000000..f52a79b4 --- /dev/null +++ b/1.3/features/fitbit-heartrate-summary/index.html @@ -0,0 +1,2081 @@ + + + + + + + + + + + + + + + + + + + + + + Fitbit Heart Rate Summary - RAPIDS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + +
+
+
+ + +
+
+ + + + + + + + +

Fitbit Heart Rate Summary

+

Sensor parameters description for [FITBIT_HEARTRATE_SUMMARY]:

+ + + + + + + + + + + + + +
Key                             Description
[CONTAINER]Container where your heart rate summary data is stored, depending on the data stream you are using this can be a database table, a CSV file, etc.
+

RAPIDS provider

+
+

Available time segments

+
    +
  • Only available for segments that span 1 or more complete days (e.g. Jan 1st 00:00 to Jan 3rd 23:59)
  • +
+
+
+

File Sequence

+
- data/raw/{pid}/fitbit_heartrate_summary_raw.csv
+- data/raw/{pid}/fitbit_heartrate_summary_with_datetime.csv
+- data/interim/{pid}/fitbit_heartrate_summary_features/fitbit_heartrate_summary_{language}_{provider_key}.csv
+- data/processed/features/{pid}/fitbit_heartrate_summary.csv
+
+
+

Parameters description for [FITBIT_HEARTRATE_SUMMARY][PROVIDERS][RAPIDS]:

+ + + + + + + + + + + + + + + + + +
Key                             Description
[COMPUTE]Set to True to extract FITBIT_HEARTRATE_SUMMARY features from the RAPIDS provider
[FEATURES]Features to be computed from heart rate summary data, see table below
+

Features description for [FITBIT_HEARTRATE_SUMMARY][PROVIDERS][RAPIDS]:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FeatureUnitsDescription
maxrestinghrbeats/minsThe maximum daily resting heart rate during a time segment.
minrestinghrbeats/minsThe minimum daily resting heart rate during a time segment.
avgrestinghrbeats/minsThe average daily resting heart rate during a time segment.
medianrestinghrbeats/minsThe median of daily resting heart rate during a time segment.
moderestinghrbeats/minsThe mode of daily resting heart rate during a time segment.
stdrestinghrbeats/minsThe standard deviation of daily resting heart rate during a time segment.
diffmaxmoderestinghrbeats/minsThe difference between the maximum and mode daily resting heart rate during a time segment.
diffminmoderestinghrbeats/minsThe difference between the mode and minimum daily resting heart rate during a time segment.
entropyrestinghrnatsShannon’s entropy measurement based on daily resting heart rate during a time segment.
sumcaloriesZONEcalsThe total daily calories burned within heartrate_zone during a time segment.
maxcaloriesZONEcalsThe maximum daily calories burned within heartrate_zone during a time segment.
mincaloriesZONEcalsThe minimum daily calories burned within heartrate_zone during a time segment.
avgcaloriesZONEcalsThe average daily calories burned within heartrate_zone during a time segment.
mediancaloriesZONEcalsThe median of daily calories burned within heartrate_zone during a time segment.
stdcaloriesZONEcalsThe standard deviation of daily calories burned within heartrate_zone during a time segment.
entropycaloriesZONEnatsShannon’s entropy measurement based on daily calories burned within heartrate_zone during a time segment.
+
+

Assumptions/Observations

+
    +
  1. +

    There are four heart rate zones (ZONE): outofrange, fatburn, cardio, and peak. Please refer to Fitbit documentation for more information about the way they are computed.

    +
  2. +
  3. +

    Calories’ accuracy depends on the users’ Fitbit profile (weight, height, etc.).

    +
  4. +
+
+ + + + + + +

Comments

+ + + + + + +
+ +
+
+ +
+ + + + +
+
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/1.3/features/fitbit-sleep-intraday/index.html b/1.3/features/fitbit-sleep-intraday/index.html new file mode 100644 index 00000000..5fc96052 --- /dev/null +++ b/1.3/features/fitbit-sleep-intraday/index.html @@ -0,0 +1,2305 @@ + + + + + + + + + + + + + + + + + + + + + + Fitbit Sleep Intraday - RAPIDS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + +
+
+
+ + +
+
+ + + + + + + + +

Fitbit Sleep Intraday

+

Sensor parameters description for [FITBIT_SLEEP_INTRADAY]:

+ + + + + + + + + + + + + +
Key                             Description
[CONTAINER]Container where your sleep intraday data is stored, depending on the data stream you are using this can be a database table, a CSV file, etc.
+

RAPIDS provider

+
+

Understanding RAPIDS features

+

This diagram will help you understand how sleep episodes are chunked and grouped within time segments for the RAPIDS provider.

+
+
+

Available time segments

+
    +
  • Available for all time segments
  • +
+
+
+

File Sequence

+
- data/raw/{pid}/fitbit_sleep_intraday_raw.csv
+- data/raw/{pid}/fitbit_sleep_intraday_with_datetime.csv
+- data/interim/{pid}/fitbit_sleep_intraday_episodes.csv
+- data/interim/{pid}/fitbit_sleep_intraday_episodes_resampled.csv
+- data/interim/{pid}/fitbit_sleep_intraday_episodes_resampled_with_datetime.csv
+- data/interim/{pid}/fitbit_sleep_intraday_features/fitbit_sleep_intraday_{language}_{provider_key}.csv
+- data/processed/features/{pid}/fitbit_sleep_intraday.csv
+
+
+

Parameters description for [FITBIT_SLEEP_INTRADAY][PROVIDERS][RAPIDS]:

+ + + + + + + + + + + + + + + + + + + + + + + + + +
Key                             Description
[COMPUTE]Set to True to extract FITBIT_SLEEP_INTRADAY features from the RAPIDS provider
[FEATURES]Features to be computed from sleep intraday data, see table below
[SLEEP_LEVELS]Fitbit’s sleep API Version 1 only provides CLASSIC records. However, Version 1.2 provides 2 types of records: CLASSIC and STAGES. STAGES is only available in devices with a heart rate sensor and even those devices will fail to report it if the battery is low or the device is not tight enough. While CLASSIC contains 3 sleep levels (awake, restless, and asleep), STAGES contains 4 sleep levels (wake, deep, light, rem). To make it consistent, RAPIDS groups them into 2 UNIFIED sleep levels: awake (CLASSIC: awake and restless; STAGES: wake) and asleep (CLASSIC: asleep; STAGES: deep, light, and rem). In this section, there is a boolean flag named INCLUDE_ALL_GROUPS that if set to TRUE, computes LEVELS_AND_TYPES features grouping all levels together in a single all category.
[SLEEP_TYPES]Types of sleep to be included in the feature extraction computation. There are three sleep types: main, nap, and all. The all type means both main sleep and naps are considered.
+

Features description for [FITBIT_SLEEP_INTRADAY][PROVIDERS][RAPIDS][LEVELS_AND_TYPES]:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Feature                                          UnitsDescription
countepisode[LEVEL][TYPE]episodesNumber of [LEVEL][TYPE]sleep episodes. [LEVEL]is one of [SLEEP_LEVELS] (e.g. awake-classic or rem-stages) and [TYPE] is one of [SLEEP_TYPES] (e.g. main). [LEVEL] can also be all when INCLUDE_ALL_GROUPS is True, which ignores the levels and groups by sleep types.
sumduration[LEVEL][TYPE]minutesTotal duration of all [LEVEL][TYPE]sleep episodes. [LEVEL]is one of [SLEEP_LEVELS] (e.g. awake-classic or rem-stages) and [TYPE] is one of [SLEEP_TYPES] (e.g. main). [LEVEL] can also be all when INCLUDE_ALL_GROUPS is True, which ignores the levels and groups by sleep types.
maxduration[LEVEL][TYPE]minutesLongest duration of any [LEVEL][TYPE]sleep episode. [LEVEL]is one of [SLEEP_LEVELS] (e.g. awake-classic or rem-stages) and [TYPE] is one of [SLEEP_TYPES] (e.g. main). [LEVEL] can also be all when INCLUDE_ALL_GROUPS is True, which ignores the levels and groups by sleep types.
minduration[LEVEL][TYPE]minutesShortest duration of any [LEVEL][TYPE]sleep episode. [LEVEL]is one of [SLEEP_LEVELS] (e.g. awake-classic or rem-stages) and [TYPE] is one of [SLEEP_TYPES] (e.g. main). [LEVEL] can also be all when INCLUDE_ALL_GROUPS is True, which ignores the levels and groups by sleep types.
avgduration[LEVEL][TYPE]minutesAverage duration of all [LEVEL][TYPE]sleep episodes. [LEVEL]is one of [SLEEP_LEVELS] (e.g. awake-classic or rem-stages) and [TYPE] is one of [SLEEP_TYPES] (e.g. main). [LEVEL] can also be all when INCLUDE_ALL_GROUPS is True, which ignores the levels and groups by sleep types.
medianduration[LEVEL][TYPE]minutesMedian duration of all [LEVEL][TYPE]sleep episodes. [LEVEL]is one of [SLEEP_LEVELS] (e.g. awake-classic or rem-stages) and [TYPE] is one of [SLEEP_TYPES] (e.g. main). [LEVEL] can also be all when INCLUDE_ALL_GROUPS is True, which ignores the levels and groups by sleep types.
stdduration[LEVEL][TYPE]minutesStandard deviation duration of all [LEVEL][TYPE]sleep episodes. [LEVEL]is one of [SLEEP_LEVELS] (e.g. awake-classic or rem-stages) and [TYPE] is one of [SLEEP_TYPES] (e.g. main). [LEVEL] can also be all when INCLUDE_ALL_GROUPS is True, which ignores the levels and groups by sleep types.
+

Features description for [FITBIT_SLEEP_INTRADAY][PROVIDERS][RAPIDS] RATIOS [ACROSS_LEVELS]:

+ + + + + + + + + + + + + + + + + + + + +
Feature                           UnitsDescription
ratiocount[LEVEL]-Ratio between the count of episodes of a single sleep [LEVEL] and the count of all episodes of all levels during both main and nap sleep types. This answers the question: what percentage of all wake, deep, light, and rem episodes were rem? (e.g., \(countepisode[remstages][all] / countepisode[all][all]\))
ratioduration[LEVEL]-Ratio between the duration of episodes of a single sleep [LEVEL] and the duration of all episodes of all levels during both main and nap sleep types. This answers the question: what percentage of all wake, deep, light, and rem time was rem? (e.g., \(sumduration[remstages][all] / sumduration[all][all]\))
+

Features description for [FITBIT_SLEEP_INTRADAY][PROVIDERS][RAPIDS] RATIOS [ACROSS_TYPES]:

+ + + + + + + + + + + + + + + + + + + + +
Feature                           UnitsDescription
ratiocountmain-Ratio between the count of all main episodes (independently of the levels inside) divided by the count of all main and nap episodes. This answers the question: what percentage of all sleep episodes (main and nap) were main? We do not provide the ratio for nap because is complementary. (\(countepisode[all][main] / countepisode[all][all]\))
ratiodurationmain-Ratio between the duration of all main episodes (independently of the levels inside) divided by the duration of all main and nap episodes. This answers the question: what percentage of all sleep time (main and nap) was main? We do not provide the ratio for nap because is complementary. (\(sumduration[all][main] / sumduration[all][all]\))
+

Features description for [FITBIT_SLEEP_INTRADAY][PROVIDERS][RAPIDS] RATIOS [WITHIN_LEVELS]:

+ + + + + + + + + + + + + + + + + + + + +
Feature                           UnitsDescription
ratiocountmainwithin[LEVEL]-Ratio between the count of episodes of a single sleep [LEVEL] during main sleep divided by the count of episodes of a single sleep [LEVEL] during main and nap. This answers the question: are rem episodes more frequent during main than nap sleep? We do not provide the ratio for nap because is complementary. (\(countepisode[remstages][main] / countepisode[remstages][all]\))
ratiodurationmainwithin[LEVEL]-Ratio between the duration of episodes of a single sleep [LEVEL] during main sleep divided by the duration of episodes of a single sleep [LEVEL] during main and nap. This answers the question: is rem time more frequent during main than nap sleep? We do not provide the ratio for nap because is complementary. (\(countepisode[remstages][main] / countepisode[remstages][all]\))
+

Features description for [FITBIT_SLEEP_INTRADAY][PROVIDERS][RAPIDS] RATIOS [WITHIN_TYPES]:

+ + + + + + + + + + + + + + + + + + + + +
Feature                                                   UnitsDescription
ratiocount[LEVEL]within[TYPE]-Ratio between the count of episodes of a single sleep [LEVEL] and the count of all episodes of all levels during either main or nap sleep types. This answers the question: what percentage of all wake, deep, light, and rem episodes were rem during main/nap sleep time? (e.g., \(countepisode[remstages][main] / countepisode[all][main]\))
ratioduration[LEVEL]within[TYPE]-Ratio between the duration of episodes of a single sleep [LEVEL] and the duration of all episodes of all levels during either main or nap sleep types. This answers the question: what percentage of all wake, deep, light, and rem time was rem during main/nap sleep time? (e.g., \(sumduration[remstages][main] / sumduration[all][main]\))
+
+

Assumptions/Observations

+
    +
  1. This diagram will help you understand how sleep episodes are chunked and grouped within time segments for the RAPIDS provider.
  2. +
  3. Features listed in [LEVELS_AND_TYPES] are computed for any levels and types listed in [SLEEP_LEVELS] or [SLEEP_TYPES]. For example if STAGES only contains [rem, light] you will not get countepisode[wake|deep][TYPE] or sum, max, min, avg, median, or std duration. Levels or types in these lists do not influence RATIOS or ROUTINE features.
  4. +
  5. Any [LEVEL] grouping is done within the elements of each class CLASSIC, STAGES, and UNIFIED. That is, we never combine CLASSIC or STAGES types to compute features.
  6. +
  7. The categories for all levels (when INCLUDE_ALL_GROUPS is True) and all SLEEP_TYPES are not considered for RATIOS features as they are always 1.
  8. +
  9. These features can be computed in time segments of any length, but only the 1-minute sleep chunks within each segment instance will be used.
  10. +
+
+

PRICE provider

+
+

Understanding PRICE features

+

This diagram will help you understand how sleep episodes are chunked and grouped within time segments and LNE-LNE intervals for the PRICE provider.

+
+
+

Available time segments

+
    +
  • Available for any time segments larger or equal to one day
  • +
+
+
+

File Sequence

+
- data/raw/{pid}/fitbit_sleep_intraday_raw.csv
+- data/raw/{pid}/fitbit_sleep_intraday_parsed.csv
+- data/interim/{pid}/fitbit_sleep_intraday_episodes_resampled.csv
+- data/interim/{pid}/fitbit_sleep_intraday_episodes_resampled_with_datetime.csv
+- data/interim/{pid}/fitbit_sleep_intraday_features/fitbit_sleep_intraday_{language}_{provider_key}.csv
+- data/processed/features/{pid}/fitbit_sleep_intraday.csv
+
+
+

Parameters description for [FITBIT_SLEEP_INTRADAY][PROVIDERS][PRICE]:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Key                                                                 Description
[COMPUTE]Set to True to extract FITBIT_SLEEP_INTRADAY features from the PRICE provider
[FEATURES]Features to be computed from sleep intraday data, see table below
[SLEEP_LEVELS]Fitbit’s sleep API Version 1 only provides CLASSIC records. However, Version 1.2 provides 2 types of records: CLASSIC and STAGES. STAGES is only available in devices with a heart rate sensor and even those devices will fail to report it if the battery is low or the device is not tight enough. While CLASSIC contains 3 sleep levels (awake, restless, and asleep), STAGES contains 4 sleep levels (wake, deep, light, rem). To make it consistent, RAPIDS groups them into 2 UNIFIED sleep levels: awake (CLASSIC: awake and restless; STAGES: wake) and asleep (CLASSIC: asleep; STAGES: deep, light, and rem). In this section, there is a boolean flag named INCLUDE_ALL_GROUPS that if set to TRUE, computes avgdurationallmain[DAY_TYPE] features grouping all levels together in a single all category.
[DAY_TYPE]The features of this provider can be computed using daily averages/standard deviations that were extracted on WEEKEND days only, WEEK days only, or ALL days
[LAST_NIGHT_END]Only main sleep episodes that start within the LNE-LNE interval [LAST_NIGHT_END, LAST_NIGHT_END + 23H 59M 59S] are taken into account to compute the features described below. [LAST_NIGHT_END] is a number ranging from 0 (midnight) to 1439 (23:59).
+

Features description for [FITBIT_SLEEP_INTRADAY][PROVIDERS][PRICE]:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Feature                                                            UnitsDescription
avgduration[LEVEL]main[DAY_TYPE]minutesAverage duration of daily sleep chunks of a LEVEL. Use the DAY_TYPE flag to include daily durations from weekend days only, weekdays, or both. Use [LEVEL] to group all levels in a single all category.
avgratioduration[LEVEL]withinmain[DAY_TYPE]-Average of the daily ratio between the duration of sleep chunks of a LEVEL and total duration of all main sleep episodes in a day. When INCLUDE_ALL_GROUPS is True the all LEVEL is ignored since this feature is always 1. Use the DAY_TYPE flag to include start times from weekend days only, weekdays, or both.
avgstarttimeofepisodemain[DAY_TYPE]minutesAverage of all start times of the first main sleep episode within each LNE-LNE interval in a time segment. Use the DAY_TYPE flag to include start times from LNE-LNE intervals that start on weekend days only, weekdays, or both.
avgendtimeofepisodemain[DAY_TYPE]minutesAverage of all end times of the last main sleep episode within each LNE-LNE interval in a time segment. Use the DAY_TYPE flag to include end times from LNE-LNE intervals that start on weekend days only, weekdays, or both.
avgmidpointofepisodemain[DAY_TYPE]minutesAverage of all the differences between avgendtime... and avgstarttime.. in a time segment. Use the DAY_TYPE flag to include end times from LNE-LNE intervals that start on weekend days only, weekdays, or both.
stdstarttimeofepisodemain[DAY_TYPE]minutesStandard deviation of all start times of the first main sleep episode within each LNE-LNE interval in a time segment. Use the DAY_TYPE flag to include start times from LNE-LNE intervals that start on weekend days only, weekdays, or both.
stdendtimeofepisodemain[DAY_TYPE]minutesStandard deviation of all end times of the last main sleep episode within each LNE-LNE interval in a time segment. Use the DAY_TYPE flag to include end times from LNE-LNE intervals that start on weekend days only, weekdays, or both.
stdmidpointofepisodemain[DAY_TYPE]minutesStandard deviation of all the differences between avgendtime... and avgstarttime.. in a time segment. Use the DAY_TYPE flag to include end times from LNE-LNE intervals that start on weekend days only, weekdays, or both.
socialjetlagminutesDifference in minutes between the avgmidpointofepisodemain of weekends and weekdays that belong to each time segment instance. If your time segment does not contain at least one week day and one weekend day this feature will be NA.
rmssdmeanstarttimeofepisodemainminutesSquare root of the mean squared successive difference (RMSSD) between today’s and yesterday’s starttimeofepisodemain values across the entire participant’s sleep data grouped per time segment instance. It represents the mean of how someone’s starttimeofepisodemain (bedtime) changed from night to night.
rmssdmeanendtimeofepisodemainminutesSquare root of the mean squared successive difference (RMSSD) between today’s and yesterday’s endtimeofepisodemain values across the entire participant’s sleep data grouped per time segment instance. It represents the mean of how someone’s endtimeofepisodemain (wake time) changed from night to night.
rmssdmeanmidpointofepisodemainminutesSquare root of the mean squared successive difference (RMSSD) between today’s and yesterday’s midpointofepisodemain values across the entire participant’s sleep data grouped per time segment instance. It represents the mean of how someone’s midpointofepisodemain (mid time between bedtime and wake time) changed from night to night.
rmssdmedianstarttimeofepisodemainminutesSquare root of the median squared successive difference (RMSSD) between today’s and yesterday’s starttimeofepisodemain values across the entire participant’s sleep data grouped per time segment instance. It represents the median of how someone’s starttimeofepisodemain (bedtime) changed from night to night.
rmssdmedianendtimeofepisodemainminutesSquare root of the median squared successive difference (RMSSD) between today’s and yesterday’s endtimeofepisodemain values across the entire participant’s sleep data grouped per time segment instance. It represents the median of how someone’s endtimeofepisodemain (wake time) changed from night to night.
rmssdmedianmidpointofepisodemainminutesSquare root of the median squared successive difference (RMSSD) between today’s and yesterday’s midpointofepisodemain values across the entire participant’s sleep data grouped per time segment instance. It represents the median of how someone’s midpointofepisodemain (average mid time between bedtime and wake time) changed from night to night.
+
+

Assumptions/Observations

+
    +
  1. This diagram will help you understand how sleep episodes are chunked and grouped within time segments and LNE-LNE intervals for the PRICE provider.
  2. +
  3. We recommend you use periodic segments that start in the morning so RAPIDS can chunk and group sleep episodes overnight. Shifted segments (as any other segments) are labelled based on their start and end date times.
  4. +
  5. avgstarttime... and avgendtime... are roughly equivalent to an average bed and awake time only if you are using shifted segments.
  6. +
  7. The features of this provider are only available on time segments that are longer than 24 hours because they are based on descriptive statistics computed across daily values.
  8. +
  9. Even though Fitbit provides 2 types of sleep episodes (main and nap), only main sleep episodes are considered.
  10. +
  11. The reference point for all times is 00:00 of the first day in the LNE-LNE interval.
  12. +
  13. Sleep episodes are formed by 1-minute chunks that we group overnight starting from today’s LNE and ending on tomorrow’s LNE or the end of that segment (whatever is first).
  14. +
  15. The features avgstarttime... and avgendtime... are the average of the first and last sleep episode across every LNE-LNE interval within a segment (avgmidtime... is the mid point between start and end). Therefore, only segments longer than 24hrs will be averaged across more than one LNE-LNE interval.
  16. +
  17. socialjetlag is only available on segment instances equal or longer than 48hrs that contain at least one weekday day and one weekend day, for example seven-day (weekly) segments.
  18. +
+
+ + + + + + +

Comments

+ + + + + + +
+ +
+
+ +
+ + + + +
+
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/1.3/features/fitbit-sleep-summary/index.html b/1.3/features/fitbit-sleep-summary/index.html new file mode 100644 index 00000000..ced4d40a --- /dev/null +++ b/1.3/features/fitbit-sleep-summary/index.html @@ -0,0 +1,2099 @@ + + + + + + + + + + + + + + + + + + + + + + Fitbit Sleep Summary - RAPIDS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + +
+
+
+ + +
+
+ + + + + + + + +

Fitbit Sleep Summary

+

Sensor parameters description for [FITBIT_SLEEP_SUMMARY]:

+ + + + + + + + + + + + + +
Key                             Description
[CONTAINER]Container where your sleep summary data is stored, depending on the data stream you are using this can be a database table, a CSV file, etc.
+

RAPIDS provider

+
+

Understanding RAPIDS features

+

This diagram will help you understand how sleep episodes are chunked and grouped within time segments using SLEEP_SUMMARY_LAST_NIGHT_END for the RAPIDS provider.

+
+
+

Available time segments

+
    +
  • Only available for segments that span 1 or more complete days (e.g. Jan 1st 00:00 to Jan 3rd 23:59)
  • +
+
+
+

File Sequence

+
- data/raw/{pid}/fitbit_sleep_summary_raw.csv
+- data/raw/{pid}/fitbit_sleep_summary_with_datetime.csv
+- data/interim/{pid}/fitbit_sleep_summary_features/fitbit_sleep_summary_{language}_{provider_key}.csv
+- data/processed/features/{pid}/fitbit_sleep_summary.csv
+
+
+

Parameters description for [FITBIT_SLEEP_SUMMARY][PROVIDERS][RAPIDS]:

+ + + + + + + + + + + + + + + + + + + + + + + + + +
Key                             Description
[COMPUTE]Set to True to extract FITBIT_SLEEP_SUMMARY features from the RAPIDS provider
[SLEEP_TYPES]Types of sleep to be included in the feature extraction computation. There are three sleep types: main, nap, and all. The all type means both main sleep and naps are considered.
[FEATURES]Features to be computed from sleep summary data, see table below
[FITBIT_DATA_STREAMS][data stream][SLEEP_SUMMARY_LAST_NIGHT_END]As an exception, the LAST_NIGHT_END parameter for this provider is in the data stream configuration section. This parameter controls how sleep episodes are assigned to different days and affects wake and bedtimes.
+

Features description for [FITBIT_SLEEP_SUMMARY][PROVIDERS][RAPIDS]:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FeatureUnitsDescription
firstwaketimeTYPEminutesFirst wake time for a certain sleep type during a time segment. Wake time is number of minutes after midnight of a sleep episode’s end time.
lastwaketimeTYPEminutesLast wake time for a certain sleep type during a time segment. Wake time is number of minutes after midnight of a sleep episode’s end time.
firstbedtimeTYPEminutesFirst bedtime for a certain sleep type during a time segment. Bedtime is number of minutes after midnight of a sleep episode’s start time.
lastbedtimeTYPEminutesLast bedtime for a certain sleep type during a time segment. Bedtime is number of minutes after midnight of a sleep episode’s start time.
countepisodeTYPEepisodesNumber of sleep episodes for a certain sleep type during a time segment.
avgefficiencyTYPEscoresAverage sleep efficiency for a certain sleep type during a time segment.
sumdurationafterwakeupTYPEminutesTotal duration the user stayed in bed after waking up for a certain sleep type during a time segment.
sumdurationasleepTYPEminutesTotal sleep duration for a certain sleep type during a time segment.
sumdurationawakeTYPEminutesTotal duration the user stayed awake but still in bed for a certain sleep type during a time segment.
sumdurationtofallasleepTYPEminutesTotal duration the user spent to fall asleep for a certain sleep type during a time segment.
sumdurationinbedTYPEminutesTotal duration the user stayed in bed (sumdurationtofallasleep + sumdurationawake + sumdurationasleep + sumdurationafterwakeup) for a certain sleep type during a time segment.
avgdurationafterwakeupTYPEminutesAverage duration the user stayed in bed after waking up for a certain sleep type during a time segment.
avgdurationasleepTYPEminutesAverage sleep duration for a certain sleep type during a time segment.
avgdurationawakeTYPEminutesAverage duration the user stayed awake but still in bed for a certain sleep type during a time segment.
avgdurationtofallasleepTYPEminutesAverage duration the user spent to fall asleep for a certain sleep type during a time segment.
avgdurationinbedTYPEminutesAverage duration the user stayed in bed (sumdurationtofallasleep + sumdurationawake + sumdurationasleep + sumdurationafterwakeup) for a certain sleep type during a time segment.
+
+

Assumptions/Observations

+
    +
  1. This diagram will help you understand how sleep episodes are chunked and grouped within time segments using LNE for the RAPIDS provider.
  2. +
  3. There are three sleep types (TYPE): main, nap, all. The all type groups both main sleep and naps. All types are based on Fitbit’s labels.
  4. +
  5. There are two versions of Fitbit’s sleep API (version 1 and version 1.2), and each provides raw sleep data in a different format:
      +
    • Count & duration summaries. v1 contains count_awake, duration_awake, count_awakenings, count_restless, and duration_restless fields for every sleep record but v1.2 does not.
    • +
    +
  6. +
  7. API columns. Most features are computed based on the values provided by Fitbit’s API: efficiency, minutes_after_wakeup, minutes_asleep, minutes_awake, minutes_to_fall_asleep, minutes_in_bed, is_main_sleep and type.
  8. +
  9. Bed time and sleep duration are based on episodes that started between today’s LNE and tomorrow’s LNE while awake time is based on the episodes that started between yesterday’s LNE and today’s LNE
  10. +
  11. The reference point for bed/awake times is today’s 00:00. You can have bedtimes larger than 24 and awake times smaller than 0
  12. +
  13. These features are only available for time segments that span midnight to midnight of the same or different day.
  14. +
  15. We include first and last wake and bedtimes because, when LAST_NIGHT_END is 10 am, the first bedtime could match a nap at 2 pm, and the last bedtime could match a main overnight sleep episode that starts at 10pm.
  16. +
  17. Set the value for SLEEP_SUMMARY_LAST_NIGHT_END int the config parameter [FITBIT_DATA_STREAMS][data stream][SLEEP_SUMMARY_LAST_NIGHT_END].
  18. +
+
+ + + + + + +

Comments

+ + + + + + +
+ +
+
+ +
+ + + + +
+
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/1.3/features/fitbit-steps-intraday/index.html b/1.3/features/fitbit-steps-intraday/index.html new file mode 100644 index 00000000..5896e8e7 --- /dev/null +++ b/1.3/features/fitbit-steps-intraday/index.html @@ -0,0 +1,2095 @@ + + + + + + + + + + + + + + + + + + + + + + Fitbit Steps Intraday - RAPIDS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + +
+
+
+ + +
+
+ + + + + + + + +

Fitbit Steps Intraday

+

Sensor parameters description for [FITBIT_STEPS_INTRADAY]:

+ + + + + + + + + + + + + + + + + +
Key                             Description
[CONTAINER]Container where your steps intraday data is stored, depending on the data stream you are using this can be a database table, a CSV file, etc.
[EXCLUDE_SLEEP]Step data will be excluded if it was logged during sleep periods when at least one [EXCLUDE] flag is set to True. Sleep can be delimited by (1) a fixed period that repeats on every day if [TIME_BASED][EXCLUDE] is True or (2) by Fitbit summary sleep episodes if [FITBIT_BASED][EXCLUDE] is True. If both are True (3), we use all Fitbit sleep episodes as well as the time-based episodes that do not overlap with any Fitbit episodes. If [TIME_BASED][EXCLUDE] is True, make sure Fitbit sleep summary container points to a valid table or file.
+

RAPIDS provider

+
+

Available time segments

+
    +
  • Available for all time segments
  • +
+
+
+

File Sequence

+
- data/raw/{pid}/fitbit_steps_intraday_raw.csv
+- data/raw/{pid}/fitbit_steps_intraday_with_datetime.csv
+- data/raw/{pid}/fitbit_sleep_summary_raw.csv (Only when [EXCLUDE_SLEEP][EXCLUDE]=True and [EXCLUDE_SLEEP][TYPE]=FITBIT_BASED)
+- data/interim/{pid}/fitbit_steps_intraday_with_datetime_exclude_sleep.csv (Only when [EXCLUDE_SLEEP][EXCLUDE]=True)
+- data/interim/{pid}/fitbit_steps_intraday_features/fitbit_steps_intraday_{language}_{provider_key}.csv
+- data/processed/features/{pid}/fitbit_steps_intraday.csv
+
+
+

Parameters description for [FITBIT_STEPS_INTRADAY][PROVIDERS][RAPIDS]:

+ + + + + + + + + + + + + + + + + + + + + + + + + +
Key                             Description
[COMPUTE]Set to True to extract FITBIT_STEPS_INTRADAY features from the RAPIDS provider
[FEATURES]Features to be computed from steps intraday data, see table below
[THRESHOLD_ACTIVE_BOUT]Every minute with Fitbit steps data wil be labelled as sedentary if its step count is below this threshold, otherwise, active.
[INCLUDE_ZERO_STEP_ROWS]Whether or not to include time segments with a 0 step count during the whole day.
+

Features description for [FITBIT_STEPS_INTRADAY][PROVIDERS][RAPIDS]:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FeatureUnitsDescription
sumstepsstepsThe total step count during a time segment.
maxstepsstepsThe maximum step count during a time segment.
minstepsstepsThe minimum step count during a time segment.
avgstepsstepsThe average step count during a time segment.
stdstepsstepsThe standard deviation of step count during a time segment.
countepisodesedentaryboutboutsNumber of sedentary bouts during a time segment.
sumdurationsedentaryboutminutesTotal duration of all sedentary bouts during a time segment.
maxdurationsedentaryboutminutesThe maximum duration of any sedentary bout during a time segment.
mindurationsedentaryboutminutesThe minimum duration of any sedentary bout during a time segment.
avgdurationsedentaryboutminutesThe average duration of sedentary bouts during a time segment.
stddurationsedentaryboutminutesThe standard deviation of the duration of sedentary bouts during a time segment.
countepisodeactiveboutboutsNumber of active bouts during a time segment.
sumdurationactiveboutminutesTotal duration of all active bouts during a time segment.
maxdurationactiveboutminutesThe maximum duration of any active bout during a time segment.
mindurationactiveboutminutesThe minimum duration of any active bout during a time segment.
avgdurationactiveboutminutesThe average duration of active bouts during a time segment.
stddurationactiveboutminutesThe standard deviation of the duration of active bouts during a time segment.
+
+

Assumptions/Observations

+
    +
  1. Active and sedentary bouts. If the step count per minute is smaller than THRESHOLD_ACTIVE_BOUT (default value is 10), that minute is labelled as sedentary, otherwise, is labelled as active. Active and sedentary bouts are periods of consecutive minutes labelled as active or sedentary.
  2. +
+
+ + + + + + +

Comments

+ + + + + + +
+ +
+
+ +
+ + + + +
+
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/1.3/features/fitbit-steps-summary/index.html b/1.3/features/fitbit-steps-summary/index.html new file mode 100644 index 00000000..fe26bb7a --- /dev/null +++ b/1.3/features/fitbit-steps-summary/index.html @@ -0,0 +1,2019 @@ + + + + + + + + + + + + + + + + + + + + + + Fitbit Steps Summary - RAPIDS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + +
+
+
+ + +
+
+ + + + + + + + +

Fitbit Steps Summary

+

Sensor parameters description for [FITBIT_STEPS_SUMMARY]:

+ + + + + + + + + + + + + +
Key                             Description
[CONTAINER]Container where your steps summary data is stored, depending on the data stream you are using this can be a database table, a CSV file, etc.
+

RAPIDS provider

+
+

Available time segments

+
    +
  • Only available for segments that span 1 or more complete days (e.g. Jan 1st 00:00 to Jan 3rd 23:59)
  • +
+
+
+

File Sequence

+
- data/raw/{pid}/fitbit_steps_summary_raw.csv
+- data/raw/{pid}/fitbit_steps_summary_with_datetime.csv
+- data/interim/{pid}/fitbit_steps_summary_features/fitbit_steps_summary_{language}_{provider_key}.csv
+- data/processed/features/{pid}/fitbit_steps_summary.csv
+
+
+

Parameters description for [FITBIT_STEPS_SUMMARY][PROVIDERS][RAPIDS]:

+ + + + + + + + + + + + + + + + + +
Key                             Description
[COMPUTE]Set to True to extract FITBIT_STEPS_SUMMARY features from the RAPIDS provider
[FEATURES]Features to be computed from steps summary data, see table below
+

Features description for [FITBIT_STEPS_SUMMARY][PROVIDERS][RAPIDS]:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FeatureUnitsDescription
maxsumstepsstepsThe maximum daily step count during a time segment.
minsumstepsstepsThe minimum daily step count during a time segment.
avgsumstepsstepsThe average daily step count during a time segment.
mediansumstepsstepsThe median of daily step count during a time segment.
stdsumstepsstepsThe standard deviation of daily step count during a time segment.
+
+

Assumptions/Observations

+

NA

+
+ + + + + + +

Comments

+ + + + + + +
+ +
+
+ +
+ + + + +
+
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/1.3/features/phone-accelerometer/index.html b/1.3/features/phone-accelerometer/index.html new file mode 100644 index 00000000..e8dba808 --- /dev/null +++ b/1.3/features/phone-accelerometer/index.html @@ -0,0 +1,2121 @@ + + + + + + + + + + + + + + + + + + + + + + Phone Accelerometer - RAPIDS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + +
+
+
+ + +
+
+ + + + + + + + +

Phone Accelerometer

+

Sensor parameters description for [PHONE_ACCELEROMETER]:

+ + + + + + + + + + + + + +
Key                             Description
[CONTAINER]Data stream container (database table, CSV file, etc.) where the accelerometer data is stored
+

RAPIDS provider

+
+

Available time segments and platforms

+
    +
  • Available for all time segments
  • +
  • Available for Android and iOS
  • +
+
+
+

File Sequence

+
- data/raw/{pid}/phone_accelerometer_raw.csv
+- data/raw/{pid}/phone_accelerometer_with_datetime.csv
+- data/interim/{pid}/phone_accelerometer_features/phone_accelerometer_{language}_{provider_key}.csv
+- data/processed/features/{pid}/phone_accelerometer.csv
+
+
+

Parameters description for [PHONE_ACCELEROMETER][PROVIDERS][RAPIDS]:

+ + + + + + + + + + + + + + + + + +
Key                             Description
[COMPUTE]Set to True to extract PHONE_ACCELEROMETER features from the RAPIDS provider
[FEATURES]Features to be computed, see table below
+

Features description for [PHONE_ACCELEROMETER][PROVIDERS][RAPIDS]:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FeatureUnitsDescription
maxmagnitudem/s2The maximum magnitude of acceleration (\(\|acceleration\| = \sqrt{x^2 + y^2 + z^2}\)).
minmagnitudem/s2The minimum magnitude of acceleration.
avgmagnitudem/s2The average magnitude of acceleration.
medianmagnitudem/s2The median magnitude of acceleration.
stdmagnitudem/s2The standard deviation of acceleration.
+
+

Assumptions/Observations

+
    +
  1. Analyzing accelerometer data is a memory intensive task. If RAPIDS crashes is likely because the accelerometer dataset for a participant is to big to fit in memory. We are considering different alternatives to overcome this problem.
  2. +
+
+

PANDA provider

+

These features are based on the work by Panda et al.

+
+

Available time segments and platforms

+
    +
  • Available for all time segments
  • +
  • Available for Android and iOS
  • +
+
+
+

File Sequence

+
- data/raw/{pid}/phone_accelerometer_raw.csv
+- data/raw/{pid}/phone_accelerometer_with_datetime.csv
+- data/interim/{pid}/phone_accelerometer_features/phone_accelerometer_{language}_{provider_key}.csv
+- data/processed/features/{pid}/phone_accelerometer.csv
+
+
+

Parameters description for [PHONE_ACCELEROMETER][PROVIDERS][PANDA]:

+ + + + + + + + + + + + + + + + + +
Key                             Description
[COMPUTE]Set to True to extract PHONE_ACCELEROMETER features from the PANDA provider
[FEATURES]Features to be computed for exertional and non-exertional activity episodes, see table below
+

Features description for [PHONE_ACCELEROMETER][PROVIDERS][PANDA]:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FeatureUnitsDescription
sumdurationminutesTotal duration of all exertional or non-exertional activity episodes.
maxdurationminutesLongest duration of any exertional or non-exertional activity episode.
mindurationminutesShortest duration of any exertional or non-exertional activity episode.
avgdurationminutesAverage duration of any exertional or non-exertional activity episode.
mediandurationminutesMedian duration of any exertional or non-exertional activity episode.
stddurationminutesStandard deviation of the duration of all exertional or non-exertional activity episodes.
+
+

Assumptions/Observations

+
    +
  1. Analyzing accelerometer data is a memory intensive task. If RAPIDS crashes is likely because the accelerometer dataset for a participant is to big to fit in memory. We are considering different alternatives to overcome this problem.
  2. +
  3. See Panda et al for a definition of exertional and non-exertional activity episodes
  4. +
+
+ + + + + + +

Comments

+ + + + + + +
+ +
+
+ +
+ + + + +
+
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/1.3/features/phone-activity-recognition/index.html b/1.3/features/phone-activity-recognition/index.html new file mode 100644 index 00000000..a3f719a3 --- /dev/null +++ b/1.3/features/phone-activity-recognition/index.html @@ -0,0 +1,2096 @@ + + + + + + + + + + + + + + + + + + + + + + Phone Activity Recognition - RAPIDS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + +
+
+
+ + +
+
+ + + + + + + + +

Phone Activity Recognition

+

Sensor parameters description for [PHONE_ACTIVITY_RECOGNITION]:

+ + + + + + + + + + + + + + + + + + + + + +
Key                                                              Description
[CONTAINER][ANDROID]Data stream container (database table, CSV file, etc.) where the activity data from Android devices is stored (the AWARE client saves this data on different tables for Android and iOS)
[CONTAINER][IOS]Data stream container (database table, CSV file, etc.) where the activity data from iOS devices is stored (the AWARE client saves this data on different tables for Android and iOS)
[EPISODE_THRESHOLD_BETWEEN_ROWS]Difference in minutes between any two rows for them to be considered part of the same activity episode
+

RAPIDS provider

+
+

Available time segments and platforms

+
    +
  • Available for all time segments
  • +
  • Available for Android and iOS
  • +
+
+
+

File Sequence

+
- data/raw/{pid}/phone_activity_recognition_raw.csv
+- data/raw/{pid}/phone_activity_recognition_with_datetime.csv
+- data/interim/{pid}/phone_activity_recognition_episodes.csv
+- data/interim/{pid}/phone_activity_recognition_episodes_resampled.csv
+- data/interim/{pid}/phone_activity_recognition_episodes_resampled_with_datetime.csv
+- data/interim/{pid}/phone_activity_recognition_features/phone_activity_recognition_{language}_{provider_key}.csv
+- data/processed/features/{pid}/phone_activity_recognition.csv
+
+
+

Parameters description for [PHONE_ACTIVITY_RECOGNITION][PROVIDERS][RAPIDS]:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Key                             Description
[COMPUTE]Set to True to extract PHONE_ACTIVITY_RECOGNITION features from the RAPIDS provider
[FEATURES]Features to be computed, see table below
[ACTIVITY_CLASSES][STATIONARY]An array of the activity labels to be considered in the STATIONARY category choose any of still, tilting
[ACTIVITY_CLASSES][MOBILE]An array of the activity labels to be considered in the MOBILE category choose any of on_foot, walking, running, on_bicycle
[ACTIVITY_CLASSES][VEHICLE]An array of the activity labels to be considered in the VEHICLE category choose any of in_vehicule
+

Features description for [PHONE_ACTIVITY_RECOGNITION][PROVIDERS][RAPIDS]:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FeatureUnitsDescription
countrowsNumber of episodes.
mostcommonactivityactivity typeThe most common activity type (e.g. still, on_foot, etc.). If there is a tie, the first one is chosen.
countuniqueactivitiesactivity typeNumber of unique activities.
durationstationaryminutesThe total duration of [ACTIVITY_CLASSES][STATIONARY] episodes
durationmobileminutesThe total duration of [ACTIVITY_CLASSES][MOBILE] episodes of on foot, running, and on bicycle activities
durationvehicleminutesThe total duration of [ACTIVITY_CLASSES][VEHICLE] episodes of on vehicle activity
+
+

Assumptions/Observations

+
    +
  1. +

    iOS Activity Recognition names and types are unified with Android labels:

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    iOS Activity NameAndroid Activity NameAndroid Activity Type
    walkingwalking7
    runningrunning8
    cyclingon_bicycle1
    automotivein_vehicle0
    stationarystill3
    unknownunknown4
    +
  2. +
  3. +

    In AWARE, Activity Recognition data for Android and iOS are stored in two different database tables, RAPIDS automatically infers what platform each participant belongs to based on their participant file.

    +
  4. +
+
+ + + + + + +

Comments

+ + + + + + +
+ +
+
+ +
+ + + + +
+
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/1.3/features/phone-applications-crashes/index.html b/1.3/features/phone-applications-crashes/index.html new file mode 100644 index 00000000..854b2dbb --- /dev/null +++ b/1.3/features/phone-applications-crashes/index.html @@ -0,0 +1,1919 @@ + + + + + + + + + + + + + + + + + + + + + + Phone Applications Crashes - RAPIDS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + +
+
+
+ + +
+
+ + + + + + + + +

Phone Applications Crashes

+

Sensor parameters description for [PHONE_APPLICATIONS_CRASHES]:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Key                             Description
[CONTAINER]Data stream container (database table, CSV file, etc.) where the applications crashes data is stored
[APPLICATION_CATEGORIES][CATALOGUE_SOURCE]FILE or GOOGLE. If FILE, app categories (genres) are read from [CATALOGUE_FILE]. If [GOOGLE], app categories (genres) are scrapped from the Play Store
[APPLICATION_CATEGORIES][CATALOGUE_FILE]CSV file with a package_name and genre column. By default we provide the catalogue created by Stachl et al in data/external/stachl_application_genre_catalogue.csv
[APPLICATION_CATEGORIES][UPDATE_CATALOGUE_FILE]if [CATALOGUE_SOURCE] is equal to FILE, this flag signals whether or not to update [CATALOGUE_FILE], if [CATALOGUE_SOURCE] is equal to GOOGLE all scraped genres will be saved to [CATALOGUE_FILE]
[APPLICATION_CATEGORIES][SCRAPE_MISSING_CATEGORIES]This flag signals whether or not to scrape categories (genres) missing from the [CATALOGUE_FILE]. If [CATALOGUE_SOURCE] is equal to GOOGLE, all genres are scraped anyway (this flag is ignored)
+
+

Note

+

No feature providers have been implemented for this sensor yet, however you can use its key (PHONE_APPLICATIONS_CRASHES) to improve PHONE_DATA_YIELD or you can implement your own features.

+
+ + + + + + +

Comments

+ + + + + + +
+ +
+
+ +
+ + + + +
+
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/1.3/features/phone-applications-foreground/index.html b/1.3/features/phone-applications-foreground/index.html new file mode 100644 index 00000000..7f295a0a --- /dev/null +++ b/1.3/features/phone-applications-foreground/index.html @@ -0,0 +1,2055 @@ + + + + + + + + + + + + + + + + + + + + + + Phone Applications Foreground - RAPIDS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + +
+
+
+ + +
+
+ + + + + + + + +

Phone Applications Foreground

+

Sensor parameters description for [PHONE_APPLICATIONS_FOREGROUND] (these parameters are used by the only provider available at the moment, RAPIDS):

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Key                             Description
[CONTAINER]Data stream container (database table, CSV file, etc.) where the applications foreground data is stored
[APPLICATION_CATEGORIES][CATALOGUE_SOURCE]FILE or GOOGLE. If FILE, app categories (genres) are read from [CATALOGUE_FILE]. If [GOOGLE], app categories (genres) are scrapped from the Play Store
[APPLICATION_CATEGORIES][CATALOGUE_FILE]CSV file with a package_name and genre column. By default we provide the catalogue created by Stachl et al in data/external/stachl_application_genre_catalogue.csv
[APPLICATION_CATEGORIES][UPDATE_CATALOGUE_FILE]if [CATALOGUE_SOURCE] is equal to FILE, this flag signals whether or not to update [CATALOGUE_FILE], if [CATALOGUE_SOURCE] is equal to GOOGLE all scraped genres will be saved to [CATALOGUE_FILE]
[APPLICATION_CATEGORIES][SCRAPE_MISSING_CATEGORIES]This flag signals whether or not to scrape categories (genres) missing from the [CATALOGUE_FILE]. If [CATALOGUE_SOURCE] is equal to GOOGLE, all genres are scraped anyway (this flag is ignored)
+

RAPIDS provider

+

The app category (genre) catalogue used in these features was originally created by Stachl et al.

+
+

Available time segments and platforms

+
    +
  • Available for all time segments
  • +
  • Available for Android only
  • +
+
+
+

File Sequence

+
- data/raw/{pid}/phone_applications_foreground_raw.csv
+- data/raw/{pid}/phone_applications_foreground_with_datetime.csv
+- data/raw/{pid}/phone_applications_foreground_with_datetime_with_categories.csv
+- data/interim/{pid}/phone_applications_foreground_features/phone_applications_foreground_{language}_{provider_key}.csv
+- data/processed/features/{pid}/phone_applications_foreground.csv
+
+
+

Parameters description for [PHONE_APPLICATIONS_FOREGROUND][PROVIDERS][RAPIDS]:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Key                                        Description
[COMPUTE]Set to True to extract PHONE_APPLICATIONS_FOREGROUND features from the RAPIDS provider
[FEATURES]Features to be computed, see table below
[SINGLE_CATEGORIES]An array of app categories to be included in the feature extraction computation. The special keyword all represents a category with all the apps from each participant. By default we use the category catalogue pointed by [APPLICATION_CATEGORIES][CATALOGUE_FILE] (see the Sensor parameters description table above)
[MULTIPLE_CATEGORIES]An array of collections representing meta-categories (a group of categories). They key of each element is the name of the meta-category and the value is an array of member app categories. By default we use the category catalogue pointed by [APPLICATION_CATEGORIES][CATALOGUE_FILE] (see the Sensor parameters description table above)
[SINGLE_APPS]An array of apps to be included in the feature extraction computation. Use their package name (e.g. com.google.android.youtube) or the reserved keyword top1global (the most used app by a participant over the whole monitoring study)
[EXCLUDED_CATEGORIES]An array of app categories to be excluded from the feature extraction computation. By default we use the category catalogue pointed by [APPLICATION_CATEGORIES][CATALOGUE_FILE] (see the Sensor parameters description table above)
[EXCLUDED_APPS]An array of apps to be excluded from the feature extraction computation. Use their package name, for example: com.google.android.youtube
+

Features description for [PHONE_APPLICATIONS_FOREGROUND][PROVIDERS][RAPIDS]:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FeatureUnitsDescription
countappsNumber of times a single app or apps within a category were used (i.e. they were brought to the foreground either by tapping their icon or switching to it from another app)
timeoffirstuseminutesThe time in minutes between 12:00am (midnight) and the first use of a single app or apps within a category during a time_segment
timeoflastuseminutesThe time in minutes between 12:00am (midnight) and the last use of a single app or apps within a category during a time_segment
frequencyentropynatsThe entropy of the used apps within a category during a time_segment (each app is seen as a unique event, the more apps were used, the higher the entropy). This is especially relevant when computed over all apps. Entropy cannot be obtained for a single app
+
+

Assumptions/Observations

+

Features can be computed by app, by apps grouped under a single category (genre) and by multiple categories grouped together (meta-categories). For example, we can get features for Facebook (single app), for Social Network apps (a category including Facebook and other social media apps) or for Social (a meta-category formed by Social Network and Social Media Tools categories).

+

Apps installed by default like YouTube are considered systems apps on some phones. We do an exact match to exclude apps where “genre” == EXCLUDED_CATEGORIES or “package_name” == EXCLUDED_APPS.

+

We provide three ways of classifying and app within a category (genre): a) by automatically scraping its official category from the Google Play Store, b) by using the catalogue created by Stachl et al. which we provide in RAPIDS (data/external/stachl_application_genre_catalogue.csv), or c) by manually creating a personalized catalogue. You can choose a, b or c by modifying [APPLICATION_GENRES] keys and values (see the Sensor parameters description table above).

+
+ + + + + + +

Comments

+ + + + + + +
+ +
+
+ +
+ + + + +
+
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/1.3/features/phone-applications-notifications/index.html b/1.3/features/phone-applications-notifications/index.html new file mode 100644 index 00000000..d59e3684 --- /dev/null +++ b/1.3/features/phone-applications-notifications/index.html @@ -0,0 +1,1919 @@ + + + + + + + + + + + + + + + + + + + + + + Phone Applications Notifications - RAPIDS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + +
+
+
+ + +
+
+ + + + + + + + +

Phone Applications Notifications

+

Sensor parameters description for [PHONE_APPLICATIONS_NOTIFICATIONS]:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Key                             Description
[CONTAINER]Data stream container (database table, CSV file, etc.) where the applications notifications data is stored
[APPLICATION_CATEGORIES][CATALOGUE_SOURCE]FILE or GOOGLE. If FILE, app categories (genres) are read from [CATALOGUE_FILE]. If [GOOGLE], app categories (genres) are scrapped from the Play Store
[APPLICATION_CATEGORIES][CATALOGUE_FILE]CSV file with a package_name and genre column. By default we provide the catalogue created by Stachl et al in data/external/stachl_application_genre_catalogue.csv
[APPLICATION_CATEGORIES][UPDATE_CATALOGUE_FILE]if [CATALOGUE_SOURCE] is equal to FILE, this flag signals whether or not to update [CATALOGUE_FILE], if [CATALOGUE_SOURCE] is equal to GOOGLE all scraped genres will be saved to [CATALOGUE_FILE]
[APPLICATION_CATEGORIES][SCRAPE_MISSING_CATEGORIES]This flag signals whether or not to scrape categories (genres) missing from the [CATALOGUE_FILE]. If [CATALOGUE_SOURCE] is equal to GOOGLE, all genres are scraped anyway (this flag is ignored)
+
+

Note

+

No feature providers have been implemented for this sensor yet, however you can use its key (PHONE_APPLICATIONS_NOTIFICATIONS) to improve PHONE_DATA_YIELD or you can implement your own features.

+
+ + + + + + +

Comments

+ + + + + + +
+ +
+
+ +
+ + + + +
+
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/1.3/features/phone-battery/index.html b/1.3/features/phone-battery/index.html new file mode 100644 index 00000000..38430ec1 --- /dev/null +++ b/1.3/features/phone-battery/index.html @@ -0,0 +1,2034 @@ + + + + + + + + + + + + + + + + + + + + + + Phone Battery - RAPIDS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + +
+
+
+ + +
+
+ + + + + + + + +

Phone Battery

+

Sensor parameters description for [PHONE_BATTERY]:

+ + + + + + + + + + + + + + + + + +
Key                                                              Description
[CONTAINER]Data stream container (database table, CSV file, etc.) where the battery data is stored
[EPISODE_THRESHOLD_BETWEEN_ROWS]Difference in minutes between any two rows for them to be considered part of the same battery charge or discharge episode
+

RAPIDS provider

+
+

Available time segments and platforms

+
    +
  • Available for all time segments
  • +
  • Available for Android and iOS
  • +
+
+
+

File Sequence

+
- data/raw/{pid}/phone_battery_raw.csv
+- data/interim/{pid}/phone_battery_episodes.csv
+- data/interim/{pid}/phone_battery_episodes_resampled.csv
+- data/interim/{pid}/phone_battery_episodes_resampled_with_datetime.csv
+- data/interim/{pid}/phone_battery_features/phone_battery_{language}_{provider_key}.csv
+- data/processed/features/{pid}/phone_battery.csv
+
+
+

Parameters description for [PHONE_BATTERY][PROVIDERS][RAPIDS]:

+ + + + + + + + + + + + + + + + + +
Key                             Description
[COMPUTE]Set to True to extract PHONE_BATTERY features from the RAPIDS provider
[FEATURES]Features to be computed, see table below
+

Features description for [PHONE_BATTERY][PROVIDERS][RAPIDS]:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FeatureUnitsDescription
countdischargeepisodesNumber of discharging episodes.
sumdurationdischargeminutesThe total duration of all discharging episodes.
countchargeepisodesNumber of battery charging episodes.
sumdurationchargeminutesThe total duration of all charging episodes.
avgconsumptionrateepisodes/minutesThe average of all episodes’ consumption rates. An episode’s consumption rate is defined as the ratio between its battery delta and duration
maxconsumptionrateepisodes/minutesThe highest of all episodes’ consumption rates. An episode’s consumption rate is defined as the ratio between its battery delta and duration
+
+

Assumptions/Observations

+
    +
  1. We convert battery data collected with iOS client v1 (autodetected because battery status 4 do not exist) to match Android battery format: we swap status 3 for 5 and 1 for 3
  2. +
  3. We group battery data into discharge or charge episodes considering any contiguous rows with consecutive reductions or increases of the battery level if they are logged within [EPISODE_THRESHOLD_BETWEEN_ROWS] minutes from each other.
  4. +
+
+ + + + + + +

Comments

+ + + + + + +
+ +
+
+ +
+ + + + +
+
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/1.3/features/phone-bluetooth/index.html b/1.3/features/phone-bluetooth/index.html new file mode 100644 index 00000000..3130edb7 --- /dev/null +++ b/1.3/features/phone-bluetooth/index.html @@ -0,0 +1,2195 @@ + + + + + + + + + + + + + + + + + + + + + + Phone Bluetooth - RAPIDS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + +
+
+
+ + +
+
+ + + + + + + + +

Phone Bluetooth

+

Sensor parameters description for [PHONE_BLUETOOTH]:

+ + + + + + + + + + + + + +
Key                             Description
[CONTAINER]Data stream container (database table, CSV file, etc.) where the bluetooth data is stored
+

RAPIDS provider

+
+

Warning

+

The features of this provider are deprecated in favor of DORYAB provider (see below).

+
+
+

Available time segments and platforms

+
    +
  • Available for all time segments
  • +
  • Available for Android only
  • +
+
+
+

File Sequence

+
- data/raw/{pid}/phone_bluetooth_raw.csv
+- data/raw/{pid}/phone_bluetooth_with_datetime.csv
+- data/interim/{pid}/phone_bluetooth_features/phone_bluetooth_{language}_{provider_key}.csv
+- data/processed/features/{pid}/phone_bluetooth.csv"
+
+
+

Parameters description for [PHONE_BLUETOOTH][PROVIDERS][RAPIDS]:

+ + + + + + + + + + + + + + + + + +
Key                             Description
[COMPUTE]Set to True to extract PHONE_BLUETOOTH features from the RAPIDS provider
[FEATURES]Features to be computed, see table below
+

Features description for [PHONE_BLUETOOTH][PROVIDERS][RAPIDS]:

+ + + + + + + + + + + + + + + + + + + + + + + + + +
FeatureUnitsDescription
countscansdevicesNumber of scanned devices during a time segment, a device can be detected multiple times over time and these appearances are counted separately
uniquedevicesdevicesNumber of unique devices during a time segment as identified by their hardware (bt_address) address
countscansmostuniquedevicescansNumber of scans of the most sensed device within each time segment instance
+
+

Assumptions/Observations

+
    +
  • From v0.2.0 countscans, uniquedevices, countscansmostuniquedevice were deprecated because they overlap with the respective features for ALL devices of the PHONE_BLUETOOTH DORYAB provider
  • +
+
+

DORYAB provider

+

This provider is adapted from the work by Doryab et al.

+
+

Available time segments and platforms

+
    +
  • Available for all time segments
  • +
  • Available for Android only
  • +
+
+
+

File Sequence

+
- data/raw/{pid}/phone_bluetooth_raw.csv
+- data/raw/{pid}/phone_bluetooth_with_datetime.csv
+- data/interim/{pid}/phone_bluetooth_features/phone_bluetooth_{language}_{provider_key}.csv
+- data/processed/features/{pid}/phone_bluetooth.csv"
+
+
+

Parameters description for [PHONE_BLUETOOTH][PROVIDERS][DORYAB]:

+ + + + + + + + + + + + + + + + + +
Key                             Description
[COMPUTE]Set to True to extract PHONE_BLUETOOTH features from the DORYAB provider
[FEATURES]Features to be computed, see table below. These features are computed for three device categories: all devices, own devices and other devices.
+

Features description for [PHONE_BLUETOOTH][PROVIDERS][DORYAB]:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Feature                                                                                  UnitsDescription
countscansscansNumber of scans (rows) from the devices sensed during a time segment instance. The more scans a bluetooth device has the longer it remained within range of the participant’s phone
uniquedevicesdevicesNumber of unique bluetooth devices sensed during a time segment instance as identified by their hardware addresses (bt_address)
meanscansscansMean of the scans of every sensed device within each time segment instance
stdscansscansStandard deviation of the scans of every sensed device within each time segment instance
countscansmostfrequentdevicewithinsegmentsscansNumber of scans of the most sensed device within each time segment instance
countscansleastfrequentdevicewithinsegmentsscansNumber of scans of the least sensed device within each time segment instance
countscansmostfrequentdeviceacrosssegmentsscansNumber of scans of the most sensed device across time segment instances of the same type
countscansleastfrequentdeviceacrosssegmentsscansNumber of scans of the least sensed device across time segment instances of the same type per device
countscansmostfrequentdeviceacrossdatasetscansNumber of scans of the most sensed device across the entire dataset of every participant
countscansleastfrequentdeviceacrossdatasetscansNumber of scans of the least sensed device across the entire dataset of every participant
+
+

Assumptions/Observations

+
    +
  • Devices are classified as belonging to the participant (own) or to other people (others) using k-means based on the number of times and the number of days each device was detected across each participant’s dataset. See Doryab et al for more details.
  • +
  • If ownership cannot be computed because all devices were detected on only one day, they are all considered as other. Thus all and other features will be equal. The likelihood of this scenario decreases the more days of data you have.
  • +
  • The most and least frequent devices will be the same across time segment instances and across the entire dataset when every time segment instance covers every hour of a dataset. For example, daily segments (00:00 to 23:59) fall in this category but morning segments (06:00am to 11:59am) or periodic 30-minute segments don’t.
  • +
+
Example
Simplified raw bluetooth data

The following is a simplified example with bluetooth data from three days and two time segments: morning and afternoon. There are two own devices: 5C836F5-487E-405F-8E28-21DBD40FA4FF detected seven times across two days and 499A1EAF-DDF1-4657-986C-EA5032104448 detected eight times on a single day. +

local_date  segment     bt_address                              own_device
+2016-11-29  morning     55C836F5-487E-405F-8E28-21DBD40FA4FF              1
+2016-11-29  morning     55C836F5-487E-405F-8E28-21DBD40FA4FF              1
+2016-11-29  morning     55C836F5-487E-405F-8E28-21DBD40FA4FF              1
+2016-11-29  morning     55C836F5-487E-405F-8E28-21DBD40FA4FF              1
+2016-11-29  morning     48872A52-68DE-420D-98DA-73339A1C4685              0
+2016-11-29  afternoon   55C836F5-487E-405F-8E28-21DBD40FA4FF              1
+2016-11-29  afternoon   48872A52-68DE-420D-98DA-73339A1C4685              0
+2016-11-30  morning     55C836F5-487E-405F-8E28-21DBD40FA4FF              1
+2016-11-30  morning     48872A52-68DE-420D-98DA-73339A1C4685              0
+2016-11-30  morning     25262DC7-780C-4AD5-AD3A-D9776AEF7FC1              0
+2016-11-30  morning     5B1E6981-2E50-4D9A-99D8-67AED430C5A8              0
+2016-11-30  morning     5B1E6981-2E50-4D9A-99D8-67AED430C5A8              0
+2016-11-30  afternoon   55C836F5-487E-405F-8E28-21DBD40FA4FF              1
+2017-05-07  morning     5C5A9C41-2F68-4CEB-96D0-77DE3729B729              0
+2017-05-07  morning     25262DC7-780C-4AD5-AD3A-D9776AEF7FC1              0
+2017-05-07  morning     5B1E6981-2E50-4D9A-99D8-67AED430C5A8              0
+2017-05-07  morning     6C444841-FE64-4375-BC3F-FA410CDC0AC7              0
+2017-05-07  morning     4DC7A22D-9F1F-4DEF-8576-086910AABCB5              0
+2017-05-07  afternoon   5B1E6981-2E50-4D9A-99D8-67AED430C5A8              0
+2017-05-07  afternoon   499A1EAF-DDF1-4657-986C-EA5032104448              1
+2017-05-07  afternoon   499A1EAF-DDF1-4657-986C-EA5032104448              1
+2017-05-07  afternoon   499A1EAF-DDF1-4657-986C-EA5032104448              1
+2017-05-07  afternoon   499A1EAF-DDF1-4657-986C-EA5032104448              1
+2017-05-07  afternoon   499A1EAF-DDF1-4657-986C-EA5032104448              1
+2017-05-07  afternoon   499A1EAF-DDF1-4657-986C-EA5032104448              1
+2017-05-07  afternoon   499A1EAF-DDF1-4657-986C-EA5032104448              1
+2017-05-07  afternoon   499A1EAF-DDF1-4657-986C-EA5032104448              1
+

+
+
The most and least frequent OTHER devices (own_device == 0) during morning segments

The most and least frequent ALL|OWN|OTHER devices are computed within each time segment instance, across time segment instances of the same type and across the entire dataset of each person. These are the most and least frequent devices for OTHER devices during morning segments. +

most frequent device across 2016-11-29 morning:   '48872A52-68DE-420D-98DA-73339A1C4685'  (this device is the only one in this instance)
+least frequent device across 2016-11-29 morning:  '48872A52-68DE-420D-98DA-73339A1C4685'  (this device is the only one in this instance)
+most frequent device across 2016-11-30 morning:   '5B1E6981-2E50-4D9A-99D8-67AED430C5A8'
+least frequent device across 2016-11-30 morning:  '25262DC7-780C-4AD5-AD3A-D9776AEF7FC1'  (when tied, the first occurance is chosen)
+most frequent device across 2017-05-07 morning:   '25262DC7-780C-4AD5-AD3A-D9776AEF7FC1'  (when tied, the first occurance is chosen)
+least frequent device across 2017-05-07 morning:  '25262DC7-780C-4AD5-AD3A-D9776AEF7FC1'  (when tied, the first occurance is chosen)
+
+most frequent across morning segments:            '5B1E6981-2E50-4D9A-99D8-67AED430C5A8'
+least frequent across morning segments:           '6C444841-FE64-4375-BC3F-FA410CDC0AC7' (when tied, the first occurance is chosen)
+
+most frequent across dataset:                     '499A1EAF-DDF1-4657-986C-EA5032104448' (only taking into account "morning" segments)
+least frequent across dataset:                    '4DC7A22D-9F1F-4DEF-8576-086910AABCB5' (when tied, the first occurance is chosen)
+

+
+
Bluetooth features for OTHER devices and morning segments

For brevity we only show the following features for morning segments: +

OTHER: 
+    DEVICES: ["countscans", "uniquedevices", "meanscans", "stdscans"]
+    SCANS_MOST_FREQUENT_DEVICE: ["withinsegments", "acrosssegments", "acrossdataset"]
+

+

Note that countscansmostfrequentdeviceacrossdatasetothers is all 0s because 499A1EAF-DDF1-4657-986C-EA5032104448 is excluded from the count as is labelled as an own device (not other). +

local_segment       countscansothers    uniquedevicesothers meanscansothers stdscansothers  countscansmostfrequentdevicewithinsegmentsothers    countscansmostfrequentdeviceacrosssegmentsothers    countscansmostfrequentdeviceacrossdatasetothers
+2016-11-29-morning  1                   1                   1.000000        NaN             1                                                   0.0                                                 0.0
+2016-11-30-morning  4                   3                   1.333333        0.57735         2                                                   2.0                                                 2.0
+2017-05-07-morning  5                   5                   1.000000        0.00000         1                                                   1.0                                                 1.0
+

+
+
+
+ + + + + + +

Comments

+ + + + + + +
+ +
+
+ +
+ + + + +
+
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/1.3/features/phone-calls/index.html b/1.3/features/phone-calls/index.html new file mode 100644 index 00000000..054c1001 --- /dev/null +++ b/1.3/features/phone-calls/index.html @@ -0,0 +1,2100 @@ + + + + + + + + + + + + + + + + + + + + + + Phone Calls - RAPIDS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + +
+
+
+ + +
+
+ + + + + + + + +

Phone Calls

+

Sensor parameters description for [PHONE_CALLS]:

+ + + + + + + + + + + + + +
Key                             Description
[CONTAINER]Data stream container (database table, CSV file, etc.) where the calls data is stored
+

RAPIDS Provider

+
+

Available time segments and platforms

+
    +
  • Available for all time segments
  • +
  • Available for Android and iOS
  • +
+
+
+

File Sequence

+
- data/raw/{pid}/phone_calls_raw.csv
+- data/raw/{pid}/phone_calls_with_datetime.csv
+- data/interim/{pid}/phone_calls_features/phone_calls_{language}_{provider_key}.csv
+- data/processed/features/{pid}/phone_calls.csv
+
+
+

Parameters description for [PHONE_CALLS][PROVIDERS][RAPIDS]:

+ + + + + + + + + + + + + + + + + + + + + +
Key                       Description
[COMPUTE]Set to True to extract PHONE_CALLS features from the RAPIDS provider
[CALL_TYPES]The particular call_type that will be analyzed. The options for this parameter are incoming, outgoing or missed.
[FEATURES]Features to be computed for outgoing, incoming, and missed calls. Note that the same features are available for both incoming and outgoing calls, while missed calls has its own set of features. See the tables below.
+

Features description for [PHONE_CALLS][PROVIDERS][RAPIDS] incoming and outgoing calls:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FeatureUnitsDescription
countcallsNumber of calls of a particular call_type occurred during a particular time_segment.
distinctcontactscontactsNumber of distinct contacts that are associated with a particular call_type for a particular time_segment
meandurationsecondsThe mean duration of all calls of a particular call_type during a particular time_segment.
sumdurationsecondsThe sum of the duration of all calls of a particular call_type during a particular time_segment.
mindurationsecondsThe duration of the shortest call of a particular call_type during a particular time_segment.
maxdurationsecondsThe duration of the longest call of a particular call_type during a particular time_segment.
stddurationsecondsThe standard deviation of the duration of all the calls of a particular call_type during a particular time_segment.
modedurationsecondsThe mode of the duration of all the calls of a particular call_type during a particular time_segment.
entropydurationnatsThe estimate of the Shannon entropy for the the duration of all the calls of a particular call_type during a particular time_segment.
timefirstcallminutesThe time in minutes between 12:00am (midnight) and the first call of call_type.
timelastcallminutesThe time in minutes between 12:00am (midnight) and the last call of call_type.
countmostfrequentcontactcallsThe number of calls of a particular call_type during a particular time_segment of the most frequent contact throughout the monitored period.
+

Features description for [PHONE_CALLS][PROVIDERS][RAPIDS] missed calls:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FeatureUnitsDescription
countcallsNumber of missed calls that occurred during a particular time_segment.
distinctcontactscontactsNumber of distinct contacts that are associated with missed calls for a particular time_segment
timefirstcallminutesThe time in hours from 12:00am (Midnight) that the first missed call occurred.
timelastcallminutesThe time in hours from 12:00am (Midnight) that the last missed call occurred.
countmostfrequentcontactcallsThe number of missed calls during a particular time_segment of the most frequent contact throughout the monitored period.
+
+

Assumptions/Observations

+
    +
  1. Traces for iOS calls are unique even for the same contact calling a participant more than once which renders countmostfrequentcontact meaningless and distinctcontacts equal to the total number of traces.
  2. +
  3. [CALL_TYPES] and [FEATURES] keys in config.yaml need to match. For example, [CALL_TYPES] outgoing matches the [FEATURES] key outgoing
  4. +
  5. iOS calls data is transformed to match Android calls data format. See our algorithm
  6. +
+
+ + + + + + +

Comments

+ + + + + + +
+ +
+
+ +
+ + + + +
+
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/1.3/features/phone-conversation/index.html b/1.3/features/phone-conversation/index.html new file mode 100644 index 00000000..9cc81be5 --- /dev/null +++ b/1.3/features/phone-conversation/index.html @@ -0,0 +1,2154 @@ + + + + + + + + + + + + + + + + + + + + + + Phone Conversation - RAPIDS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + +
+
+
+ + +
+
+ + + + + + + + +

Phone Conversation

+

Sensor parameters description for [PHONE_CONVERSATION]:

+ + + + + + + + + + + + + + + + + +
Key                             Description
[CONTAINER][ANDROID]Data stream container (database table, CSV file, etc.) where the conversation data from Android devices is stored (the AWARE client saves this data on different tables for Android and iOS)
[CONTAINER][IOS]Data stream container (database table, CSV file, etc.) where the conversation data from iOS devices is stored (the AWARE client saves this data on different tables for Android and iOS)
+

RAPIDS provider

+
+

Available time segments and platforms

+
    +
  • Available for all time segments
  • +
  • Available for Android only
  • +
+
+
+

File Sequence

+
- data/raw/{pid}/phone_conversation_raw.csv
+- data/raw/{pid}/phone_conversation_with_datetime.csv
+- data/interim/{pid}/phone_conversation_features/phone_conversation_{language}_{provider_key}.csv
+- data/processed/features/{pid}/phone_conversation.csv
+
+
+

Parameters description for [PHONE_CONVERSATION][PROVIDERS][RAPIDS]:

+ + + + + + + + + + + + + + + + + + + + + + + + + +
Key                             Description
[COMPUTE]Set to True to extract PHONE_CONVERSATION features from the RAPIDS provider
[FEATURES]Features to be computed, see table below
[RECORDING_MINUTES]Minutes the plugin was recording audio (default 1 min)
[PAUSED_MINUTES]Minutes the plugin was NOT recording audio (default 3 min)
+

Features description for [PHONE_CONVERSATION][PROVIDERS][RAPIDS]:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FeatureUnitsDescription
minutessilenceminutesMinutes labeled as silence
minutesnoiseminutesMinutes labeled as noise
minutesvoiceminutesMinutes labeled as voice
minutesunknownminutesMinutes labeled as unknown
sumconversationdurationminutesTotal duration of all conversations
maxconversationdurationminutesLongest duration of all conversations
minconversationdurationminutesShortest duration of all conversations
avgconversationdurationminutesAverage duration of all conversations
sdconversationdurationminutesStandard Deviation of the duration of all conversations
timefirstconversationminutesMinutes since midnight when the first conversation for a time segment was detected
timelastconversationminutesMinutes since midnight when the last conversation for a time segment was detected
noisesumenergyL2-normSum of all energy values when inference is noise
noiseavgenergyL2-normAverage of all energy values when inference is noise
noisesdenergyL2-normStandard Deviation of all energy values when inference is noise
noiseminenergyL2-normMinimum of all energy values when inference is noise
noisemaxenergyL2-normMaximum of all energy values when inference is noise
voicesumenergyL2-normSum of all energy values when inference is voice
voiceavgenergyL2-normAverage of all energy values when inference is voice
voicesdenergyL2-normStandard Deviation of all energy values when inference is voice
voiceminenergyL2-normMinimum of all energy values when inference is voice
voicemaxenergyL2-normMaximum of all energy values when inference is voice
silencesensedfraction-Ratio between minutessilence and the sum of (minutessilence, minutesnoise, minutesvoice, minutesunknown)
noisesensedfraction-Ratio between minutesnoise and the sum of (minutessilence, minutesnoise, minutesvoice, minutesunknown)
voicesensedfraction-Ratio between minutesvoice and the sum of (minutessilence, minutesnoise, minutesvoice, minutesunknown)
unknownsensedfraction-Ratio between minutesunknown and the sum of (minutessilence, minutesnoise, minutesvoice, minutesunknown)
silenceexpectedfraction-Ration between minutessilence and the number of minutes that in theory should have been sensed based on the record and pause cycle of the plugin (1440 / recordingMinutes+pausedMinutes)
noiseexpectedfraction-Ration between minutesnoise and the number of minutes that in theory should have been sensed based on the record and pause cycle of the plugin (1440 / recordingMinutes+pausedMinutes)
voiceexpectedfraction-Ration between minutesvoice and the number of minutes that in theory should have been sensed based on the record and pause cycle of the plugin (1440 / recordingMinutes+pausedMinutes)
unknownexpectedfraction-Ration between minutesunknown and the number of minutes that in theory should have been sensed based on the record and pause cycle of the plugin (1440 / recordingMinutes+pausedMinutes)
+
+

Assumptions/Observations

+
    +
  1. The timestamp of conversation rows in iOS is in seconds so we convert it to milliseconds to match Android’s format
  2. +
+
+ + + + + + +

Comments

+ + + + + + +
+ +
+
+ +
+ + + + +
+
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/1.3/features/phone-data-yield/index.html b/1.3/features/phone-data-yield/index.html new file mode 100644 index 00000000..10d4850c --- /dev/null +++ b/1.3/features/phone-data-yield/index.html @@ -0,0 +1,2052 @@ + + + + + + + + + + + + + + + + + + + + + + Phone Data Yield - RAPIDS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + +
+
+
+ + +
+
+ + + + + + + + +

Phone Data Yield

+

This is a combinatorial sensor which means that we use the data from multiple sensors to extract data yield features. Data yield features can be used to remove rows (time segments) that do not contain enough data. You should decide what is your “enough” threshold depending on the type of sensors you collected (frequency vs event based, e.g. acceleroemter vs calls), the length of your study, and the rates of missing data that your analysis could handle.

+
+

Why is data yield important?

+

Imagine that you want to extract PHONE_CALL features on daily segments (00:00 to 23:59). Let’s say that on day 1 the phone logged 10 calls and 23 hours of data from other sensors and on day 2 the phone logged 10 calls and only 2 hours of data from other sensors. It’s more likely that other calls were placed on the 22 hours of data that you didn’t log on day 2 than on the 1 hour of data you didn’t log on day 1, and so including day 2 in your analysis could bias your results.

+
+

Sensor parameters description for [PHONE_DATA_YIELD]:

+ + + + + + + + + + + + + +
Key                   Description
[SENSORS]One or more phone sensor config keys (e.g. PHONE_MESSAGE). The more keys you include the more accurately RAPIDS can approximate the time an smartphone was sensing data. The supported phone sensors you can include in this list are outlined below (do NOT include Fitbit sensors, ONLY include phone sensors).
+
+

Supported phone sensors for [PHONE_DATA_YIELD][SENSORS]

+
PHONE_ACCELEROMETER
+PHONE_ACTIVITY_RECOGNITION
+PHONE_APPLICATIONS_CRASHES
+PHONE_APPLICATIONS_FOREGROUND
+PHONE_APPLICATIONS_NOTIFICATIONS
+PHONE_BATTERY
+PHONE_BLUETOOTH
+PHONE_CALLS
+PHONE_CONVERSATION
+PHONE_KEYBOARD
+PHONE_LIGHT
+PHONE_LOCATIONS
+PHONE_LOG
+PHONE_MESSAGES
+PHONE_SCREEN
+PHONE_WIFI_CONNECTED
+PHONE_WIFI_VISIBLE
+
+
+

RAPIDS provider

+

Before explaining the data yield features, let’s define the following relevant concepts:

+
    +
  • A valid minute is any 60 second window when any phone sensor logged at least 1 row of data
  • +
  • A valid hour is any 60 minute window with at least X valid minutes. The X or threshold is given by [MINUTE_RATIO_THRESHOLD_FOR_VALID_YIELDED_HOURS]
  • +
+

The timestamps of all sensors are concatenated and then grouped per time segment. Minute and hour windows are created from the beginning of each time segment instance and these windows are marked as valid based on the definitions above. The duration of each time segment is taken into account to compute the features described below.

+
+

Available time segments and platforms

+
    +
  • Available for all time segments
  • +
  • Available for Android and iOS
  • +
+
+
+

File Sequence

+
- data/raw/{pid}/{sensor}_raw.csv # one for every [PHONE_DATA_YIELD][SENSORS]
+- data/interim/{pid}/phone_yielded_timestamps.csv
+- data/interim/{pid}/phone_yielded_timestamps_with_datetime.csv
+- data/interim/{pid}/phone_data_yield_features/phone_data_yield_{language}_{provider_key}.csv
+- data/processed/features/{pid}/phone_data_yield.csv
+
+
+

Parameters description for [PHONE_DATA_YIELD][PROVIDERS][RAPIDS]:

+ + + + + + + + + + + + + + + + + + + + + +
Key                             Description
[COMPUTE]Set to True to extract PHONE_DATA_YIELD features from the RAPIDS provider
[FEATURES]Features to be computed, see table below
[MINUTE_RATIO_THRESHOLD_FOR_VALID_YIELDED_HOURS]The proportion [0.0 ,1.0] of valid minutes in a 60-minute window necessary to flag that window as valid.
+

Features description for [PHONE_DATA_YIELD][PROVIDERS][RAPIDS]:

+ + + + + + + + + + + + + + + + + + + + +
FeatureUnitsDescription
ratiovalidyieldedminutes-The ratio between the number of valid minutes and the duration in minutes of a time segment.
ratiovalidyieldedhours-The ratio between the number of valid hours and the duration in hours of a time segment. If the time segment is shorter than 1 hour this feature will always be 1.
+
+

Assumptions/Observations

+
    +
  1. +

    We recommend using ratiovalidyieldedminutes on time segments that are shorter than two or three hours and ratiovalidyieldedhours for longer segments. This is because relying on yielded minutes only can be misleading when a big chunk of those missing minutes are clustered together.

    +

    For example, let’s assume we are working with a 24-hour time segment that is missing 12 hours of data. Two extreme cases can occur:

    +

      +
    1. the 12 missing hours are from the beginning of the segment or
    2. +
    3. 30 minutes could be missing from every hour (24 * 30 minutes = 12 hours).
    4. +

    +

    ratiovalidyieldedminutes would be 0.5 for both a and b (hinting the missing circumstances are similar). However, ratiovalidyieldedhours would be 0.5 for a and 1.0 for b if [MINUTE_RATIO_THRESHOLD_FOR_VALID_YIELDED_HOURS] is between [0.0 and 0.49] (hinting that the missing circumstances might be more favorable for b. In other words, sensed data for b is more evenly spread compared to a.

    +
  2. +
+
+ + + + + + +

Comments

+ + + + + + +
+ +
+
+ +
+ + + + +
+
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/1.3/features/phone-keyboard/index.html b/1.3/features/phone-keyboard/index.html new file mode 100644 index 00000000..1537a715 --- /dev/null +++ b/1.3/features/phone-keyboard/index.html @@ -0,0 +1,1973 @@ + + + + + + + + + + + + + + + + + + + + + + Phone Keyboard - RAPIDS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + +
+
+
+ + +
+
+ + + + + + + + +

Phone Keyboard

+

Sensor parameters description for [PHONE_KEYBOARD]:

+ + + + + + + + + + + + + +
Key                             Description
[CONTAINER]Data stream container (database table, CSV file, etc.) where the keyboard data is stored
+
+

File Sequence

+
- data/raw/{pid}/phone_keyboard_raw.csv
+- data/raw/{pid}/phone_keyboard_with_datetime.csv
+- data/interim/{pid}/phone_keyboard_features/phone_keyboard_{language}_{provider_key}.csv
+- data/processed/features/{pid}/phone_keyboard.csv
+
+
+

Features description for [PHONE_KEYBOARD]:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FeatureUnitsDescription
sessioncount-Number of typing sessions in a time segment. A session begins with any keypress and finishes until 5 seconds have elapsed since the last key was pressed or the application that the user was typing on changes.
averagesessionlengthmillisecondsAverage length of all sessions in a time segment instance
averageinterkeydelaymillisecondsThe average time between keystrokes measured in milliseconds.
changeintextlengthlessthanminusoneNumber of times a keyboard typing or swiping event changed the length of the current text to less than one fewer character.
changeintextlengthequaltominusoneNumber of times a keyboard typing or swiping event changed the length of the current text in exactly one fewer character.
changeintextlengthequaltooneNumber of times a keyboard typing or swiping event changed the length of the current text in exactly one more character.
changeintextlengthmorethanoneNumber of times a keyboard typing or swiping event changed the length of the current text to more than one character.
maxtextlengthLength in characters of the longest sentence(s) contained in the typing text box of any app during the time segment.
lastmessagelengthLength of the last text in characters of the sentence(s) contained in the typing text box of any app during the time segment.
totalkeyboardtouchesAverage number of typing events across all sessions in a time segment instance.
+
+

Note

+

We did not find a reliable way to distinguish between AutoCorrect or AutoComplete changes, since both can be applied with a single touch or swipe event and can decrease or increase the length of the text by an arbitrary number of characters.

+
+ + + + + + +

Comments

+ + + + + + +
+ +
+
+ +
+ + + + +
+
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/1.3/features/phone-light/index.html b/1.3/features/phone-light/index.html new file mode 100644 index 00000000..cff6e91a --- /dev/null +++ b/1.3/features/phone-light/index.html @@ -0,0 +1,2025 @@ + + + + + + + + + + + + + + + + + + + + + + Phone Light - RAPIDS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + +
+
+
+ + +
+
+ + + + + + + + +

Phone Light

+

Sensor parameters description for [PHONE_LIGHT]:

+ + + + + + + + + + + + + +
Key                             Description
[CONTAINER]Data stream container (database table, CSV file, etc.) where the light data is stored
+

RAPIDS provider

+
+

Available time segments and platforms

+
    +
  • Available for all time segments
  • +
  • Available for Android only
  • +
+
+
+

File Sequence

+
- data/raw/{pid}/phone_light_raw.csv
+- data/raw/{pid}/phone_light_with_datetime.csv
+- data/interim/{pid}/phone_light_features/phone_light_{language}_{provider_key}.csv
+- data/processed/features/{pid}/phone_light.csv
+
+
+

Parameters description for [PHONE_LIGHT][PROVIDERS][RAPIDS]:

+ + + + + + + + + + + + + + + + + +
Key                             Description
[COMPUTE]Set to True to extract PHONE_LIGHT features from the RAPIDS provider
[FEATURES]Features to be computed, see table below
+

Features description for [PHONE_LIGHT][PROVIDERS][RAPIDS]:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FeatureUnitsDescription
countrowsNumber light sensor rows recorded.
maxluxluxThe maximum ambient luminance.
minluxluxThe minimum ambient luminance.
avgluxluxThe average ambient luminance.
medianluxluxThe median ambient luminance.
stdluxluxThe standard deviation of ambient luminance.
+
+

Assumptions/Observations

+

NA

+
+ + + + + + +

Comments

+ + + + + + +
+ +
+
+ +
+ + + + +
+
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/1.3/features/phone-locations/index.html b/1.3/features/phone-locations/index.html new file mode 100644 index 00000000..e340551a --- /dev/null +++ b/1.3/features/phone-locations/index.html @@ -0,0 +1,2378 @@ + + + + + + + + + + + + + + + + + + + + + + Phone Locations - RAPIDS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + +
+
+
+ + +
+
+ + + + + + + + +

Phone Locations

+

Sensor parameters description for [PHONE_LOCATIONS]:

+ + + + + + + + + + + + + + + + + + + + + + + + + +
Key                                                                                       Description
[CONTAINER]Data stream container (database table, CSV file, etc.) where the location data is stored
[LOCATIONS_TO_USE]Type of location data to use, one of ALL, GPS, ALL_RESAMPLED or FUSED_RESAMPLED. This filter is based on the provider column of the locations table, ALL includes every row, GPS only includes rows where the provider is gps, ALL_RESAMPLED includes all rows after being resampled, and FUSED_RESAMPLED only includes rows where the provider is fused after being resampled.
[FUSED_RESAMPLED_CONSECUTIVE_THRESHOLD]if ALL_RESAMPLED or FUSED_RESAMPLED is used, the original fused data has to be resampled, a location row is resampled to the next valid timestamp (see the Assumptions/Observations below) only if the time difference between them is less or equal than this threshold (in minutes).
[FUSED_RESAMPLED_TIME_SINCE_VALID_LOCATION]if ALL_RESAMPLED or FUSED_RESAMPLED is used, the original fused data has to be resampled, a location row is resampled at most for this long (in minutes)
+
+

Assumptions/Observations

+

Types of location data to use +Android and iOS clients can collect location coordinates through the phone’s GPS, the network cellular towers around the phone, or Google’s fused location API.

+
    +
  • If you want to use only the GPS provider, set [LOCATIONS_TO_USE] to GPS
  • +
  • If you want to use all providers, set [LOCATIONS_TO_USE] to ALL
  • +
  • If you collected location data from different providers, including the fused API, use ALL_RESAMPLED
  • +
  • If your mobile client was configured to use fused location only or want to focus only on this provider, set [LOCATIONS_TO_USE] to RESAMPLE_FUSED.
  • +
+

ALL_RESAMPLED and RESAMPLE_FUSED take the original location coordinates and replicate each pair forward in time as long as the phone was sensing data as indicated by the joined timestamps of [PHONE_DATA_YIELD][SENSORS]. This is done because Google’s API only logs a new location coordinate pair when it is sufficiently different in time or space from the previous one and because GPS and network providers can log data at variable rates.

+

There are two parameters associated with resampling fused location.

+
    +
  1. FUSED_RESAMPLED_CONSECUTIVE_THRESHOLD (in minutes, default 30) controls the maximum gap between any two coordinate pairs to replicate the last known pair. For example, participant A’s phone did not collect data between 10.30 am and 10:50 am and between 11:05am and 11:40am, the last known coordinate pair is replicated during the first period but not the second. In other words, we assume that we cannot longer guarantee the participant stayed at the last known location if the phone did not sense data for more than 30 minutes.
  2. +
  3. FUSED_RESAMPLED_TIME_SINCE_VALID_LOCATION (in minutes, default 720 or 12 hours) stops the last known fused location from being replicated longer than this threshold even if the phone was sensing data continuously. For example, participant A went home at 9 pm, and their phone was sensing data without gaps until 11 am the next morning, the last known location is replicated until 9 am.
  4. +
+

If you have suggestions to modify or improve this resampling, let us know.

+
+

BARNETT provider

+

These features are based on the original open-source implementation by Barnett et al and some features created by Canzian et al.

+
+

Available time segments and platforms

+
    +
  • Available only for segments that start at 00:00:00 and end at 23:59:59 of the same or a different day (daily, weekly, weekend, etc.)
  • +
  • Available for Android and iOS
  • +
+
+
+

File Sequence

+
- data/raw/{pid}/phone_locations_raw.csv
+- data/interim/{pid}/phone_locations_processed.csv
+- data/interim/{pid}/phone_locations_processed_with_datetime.csv
+- data/interim/{pid}/phone_locations_features/phone_locations_{language}_{provider_key}.csv
+- data/processed/features/{pid}/phone_locations.csv
+
+
+

Parameters description for [PHONE_LOCATIONS][PROVIDERS][BARNETT]:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Key                                           Description
[COMPUTE]Set to True to extract PHONE_LOCATIONS features from the BARNETT provider
[FEATURES]Features to be computed, see table below
[ACCURACY_LIMIT]An integer in meters, any location rows with an accuracy higher than this is dropped. This number means there’s a 68% probability the actual location is within this radius
[IF_MULTIPLE_TIMEZONES]Currently, USE_MOST_COMMON is the only value supported. If the location data for a participant belongs to multiple time zones, we select the most common because Barnett’s algorithm can only handle one time zone
[MINUTES_DATA_USED]Set to True to include an extra column in the final location feature file containing the number of minutes used to compute the features on each time segment. Use this for quality control purposes; the more data minutes exist for a period, the more reliable its features should be. For fused location, a single minute can contain more than one coordinate pair if the participant is moving fast enough.
+

Features description for [PHONE_LOCATIONS][PROVIDERS][BARNETT] adapted from Beiwe Summary Statistics:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FeatureUnitsDescription
hometimeminutesTime at home. Time spent at home in minutes. Home is the most visited significant location between 8 pm and 8 am, including any pauses within a 200-meter radius.
disttravelledmetersTotal distance traveled over a day (flights).
rogmetersThe Radius of Gyration (rog) is a measure in meters of the area covered by a person over a day. A centroid is calculated for all the places (pauses) visited during a day, and a weighted distance between all the places and that centroid is computed. The weights are proportional to the time spent in each place.
maxdiammetersThe maximum diameter is the largest distance between any two pauses.
maxhomedistmetersThe maximum distance from home in meters.
siglocsvisitedlocationsThe number of significant locations visited during the day. Significant locations are computed using k-means clustering over pauses found in the whole monitoring period. The number of clusters is found iterating k from 1 to 200 stopping until the centroids of two significant locations are within 400 meters of one another.
avgflightlenmetersMean length of all flights.
stdflightlenmetersStandard deviation of the length of all flights.
avgflightdursecondsMean duration of all flights.
stdflightdursecondsThe standard deviation of the duration of all flights.
probpause-The fraction of a day spent in a pause (as opposed to a flight)
siglocentropynatsShannon’s entropy measurement is based on the proportion of time spent at each significant location visited during a day.
circdnrtn-A continuous metric quantifying a person’s circadian routine that can take any value between 0 and 1, where 0 represents a daily routine completely different from any other sensed days and 1 a routine the same as every other sensed day.
wkenddayrtn-Same as circdnrtn but computed separately for weekends and weekdays.
+
+

Assumptions/Observations

+

Multi day segment features +Barnett’s features are only available on time segments that span entire days (00:00:00 to 23:59:59). Such segments can be one-day long (daily) or multi-day (weekly, for example). Multi-day segment features are computed based on daily features summarized the following way:

+
    +
  • sum for hometime, disttravelled, siglocsvisited, and minutes_data_used
  • +
  • max for maxdiam, and maxhomedist
  • +
  • mean for rog, avgflightlen, stdflightlen, avgflightdur, stdflightdur, probpause, siglocentropy, circdnrtn, wkenddayrtn, and minsmissing
  • +
+

Computation speed +The process to extract these features can be slow compared to other sensors and providers due to the required simulation.

+

How are these features computed? +These features are based on a Pause-Flight model. A pause is defined as a mobility trace (location pings) within a certain duration and distance (by default, 300 seconds and 60 meters). A flight is any mobility trace between two pauses. Data is resampled and imputed before the features are computed. See Barnett et al for more information. In RAPIDS, we only expose one parameter for these features (accuracy limit). You can change other parameters in src/features/phone_locations/barnett/library/MobilityFeatures.R.

+

Significant Locations +Significant locations are determined using K-means clustering on pauses longer than 10 minutes. The number of clusters (K) is increased until no two clusters are within 400 meters from each other. After this, pauses within a certain range of a cluster (200 meters by default) count as a visit to that significant location. This description was adapted from the Supplementary Materials of Barnett et al.

+

The Circadian Calculation +For a detailed description of how this is calculated, see Canzian et al.

+
+

DORYAB provider

+

These features are based on the original implementation by Doryab et al..

+
+

Available time segments and platforms

+
    +
  • Available for all time segments
  • +
  • Available for Android and iOS
  • +
+
+
+

File Sequence

+
- data/raw/{pid}/phone_locations_raw.csv
+- data/interim/{pid}/phone_locations_processed.csv
+- data/interim/{pid}/phone_locations_processed_with_datetime.csv
+- data/interim/{pid}/phone_locations_processed_with_datetime_with_doryab_columns.csv
+- data/interim/{pid}/phone_locations_features/phone_locations_{language}_{provider_key}.csv
+- data/processed/features/{pid}/phone_locations.csv
+
+
+

Parameters description for [PHONE_LOCATIONS][PROVIDERS][DORYAB]:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Key                                         Description
[COMPUTE]Set to True to extract PHONE_LOCATIONS features from the BARNETT provider
[FEATURES]Features to be computed, see table below
[ACCURACY_LIMIT]An integer in meters, any location rows with an accuracy higher than this will be dropped. This number means there’s a 68% probability the true location is within this radius
[DBSCAN_EPS]The maximum distance in meters between two samples for one to be considered as in the neighborhood of the other. This is not a maximum bound on the distances of points within a cluster. This is the most important DBSCAN parameter to choose appropriately for your data set and distance function.
[DBSCAN_MINSAMPLES]The number of samples (or total weight) in a neighborhood for a point to be considered as a core point of a cluster. This includes the point itself.
[THRESHOLD_STATIC]It is the threshold value in km/hr which labels a row as Static or Moving.
[MAXIMUM_ROW_GAP]The maximum gap (in seconds) allowed between any two consecutive rows for them to be considered part of the same displacement. If this threshold is too high, it can throw speed and distance calculations off for periods when the phone was not sensing. This value must be larger than your GPS sampling interval when [LOCATIONS_TO_USE] is ALL or GPS, otherwise all the stationary-related features will be NA. If [LOCATIONS_TO_USE] is ALL_RESAMPLED or FUSED_RESAMPLED, you can use the default value as every row will be resampled at 1-minute intervals.
[MINUTES_DATA_USED]Set to True to include an extra column in the final location feature file containing the number of minutes used to compute the features on each time segment. Use this for quality control purposes; the more data minutes exist for a period, the more reliable its features should be. For fused location, a single minute can contain more than one coordinate pair if the participant is moving fast enough.
[CLUSTER_ON]Set this flag to PARTICIPANT_DATASET to create clusters based on the entire participant’s dataset or to TIME_SEGMENT to create clusters based on all the instances of the corresponding time segment (e.g. all mornings) or to TIME_SEGMENT_INSTANCE to create clusters based on a single instance (e.g. 2020-05-20’s morning).
[INFER_HOME_LOCATION_STRATEGY]The strategy applied to infer home locations. Set to DORYAB_STRATEGY to infer one home location for the entire dataset of each participant or to SUN_LI_VEGA_STRATEGY to infer one home location per day per participant. See Observations below to know more.
[MINIMUM_DAYS_TO_DETECT_HOME_CHANGES]The minimum number of consecutive days a new home location candidate has to repeat before it is considered the participant’s new home. This parameter will be used only when [INFER_HOME_LOCATION_STRATEGY] is set to SUN_LI_VEGA_STRATEGY.
[CLUSTERING_ALGORITHM]The original Doryab et al. implementation uses DBSCAN, OPTICS is also available with similar (but not identical) clustering results and lower memory consumption.
[RADIUS_FOR_HOME]All location coordinates within this distance (meters) from the home location coordinates are considered a homestay (see timeathome feature).
+

Features description for [PHONE_LOCATIONS][PROVIDERS][DORYAB]:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FeatureUnitsDescription
locationvariance\(meters^2\)The sum of the variances of the latitude and longitude columns.
loglocationvariance-Log of the sum of the variances of the latitude and longitude columns.
totaldistancemetersTotal distance traveled in a time segment using the haversine formula.
avgspeedkm/hrAverage speed in a time segment considering only the instances labeled as Moving.
varspeedkm/hrSpeed variance in a time segment considering only the instances labeled as Moving.
circadianmovement-Deprecated, see Observations below. “It encodes the extent to which a person’s location patterns follow a 24-hour circadian cycle." Doryab et al..
numberofsignificantplacesplacesNumber of significant locations visited. It is calculated using the DBSCAN/OPTICS clustering algorithm which takes in EPS and MIN_SAMPLES as parameters to identify clusters. Each cluster is a significant place.
numberlocationtransitionstransitionsNumber of movements between any two clusters in a time segment.
radiusgyrationmetersQuantifies the area covered by a participant
timeattop1locationminutesTime spent at the most significant location.
timeattop2locationminutesTime spent at the 2nd most significant location.
timeattop3locationminutesTime spent at the 3rd most significant location.
movingtostaticratio-Ratio between stationary time and total location sensed time. A lat/long coordinate pair is labeled as stationary if its speed (distance/time) to the next coordinate pair is less than 1km/hr. A higher value represents a more stationary routine.
outlierstimepercent-Ratio between the time spent in non-significant clusters divided by the time spent in all clusters (stationary time. Only stationary samples are clustered). A higher value represents more time spent in non-significant clusters.
maxlengthstayatclustersminutesMaximum time spent in a cluster (significant location).
minlengthstayatclustersminutesMinimum time spent in a cluster (significant location).
avglengthstayatclustersminutesAverage time spent in a cluster (significant location).
stdlengthstayatclustersminutesStandard deviation of time spent in a cluster (significant location).
locationentropynatsShannon Entropy computed over the row count of each cluster (significant location), it is higher the more rows belong to a cluster (i.e., the more time a participant spent at a significant location).
normalizedlocationentropynatsShannon Entropy computed over the row count of each cluster (significant location) divided by the number of clusters; it is higher the more rows belong to a cluster (i.e., the more time a participant spent at a significant location).
timeathomeminutesTime spent at home (see Observations below for a description on how we compute home).
homelabel-An integer that represents a different home location. It will be a constant number (1) for all participants when [INFER_HOME_LOCATION_STRATEGY] is set to DORYAB_STRATEGY or an incremental index if the strategy is set to SUN_LI_VEGA_STRATEGY.
+
+

Assumptions/Observations

+

Significant Locations Identified +Significant locations are determined using DBSCAN clustering on locations that a patient visit over the course of the period of data collection.

+

Circadian Movement Calculation +Note Feb 3 2021. It seems the implementation of this feature is not correct; we suggest not to use this feature until a fix is in place. For a detailed description of how this should be calculated, see Saeb et al.

+

Fine-Tuning Clustering Parameters +Based on an experiment where we collected fused location data for 7 days with a mean accuracy of 86 & SD of 350.874635, we determined that EPS/MAX_EPS=100 produced closer clustering results to reality. Higher values (>100) missed out on some significant places, like a short grocery visit, while lower values (<100) picked up traffic lights and stop signs while driving as significant locations. We recommend you set EPS based on your location data’s accuracy (the more accurate your data is, the lower you should be able to set EPS).

+

Duration Calculation +To calculate the time duration component for our features, we compute the difference between consecutive rows’ timestamps to take into account sampling rate variability. If this time difference is larger than a threshold (300 seconds by default), we replace it with NA and label that row as Moving.

+

Home location

+
    +
  • +

    DORYAB_STRATEGY: home is calculated using all location data of a participant between 12 am and 6 am, then applying a clustering algorithm (DBSCAN or OPTICS) and considering the center of the biggest cluster home for that participant.

    +
  • +
  • +

    SUN_LI_VEGA_STRATEGY: home is calculated using all location data of a participant between 12 am and 6 am, then applying a clustering algorithm (DBSCAN or OPTICS). The following steps are used to infer the home location per day for that participant:

    +
      +
    1. +

      if there are records within [03:30:00, 04:30:00] for that night:
      +     we choose the most common cluster during that period as a home candidate for that day.
      + elif there are records within [midnight, 03:30:00) for that night:
      +     we choose the last valid cluster during that period as a home candidate for that day.
      + elif there are records within (04:30:00, 06:00:00] for that night:
      +     we choose the first valid cluster during that period as a home candidate for that day.
      + else:
      +     the home location is NA (missing) for that day.

      +
    2. +
    3. +

      If the count of consecutive days with the same candidate home location cluster label is larger or equal to [MINIMUM_DAYS_TO_DETECT_HOME_CHANGES], + the candidate will be regarded as the home cluster; otherwise, the home cluster will be the last valid day’s cluster. + If there are no valid clusters before that day, the first home location in the days after is used.

      +
    4. +
    +
  • +
+
+ + + + + + +

Comments

+ + + + + + +
+ +
+
+ +
+ + + + +
+
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/1.3/features/phone-log/index.html b/1.3/features/phone-log/index.html new file mode 100644 index 00000000..ade6b0c7 --- /dev/null +++ b/1.3/features/phone-log/index.html @@ -0,0 +1,1907 @@ + + + + + + + + + + + + + + + + + + + + + + Phone Log - RAPIDS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + +
+
+
+ + +
+
+ + + + + + + + +

Phone Log

+

Sensor parameters description for [PHONE_LOG]:

+ + + + + + + + + + + + + + + + + +
Key                             Description
[CONTAINER][ANDROID]Data stream container (database table, CSV file, etc.) where a data log is stored for Android devices
[CONTAINER][IOS]Data stream container (database table, CSV file, etc.) where a data log is stored for iOS devices
+
+

Note

+

No feature providers have been implemented for this sensor yet, however you can use its key (PHONE_LOG) to improve PHONE_DATA_YIELD or you can implement your own features.

+
+ + + + + + +

Comments

+ + + + + + +
+ +
+
+ +
+ + + + +
+
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/1.3/features/phone-messages/index.html b/1.3/features/phone-messages/index.html new file mode 100644 index 00000000..003fba33 --- /dev/null +++ b/1.3/features/phone-messages/index.html @@ -0,0 +1,2026 @@ + + + + + + + + + + + + + + + + + + + + + + Phone Messages - RAPIDS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + +
+
+
+ + +
+
+ + + + + + + + +

Phone Messages

+

Sensor parameters description for [PHONE_MESSAGES]:

+ + + + + + + + + + + + + +
Key                             Description
[CONTAINER]Data stream container (database table, CSV file, etc.) where the messages data is stored
+

RAPIDS provider

+
+

Available time segments and platforms

+
    +
  • Available for all time segments
  • +
  • Available for Android only
  • +
+
+
+

File Sequence

+
- data/raw/{pid}/phone_messages_raw.csv
+- data/raw/{pid}/phone_messages_with_datetime.csv
+- data/interim/{pid}/phone_messages_features/phone_messages_{language}_{provider_key}.csv
+- data/processed/features/{pid}/phone_messages.csv
+
+
+

Parameters description for [PHONE_MESSAGES][PROVIDERS][RAPIDS]:

+ + + + + + + + + + + + + + + + + + + + + +
Key                             Description
[COMPUTE]Set to True to extract PHONE_MESSAGES features from the RAPIDS provider
[MESSAGES_TYPES]The messages_type that will be analyzed. The options for this parameter are received or sent.
[FEATURES]Features to be computed, see table below for [MESSAGES_TYPES] received and sent
+

Features description for [PHONE_MESSAGES][PROVIDERS][RAPIDS]:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FeatureUnitsDescription
countmessagesNumber of messages of type messages_type that occurred during a particular time_segment.
distinctcontactscontactsNumber of distinct contacts that are associated with a particular messages_type during a particular time_segment.
timefirstmessagesminutesNumber of minutes between 12:00am (midnight) and the first message of a particular messages_type during a particular time_segment.
timelastmessagesminutesNumber of minutes between 12:00am (midnight) and the last message of a particular messages_type during a particular time_segment.
countmostfrequentcontactmessagesNumber of messages from the contact with the most messages of messages_type during a time_segment throughout the whole dataset of each participant.
+
+

Assumptions/Observations

+
    +
  1. [MESSAGES_TYPES] and [FEATURES] keys in config.yaml need to match. For example, [MESSAGES_TYPES] sent matches the [FEATURES] key sent
  2. +
+
+ + + + + + +

Comments

+ + + + + + +
+ +
+
+ +
+ + + + +
+
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/1.3/features/phone-screen/index.html b/1.3/features/phone-screen/index.html new file mode 100644 index 00000000..409e92b7 --- /dev/null +++ b/1.3/features/phone-screen/index.html @@ -0,0 +1,2061 @@ + + + + + + + + + + + + + + + + + + + + + + Phone Screen - RAPIDS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + +
+
+
+ + +
+
+ + + + + + + + +

Phone Screen

+

Sensor parameters description for [PHONE_SCREEN]:

+ + + + + + + + + + + + + +
Key                             Description
[CONTAINER]Data stream container (database table, CSV file, etc.) where the screen data is stored
+

RAPIDS provider

+
+

Available time segments and platforms

+
    +
  • Available for all time segments
  • +
  • Available for Android and iOS
  • +
+
+
+

File Sequence

+
- data/raw/{pid}/phone_screen_raw.csv
+- data/raw/{pid}/phone_screen_with_datetime.csv
+- data/interim/{pid}/phone_screen_episodes.csv
+- data/interim/{pid}/phone_screen_episodes_resampled.csv
+- data/interim/{pid}/phone_screen_episodes_resampled_with_datetime.csv
+- data/interim/{pid}/phone_screen_features/phone_screen_{language}_{provider_key}.csv
+- data/processed/features/{pid}/phone_screen.csv
+
+
+

Parameters description for [PHONE_SCREEN][PROVIDERS][RAPIDS]:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Key                                                          Description
[COMPUTE]Set to True to extract PHONE_SCREEN features from the RAPIDS provider
[FEATURES]Features to be computed, see table below
[REFERENCE_HOUR_FIRST_USE]The reference point from which firstuseafter is to be computed, default is midnight
[IGNORE_EPISODES_SHORTER_THAN]Ignore episodes that are shorter than this threshold (minutes). Set to 0 to disable this filter.
[IGNORE_EPISODES_LONGER_THAN]Ignore episodes that are longer than this threshold (minutes). Set to 0 to disable this filter.
[EPISODE_TYPES]Currently we only support unlock episodes (from when the phone is unlocked until the screen is off)
+

Features description for [PHONE_SCREEN][PROVIDERS][RAPIDS]:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FeatureUnitsDescription
sumdurationminutesTotal duration of all unlock episodes.
maxdurationminutesLongest duration of any unlock episode.
mindurationminutesShortest duration of any unlock episode.
avgdurationminutesAverage duration of all unlock episodes.
stddurationminutesStandard deviation duration of all unlock episodes.
countepisodeepisodesNumber of all unlock episodes
firstuseafterminutesMinutes until the first unlock episode.
+ + +
+

Assumptions/Observations

+
    +
  1. +

    In Android, lock events can happen right after an off event, after a few seconds of an off event, or never happen depending on the phone's settings, therefore, an unlock episode is defined as the time between an unlock and a off event. In iOS, on and off events do not exist, so an unlock episode is defined as the time between an unlock and a lock event.

    +
  2. +
  3. +

    Events in iOS are recorded reliably albeit some duplicated lock events within milliseconds from each other, so we only keep consecutive unlock/lock pairs. In Android you cand find multiple consecutive unlock or lock events, so we only keep consecutive unlock/off pairs. In our experiments these cases are less than 10% of the screen events collected and this happens because ACTION_SCREEN_OFF and ACTION_SCREEN_ON are sent when the device becomes non-interactive which may have nothing to do with the screen turning off. In addition to unlock/off episodes, in Android it is possible to measure the time spent on the lock screen before an unlock event as well as the total screen time (i.e. ON to OFF) but these are not implemented at the moment.

    +
  4. +
  5. +

    We transform iOS screen events to match Android’s format, we replace lock episodes with off episodes (2 with 0) in iOS. However, as mentioned above this is still computing unlock to lock episodes.

    +
  6. +
+
+ + + + + + +

Comments

+ + + + + + +
+ +
+
+ +
+ + + + +
+
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/1.3/features/phone-wifi-connected/index.html b/1.3/features/phone-wifi-connected/index.html new file mode 100644 index 00000000..c8984904 --- /dev/null +++ b/1.3/features/phone-wifi-connected/index.html @@ -0,0 +1,2013 @@ + + + + + + + + + + + + + + + + + + + + + + Phone WiFI Connected - RAPIDS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + +
+
+
+ + +
+
+ + + + + + + + +

Phone WiFi Connected

+

Sensor parameters description for [PHONE_WIFI_CONNECTED]:

+ + + + + + + + + + + + + +
Key                             Description
[CONTAINER]Data stream container (database table, CSV file, etc.) where the wifi (connected) data is stored
+

RAPIDS provider

+
+

Available time segments and platforms

+
    +
  • Available for all time segments
  • +
  • Available for Android and iOS
  • +
+
+
+

File Sequence

+
- data/raw/{pid}/phone_wifi_connected_raw.csv
+- data/raw/{pid}/phone_wifi_connected_with_datetime.csv
+- data/interim/{pid}/phone_wifi_connected_features/phone_wifi_connected_{language}_{provider_key}.csv
+- data/processed/features/{pid}/phone_wifi_connected.csv
+
+
+

Parameters description for [PHONE_WIFI_CONNECTED][PROVIDERS][RAPIDS]:

+ + + + + + + + + + + + + + + + + +
Key                             Description
[COMPUTE]Set to True to extract PHONE_WIFI_CONNECTED features from the RAPIDS provider
[FEATURES]Features to be computed, see table below
+

Features description for [PHONE_WIFI_CONNECTED][PROVIDERS][RAPIDS]:

+ + + + + + + + + + + + + + + + + + + + + + + + + +
FeatureUnitsDescription
countscansdevicesNumber of scanned WiFi access points connected during a time_segment, an access point can be detected multiple times over time and these appearances are counted separately
uniquedevicesdevicesNumber of unique access point during a time_segment as identified by their hardware address
countscansmostuniquedevicescansNumber of scans of the most scanned access point during a time_segment across the whole monitoring period
+
+

Assumptions/Observations

+
    +
  1. A connected WiFI access point is one that a phone was connected to.
  2. +
  3. By default AWARE stores this data in the sensor_wifi table.
  4. +
+
+ + + + + + +

Comments

+ + + + + + +
+ +
+
+ +
+ + + + +
+
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/1.3/features/phone-wifi-visible/index.html b/1.3/features/phone-wifi-visible/index.html new file mode 100644 index 00000000..fd70d6a8 --- /dev/null +++ b/1.3/features/phone-wifi-visible/index.html @@ -0,0 +1,2013 @@ + + + + + + + + + + + + + + + + + + + + + + Phone WiFI Visible - RAPIDS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + +
+ +
+ + + + + + +
+
+ + + +
+
+
+ + + + +
+
+
+ + + +
+
+
+ + +
+
+
+ + +
+
+ + + + + + + + +

Phone WiFi Visible

+

Sensor parameters description for [PHONE_WIFI_VISIBLE]:

+ + + + + + + + + + + + + +
Key                             Description
[CONTAINER]Data stream container (database table, CSV file, etc.) where the wifi (visible) data is stored
+

RAPIDS provider

+
+

Available time segments and platforms

+
    +
  • Available for all time segments
  • +
  • Available for Android only
  • +
+
+
+

File Sequence

+
- data/raw/{pid}/phone_wifi_visible_raw.csv
+- data/raw/{pid}/phone_wifi_visible_with_datetime.csv
+- data/interim/{pid}/phone_wifi_visible_features/phone_wifi_visible_{language}_{provider_key}.csv
+- data/processed/features/{pid}/phone_wifi_visible.csv
+
+
+

Parameters description for [PHONE_WIFI_VISIBLE][PROVIDERS][RAPIDS]:

+ + + + + + + + + + + + + + + + + +
Key                             Description
[COMPUTE]Set to True to extract PHONE_WIFI_VISIBLE features from the RAPIDS provider
[FEATURES]Features to be computed, see table below
+

Features description for [PHONE_WIFI_VISIBLE][PROVIDERS][RAPIDS]:

+ + + + + + + + + + + + + + + + + + + + + + + + + +
FeatureUnitsDescription
countscansdevicesNumber of scanned WiFi access points visible during a time_segment, an access point can be detected multiple times over time and these appearances are counted separately
uniquedevicesdevicesNumber of unique access point during a time_segment as identified by their hardware address
countscansmostuniquedevicescansNumber of scans of the most scanned access point during a time_segment across the whole monitoring period
+
+

Assumptions/Observations

+
    +
  1. A visible WiFI access point is one that a phone sensed around itself but that it was not connected to. Due to API restrictions, this sensor is not available on iOS.
  2. +
  3. By default AWARE stores this data in the wifi table.
  4. +
+
+ + + + + + +

Comments

+ + + + + + +
+ +
+
+ +
+ + + + +
+
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/1.3/img/analysis_workflow.png b/1.3/img/analysis_workflow.png new file mode 100644 index 0000000000000000000000000000000000000000..89aab053612caa4b3e3b8f762e4acbfc5b156aff GIT binary patch literal 518168 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%0AW;YOh&X>>e&kZ%}5f!zr)zPxhsg$hQ|rU2Pa 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ö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 J=S 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�ZwRz@YaA`FRPY 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 nKu49@Ljmm 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 +
+
\ No newline at end of file diff --git a/1.3/img/h-data-yield.png b/1.3/img/h-data-yield.png new file mode 100644 index 0000000000000000000000000000000000000000..859e7cf95d13573a8ba900f909e9bac39e0b5e52 GIT binary patch literal 112608 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�Dj_{ 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

H0{%I7!L%NTh#xV?Xu}#MPA#pYDJXL! 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 +

+
+
+
+
+
+
+
+
+
\ No newline at end of file diff --git a/1.3/img/hm-data-yield-participants-absolute-time.png b/1.3/img/hm-data-yield-participants-absolute-time.png new file mode 100644 index 0000000000000000000000000000000000000000..4129a8ee2f72f4693a90ffd29428638be44941c2 GIT binary patch literal 184589 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 literal 0 HcmV?d00001 diff --git a/1.3/img/hm-data-yield-participants-relative-time.html b/1.3/img/hm-data-yield-participants-relative-time.html new file mode 100644 index 00000000..7c7366f3 --- /dev/null +++ b/1.3/img/hm-data-yield-participants-relative-time.html @@ -0,0 +1,11 @@ +
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file diff --git a/1.3/img/hm-data-yield-participants-relative-time.png b/1.3/img/hm-data-yield-participants-relative-time.png new file mode 100644 index 0000000000000000000000000000000000000000..20f8caa392fff5eb54fadf92edb075e83b29eca1 GIT binary patch literal 194497 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
alr3aTQxCl#f`m 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 literal 0 HcmV?d00001 diff --git a/1.3/img/hm-data-yield-participants.html b/1.3/img/hm-data-yield-participants.html new file mode 100644 index 00000000..bbb00c75 --- /dev/null +++ b/1.3/img/hm-data-yield-participants.html @@ -0,0 +1,191 @@ +
+ + + +
+ +
+ + + +
+ +
+ + + +
+ +
+ + + +
+ +
+ + + +
+ +
+ + + +
+ +
+ + + +
+ +
+ + + +
+ +
+ + + +
+ +
+ + + +
+ +
\ No newline at end of file diff --git a/1.3/img/hm-feature-correlations.html b/1.3/img/hm-feature-correlations.html new file mode 100644 index 00000000..99e596fb --- /dev/null +++ b/1.3/img/hm-feature-correlations.html @@ -0,0 +1,96 @@ +
+ + + +
+ +
+ + + +
+ +
+ + + +
+ +
+ + + +
+ +
+ + + +
+ +
\ No newline at end of file diff --git a/1.3/img/hm-feature-correlations.png b/1.3/img/hm-feature-correlations.png new file mode 100644 index 0000000000000000000000000000000000000000..f6e60e46e973ceb2af07eada8d836297f0c2af31 GIT binary patch literal 295093 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
  • 4Z?{^i~aUOh#L=aHP&pCZ(A5 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 L6c0V7eDD7NS81K= literal 0 HcmV?d00001 diff --git a/1.3/img/hm-phone-sensors.html b/1.3/img/hm-phone-sensors.html new file mode 100644 index 00000000..d47455d4 --- /dev/null +++ b/1.3/img/hm-phone-sensors.html @@ -0,0 +1,447 @@ + + + + + + + + + + + + + + +Sensors per Minute per Time Segment for All Participants + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + + + + +
    + + + + + + + + + + + + + + + diff --git a/1.3/img/hm-phone-sensors.png b/1.3/img/hm-phone-sensors.png new file mode 100644 index 0000000000000000000000000000000000000000..3e19e4fe948fc460283372aecf59510327eec1d1 GIT binary patch literal 279991 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
    a$9lNYs6kl&ZXiX#v7;n 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

    ?3Vo>Y^WD z%La5s`Fwa3JTRLCq$%Cd$0@ggMYd;x@BbN5w^akI97`D#Vz`X(ex{xCIAdglH!lJ| zEH40c%({Yn>dfL!Z_$y+BlYaU zMHhMJCku_QKFhoWV)m?+P$s8QeTp)7l7Sx)?notnB#xbdQq*P`jmgprK%FT6BYGe$ zSAFi>vj0HD^KGruJHXyxG+L+6<@+0BxrOk(_oVz<3pg3i5nHi{{V>%cv*|pkI>fTY z>3&&Dd|0PJ5k}0PMmI;bqdm)F^LOZgiZ@%fun3cSm~8VN{ECz&joGPx|5@Cm3!Sa z{f60G?pbgJeBeep0!uJNqrAV14vjS=oWp%7P_zjGg( ztL-^m^Y~@&uA?jwW529+^(TmE(8`#S+RaJ5kYm$*3=`As!^hSNd1qIHMi&W5Hk4Z` z!`Id#mILIC5F_^jJOHjh=;}bZN8#GWAo)am*FL<^R=T>Xa#^2%f;?)(v;JO9{I)5y zSUeCHEPZ<*%RXrpHdu6719^3}3ogEJfQR(m+pEYa*GdGHc}WneErP8MA+Gny^W!J@ zES|{H&8}-hxy_dMpb2ZSRL+{)9j)igADTn{Vw8UapXt=TDO%`kYAQ|Os5&(b%FX@s z!QTB6c&>o@aa@Hf@>CoM57Z|@wS%a$^uPTi0;Nr5C8YCX;uDF*wI3$2A3u6wI~sFa zS-*R<&bgrXPxk2Dctujliwi%w^zFZQ%Sz?{`Oh_`QK?%&y4}LB)4m9(RNWeORd;gI z|L%_kWy{u@;&vo3IWI3=5=ysC8iU#d$EbPnV5!BWVmpP;I_hFhO4Vwh;UL9jRy^U^ zS@4^HmK9C=paVun(m|phU-!!Ek3r9d@(5M!#u`gqTJnJFnJ>SRy0sy+=c1eOfi`G5 z4x$`{_Mtw{t(FZ?|6UZHUg7+f&ea7@hyBH^?xwG5-sA6Ek(y$v{|Wx+=T%5MtTXk{ zl|niPdZk7Rx1#W3_D>iI|1@L!c+&0@&W~ZF<8k`+pK|nyq&M~D2GUmaDP)5v(JX8Q z!87YR?-n#)%;VMcm_FHIt#U?y+L1+__bqV3QFRM-^>~jB{eKvH>$oVwuYGuz?v`$( zRJt2s=`JZ@=@1nqq}fGk>F$Q55u{Wak(Mq2rKCHhS>ECMJkJ|{JipKT56tfD%+B6( z=A7$X=Q{VjcRj0<%k$`$&w^yi&Abv5Ti0q}c;0wy62z^jdXhCr?54fZ_9_&xFvu3k zKUY0qmV4z^Ac?*q8~2LH724Qb7-5XRq7EFq*&-jE5^HeIM30qq5r%F^Fg9-h_4-p} zTZiAx#q{g(9QGms6%QF=0Tr4bajg){Qxa0UzLUpt<~>tnU!t6k_OfhC|5?k56Sg0= z-}E(X{e@8`04Xs*o}y)*3*O^R8aoRL++8S1km5oZ@7nK-%elZ2~g#Rp_ur?k9JWJC`H3K^Uc&Qe4WZOu)>*@x!C8_owkoy&6sZ2 zPp5yuD)o)l>mbA-9iU~RM;Qd;&q}qzoKibD6or36lUOp>Yo_1Q^Ak~HN2B+GfdT6j zxB6dR1}!eb!IQqhyE7&Khfn>V&+$Kd#Xm||bvCeFZp@GUZ{ItXCNA$`sUI8P6($@3 zL;Zx_OdJspm_)oJfL-muTcy!E@c)8g-<$4tD4@8Oau~pH;61tJdfKKH9aY81A^c%WBTtYxGUe z;v#V5GfP?!w6_-Zm|}R#8$<79ENVS(Bi5&SqlWjT89@<*JbC%;wqWmED$Tw@Cq2YwT>3^lTrf_3CpSLPaAWMU z=3-7b@|s?$ih7>6&6Sxuwp{s56B-EVgLHBlrCSbz`Yf&&n&$p+{&f017&<+pBu(Bii_eedpJx5i4gpq{LLC{Ko@A}&P3OmZ)h))3Vmg-bgiY2JeqSe0Z-i3q z@DEJW-Ym4AeirjcC(zrh!u@402ubJj%mMB+uXfn(wuWH$@0JURIlGxIk-2Z&UXK0G zTFrg>M$*4dw7L6SyeL3t^8cf5e0TEYm8a1*Hr~bkVc(ru-coL$(Ss8)s@OA0^;mLY z^cBo%v3v7jx1mRSVn6^RZ5=F8NtEHC~us@+=Evs9%0P28_> zrC}M0y0SVS>mAmXwT4Az$4N)FcKbUJ6(JqsOhZAwovSy$TB%2N)Px#%sm^zeIk{&#PnP9SN+(QC+bWle9x=aG#L7&g9twjrD6XgGs_ zN$z-D_`jerF0H%2fZcC;s6;bZ*5y6_`q)p!J66`=Vi7&3;>jITd`=aq=OKeS-N@a5 zNk|8MP0M<9m9~X`wZz3~%C8TS{C|e7F6?bNhJRu~#pd>1XE#4DSudfd=i{-Q;=z`D zykIF6Pf`}nud78-xkB$WS3$3nSTw`Rgq__(wZi%ZkQ;d%ic>>lFFiRF*QoVRb&^!FWN4qwa6G& z^LFN=d8|>-m@%M6@q|z65&R|CzZTR3PkjvlaFJb$5| z)ptSnGNa>;w^_FQ4ct17I4}L~r_N|J?bBb@tra%ux64I34DlzNoG;0yIWGQn*N5Ae z=l(?x)2SMQ<`z)QAJ63OW!4HU2vL~boNT6dyo9n>pf5is!0yZOwHJoPN%+9ganKwl z$?|6o6R+HZ-Srd@%UB~wtxard6R$#S_~T83F?tFYLPv7jykcs+-r zM=-0xMY21G;+8}G07;MgpdHS_%N=|{4EmJ?gaD&yr4z$o-X=q|5N4+b512mjIz8#P zS1W@Nre72jqgPPUwzi}r#4w{S%0KjTe}o)rUx}tOwAuMb5}zFv5o6k&``TiH3<>iQ zF?qJ)qOYH8RL7ptFIRt2UvZe^p;;evtxFR0yj>yP57h=e^NJ-HXNYViiI>)vf!Eu; zO<`EUKOt+KAahHEUJPMY7FKpT$2Rqr5`{}Fm1*WtQwh2)V36ST$!&zno!1>Yz7%}o zchK`Iu^CO(aHn_W@ryu5Eix3Ee3g2;p6PWk8>0_GsclCLVC{>4AA)Su zX}DSor1DsdqzDD4+@0!-aEVltm~y^|*gH+*a<^B`g2^4D_ayq6^>~} zBpy#L^`JLIUiZ`&v9q#MPXF3A#q3We<9_?=Aiy+3ui$k+ehox-Qh(0fOc-_Rlk3O> z=6#ATmO9MdnO_^`)B%P2>Fmh09<>X`)_F3aC#53Dk~WP8T|a>null5)y{e4vIFh$T zQ07{NjL=EkottK@)WSyYiEs>EIt6G7%>~AsEd*&499|ud+aap2rnXH1NA68DAQzw% zX4MK=Jp1K#?^oIc!JsVkebsM_GfC;jx@}^E^ZCnJ&8x?>OzFLW8uIx4E!>A=g(z}~ z7uVTxAIvW1b^}rC(8vm++>0RRhCXkb?;jv&NwTjlHVQ^?_z6pSvwxIj37q;*D?xak zCe{30V~4-!KcF3?OQ9hqEwSASeLy0g&}Z2M>BfIYG;?0W9(o3qdW*Kh_Iy4y7ZXaP z9;e-)bsB4&JX5Cw1=t|Ap!cYH-ab(eQX@6Evv@wKMV6md-mKqr$~9GAv!D+Xqk2mh z@x7|BJXz%j^VL-ju4-_1R^d*Asi-BAQaZe@D~2IfUjMvc5#mEPNXa_t|AlV!5^le8MnC z5{smq5wNu@YZ9j!wk7R2SPj@H)Ikt(K>!ST7M0SHCh>S1R(%K8Z^bOeLMO^O9{?~e z>%Q-VJBLS3hC55a$w4yZvZseXuZh2vYduFA1ty7pj3Ho3mO)0c`4X!u=yexb{n&yB z8pC*#o3tJDuoeYAf~kJ$J~Q(~Qz4)^cJlv+vTaaBOc z@Y@;L+Xf+z{?^i(+Fr$Nx@}a0G{=+dA2r?#D;)$OmpFTFin;wro={4Lq z8}V9nw;YGmlc31Bb-h__w>`RN`PL&sRA`9_ERPKIllbEz_`6z5bdYpdWl9pgL-k0O z!UN~4sIEWQ1ShS|2%jC55H@wpJLU;`+a$*nfqIV9*S6x_?ivU9>hIrNQ|k-j!eFqO zY2MKFbFszuyFt{wO<(`m?rdbR+E>WEh-Rim8!BJtOOS?nZH&EuZr5X_W8L4XrnHLb zp4o(ODjENNDS4UV#}VpT=a3 z363K$4u7vnb`>x4;t^o5{o#8&kb<}>g|p&{5KYcoc1e0cCcUl%z1iT)6RtxueJ6C` z-NrbNQP5(>3^AE96(~Z3UqXl?2%&23>ac=$aObv0bH2?s);SxNnvX(LR z;hQTNF2XM?8%H&|4evsXFODq1X*yWv+gX4cH1Pcd=uv+^;K*M>HdxIZ333A88`~+I z<35~d>v?|jcY{AdVAk(^AX)KoD;y=plmIf7K=SRh%`A%KF1pgpFhn|_N96&ZS;YXs3F;v{URXL{hsezao_J236Gu&AYhRq1Wl11F zHQE0sKwUp%Zr48ZjxLZZZ8J=!*6;W$#-#*vg2=w<7s-w)X{7m}Mm_J}=Y+E-UoQ32|^4kH?Xhr0aa^9K$c?1;cvI zZenu$>WW~na+jpWLhi190hg6bg4O!y1hz09LNIkP{e?3AQE`>GGMaxh`wZoLk%fFp zX47aZ8JnaYQ6_70EvP>*U@%`4g~l}vk@oSsXn)}o9ZlOc%c{&kz(z}kF1Y;%l-onr zTNf4f=kK*5`Xn0d+lOY)+ z%c}Ev^U-9S!jDCzUkvRSlCzsMOl$_> zJ6|+c&b)aQq%8U-P@)-s2zy)3?OCU2Ah{8NPdj1?OA~wgbj@ErGt$La2M++F^ z+Q2+t&*c>8KrXfiP054|_Jj&@y@Bkh?=nep*qvoW0DJH4k=4G$OQuem2t1sfM<*e8PiRATQ^NZ{Eq~nrZq=V4pqQdkQRR|45Gc7wk zfsez_FE3;u3=?FG=M8a!I*N%3+H| z`^*h@#-3c2W9w!l|KbY4)Gdv{;0WNXquYPgW>)M!m*9boEGMrqp8rms)szp;R;2@# zl-Vv$V6PdTC2-+)L6cW&A2a@t_TqlrNe-3B)7L2@(4*%^kuGTVh9%(EcoDwS*`Z{^ z@_ZGssdf;@(YUeWne}psCKyYY{jTLrFPSl_0ly~6pphX%2)=%6C_QAKE5iE1IimTS z4yalm!9|+P$!`3NR77_JOP!i$;O@D^(g0Wfr>uVrMOkqC;yjR_57aqAHEinp-9$T+ z^KP$ek&@Lj1bZ*@T`x&FJ1AeDvF2EEzz!#g#bzUEfJETs;7cTj&kL55myAzu! zJkm?r3m_sapdu%+&~kAe{tc6pn89fLz$kyMXtpyxpf40-Gi-ST@kA>QPRcH zU3>vuO?|_mdD#gKy_$KyF;AwHDXFYz{d_m_k#og-7aj=BO*$D7B4t5`dul+RDyN-L zXKdF|fhnp^S1w7;9jC}6ZS7j)^8)bro>$HvY_s?6-je=n!3%{uPxZ;1foDN<5@`w? ziVf(KA>j|vmc^X~CQQRRn(%jtLy_V%3J-VJ-UO?3Or@dS+OjdP>mho`xJ|jkFZ}Ql zEJIGkQl)`u)brB(Eew5g%2csw(6fNV;MIXDS1yzh}J5h79G7 z$h%*Q{(VXviG~GdaX23EtqQpLnkn0YD&C5x5)>5GLstHYD+%v5$@5d}l+c8ue1J5u z%`6fIvOA7Fv=dK~R8SFcLW1tgT!)Z8vBn@Z8{DH$XHfDCr5$XzijS<3!Ki8u;JThhA zc@gJ`=P$;a(x>{(e_oW}r1vU8zEPr(CHqPJa@?JA*YR~?Cl~M0z9}9gI0pS|d?uNT zRKR#wG_KenaQ>S~sZ$tLjV{f8(kxn6cb0_HY#_oLb z`ITf8-1%krX%2E_&9abgj7)E9%Vnn?%PQsM2%=aQNA4(8NEwOF@lWm5tZojxjhgRQ zakY!SD=B}>{kSb@aqfr9G2=Ho&>3p(dw^w5awv*JEh5euYm0R zAX&c^pkXD@40hpAJo~8`h9f6e5{`4q?lE&l!csje@t?%Q?IH0<{H>yD&b4#&`B8Bs zSBQR5-`d>AM7^CUq-cUKqD;vrW<0l!Gf%23MdMgneuZ;!Cr3Jc@{*hYlFum zo;be|q;f{Ob+T_okl6l8KTB063p%^FlZG|R(F;y4=6(!P?Tj}<;3(l#a^_5Wc7*m# z5i>Kh)4phzvpLf|1}Pu22TXu|ce|6Xn&GKcgc(|8Eph1mL(0-bMahe~G@V9Y)M#DB z)+YKkmTNiThw=v$wDxk{%^L7E3wj%+(HKVcvh~IRM?v|p1P+p<`=T+6FqsG-4#H zF$q^p_fKOF(Kx!AnD3c7ES}tu^SSS{7&x>37#9PN7nd+7Z8!jnE}Hk3X+qyMCpD>2 z6gWcvFxoNs7i+zt5S$-Ajel=I)!B0kyH(ctST!O7(iH}&Nb)IroT*v3bp7F=+zzmfd70A9BO{ucs6}${!B5Oz~)Ysq#vb&|BSuV~+)O zOBJAQ&iZw-nsPQ3yW~3?$gwalU%S(YMTHrh^nO^QrnmG2SuIUGUa3pG8-S7vL}xrV zpe>Rb6UQQBNW8v6A{kN)zw8zGpllvc6aDU02A~J{7ariNT8g1lJbGlN=)z6Vt{0!6(<0|hTSPg5=ksw{s{nM_u%NC$Nm>wDGBG=h`Ep3 z2JYXi*8@2DD*gaY{@z;uIVdx4iT+z?xE;wzUh{27*rSyRq6b^=A9!A@t;ayE_jtWX z^iv4+jb0u3Hh1c*|8*~Aa=MYKegYm$r|qaYS{1XLbW0(C)J}SQU)Qjgj5OpiW}>J) z<6=`Z?hg!RCc*+IszAdCLr4~N0g^YC+7;C3M3IywZIz3cC!B-9r=MNS7(?MN2ZM(qS^E<^0mF=U2C{?qGT z2f0*#Te&d780)_P(dUAcuf^qR9%vbQtf$1(w-5*e>NbF#x=1FFWhge`E#eo|9fB@Y0DA%FDi7y}=U3 zi2M?k_mc86?2<8I7#>Q{a?Vt5&Yzc$Z8DQF<++xHWB0gKmAFIPY4e{9x=hBA6`Ra| zawAYWPe855?dc$S_EE(Ag>Xp`AXYF7`pLRcEwkQBa1>GswvSaW+?ZLZ79KgP(o@;D zma7ael3tn4vn&*G%*!O?o3e4rMrtABr*ofa$MBVVZl=L*Q7@>6^N$2PF&BBEF; z>+6@D6oFEDpSL29W240TU%?}RnyINv)n1(N0~}&JD(KKAQycR#`L|Sgq+B#Q56j3Uh+Zk&NwosKxc{%j>r1bN?HY1+k?8( zoGZzRs`ytBvFv-gJSnQGSKN(GY5XW7T>fybw(`@sO^a1l|6<4t_fFKIQQQQ%t5IQT z!Dk3Au5T{!;0OKRAYU|j7Dl(T-B^jIkrl+bDz(qxcn70KVw#@ZYI=f25NyQ9F3MuY zK{1NrheA}2Ur+i$)4PqaL1#TxKjwsBYHayl`$|S5Fmo{anRa1S+F8o|zn|_oefQTf zqYmEYf{w>F|28M^&AsfTjsMQ+bb#z%Z7oAP-kydiC#XXBMT?Kf+qj%Jyo$nWnkd(Aoy>K1>ukIyn34X4QdjN~IB%sDfnvt%e^Fcb-gPdB_x<0Fb~s}= zu$X&$%`mn;dgl3>>L4uNpRQrjBs@jF)Cq}R4oQI{#<3DG zR3AkJ#a~6T;G+g#qVmw`8aoc#i)4V$tt z=t~#=;v=K~Bp~TJ05q0U16*v)Hix2N5(}c?+3p2#TubKwK73RSooiRN4quSg?-^Vi zo)s(g=3OQI%~Qfh;K{P!HiGd8qz?TymEfa8c8Sr&ZfwJz20pifsRXyFCm}wrQMTAB zcCv+qXbx#@Y=`cPyRA#$8Wt(_a#c|@<&KvqPz|@F>9hm;gbVrG08$dnj zk9t<0&!@K-oH*O=DQx}`?70Egy!$I5Ah^p-?APBHv9P;&iOyvZPXDOV85rUCA40wWHjyZ+E-aneZ7ELr~Z(_Mmtry-26F7@*k?S8aKyI??gPpAOJ3e^v7kCrk)z#Df-B0gYakdV_VnwXWZB z6C}9(R6NYKzKVzY_n@$?ijr;PDhq(G_sn-ZW-A@Xav?bsA2)E*ZaFv&Ohvtr2-|?n z&1!{>(d=u5aph_O_vg6xAz_TnOU%7bCnzuv20XAtxVWt#gbMn=Lm`gHZ5;nUH4>i| zE<$Wep>i$oPY3cNEe6mNieg8otfVP8>7p~nUMxS%(4H9QEk%?kiIo(^N1MHT9mqMF z3Eb@yQ6XxomTX+LXe|wehC1y-Iy32Jb9_v1pph)R%@KBY&iWXSc)=9~UY~l-H6*fn zTBCH8O9sXd{epaXv>SCri%5HP5?~f!CAs{PaB=!Ns=H6dU6F4i5BrhD+5L2#ZNIQ4tc>b;L{D=Ex|b10&ha9 zzn2;J-Gm3CPyGvuZor;RLfCtfV3ElcYdc9RZGQVTbWefSZ*1sVdI}E#2h2PN(6M11 zpz82(0RFfyhUA(9H2!EY5VSyOgu_Yc?x0EbLQ}`;4;Fe@nn{ufB8vtldCMtDDm^}s zD}C4+oAVL%CQu@882Nc$z@`Un3|V0e&!P_8s9{mc<49x(*afu&)4tq?;Kq7*|RnDpNF5h{+wZ`;E)0gK03KZ)=3Tqbn(q-D9(3v(|Bt#7|0e^A}wSOm|(0T9_eb-yfUMbF_J|d>606gO{^q!HK)k!;A;(nrHwY-03oXvyAwScl8scUl}fsov@kF@V!3qzGmwyhwo$C?{j@| z-KN5hkt68(lfcsx(+py}8F_K_1zZ6xoFp= zfowx3et_h?pV3A#u_ z{m9)^F^uvaxz>9*YX!=$U_*Pv7=D^2n@%b)yhK11!0ASYMe!!H|CaFkPckK1y5hnw zx2Ie&;Ou2WsMyM#3@TQMmm#WQ8)SHTSV@rIH3ot3;6k7MOJh)5jj&d5L7rT7IePp+vlii=h(e59MFvL3r_FrfCb*B5~io4tY}CW;&r=36NQ1ywj;lAo%fg zTk3Qhe)6y6R+*;5dNTD(150#0FX&N1bFXIRVPQu9smX`OI|J!zr!Uu3Ew?=(Af%1i{CfsY3TQDoZ*j^VH zy7M);=wJxfI4#)r+DQ;1M}^yMhe)5B@QeWhKOQWJr_bYK~hTWk_VVTTDv^0u(D@5lpmYACk#P{M`Dqb9x*J{{SXMhaE7yLdJ~dpicL z3h8YX0)Wy1=M7ml^h)@$ID*1BY29;9%0QVrRR+D=OcAIdMy3oMZ<7ypQ0!$0{&mqX zb&=pNQtQEFIs%BxBAj@N!KDdD{dhsqHx%65On#49+24>V$&CISb1fWO0Yz#*c{mEG zeJ;L5FlKZ#1e#*|YZ7@{FtyEOToo`Blh)>&)Qt)Wh-8Wo>^7Fbj!)l$L%vQa>p0Tq zz?}tO6iy0#1#xsiuf=@-{uvzKE)JA$iN>|ip0pE$_&**@_5c+{Ef_LDavYbq%@XMu%8H%E$Qmd+mjcMYp+<5{T=|cA zXrL9`Vm}5r4+S4roUXD>H?t8QX$L5Sq}uDwcC=hZN@{^#|FiT-_bIPBP3}jymvU^& zPjHVa_VaGmR##%oS{jy|^1OKkkf9OSoNJ9A4J?k1#3YG*4^Ws%TtC#D@s`WA(flzH zB*my`pQjd2UL^lnE%~z#4@Ba9AJfCcp!y9ZaHU?p6&3@Psgg$M*FIUf8ote`-$KpY z+7l&F#x+!2)WDuh`d)bKkYh>ce|Ed~)>iGoV2vGLfO`hbEJn$$jL z4voP1K@Yy2A`Obf@vZ_NB}!=EQEZTb6r19RKW^*&bFO-Z_5&g|O zJ|BlmD-w`lRATGSHP!DW2G{-fAjKsvyyZlc5rfz$c0zu7X%#88L52q8kJUnl<3B8_ zI}A4W9E_uQPfA@1ETQ>5vx~H5rzh0L;8+GcASW^9&3cfe{kM8=3eZvLE#~yMBIRv| zH-9Wf%20CmFU|gYTZ{$PA*S_dNh)}1WLSGtfKj4m4DL*bj0<2*$N;nVFD4+~Lef6U zaa-Xyqc>rrPRgGS)=zzsVSHkhd4`{Z=BL71!-CJsS^M=luRZZk%T(bt_)qgCu5>?T}wLd$CbnLOrRkEFu&BZuY;;k&B#~Bpezi|G|=T`=I zp5Qn=S%2edkBqfD#9=aFn*G}4I#T4P4z5zCqc?>u^WB6mB7rlW_Vo+>M1_{cSAB0? znw44%+!Pe6G0j{04d@ggcRAO9%2HU$)0Q2Rh@D@n8L;4Yg&9DmFnnb6N`yv1e0&H{ z0ytbgY0M;G$#yybT#9>ZvBQ7#jsMa1y%GZ?jys!xwqj?~Ij_3*snXxNFBB1=vI>az z_9VeDA)^w1SW!{i!&{&M8lz26mP{wh-vJ)xC&@j^|K7nV$Q&&tD+u$ILlla9#o>v* zoktOG^z>p6#lGbZ0-Z>six)Yh194BDBdOp+%F_~7f)G!})M?-!jaS9JeAwS*DkoXb9gP^hfhuCJzn20_ONvO)r)uhj_ zFJK)6z1>t2I;3j+Bz0GpLfh! z5l5GRfGPCp*Lq&G><=h687uA;KIhn&E_&uq_INPx4K7Tg1Q~^QvDGj6Ah5ic{J*7^ z#UFrsv{~Euzll!&M=<)|3e}*+hpYCzA@cA0&1oO(>aTP6wzJ_VhU1ad6P-IZEKU5= zG(&3HJpB$jex4!d2&EhoGeGe4ajx=zQIe%^sW|SmX#Ju*0bLZ-Yi@$L8&~qPL4PT9RT)OY)a1Ktj z9Jb}P0ZSn8$}l?j`EVu-CVPZ}{3?-CRc${WJ$cMZTK+W;wk?vTo(#-sohiJFRN`z@ zSqLe;Ye#3YuW9`v^!suuYVJgYZXw*z2R@;Ot6?_87Nq)1v-{;@6R;{wwuZINysp09 z+oj_#8c&xXkemy-+sD6Ay;5@}!+b4MyGQ9)H(fIfa|dnMvFWN%2pxOd-1Fds8}=R! zX%0^z7Yz64{>Pr=39PD7J-!;|M_v#0alavY6dE)Zd)Wwg022{crd6-{NDw z#s{AU$fN#8kzBbT{_gPuuu?f$_+Ycp2r-{2q_P1;monx#y^gbMzQneP%? z%6t;)RdPBP+U_#nARpm_Xm-8U((7mIb@I;tXaOuTIdWJHy$#n9AB9qN5i{SHA|}(i zMYpT7zMcgQ-nPA-#Yjn{?(u!pu5L< zgqM)8!`as!^`IUDPMVo5g_$)Ed*S$8S4Q5c}1p>d;RPNqQ1 zHdNA1tV7n$kad3U%k>>EcD+x_`=G+Y`X}il;P{gxaNo52Z#lrvTBQB143@9BQ#FY$JHvm@n zS^e!p;_o741H1j$6_*L^VAowL2amA#JQCN`HdWO~MPt1nh~><=y5wSPCX zF!IwLf;LLzs>i%G$n-YA)kZ9!@5It44VAljv65}JEgdp<6?-F?m31BTn&{wIK-X-K zT9o#AJ`peA!TS=W+dEJDw;UELat%~F-TlO74h$7^@ZwJf6O!s-QrA_n`>0#uG)Dk% zUG-P0gFM=BGgv&E|3qOS;*{fI2~Bv5_lr*U9~OFr1jDp3E%E|CdZ-^dnuB zXAGCit7h}vCf636t<}5f8W%E0-(Hmogmq}&u?`=5<>(fA(y9#If7LdxqTOK{Z7FeU z;acw41u)^M7a%-v@Ok|pZ{ODtgt#hM^jPIJYtwtpFC%eYK@7V(NlsBiP;?MG=F3TQ zJ!7BI966`g6DF{u-BSyX#^h3hPQzTU+79l@;>F13>tR4e3+R6(oU87A&oXHA+V!`9 zDDMCYvGLh~s+igFh<_3*s@Bd4aGemR5wgmsU~RS_z!}-B^zS3pz|Y(tE~|v>MuMvb zFK<`N%qPz)_EO>w#l*MU8Qo7h_f~aejhAMC?`gK*jV1Vu9Q`_b2m%?vW3lhAJyWl> z??-J%1}y!AEDu@4SQ};XsJIh;1EpoU4*~7hON|fPW5>o>cRhAE46sHprb(V=7-I9i z`Z*PlS6pQ!0y_}ifWV)H%yhJ98%Qh9Zw0WbuJ9VAXUmo6{X0+zsXb?C#{&Y1=>Vny2`fqdAYk*8UKaQsfYPG; zA^8FT8Y+}V&7F1#^}St_Z$OQG_0S}_;eg4rtLKv^w339wW@MWRy7Xi;(0Xmy%i$;| zIj;X0`Rj2EXRoaO;0iqk|MNwW{t~3@#26s(ZXARiQr%e~izK3cH8(gw(pjz_oe;*- zL(Vb)a^yoVyO>>c+=u%+N5`f>=Xng~q!UX_e@@%=GLa{?c8MpTH(`JHMc7U*!Z@Mt z^0_WG8UzB#Egtp!JCvqL_bXhesRrbTFS3rJRlOlO>$fGt=0efW{8gm}a^tqFLHz#t zkHUBf-`D70`kgefnFWOEm=y_*#vG-UxkB19JI0|3cl4}K->@E4z zXl{W151~t3>QvE;zN0Ls;W8^K!cFbko-pITazB6&{Y3NMYCSnBk;W|=+#H}3 zSpVtQ8A(CLgCE(%G>c6Go5mV2!CV-BKrZdKN z8~o*&P3UdYfP-K0+vJzjR1lh8QYGUgNOQ}v0hNO+HIZd$iLG;8jnQtP?Ixq6A=xVR zZ4bV&OY-Cyy1hiXP~h$F^D}N2ra&`;Ve9ui>L$@{?e7UzvC1(r3p-$^#HAjbF$MR3 ztf<8&aB3W)li;a#Rn(A%FnK~KKRh2X8obirY%TKUe5SDq9i$vkB;(({doUgI0rv;9 z)$^uOdVvxq=l{6CssFbN#1K4(uaN(iC+v@)?ULs`jG^Nk8bHvKD#9ZJMxpX@wHVae z@>7sk=xgK}AU%vfKW4L#3x34k%HE=V4$^^d2|LexdvU3e`CNavZ{njpu>&N$=yp%3 z8OH(b9q13Jj6HP`$i_4Rue3T?YI_o^e?){NAGpcUaIUU1P-q+_`6-x!-rg+Ti+?FY z7anMTq#GMHdpg1K2K`9{d!c4T66sAp$3?8TCKw@g-Tl+dJzf_5??gOE2+Wso!jbxp zEAdN{7_CkFr13c?k~2DnS4C1AB%i$gSZ4?Tp}j)1N!zabtok6>I}-pg|F6GE z4sXD%&s@Z`P4fcJ?O)f^ByfV^6Pv#eUs77|t}8q+Xk3|Mbzgv}*j)gKt88W(?f}M? zPRdLU(4uT+)0hEW9Z?V3Pzo*XNkxkHC3m+8)!|M|pY8+!+p>8Gn$)~=B5&xu?|+bbkX7|sn{hj?#rmCOOb?|!%%Sck~ zX?Fv23aIO@)cV0g`~Ju-6IKG^Gw?pUDgoftzEP z$eWAjg9;}=1Y30Z{)6bkAmJkR!b-hdR5#hO!nTwjjE7VLAqvK1kiJa$;@!6kj;qr- zW6)hDCe2t3IJ}Epzr#m}sz9$kV>#if5Dt1$GM@u#TTt8#g6I8|G`zm zy69pdLCRtU>@xy`Nngw~_5_NFt14@S?PuJKiI%PKaKGu(5lWWuoQG{aKGCiM*+*dY zEb1%%tx}u!FjlgA{NrW0-q!u7f$t6X5bJR;W86r zF&|`1K|LT%u!rj0%2F2dwcGYI`Ft*WA!oj@j^0M^*>U~oeYRFkW9zWfk4rupN!iLD zstqm|vYUFjaqp=93XD@CsMR1*9P+7T$H7-@`{Z}%#bT#bxK9M<<8!f?ji%qDrLxB8 z%8JxSkILC(V}f#Qh7c=SIMRcD*2^MEf?C&e>0j1pXFO-T=UBEWtrp4I$sh=Pxu zQVd(HIKfJPl7jTthA1I(3ywRuIi0J*LoiT%_6c>Vd;iz7DeNh~5R(5L~9kA;UCQb~&iyyC2XsP1b` zzo4&LSW*naj+$R(2n*H=bX6JDT?}YNH$XHd-GnT1gg$;$jU|q-Oc9O1$y7*`O}o&s z0K%Xc=YNC^TR`_KOLfR7klt)WWj|182@h=`r(Je{>NTVtc>AyVC4d7S1SlopB-*p% zKx1%OFgliIWpI>=H-psTeA1OfyIy2>AV|nMzB*VJLKe8FGx}Uk)%K&8JNX&~FJ0a~ zxc^7dqn<#9aa+V6jJ${3AlyxD7uT|z6V3!70G(}o4PvD_T%%a`*E2_5#gAjfy~bb^ zH8+Y-CH_0N6ZdpOikY|2fBHE{4#cz(#00rDZ+EawWZ@}+7EnOFcM47VmUXdLl$d^u zj)_1<%A<~+$nDnA{k}$vcL6#%Q@$4|1%!lCcg{zPs^sJnw!d}bA>DFHQ?;_O!#V!E zN8fwX%tdirw2kATghwUcnmMIuFWtG@hy6PBSm>T9tfINIndOKJs}tzlZBdQ2w^hB1 z^P=WXKXF!2`x^9Kc-m?8qVJ((2~?5t5DkZb;PQeI$R0PzJ9!FGs!!;BYOIeq65maG z(Vnn-qV=n@(BpH#?s)18qfT=Z-XlSY-8WRGl{<^EcVz#-^hvVsA1CTE0Jl31+3tkp zL$xSs8}XD_oHcb;L#?|Zd8-3H7ea+RuTmG!e<^r2^CD*|hc<|JDQy$#J3Rf<+n_TT zezi?(#YTubtCU2myR(^*8h|q%P)T+XWr*~_rpW#RqBdlK=Lu4Mi!D2{Uf~NJ0>jm$hXPuw-GElOgr*@TKwvovJk|483HLy$EtjpQLyK5%i0&cBmVoU+ zfohw4A0YYIzMS5y#;STe$V0(J%>%No`u$mg%}xqWsS^*f@qGM;GM?hc!wkd;M~~lv zqv-Y{_C1+9c~eafo|w`qD0J_lHBCx6`-aiG)$NSBBVg$rn2Vs8&oTxn^SzQDh1R+% z2J|Cjs(PDx2Yrli(lWw{J81pNd+})i$Kx!mmLKaXU%pCef-#{88Q6KJ=@y zH98q!I3;Y+3kJ6TdK9F6tw|?a12XMWEDQnfgnT_pKcpsEmMIToKS2vveQCs+lNOz1 zJ4w2=#n)@UHq2 zh&>l9fFYm_cPru;a+db2mm`{IPh<-y$43C{fgh4SiKRl8dw>1E00rXQk#&PAf#39S zU9nrZ^BH&Vfvz7}24;pX9ZlNSXV#A822u?OE*V_n@Eu{T%AI{)knwcB&_# zjlrsbg2c3p3F$)RNCF(zJnMee;oq>k6dK$YTEPcsy}xq5@L_D^UcGBGF)C#{FA)s9 z{OLZ_avmHf%d^*VP8@O2%V<$g>=2_c3h9Vn5E=K+U`uBE+b*h4cTK&5d!7CS5K5eT zo`ri+kN29~?65{0DEpf1pJMSR1|E-};WFUagM?lcNul#6bG?BK)+pq`uF@E_tF{>Q z*~UVzSrbf6emCmfjmP1@M40spQ#2&B9!p)vCH*=aZJtlzq=gy*)tsDQ!01nlwg3?E zpJoHVG4l-qZg)Hf46qYJn6Ci5u@^D$G7K2+L7(o9lJKpeqW_Dpw}6T&ZriBqany8l*!dhE4^M92#i>rBhmv5GAC$yW{-F=e+NG);iz$mTT#Z%m8ce zJ@>xjcU^Z&Iry8Yu>*wSpDv(DO6_#g?w~ps0eQzCTclE@bdM~Qa!c{NxC9T?o5|Ca zCEt#Y{&$8Gr;b&gskgSWnn0^Y8;h=tj;o;ACC9*bKe|fTeT3--mNLXLm_LmTLLb=Z z^|x8PGq;>uUW~_rP`8NKljj4RJcK{#6ucr=j}%a^Bt||WIUgT9k!~X3a-xSty1s36<3|rgJeaJk*dQ`Pnh|h#O$g} z-x^kYd#zh{7Z4Dc`{#DR)6y>2kxabUJ}9r{dITAW58V+%0N1`Y&)DA90f+Vn%JlQo zoOmYRnem4X>SDK9J?Ts7n474~WAumN!CgfRF8+nbag={u*@(2M-KvFuNb;vPDTmMS z{_1;dxWwSvs*J;6%4Sn-|{Ux+V_rsn6&d-+Pcg(W2)q#06;Yn|6_zqVkGSJM7o@qk8 zA^c2=*~y(b3JRhvsz#^!+X^zbHGdMYT^NT*rPm4f{R|exk^^134#Kg`JrjFp#|iDQ zCzDi6716)p%BDh8II&XI6-09)1_v^6c^MoGh^yET4joh~!Pcc(1}g!y3;ws60T=7B zTUI&@QA1y_J_x(K@IOCTQ_G+<%7V<{tjASDScLX4R^hN6E3MGn1t3a%Q1))!PjuvF z{`Xqrty@sZ=9%{k>up*T-tmvpl$iqN`S{T1<OpTbKGrtnr$7;nn1a2{ z@hT4c5dr6)EB3fBaM02^iwzKbqqc~%r>y)mz30e~0evm~5$_;Q{>eu?o!+#05c)kN zD3EOl*gjKVh9H$?P%QI~j0WMzP+YZnfGMF)H_g>B@_I)O1$;A4ib-I1atE?Cg=8eo z#qm$BxDwQhqEU>35Fi zv@FdvYkQeD@<1Tn!2ZlR=&nFHO*;9zh-PY1f^a2Q0+&MaHD@q6S^YkWV$j3&+M?mX zls>P&W2>w&qZEV}B}yR(;SB-$MTm_}rmA3114Q2v_E>di3C;Jjl6G6$HFREsLN=S!@pn4L6Y6*x1{}!+gxZhVXhsi&6)A(^ zqf8JpZ@C629z`0QL-9s{3SnCUc*@8ZQAl!yO`#HSK{GY9k3m6vIsbI(IYxzY3n>x&IBPA~&Mr82evgwPdQekzspMbH z+f7<-o0ZRcN(Qq?JQeLw@W#VAPsmnqbbPIrWG(ZPRt5JE|whAnlfu?F(e_TqR5(M;ZPlSHomqmUmYp z2UA&n=y>I>N_(*UER&tKw+1HY93&$buumM=@igeKZ5;PbU)9SR!3`e&W4Y+@;VJaF z1r567xEU21(U}C(#pI*rdXLTb+&?OT%5db?TlpnUHiNiAEB6G-1lk0~ZgJ^VDb1~? zzp`^`HTTMuJrdObMj2U=ry#B&<+b4X&S&{6K#RXs1l+3ykV`BL7UK~r#elSoVcGbwNZGPph+P=Z68x6sq~;R^1b&aU!m&K&SRB< zKB1Epn<`}ZLQ!TfV3^`N9L)_P~>vF)qLQl#@6+Mi}u?Ob}&h32G5KnY!R0SqJ5S6sole)^pzW$|dEk z?7&%KPs*;yOL!IKp59#iU;_@N&eBL$#hf*qJNBPY`F2v}#u40j*FdLgRk2^h8Ug%M zz9P_$%26cs!FFDkk33$Hl6tSvRq{3TR^u|fJ~nyvPaWJ{-BzuM^(2TVw+EWLM5cnN z-vdQDM^r9G)H30lPv#Z=%50GJg}D4NuV7Aq(k5_?D|dSU4BxTZuuwQb0i|zzrz`kv zT63{z`v{?RDu@TcvOh(Z-w4|*DT=fOG7HJmU)4^(c({Qw@z8;^{v7z3eEB^$Q`VAY zgOPspquX{G(dLO(H2d%Y^$COQC`u=L$tp<$$|;Qj1m0VFo6fmZb{(E+4~%(qmPSpE zx1*+~5jrc|k-FhC@DZxaiTHq+dUZHMkX9`3e&MwZ|h=|IuESuL12VqA+jG2c$K>Eyfg%(*+c5 zFB|9)aGuw*$T*L56A%wPss9{4C-|3B8iJlj)K4L71gYF)gEq&Pe1A&0#Hra&mi$XY zyH~vtBU=qFixG@@o6Vxmq*@2@_kAS81$+eL-ZkfH7xdt-;`}Q4I?-2 z55L6o^wi@RRUd{~2$NFWwOha@Ie zgp45n=-f!cNfF~>(#Vjawn_&b~QdbBVt{}dT zkn22*aGM|_E?Y>Wb*aM*RvQ(vGWkhzrY!k8rDC$^(d>cmIlM||m#L>f?hnbv_qZ;( zJ zJnl??;e@to?>5ZQ#E!byM*Ow*&9NavgdYBm|9`On56$jB?lL1{BtJ?ykz3_)r|eNe z*e%3kGuGqIYjt-dT-=LyUOZ;qy*)_xIPeONx(#0<_h$&|L2Tzg{rryhrcPnbr~&TYQ>|oUxvPH0$o(r$%V=tnTCiEbb9!1UjuopC*-mRn3kGAEg}UZJQbexkM+O zac!Y*VHgqpY+c;eS4MvoG*P6Ny-4f@}M4AvQU8Zq!M zN*!BYoObLb;^pi#nmPmZLk%($+PSVY7bAGs;MFV;Y2`mx>u0_@cbG*9W!WU3E!NQC z7`?Y4rQIQ<$i(B=CPXPKh#C8X=austf|}W+;J5q1u==p-GEV5Iy0juR8)N9->$)T4 z)Jacptx#9avyUf;!pM^Ek`)(zlM%XAi~D}SO)`GfxNJ0_3Q2s`QsagOlvCfZGqQ@0ll8tQb3014~J zB1F6WT>-~({tuJojC>~5Pa$5(uch~6-?aLtp)Z9ZzCS?xd38x%G{i;l0(<=owBQfB%|W?nkFbL#C7}22 zR_4t=i~Q_yfRt7p6jRXg!p;YXN!hw&`lfQY#ajNO*9!0mQy*)r_cY8+do7%QQDM) zsw{~0cRzwb^x%U6?zaJtDqzu*)Ny{BnSgRc(hd4qBcy9}$=)1C+*G~}MNy$^kf(Oj zU3v-r>j=qZcpJ4kB^3RS!tz%zlv#yhCi@5{z9c2|P?b~u#N#~X6M|OsGxmObR94_2 z1^dRR6+cgnV`7PZuvmvxn?LoT)H+HIkz3tER?grQFbcInwmi35UXEQaWR%c7$gH^- zho*5@=Jk%$^_>74t3TB2k}sU>RYp&A$q55TL#ni%J|rX+NpIK8S|ov9inb99tjXHYN%g~z7U zJ5v1;o!h1IR0N?_GdzNkLrOAUH`$ZlUPlC4R1>kI;f!rsoRF*g0 zw!gNdb>70s9&Slrk>>JZxg7p%d1^ao{PE_t^t17G=&+~})yXnM9P3d~y>!;l$q2iL zCX7W(fa<&wuI(L9W8?S5Ji27M{%ssmVL^LIgUXTsL0EUsHB*6kp(`T z!{`oLQ1J|=Gz+($-nV{sjWs>QB=}`F91r8@`r%FZ@lkErYETVlh{2of$@f> z(=$^fjq8l8@tfOEI!iTV#SxTAOJ{LXze9_#j?w<0IU9`@Uu?8~`=C#qH#SC;5RjL_ z1zd3+5i+Ve8lwRTxHkc?l5i&EWnjcXoVS_dQ3ihq1T4pNdF~)+F$-;b{!Y|vcjj4X z1j{8FLXuw}+SIfO%CZF>V{I~{qSN;V%;PIl3<*^t_+`t$geTg5u)@h*PM>ep*c2V1-B)o;XW z=8!L^gH-rSK*Chr-&MU8N) zg|_}f2vuy0-6wd!OL&7K#P^OkPa09iI<8krtqE0D9{qBDv{(jL}Y6`(@IrEP`TmyiT zUSZk0M*;Y$-Kna51sG8%qV1i`p*4=7yJriikKf5SZ_gxU1Rk7lt?;%9LF4oCWVhAZ z1kdlqTLL{46=TLv6PyfYPfQ&Glsfxj9;){X_#;!uUfO+AzOLbGu~9EG&(3i?*^CdD z)Vwhq8G5#JpHRLH9aXK1%&SAYnlCT8ANiS%k05-7)(C-V0Ur3c(Cg=66tshKa`ECb z#@EjO>%m!=y!YIjIFm?UMD~-5re<52G3GR0*(cyEz;u3TJ9C6Y)R}swC$qa{hwb}T zOzi^JQAp!O^K*SAHj^gHfR(C6-aIDV4kYw6fOxxhHD;`|f<^DsaA;UNGKhqkSA-Y# zz+#&;TdRe=S$-~N(kB_}UOeW7k(f8P;aU1lNzzMAxjD1ET+X10`pD{+XzYQ>)8@it zcK6`0$6-JF_`ukCm^+Ed!yTlZi}fH5T(=PaMUc-p@rT5=K63#Sp7`xcy5+}&IZHea zA>DH2JOGNHlRu3^R!|hkp&bSLm8?|I)s+ah;!NI0bF%sR8!NlV8IW=JfiWZ?-(pmkY1QdaL%gaV;)}Tz8yllmsL0US|MPZSk2wdFwub`~91#-VZrN815 z%x+1i7su0<_@Bi!`x(Fx*xa#auXNI2`d8k{5RyU@t!D!~7pP{t4uIfxKN?(UPPgX{ z>kEtu{+E*}0D%PTh&+@Vue7m4Z*GVHpoXkn50Eo7eWi{gqUPX?G|dPw%LW0GV? zYQq(lU!N}`KcQ^m>}NR@qP!h*YrFuJ{IGf1JD@!kr*{As1)#{lZ)j=X^tHN`?5y|p9}I&u z!QGrk{CfWXvdNVmeA9ydcq?XlCIuP2=a5hEZ%1F4qZFKw2VIfymWg=(=S$!NmA2CG z-`=z8J4jPrtN(%4|C^Goor*yVhynHdmV?(!x5NMIC+|V9;FJL)@y1h7g9OwDRVeB@ zQreY&FyYH3GTAD=HG47ShqQJT7|l@$;c*mqaSVcQiUWVzL9N=tnAZr$FJH@L_S@OH z(++}Y$6CLeJ9Y^=&b0#1)yWbhgkUE$qFDn#n-dsbqkDVFc28?_(f2t3GiHzM5`B-? ze`#ytrtn!KlTM>1NlC)cY6T|9ws=vYMKvz`#F0hPF{KycGFge^==d@>!)|&zW-Fpx z4d%rExc73v^@?Usa4G{y*t{Y~GKFQYYezJxcPwJwgNl+_0L=g-Q5I@3g}_QQ;p3YU zaPQ>J@74qHw|7t$*w&$^>K<|aA6BAOS;$Bm1&*0RRYwb%>wMC1OK;t)zYEe8%|_+2 z?Fw+B%d}(`#htJrJ(-2qbARgD{rrY+qmMsn)UJHhNez!);7Wb*jhvVApTYHg8IDzrBa*)29Y(IkWSD zD!soP$F-c;R#*KdH`fEL-}Ju@<^yMkewCd+$Fyuh%#H`wh`eR`yS=*!k#O^XfTvMC z8M>T@t-`FT4}6kD-Rm}nbk!Qk2S2j9X{8Hz z@)}G&tDCQ+d%XlMM5?*@MfTjMta&DDnzHt`0k-~SAY5zkcB5#_*y?7%mBM;#wcO>< z_4ZOckXh^T$6Cp&_KIQWTGcCHcC7z^=-myco3tOzGVAIWwq_?ftCePH&{r2=IB##F z1~5rd{-zzXIo8$z!tb{&*@1=W6>5tgk8!*R^I*a6+{KDfzc)xgMMsK(|@ubz?!}ybOmbX#ee5PmZ z&I6-+sWQ&HQ(LDZrRo}6XorIf^k|j0fD!|5F237;1=3TREkcJyr1`VtgK8!JyFW+O zssbs$3YcBQA0;t81OC)dnX9oNWZ?+A+_vYj2l7Oj&08=!{Y&duF^qIE7{3`fCh~Nz zu?JHQY%-=!?>J>YH39L6*Z=ZJESH)Q4uw#@^lRuaPbsY9_D)44*b zhzT{D3=XPK?{6XOpT@cY24!jK?5Fo=J{Sb7WwZt>1 z2^=I|_4O;KS21~}tMB>c8OW#&Yv1XZbZGG*`~gh*ubL-2DBjT}c#c$$*-)4ZNniEh zq}2F~URfaxbU&H8to)d~&L z*TMz?c1%O6){I2!qdSSr5la2cpp9Bh1*g-{M@AL;t9J{|FVej{lg3MGEu><;Ek z-fU&{o0r@+2lPx&7U8&81EebT=4!ZOn2Q*yDeVP&J&+tqU{T`4@)WW}(eEyq70~%< z*tjKky~kTu@nVqnFjs>pO&mrEP{5uyWqvoG^)PLaJr9rKP1@iQWX+bmdFL}IR(5$) z<#u}>_%5U4)7EDa3lW5@Ma}t$GdFJeRZX1h$>?Wx>$B3?pTsWDCJKS~XO&R-hWk@Y zo&ew_pOK(8D>q||7gw5NfE`LjtcbMeJ)LXa6kfc%w)wj@%RjueU%uuuQ)wTyMCU#b zm%aE^eVH&?4-n1f8+4#d^#+Ej(3?JxIh#BDSo{bsu>fwm4Is0^WWE7v6Wi@2@1VZG zALd6st;7j%FP^=5ag_N{!dTR6+3vGxwV`vD>TWhC239t3lUfW6m3S}o13V)usgZ{Jn<}KTFRGggMBW?@JFxt zaB2ujZXiA^0hfAsMHkex{S@@{41HuU;z?wgF8OAy5TEv^Eu}2!Sk$J0MRzH_b*e4i zmEke^I{VG3R_nR%8U2vC`ETcAvGuKM;YsBqlkj8nwAa8No3{7gAX9KyW26?@BGM5Q ziTp3grlMB(Zqo)6NLD}by{-ir>Q5Gsp-!-P#RWI$$Y(Puw7=n}i(8g-Eyu2O0oJCb zEIIxkQ|CB5BFTnZI#}=MDm6-aB-D)BBrn7zZZJhF!QhFnbJO+5WM&UoHqkV`6eOz` z>?9umDNQNyW>-U5Q8@XKfhLLa=Rv4;$R%TZ_3P_9Z5GRIl^mU~LryWSz>&^Zznylt za3j7>2aYzc!UQE;c|Wb|JeeT;v|K~oJVZC37hi80kJZNU;?9)c!#`1%(xPA-EmZ)P z7ZdMr*kg3>cSxj%WX~7h{)-(>zC+LOz}zBCyZ36zkN8Eyrjpz#eRZK9bF4pz^S%fR z{tR;e-wjIT@0q)E$rkG^xK*XnmgcwE*dJU0)odvS(XX0_oHuqapFuA_Qj!-llQA9k z*?uKIL_rHIIS4#7JwtCt$>{#OhuBJbV+pZ|6JJ>DI3TNyX%}K82?ui(2m%UZ0mNs^ zKnUUk=9I)DDVLFWC?eh>tN6=`4hcc@F1T%%4cPOLHbMrNmY;@l913q(^j2I74`54@{Rv8MAg0A)7iY!0onsFg+M#JNI?x#MI!E z^ZOpA6uV^6%yUPi7^H4x<+t(gUl$n7Z2;@<)ok2vs1x3bmIW@N$Qjl6(KtA4EpZ@p zIGO!#(A;%cZPK71+|E1*06oIS+cN)ryZ*;8IIyM|Y7x&6$-qcu28Xeeggz!V%#UV; zwIv+V9-MXxP<`K~bAR#;n;W?n0l5W%M#|MG>@1j&93{O#NI3ia6#t(0sxHqGX0*H? zEcTzB-WaQU?Q)bn?8D&@@AK6%@ou_@2pzv3O zF?+kkW&hi&>+w)0e-66~UMJ|Mkpe>LE0w)OKYWIenBQOAi)16dy_D2$h zr~+j|DX&t(W|#_o-sHjiRO|={R;{4LdDny?C25;B6tU1g9QL92F)SpF*RkqI{BCDs zhw(Al7}LC-kqo+>N(lO>(Q1T7@_q_)n^q=Wgl3Ontxnw^{qt;@wihs-B_mgN)y!X$ zXANRMz8xwV1y?+S;%3N@BVsLN-(+zhKDG{8o&Nx4!Y!_$wgwJuIrR2PYr>BKtu>vz{ppF%>6-x+!wbz=RqcUnO5dc_2Le<~L-gR`2I zyw)2)BkY?Ng;-o2U95HDCN{vZU?;}(-wW!de>Uv)qvodTe6f|?$9&01i$!h%YIMdo z@#V>ZX8c;R^dZ4d)SUm#FoWR;Ibwzo)JgA|yxA`g2^r&%6V7V(trniR>Roey#?c=- z(Dl3Et@&sR`jwJhu!w}>2BDHLQdixT+sH)F>O4(*bsF0e-8PF743SN%YhK#+``akY zlQklu+ibv!CPiFURoQo@9{yAa}(Ysi8>1{D!F1Tv4*jtQ?x}h4WnUsjs zjDkOzanQvhtupl>N@fOV&(?j1L~|Zr?o-bxsc$lMnsct(3t|U7!)B>xZ=TF)kCXe+ z%q6_P>hl}ip|gGD<)=LBUfQ#M?0t8kLpQRLFJ5yQVEJg@(?*hc`}r1n%f-$?h9~2m z_52(5kLi)%f{M5M;29;eiv zTTGE+&UeT~GM>l}xTotOc3F?e6j;x;M4t;YV(M27#>txvQIQFEOHDyj(~s%EigQ9S zfIRlzE~dy$ej03`eHd|g&#EX)n*iLS7;}2XaxOCiT>b84cSmV2U8wqs+6$1yU@DeD zK0w415IWeMYDPx&+#X~KjB2W*YF!-3^_XppHg*)Uh%nw*l^`B!H+7Gaq>R0$HCaC0 z554GBAzrn~#+BRc7JLY8SNx;oB3${ropt>uN|+A6 zst2J|ZO{5KmWXEl2^??vDf#fT3dEa(RX&7R;ZpIL856WW0$N{GYVt|ua*KqKN&Zt0 zQ8snNczc7Q+K?gYI@itjdmlYo`MT29AH1p=;p3g@kXf~dr~d9RmyJcN_i%6|kVo~0 zZ7!wDq;SyC9H7dwwP|j|y&&yt;OvG4S8oZwidFmcZjtWY$ENTaS-ap*$0=SKb~~#+ z@dp;`@wFrhdC~W+{00TMuWt{Bv5aqQq+6&r%Cy9yr$!l|!*>~fc8_AMvq-HehZ1GZWjKfAV>!;yU$wvIKVH7avTYk)1L zvAGCeQr&JYAKhiRBy^}95QuKlW>26uShfw0uF|xH1)sjL&dVs3@BJwqG=g>^9>?XG z^8R~$ud|4drH>8`q~97ie7vy};|n3^|IIp|uJ_*hZoqqFrSi8!n&Dc&Eo#f>PmseA z%xnkQmYimj7LD{+NMb}MA*8w_#A$%RA!9@->QYHR2;6{+`S#8cm-4_cV?CDFk{@Ol zrZ2HJ44O412mJa|)^MVyn-U;n4rs#r1xjT2gOdz^-AJ2-z2ujI2^HoOX&tSlePBA= znRG_l^93RoPz7ev>j>fgjEb>@^F|L0Kz=4_c{>jTQPx@Y@uVd3>yr6+8#<_vsllF( zj&3>cI>iV*DORW1SM)wUC^SE|n}`#Bk2RG;gk>S?v#a;;`85%%V7J(#KB+y_g`3v( zMQ`u1r+65Y&4MB95M1ScG{Xp11`ATuzBcy-nS^(TFf!)b*5gf_i&nKD(yBN&?_-C) z)-@(ZWt{+T<1sc|7krhlOGuH0cb=qDogr$v0+lo@^Iih1w+)igy2qi-sctQauPO%d ze1=-d8o6GW>Brh23NfPElGxjg<7THIF?f3js&bY>L@bF=yyqhrNmXJkBLi#VI_Bt_ zVfG`(_z$UWGZJNQKW(klGxf_qL^1o&VhJB7=_cs6G8~J~3+Fc0wUFbAtsjDJze z<_%XgUuaGT*~q9As)|iKcZ{TOWB0z&GecWno=hsDff4*n41QarAixfUol7-+L>U+0 zOxV)9h9V!1r&z;DhiErvDSFYKK}%wqkd~QDx^Gr;9Z+`51>7`Sf_gh(_2l7%-SU80 z-L4|QzYsraWrfm=bkv4C>yzHw&wX5Q&r0C8xS)hs?WGpYpYa;xxLjDazl)gDs4T zcVsUq7}Lh1(hFHVbd!6k^0*R&lZ50hJD;JfW4l=D9Rtlhw_3w?qx~ni{T72?dAKHH zJ|Se#+PPC&QGGicWc6+ai)K-sB%akhOU?U-bxwsnC17xaM#S2mx!!9>!Or91`OH+i z#p%NFKWQBBn%t7RwfnCp3FZ{n|Hva((E*}cle#@*TTK9I6C>a+W%-gd1FA-#s~py= zb@m~y1fZy;_tedf4CD9AEY)-71_@L^6i)$=wnvRwvq-bCl|E z_ax?(tuQJu{uc`XiB6G+CFh!hANE}F9wO=Xk?~291L@Bv4^iYvn3-1;STfIH&b_2< z5(}-EyaUaM8Bk@ceU84=z-4swiJ^1u+FJv6Ah5uG4Tyfz zS;XyQk^$x&v!hLuQG`IeDJ8>HaEoDzLUVnG4AvpGU0;QVc z<7Pv5xK2ln&vPd*dS) z3e-Q{4Ts*=-6Z`_r@F3qFiam=up}Q+u3M_&k)O?0oRug|a;Uu&hE%Z>JMLHFC4>xz zGvpkzQW~7cT@k5MKIiCU|86n=E{vzAJUPCPriu-lDyAQ$=>tafu4iac~xCKSP>Or{U;0`}_&4Z6+WJMSI~0pfqZ-tZd8HY{g*!Qc~{ zy+00l35N$=CE_u)RmTIfM7`i94B4=%X3dU|IN{i;q(82TH?Z{~jPYA>H)Hq9&T=3{ zg7X1cgs9m#eMGmOigT<}hA%G=zN$uPapdffk_HInMP0&2$VQgGQ_4|zFKwPbo>;~5 zKzJY_t?Q@8r;5ICZK}H&R)wCYTzkJ)g0LzR;>eYk*{of4zX~eCx{_5|JLb5Ei`eEo zH~aB;?pSK>mI-F2!gWPo-Obif)h;T3v_Im=hK4D}7^50K0FAyXQ zQSRX24KpHDFINAcP66mm$_7(|H&6{8i&?WGEhT)B>R8`%@2&~{7rGRGFcd8^;Yw^d zOHsO;#3LBr$3QW<5=C*_y`+&p`f)lw(iYBgHb{MZuG-|6s#-|$PGgJH& zvk_xI*jH7G6bhw208?(5)VQ*kMi+;DR<9-hL`CauWBRT)84mgqJ#^B&$k zMCETtq7QlAtd!r}u!!;HrweW!0eOqA>JHS7#+xAt+q_`j>KBW#)bhyzcbn?M;z>n-> zKUOoZCPe?)&!}x?moE8R{NuYG{ng7FlaM&@Jpb+%-tF>Q|U5GsDRDNyw=1-_#1f)9#z;ok=^ku)1BzeG7^XXm~j(Zr^x znu2Ko3ERx^Hnp4rlLG?+FpnlS>;OE1sK7{AcVui~v2B>EMJ4rnv?1K!$Q!kX7gunK zx?T9A)pDzCk^{p1=X$UjQ4jNKk+4?O?9t6m%d6fg0uEh7;24``!1_HO_AU~4Q&}g@ z5&GVB+37U9)vAD`EdX!@zFxGUx~yp!byPEU13Jt{cdBbuNDp$*>KmJe|fAa^yH%cva+I5>>V z-Rk#)ab<;dOkSc0Bd)`=DA`}{%u-P6PK!wvprk}t#?)EuM(HmWR&?&~k$S2(!?du8 z)q*agu&Tnkf;EkVr}#2MIoQD~-`>y9$81}B7f(sJv?EBNBidT!uEkdTXrtl@$NhZ% zw)c_|Pi4*?S&yglIp;6&^xNU%V8`7iE(&4Jpz#vFYleM;s)cuBzgtv+PV&8w^-SM_ z<@vEl;RUSZ3dQ1J;{-<~!!u)9FoUv)?3V#T>%T~FP+Z~5_250VV zg8dn=VmVpYo5axxJeoE1*t>k#eSWlIYyKj*+dBQ(_YZk(QhSkAQVnc6heZA8`k89QZ(SFmL#0k;Nx7WJnkPq z{Aa88DrPBwP;$2Tv*R7w@n}s%G{61oXq|AarUp#?y)?3cgZHt5lu3f*?8}1m(2v?#~=Z>9bF|$Yw$?I!rA;o8Z@7=$Bfd{IZrDSVc%uNaP^}BaDj> z9?sM|Wv`)f%S;fKSN4ERRaFNi!k24`F-V{Hj@Mm)+LacV*f?`^_}WFMTXFZhYtEru zLC-v)#}rRvx80=kcH)m78__|wYOGjyibRY1ysb{3j}n&us>2C3X!8Ot-xh4dCm(xY z9fTV+d2w#mcS{vFqP{P&!&P?-M<^2MpLF->pqbfl+fTFT=EJ&DUf0^k0DIgIHjl#$ zOMPCMh`-pO6{dn_en)y5e;$-T8f5}$J)Wf?bw&Sl8HM|xlbW-~fWWoxz2t6lVM733#Mu{rjYWZ4Rvs6ogi%gz=`UZ0b(Qe#8=uz&6K@^DaGXH}?LsZm*fZ7U@vFHVb(& zLKKFsdceMfARJ_FV}ePdK16}6fz_9$WTFQiDO)IFcG#?$uy8cmWf}n%L19lqFkh;C z)--%!{<*SCU><31auz3!^lirEMaN+3zPDOA$cn&Kfr(Ome$qD#L0@O}%*N~ai6yh} z0FZtAe!#fzQTzuJEq$Ix2eiQLIz&2{tnE`UWmI$;M3ys3M^S-N!@rWk6SABuEt{72 z?R~wVfyqiwh1sSYh>|rX=?lPfn1qU0Y>Ru*g? zU^NCfpjRlC8_L*SaHe+$qid3t-$+{nLZv+8!!Vg?=FNjGZcP@=dfnNsZ2~4p!W8D# zyQaLSLVwo_!E50{iM~1|M}xS$Pp7O~9GbmYzjJw7z{xCQQTme_6y}vPbuP?FIg^Cp zm25U*{4yvReCG9Q`%i(9r4gRX?a9o&9jWgSP79OG#S2L=zm84WC!6iCGCI?$x3In! z-+j{LtiqfRcv|F|O2E@r3v~k4#0DEW4Gp^7BSb93zcii*u%cnrE996#;(^mW$X;)WD(z>J9e5oQfr$lr|h+^eqH^G zyAIRy8mWC|kp`Bi#fBc&@jh?B(JtCYii-X^!P`OZ(gw�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 literal 0 HcmV?d00001 diff --git a/1.3/img/hm-sensor-rows.html b/1.3/img/hm-sensor-rows.html new file mode 100644 index 00000000..5e90eaf4 --- /dev/null +++ b/1.3/img/hm-sensor-rows.html @@ -0,0 +1,447 @@ + + + + + + + + + + + + + + +Sensor Row Count per Time Segment For All Participants + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    + + + + + + + + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + + + + +
    + + + + + + + + + + + + + + + diff --git a/1.3/img/hm-sensor-rows.png b/1.3/img/hm-sensor-rows.png new file mode 100644 index 0000000000000000000000000000000000000000..c8c6cbcd5625fc6d927da4cecead97eff72a343a GIT binary patch literal 188334 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
      6|{TG{#ls5?&2u1C8L zq9nHr|E@<|%LL_4Vko+KS}6oUbfCUd23{J+NXB}uUIrngb@5COb=bT0Z})7t035+` z&17Q@nySc$>83RFakgkUfA+VDZu8t7F=i?SVHS{a&TCJ{xJoVvQFAMLH@LNm#XCsb zxjh##vGoS?8y1C}*w&HhT>#3{)r}7~5!4d}B!iBGz{cDWU}xx7hY*wCTK)^7kOXA> zMSWBs=W0LTEzYb%J7<5LJTY4DZjciV3$?#DH0iSQA+-(7I3ZjfCPaT9hwtQn-+B(} zMC9lydye+{O0Esk&6FQ)eub@|Mug3$vsYa}CK@QMU2NEBPOO4`MPsAS$O$FQg5R&| zHjb^*xk^l9!+cFN^H@$GN`ATjWf@OwcmR(js^-hk!KI}2%tGs0XqjiZDgT7Xw}xE5 z(!qi*-M*L^lbIM(Ah~&VK>Q(_H)Ptq*DBH7Z-L~ zG=U1(O;+`i!el`igX)#~C#A=ho}~*I4$VC2n@-r=Ilw-?(|SLrghcP>xYZ^tzmY( zvA?&ANs+x)mL2(OC+M0tpO>zC=ZwElM-ManYdYuC$c%Dc6=k*l7h?K}; zw$}nvLs(g2{L;olhiA>9!~i z{q9+`)F+e1#Cw(%8Hxx1Du?bi63M0A7-8Cz09vHVjN@M#2^9kXsp@{QT-fRjOcAo- z9w8e`GVmTSVPZf&hWf50%gPbpUv>`GO(|FtsIN`mJa3j4SbLX$ZCG%RuF~n2W;Llp z7fn9D70s%U>1n+D@l5E_c8RoXl2xgeLg2WncL)tYvWl`c_DjvDbW;_IA;{32O8C{? z)b%B0(MJ?|YdxZg*m5!L-Iak^I{ZzNxTE)C+8C*{!hi1v{s=uvPWDk;Q*p(lv;u1K z^|2l&feL*VkPEA_G)AdmsC%x{&g%rrH)Ⓢ*;aj`i=4;6`n|vcBZ6$Pi05$G2U9^ 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 XO2>rFh7_#>{|t3a&y}3H`rH2k;dDbJ literal 0 HcmV?d00001 diff --git a/1.3/img/logo.png b/1.3/img/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..73e87d51e7ad5f7edcef0121b2a280756e37d4dd GIT binary patch literal 12460 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 U1Lma>kfn%tx%+_#{d8T literal 0 HcmV?d00001 diff --git a/1.3/img/logos/dbdp.png b/1.3/img/logos/dbdp.png new file mode 100644 index 0000000000000000000000000000000000000000..facf5fca2bbc6f6e0add25e2dbd773d94d84d3b8 GIT binary patch literal 6023 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 I5P3ZOUsn`6;Q#;t literal 0 HcmV?d00001 diff --git a/1.3/img/logos/manchester.png b/1.3/img/logos/manchester.png new file mode 100644 index 0000000000000000000000000000000000000000..5600585e136d808e96b3bb0db5122652cac2a09c GIT binary patch literal 80689 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

      =~t~JAGx8t7!Z>Y#i|9_z^tJ2^b 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 literal 0 HcmV?d00001 diff --git a/1.3/img/logos/monash.jpg b/1.3/img/logos/monash.jpg new file mode 100644 index 0000000000000000000000000000000000000000..70a68b8b7f233f26d99a129175dcdcb24a72bb83 GIT binary patch literal 33408 zcmeFYWmp}{)-Ku;cXtTx?gS0)?(QzZf&~c@+@0VSATV(W5(w@RY~qmMPS9Y1OS0D5 z-(Gut=bj(;-0#=vIiFciRrjn>^^P yO}_asKfufFUm}Ck=o=004UW0FMsDqN1{f_IjFn_CfCML4}!x)6%_x z3KIm433}`WNS>wu1r7Q&o4*b?co)v0u=X=7t~%^?(4C`!fRl;Q5nbfz@likn}MIj6lA^PYbn2z@XfcLNiIm*D_?APyBxS71|7-U4LH#z;E-aiffpn`Nub{ z;9h_fI~V*}k@~A98cSBgN2QBr6j}Xh3JaBT9)TK=PG5BbTENsroGOA775%67h)Obt zc?;}JJgpkgIMI;Q1%NyH2&`%4$C=Ao2y?y>C@dDy>%q{sBa;q%>@ zTU|73@~qxojYFeF#~nMzMidr)M&vo&g|)!#0A%Q48!bUMPIyIetL+x9#Ez;gn;m-I&z*Wrqk7Y>1ZAsm3w}v`1S2E&G zfjoXcqNzLDk(lUI3UocMabvWvpXRv~5cLx-FULr5pA3T-#^RjuOG6<4v>HQ)C{#;c zXAM}JhGWDWd_p$)aqs}ai~8`)qMNo2P7qpa@z z^_8Mf_2t@^5o&snJP~u21B_pippmn-zw>Nxz=h=DUnCG!mJMuc71#mpC50M(fw1l` zg3Mp<*I1}4r40~UnPKDz$DimAu&xbK`k-8A0q*xjZxon)9Wh!Bipn$aOcYYBOn2Lx zK_O$G1&w3r!3Vii()T~tI8DLkA3JeV#E-Wh0e+`_bTpgmwN*iKxEGw2$gsN-$ z0q`QW&tS>b^yUOUe$e~)Ft5#F@Rf{Y%R%`=1l@_`OEKlS!zKAQyU=9sv_p$QxtNDh`#tf4_r}D?syk`As%zoLyo8%=PfBj}KsCXyqRz^Xr?$)S! zdnWe|Kr%;Y2E*d!xTj>(w10L(>SywU!dJeC2kVFFUd;>954P0Qmp(w7~1 zr1QRVq~qN@lVE-vXsEHf&{1mDKWCOL^73ruf^Sd7*7=eJZe;J3TcARdv}n7U%k(N@}&6leJwu#)<}mr%Sy_|a6?Vh ztWtqrx6e6n(tS<*1Zls}5Dx?B<0bN3S}X5% zW3^AjIu>^5*d!ke(ENZy6AzAt!wGAD(m< zXuDhK+Wx7@^e;0@B9vtw;-Q+n+4`jlx2(Wwes9qEScaZ3-C<#Ul?y`#u>ug*9wGKA{02}pY2wGWH>NytiH5ZJ@p*ewbTAu%^yR+Cf|}=bT2j8v9@A_ z9mx$u^I0*#N*^x)UcjD)ZxGN)Ix1s|O8bIPHH4I{5SEV z72;FCj*?`_4S*osulRy7YR1|a%hsP}(|-wqpfzpu6<%c6DWSCDpzswAn2f0e8ZRN* z+JNhGLHP%YHsU&Y9A*D;Ab9F5dXF&wSnfNlnKmmi{6+>JU)MS_KN=k}QMqRJZ0BNs7Zf|z zK^zbbpy+omm`}NKeEQTBpI4F;IfwYO=c1VPJE`iCxE=*6+&v|c3h$y(3Oa$GghF&` zOY#_J*E!tGPv>m_J>%85FsW=YAhce4k`iaw6)eO4ldryV*Wv4RZ;2|3w@CBKXgdJQ z=Vq$*8bsT6t|qIwtvsvt+KjvPlRa|rf5ZpS6WAh!IqIziT&+LJQY@v-y!|j4g@es1CgP=-o7BeJc{KZmAj2f|TEIxM3IqVC=oTIx;YsM;o9fCX)cE(~^RHpwD9=MS&cI;Lv{y)HADI1y zSs#Hxl4)DrPV_j_wrx|uj(_9*S?8~=KpUg}JPGc&msC#`SQ-a4uZQ||e!@HjB|4#p zi(Ff?t`b2pBhk{_B$gvO_sO|IcclUgK!iW|r+;AcHcQ3$`uoH=l>JJ1@y^x#W zlF69Aw9oO#YNcu@t(IfM(agYzjZXZgkH6^oQTapF@C; zC9B9#U~eLN9=mnr@P^mCK6Vx8E-KB?tG|U1W_fJFb1&ktLvLiT-eif@jh#lybntQB zpT-v?uJ2o#VvhCe1))DHUPk6NYdU$bzAg-$d?%=t;;-SV`W%n&$V zXVyeM;QE|QZYR6XXE;jDBSdVXovaQ3$Wrh+kM<2wZfSq;nf42Zn3p&|GRtwqn4)SZNayvCA?Fk{Sl*|1wy2 zKcD#G^KtV}Tas>X_ej2!UE*f|0MD#&rQx8fP*HMAkfONt53aM?-qpThcW0vEp4GsA zS0r0gVDM}X(eJ5!h!GrR@EdWR;EH|@>rk8h?ObV^AE^mBz!7?fjOyS?aVkRFOyipT z$L?0~A}>Fdd<6h$Gi)E;R)$i)g@^0YJ^YTs(#(DK%GN@qvZXQLFA$Bf=>&Bl1Q_;t z#rnUL)?oj3k9mVQi|yz~9)|%|0;aPdAA06%Y(Ih-q8CmvCewHxg_8<9T9%7+c`pDopL7EN)#Ulwl#HMrFYvD^)wNZ==Gqe- zchr7zg&Lq|J2z$t;8tsPlpbjM)BKE+63QCWL*TP+k-eY1TgD+;n*y)i-(k)F!d-{+ zCUU`NRuf_lAgK^t0^)nDX(R59$)+H<54TdKJI3iF>^DtkX?8a|#qP>hdnoyss9}%5 z6KGtH9F1)?lnpu(FaKoqYJ&{WBTXGzYm{(+UortdQGtot!n7hRZh}xMZhXSwg32r zQhZD2^u+9Rx$akx?JM*+=h4*_(Wl0YRQym@+NvhqT>QZwm8caS_KXA^SFetXPuCB5Q+hI z`etWv$3SC4?9&yhgCz!1PthCEUmgAZfW@R~2>g4~uNq81;BIBvKilC4-Uj3*F9-hf z4AScRyL2N$@_(K|NAb%u{b%$4Pz(H1LI>yHQ#pUg{hi2x!uTH=#QzoZloRX)aQ~K5 z`whw;88zttIYq#VmZ^&8>jDM1u%bxhHBZ$tJY3k|{F+)-W{@~CGc1K{4K7aTQv)tk zClckzQ-ho;GOSc+Dw5c*D{uilRXtT?sQ01Ku$ZEvfG(h?-j@p0&__iDsi`spIHIso zQqdq)oG1jORH#mXBKE0npXeRV9Z_gO$fr)dY%h0s)ZfQ-mlA zz@~&ok^gBbNEmo(utBDO)ION!GwSN%{ZWBc0O&)5%wz#IoD?xx02TulK^KpixvsMe z7tm#929Tnn$aV3cMxaJu(|$L=Qb<1a#9V7WjA$nLs~1(8z+V^OA%jdAb@6los4mrC z7u1y1=$Us}1wOgGCO|LxR9C~pW!9~!d6Ely%9jC1fyjRh;cvfC`G2eav+|^P0So{H z1A>A=gn|RXKtVx25ex_l8Ws+~fG5Yq#=*s7=jP$X!l$6*;N%je5))T-p*EF}QcI}$ zGv5kA03Lyx-37xr%_h364L=8CzW&Dlp9(FA=pyPO^p0<0rF(k6?!gQA>uI97SdL2X z38F9W(M-Q2!l&I2kXXiBe6ovm=+A&W6}H46$1pp}^8{0Kt^?|rooCP9z@IYHQWn2( zdo@ng^Kkt*OAt|AC3Ni*b{0Ma8HbTPDDyKY7FR>@PwJy~DV%-@t zZtvcFT~nClKzzImNz&mfwVQ<;`DRT6Tph2hO-yZ$_Xy$KAH@ve%jc4{68IceaTrrr zGJiYw>k=s@x+n&{ty8jT?OhQvMD`j5wx!IU{w>vW|ECMfjKGV_T}`1ESBOGMk{HcK znD`Xz$P!ZVFG&}Ex?mbU0!$3`$HV4UFUK5mw;LNX`b43+$E0vnYYFjLnq;(;b6^&2 zc>5U}^sLjoDz*rykiDk3pBqcD?Ps7~m2`6wB)>-n*TB!(*E6(K?#k|Sz3!P!#E2f1 zWXB{fOeY7W&cQ{KhEtl^#Cf|e&A$wm!ye2A==KiW?bYljLf5B(H0_|U!s(evA{k_T zNFyfy`I7ROZs$Uv-X**u^gTG56|blS!O`i^iR?1nNX^Rn5h#BC+{gN2FVmPLJEC1} zzHt|!f;OK#s927?8$4DAez$dI{ro%iY{Dx+^NZ2u21m{)j9}@+_|a`n=?W9qC{5jX zwl7yL@$S#czpwffAq_9uFAf%&cGzJ4p$XN@mc9dixHX!CBnh&9;cq0@wyYPwc z@{jfTvlW~j1sIH2Y|3!IcnqZ3_)M%ma!MMKIFdWp)6?%!^zmZ4m zb-rLl*&%!Pf;}yD2c3edTXs{rDkRl;x;H^nGCX8aRdXax)i%cWxtnilIMf}oX$2N6 z%L1&0BRrzlM1atd%OfyPb5@s^pm%1*o70+;_+qe*SKvDmt6WKv&-+aAw+Y%&)n7=P zl^s7as~gdH6Xh4s9(GiwUUqB8boK49Q^XUA4Gosj7IW<`rX9ALC)qMFOEsWz%546^ zE_0xTv~r1HkorB>c^|X83`y)Y@4<`=wl4aqB131c-`~9*R9fAF! zt2E2BBMX2ViJVf|@a$a}XleahTY8=D+59cE*SGZYy0hw^XLF8hn~e`%SpLtHLoUb< zBI13aKnA@8w;Ohab75s~?+0kYNGXe?49YK~q{llTW1Q>l;N4K=9)R zW;%OSB)($zElw?s=Ngg>s?$@tOT@ffO4>k~sGrOmDO;2|^kH0m;ae^+ufm}x48rHFBuD} zw`ZcMXvC@H8FN<~+aBCLyueE;=`N=)s_?OjO_IJ|3+ygb3gBvC_6N0nADPwj(RsLW zXu?0!e*^?0MdC`uZZSN1Q+DA#8jA1VX~`JCG(=rEc_(b=JY%QUOV?p6W|x%}?;>jB zc(+L77WT2Q+tcjijo2$Pq|dwG<{GnxrVCJ{KWxpbMe-y{;o4MDKLW7IHDrlWjYo={ z5n>^6I(8B3#l1O#wfmQO|An01nV^x&+U&vs6Zm)}iC~4YLJOCkIccg)-DlI6(qi>4 z8h&8`&!E}M;G%$6Wu0#j+w=*$)2 zl>e)xrwt4$HbbEwEtl@fEPby+6kVw2Qt6AG!Ytb>V=LLRB2DV@bajRfgrcbkjSSV2 zl$evpn5RrOj6%r36ujNwI}bt1H@rGTpNSgQaB9sig4v#HDIxXGl(^~sukA3B;S1`^ z`Z?hy90wx&T)Y`+d{x1@l0DI$H#nhhkOpV5>QUp*K9qoB-Ty$LSWMIS6&7;{L}-_M+d8@HY_r%N&l-7o?F*cktV z|Cn!{RW&>BA717_JX?zyvRsZQ$~j;EIJe>TkIIp;WFHcmlz3*UHW$bq^A~v8lJ)oN zka~L{0m&5ZoVm*>)UL2)%$;PrO|yv=+2J-^LA z8c>vYDmz5gSI27vKS{@i_1Q|KraBqoLn2wP&2Hasu9dUlDIm~GKLL|S#;q>KT{8q` zov1PF9XKbUBmjkg6FV442M$O(auddD8zE+TamkTe|64HET#I(enLR2X3sO!JL={ZW zT+I_k-&Qx)ODtuBAA$a~X~K5_(G&}sxl0n?KZO_yT-Ezn&nD& z&FB$$AH{O`4uy~#iBaD2M#Z!e;(NN|5dP4`mYU`lH)qIq>G?X1SAir^WCk8GpF(wk zsSald(@Wus!we%alD_aGc63b{R&UX9+2XPn-Osx7^*4St)T65b>_*v@s!;-=!+cGw z+kWmPJPxIT>O{|94F)DX?$Rf(^FZ|m!p3KXXp8`acUhO?^xVcU)qO1?| zwuwyY+5F!D*c>!d(9rHOQKg5;IMC>XVtnKKS>Pjw<%{fei;-jQ zfBACih&}mtQjpv5!-zYyNTY>F`@b+8@;zZetxA8!z2sYj9RE*8KI&y0Pm8r2Yxc2E z3Vn{{X6b3CqpZ1iU4DQEJ|1>0^lT0~iJ3)n1DHMq9k%#t_gK>B5Jgim zsPG2zV|@Xc@UnslOp6*K^Gztas8pHs`2FxD8TX*6a;z$28`5Xb-;QknBUd0Cte$FH zoq=qq{>==KCQFR9RkB#n%b2iM^3Z=5)?)?wU;+1HZ3JfGV`Cc*Vgas2!?As*V%9SS zE##`&f7+?9ZU}CukGPx==WiE#J<@sCe|DC*ks9ek^n3#P?V>8&~y#j!EX<0K8IIFf2d{g2@h)%cQ@-j9KgX#``RaW34 zI=Z6nt*OZSzLnI#wS^l)oLR<<&c>D)XKuR-s`VVIVv!#7v(RV)ptLDn*1pU;P&5j_ zM;jTeD4=#{8hOC(ygZ^i%Dwkl{Py&ag2I+n9#!KU>QAHGn=F~fe%TT}E`Yf8d<8pHwC5y)P1y%Bc&lnB@U%v`xxm-tP=}ukAzGsDi+JrC%_0vpf~-4cYQZ66WzvgVcRzk>Fj2%yKKbjG zwLN^=Zx~kBeI>%z5@0eaZ9 zE=+Sn0UR)9e-uiirly7~ltom2@ceZV>vwl3nNjq;4pg^|KyPUX-4d-IVQA-YCiST55wG&T_r-yi2oV)HE|6G%ToxPg=w=MI+WXqq|f3oMX zq`MZ*sU}wx;bN4G6cx24XPr0syIgBe8KXB;d|iEq&4-L_Pph&&LZF*-Ln}Iq!=8C{ z8cP9j*C&Szu|}@&S>`EEm}Bh30r|@lOqb z{^U!=r=~d;-tx{XJh*wMLS41)0Uw_LI>MSy-+a{v8U(uvdptuy? z^hU9G?ge+lAv@ug54w%W%m z40rVKN_7e3cg2d?%itosEr<|I;~m#Ftq#I-f4oS1w}EURkj*-C)vHO;Z8nZh)XOLy z-Xo%5G}6nY92TqJE2Sl=T=DD`b#2prESXBH|Bc(n=RUGlEaNOT0na{4^BH2~B8_w}2 z^`)hX<7Md=3Y3hs_6^w)Y?&nXdQ##V&~|ZHvTM^`{knfz?Sns6JOX}=OUO4YZ*qFW zE?~8ffRpl1xM!Sxt&9yWg-YD@!#5>6FzXdVW>6aoS<2KSq~6={SPxSWo8{3|ZBDQVvKUBO*S_urmk`nHtmB$v zn_!+E^(?(8baTk7J-qGY=jmDEenma^A}_+S=m<85CjzF#By{M%@q1}!C0q1aoS*(Q z7B^=xeQ>wkRqok4OgW#RM-@lIpj@CfD&@@G4F~w+mVLH~td-!{(!^duP*nIZNn=X! zgiT|mEfQ|@YzB`!dfw>RjF^(xK&jSY!i1=BV;$gwPXvS3z1T2>PqRP=Z?~9j6-d=~ z25k|FS@c`0YG@mpqe!E^3nol?`^>6gzjr73fO2~f^rdjz3{zBuKfX(rO@`I^jPtT* z!Z&Yth@PSqRqsPVicfKv(Qg=rz>x8;?=)~LPnZgdyb>faF=4(anB%1GU{SXMLm+nZ zLL%>BQpEL1B`K6xs8^R;-I};~!TNK(hC=mY7~e;@n@T%|dka^9fkJze7*p} z*A;AxPtWbKcy>Q1nC!U1;ripKKu8|ypH*+UXU=FDmU8NK)HwKnfC?zx=kr&*EX;yd z1S!0uu9OonJ)_swEAf8L4hzv%hdczB_n&0a7uO*?ND^Y&YfOxqo>I20-&)IwEyj9@ z-V=3Gy#piF*Uf(Vc((I!yApI+=uUtT9!=k8`Mfq|LXR+Ch4oV!1`DejC}KX&A@iyz zYskt&Plu?v?Y?(J(+|VGuIxY^3&e5nBCq=f&2VYc+9AB-2VZ*T2E8AncjhlP=+LrH zO*wDj>Dk{5ZgMx-JVh$n*R3>P0_qPsQ}FjSZ;KLni`!UJiZhY2ZkHnTi=4S9#fXd3 znMVXCipejdHj)gIk`*D1vC-OU_HGXT~w6r`Z}kc)r9 zTq{Prl}QZ zes}-Ve-t`j?GgxwPv$-qLrGRJRnPE|JOJ@hRHZTaxXCv(l+t@bKonQd2=iuf2o_Ny zQpRtMtmp>JJS``GdpJ2wr;Ef>II-cd2=?Cw!R+50pj8UAYDKg|yV@A-!L6fyvW?_) zeagWduwllVtn+bvW_!>5qy5-D4+T4s$~-I&lxrO6*bT6gJ5rtvUP%uK{}|xy{<{7y zJcmH1NI->+yI&i=V^rvgZkG6uEVL#@oUv9%N?5dHaB#IIdp6hlNM@QGlkJhUJ~WV2 zN>RJ@4-8b?WA5%GYB6(mQ5B~CGK+aM=hu`}#^coTkvBu@G||(A$jDiOJW?!}T54D! z2-JO+SM2BrU+M^aINJzBi@5fe00D|B6O>#rD^Y^8M1GCtB%7SYe4fB%Kw`0MQ%Z$> za#8hd-0`#I*>|Rthk79}Ldg?JR@BSw=J82!Z$}DWH{0)rl;ak~*71K<|LD69ybRsn zYN+5WD@9YGWy=tviQ$^R5{~udR3O_VPRQc6`i znhLtp#-1*1Zyo&`6SUQRW(CTu3*zuOtN^aip2geu?*Oa3ayWoSs%=F z)YP#^8#2HKvd}|Mx#Boywy3L)?xEoO z*Hldn`_uB*RpDJD<`jM6kT7F7y}HZy{!MdBPIRb`z&%LDoA}$_HY@)oku;hov5m$4 z!;-_(@Rn>*jJI1N2_~syqo|WdanO65a+E# z6O16n)1gyL!*udcjCrzw z@LOyc3{-525S#Ye+Hp@aPnz1p!^NIz=`vpJggKrghpfgx&^*$q+#pByp3T-ko%jdq zU5Ji1^Yx;TGHGxPBtdFXmD`$V?1}=XHBZ z?5yyh7gX`axm?y4DeA*Tkx%RiW2d)nT#vVBs8Xmh(&vVjGb? z?qHmQHcbGblkl+c(bM7P$PBQYz=Ww0OIAGNbKKCp_p`i6canu@K!=5}zj9?jdQCiP3>KvLd z;)9+^7wbI!K-N#F;RucrN|R?6w_(~!FzWRW0(J&C>cfw~Q%mGg68)yq-1C7%Exb>s zV3?SKN8nQ(S;|^3hgPb&R@5NeV4WI+nf9(|rCSz1>3(M5zO*b{hmGr&nLh0sbC>di*lG7V7ABNntKQS`m4B7#>MGCPJl2q%5}2ryTFO?O1z7<&klIpl5AxpR4O zx?SjH6m>{egrDTRovw>N0Q>MDg_F{vj@P5?<(6cd`dwsu9U&41)1lvVJv@09-;Tvm z&q>EeT^XXq{embFxzCwKrY0o#cQ;4o*t$K0Z%KOgN~=@XbTNInzwhfx?OS01Fl*q_vzPzb0*>=RyyR`^>ckvs!dl) zsJ3Nh#bL7FRyVl8u*kv87Th@Ong$$^F^NTKtd6%k<-r2;HS#GKgpQ@}tcE$Yq$N;X zByc$L;-=?ux}&HwLP^bOJxNLmM+e*F1Itudh z`Ftz1HpW`R7Ki-v%rqvkG+6%K)&Qqgl)*e6Q*y>K)KYn_{gC{K6qcKe&w>v$B1kT2 zrgBAqiM}+Nsvx(x9GT&Cq_k6>pCn>)`E^3RP|uX zY=}&kJ|gTm&~N#pyl(p{rn)k!#!=JEw!EZ8NSOk}A%}D1ZVYK@IqEL5_z;2<4<2;T z&;xOrSmsEAqA`Nem<^jqzrJjC-Bmdoen9l>>=0Vn87d3Ql(mNHMJC9j&&-a1kG0HR zK70Ezt%nV(WbYAx_D<5djqKHL(ZWbzabPZz2_F>0h=xfX+dy$v8yvETlYVB2>OhqO z+44SLhLk3?SPMjz6=ZOH;dT8e0BLQ>Q?ok7YI@OWwJw(zKZ%bOsj^Cju}`~exlTlw zaM|Og!bBcym-hoIS{xhEEKboEKVdR-D*3a>z?7sH_(Cb@)2&JxEr$% zcu*xy2@geErgW-Cageem71zue>zmolrCBVM z{ye>SP%kKP8zSvTIYX+n_0z!-oVKhMpU|1A!uDH{YuFt_sw0^Y&H~bY${sNh9mnNr zX+li=?%We7?8WeLi&KIf`skQC((I}gNKta5py~v^s8ldaPYv&n>dGmX;O^92-FGUu zs4FnBBgMU=txwPVPr~bvIB9DAHqnp;j;6;-%@fx%Aamf;*Cputwi_3k&END0Y$b=| zMMQyX`;IHrOt`T}g(}lXG&l|5`w{Op19}`9-+Y7yht;w$#NcN3gWJY4^yc#DYmXN> zw`9$dd3O5%Ueo|l zTcwl_p!?29&<3A)h@v&5z^g&>I9jQUG?(Cy5kmjn!WgUIWx?XL6 zON%R`1xE(PsHhxto-|;?2S!KyRrL$qzQoB= z5xZm$RDV-%5#h;6du=TrmW9(myccSy?3gj{@Ptvng3YJb;YGJ;;{4q&hldBXA8K6| zVBU&Zv1dq!HPbtElgPG!|ARZ)Hbw3nz;4?Dj;4DT{m<;Z#8u6K+1g~4p)_-hcPL?j zbNq2Kd<4xW_GKjj3-~olMJEn@y$W@&IyMd1fPlbwQ|G?jy!$7NZ}5W%DWBo;Mj)wSw)xf z1T&-xnIJj|x<(uds8}ju$Ng_zKJV7`+as8rVcsO_JjZ1|DhN>iS` zIhXTJuFbWjL~e$17FLx$W5vri*VIan{l zL~IbOCWka;t|J`YOk73s8vDNPbFfhjTRfj%_?pwJI$>Q1>of7;FZzbd3pwT>cglgD zX>BICzBS4#V*iSt&ClxhSEqG*2oRH?Z2M$jCNW{K`$mLnyKw3{ItQ{{XC-7wMaP;bo}W`O8= zesCVb>C5;nHztp9z;~QicTQ~;*^g8kqbt0yBuB#}2YB_dp|Elub65%&nx*$(ZMK0lTGmt~K@;6|{clLK)TWoE^5(Go7h zG##&wWBJW!+1FXAzSW5R~1I{;!`|C5s^h|f>nKyzIv6VBA2ZKy~xtMDXOTHhRQ9bCsbc2^z!*xi2K?sLqHk zRxLW>9d&J({b?m=Q!43ykLKYw4%aAtEE&1%MWlwc4X&ft)@zX-8FWY;^4>iK_<~!F zIUCaQJn`0aqOMfWFK%sMHn_XT#9kow-c4C~F6 zK+zFtj{y8fgS)Zh$`o27*BGP{lIC=pb3B7ls~UgT2J%Mm*(p+`EEM)eQLX-nnEbTi z98cBDo3U`q_peZ^(IjFCw8egh(2sxxUEjCn=&Ep>VNLk=S_NlAxIXn=VP8;fryNyM zM+Z2OPT#ioceTW7tuL&uQ|G@QxT4F}PUNeOi;ac^cr|So0GRDlfs@b2NJm`d`f%3SK1(#gX3; z^Qaxqwrv{sIRA>Ch7#tytXeEe(HxWWTle_ZQKKY`0LA_a-{DPJdw$0o2$_V#igIO(()c(P6rmbY zeY?33KNFYkkyF7M2Xpg>MzvFgWE&%uCCyl;dNR(xU;aDgKwW?RR2+*bfeBL*O)ibW zouO4oCWoW4_Pp*W9U0l%*9bx&cJcsGi0X1C8iPfX*JA!T=a}k+tD&eYtP!uD{4(u_ z3|1F3b-1P_Xp=$(H8z*P8{2bO{?n0uIZu~&D(VcQlKDW|`p6B!I&8ya5jpX*!IN#d z5p?4Gf*>T?wFok>mPhm0?ESu4AX(guZnTyOwc7BE<2$_P`=x`XDfplT(M@#Pk?bEV z9?C2c>^KqA_sf|)aSsbTJ(0JFb>Sl&spN$X$&MmC(Zo--gWj=t5FRjPlh{jUVO=h~ z`0+2k@p&F?0EuErW&q>WjfziJ$uyFz)QymSZ)4c&X`P7?j}L&TF{h@X%I{$@0l6Jk zzb#zskcU*gkdcu=cMRmu#E>mm`9?n4BGl+@oG&hJd0BIS7PVWSzULpIWwf7X>F))# zN`LV7I;y$2As))pHV^KISpdYE8|iHLRh@{PW#aX$oAy*R)FbfnjudM*AUwiPylXneo%X!dMPw4CCk51*iPPLEfp^F zMT7Y|P_cZsLS~@O;0DXBsIaK7SEICKOm%_!$SXC6_v3L0X>-(KE28?iDFu?1!0VhWJQEU1ypN-@GC zX?~}NDKL!?_rY7p@mD(!WkHi=S;tDS{~eFyUlGNrkK)j4n_CQ(kzVn9x}jy}8O2h< zp1)q*enC=ez$h9K5G#4yhP#A!eWXJDYhj!h3pJK^3I@Vgsr!H=YX#Egt&0a8Qq~ZAyW8h=cT>7yH<}5$JZ|% z-&cm+U^qKQCMweK798Nx*DaACz-@Vp&B&accxeYNZ*0=+<U2y`!P zBUkXURDDrp7z%4@q6p6=sIe7LGEhfkt6Z?$x3;9UrA)7{y|9|fT6lS|TMu;{4K^Bu z-cmOCB)Z7y-@Cz`?`Y-Jl{VBB|A5R#8Mq-!!%B*|cA+GX;c(1FbOzyQzv)zhp_aTZ z`PfPEMzJx`$V&HMii+_(D&#ex5Lb^N=BYm>bu{I#9gOjY(Y?Su3xr`#gO6Zxt?v&y zXzHlB+62Wis?CDr=58PrW0 z4=xZB^*blr9aS}Z9nt!bh+Xm87p+uy4Yr4^**~!je5x8QF5Xp(1B(K_Rts`ZL4DP% zE?aFaj`RRARcwq6t67{taUUg$36sD4m3k<%JB4GwraDka#R_Ys~@oXdfF57}y?x zkfi5Z7Vl_EP}Q9k2J#4o_HygsM)w~GZo`{O*#?cKv|d8%^GS>Zdc(z1h1@QP;Pl{b z1G2@DTm|Gz*nw{#h(lPk@E7 zh#&fY0WK@TB0Fbzr3vMTf~ur5tR~>-qxn zlIn9&Au&naaTjiU7-B?ftwfyZPmK(tlB-{VYa@KkjJpyFwFEPlWwVb5+pCQp?i$$z zv+9Y%0ZB8LQ?!D;2a{%kGuqO1Sx2cu2!G>38Q6l5`HUx~j{_HW^!d;KB14*=z?=mY znT?E{=B4;M=9r&3pN@d?uW#MXT+u!jtj}}lTG@xlA?G~;D7&VwBI&NitDw4B!S&7F zI8o&!*RY!o4}9Nlh+k-%^J6~(vMz!*FT6kTr@zN(9W~CZ)W7zL?b?f`b$ef0f|cPz zj-R_&Y~b?6JiqG$93^4Ve9!>3ooQA#!D?Y_q6~@S)^mDvG*{X0uyExEa22S*v75SI zrWbz7s|oRA9!&8qC3BCHU_P8a_t(NIOu#k8J-mh4%q18k^)~s6go?l|jtoq?zp|f3 zF0R#)@4ohT!YYrue?euw*IXigGDU(wY%2M$$1tqT36UEn|FL*N{jb)KTy;|q*_sP_xi5xDQYg&;DX{wZc~?6A%#T=HS2%A%!Byi>1CeF-Ej*nEW9lie}lZC z*B@UbUA}xnv%mbHFxzsUUg3VjroD4!Tsg7X{(tWDOE>l{MDl7`Ptqb$m>lbG+H=M| z$Wb5j81`5FN-KQMa*GF|q}r8N>(+AgH(ojaKc#(jP+U#Z?;-($ySoI}u(-RsyL)g5 z?(Qt^?(PyK1YO)MSa1&xA%xt`^St)m@4bKBty6XO)XrAT^mI@E+D>cT9ti5sq~1FT zsV`<;V~TKNl=N4&4kLc>L{gU*KA-R6vbyHc+fRJN0Xy=Sm9~j*1=plfcnVeV)IE|G zZd8^X|@9An=!+|;aTnXf70pf6mwp&gh0%WVGR?{r%ra!YPQFVjHX?-n)g16x3IXB@{? z&F(p^GfDlr|BtWLvVsgnX!>98xoi%k7I&YyOI?#X^#!E!V!!ybxHqHPv0{D0ODBg~ zchgLuxBOJW6oa3lT1`G%%|f8I&Ae8maA|i&ZJ4!H=1qKJWj3^wt(!2Uwq%a+w6Dh% z$WaTX4H4DiExxcMH)+i>dsMp{Hnz+>b@L%hFrcS)U|~2Ve4ZlYpb?4?Rz`}MjpQYcr8if5I2mEv0GUbe={8dS5~CKa`@`-@9F{Cr zqAq?_Ra^t{0gR^shl$Pw8=db07Z0IJ(QL z$C{!K&r{W^PhQLN8V{O=Q_TA*$&FM;uUx*zI?}MYh*KTEOPASSlFN(3S5n8!;Ohp5TD{tKZ|&wgphfDqL1BEnxCM-SHlp8i zitXf0+(J@TqcHncWEDS&&G&A1+_#XREY&up(d1Yx>mb9VGKBKixo3Vc1+~)qQ0?A) zg)8t&1ynDpEhQhZ`c{0Yy?W#RPYh=@5QdZEfd5KCKgxw=>Lx=VTZMM~B1a>42%74{ zeY+COVoq6-o2pj7mi-OzZ0ofEM_IStjja)o zARdItTh?-s53!h`tAvI{yuPP&WC9 zgYA`b=RxClcCCkB+I^*PUOTdsU%hw~=k)xs0_jhc3gnsn&F?;8+j0UVnnnNv-xp$O z>hmq{rUfNFXU@xf)6lBDeBPW+S+a3BU0;fbDC?HVtudiqvz+2UWiZhUB9Dh9PBddd z6uIt=khB!6ZSxiR@y)*kIYZaNN#gaQJF%m#*_pJgAz{4h#VO)N(zldIwS|y81Pa#k z;N*}%+DcgZEgnAT>{D|pjt9e_4X~VGj^m@ZFq6=bzt$rwE?V2KwX@#ywoj6SMt93x zH1p=WE9820&8J7X1-<4qB#|j4=MthXOA`hKyqY|78^R$feX<|Q&_7sdLU$>HYHxg# z4Z=+i=tf!>v`|&|*F5TMj%auEw)#^oR`*-=Ob*0vbv$loO8waF_kShKEcCJ$QEIu> z?(IArG`K(UatsPKIZ`W#q|AQ=<|imnN17uT2GcG{k9rEGN9$do0SfMGCne zw^KfWf0#Z{opyA2HTpMP&ipO&gpcJ(GCN%w>*9#b1Ez|O8ngsoztx>QNxHsVKCe+wFdn#iik+L+z~T;cpbJCce7F9ao_NH=Wz?>14v8S9^kAYE zHGBItzn^W;;vnre6U_vDbBx;~6~>?7mbd508++fz{GBRXwYAMAhK+x^MZeZd z@Y%&8VBHujh2h2|(jR}@q5H8cDtL8WW40?bN!n&ARE%eoNac{z3D)$1a;I+UX$1hi zhHy;g;EP?#0Yc!5;zoDo)s}jrV+*VPrd=6UXt_BWA*2Z?m5ZGYcufpB(MWzGA>#3|Yr(7HLwOl<&RyWJc`O5~RtIY~_g@-+ zV%+O*^ymn!JX+U3HZNb`q4+MSBeb;5+bQh!sVh5vNIs&C>66cq|BzE2aGB95813fUB{Dz20fFeew^gW15Pc@Y#x?wbPlu z?0m`1u~MIlM}Ylg`WOFd417q(Nj6?=wWiqhi5oO;(Su#CRTx;!0sH+2p#hqUH7JEE zOI=9o6{4SgTzE{S?$X&#eTnF{u}Pza2o;&H*Sw}tmi`>NW85{9Vo%x}J9E^>6`i@i zoF^?uN#@*b%3T! zH}inf-lPKc#&9Cy3D)%;F9449mT&hA;C4~XrOUNW1nkrEL*{*aF%{moDgopDcTOsQ zL<^o;i>p&7H%^W@!B_piC@YfL?e$7D><7x9_YgS9^pg~RccTHk=>rRN5bYilGLY)K zNK$XGdZ-#Rog;B|E|z`CNa<3;GJf}=ot|qrfcal%1HTWPz@47v9^a~F7Sd#rZWkZT zG{zXs%;#CCCMh-|XJ6NqZa;P=+*nw!V7l=ltg(33{!`v1LT9lyZ?Jy_+}}#<`SI;= zu)7bvbB7#EB3bZ_aw!!iE7r2BB2rn(Jb2fSsM_T5WH@YNZf&C>=A19KV=*)>v7bI)X`%jzgjwEPy=OxiQ?PIF zihN9Rp(IIckTDZ!mheP)H`d+Wb-jV zb?VA>0+c=0|Ej`(-`DF$6G=wBC@TVvsXCWJHqQNRF@6KM>J@Unxd6@cDsVIU1jN0L zh~G~zX1$i9X8f$d>ao!f#?k^UOO5Hl%k>DF&!PJy}x|Jb_YBbq%=q( zWjH$o95o}pbfU~{N3%kaK&C$iX9+a0EjlF5=bY05#y>=d zmY;b8%f4oi1HWgtzbZ_m{chlCy^9NNWC`3Dz*Vmpdfn#gKo(zhCxlV^_J#X;{ zWvPzlE)B$8Tp4{{Ra3@i2w()WjW16ZOhPs-JD66egGPRQ_f7mDB%sb~Pu*YbR%b0v zwbHMrf3aM0PH=t&FrBjKCs>qJu z#WwtV_Oy4#7aw*CbE(I)32tAtO`56(Qm9A|1=3$Uji=F&fR~vO%!+^ijp?IovqpYd6}0;zld zib1BpNnm{!|8GFMT$>^_R0DbvBdB&ur(Ukb+pLRW>L6ynhC7{MhL~aG1|9IWN=zbK z_9a|5WR-|*`Am&*_nEP8}Fcr~Sa*Q_3S_K!c%N(_*wlR$MyY*VnN=wwvGanKO zxEkjAB|C5VZgC8|{kvwFAtnOqMOwOnjbdDl+6g^IQ|Jk3Ei>VL3cIRHpBE{Us;{q;L&t$nkrwh$*SwH9^ zk?OymH-ZKkD2So_ysLD(BmJ90s1^f$?b3og?Ve={%@TX;1emR67K{nq)mkapBApiv zjQ^JPG5w-~`O%<_aZz|vg5$eQfN4{NRWSen@~t^;*~p7xd{DJ;tP0((z{T(ameU&w zAv*h0n+$%_otIe}I5!Q{FGf%kJ{l~aqmpxmSO|Z>S9*S$JmjjykP)5WqD}x2; zrkaa0hg|q~=Q<@!a0`{{<^l=23G++5Sd)8fVveHf{pt7oKb-#KMsIfF{<+9t?`@ww z`=RjysVc3lQm*F#IOIr);bf5`Gd`7j{(pf$T(PbC zQZ_yW-gskor@0ID!kq=Ii0|j+eF#ZR?yLzDBd#C+S|NoXhmVY(ylw)FJ6BDKVB%?h z@#a zD-n*WeA6l(@4LP>FpOC|bfnn$d#~+EJc%QS>*VPzG6H$Lgy!mWkZ`;k7m25ACyHGp z*2J*~p@I^dt#^|D#s6Awy)L6?;>{@nXzevwy=ClNo}CvgC{aeOe18sf_bemf>5sW5 zyl`3mr2e<~TEv|lmyO{mvX-UnrF5601?1||yJK~fk`84;EPViMZ;AT70uGL>6>ks> z@4M(jtRjS81~B|5A7n~oi`-r4RR6hBwLIMEx;li}FOiCzT;=LT5hTs8=lj5Uz4+13 zY)IuU(^IxW#ny+x#q@n14vJH<;)C3*6(%;I~L=e=;p{8#&PNtcUWGJ)yodsQXJFgGH|8 z!gUCHcU--*oCT*NcLq&MVkv{DWA(UIi}RnL?waEdM|A_!ta|TZzGD?_kwfe^29t1Z`5cIi2*6tHlGyDJA;8Q(~ z<-)T^UNAXSX*THiPL^k7HH#fDxqqQ`XS#GtGftLl4Ww zJ3ugi{p|xErlFdpe~nfr&Tjx|K#jp+@3 zTDE_zc0;WntQZ3i{htIqD+dE${B0r}1tK*hVOy}A0jd_w_8(mLE25_@MO$b4#Pem9 zGI;T%?L}uZo`6zn65y0(`WdACUmE0o2Fs3iu*#htEI3qZlcSL1s`(RIbU8qel1@NZ zn*iH5E%qXrz(Db7QEevMqK=pH`d0KwwZHLys#G}SAU^>Paq+NrAIsg97 zd{z(bg(5X}>S$@A5#w50e)V}n+J>@RUJT8L5j2|*wi|^ttd(D?+lS#%L=b{*$wq-C zES{rUv`a38(m)=h2?BYo(?v8JzlG3;A)kG*Q)f?YQV}(^`BVM__YOCu`~p9WyCOs; z6ZMOAvV_s=SYlp{2qav{rxlHH;`K{NJ1+c^V=;dNyy*$jOFC_>mXB<|4B`W1`g!1` z4#9cPKnJz!n2Ih7a9V%}xGT}YJjG_tCuwIvg`Tfz6h=F%6(2_W zR23;54(s&}q;6``jK}MZKnsXQ$WG|Hw2b&*7H)}S1;2(=Q09I07i_|Vz}M=(#u1G- zq^b=8D`T#;k_Cct_7NcS37QDuRXO#5yvxBNU^-jlNJ#<7& zV^)lRBD+=5Mo4cdn@9T|E`Onexyhhv*uJ6jlv{gTmxK!eIOe-j`$f%T!~OtxO+uG0(!*@fDiCuJ_;3%&SGzbnKx)e)y?q;GAl3NRVb!4t+*IEc z>4M`35&{E!xV-&XKjP@X=aA@@DE-i?yCz?5f*z?IC?ljvDg9wkcFPU-5MU$gwaQv= z46j1buRWPe* zC^yMp>-*PaB&zUdBaoeiP?z5ER|BS;4a|TWeA|V$sZYuw@);`2qb4QM&}5RhMJaxs z8iKrmA&a6^qM2xu-$J~M-e-MAjROK@w%L>1;2+GzHQx72w2X;J0!$M>KNFzNiQQ4( zx&~*B$l5wcyqI6;r5VuzYFN7GuoaGW7=?jYU4jjeoy%mPqshz(f-W7ENGjsS@Wy{n zfcG1a>*0+h5sq%l^yO#O%iGh!RSt1!Gx$APGYBt}cVQzBzJ(H@PEkdcff8luVk5`U zV}UcYl|cWDF6BEghz{afSoLN2!8Gjy;SD%&pFCrJuJN#)%9*_j{w}BRDb3VICQg<@ zFmydgQH}&PuiBIB=d(z1@z&5HM-Io)5TVh9ld%qL^i~?VOp=josZfO24ha?dhP}W8 z0qoq9t4dvgf{Q&Ul_3ZK!v?TeE!LeKbt~R*>%_6XuxTBuX^m+TvvwZp(x0{hM_a@X zPu6Kqn9;sJQyKyHG#4hXT+l3C;i>OZV*orec*k(qK=g2Cba*MU$}2u0vjw9BpjZDS2hqkjWiZ+mt) zHdrH+A>+dBU=h3&XCh~%Ik###%sA0ctr{z<6vty8LP9B8C7jc43?(L#7AB%<@6m1L z*WA19W6>TlwyC#Zr){Me`1LGGW~04Fud}0G*5_G=XbZQm?9MI3w(%zE%*MNRQ*Fg1 zN@I)eN@FFYZBu8I^R+g)4% ziKeUZVZ;CN*kKo00-lXYd-RI$lIwPXq=hp3s99@$}|7mt9!03GhEK#|P?xC=B$tQKwI*4B&7H*D-- z>O)H0Ykmhs8uMGJ8;5u%>JhpghvOq>`mL9#0~#*p@VdsI$CiOup;Ge~cfPQoO?Oo?I+F60{G z_nmmqXZ~M`p+EoPO|ntY+dmU4w>@D9#-^Ia;#9-MJ>FYyCPPCMWB-1uHfnrgesLOq61b0dgB$VW{ zup>}lKl-gKpr5_g1Oyl)kOQI4I!-v|_VW5+18gJ3o7uH@<>_GVDdh|_;-M>7achGQ z<-@;?!Ce%`gRw1FpX?RO7yIA5OH^9=oZ5BBll+9o=#>)F`*iv%;-%3E5}96oU8`$$ zDOgy(%OW7^TrdbxhwZIYvMRbeWGQJ@N-CMnsK868#U0ItUfrceEku4?c~_X=+f{fQ za>A)-BlC zf3su(LWrJXVY4Hz0))KZ_P4g~I($XaD`S3yw%McQX_OQ@{uZxd>4fQ`-A`iNxSfu2 zXux%+OJ!Eu!DX%$%s^!ZDvbLLKxb1(9^q`s33qExUk|xt*l#r^P6H=Q4Sd_- z3uTbQIxx&!Ou8)pBwJ(Qn#4*@y!Q>{sHryT`S(oshAAVY)=`uwA*mHtioXFKt}(Ch z^(w}n?+crR{q@6KtCE^=KD3RCPuLw$9JIM6-K^KiGZt@24tXdDixE+#cUvlmJcI$X z#dr;5axf)oD6)Cs%idO9b{~}GK=VUwhf&%GpiV_JSC0iEH@SnZ0E+IYid)xFesotZ-nr(q zjRE|zu$av_>BN1^vkR}f5>4xPG7rq@*jH^Lnns+i-WK^-VjCQ(VS;e1CRMkVych=5 zu;IDjW$Z)F(L+~m(HY0cVlDV24xHzTn)C%y+ms)XDuW~%?1m;>p|5%3&uT1rqbRhm zdCDY45AI0}Q1{KM>hIkT`1J~M@+lQuwdpyRZQ@TXrQHYw3l|QRa_^o}Y9XbM^Rn}j zNc(AD>QKXEKfdJl?kX`n?$taH-3;_hMEaz}w2Uu*Nh)8VqZ4?@+TN8d)4j-EJ<_;B z&J@#2!u6W9N>ybT7lru!VuZ2;iMJ>sJ^YAT1z-T(^ofFGZVOg<>2a8)f^<-|YsA)k zIg(+>2pVTEU69)|RPxo9wwUoj(}EG2!kZ?A{(F1pO*pi}K+j=C=cfB*4|F{j*j$)1 zXoVg(f5ApO=>(xpee6bNKvP0l_t1A9XMGVV&hs$%ep{a~;lv#bnBA;WN%gz_LhL~_ zl&krDRQsI!Ak;ep^_~`oeMpNMCAnY$#Zi1v`#g(ov`Mc&xrCDAT&A$0zS$JPGSwd z4|It;S>_ei&P1Q@@6~EZzm>OyhAK~$?F@Wkk#4vDnvqE1n6QXMMnW21Y53}r@oPUc zJ8|fal{yICwkV(H*|65FU`_*vJOtJEdtrdXg`a;-9SW)k6-|=yN1t9g4OM3q764+0 z?ykSw4MV|wO`iuo+#T;ebgJ7U4(#FRryC#F*_2s-HP*&E$7DBIjQI-k#u#>Q3i$v{ zd>zvf45JQSct?amQFbHGgWg+*3Ulm`E4eh<9ajWjTQY>o&KBGrkdHdyknXtM9O8Tm zfM>46HuVB%nV_bQd&4Khd zLXqT=B2B46zPkTg;8F;9KhL8rDI8TA>`LpuxI6awDUYx_Up9n#Mh2Pa&+DuqoZI0E zII2e4Eo?p5%6+7t=Ey#3?Mw(i)YVjWSr7pf0^kbSge=t=V-##cAx?dzGIlEFX~~Vd zmDVH*x3&nYfo|{@XL6hKs>F@gdX?ut(K-=Ex$(qwPLWZ#^pN+D^(ewz8KH3JU8HLb zjz$7ueK!6Ks$FxT^sADFCsaKTB<6I7!R*^3cOAo4#Ag8s-IB-8a}gnQWI6nIzX4%Y z+WgE}`*CqQ8y%rivTKLr(EEO}*v%8*<;=La>_Su3WIJ`gsI1tBgmn=s-e89>%1=IN zlYqk%y$3-|d$w~y{kt!A6;wbcvNaIs{Xt17P% zf>E2-7+5JKw(!<|`&p^h;ExuZ#)pL&Gv(%5+7T0R5}1`e*f=%`mcP{fH}6Wzc}%2| zB$0Nc-n!a&l8v?HOLdj`*DZbjPXxoin5$XNlP=75PqgdYX4gJA!uB`mO-Yc{tgp+6 zO4?9up4u#l=EpJu^KP>V3JoN#`>=eXV`#(qDBBvty%N<+*`qtdZ9_hi!4$xq(Y_rh z_s)F5;!;_f1plZ*8u3ULY^xe1>Xvcivjm9Zq1%Dscd!94A_EnN^H(OD8B||^7ZanP z4helyR+xofXo_S=7C9hJrco2U1*Y&SN6_Nx_C8suL3`%y&~L!F4NkO9A!|8R<2+6A zfI#LUoS#%wo{i#8J(5R0?dr`NP8Ge^v{N6B`48e$iFcqLzcB&qu;85h`;`#}4G`Dt zxD!6p@w=qE{ZHj9R(RPk=wAr%Eb8Xo6^e6y+?D+(W1M+3z@sKD3HQPg0j3G!*D3GD=zedO-lBAj10MXz;_2p)r}B@})#mppQt5Y%FokR&HzE zY`Vmboak+rbb7DVH7$^9AU-U*-O9LjLvd|C zt4!un6v}TLUX^=mveP2WSYDMx)ISaGP>2QwY!dKC(%n?azRIfgxCmugOn=|OamDPt zl~?5x8|9?W?N2C+%{2rZN&E(+*K7RfL5HVg>*b=qXd~L^*(1^i*ohN_IQXudVAR4W zpNL?zlt+D@ieV7GP|W8P*5cdLs*>IqX_Lz{sxs~tDkGXMndfe9gv~My1p$^7T|H{X?e@>K zQ_H#ukrKAEu{$B@ZtBK} zG*Fd2{yK0{rn~I%6-zVSCh@Gu05{8wA5s|>ZL0`E?3>_SJSz6hq58Leamcl%HUf>P z_5ts9ld8)5^yv?$#f?c)&CqbW35p=%EPP^W){bVZ{vgPRpt5V^mf3$`GhoxS?iiTU zHHo@ZF3Mn?fFVH_^Un8$vX(*&YMLEyupn%4+Qn_x*gd57SA?VyXBFrj-`;cqPVt4+ zIq|+GEE~9PR4FbhQlSNslQ5_4zQDOXU`O`rgnmDPd)g|4*9oCA?GU8oXbXO|lXUUo zX6rFxprWOfIbF_Sqt*o3I9$EaWGbX}UC8h}?g4*E?Od*-C#`(G@T>?Noo_JW*}n3y zmP{KR4j+VTybNGbA~{uJ*qQ;Ha+lU!lCu8;mXTXW-Ksq)+DPO7m6R$92;q0m*^9cR z-$;Ewxv?04{pAfL*%9CYifE-N<_JJpzJvg5qFh6j9t?vlbXtRtqk~%DZ~UYuZ=~8Y zM>;DFM5j??^tdTZl1{{{lt}(15Py_L*%Z%E%1EkX%pz~g?oz~eaSYRS57pkySV$sT z`U!zI*iZ4<l=b!lF4Pi}jdv5lClxMn5_3D+!Orlreo?3c##&R(RPTGd^xH z%ZV<3X9*8{+(nVsayHh8%^KFz6XCJ~)hftLPQp>WsLTdio`;+;%uG3?-S)n(CacZ8 zs*|Lt*0>)x)-r{CrxH!aU5!;OHwDZsYhqcB&zs`Q`V!1%uT_QPa3I&m-hJhvnOD+c zgOC-Quo){M>p;bCr!;(ar-&%LIonXe!7aC+zp#1k-Sz^3DTBF zE){!28FGCAHn%FQJfg72URBEs)v(6_OAY7TEd>(Zr&e)m5WcF_W3JXyR=n!AbUs-!JQC~0-@y~zTUGzX0g?N14M(#tL)l3rl?zb6bVky@eQE!(lC3fis|lP+SUs&CsD0=OOyeXw*}v6 zcsC(HgkUGN#LFmth6ql*vCiKPS}Iq))W*z|X`9wEp6*XAz0~Sc& z?LW>GFu`oevRNs{)r%D@g-5KifKWv1AAmBFt}2&Xh`i1Vv&5t z@=A7maq0{eA6w^6V=yL|61QjX4!EO#5IZlqi(`>aKmi3KdlrKZwpF;UC-;6Ma!qBY za4BuCiV3bJ5ldpI>;$mD++oaSbEJ02Vx@6D>eiuTMNcL!CVk+5ZY*QBGLxm%QgyJ1Xdgke(>8zk}m!Gps zuh9eK_UfhTM1#NP&cBn?Jre(kl!mm?(rm#|TA!io472OjRH$UM+TX;PfX` z#n3J4emVFNgf>guWZRQX__ zTXBuMwu&)^@w+qvtZDxnJB|~~-l~}pln^g^yD%m5bfr}Si)YSllNsiyS!+??dkC8b zx$RO&T-{5$2I>_67v6RYQ&RpiQsk9evP5EZOo{*_rZy;@gJjVv?BwM7L8MM4fS^!Azu|)j# z6jbdJ|LG|Rjpi^i%dphVd{+hME==fYv@5AkdrKI<|2ZuG8pQcb&xTamiuFD)bbyp+ zb_IGn@WfN*P*G=)=K|ISXb&PCg&GFttFAt3(_(EL+ou@sj?t6Hj?%b>1UJ*vaPzYE zWR$OcupP}7n{o?c<+Pytp5QX|@Arh=L@RFGtaF5+?BP{8TUTMT~~~F zJxAm=y%{?|c3w1p$2Q7L@4B1AMsbilnlWrife*!YW ux8&)U5%`cdx)(xd?3Oa#2sRRbgB(yg5{Bc!haX6A+fa}cm?Hdp?f(GJSGm;y literal 0 HcmV?d00001 diff --git a/1.3/img/logos/oulu.png b/1.3/img/logos/oulu.png new file mode 100644 index 0000000000000000000000000000000000000000..fc534f8dbf8acf907002385f7542f1d0d19b088c GIT binary patch literal 12503 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

      (#9N1bHz7pZrg;dgBq6-t!EW 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 literal 0 HcmV?d00001 diff --git a/1.3/img/logos/uw.jpg b/1.3/img/logos/uw.jpg new file mode 100644 index 0000000000000000000000000000000000000000..89f00b03d352fd945e8739b803ccfe911c88ca1f GIT binary patch literal 5095 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%0DQVR(BQVLpOW9~Tv8EQ-%IvzQetU@a<-xB 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� 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 z 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 literal 0 HcmV?d00001 diff --git a/1.3/img/sleep_intraday_rapids.png b/1.3/img/sleep_intraday_rapids.png new file mode 100644 index 0000000000000000000000000000000000000000..9a6d1550ec7480a51f89553579dab00b0d749f98 GIT binary patch literal 235048 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 gGx#q41So?=8xI6uZJwzOCaa;v{ro z>u7QVMO%W98Ag7Y+j-eE39jtVUgTxLiTiX$elnkF$)WmG zUzc-lP)nFUct_>F-~%G9{u%@{t$e~*|MUEu4|Suy`R*MrSf0YO$ zQn!lWS{J`tgG#ZAOq< zax7hAY!1xkZqT;dXg`lTltejGD83xcQl@xP$!2%#>HIYoDtBkRJ2+=aot^iHG60O| zx2d*gC=a&|%8oDSn58}D-3ZH1l^IkDyZk-+lht}_&V-LIb?^V3*rmOIJTf*be!myE zF$>?B(L}?TqeKIZL`|-V(3a~wJ+_Qg99?_0c~J zpigA$9Bg+|b!%`GK=iT6=0Zf2xna^DeVJW$*4Ze!1lURY{}&49Etpl9Po7yYKLyZ_ z9i3b)SGFGbc6H?KX1`=R!M;;_R0yNe5U)Xq7iv&}6f?eK|C>mDNrg=_C$h0yheEn3 zsYzW9)zA#AST>bu6^Ee+NKMvmjW4t}t3q#%W^bNCpS(cnI{&b&7C<%`yL>!aqF5*^W-hB1QC<N zYCHfjH94rkbwnsT>rcT&2}hoffo6lip=Bq;f<8RRY)XL@?vPpuA2TLkQG}-3vMQ#- z1S=6@lV^5%i#6ss&pM-ZPNKh1 zQPh03T);eo=?WTbXNMC-BYN5G&PJ>=bRE5lSoXe~2D46)O&y7?OD94jlU*K|yqB_l zl-$^Hr^eBk99lqkGBgcc?rzUjDMl^AFlAxPVPz*F+OUsQ59w@RbB^qAa{q=;(zRb! zlZeKky<7+(65s9LS16g?=4SW7K5#JGw`#=WCi4#`ps_jPp5mzCg{+AEK)=kG3Zdt~ zIf7WlrDvlSx9+EOODN{)xQ9VSam8=!WWL>Tz9d{hZfIMpw)T@@mjI-?IDhTVspAP_$>SP|SWE74PV3*n5eXN<-h zf!LR-;=@R$(=LT)F1w>5cATz0GI?RKsbAi&H($u@T#Hx3;(2rBQXQH^K=+MtXNHkn zkn?SgJ;QShs+{HP&{>t(DdmA+ev6?-BT^HqIN(lZ!fnR!5=ykiC0kooLaE*+(IeCJD9di18C8cRiE|uSnTNLm~aP z!^Z=<+Ya5bUjhb7V=4%(x`bYtjw8pFIW4lBT4~SRzg~Ce$*2fwoczs&AzZ;&9MZTjY^z&COjk#tf4ohV5uC^E#44?ib#095{V68>SEuxGLUq)g>^FJom8lFC|l@S`Df-c zZ{irir~8?Tx1gb$UHTqnXon*Hh!gHp!SO6@sG**ANTN*oQ`hDLzme+< zc}g<7XrxTL{F`P9*kexdQ&S{Lj;jeaTzkgOEX3MTdBWi7&wn5Yx6C#;Q;g?LH9vG` z-(5KK6KWTPCSHyYR#;3LI&S6~z5uoo5>fD-@%CtaFac%(` z=G#6bsn*H}TQm?wRGy-v5`^5y=aPz8l3NNFXA`^!gZaaGXIG{|{g~5=%iRu8SJCvr zXRIdPEVQ9V>t}V>U5&@zv(f9?4zhCgQD9ToHHGZb-rU|x?Vfq>eK9U10Dlf6_&R=| z)Fo0GNo{{Nc&zz4OY15Wh-G;_pSS~Ua4^ZjN+&SRG)_v~o~hS~zSFZGHdi?>Nw?|6 zARUE~NacvqjW1-`QTVV$tMQRJDBi`db5t892FbGwR>ed{cTK$>(DtcnQ z1^w;pw(C{A4q?s`p(-J{czfoV@CuPmKZA*pp%BW3c+_(ADUY5Vvw1Fy z;(-9wk=S!?p#S`b)N!20c3|G?^m)AXOlI29v!zt1Vy(Ey&z~Nm=A!yQ{*G`Roz9aA zS9ww$;tCDo;nfwU4U`nOn15bz-H`S~o^E|Wi&hCLx-%(L<1W+OPZXi+7o}<8J2b7WB9?_oP0fI>B&X^*$LMw_rnp~R zuJvW9(X4BnD4r!eWLnIIB3yY_gb>%ZA66lt>hkIC+q2lKgR_C9)%h z!RFg|{?0->+UEHLeC62fPs^4iksL{}6tGd`J(~R4^$#?3`MG1K$s;=RblFCiBwxeW((O(Q)m)a?p%kT zx|imx+xtnKa_zSKlL^%y<|6)V_fwnu0jz?Yrxpx`o3Ww!s~Eu4v54yK5&~quSH%qjd=FD{=m?9F;BPTV&T6 z5+vWLVEZ_V$w%z;>mKVEZM!}L0t^oKC!yr9Mw3@~vHTUfn)`f4kqj)IT`ST2iqZIT zP#S9lU%+^09&@Cv7w5fcxFmfO-g0P?R@@s-;?o{A94MN`czk}N>|f8x33t4YdY$cq zho(yl(!TnHcDdF+QyXG9nNci*Wr?mI>L8`Uf)U~nOZ?sV%aL*pCtJknH=zv()-m$Z zcS#5KLZf>rXMRa^DeMf{VbTn#xJ}-vJ!YxqxZ>%W_mXu`A zZiz)P!dx-qcWJ~%bJ5tYCYfd<_Z^{#nRYpx00~k`Q7P5l`n!3EuAX>ZW+M}p{DSIn zRN1Zepe{>3;Z3KC5y^4bi{vtHCI;e$YylN&K1Ns(c{}q}!ZYW3HEMQDt@=QM86j7v z< z;Jfe`im_GMs_-eCVPV)w+Lrerrw(NYk*CV}xd+Zm=mE+n;#tZoxls0`Va>i)}76ZyQZIK}`0jbyvn?&V(b#v9u`>KK&kzh=p3LJvpQ(L?P)oVR~Ez z(l%nwz`Y!_xs0CJw%7O~IC(rdisikc;jU1i_4Gq7KA+CoIC9~4A>MPQgP4bF= zsT>%+e$;(`FjXS%98=epQt@PQgL7a=u1lT}*88 zKu2?NEUiYz#X@MIEQ9zy%kW(2WNcQk6lvS(+Mj4*B6U1*<&qPsB!|q!jJT9o8U}t8 z1-H{o_HC0nXK{1rlr7_#8HybFfU!63}F=&r;7;XEGd2%1-f8f1@FAaDoP)T)sP=$`?Oq#IJML6 zt+3*VG0lZl?(=hp_Sm%Fb|kIj1zeni4^C0=C2_s($e_jXK$?sS(k%n zyY%)tQx3m+pZbWMU<0*=P8$FCO6d#!Kh&Dw5@R*;?YVgav3abUPrGH2kNGAu zx^v=HBcOiC8J5;P!M^5MDU|@#VSL}U&WR#Bc0@Ja!9IQYygQB$yT*n5zR`23m1>uF zA(Gcu&nzxf$gfoBg5hj%HmSC;)AR6anlejLC16PDsl`T}`5~U^$+NgC&gGen_2PA> zV0ltHLI|dv{D_tOjza7Jf>KsZy`gI?D&Xm4#Mg z&p;Rqn#sAXBVkMRetv3RgYgsiWDV z`MVzk7E_6Y@t$5-w5`m2>HXqO_X8Woevuy6_H(eFDm?2^?zOG8KAE{v z{j>FAkRrQ*ep8nr+Xd80uI{K})q99E&Eg14dQbaj9y!^!6NPmYGKEBq#|r1g>H^Iz zZyZTwz8Z8ejnA7foi|a{KgU!n02-@14(%-%>zzRw8Cybo@u17)8LOg7MXUIVP?ud% z^g)f<+E!^<8r%HWamjS~tN`1`hvr9!I-i}@_f)4YTrfsOC*ai@Q(?}X_ilTAn1Mn4 z2A+%}t`uqP3eAgi0Z zZouug$QIIxq8eH+8@vW*V&D-v=5jExx^0RnDGk~o1Pc-G(zIEaq^2z`wb9nT+caHT z^>`QFtu@-xgdD?mhIzJ9u*fXcy;asf%E7XQ{fiJ8HJ4x|w?`D}fhIM7CF=AjKpJf- zVE28W8rP@7Tvba_A-{sE9gKC8YazU+^vJuVcn0eWK%$>s?%-C?ea{3}ikY+lHgpQs0htqHO1S@KYMn&mgxc~lUps|0ULA&f0#W!Dztkqp+PXDxxRH*&sx>RC2}kb3}P zd*wT#B0hxAO=B4J_|`cELWVix4NspJ;;hvI&|t{({!*H5RhX6?rNEC|jQ3#AWRk5D z<%r0U8U`c8XL4X#Avu0Zs+odY0Rx*iO=k)P_HJ=|1%rUfOsz;BBeaV`{rUGh>Tyl$*Ye&$nUnGVss;E_nt%b?6?{N>#8$C&%pbQDNqvvu zFyol#X9|g^41ss*1NnS69|stL>e~9w!WUE~&<6@9G|+Ze1I+M8PEAm-774*sQhP4x zlw;ZNVbbk#_2-0Oe&)tI{il7 z0bgutMlzU9;Z@&i7edBPlzcZ|4NPNnJ01-*6|QPJL|Au#P?8uB!cGX|F?$5kw6!!JY!Uqwe>5B@|*vh`u?Y z1ufw^at}WHa=T%(vRkj(*}P1oY55u8W|P4I>hyYS$wE8k!skn5Pdxr+B@o`re`qgO z@`&;N0D$%9Mnn3|vF4#37C4t6dflJgAhE{Gz)_w<*Q&beFm0p4BH_XmS~S!X z^N0SKragpD2Ww&nZ7&ox*vq8sgN9c9(o~^^fcSpWCc_sHmIuyX? zqUWRbxrOz&>-G0~3^QldVKtUU5UlHt&@sA7m}+TTe`^8*S)GN(!lsz5UdAg0jBVEX zhK4EC$vlxzR~3=xpr5$sc>aaRSIMyrAJOMh*vD(DK~q;w#FT3Bso*<9{h&W>DF{1L z1=$y#%Hw{;lNDDz{21D-=xQ-_m?_6{r~4YV6jd)_dX{%G@x`hI=EX`arCwNZ+X;(=$oSt*rNY4)(+<^$X;q-GA`x&_akZ zWQdWuUPh}Yw#;h-TPnl4B$eihXm0B z^2zo<04Y`oLXTEr^RUNLQpZqQCL~`7AEVJourJrQ`4e~M-*y|oK%^aK)XhJ_ z&g>qUyIyV|4H32oNrXT=DL7mk2OG7%-~K5R5R!_!p7QM(fyetw+^F|9rQ@S_PPGv+XYyU=NrzLgTeDRQI zL!0<+=tiB|830!7QE#Lv-65#8kt^`BCFQmKdY7z6HHUF8Tbfbhu?pWSyT8bMA(Kvc zyT#GS_nZL`Gn6EGL>#TlnU*1fu`II(6EX!p&if;` zUnt~%3^+qwm}-`Nz$cn=3-E{e(?F48P&9yC$!i*BJ~!ha5c$19=1d=Z&ocokqh`Pj zDtA0z9nu8w2{hlnS5t4-V-*-;1Wq73c=xHG`n$A%h^#qtshI=qfux+MK0=v>ZY&0z8J;64g@|T- zJ2|=QkWg5Q_4gYbotxR6hjXlzSE_I$USZ@tMfif0;hyM%3Uh{+D`cx83ZP__FDsxb z9CX!*5LL0D8JuaRQ((#P7}U7?^?EM^$QLvsZ9;dlwU_FV5~kgqB{+C3<&*Uv@DZqc zpkwq5OKx2(Ip&ae{`-OB0gwC0jD29DP5dCVJf-p#7#&bN*~_5$i~K}7OqpkFR_1fe z?0rLGqUzI`f-Qyl6yw#cy!_AY91>hej%mZQ{Egh#y$IOuoD2@DHlIBMsX7w^cn(yg z%X%LT^94I3?8@r;H~tjR;P*ko8`4J%3G z=NJp6);O<}FxMf1O&YV6-_20K5HDyZVqoQ&kn?CE`NQOi1@OTbc%lPRiRz^`ZAzh) za88UlLM(zqS}5ZpIcx-+yh@|#ReJ-nWOF}%nR=$=Op%$fEsmffo{~OGV^>6bSulqe zKD$#Z&eht~D0CdpI)F4Z>cEbfB`}z7P{x#-Ws%6<>v%LxIqn>zzn%H3N4Q5c-8Sy$ z1kRb@R^eG?LKQBxv>B^`)qaXO#J+|FOE{9F_F=c|j8|I(T7GJuV`fx}kegxYJ)-S0 z9`a)JRQ?sw#V)uD0QfO!un{@z*5TfO`yeq4CnoxeI5oI5e$GSw zIDA<7?=f2##-#=F>;ava^~+t_e#M??&n zYD`A6le}>m=I;$XKBV~asw8DpyaoJdoV<&oCNV(w3!hne_QlNU> z!(<I6i!7)2zWw*HV8e?O)j zZ*x?u6h@{cG50x!`wY!r^Q^s%0S9oFWO;+5R(Ie8y?CE%vaf89E00YlCKazWkJ2k; zX&|UY7fdjpZr~d)AgH`njtyx{-eg_cLq5#>1OJcbilpca=f`1WZ1@dfJtL?{bg?`q z+XOZ$QnaL)KUz|oCsR@EYqR1yB9BgQBpZarWXaWgH?CmJVWK_k;+p~Sp;(NwcB#G{ zYL>`gxVj?goeJf4F-|@?xM|O0v6qGVtvP|GKXnt(cwR&0t<^x|uLm@_3k$qvgURNf zeW$9h8LGb7v(`eF+G7;rdPt!_m2{stKBjC1C7mOR`7mHffldgo;Wndq(htapvR9zF z>Tq*Ndc}yX;4IY_fOtMYy1P&fNk7=0Uuqmn#5K5gKPCG@t}QXeYZEmihNX8suyLE@ z>UHKOy?2l9`*YX3aAd=-Z`Ew4Je3qfkH=7VTr@?_XXKk`usGTifBiVU6Fb5LtDHYU z)S;$4=4WC8F6*?Sx2aYa0C)Ngt*WiibgqQRNt8{oU}(IOo~a6;aC} zv08;?Di2EBfmK1|^D{ZZ#Ha{UNPhJxqx@FlJ;nB}Pp~eL;_9F!`>@kkUf>uiGD5-h z^mh|zn&w*&?hK1MUrMJ-bxk{oP3?Cjv{svMz3idf3$?_%n7Dm9z;G&d61i*<9Wv5> ze5&2eZuXOBCCgxsOu-UA)%DU?(lHhTfaaks$;@Gn+|*B2%8B&0(JFEtZAet3+q!(1 zy+-jX@|BN6S4iVSnQ$b5KjPKIgWZpkbL;xurD=r=D*VGv!iTLn%(gi+#ixQv4b9`T z;E{x&Se_!}x5CGk-_qNF^B6OC%`H-4XK0ID$@N<`YoA%$60^CkA7 zVW*zCU3%QsnstIA1u_QOCKgj(H=4T@U@Drt`k%GqA>k=PR)$3o1FYyCSBhmSX0)d> z2T3)cLxr51;_DF&I0wUpj8WSkw{p7hWqgPXpD~B~)#2tc-5O98+(m0(H!RXh&4fCK zLCSPs9~0vQd+%#Qz_vxk^zM-ejq#S61&0@^)RWcsJpF_A8mG04N5*tu_zfn%y>qe1 zgpmr=v$qWaPy?i52RGlHmx<6hJot;@JiZRTAf7DFyxx3}nZ&^mPbMbOjm(s1!?jye zF?w5*V(%dBPymNFz$axm3!k_>Jf>r;%M>T(N-R!6yK~T~YPA?BQ>D~ZyCw_i;0(nL zHCQ%dge*JS)@w|Vtpy;B&fPT&3ewt0dd&A4g866goRQdYY!DT%Hk(ASAYAtq?TRHO zF|P+eY4B9`jq>1cPf2ke9beo$j(NdGYWOoUF%+Y$4_6o?%3ns2TVbVjEQ zjX5-R{z~+e0QD8ox(@ihxc6cXfs)Jb-N@H5L7q^*&Y5)P4F@9v0KJLx z;=|$%A2pG;!?TGRaVS%5subYV_&`Pqjbudkrc~HAf)8N638<(8P z0E<7b#tCPjsD*2;>BjO!bqL~krf>{VEP{wMidXD@6u$I6E=Bmp{n$Smxwa>lT|;Cz zEroh^hon3AwDJTk)#kl#CJ7uK2C2eNBSD@Y96v9%-X_nRrTKo7iH`Bn+9t5RK)Auyex;{(R0^%1veIB5fdlShtutr$7( zn#0ppvI=faNchFzF(01OBH7jMEEsRY{J5%u=x9=Hu0;2I$;UU7kQ4|6g}Ul!_oV-2 zKJA-yLRQ12j(mi2!vQD_jq82sY!zmtu`;w26Okw~t*i4SYA_Th)nP#=p0n_im`^Qr z5}{+x1FUGa4b5luSTVn6m+*dp+to#h40FTg!;~=QmG3fm4alH=3%k&Y`ujfRZYZ%| z&AOHxpXH{dSMkzW`-23AxFDaDHzMxRbG(_q+AYj_884mb8I#nwlh=B?W|r+AQX>PT zCNVYu-s7%rI#`Uq9_gwf12RtXx9io~ZquT%*Spgy%!{Q3i;iN(=y%;El2~w)+;vZf-@9_uKk6+DlbX=~d4H{c8Ook7W zS>om9OfUJY>k&36?O5C4RO!*zWRU3FF4?HFaQm}$6lzf@uf0;v{77}ti#tVj`^Hl4 zF{ldA?bSanX0~HEcDw6BO`}b*6aKunY5?K72f|YVQRNf55AjZ}G1kdzAp&wt6LC}7 z0eD*>3n^6Y7hi(J8zOvk>dWAa)r(n;Lw!z-<$S9nxotw%kM_Q3EN$x9(BCtax7pC< zXtt}ry2z||T?>ivYMNK+by-h?oHw!Y6@4IyR)Cuh=AT6M%sltPNJ5hL4mvZ=|9P(GJ?FjN59h=A#ue_|*?aZ1_FBIkWhm|K ziWz@>XBG#1(Pg{f?-Rvo3wP+uKpo8sqzeHXY7;!cG*$hdt;8?KPP#*7uP>ya*PXd5 zCmplBXVeehWTIGfqxo3WrVZ0G3Z)fG_bR8(IUNMRylXn~i;O2IlV=ehBR+#7wrC!l zK8P@+KS}uBs5rhM*}J)&oX=BDSNfpDKH*xQ_4jXuZ|`vq4~Fu3o#7Nq1TYe7dA?cZ zU$n5=)k8Uz3ar)tecxk3)T)J$ex|mq%-bjLF1WL$!;PD!H9+YY^KBughGf8kZyc#a z3p8T5vD%Vf+~~JM>0rNo?Qn_Z$fIkL?5gLDc~udx$Q5Z7X#=L?lX|8Ne`8`4YedzR z2Xj-Msz6)gj&=XKQ)`Ps0bx+-1MqV(g{jAF-0u^Vk_4vXcTPX<18~8gtzHO9 z>~%(5(?q=2QvX&i$IL(sU6pm+G`1*dJ6AOWkCe^(?btlLb@%}(yV~W3;{_dHp9|{6 z^PIaIt^o|%<&ypPw5t1F>2Po6tOkhk=HTT^8w&IYw6=P@-(7+I;SWF3#J|RreAA`F z!`GIgmO_er(=C3l)UtNhYJvw*J+k~oz{Ll?H9u%n;cWa7ab-o*SIICFSN+R^%RZd` z*2*hUrfwKOEiDVd?f;OXmN3{?6W&bff<;r2+{qtuf?4~k z!ogyo=M9AxwoFo>;nocNCDk(RfAMdNgQL5x?DgO7%JQoInK!d9+WOmJ-%#mrgIRBm z>3Ck-E7Gd9{aHW6dZufmwz4C^FJP=4#dTfZ&$9uh)F+7F>M$TY@gA{Lw0a?=uFoTD z0lb~|=&xFZ`_Sq&TrUNhf$;9o0pNg-q@eYn4*H0KdX^i(`` zIb5*34&Xky|9Kt2u?6wQvpl#7H=p=bw{jQjZ$t-o+hu;Kf`D;n?m3fsB6BAVFy6L}+sOhQr3SIUskG3}<7*o9;Zf!fV?{7Es{SU&e z)q4c$A4^xmcj-Cb+V&qv18oO=N2{XD*3oY$?;rsKziS$NRK8d2e&Y1M49&8N|JP5V z>VYAB|HY$H|C`_Y{wBbn194mtzUO=K=)b=HfBYl{fRLblyDIgU(fr?90x%b`(YMMK z`5%`7{Et8Q4~aKR5DSL$rKJA95REV+K~$&_-S`jiiGN=IuY;cd*p`AD(C<@kze4JN z?eTx}Es7$+g$NQh{0D@_|MY|ZyuqLrI4q07NK5^%J^mjvi4_ubiy40W_koXp-ufSp z{rB7Q4FSC0X7FmM|IP0K1`A-RkG*@jWQLqA0}Ql>&dtxsp-t+RvTf18w*NmwHOhHs2yfDMV7l~MHWTFh#cTK) z@yyu2H{rfP+Mcv2OB8*g`y~3lMzZDW>(Bnr7-_GQMou*;nLI;cLNVa+>D8t0?*Vka zwOwdw2~`#lNpzvjD8q4Ya@08aph2iuW>d}7}VbYfR#m+N=#0W|98v)0BvZN z)EL*heD`1XHeYKe%ODDXALCyUfpriA;4cd$DuF+-L*d*I&}_k)LTz21>J-iAgM5YY zswGQt`X)jA-(}5o&Z{iM3t_2SoAL*FW2z$x$04i-LFcL=uqtT_#i4f}Sxy(=pJ8z@ z^Glg};CC)Hm%n+rvEMViEs`Cnn3?H17t*j&ljFzjZ^TbH(2GLxiLU?3WG*}~eG>F>mE>pfN9-xp+A3F6Oh z&@Y1a7DB3sI?Rspfo}Ee7>Qt?UH?#F=v}w4KEwNkclW2`70bn!`SmSTn&qp_4qK6{ z^{!HZRLLDFZHcQ;H?n*%`TWY2BwY{}0K+m1|6?2VhEShCb7*?m|5Jl*@yV!=Z`(4* z=Bzy^{u?jHZgxAB(^C{s2HC)rapQdXGfF2EnMrssLAg~#_`0T2J+!vS&&F?a>a|xW zbuw78>x`9J+6k%okU3k7iO`bug`0LW?h*Uvm^Z`2?1OR~5+BJr@%RFHM3b0(qsb%FDR zp>x1#g^3&4DAz#dA*RJ%=s zujnIm*-XnFJqGB;9@5RZXaIwv%ew4NwfC_nr>;bOgmR4rBCWB`3a8RMN{_tGVEWn1x4PsT@i*4amU|s0sce{OKTGjC_`Di zozRf!#^Cx>#;%#(L~UgCkLXXRAX$2Z$aSPPjnS}exGV7ea;DhxhdD_K z1&!bl^=Hv3A&6au;5k4P${$xBkOy?U(mm=R#`5>;{{u-1O$nZb!6-{?6Bg*H@SV)B z`|BKI*+#f~Mpg12MrruLD7syWbA3iFw9W3UUk-`(pYGVfqS=HzPQ-p*nW-mF#T=9n z!CL`iiMD(BP(p-x-R5$Q)qcVwwC${v_nIu%h}q}Oh*Q{^^?f^`EBEyRkSV{7L z&cb=+Sp>+sS`#VsA*GT^D#7{2P_jVL6 zN@Mk5EKxt@>(~6ODb(y&R+V>L8^W*!yV)Z&y|DjF5RF((lrsP(*UJ;h2T7{ghYV$Q z#EN)Mw7wm%j8eb*Nl~a(PbPfzj{_efaioKFWpDQF^ys*A?F)$28?9g!-}``YC}KR0o}?OP z-=`^DJiw>ZkCH=)q`fpg9phS=*W#<~kJzyPH}R==v6zD>EMokv>IrPJArC2atr_UBY`c z<5H+!Z8({zKU+kc8{H~(^xx{B=Bh8!?RiLv6nun9==^aUZcxYdkSGobz>C6m0Fry4lwAmS)h?HI?2*00oM| z{qEM-PagMivi|^6@@Z!Q{j{rs4t&uj&@8~hZbncj4n5Tj$I0vsw|*`m!qm~N3`wxz z{+7_mxNIL`2XLNoxmas6$aI8+|`FSt;0_%Hacx zc8j@hhs~>3qmtPnznzGPIj5*f{? z?QXJ*Xv6O*?$j+*Eev!5eqs8#6Do_eDra41Q(xJ|YHl;WXlJx*bxuTqMc<9L9jO&n zo$QmDxtdSI22R-`X#D5;Wh?y^&k7CGXM5|~Du80t7K03Ppj4CNeG+X8H_c}%S1(|= zGktm(?+adv*9H%z3>e=$`Mp`^z(ug-bF92zpz|0zQ2oOnd7IUsqfYwRoA-dJkSOA| zH<%TcuMxLXd10f^%kD3E-Y)^oC;)oCBn(Nho@{1fAO3L^yiAY#zgyNWJT z!P7d?6#3F$;j|ZHQ4X!52sGO}e)voc)PR15pL2tpa`%?zRVI2sCRNcEqcj_($etbc zW`o=av((Wn=2iZhjk@ys@ZcTXoLYfI4q~?524E;ZB8635S?F?}P2H~QTjjC*<=u_1 zwW`w$Y%tUX0xr#~5~1@oiCT&%XVlSlr@gpdeJJ75014~8$=8uF;E7u5TyVHwwJc-y zcbtE88+Fh>OI_LCoe9K6CT>lg&;3oBN}SMk{ssVu>Z(*Cv=PrbV@s!}9%e8TRiJaTrCK@Q-T$k}%#8k~6e;$YfG&WlOKo*j=Rw6gwM zw*>D75Fop2h?=atnUb}zcn%Usm|PgYJP|M}rk}Ns^-UILoNBkeTtM-f#1#Ju^gal=o(k(kJ~*N-dsU0cNB;5~Xo2 zJBw0kIp)!lyy-3`%oVZj3Au|1PxPn=wpO%zi9PrQ=p&D~^lM@eMCs-w{!d_v2hy?NS~dI8Lr4UG&2qmi;Ybz9v>Kw8nzkcx+yLbPwa>$PB^y=Ni z8#7blU}_}gjlS|ubJ(AuxCj~>PUjZ->rm#O)>;k}>kS-0g%E2oYzLve#w(qySSbKe z!CMK#y)o%FWt=-!M=Sx41HwTcoO@2&L+_esxzhY6oVd zcEisfS@`N_YE(ggf5sZ$zlB1FEKFpvZ>ABl*R~jflTEs>kFkARoST-OpBv;pA=NkJ zK-|*HA>?_u52n-28m&@<%Nt}~#vtLmvSmGazIxmRHK%*?lWy*7ci^NL=MdC-^rgfX z|8mU2eJU_dtu60*b$4K%6QC7Q9_z;Fk=F2iIkz9K>(IRuR}Al4m4i*#U+W^LlJTPB zvY!u)7rjFBl;vQMtjY^lsFQ;Daiq!2}xqnZBUg@A2irLM%<< z-x+^C`v!oLpt1hV6qk45MV2Y+T;d2B>@%M|6wjLF5dEpVm-nw?lXzJqnR3U^;zywy zC+_Vzu>*oyTQNy4=Oaw#j?A8lfB@ZWQ7V!gjplvszD~gNJzj}W66E(6iOYC>a8SsHApmvD^7+(4Nu>?ms)iG)D?)%l|PG+r?~Mm{;m&wAJ|wnR6V21 zuBqIp5xT5rlH5>2lA)AUFYWAkM3$cpWx@N%clofbibZr8qig-xaLb672aC^3NP^oa zYnnUeo3ZlUS;3qW?RkAdl%{J(>bpIqkXTqeePMcg=pLPN`OfQ`;i>7yPEF-CckafQ z-l5D5>>9A_Ygy;=#2kK4>+u56R1z6yvPC3{@v`Nc7juBoi)k0e57fCR%_vo-M$L!# zK)VkC;;!7gLcokbUj5;5!S$iAO_AQWtQU5p_bmT04pLD%8zN>JjP*rF{Q@!)n9p-` zp$@tIr%C5+?L-k4z##`LF-f(_qhv44Mpf`J;z9;&E_D?5nr0a4qmvl(&C@lY2U4?U zNA5dFi;5{g35cZuY|i0>LzvlNYsi|w)Kg+7hX8-lb-fuBnfvTg$=eP)oIcP{o&fkm@L#n#<6dUR^#K3@8B;o7oDeuPJNvh;WYms*| z>_*b}kax>aBzZW&b3=h&VJaX11D@oAd6I`+qVfO|jASlHEN=rnR!cM?OEpk?!8kYr zHnMl*P9$;5LCQaB05E^os*z#KfH*b%VmNZOktATKCYNV^%`p(^Z4&399+pl$1Xz9E!XvZCkxu z!b`maf-t$YgRCozMJoUmDX(cE^-9;uf#+>257xfQkZl`Q$_e$oMApgzHr%Q6J%I-j zRAGJV?pg5(jwFM}XG0}I>W*8E&su(p&jhWYqzY( zBhUX)3tDrL) z6eBv?_oz%gvpd5Fi0uM41SoO`!V{g1Ph*6?`b2VkeKId`rg@Y1Qu$;~UO`f5|8Ci|@qTmJbyU4o zny&7Jqvb(qfJR>bopMUmX!sz2 zb(2;UXt?IXJfMo;>TtFDJ6Gu)^(|VM{1TGrZ?=0%yP|I_L~?>%z6OX{u1Tpao5m@# zJQvxN2t@bUbj+o#%rAMbwa2$MKDu+)<w(}}Gd)3s!S4n1!sE|}w9p4^Wzg&ovd|4v2I;%!*=>>m^ z+xuzafN{`Uv42GWiC}Avb)cO^e-AQVzs!{fM3)EG76jIw9Yh)B?y#Uo?*9q`m%0c% zl!I}Dc0k}^Hoqs0cu=gH08KZbdJY|?9s13$_}v@>;20s1U7x{&~8-L>@ZwdC(Cj5@Whfc5R5XxnL}%5B8JrfQ&B z4d0w__g)8we3%%dog}yOR8F4Oi3j%~KwrmJ2Y!ev;JUlpR*c^5Z>Jd@TF~~?y+wKQ zKm$!7`ywSJ#5ZE?PuaMfMnC(S(=uG_9q25CH*XrHvA(lu>dT2nZAA#Z2M;N>%+Q(w z-<&p*JKb+#sNCWwTVI?2gP1;JL*dMhYiB*huPRYX%X8}Hr39cD+Nzy7TLZpLDH09p z=KpA4NZFDamejqI`_sm08wyww&YtSiot$G(cENntk(7Yi-+$aG&~V{^_22di_`{&W zyrUkqG<5URoGfl(xbY@g(O;!tB3X_?kJ31p2*3s%1tLVZD;v{ta9?%<+OweL`wzYv zbG>`sXkaUFNI+OTT5+W+F(K5-F`*ax+Jhm9C`VBa@2;w&yzjc$GXmlG`6ob{p`lC6 zAcU^U$*3RUKTo1KB(B)$w}e85MxN=#GF`S9YEl{_Nc8CJes)!blGT;w>=|;Y|0X~b z+Dawpdum~bI4|70?+dJB;jrbFX7rn8g1uit;xfu&=AO;2Ao1MZ5; zd03~_CZK3;*(JgGcfk_&Fg3_)OOMnX+8OK7TGMD$JKw1i?_R)~eW!Zej^eSkdlv)0 zLen~X`Ug13_h>8Qy%uxy_pqmrm?^sq z+NDs%&LbhN?2HkGV}%d2E){urDA`@}z-mmUvVF_$mn=kV;_kctz-y`9yw-j4`NGuT zGcU&4duQC64b?>-oI2dG5$a^(R$FS-FIIDia32rbK!?Q)$hJzMgs2jQpH7@4b~|1IOgj>1_1jOCR!J-z1hfzJ+BlwD_ftdxys<}e z9n4zJWWd6IoE-g8F(WB#-= z7C@7!v_?~~Lg%~zN*P$u$JxMI5Cox=`xF{jR$AZDVC;A0_*3coLVIBumtsWY>C8b8 zWFHzSh&pT&Sf_OPtR)H_TdHarn0b`a#&JHHft`Q$?Z-U-3h5vB$N1@J0NoPbaasRn zN6oIqE(>&B8(5tS*W4Qn{HEptGyatu=s?@PVa=Uw$@7q|*JHG8?c70dI62ScVi=R* zhKxg!(Nq@ha;-fle=NTBFU{v7rr&oY)zR$i^KTf6;A3nsNZ4Etu69Z!X$zrZYP~&L zJOhO<%unm%V0E);7^GnSsjP6giw+X#DA#Rm(?Tr9=USjchr=i+H__lEdWj3F=28{B#^%&&z z6dQ!3Kh1^0>4W8Sb|g4^zC(F&DFMh7L1Ivr8GNn^>V^??2ZPP(B-p}mks5H|b)n>* zV6UwSGA@Kjci`Dm7fbRV z;b{q%S`Dak6Q#M-(5ZYfJAP8(i8*ls`k(In^cW<0kSlR3Ebsg#WN7yvIJ z!gW80{kz-}^zKay=s@FZg75x;$D(aM1rL`R=%1igo~|LaoDzBwsHxgFo-@2V%ah_O z;!>e1;wm(*_bg)60+{`ukn?He$qxGKw^eWAQ_!O3$r_xHzokmb))p7{i6n&Zq65+l$9)3h7A|CJX(O z6(AV9@+dt?TvILkklmDS=C9MHtls253hy3ZH-QUgOGm0Ynb+t^yU%T-ed8iH<0VTk zNbs5Y@u@+!*3z_!Jw=4~WAZ-Kg_E@4LJFClWH4BIJ_BU7ScMt*7I!jmtCzfs{S@%Y z{sbEAKKm3XSiemf`7JNsSNK;MyXU3(B=XA%4n~4vo!fAVEIB$y<+yh>FZpkSukK4(n8Z~Ulc?aEm*zLD7O{MQ<8;rSb zDP*mhkp|AGF3T}IZ@fn9F#~08trY!<9m;Y{D-l%%b`^8|aB`k;+AGB9V}ZU)q$Ofh%f@WL=(5 zzbX@hl}l#5JAtnh^u-6;h~L(#7q~4o#nzCHU2~h`8>&5it^HPHyl%|sD!v%X zaNnbK`jy9-&t3uBAQ(FmdXN*Fo_YD@_Pf*0!N-IS7MXFV!oa3jWijILgX-uzwVw*W zzor;*D)3@CJyOkXECJdBtv# zW566IP3-D?lfvwSZ^mw3{Wz!E?tH+v5HCxwLgWGiZFVL%{|Rd19t)7)i{@4>qpr)S`pFeEFK=qWr2OUXpWIOK0m`9T5Eid$mHd zo>B%N1a)Zw2fBd!J_0lp6)|%+`i6c3Bw^qr*>9u#5P%7H4SU< z>(Iz};3g!H4(92H_I*Q@D_wBF9YjV~E#Cl_U2Op(3sF=e;=QMNL&;pdAsqBa4TFe7pHX&Jk~jva+!h?wTke`Fm-HnfM5A&p3#<*mKWanxT)<;qtrNjO!ms%{ z=R!rS#-s?=4t$S`SyMCeTS^VS+e!TV-clTk0$QN$rHE)`(=d)9qEHvH6MKI<-b9FY zMzk(*lxukfhT?Z@usFL3`dSO|enByb`j8z17WZ5=VKv3!STo^%W`OH4Y|sHRxV3N8 z#Y;?6I6p+Rn#05eaEM<@L>L@vTq_y0_?d3Ya(OeocR1MqpiZ6FhlaxlT|pyerTBBO z?Iq!ob}z$0%7H@ z)z8;plbHYo8h$g(wE3^ip}u-irLw-fS<77eI`-#$lrAQu-ou`!uJsTh+>Q(goA`|B z4=G{mQR z;SB2?X9LiO7B-*^XV>H^BS~HuGw~OanZF7eis%8Z7mZT*hQEy32#6ppvJ0HDuD^O& zPWrZF;6F7eiMy*Apd@E$)B7`lom@A~|5wqh)jVM7g;b9`1 zWtau7T^v9ak>PW_(5#pB@IkD)h11Jd2%duCqPPKr@uIK!$B!~b46kpL0{Rm? zP3&Vy;t5EX&QmWpg9gHHfR_{HQAJCtYYrrnv@gCWjOJ66#B-DIuF}s~`nj(s>t+mF zZS_oYLpe1}k#s$n&!gfWlPXO3)04qj)xD}BXdQ36{iHA)zwmi4MbA`LmyjJENv!XJ zT?GmeAOel<)TRvLM3K;D!lgP7-tWNViHHV`Ko);y0IqhB1q3j_4G`nJSN%_g^%aPz z`8n>aDGWZJCT9a(`qujX5G~?*Br!S{?;ze|S6?bQwfWd($Y3rtANI*8MKDXj#=@yr zBsVnDgC;BNSFuMUm)_?VVL5+EAb=6?dCan-UkXLh&|c}{Lk3U(9clxA7^DMC&=

      m)E_uNE6GXeW}jyl+IFqFc^l;DRv9?uYE{ve=Dh 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 literal 0 HcmV?d00001 diff --git a/1.3/img/sleep_summary_rapids.png b/1.3/img/sleep_summary_rapids.png new file mode 100644 index 0000000000000000000000000000000000000000..ab0f4a9215243e6718de037f04b6e0441892335e GIT binary patch literal 300516 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 Xg-oacH*|jR!O7ze-&K73!;k+5Y^JPw literal 0 HcmV?d00001 diff --git a/1.3/img/testing_eventsegments_mtz.png b/1.3/img/testing_eventsegments_mtz.png new file mode 100644 index 0000000000000000000000000000000000000000..832a3d1d8a6d340e7486d56252c29455a40ace2a GIT binary patch literal 154167 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

      6n$&t}-HObEUv#@h5sa04ETi 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 O_O#0n#8W^0{r>|fFF6|k literal 0 HcmV?d00001 diff --git a/1.3/index.html b/1.3/index.html new file mode 100644 index 00000000..50c3627f --- /dev/null +++ b/1.3/index.html @@ -0,0 +1,1952 @@ + + + + + + + + + + + + + + + + + + + + + + RAPIDS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

      +
      + +
      + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + +
      +
      +
      + + + +
      +
      +
      + + +
      +
      +
      + + +
      +
      + + + + + + + + +

      Welcome to RAPIDS documentation

      +

      Reproducible Analysis Pipeline for Data Streams (RAPIDS) allows you to process smartphone and wearable data to extract and create behavioral features (a.k.a. digital biomarkers), visualize mobile sensor data, and structure your analysis into reproducible workflows.

      +

      RAPIDS is open source, documented, multi-platform, modular, tested, and reproducible. At the moment, we support data streams logged by smartphones, Fitbit wearables, and Empatica wearables in collaboration with the DBDP.

      +
      +

      Where do I start?

      +

      New to RAPIDS? Check our Overview + FAQ and minimal example

      +

      Install, configure, and execute RAPIDS to extract and plot behavioral features

      +

      Bugs should be reported on Github issues

      +

      Questions, discussions, feature requests, and feedback can be posted on our Github discussions

      +

      Keep up to date with our Twitter feed or Slack channel

      +

      Do you want to modify or add new functionality to RAPIDS? Check our contributing guide

      +

      Are you upgrading from RAPIDS 0.4.x or older? Follow this guide

      +
      +

      What are the benefits of using RAPIDS?

      +
        +
      1. Consistent analysis. Every participant sensor dataset is analyzed in the same way and isolated from each other.
      2. +
      3. Efficient analysis. Every analysis step is executed only once. Whenever your data or configuration changes, only the affected files are updated.
      4. +
      5. Parallel execution. Thanks to Snakemake, your analysis can be executed over multiple cores without changing your code.
      6. +
      7. Code-free features. Extract any of the behavioral features offered by RAPIDS without writing any code.
      8. +
      9. Extensible code. You can easily add your own data streams or behavioral features in R or Python, share them with the community, and keep authorship and citations.
      10. +
      11. Time zone aware. Your data is adjusted to one or more time zones per participant.
      12. +
      13. Flexible time segments. You can extract behavioral features on time windows of any length (e.g., 5 minutes, 3 hours, 2 days), on every day or particular days (e.g., weekends, Mondays, the 1st of each month, etc.), or around events of interest (e.g., surveys or clinical relapses).
      14. +
      15. Tested code. We are continually adding tests to make sure our behavioral features are correct.
      16. +
      17. Reproducible code. If you structure your analysis within RAPIDS, you can be sure your code will run in other computers as intended, thanks to R and Python virtual environments. You can share your analysis code along with your publications without any overhead.
      18. +
      19. Private. All your data is processed locally.
      20. +
      +

      Users and Contributors

      +
      Community Contributors

      Many thanks to our community contributions and the whole team:

      +
        +
      • Agam Kumar (CMU)
      • +
      • Yasaman S. Sefidgar (University of Washington)
      • +
      • Joe Kim (Duke University)
      • +
      • Brinnae Bent (Duke University)
      • +
      • Stephen Price (CMU)
      • +
      • Neil Singh (University of Virginia)
      • +
      +

      Many thanks to the researchers that made their work open source:

      + +
      +
      Publications using RAPIDS
        +
      • Predicting Symptoms of Depression and Anxiety Using Smartphone and Wearable Data link
      • +
      • Predicting Depression from Smartphone Behavioral Markers Using Machine Learning Methods, Hyper-parameter Optimization, and Feature Importance Analysis: An Exploratory Study link
      • +
      • Digital Biomarkers of Symptom Burden Self-Reported by Perioperative Patients Undergoing Pancreatic Surgery: Prospective Longitudinal Study link
      • +
      • An Automated Machine Learning Pipeline for Monitoring and Forecasting Mobile Health Data link
      • +
      +
      +
      +
      carnegie mellon university
      +
      digital biomarker development pipeline
      +
      university of helsinki
      +
      university of manchester
      +
      monash university
      +
      oulu university
      +
      university of pennsylvania
      +
      university of pittsburgh
      +
      university of virginia
      +
      university of washington
      +
      + + + + + + + +
      + +
      +
      + +
      + + + + +
      +
      +
      +
      + + + + + + + + + + + + \ No newline at end of file diff --git a/1.3/javascripts/extra.js b/1.3/javascripts/extra.js new file mode 100644 index 00000000..e69de29b diff --git a/1.3/migrating-from-old-versions/index.html b/1.3/migrating-from-old-versions/index.html new file mode 100644 index 00000000..bc62ddf6 --- /dev/null +++ b/1.3/migrating-from-old-versions/index.html @@ -0,0 +1,2001 @@ + + + + + + + + + + + + + + + + + + + + + + Migrating from an old version - RAPIDS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + +
      +
      +
      + + + +
      +
      +
      + + +
      +
      +
      + + +
      +
      + + + + + + + + +

      Migration guides

      +

      Migrating from RAPIDS 0.4.x or older

      +

      There are four actions that you need to take if you were using RAPIDS 0.4.3 or older (before Feb 9th, 2021):

      +
      Check the new Overview page

      Check the new Overview page. Hopefully, it is a better overview of RAPIDS and provides answers to Frequently Asked Questions.

      +
      +
      Deploy RAPIDS in a new folder
        +
      • Clone RAPIDS 1.x in a new folder (do not pull the updates in your current folder)
      • +
      • Activate your conda environment
      • +
      • Install renv again snakemake -j1 renv_install (for Ubuntu take advantage of the platform specific R renv instructions)
      • +
      • Restore renv packages snakemake -j1 renv_restore (for Ubuntu take advantage of the platform specific R renv instructions)
      • +
      • Move your participant files pxx.yaml to the new folder
      • +
      • Move your time segment files to the new folder
      • +
      • Move your .env file to the new folder
      • +
      +
      +
      Migrate your .env file to the new credentials.yaml format

      The .env file is not used anymore, the same credential groups are stored in credentials.yaml, migrate your .env file by running: +

      python tools/update_format_env.py
      +

      +
      +
      Reconfigure your config.yaml

      Reconfigure your config.yaml file by hand (don’t copy and paste the old one). Some keys and values changed but the defaults should be compatible with the things you know from RAPIDS 0.x (see below).

      +
      +

      The most relevant changes to RAPIDS that you need to know about are:

      +
      We introduced the concept of data streams

      RAPIDS abstracts sensor data logged by different devices, platforms and stored in different data containers as data streams.

      +

      The default data stream for PHONE is aware_mysql, and the default for FITBIT is fitbitjson_mysql. This is compatible with the old functionality (AWARE and JSON Fitbit data stored in MySQL). These values are set in [PHONE_DATA_STREAMS][USE] and [FITBIT_DATA_STREAMS][USE].

      +

      You can add new data stream formats (sensing apps) and containers (database engines, file types, etc.).

      +

      If you were processing your Fitbit data either in JSON or plain text (parsed) format, and it was stored in MySQL or CSV files, the changes that you made to your raw data will be compatible. Just choose fitbitjson_mysql, fitbitparsed_mysql, fitbitjson_csv, fitbitparsed_csv accordingly and set it in [FITBIT_DATA_STREAMS][USE].

      +

      In the future, you will not have to change your raw data; you will be able to just change column mappings/values in the data stream’s format.yaml file.

      +
      +
      We introduced multiple time zones

      You can now process data from participants that visited multiple time zones. The default is still a single time zone (America/New_York). See how to handle multiple time zones

      +
      +
      The keyword multiple is now infer

      When processing data from smartphones, RAPIDS allows you to infer the OS of a smartphone by using the keyword multiple in the [PLATFORM] key of participant files. Now RAPIDS uses infer instead of multiple Nonetheless, multiple still works for backward compatibility.

      +
      +
      A global DATABASE_GROUP does not exist anymore

      There is no global DATABASE_GROUP anymore. Each data stream that needs credentials to connect to a database has its own DATABASE_GROUP config key. The groups are defined in credentials.yaml instead of the .env.

      +
      +
      [DEVICE_SENSOR][TABLE] is now [DEVICE_SENSOR][CONTAINER]

      We renamed the keys [DEVICE_SENSOR][TABLE] to [DEVICE_SENSOR][CONTAINER] to reflect that, with the introduction of data streams, they can point to a database table, file, or any other data container.

      +
      +
      Creating participant files from the AWARE_DEVICE_TABLE is deprecated

      In previous versions of RAPIDS, you could create participant files automatically using the aware_device table. We deprecated this option but you can still achieve the same results if you export the output of the following SQL query as a CSV file and follow the instructions to create participant files from CSV files:

      +
      SELECT device_id, device_id as fitbit_id, CONCAT("p", _id) as empatica_id, CONCAT("p", _id) as pid, if(brand = "iPhone", "ios", "android") as platform, CONCAT("p", _id)  as label, DATE_FORMAT(FROM_UNIXTIME((timestamp/1000)- 86400), "%Y-%m-%d") as start_date, CURRENT_DATE as end_date from aware_device order by _id;
      +
      +
      +
      SCR_SCRIPT and SRC_LANGUAGE are replaced by SRC_SCRIPT

      The attributes SCR_SCRIPT and SRC_LANGUAGE of every sensor PROVIDER are replaced by SRC_SCRIPT. SRC_SCRIPT is a relative path from the RAPIDS root folder to that provider’s feature script. We did this to simplify and clarify where the features scripts are stored.

      +

      There are no actions to take unless you created your own feature provider; update it with your feature script path.

      +
      +

      Migrating from RAPIDS beta

      +

      If you were relying on the old docs and the most recent version of RAPIDS you are working with is from or before Oct 13, 2020 you are using the beta version of RAPIDS.

      +

      You can start using the RAPIDS 0.1.0 right away, just take into account the following:

      +
      Deploy RAPIDS in a new folder
        +
      • Install a new copy of RAPIDS (the R and Python virtual environments didn’t change so the cached versions will be reused)
      • +
      • Make sure you don’t skip a new Installation step to give execution permissions to the RAPIDS script: chmod +x rapids
      • +
      • Move your old .env file
      • +
      • Move your participant files
      • +
      +
      +
      Migrate your participant files

      You can migrate your old participant files to the new YAML format: +

      python tools/update_format_participant_files.py
      +

      +
      +
      Follow the new Configuration guide

      Follow the new Configuration guide

      +
      +
      Learn more about the new way to run RAPIDS

      Get familiar with the new way of Executing RAPIDS

      +
      + + + + + + +

      Comments

      + + + + + + +
      + +
      +
      + +
      + + + + +
      +
      +
      +
      + + + + + + + + + + + + \ No newline at end of file diff --git a/1.3/overrides/main.html b/1.3/overrides/main.html new file mode 100644 index 00000000..928f4ea5 --- /dev/null +++ b/1.3/overrides/main.html @@ -0,0 +1,13 @@ +{% extends "base.html" %} + +{% block disqus %} + + {% include "partials/integrations/utterances.html" %} +{% endblock %} + +{% block outdated %} + You're not viewing the latest stable version of RAPIDS. + + Click here to go to latest. + +{% endblock %} diff --git a/1.3/overrides/partials/integrations/utterances.html b/1.3/overrides/partials/integrations/utterances.html new file mode 100644 index 00000000..9bac8c43 --- /dev/null +++ b/1.3/overrides/partials/integrations/utterances.html @@ -0,0 +1,38 @@ + +{% if not page.is_homepage %} +

      {{ lang.t("meta.comments") }}

      + + + + +{% endif %} diff --git a/1.3/search/search_index.json b/1.3/search/search_index.json new file mode 100644 index 00000000..b05a0a56 --- /dev/null +++ b/1.3/search/search_index.json @@ -0,0 +1 @@ +{"config":{"lang":["en"],"min_search_length":3,"prebuild_index":false,"separator":"[\\s\\-]+"},"docs":[{"location":"","text":"Welcome to RAPIDS documentation \u00b6 Reproducible Analysis Pipeline for Data Streams (RAPIDS) allows you to process smartphone and wearable data to extract and create behavioral features (a.k.a. digital biomarkers), visualize mobile sensor data, and structure your analysis into reproducible workflows. RAPIDS is open source, documented, multi-platform, modular, tested, and reproducible. At the moment, we support data streams logged by smartphones, Fitbit wearables, and Empatica wearables in collaboration with the DBDP . Where do I start? New to RAPIDS? Check our Overview + FAQ and minimal example Install , configure , and execute RAPIDS to extract and plot behavioral features Bugs should be reported on Github issues Questions, discussions, feature requests, and feedback can be posted on our Github discussions Keep up to date with our Twitter feed or Slack channel Do you want to modify or add new functionality to RAPIDS? Check our contributing guide Are you upgrading from RAPIDS 0.4.x or older? Follow this guide What are the benefits of using RAPIDS? \u00b6 Consistent analysis . Every participant sensor dataset is analyzed in the same way and isolated from each other. Efficient analysis . Every analysis step is executed only once. Whenever your data or configuration changes, only the affected files are updated. Parallel execution . Thanks to Snakemake, your analysis can be executed over multiple cores without changing your code. Code-free features . Extract any of the behavioral features offered by RAPIDS without writing any code. Extensible code . You can easily add your own data streams or behavioral features in R or Python, share them with the community, and keep authorship and citations. Time zone aware . Your data is adjusted to one or more time zones per participant. Flexible time segments . You can extract behavioral features on time windows of any length (e.g., 5 minutes, 3 hours, 2 days), on every day or particular days (e.g., weekends, Mondays, the 1 st of each month, etc.), or around events of interest (e.g., surveys or clinical relapses). Tested code . We are continually adding tests to make sure our behavioral features are correct. Reproducible code . If you structure your analysis within RAPIDS, you can be sure your code will run in other computers as intended, thanks to R and Python virtual environments. You can share your analysis code along with your publications without any overhead. Private . All your data is processed locally. Users and Contributors \u00b6 Community Contributors Many thanks to our community contributions and the whole team : Agam Kumar (CMU) Yasaman S. Sefidgar (University of Washington) Joe Kim (Duke University) Brinnae Bent (Duke University) Stephen Price (CMU) Neil Singh (University of Virginia) Many thanks to the researchers that made their work open source: Panda et al. paper Stachl et al. paper Doryab et al. paper Barnett et al. paper Canzian et al. paper Publications using RAPIDS Predicting Symptoms of Depression and Anxiety Using Smartphone and Wearable Data link Predicting Depression from Smartphone Behavioral Markers Using Machine Learning Methods, Hyper-parameter Optimization, and Feature Importance Analysis: An Exploratory Study link Digital Biomarkers of Symptom Burden Self-Reported by Perioperative Patients Undergoing Pancreatic Surgery: Prospective Longitudinal Study link An Automated Machine Learning Pipeline for Monitoring and Forecasting Mobile Health Data link","title":"Home"},{"location":"#welcome-to-rapids-documentation","text":"Reproducible Analysis Pipeline for Data Streams (RAPIDS) allows you to process smartphone and wearable data to extract and create behavioral features (a.k.a. digital biomarkers), visualize mobile sensor data, and structure your analysis into reproducible workflows. RAPIDS is open source, documented, multi-platform, modular, tested, and reproducible. At the moment, we support data streams logged by smartphones, Fitbit wearables, and Empatica wearables in collaboration with the DBDP . Where do I start? New to RAPIDS? Check our Overview + FAQ and minimal example Install , configure , and execute RAPIDS to extract and plot behavioral features Bugs should be reported on Github issues Questions, discussions, feature requests, and feedback can be posted on our Github discussions Keep up to date with our Twitter feed or Slack channel Do you want to modify or add new functionality to RAPIDS? Check our contributing guide Are you upgrading from RAPIDS 0.4.x or older? Follow this guide","title":"Welcome to RAPIDS documentation"},{"location":"#what-are-the-benefits-of-using-rapids","text":"Consistent analysis . Every participant sensor dataset is analyzed in the same way and isolated from each other. Efficient analysis . Every analysis step is executed only once. Whenever your data or configuration changes, only the affected files are updated. Parallel execution . Thanks to Snakemake, your analysis can be executed over multiple cores without changing your code. Code-free features . Extract any of the behavioral features offered by RAPIDS without writing any code. Extensible code . You can easily add your own data streams or behavioral features in R or Python, share them with the community, and keep authorship and citations. Time zone aware . Your data is adjusted to one or more time zones per participant. Flexible time segments . You can extract behavioral features on time windows of any length (e.g., 5 minutes, 3 hours, 2 days), on every day or particular days (e.g., weekends, Mondays, the 1 st of each month, etc.), or around events of interest (e.g., surveys or clinical relapses). Tested code . We are continually adding tests to make sure our behavioral features are correct. Reproducible code . If you structure your analysis within RAPIDS, you can be sure your code will run in other computers as intended, thanks to R and Python virtual environments. You can share your analysis code along with your publications without any overhead. Private . All your data is processed locally.","title":"What are the benefits of using RAPIDS?"},{"location":"#users-and-contributors","text":"Community Contributors Many thanks to our community contributions and the whole team : Agam Kumar (CMU) Yasaman S. Sefidgar (University of Washington) Joe Kim (Duke University) Brinnae Bent (Duke University) Stephen Price (CMU) Neil Singh (University of Virginia) Many thanks to the researchers that made their work open source: Panda et al. paper Stachl et al. paper Doryab et al. paper Barnett et al. paper Canzian et al. paper Publications using RAPIDS Predicting Symptoms of Depression and Anxiety Using Smartphone and Wearable Data link Predicting Depression from Smartphone Behavioral Markers Using Machine Learning Methods, Hyper-parameter Optimization, and Feature Importance Analysis: An Exploratory Study link Digital Biomarkers of Symptom Burden Self-Reported by Perioperative Patients Undergoing Pancreatic Surgery: Prospective Longitudinal Study link An Automated Machine Learning Pipeline for Monitoring and Forecasting Mobile Health Data link","title":"Users and Contributors"},{"location":"change-log/","text":"Change Log \u00b6 v1.3.0 \u00b6 Refactor PHONE_LOCATIONS DORYAB provider. Fix bugs and faster execution up to 30x New PHONE_KEYBOARD features Add a new strategy to infer home location that can handle multiple homes for the same participant Add module to exclude sleep episodes from steps intraday features Fix PID matching when joining data from multiple participants. Now, we can handle PIDS with an arbitrary format. Fix bug that did not correctly parse participants with more than 2 phones or more than 1 wearable Fix crash when no phone data yield is needed to process location data (ALL & GPS location providers) Remove location rows with the same timestamp based on their accuracy Fix PHONE_CONVERSATION bug that produced inaccurate ratio features when time segments were not daily. Other minor bug fixes v1.2.0 \u00b6 Sleep summary and intraday features are more consistent. Add wake and bedtime features for sleep summary data. Fix bugs with sleep PRICE features. Update home page Add contributing guide v1.1.1 \u00b6 Fix length of periodic segments on days with DLS Fix crash when scraping data for an app that does not exist Add tests for phone screen data v1.1.0 \u00b6 Add Fitbit calories intraday features v1.0.1 \u00b6 Fix crash in chunk_episodes of utils.py for multi time zone data Fix crash in BT Doryab provider when the number of clusters is 2 Fix Fitbit multi time zone inference from phone data (simplify) Fix missing columns when the input for phone data yield is empty Fix wrong date time labels for event segments for multi time zone data (all labels are computed based on a single tz) Fix periodic segment crash when there are no segments to assign (only affects wday, mday, qday, or yday) Fix crash in Analysis Workflow with new suffix in segments\u2019 labels v1.0.0 \u00b6 Add a new Overview page. You can extend RAPIDS with your own data streams . Data streams are data collected with other sensing apps besides AWARE (like Beiwe, mindLAMP), and stored in other data containers (databases, files) besides MySQL. Support to analyze Empatica wearable data (thanks to Joe Kim and Brinnae Bent from the DBDP ) Support to analyze AWARE data stored in CSV files and InfluxDB databases Support to analyze data collected over multiple time zones Support for sleep intraday features from the core team and also from the community (thanks to Stephen Price) Users can comment on the documentation (powered by utterances). SCR_SCRIPT and SRC_LANGUAGE are replaced by SRC_SCRIPT . Add RAPIDS new logo Move Citation and Minimal Example page to the Setup section Add config.yaml validation schema and documentation. Now it\u2019s more difficult to modify the config.yaml file with invalid values. Add new time at home Doryab location feature Add and home coordinates to the location data file so location providers can build features based on it. If you are migrating from RAPIDS 0.4.3 or older, check this guide v0.4.3 \u00b6 Fix bug when any of the rows from any sensor do not belong a time segment v0.4.2 \u00b6 Update battery testing Fix location processing bug when certain columns don\u2019t exist Fix HR intraday bug when minutesonZONE features were 0 Update FAQs Fix HR summary bug when restinghr=0 (ignore those rows) Fix ROG, location entropy and normalized entropy in Doryab location provider Remove sampling frequency dependance in Doryab location provider Update documentation of Doryab location provider Add new FITBIT_DATA_YIELD RAPIDS provider Deprecate Doryab circadian movement feature until it is fixed v0.4.1 \u00b6 Fix bug when no error message was displayed for an empty [PHONE_DATA_YIELD][SENSORS] when resampling location data v0.4.0 \u00b6 Add four new phone sensors that can be used for PHONE_DATA_YIELD Add code so new feature providers can be added for the new four sensors Add new clustering algorithm (OPTICS) for Doryab features Update default EPS parameter for Doryab location clustering Add clearer error message for invalid phone data yield sensors Add ALL_RESAMPLED flag and accuracy limit for location features Add FAQ about null characters in phone tables Reactivate light and wifi tests and update testing docs Fix bug when parsing Fitbit steps data Fix bugs when merging features from empty time segments Fix minor issues in the documentation v0.3.2 \u00b6 Update docker and linux instructions to use RSPM binary repo for for faster installation Update CI to create a release on a tagged push that passes the tests Clarify in DB credential configuration that we only support MySQL Add Windows installation instructions Fix bugs in the create_participants_file script Fix bugs in Fitbit data parsing. Fixed Doryab location features context of clustering. Fixed the wrong shifting while calculating distance in Doryab location features. Refactored the haversine function v0.3.1 \u00b6 Update installation docs for RAPIDS\u2019 docker container Fix example analysis use of accelerometer data in a plot Update FAQ Update minimal example documentation Minor doc updates v0.3.0 \u00b6 Update R and Python virtual environments Add GH actions CI support for tests and docker Add release and test badges to README v0.2.6 \u00b6 Fix old versions banner on nested pages v0.2.5 \u00b6 Fix docs deploy typo v0.2.4 \u00b6 Fix broken links in landing page and docs deploy v0.2.3 \u00b6 Fix participant IDS in the example analysis workflow v0.2.2 \u00b6 Fix readme link to docs v0.2.1 \u00b6 FIx link to the most recent version in the old version banner v0.2.0 \u00b6 Add new PHONE_BLUETOOTH DORYAB provider Deprecate PHONE_BLUETOOTH RAPIDS provider Fix bug in filter_data_by_segment for Python when dataset was empty Minor doc updates New FAQ item v0.1.0 \u00b6 New and more consistent docs (this website). The previous docs are marked as beta Consolidate configuration instructions Flexible time segments Simplify Fitbit behavioral feature extraction and documentation Sensor\u2019s configuration and output is more consistent Update visualizations to handle flexible day segments Create a RAPIDS execution script that allows re-computation of the pipeline after configuration changes Add citation guide Update virtual environment guide Update analysis workflow example Add a Code of Conduct Update Team page","title":"Change Log"},{"location":"change-log/#change-log","text":"","title":"Change Log"},{"location":"change-log/#v130","text":"Refactor PHONE_LOCATIONS DORYAB provider. Fix bugs and faster execution up to 30x New PHONE_KEYBOARD features Add a new strategy to infer home location that can handle multiple homes for the same participant Add module to exclude sleep episodes from steps intraday features Fix PID matching when joining data from multiple participants. Now, we can handle PIDS with an arbitrary format. Fix bug that did not correctly parse participants with more than 2 phones or more than 1 wearable Fix crash when no phone data yield is needed to process location data (ALL & GPS location providers) Remove location rows with the same timestamp based on their accuracy Fix PHONE_CONVERSATION bug that produced inaccurate ratio features when time segments were not daily. Other minor bug fixes","title":"v1.3.0"},{"location":"change-log/#v120","text":"Sleep summary and intraday features are more consistent. Add wake and bedtime features for sleep summary data. Fix bugs with sleep PRICE features. Update home page Add contributing guide","title":"v1.2.0"},{"location":"change-log/#v111","text":"Fix length of periodic segments on days with DLS Fix crash when scraping data for an app that does not exist Add tests for phone screen data","title":"v1.1.1"},{"location":"change-log/#v110","text":"Add Fitbit calories intraday features","title":"v1.1.0"},{"location":"change-log/#v101","text":"Fix crash in chunk_episodes of utils.py for multi time zone data Fix crash in BT Doryab provider when the number of clusters is 2 Fix Fitbit multi time zone inference from phone data (simplify) Fix missing columns when the input for phone data yield is empty Fix wrong date time labels for event segments for multi time zone data (all labels are computed based on a single tz) Fix periodic segment crash when there are no segments to assign (only affects wday, mday, qday, or yday) Fix crash in Analysis Workflow with new suffix in segments\u2019 labels","title":"v1.0.1"},{"location":"change-log/#v100","text":"Add a new Overview page. You can extend RAPIDS with your own data streams . Data streams are data collected with other sensing apps besides AWARE (like Beiwe, mindLAMP), and stored in other data containers (databases, files) besides MySQL. Support to analyze Empatica wearable data (thanks to Joe Kim and Brinnae Bent from the DBDP ) Support to analyze AWARE data stored in CSV files and InfluxDB databases Support to analyze data collected over multiple time zones Support for sleep intraday features from the core team and also from the community (thanks to Stephen Price) Users can comment on the documentation (powered by utterances). SCR_SCRIPT and SRC_LANGUAGE are replaced by SRC_SCRIPT . Add RAPIDS new logo Move Citation and Minimal Example page to the Setup section Add config.yaml validation schema and documentation. Now it\u2019s more difficult to modify the config.yaml file with invalid values. Add new time at home Doryab location feature Add and home coordinates to the location data file so location providers can build features based on it. If you are migrating from RAPIDS 0.4.3 or older, check this guide","title":"v1.0.0"},{"location":"change-log/#v043","text":"Fix bug when any of the rows from any sensor do not belong a time segment","title":"v0.4.3"},{"location":"change-log/#v042","text":"Update battery testing Fix location processing bug when certain columns don\u2019t exist Fix HR intraday bug when minutesonZONE features were 0 Update FAQs Fix HR summary bug when restinghr=0 (ignore those rows) Fix ROG, location entropy and normalized entropy in Doryab location provider Remove sampling frequency dependance in Doryab location provider Update documentation of Doryab location provider Add new FITBIT_DATA_YIELD RAPIDS provider Deprecate Doryab circadian movement feature until it is fixed","title":"v0.4.2"},{"location":"change-log/#v041","text":"Fix bug when no error message was displayed for an empty [PHONE_DATA_YIELD][SENSORS] when resampling location data","title":"v0.4.1"},{"location":"change-log/#v040","text":"Add four new phone sensors that can be used for PHONE_DATA_YIELD Add code so new feature providers can be added for the new four sensors Add new clustering algorithm (OPTICS) for Doryab features Update default EPS parameter for Doryab location clustering Add clearer error message for invalid phone data yield sensors Add ALL_RESAMPLED flag and accuracy limit for location features Add FAQ about null characters in phone tables Reactivate light and wifi tests and update testing docs Fix bug when parsing Fitbit steps data Fix bugs when merging features from empty time segments Fix minor issues in the documentation","title":"v0.4.0"},{"location":"change-log/#v032","text":"Update docker and linux instructions to use RSPM binary repo for for faster installation Update CI to create a release on a tagged push that passes the tests Clarify in DB credential configuration that we only support MySQL Add Windows installation instructions Fix bugs in the create_participants_file script Fix bugs in Fitbit data parsing. Fixed Doryab location features context of clustering. Fixed the wrong shifting while calculating distance in Doryab location features. Refactored the haversine function","title":"v0.3.2"},{"location":"change-log/#v031","text":"Update installation docs for RAPIDS\u2019 docker container Fix example analysis use of accelerometer data in a plot Update FAQ Update minimal example documentation Minor doc updates","title":"v0.3.1"},{"location":"change-log/#v030","text":"Update R and Python virtual environments Add GH actions CI support for tests and docker Add release and test badges to README","title":"v0.3.0"},{"location":"change-log/#v026","text":"Fix old versions banner on nested pages","title":"v0.2.6"},{"location":"change-log/#v025","text":"Fix docs deploy typo","title":"v0.2.5"},{"location":"change-log/#v024","text":"Fix broken links in landing page and docs deploy","title":"v0.2.4"},{"location":"change-log/#v023","text":"Fix participant IDS in the example analysis workflow","title":"v0.2.3"},{"location":"change-log/#v022","text":"Fix readme link to docs","title":"v0.2.2"},{"location":"change-log/#v021","text":"FIx link to the most recent version in the old version banner","title":"v0.2.1"},{"location":"change-log/#v020","text":"Add new PHONE_BLUETOOTH DORYAB provider Deprecate PHONE_BLUETOOTH RAPIDS provider Fix bug in filter_data_by_segment for Python when dataset was empty Minor doc updates New FAQ item","title":"v0.2.0"},{"location":"change-log/#v010","text":"New and more consistent docs (this website). The previous docs are marked as beta Consolidate configuration instructions Flexible time segments Simplify Fitbit behavioral feature extraction and documentation Sensor\u2019s configuration and output is more consistent Update visualizations to handle flexible day segments Create a RAPIDS execution script that allows re-computation of the pipeline after configuration changes Add citation guide Update virtual environment guide Update analysis workflow example Add a Code of Conduct Update Team page","title":"v0.1.0"},{"location":"citation/","text":"Cite RAPIDS and providers \u00b6 RAPIDS and the community RAPIDS is a community effort and as such we want to continue recognizing the contributions from other researchers. Besides citing RAPIDS, we ask you to cite any of the authors listed below if you used those sensor providers in your analysis, thank you! RAPIDS \u00b6 If you used RAPIDS, please cite this paper . RAPIDS et al. citation Vega J, Li M, Aguillera K, Goel N, Joshi E, Durica KC, Kunta AR, Low CA RAPIDS: Reproducible Analysis Pipeline for Data Streams Collected with Mobile Devices JMIR Preprints. 18/08/2020:23246 DOI: 10.2196/preprints.23246 URL: https://preprints.jmir.org/preprint/23246 DBDP (all Empatica sensors) \u00b6 If you computed features using the provider [DBDP] of any of the Empatica sensors (accelerometer, heart rate, temperature, EDA, BVP, IBI, tags) cite this paper in addition to RAPIDS. Bent et al. citation Bent, B., Wang, K., Grzesiak, E., Jiang, C., Qi, Y., Jiang, Y., Cho, P., Zingler, K., Ogbeide, F.I., Zhao, A., Runge, R., Sim, I., Dunn, J. (2020). The Digital Biomarker Discovery Pipeline: An open source software platform for the development of digital biomarkers using mHealth and wearables data. Journal of Clinical and Translational Science, 1-28. doi:10.1017/cts.2020.511 Panda (accelerometer) \u00b6 If you computed accelerometer features using the provider [PHONE_ACCLEROMETER][PANDA] cite this paper in addition to RAPIDS. Panda et al. citation Panda N, Solsky I, Huang EJ, Lipsitz S, Pradarelli JC, Delisle M, Cusack JC, Gadd MA, Lubitz CC, Mullen JT, Qadan M, Smith BL, Specht M, Stephen AE, Tanabe KK, Gawande AA, Onnela JP, Haynes AB. Using Smartphones to Capture Novel Recovery Metrics After Cancer Surgery. JAMA Surg. 2020 Feb 1;155(2):123-129. doi: 10.1001/jamasurg.2019.4702. PMID: 31657854; PMCID: PMC6820047. Stachl (applications foreground) \u00b6 If you computed applications foreground features using the app category (genre) catalogue in [PHONE_APPLICATIONS_FOREGROUND][RAPIDS] cite this paper in addition to RAPIDS. Stachl et al. citation Clemens Stachl, Quay Au, Ramona Schoedel, Samuel D. Gosling, Gabriella M. Harari, Daniel Buschek, Sarah Theres V\u00f6lkel, Tobias Schuwerk, Michelle Oldemeier, Theresa Ullmann, Heinrich Hussmann, Bernd Bischl, Markus B\u00fchner. Proceedings of the National Academy of Sciences Jul 2020, 117 (30) 17680-17687; DOI: 10.1073/pnas.1920484117 Doryab (bluetooth) \u00b6 If you computed bluetooth features using the provider [PHONE_BLUETOOTH][DORYAB] cite this paper in addition to RAPIDS. Doryab et al. citation Doryab, A., Chikarsel, P., Liu, X., & Dey, A. K. (2019). Extraction of Behavioral Features from Smartphone and Wearable Data. ArXiv:1812.10394 [Cs, Stat]. http://arxiv.org/abs/1812.10394 Barnett (locations) \u00b6 If you computed locations features using the provider [PHONE_LOCATIONS][BARNETT] cite this paper and this paper in addition to RAPIDS. Barnett et al. citation Ian Barnett, Jukka-Pekka Onnela, Inferring mobility measures from GPS traces with missing data, Biostatistics, Volume 21, Issue 2, April 2020, Pages e98\u2013e112, https://doi.org/10.1093/biostatistics/kxy059 Canzian et al. citation Luca Canzian and Mirco Musolesi. 2015. Trajectories of depression: unobtrusive monitoring of depressive states by means of smartphone mobility traces analysis. In Proceedings of the 2015 ACM International Joint Conference on Pervasive and Ubiquitous Computing (UbiComp \u201815). Association for Computing Machinery, New York, NY, USA, 1293\u20131304. DOI: https://doi.org/10.1145/2750858.2805845 Doryab (locations) \u00b6 If you computed locations features using the provider [PHONE_LOCATIONS][DORYAB] cite this paper and this paper in addition to RAPIDS. In addition, if you used the SUN_LI_VEGA_STRATEGY strategy, cite this paper as well. Doryab et al. citation Doryab, A., Chikarsel, P., Liu, X., & Dey, A. K. (2019). Extraction of Behavioral Features from Smartphone and Wearable Data. ArXiv:1812.10394 [Cs, Stat]. http://arxiv.org/abs/1812.10394 Canzian et al. citation Luca Canzian and Mirco Musolesi. 2015. Trajectories of depression: unobtrusive monitoring of depressive states by means of smartphone mobility traces analysis. In Proceedings of the 2015 ACM International Joint Conference on Pervasive and Ubiquitous Computing (UbiComp \u201815). Association for Computing Machinery, New York, NY, USA, 1293\u20131304. DOI: https://doi.org/10.1145/2750858.2805845 Sun et al. citation Sun S, Folarin AA, Ranjan Y, Rashid Z, Conde P, Stewart C, Cummins N, Matcham F, Dalla Costa G, Simblett S, Leocani L, Lamers F, S\u00f8rensen PS, Buron M, Zabalza A, Guerrero P\u00e9rez AI, Penninx BW, Siddi S, Haro JM, Myin-Germeys I, Rintala A, Wykes T, Narayan VA, Comi G, Hotopf M, Dobson RJ, RADAR-CNS Consortium. Using Smartphones and Wearable Devices to Monitor Behavioral Changes During COVID-19. J Med Internet Res 2020;22(9):e19992","title":"Citation"},{"location":"citation/#cite-rapids-and-providers","text":"RAPIDS and the community RAPIDS is a community effort and as such we want to continue recognizing the contributions from other researchers. Besides citing RAPIDS, we ask you to cite any of the authors listed below if you used those sensor providers in your analysis, thank you!","title":"Cite RAPIDS and providers"},{"location":"citation/#rapids","text":"If you used RAPIDS, please cite this paper . RAPIDS et al. citation Vega J, Li M, Aguillera K, Goel N, Joshi E, Durica KC, Kunta AR, Low CA RAPIDS: Reproducible Analysis Pipeline for Data Streams Collected with Mobile Devices JMIR Preprints. 18/08/2020:23246 DOI: 10.2196/preprints.23246 URL: https://preprints.jmir.org/preprint/23246","title":"RAPIDS"},{"location":"citation/#dbdp-all-empatica-sensors","text":"If you computed features using the provider [DBDP] of any of the Empatica sensors (accelerometer, heart rate, temperature, EDA, BVP, IBI, tags) cite this paper in addition to RAPIDS. Bent et al. citation Bent, B., Wang, K., Grzesiak, E., Jiang, C., Qi, Y., Jiang, Y., Cho, P., Zingler, K., Ogbeide, F.I., Zhao, A., Runge, R., Sim, I., Dunn, J. (2020). The Digital Biomarker Discovery Pipeline: An open source software platform for the development of digital biomarkers using mHealth and wearables data. Journal of Clinical and Translational Science, 1-28. doi:10.1017/cts.2020.511","title":"DBDP (all Empatica sensors)"},{"location":"citation/#panda-accelerometer","text":"If you computed accelerometer features using the provider [PHONE_ACCLEROMETER][PANDA] cite this paper in addition to RAPIDS. Panda et al. citation Panda N, Solsky I, Huang EJ, Lipsitz S, Pradarelli JC, Delisle M, Cusack JC, Gadd MA, Lubitz CC, Mullen JT, Qadan M, Smith BL, Specht M, Stephen AE, Tanabe KK, Gawande AA, Onnela JP, Haynes AB. Using Smartphones to Capture Novel Recovery Metrics After Cancer Surgery. JAMA Surg. 2020 Feb 1;155(2):123-129. doi: 10.1001/jamasurg.2019.4702. PMID: 31657854; PMCID: PMC6820047.","title":"Panda (accelerometer)"},{"location":"citation/#stachl-applications-foreground","text":"If you computed applications foreground features using the app category (genre) catalogue in [PHONE_APPLICATIONS_FOREGROUND][RAPIDS] cite this paper in addition to RAPIDS. Stachl et al. citation Clemens Stachl, Quay Au, Ramona Schoedel, Samuel D. Gosling, Gabriella M. Harari, Daniel Buschek, Sarah Theres V\u00f6lkel, Tobias Schuwerk, Michelle Oldemeier, Theresa Ullmann, Heinrich Hussmann, Bernd Bischl, Markus B\u00fchner. Proceedings of the National Academy of Sciences Jul 2020, 117 (30) 17680-17687; DOI: 10.1073/pnas.1920484117","title":"Stachl (applications foreground)"},{"location":"citation/#doryab-bluetooth","text":"If you computed bluetooth features using the provider [PHONE_BLUETOOTH][DORYAB] cite this paper in addition to RAPIDS. Doryab et al. citation Doryab, A., Chikarsel, P., Liu, X., & Dey, A. K. (2019). Extraction of Behavioral Features from Smartphone and Wearable Data. ArXiv:1812.10394 [Cs, Stat]. http://arxiv.org/abs/1812.10394","title":"Doryab (bluetooth)"},{"location":"citation/#barnett-locations","text":"If you computed locations features using the provider [PHONE_LOCATIONS][BARNETT] cite this paper and this paper in addition to RAPIDS. Barnett et al. citation Ian Barnett, Jukka-Pekka Onnela, Inferring mobility measures from GPS traces with missing data, Biostatistics, Volume 21, Issue 2, April 2020, Pages e98\u2013e112, https://doi.org/10.1093/biostatistics/kxy059 Canzian et al. citation Luca Canzian and Mirco Musolesi. 2015. Trajectories of depression: unobtrusive monitoring of depressive states by means of smartphone mobility traces analysis. In Proceedings of the 2015 ACM International Joint Conference on Pervasive and Ubiquitous Computing (UbiComp \u201815). Association for Computing Machinery, New York, NY, USA, 1293\u20131304. DOI: https://doi.org/10.1145/2750858.2805845","title":"Barnett (locations)"},{"location":"citation/#doryab-locations","text":"If you computed locations features using the provider [PHONE_LOCATIONS][DORYAB] cite this paper and this paper in addition to RAPIDS. In addition, if you used the SUN_LI_VEGA_STRATEGY strategy, cite this paper as well. Doryab et al. citation Doryab, A., Chikarsel, P., Liu, X., & Dey, A. K. (2019). Extraction of Behavioral Features from Smartphone and Wearable Data. ArXiv:1812.10394 [Cs, Stat]. http://arxiv.org/abs/1812.10394 Canzian et al. citation Luca Canzian and Mirco Musolesi. 2015. Trajectories of depression: unobtrusive monitoring of depressive states by means of smartphone mobility traces analysis. In Proceedings of the 2015 ACM International Joint Conference on Pervasive and Ubiquitous Computing (UbiComp \u201815). Association for Computing Machinery, New York, NY, USA, 1293\u20131304. DOI: https://doi.org/10.1145/2750858.2805845 Sun et al. citation Sun S, Folarin AA, Ranjan Y, Rashid Z, Conde P, Stewart C, Cummins N, Matcham F, Dalla Costa G, Simblett S, Leocani L, Lamers F, S\u00f8rensen PS, Buron M, Zabalza A, Guerrero P\u00e9rez AI, Penninx BW, Siddi S, Haro JM, Myin-Germeys I, Rintala A, Wykes T, Narayan VA, Comi G, Hotopf M, Dobson RJ, RADAR-CNS Consortium. Using Smartphones and Wearable Devices to Monitor Behavioral Changes During COVID-19. J Med Internet Res 2020;22(9):e19992","title":"Doryab (locations)"},{"location":"code_of_conduct/","text":"Contributor Covenant Code of Conduct \u00b6 Our Pledge \u00b6 We as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation. We pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive, and healthy community. Our Standards \u00b6 Examples of behavior that contributes to a positive environment for our community include: Demonstrating empathy and kindness toward other people Being respectful of differing opinions, viewpoints, and experiences Giving and gracefully accepting constructive feedback Accepting responsibility and apologizing to those affected by our mistakes, and learning from the experience Focusing on what is best not just for us as individuals, but for the overall community Examples of unacceptable behavior include: The use of sexualized language or imagery, and sexual attention or advances of any kind Trolling, insulting or derogatory comments, and personal or political attacks Public or private harassment Publishing others\u2019 private information, such as a physical or email address, without their explicit permission Other conduct which could reasonably be considered inappropriate in a professional setting Enforcement Responsibilities \u00b6 Community leaders are responsible for clarifying and enforcing our standards of acceptable behavior and will take appropriate and fair corrective action in response to any behavior that they deem inappropriate, threatening, offensive, or harmful. Community leaders have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, and will communicate reasons for moderation decisions when appropriate. Scope \u00b6 This Code of Conduct applies within all community spaces, and also applies when an individual is officially representing the community in public spaces. Examples of representing our community include using an official e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Enforcement \u00b6 Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the community leaders responsible for enforcement at moshi@pitt.edu . All complaints will be reviewed and investigated promptly and fairly. All community leaders are obligated to respect the privacy and security of the reporter of any incident. Enforcement Guidelines \u00b6 Community leaders will follow these Community Impact Guidelines in determining the consequences for any action they deem in violation of this Code of Conduct: 1. Correction \u00b6 Community Impact : Use of inappropriate language or other behavior deemed unprofessional or unwelcome in the community. Consequence : A private, written warning from community leaders, providing clarity around the nature of the violation and an explanation of why the behavior was inappropriate. A public apology may be requested. 2. Warning \u00b6 Community Impact : A violation through a single incident or series of actions. Consequence : A warning with consequences for continued behavior. No interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, for a specified period of time. This includes avoiding interactions in community spaces as well as external channels like social media. Violating these terms may lead to a temporary or permanent ban. 3. Temporary Ban \u00b6 Community Impact : A serious violation of community standards, including sustained inappropriate behavior. Consequence : A temporary ban from any sort of interaction or public communication with the community for a specified period of time. No public or private interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, is allowed during this period. Violating these terms may lead to a permanent ban. 4. Permanent Ban \u00b6 Community Impact : Demonstrating a pattern of violation of community standards, including sustained inappropriate behavior, harassment of an individual, or aggression toward or disparagement of classes of individuals. Consequence : A permanent ban from any sort of public interaction within the community. Attribution \u00b6 This Code of Conduct is adapted from the Contributor Covenant , version 2.0, available at https://www.contributor-covenant.org/version/2/0/code_of_conduct.html . Community Impact Guidelines were inspired by Mozilla\u2019s code of conduct enforcement ladder . For answers to common questions about this code of conduct, see the FAQ at https://www.contributor-covenant.org/faq . Translations are available at https://www.contributor-covenant.org/translations .","title":"Code of Conduct"},{"location":"code_of_conduct/#contributor-covenant-code-of-conduct","text":"","title":"Contributor Covenant Code of Conduct"},{"location":"code_of_conduct/#our-pledge","text":"We as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation. We pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive, and healthy community.","title":"Our Pledge"},{"location":"code_of_conduct/#our-standards","text":"Examples of behavior that contributes to a positive environment for our community include: Demonstrating empathy and kindness toward other people Being respectful of differing opinions, viewpoints, and experiences Giving and gracefully accepting constructive feedback Accepting responsibility and apologizing to those affected by our mistakes, and learning from the experience Focusing on what is best not just for us as individuals, but for the overall community Examples of unacceptable behavior include: The use of sexualized language or imagery, and sexual attention or advances of any kind Trolling, insulting or derogatory comments, and personal or political attacks Public or private harassment Publishing others\u2019 private information, such as a physical or email address, without their explicit permission Other conduct which could reasonably be considered inappropriate in a professional setting","title":"Our Standards"},{"location":"code_of_conduct/#enforcement-responsibilities","text":"Community leaders are responsible for clarifying and enforcing our standards of acceptable behavior and will take appropriate and fair corrective action in response to any behavior that they deem inappropriate, threatening, offensive, or harmful. Community leaders have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, and will communicate reasons for moderation decisions when appropriate.","title":"Enforcement Responsibilities"},{"location":"code_of_conduct/#scope","text":"This Code of Conduct applies within all community spaces, and also applies when an individual is officially representing the community in public spaces. Examples of representing our community include using an official e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event.","title":"Scope"},{"location":"code_of_conduct/#enforcement","text":"Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the community leaders responsible for enforcement at moshi@pitt.edu . All complaints will be reviewed and investigated promptly and fairly. All community leaders are obligated to respect the privacy and security of the reporter of any incident.","title":"Enforcement"},{"location":"code_of_conduct/#enforcement-guidelines","text":"Community leaders will follow these Community Impact Guidelines in determining the consequences for any action they deem in violation of this Code of Conduct:","title":"Enforcement Guidelines"},{"location":"code_of_conduct/#1-correction","text":"Community Impact : Use of inappropriate language or other behavior deemed unprofessional or unwelcome in the community. Consequence : A private, written warning from community leaders, providing clarity around the nature of the violation and an explanation of why the behavior was inappropriate. A public apology may be requested.","title":"1. Correction"},{"location":"code_of_conduct/#2-warning","text":"Community Impact : A violation through a single incident or series of actions. Consequence : A warning with consequences for continued behavior. No interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, for a specified period of time. This includes avoiding interactions in community spaces as well as external channels like social media. Violating these terms may lead to a temporary or permanent ban.","title":"2. Warning"},{"location":"code_of_conduct/#3-temporary-ban","text":"Community Impact : A serious violation of community standards, including sustained inappropriate behavior. Consequence : A temporary ban from any sort of interaction or public communication with the community for a specified period of time. No public or private interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, is allowed during this period. Violating these terms may lead to a permanent ban.","title":"3. Temporary Ban"},{"location":"code_of_conduct/#4-permanent-ban","text":"Community Impact : Demonstrating a pattern of violation of community standards, including sustained inappropriate behavior, harassment of an individual, or aggression toward or disparagement of classes of individuals. Consequence : A permanent ban from any sort of public interaction within the community.","title":"4. Permanent Ban"},{"location":"code_of_conduct/#attribution","text":"This Code of Conduct is adapted from the Contributor Covenant , version 2.0, available at https://www.contributor-covenant.org/version/2/0/code_of_conduct.html . Community Impact Guidelines were inspired by Mozilla\u2019s code of conduct enforcement ladder . For answers to common questions about this code of conduct, see the FAQ at https://www.contributor-covenant.org/faq . Translations are available at https://www.contributor-covenant.org/translations .","title":"Attribution"},{"location":"common-errors/","text":"Common Errors \u00b6 Cannot connect to your MySQL server \u00b6 Problem **Error in .local ( drv, \\. .. ) :** **Failed to connect to database: Error: Can \\' t initialize character set unknown ( path: compiled \\_ in ) ** : Calls: dbConnect -> dbConnect -> .local -> .Call Execution halted [ Tue Mar 10 19 :40:15 2020 ] Error in rule download_dataset: jobid: 531 output: data/raw/p60/locations_raw.csv RuleException: CalledProcessError in line 20 of /home/ubuntu/rapids/rules/preprocessing.snakefile: Command 'set -euo pipefail; Rscript --vanilla /home/ubuntu/rapids/.snakemake/scripts/tmp_2jnvqs7.download_dataset.R' returned non-zero exit status 1 . File \"/home/ubuntu/rapids/rules/preprocessing.snakefile\" , line 20 , in __rule_download_dataset File \"/home/ubuntu/anaconda3/envs/moshi-env/lib/python3.7/concurrent/futures/thread.py\" , line 57 , in run Shutting down, this might take some time. Exiting because a job execution failed. Look above for error message Solution Please make sure the DATABASE_GROUP in config.yaml matches your DB credentials group in .env . Cannot start mysql in linux via brew services start mysql \u00b6 Problem Cannot start mysql in linux via brew services start mysql Solution Use mysql.server start Every time I run force the download_dataset rule all rules are executed \u00b6 Problem When running snakemake -j1 -R pull_phone_data or ./rapids -j1 -R pull_phone_data all the rules and files are re-computed Solution This is expected behavior. The advantage of using snakemake under the hood is that every time a file containing data is modified every rule that depends on that file will be re-executed to update their results. In this case, since download_dataset updates all the raw data, and you are forcing the rule with the flag -R every single rule that depends on those raw files will be executed. Error Table XXX doesn't exist while running the download_phone_data or download_fitbit_data rule. \u00b6 Problem Error in .local ( conn, statement, ... ) : could not run statement: Table 'db_name.table_name' doesn ' t exist Calls: colnames ... .local -> dbSendQuery -> dbSendQuery -> .local -> .Call Execution halted Solution Please make sure the sensors listed in [PHONE_VALID_SENSED_BINS][PHONE_SENSORS] and the [CONTAINER] of each sensor you activated in config.yaml match your database tables or files. How do I install RAPIDS on Ubuntu 16.04 \u00b6 Solution Install dependencies (Homebrew - if not installed): sudo apt-get install libmariadb-client-lgpl-dev libxml2-dev libssl-dev Install brew for linux and add the following line to ~/.bashrc : export PATH=$HOME/.linuxbrew/bin:$PATH source ~/.bashrc Install MySQL brew install mysql brew services start mysql Install R, pandoc and rmarkdown: brew install r brew install gcc@6 (needed due to this bug ) HOMEBREW_CC=gcc-6 brew install pandoc Install miniconda using these instructions Clone our repo: git clone https://github.com/carissalow/rapids Create a python virtual environment: cd rapids conda env create -f environment.yml -n MY_ENV_NAME conda activate MY_ENV_NAME Install R packages and virtual environment: snakemake renv_install snakemake renv_init snakemake renv_restore This step could take several minutes to complete. Please be patient and let it run until completion. mysql.h cannot be found \u00b6 Problem -------------------------- [ ERROR MESSAGE ] ---------------------------- :1:10: fatal error: mysql.h: No such file or directory compilation terminated. ----------------------------------------------------------------------- ERROR: configuration failed for package 'RMySQL' Solution sudo apt install libmariadbclient-dev No package libcurl found \u00b6 Problem libcurl cannot be found Solution Install libcurl sudo apt install libcurl4-openssl-dev Configuration failed because openssl was not found. \u00b6 Problem openssl cannot be found Solution Install openssl sudo apt install libssl-dev Configuration failed because libxml-2.0 was not found \u00b6 Problem libxml-2.0 cannot be found Solution Install libxml-2.0 sudo apt install libxml2-dev SSL connection error when running RAPIDS \u00b6 Problem You are getting the following error message when running RAPIDS: Error: Failed to connect: SSL connection error: error:1425F102:SSL routines:ssl_choose_client_version:unsupported protocol. Solution This is a bug in Ubuntu 20.04 when trying to connect to an old MySQL server with MySQL client 8.0. You should get the same error message if you try to connect from the command line. There you can add the option --ssl-mode=DISABLED but we can't do this from the R connector. If you can't update your server, the quickest solution would be to import your database to another server or to a local environment. Alternatively, you could replace mysql-client and libmysqlclient-dev with mariadb-client and libmariadbclient-dev and reinstall renv. More info about this issue here DB_TABLES key not found \u00b6 Problem If you get the following error KeyError in line 43 of preprocessing.smk: 'PHONE_SENSORS' , it means that the indentation of the key [PHONE_SENSORS] is not matching the other child elements of PHONE_VALID_SENSED_BINS Solution You need to add or remove any leading whitespaces as needed on that line. PHONE_VALID_SENSED_BINS : COMPUTE : False # This flag is automatically ignored (set to True) if you are extracting PHONE_VALID_SENSED_DAYS or screen or Barnett's location features BIN_SIZE : &bin_size 5 # (in minutes) PHONE_SENSORS : [] Error while updating your conda environment in Ubuntu \u00b6 Problem You get the following error: CondaMultiError: CondaVerificationError: The package for tk located at /home/ubuntu/miniconda2/pkgs/tk-8.6.9-hed695b0_1003 appears to be corrupted. The path 'include/mysqlStubs.h' specified in the package manifest cannot be found. ClobberError: This transaction has incompatible packages due to a shared path. packages: conda-forge/linux-64::llvm-openmp-10.0.0-hc9558a2_0, anaconda/linux-64::intel-openmp-2019.4-243 path: 'lib/libiomp5.so' Solution Reinstall conda Embedded nul in string \u00b6 Problem You get the following error when downloading sensor data: Error in result_fetch ( res@ptr, n = n ) : embedded nul in string: Solution This problem is due to the way RMariaDB handles a mismatch between data types in R and MySQL (see this issue ). Since it seems this problem won\u2019t be handled by RMariaDB , you have two options: Remove the the null character from the conflictive table cell(s). You can adapt the following query on a MySQL server 8.0 or older update YOUR_TABLE set YOUR_COLUMN = regexp_replace ( YOUR_COLUMN , '\\0' , '' ); If it\u2019s not feasible to modify your data you can try swapping RMariaDB with RMySQL . Just have in mind you might have problems connecting to modern MySQL servers running in Linux: Add RMySQL to the renv environment by running the following command in a terminal open on RAPIDS root folder R -e 'renv::install(\"RMySQL\")' Go to src/data/streams/pull_phone_data.R or src/data/streams/pull_fitbit_data.R and replace library(RMariaDB) with library(RMySQL) In the same file(s) replace dbEngine <- dbConnect(MariaDB(), default.file = \"./.env\", group = group) with dbEngine <- dbConnect(MySQL(), default.file = \"./.env\", group = group) There is no package called RMariaDB \u00b6 Problem You get the following error when executing RAPIDS: Error in library ( RMariaDB ) : there is no package called 'RMariaDB' Execution halted Solution In RAPIDS v0.1.0 we replaced RMySQL R package with RMariaDB , this error means your R virtual environment is out of date, to update it run snakemake -j1 renv_restore Unrecognized output timezone \u201cAmerica/New_York\u201d \u00b6 Problem When running RAPIDS with R 4.0.3 on MacOS on M1, lubridate may throw an error associated with the timezone. Error in C_force_tz ( time, tz = tzone, roll ) : CCTZ: Unrecognized output timezone: \"America/New_York\" Calls: get_timestamp_filter ... .parse_date_time -> .strptime -> force_tz -> C_force_tz Solution This is because R timezone library is not set. Please add Sys.setenv(\u201cTZDIR\u201d = file.path(R.home(), \u201cshare\u201d, \u201czoneinfo\u201d)) to the file active.R in renv folder to set the timezone library. For further details on how to test if TZDIR is properly set, please refer to https://github.com/tidyverse/lubridate/issues/928#issuecomment-720059233 . Unimplemented MAX_NO_FIELD_TYPES \u00b6 Problem You get the following error when downloading Fitbit data: Error: Unimplemented MAX_NO_FIELD_TYPES Execution halted Solution At the moment RMariaDB cannot handle MySQL columns of JSON type. Change the type of your Fitbit data column to longtext (note that the content will not change and will still be a JSON object just interpreted as a string). Running RAPIDS on Apple Silicon M1 Mac \u00b6 Problem You get the following error when installing pandoc or running rapids: MoSHI/rapids/renv/staging/1/00LOCK-KernSmooth/00new/KernSmooth/libs/KernSmooth.so: mach-0, but wrong architecture Solution As of Feb 2020 in M1 macs, R needs to be installed via brew under Rosetta (x86 arch) due to some incompatibility with selected R libraries. To do this, run your terminal via Rosetta , then proceed with the usual brew installation command. x86 homebrew should be installed in /usr/local/bin/brew , you can check which brew you are using by typing which brew . Then use x86 homebrew to install R and restore RAPIDS packages ( renv_restore ).","title":"Common Errors"},{"location":"common-errors/#common-errors","text":"","title":"Common Errors"},{"location":"common-errors/#cannot-connect-to-your-mysql-server","text":"Problem **Error in .local ( drv, \\. .. ) :** **Failed to connect to database: Error: Can \\' t initialize character set unknown ( path: compiled \\_ in ) ** : Calls: dbConnect -> dbConnect -> .local -> .Call Execution halted [ Tue Mar 10 19 :40:15 2020 ] Error in rule download_dataset: jobid: 531 output: data/raw/p60/locations_raw.csv RuleException: CalledProcessError in line 20 of /home/ubuntu/rapids/rules/preprocessing.snakefile: Command 'set -euo pipefail; Rscript --vanilla /home/ubuntu/rapids/.snakemake/scripts/tmp_2jnvqs7.download_dataset.R' returned non-zero exit status 1 . File \"/home/ubuntu/rapids/rules/preprocessing.snakefile\" , line 20 , in __rule_download_dataset File \"/home/ubuntu/anaconda3/envs/moshi-env/lib/python3.7/concurrent/futures/thread.py\" , line 57 , in run Shutting down, this might take some time. Exiting because a job execution failed. Look above for error message Solution Please make sure the DATABASE_GROUP in config.yaml matches your DB credentials group in .env .","title":"Cannot connect to your MySQL server"},{"location":"common-errors/#cannot-start-mysql-in-linux-via-brew-services-start-mysql","text":"Problem Cannot start mysql in linux via brew services start mysql Solution Use mysql.server start","title":"Cannot start mysql in linux via brew services start mysql"},{"location":"common-errors/#every-time-i-run-force-the-download_dataset-rule-all-rules-are-executed","text":"Problem When running snakemake -j1 -R pull_phone_data or ./rapids -j1 -R pull_phone_data all the rules and files are re-computed Solution This is expected behavior. The advantage of using snakemake under the hood is that every time a file containing data is modified every rule that depends on that file will be re-executed to update their results. In this case, since download_dataset updates all the raw data, and you are forcing the rule with the flag -R every single rule that depends on those raw files will be executed.","title":"Every time I run force the download_dataset rule all rules are executed"},{"location":"common-errors/#error-table-xxx-doesnt-exist-while-running-the-download_phone_data-or-download_fitbit_data-rule","text":"Problem Error in .local ( conn, statement, ... ) : could not run statement: Table 'db_name.table_name' doesn ' t exist Calls: colnames ... .local -> dbSendQuery -> dbSendQuery -> .local -> .Call Execution halted Solution Please make sure the sensors listed in [PHONE_VALID_SENSED_BINS][PHONE_SENSORS] and the [CONTAINER] of each sensor you activated in config.yaml match your database tables or files.","title":"Error Table XXX doesn't exist while running the download_phone_data or download_fitbit_data rule."},{"location":"common-errors/#how-do-i-install-rapids-on-ubuntu-1604","text":"Solution Install dependencies (Homebrew - if not installed): sudo apt-get install libmariadb-client-lgpl-dev libxml2-dev libssl-dev Install brew for linux and add the following line to ~/.bashrc : export PATH=$HOME/.linuxbrew/bin:$PATH source ~/.bashrc Install MySQL brew install mysql brew services start mysql Install R, pandoc and rmarkdown: brew install r brew install gcc@6 (needed due to this bug ) HOMEBREW_CC=gcc-6 brew install pandoc Install miniconda using these instructions Clone our repo: git clone https://github.com/carissalow/rapids Create a python virtual environment: cd rapids conda env create -f environment.yml -n MY_ENV_NAME conda activate MY_ENV_NAME Install R packages and virtual environment: snakemake renv_install snakemake renv_init snakemake renv_restore This step could take several minutes to complete. Please be patient and let it run until completion.","title":"How do I install RAPIDS on Ubuntu 16.04"},{"location":"common-errors/#mysqlh-cannot-be-found","text":"Problem -------------------------- [ ERROR MESSAGE ] ---------------------------- :1:10: fatal error: mysql.h: No such file or directory compilation terminated. ----------------------------------------------------------------------- ERROR: configuration failed for package 'RMySQL' Solution sudo apt install libmariadbclient-dev","title":"mysql.h cannot be found"},{"location":"common-errors/#no-package-libcurl-found","text":"Problem libcurl cannot be found Solution Install libcurl sudo apt install libcurl4-openssl-dev","title":"No package libcurl found"},{"location":"common-errors/#configuration-failed-because-openssl-was-not-found","text":"Problem openssl cannot be found Solution Install openssl sudo apt install libssl-dev","title":"Configuration failed because openssl was not found."},{"location":"common-errors/#configuration-failed-because-libxml-20-was-not-found","text":"Problem libxml-2.0 cannot be found Solution Install libxml-2.0 sudo apt install libxml2-dev","title":"Configuration failed because libxml-2.0 was not found"},{"location":"common-errors/#ssl-connection-error-when-running-rapids","text":"Problem You are getting the following error message when running RAPIDS: Error: Failed to connect: SSL connection error: error:1425F102:SSL routines:ssl_choose_client_version:unsupported protocol. Solution This is a bug in Ubuntu 20.04 when trying to connect to an old MySQL server with MySQL client 8.0. You should get the same error message if you try to connect from the command line. There you can add the option --ssl-mode=DISABLED but we can't do this from the R connector. If you can't update your server, the quickest solution would be to import your database to another server or to a local environment. Alternatively, you could replace mysql-client and libmysqlclient-dev with mariadb-client and libmariadbclient-dev and reinstall renv. More info about this issue here","title":"SSL connection error when running RAPIDS"},{"location":"common-errors/#db_tables-key-not-found","text":"Problem If you get the following error KeyError in line 43 of preprocessing.smk: 'PHONE_SENSORS' , it means that the indentation of the key [PHONE_SENSORS] is not matching the other child elements of PHONE_VALID_SENSED_BINS Solution You need to add or remove any leading whitespaces as needed on that line. PHONE_VALID_SENSED_BINS : COMPUTE : False # This flag is automatically ignored (set to True) if you are extracting PHONE_VALID_SENSED_DAYS or screen or Barnett's location features BIN_SIZE : &bin_size 5 # (in minutes) PHONE_SENSORS : []","title":"DB_TABLES key not found"},{"location":"common-errors/#error-while-updating-your-conda-environment-in-ubuntu","text":"Problem You get the following error: CondaMultiError: CondaVerificationError: The package for tk located at /home/ubuntu/miniconda2/pkgs/tk-8.6.9-hed695b0_1003 appears to be corrupted. The path 'include/mysqlStubs.h' specified in the package manifest cannot be found. ClobberError: This transaction has incompatible packages due to a shared path. packages: conda-forge/linux-64::llvm-openmp-10.0.0-hc9558a2_0, anaconda/linux-64::intel-openmp-2019.4-243 path: 'lib/libiomp5.so' Solution Reinstall conda","title":"Error while updating your conda environment in Ubuntu"},{"location":"common-errors/#embedded-nul-in-string","text":"Problem You get the following error when downloading sensor data: Error in result_fetch ( res@ptr, n = n ) : embedded nul in string: Solution This problem is due to the way RMariaDB handles a mismatch between data types in R and MySQL (see this issue ). Since it seems this problem won\u2019t be handled by RMariaDB , you have two options: Remove the the null character from the conflictive table cell(s). You can adapt the following query on a MySQL server 8.0 or older update YOUR_TABLE set YOUR_COLUMN = regexp_replace ( YOUR_COLUMN , '\\0' , '' ); If it\u2019s not feasible to modify your data you can try swapping RMariaDB with RMySQL . Just have in mind you might have problems connecting to modern MySQL servers running in Linux: Add RMySQL to the renv environment by running the following command in a terminal open on RAPIDS root folder R -e 'renv::install(\"RMySQL\")' Go to src/data/streams/pull_phone_data.R or src/data/streams/pull_fitbit_data.R and replace library(RMariaDB) with library(RMySQL) In the same file(s) replace dbEngine <- dbConnect(MariaDB(), default.file = \"./.env\", group = group) with dbEngine <- dbConnect(MySQL(), default.file = \"./.env\", group = group)","title":"Embedded nul in string"},{"location":"common-errors/#there-is-no-package-called-rmariadb","text":"Problem You get the following error when executing RAPIDS: Error in library ( RMariaDB ) : there is no package called 'RMariaDB' Execution halted Solution In RAPIDS v0.1.0 we replaced RMySQL R package with RMariaDB , this error means your R virtual environment is out of date, to update it run snakemake -j1 renv_restore","title":"There is no package called RMariaDB"},{"location":"common-errors/#unrecognized-output-timezone-americanew_york","text":"Problem When running RAPIDS with R 4.0.3 on MacOS on M1, lubridate may throw an error associated with the timezone. Error in C_force_tz ( time, tz = tzone, roll ) : CCTZ: Unrecognized output timezone: \"America/New_York\" Calls: get_timestamp_filter ... .parse_date_time -> .strptime -> force_tz -> C_force_tz Solution This is because R timezone library is not set. Please add Sys.setenv(\u201cTZDIR\u201d = file.path(R.home(), \u201cshare\u201d, \u201czoneinfo\u201d)) to the file active.R in renv folder to set the timezone library. For further details on how to test if TZDIR is properly set, please refer to https://github.com/tidyverse/lubridate/issues/928#issuecomment-720059233 .","title":"Unrecognized output timezone \"America/New_York\""},{"location":"common-errors/#unimplemented-max_no_field_types","text":"Problem You get the following error when downloading Fitbit data: Error: Unimplemented MAX_NO_FIELD_TYPES Execution halted Solution At the moment RMariaDB cannot handle MySQL columns of JSON type. Change the type of your Fitbit data column to longtext (note that the content will not change and will still be a JSON object just interpreted as a string).","title":"Unimplemented MAX_NO_FIELD_TYPES"},{"location":"common-errors/#running-rapids-on-apple-silicon-m1-mac","text":"Problem You get the following error when installing pandoc or running rapids: MoSHI/rapids/renv/staging/1/00LOCK-KernSmooth/00new/KernSmooth/libs/KernSmooth.so: mach-0, but wrong architecture Solution As of Feb 2020 in M1 macs, R needs to be installed via brew under Rosetta (x86 arch) due to some incompatibility with selected R libraries. To do this, run your terminal via Rosetta , then proceed with the usual brew installation command. x86 homebrew should be installed in /usr/local/bin/brew , you can check which brew you are using by typing which brew . Then use x86 homebrew to install R and restore RAPIDS packages ( renv_restore ).","title":"Running RAPIDS on Apple Silicon M1 Mac"},{"location":"contributing/","text":"Contributing \u00b6 Thank you for taking the time to contribute! All changes, small or big, are welcome, and regardless of who you are, we are always happy to work together to make your contribution as strong as possible. We follow the Covenant Code of Conduct , so we ask you to uphold it. Be kind to everyone in the community, and please report unacceptable behavior to moshiresearch@gmail.com . Questions, Feature Requests, and Discussions \u00b6 Post any questions, feature requests, or discussions in our GitHub Discussions tab . Bug Reports \u00b6 Report any bugs in our GithHub issue tracker keeping in mind to: Debug and simplify the problem to create a minimal example. For example, reduce the problem to a single participant, sensor, and a few rows of data. Provide a clear and succinct description of the problem (expected behavior vs. actual behavior). Attach your config.yaml , time segments file, and time zones file if appropriate. Attach test data if possible and any screenshots or extra resources that will help us debug the problem. Share the commit you are running: git rev-parse --short HEAD Share your OS version (e.g., Windows 10) Share the device/sensor you are processing (e.g., phone accelerometer) Documentation Contributions \u00b6 If you want to fix a typo or any other minor changes, you can edit the file online by clicking on the pencil icon at the top right of any page and opening a pull request using Github\u2019s website If your changes are more complex, clone RAPIDS\u2019 repository, setup the dev environment for our documentation with this tutorial , and submit any changes on a new feature branch following our git flow . Code Contributions \u00b6 Hints for any code changes To submit any new code, use a new feature branch following our git flow . If you neeed a new Python or R package in RAPIDS\u2019 virtual environments, follow this tutorial If you need to change the config.yaml you will need to update its validation schema with this tutorial New Data Streams \u00b6 New data containers. If you want to process data from a device RAPIDS supports ( see this table ) but it\u2019s stored in a database engine or file type we don\u2019t support yet, implement a new data stream container and format . You can copy and paste the format.yaml of one of the other streams of the device you are targeting. New sensing apps. If you want to add support for new smartphone sensing apps like Beiwe, implement a new data stream container and format . New wearable devices. If you want to add support for a new wearable, open a Github discussion , so we can add the necessary initial configuration files and code. New Behavioral Features \u00b6 If you want to add new behavioral features for mobile sensors RAPIDS already supports, follow this tutorial . A sensor is supported if it has a configuration section in config.yaml . If you want to add new behavioral features for mobile sensors RAPIDS does not support yet, open a Github discussion , so we can add the necessary initial configuration files and code. New Tests \u00b6 If you want to add new tests for existent behavioral features, follow this tutorial . New Visualizations \u00b6 Open a Github discussion , so we can add the necessary initial configuration files and code.","title":"Contributing"},{"location":"contributing/#contributing","text":"Thank you for taking the time to contribute! All changes, small or big, are welcome, and regardless of who you are, we are always happy to work together to make your contribution as strong as possible. We follow the Covenant Code of Conduct , so we ask you to uphold it. Be kind to everyone in the community, and please report unacceptable behavior to moshiresearch@gmail.com .","title":"Contributing"},{"location":"contributing/#questions-feature-requests-and-discussions","text":"Post any questions, feature requests, or discussions in our GitHub Discussions tab .","title":"Questions, Feature Requests, and Discussions"},{"location":"contributing/#bug-reports","text":"Report any bugs in our GithHub issue tracker keeping in mind to: Debug and simplify the problem to create a minimal example. For example, reduce the problem to a single participant, sensor, and a few rows of data. Provide a clear and succinct description of the problem (expected behavior vs. actual behavior). Attach your config.yaml , time segments file, and time zones file if appropriate. Attach test data if possible and any screenshots or extra resources that will help us debug the problem. Share the commit you are running: git rev-parse --short HEAD Share your OS version (e.g., Windows 10) Share the device/sensor you are processing (e.g., phone accelerometer)","title":"Bug Reports"},{"location":"contributing/#documentation-contributions","text":"If you want to fix a typo or any other minor changes, you can edit the file online by clicking on the pencil icon at the top right of any page and opening a pull request using Github\u2019s website If your changes are more complex, clone RAPIDS\u2019 repository, setup the dev environment for our documentation with this tutorial , and submit any changes on a new feature branch following our git flow .","title":"Documentation Contributions"},{"location":"contributing/#code-contributions","text":"Hints for any code changes To submit any new code, use a new feature branch following our git flow . If you neeed a new Python or R package in RAPIDS\u2019 virtual environments, follow this tutorial If you need to change the config.yaml you will need to update its validation schema with this tutorial","title":"Code Contributions"},{"location":"contributing/#new-data-streams","text":"New data containers. If you want to process data from a device RAPIDS supports ( see this table ) but it\u2019s stored in a database engine or file type we don\u2019t support yet, implement a new data stream container and format . You can copy and paste the format.yaml of one of the other streams of the device you are targeting. New sensing apps. If you want to add support for new smartphone sensing apps like Beiwe, implement a new data stream container and format . New wearable devices. If you want to add support for a new wearable, open a Github discussion , so we can add the necessary initial configuration files and code.","title":"New Data Streams"},{"location":"contributing/#new-behavioral-features","text":"If you want to add new behavioral features for mobile sensors RAPIDS already supports, follow this tutorial . A sensor is supported if it has a configuration section in config.yaml . If you want to add new behavioral features for mobile sensors RAPIDS does not support yet, open a Github discussion , so we can add the necessary initial configuration files and code.","title":"New Behavioral Features"},{"location":"contributing/#new-tests","text":"If you want to add new tests for existent behavioral features, follow this tutorial .","title":"New Tests"},{"location":"contributing/#new-visualizations","text":"Open a Github discussion , so we can add the necessary initial configuration files and code.","title":"New Visualizations"},{"location":"migrating-from-old-versions/","text":"Migration guides \u00b6 Migrating from RAPIDS 0.4.x or older \u00b6 There are four actions that you need to take if you were using RAPIDS 0.4.3 or older ( before Feb 9 th , 2021 ): Check the new Overview page Check the new Overview page. Hopefully, it is a better overview of RAPIDS and provides answers to Frequently Asked Questions. Deploy RAPIDS in a new folder Clone RAPIDS 1.x in a new folder (do not pull the updates in your current folder) Activate your conda environment Install renv again snakemake -j1 renv_install (for Ubuntu take advantage of the platform specific R renv instructions ) Restore renv packages snakemake -j1 renv_restore (for Ubuntu take advantage of the platform specific R renv instructions ) Move your participant files pxx.yaml to the new folder Move your time segment files to the new folder Move your .env file to the new folder Migrate your .env file to the new credentials.yaml format The .env file is not used anymore, the same credential groups are stored in credentials.yaml , migrate your .env file by running: python tools/update_format_env.py Reconfigure your config.yaml Reconfigure your config.yaml file by hand (don\u2019t copy and paste the old one). Some keys and values changed but the defaults should be compatible with the things you know from RAPIDS 0.x (see below). The most relevant changes to RAPIDS that you need to know about are: We introduced the concept of data streams RAPIDS abstracts sensor data logged by different devices, platforms and stored in different data containers as data streams . The default data stream for PHONE is aware_mysql , and the default for FITBIT is fitbitjson_mysql . This is compatible with the old functionality (AWARE and JSON Fitbit data stored in MySQL). These values are set in [PHONE_DATA_STREAMS][USE] and [FITBIT_DATA_STREAMS][USE] . You can add new data stream formats (sensing apps) and containers (database engines, file types, etc.). If you were processing your Fitbit data either in JSON or plain text (parsed) format, and it was stored in MySQL or CSV files, the changes that you made to your raw data will be compatible. Just choose fitbitjson_mysql , fitbitparsed_mysql , fitbitjson_csv , fitbitparsed_csv accordingly and set it in [FITBIT_DATA_STREAMS][USE] . In the future, you will not have to change your raw data; you will be able to just change column mappings/values in the data stream\u2019s format.yaml file. We introduced multiple time zones You can now process data from participants that visited multiple time zones. The default is still a single time zone (America/New_York). See how to handle multiple time zones The keyword multiple is now infer When processing data from smartphones, RAPIDS allows you to infer the OS of a smartphone by using the keyword multiple in the [PLATFORM] key of participant files. Now RAPIDS uses infer instead of multiple Nonetheless, multiple still works for backward compatibility. A global DATABASE_GROUP does not exist anymore There is no global DATABASE_GROUP anymore. Each data stream that needs credentials to connect to a database has its own DATABASE_GROUP config key . The groups are defined in credentials.yaml instead of the .env . [DEVICE_SENSOR][TABLE] is now [DEVICE_SENSOR][CONTAINER] We renamed the keys [DEVICE_SENSOR][TABLE] to [DEVICE_SENSOR][CONTAINER] to reflect that, with the introduction of data streams, they can point to a database table, file, or any other data container. Creating participant files from the AWARE_DEVICE_TABLE is deprecated In previous versions of RAPIDS, you could create participant files automatically using the aware_device table. We deprecated this option but you can still achieve the same results if you export the output of the following SQL query as a CSV file and follow the instructions to create participant files from CSV files : SELECT device_id , device_id as fitbit_id , CONCAT ( \"p\" , _id ) as empatica_id , CONCAT ( \"p\" , _id ) as pid , if ( brand = \"iPhone\" , \"ios\" , \"android\" ) as platform , CONCAT ( \"p\" , _id ) as label , DATE_FORMAT ( FROM_UNIXTIME (( timestamp / 1000 ) - 86400 ), \"%Y-%m-%d\" ) as start_date , CURRENT_DATE as end_date from aware_device order by _id ; SCR_SCRIPT and SRC_LANGUAGE are replaced by SRC_SCRIPT The attributes SCR_SCRIPT and SRC_LANGUAGE of every sensor PROVIDER are replaced by SRC_SCRIPT . SRC_SCRIPT is a relative path from the RAPIDS root folder to that provider\u2019s feature script. We did this to simplify and clarify where the features scripts are stored. There are no actions to take unless you created your own feature provider; update it with your feature script path. Migrating from RAPIDS beta \u00b6 If you were relying on the old docs and the most recent version of RAPIDS you are working with is from or before Oct 13, 2020 you are using the beta version of RAPIDS. You can start using the RAPIDS 0.1.0 right away, just take into account the following: Deploy RAPIDS in a new folder Install a new copy of RAPIDS (the R and Python virtual environments didn\u2019t change so the cached versions will be reused) Make sure you don\u2019t skip a new Installation step to give execution permissions to the RAPIDS script: chmod +x rapids Move your old .env file Move your participant files Migrate your participant files You can migrate your old participant files to the new YAML format: python tools/update_format_participant_files.py Follow the new Configuration guide Follow the new Configuration guide Learn more about the new way to run RAPIDS Get familiar with the new way of Executing RAPIDS","title":"Migrating from an old version"},{"location":"migrating-from-old-versions/#migration-guides","text":"","title":"Migration guides"},{"location":"migrating-from-old-versions/#migrating-from-rapids-04x-or-older","text":"There are four actions that you need to take if you were using RAPIDS 0.4.3 or older ( before Feb 9 th , 2021 ): Check the new Overview page Check the new Overview page. Hopefully, it is a better overview of RAPIDS and provides answers to Frequently Asked Questions. Deploy RAPIDS in a new folder Clone RAPIDS 1.x in a new folder (do not pull the updates in your current folder) Activate your conda environment Install renv again snakemake -j1 renv_install (for Ubuntu take advantage of the platform specific R renv instructions ) Restore renv packages snakemake -j1 renv_restore (for Ubuntu take advantage of the platform specific R renv instructions ) Move your participant files pxx.yaml to the new folder Move your time segment files to the new folder Move your .env file to the new folder Migrate your .env file to the new credentials.yaml format The .env file is not used anymore, the same credential groups are stored in credentials.yaml , migrate your .env file by running: python tools/update_format_env.py Reconfigure your config.yaml Reconfigure your config.yaml file by hand (don\u2019t copy and paste the old one). Some keys and values changed but the defaults should be compatible with the things you know from RAPIDS 0.x (see below). The most relevant changes to RAPIDS that you need to know about are: We introduced the concept of data streams RAPIDS abstracts sensor data logged by different devices, platforms and stored in different data containers as data streams . The default data stream for PHONE is aware_mysql , and the default for FITBIT is fitbitjson_mysql . This is compatible with the old functionality (AWARE and JSON Fitbit data stored in MySQL). These values are set in [PHONE_DATA_STREAMS][USE] and [FITBIT_DATA_STREAMS][USE] . You can add new data stream formats (sensing apps) and containers (database engines, file types, etc.). If you were processing your Fitbit data either in JSON or plain text (parsed) format, and it was stored in MySQL or CSV files, the changes that you made to your raw data will be compatible. Just choose fitbitjson_mysql , fitbitparsed_mysql , fitbitjson_csv , fitbitparsed_csv accordingly and set it in [FITBIT_DATA_STREAMS][USE] . In the future, you will not have to change your raw data; you will be able to just change column mappings/values in the data stream\u2019s format.yaml file. We introduced multiple time zones You can now process data from participants that visited multiple time zones. The default is still a single time zone (America/New_York). See how to handle multiple time zones The keyword multiple is now infer When processing data from smartphones, RAPIDS allows you to infer the OS of a smartphone by using the keyword multiple in the [PLATFORM] key of participant files. Now RAPIDS uses infer instead of multiple Nonetheless, multiple still works for backward compatibility. A global DATABASE_GROUP does not exist anymore There is no global DATABASE_GROUP anymore. Each data stream that needs credentials to connect to a database has its own DATABASE_GROUP config key . The groups are defined in credentials.yaml instead of the .env . [DEVICE_SENSOR][TABLE] is now [DEVICE_SENSOR][CONTAINER] We renamed the keys [DEVICE_SENSOR][TABLE] to [DEVICE_SENSOR][CONTAINER] to reflect that, with the introduction of data streams, they can point to a database table, file, or any other data container. Creating participant files from the AWARE_DEVICE_TABLE is deprecated In previous versions of RAPIDS, you could create participant files automatically using the aware_device table. We deprecated this option but you can still achieve the same results if you export the output of the following SQL query as a CSV file and follow the instructions to create participant files from CSV files : SELECT device_id , device_id as fitbit_id , CONCAT ( \"p\" , _id ) as empatica_id , CONCAT ( \"p\" , _id ) as pid , if ( brand = \"iPhone\" , \"ios\" , \"android\" ) as platform , CONCAT ( \"p\" , _id ) as label , DATE_FORMAT ( FROM_UNIXTIME (( timestamp / 1000 ) - 86400 ), \"%Y-%m-%d\" ) as start_date , CURRENT_DATE as end_date from aware_device order by _id ; SCR_SCRIPT and SRC_LANGUAGE are replaced by SRC_SCRIPT The attributes SCR_SCRIPT and SRC_LANGUAGE of every sensor PROVIDER are replaced by SRC_SCRIPT . SRC_SCRIPT is a relative path from the RAPIDS root folder to that provider\u2019s feature script. We did this to simplify and clarify where the features scripts are stored. There are no actions to take unless you created your own feature provider; update it with your feature script path.","title":"Migrating from RAPIDS 0.4.x or older"},{"location":"migrating-from-old-versions/#migrating-from-rapids-beta","text":"If you were relying on the old docs and the most recent version of RAPIDS you are working with is from or before Oct 13, 2020 you are using the beta version of RAPIDS. You can start using the RAPIDS 0.1.0 right away, just take into account the following: Deploy RAPIDS in a new folder Install a new copy of RAPIDS (the R and Python virtual environments didn\u2019t change so the cached versions will be reused) Make sure you don\u2019t skip a new Installation step to give execution permissions to the RAPIDS script: chmod +x rapids Move your old .env file Move your participant files Migrate your participant files You can migrate your old participant files to the new YAML format: python tools/update_format_participant_files.py Follow the new Configuration guide Follow the new Configuration guide Learn more about the new way to run RAPIDS Get familiar with the new way of Executing RAPIDS","title":"Migrating from RAPIDS beta"},{"location":"team/","text":"RAPIDS Team \u00b6 If you are interested in contributing feel free to submit a pull request or contact us. Core Team \u00b6 Julio Vega (Designer and Lead Developer) \u00b6 About Julio Vega is a postdoctoral associate at the Mobile Sensing + Health Institute. He is interested in personalized methodologies to monitor chronic conditions that affect daily human behavior using mobile and wearable data. vegaju at upmc . edu Personal Website Meng Li \u00b6 About Meng Li received her Master of Science degree in Information Science from the University of Pittsburgh. She is interested in applying machine learning algorithms to the medical field. lim11 at upmc . edu Linkedin Profile Github Profile Abhineeth Reddy Kunta \u00b6 About Abhineeth Reddy Kunta is a Senior Software Engineer with the Mobile Sensing + Health Institute. He is experienced in software development and specializes in building solutions using machine learning. Abhineeth likes exploring ways to leverage technology in advancing medicine and education. Previously he worked as a Computer Programmer at Georgia Department of Public Health. He has a master\u2019s degree in Computer Science from George Mason University. Kwesi Aguillera \u00b6 About Kwesi Aguillera is currently in his first year at the University of Pittsburgh pursuing a Master of Sciences in Information Science specializing in Big Data Analytics. He received his Bachelor of Science degree in Computer Science and Management from the University of the West Indies. Kwesi considers himself a full stack developer and looks forward to applying this knowledge to big data analysis. Linkedin Profile Echhit Joshi \u00b6 About Echhit Joshi is a Masters student at the School of Computing and Information at University of Pittsburgh. His areas of interest are Machine/Deep Learning, Data Mining, and Analytics. Linkedin Profile Nicolas Leo \u00b6 About Nicolas is a rising senior studying computer science at the University of Pittsburgh. His academic interests include databases, machine learning, and application development. After completing his undergraduate degree, he plans to attend graduate school for a MS in Computer Science with a focus on Intelligent Systems. Nikunj Goel \u00b6 About Nik is a graduate student at the University of Pittsburgh pursuing Master of Science in Information Science. He earned his Bachelor of Technology degree in Information Technology from India. He is a Data Enthusiasts and passionate about finding the meaning out of raw data. In a long term, his goal is to create a breakthrough in Data Science and Deep Learning. Linkedin Profile Community Contributors \u00b6 Agam Kumar \u00b6 About Agam is a junior at Carnegie Mellon University studying Statistics and Machine Learning and pursuing an additional major in Computer Science. He is a member of the Data Science team in the Health and Human Performance Lab at CMU and has keen interests in software development and data science. His research interests include ML applications in medicine. Linkedin Profile Github Profile Yasaman S. Sefidgar \u00b6 About Linkedin Profile Joe Kim \u00b6 About Personal Website Brinnae Bent \u00b6 About Personal Website Stephen Price \u00b6 About Carnegie Mellon University Neil Singh \u00b6 About University of Virginia Advisors \u00b6 Afsaneh Doryab \u00b6 About Personal Website Carissa Low \u00b6 About Profile","title":"Team"},{"location":"team/#rapids-team","text":"If you are interested in contributing feel free to submit a pull request or contact us.","title":"RAPIDS Team"},{"location":"team/#core-team","text":"","title":"Core Team"},{"location":"team/#julio-vega-designer-and-lead-developer","text":"About Julio Vega is a postdoctoral associate at the Mobile Sensing + Health Institute. He is interested in personalized methodologies to monitor chronic conditions that affect daily human behavior using mobile and wearable data. vegaju at upmc . edu Personal Website","title":"Julio Vega (Designer and Lead Developer)"},{"location":"team/#meng-li","text":"About Meng Li received her Master of Science degree in Information Science from the University of Pittsburgh. She is interested in applying machine learning algorithms to the medical field. lim11 at upmc . edu Linkedin Profile Github Profile","title":"Meng Li"},{"location":"team/#abhineeth-reddy-kunta","text":"About Abhineeth Reddy Kunta is a Senior Software Engineer with the Mobile Sensing + Health Institute. He is experienced in software development and specializes in building solutions using machine learning. Abhineeth likes exploring ways to leverage technology in advancing medicine and education. Previously he worked as a Computer Programmer at Georgia Department of Public Health. He has a master\u2019s degree in Computer Science from George Mason University.","title":"Abhineeth Reddy Kunta"},{"location":"team/#kwesi-aguillera","text":"About Kwesi Aguillera is currently in his first year at the University of Pittsburgh pursuing a Master of Sciences in Information Science specializing in Big Data Analytics. He received his Bachelor of Science degree in Computer Science and Management from the University of the West Indies. Kwesi considers himself a full stack developer and looks forward to applying this knowledge to big data analysis. Linkedin Profile","title":"Kwesi Aguillera"},{"location":"team/#echhit-joshi","text":"About Echhit Joshi is a Masters student at the School of Computing and Information at University of Pittsburgh. His areas of interest are Machine/Deep Learning, Data Mining, and Analytics. Linkedin Profile","title":"Echhit Joshi"},{"location":"team/#nicolas-leo","text":"About Nicolas is a rising senior studying computer science at the University of Pittsburgh. His academic interests include databases, machine learning, and application development. After completing his undergraduate degree, he plans to attend graduate school for a MS in Computer Science with a focus on Intelligent Systems.","title":"Nicolas Leo"},{"location":"team/#nikunj-goel","text":"About Nik is a graduate student at the University of Pittsburgh pursuing Master of Science in Information Science. He earned his Bachelor of Technology degree in Information Technology from India. He is a Data Enthusiasts and passionate about finding the meaning out of raw data. In a long term, his goal is to create a breakthrough in Data Science and Deep Learning. Linkedin Profile","title":"Nikunj Goel"},{"location":"team/#community-contributors","text":"","title":"Community Contributors"},{"location":"team/#agam-kumar","text":"About Agam is a junior at Carnegie Mellon University studying Statistics and Machine Learning and pursuing an additional major in Computer Science. He is a member of the Data Science team in the Health and Human Performance Lab at CMU and has keen interests in software development and data science. His research interests include ML applications in medicine. Linkedin Profile Github Profile","title":"Agam Kumar"},{"location":"team/#yasaman-s-sefidgar","text":"About Linkedin Profile","title":"Yasaman S. Sefidgar"},{"location":"team/#joe-kim","text":"About Personal Website","title":"Joe Kim"},{"location":"team/#brinnae-bent","text":"About Personal Website","title":"Brinnae Bent"},{"location":"team/#stephen-price","text":"About Carnegie Mellon University","title":"Stephen Price"},{"location":"team/#neil-singh","text":"About University of Virginia","title":"Neil Singh"},{"location":"team/#advisors","text":"","title":"Advisors"},{"location":"team/#afsaneh-doryab","text":"About Personal Website","title":"Afsaneh Doryab"},{"location":"team/#carissa-low","text":"About Profile","title":"Carissa Low"},{"location":"datastreams/add-new-data-streams/","text":"Add New Data Streams \u00b6 A data stream is a set of sensor data collected using a specific type of device with a specific format and stored in a specific container . RAPIDS is agnostic to data streams\u2019 formats and container; see the Data Streams Introduction for a list of supported streams. A container is queried with an R or Python script that connects to the database, API or file where your stream\u2019s raw data is stored. A format is described using a format.yaml file that specifies how to map and mutate your stream\u2019s raw data to match the data and format RAPIDS needs. The most common cases when you would want to implement a new data stream are: You collected data with a mobile sensing app RAPIDS does not support yet. For example, Beiwe data stored in MySQL. You will need to define a new format file and a new container script. You collected data with a mobile sensing app RAPIDS supports, but this data is stored in a container that RAPIDS can\u2019t connect to yet. For example, AWARE data stored in PostgreSQL. In this case, you can reuse the format file of the aware_mysql stream, but you will need to implement a new container script. Hint Both the container.[R|py] and the format.yaml are stored in ./src/data/streams/[stream_name] where [stream_name] can be aware_mysql for example. Implement a Container \u00b6 The container script of a data stream can be implemented in R (strongly recommended) or python. This script must have two functions if you are implementing a stream for phone data or one function otherwise. The script can contain other auxiliary functions. First of all, add any parameters your script might need in config.yaml under (device)_DATA_STREAMS . These parameters will be available in the stream_parameters argument of the one or two functions you implement. For example, if you are adding support for Beiwe data stored in PostgreSQL and your container needs a set of credentials to connect to a database, your new data stream configuration would be: PHONE_DATA_STREAMS : USE : aware_python # AVAILABLE: aware_mysql : DATABASE_GROUP : MY_GROUP beiwe_postgresql : DATABASE_GROUP : MY_GROUP # users define this group (user, password, host, etc.) in credentials.yaml Then implement one or both of the following functions: pull_data This function returns the data columns for a specific sensor and participant. It has the following parameters: Param Description stream_parameters Any parameters (keys/values) set by the user in any [DEVICE_DATA_STREAMS][stream_name] key of config.yaml . For example, [DATABASE_GROUP] inside [FITBIT_DATA_STREAMS][fitbitjson_mysql] sensor_container The value set by the user in any [DEVICE_SENSOR][CONTAINER] key of config.yaml . It can be a table, file path, or whatever data source you want to support that contains the data from a single sensor for all participants . For example, [PHONE_ACCELEROMETER][CONTAINER] device The device id that you need to get the data for (this is set by the user in the participant files ). For example, in AWARE this device id is a uuid columns A list of the columns that you need to get from sensor_container . You specify these columns in your stream\u2019s format.yaml Example This is the pull_data function we implemented for aware_mysql . Note that we can message , warn or stop the user during execution. pull_data <- function ( stream_parameters , device , sensor_container , columns ){ # get_db_engine is an auxiliary function not shown here for brevity bu can be found in src/data/streams/aware_mysql/container.R dbEngine <- get_db_engine ( stream_parameters $ DATABASE_GROUP ) query <- paste0 ( \"SELECT \" , paste ( columns , collapse = \",\" ), \" FROM \" , sensor_container , \" WHERE device_id = '\" , device , \"'\" ) # Letting the user know what we are doing message ( paste0 ( \"Executing the following query to download data: \" , query )) sensor_data <- dbGetQuery ( dbEngine , query ) dbDisconnect ( dbEngine ) if ( nrow ( sensor_data ) == 0 ) warning ( paste ( \"The device '\" , device , \"' did not have data in \" , sensor_container )) return ( sensor_data ) } infer_device_os Warning This function is only necessary for phone data streams. RAPIDS allows users to use the keyword infer (previously multiple ) to automatically infer the mobile Operative System a phone was running. If you have a way to infer the OS of a device id, implement this function. For example, for AWARE data we use the aware_device table. If you don\u2019t have a way to infer the OS, call stop(\"Error Message\") so other users know they can\u2019t use infer or the inference failed, and they have to assign the OS manually in the participant file. This function returns the operative system ( android or ios ) for a specific phone device id. It has the following parameters: Param Description stream_parameters Any parameters (keys/values) set by the user in any [DEVICE_DATA_STREAMS][stream_name] key of config.yaml . For example, [DATABASE_GROUP] inside [FITBIT_DATA_STREAMS][fitbitjson_mysql] device The device id that you need to infer the OS for (this is set by the user in the participant files ). For example, in AWARE this device id is a uuid Example This is the infer_device_os function we implemented for aware_mysql . Note that we can message , warn or stop the user during execution. infer_device_os <- function ( stream_parameters , device ){ # get_db_engine is an auxiliary function not shown here for brevity bu can be found in src/data/streams/aware_mysql/container.R group <- stream_parameters $ DATABASE_GROUP dbEngine <- dbConnect ( MariaDB (), default.file = \"./.env\" , group = group ) query <- paste0 ( \"SELECT device_id,brand FROM aware_device WHERE device_id = '\" , device , \"'\" ) message ( paste0 ( \"Executing the following query to infer phone OS: \" , query )) os <- dbGetQuery ( dbEngine , query ) dbDisconnect ( dbEngine ) if ( nrow ( os ) > 0 ) return ( os %>% mutate ( os = ifelse ( brand == \"iPhone\" , \"ios\" , \"android\" )) %>% pull ( os )) else stop ( paste ( \"We cannot infer the OS of the following device id because it does not exist in the aware_device table:\" , device )) return ( os ) } Implement a Format \u00b6 A format file format.yaml describes the mapping between your stream\u2019s raw data and the data that RAPIDS needs. This file has a section per sensor (e.g. PHONE_ACCELEROMETER ), and each section has two attributes (keys): RAPIDS_COLUMN_MAPPINGS are mappings between the columns RAPIDS needs and the columns your raw data already has. The reserved keyword FLAG_TO_MUTATE flags columns that RAPIDS requires but that are not initially present in your container (database, CSV file). These columns have to be created by your mutation scripts. MUTATION . Sometimes your raw data needs to be transformed to match the format RAPIDS can handle (including creating columns marked as FLAG_TO_MUTATE ) COLUMN_MAPPINGS are mappings between the columns a mutation SCRIPT needs and the columns your raw data has. SCRIPTS are a collection of R or Python scripts that transform one or more raw data columns into the format RAPIDS needs. Hint [RAPIDS_COLUMN_MAPPINGS] and [MUTATE][COLUMN_MAPPINGS] have a key (left-hand side string) and a value (right-hand side string). The values are the names used to pulled columns from a container (e.g., columns in a database table). All values are renamed to their keys in lower case. The renamed columns are sent to every mutation script within the data argument, and the final output is the input RAPIDS process further. For example, let\u2019s assume we are implementing beiwe_mysql and defining the following format for PHONE_FAKESENSOR : PHONE_FAKESENSOR : ANDROID : RAPIDS_COLUMN_MAPPINGS : TIMESTAMP : beiwe_timestamp DEVICE_ID : beiwe_deviceID MAGNITUDE_SQUARED : FLAG_TO_MUTATE MUTATE : COLUMN_MAPPINGS : MAGNITUDE : beiwe_value SCRIPTS : - src/data/streams/mutations/phone/square_magnitude.py RAPIDS will: Download beiwe_timestamp , beiwe_deviceID , and beiwe_value from the container of beiwe_mysql (MySQL DB) Rename these columns to timestamp , device_id , and magnitude , respectively. Execute square_magnitude.py with a data frame as an argument containing the renamed columns. This script will square magnitude and rename it to magnitude_squared Verify the data frame returned by square_magnitude.py has the columns RAPIDS needs timestamp , device_id , and magnitude_squared . Use this data frame as the input to be processed in the pipeline. Note that although RAPIDS_COLUMN_MAPPINGS and [MUTATE][COLUMN_MAPPINGS] keys are in capital letters for readability (e.g. MAGNITUDE_SQUARED ), the names of the final columns you mutate in your scripts should be lower case. Let\u2019s explain in more depth this column mapping with examples. Name mapping \u00b6 The mapping for some sensors is straightforward. For example, accelerometer data most of the time has a timestamp, three axes (x,y,z), and a device id that produced it. AWARE and a different sensing app like Beiwe likely logged accelerometer data in the same way but with different column names. In this case, we only need to match Beiwe data columns to RAPIDS columns one-to-one: PHONE_ACCELEROMETER : ANDROID : RAPIDS_COLUMN_MAPPINGS : TIMESTAMP : beiwe_timestamp DEVICE_ID : beiwe_deviceID DOUBLE_VALUES_0 : beiwe_x DOUBLE_VALUES_1 : beiwe_y DOUBLE_VALUES_2 : beiwe_z MUTATE : COLUMN_MAPPINGS : SCRIPTS : # it's ok if this is empty Value mapping \u00b6 For some sensors, we need to map column names and values. For example, screen data has ON and OFF events; let\u2019s suppose Beiwe represents an ON event with the number 1, but RAPIDS identifies ON events with the number 2 . In this case, we need to mutate the raw data coming from Beiwe and replace all 1 s with 2 s. We do this by listing one or more R or Python scripts in MUTATION_SCRIPTS that will be executed in order. We usually store all mutation scripts under src/data/streams/mutations/[device]/[platform]/ and they can be reused across data streams. PHONE_SCREEN : ANDROID : RAPIDS_COLUMN_MAPPINGS : TIMESTAMP : beiwe_timestamp DEVICE_ID : beiwe_deviceID EVENT : beiwe_event MUTATE : COLUMN_MAPPINGS : SCRIPTS : - src/data/streams/mutations/phone/beiwe/beiwe_screen_map.py Hint A MUTATION_SCRIPT can also be used to clean/preprocess your data before extracting behavioral features. A mutation script has to have a main function that receives two arguments, data and stream_parameters . The stream_parameters argument contains the config.yaml key/values of your data stream (this is the same argument that your container.[py|R] script receives, see Implement a Container ). python Example of a python mutation script import pandas as pd def main ( data , stream_parameters ): # mutate data return ( data ) R Example of a R mutation script source ( \"renv/activate.R\" ) # needed to use RAPIDS renv environment library ( dplyr ) main <- function ( data , stream_parameters ){ # mutate data return ( data ) } Complex mapping \u00b6 Sometimes, your raw data doesn\u2019t even have the same columns RAPIDS expects for a sensor. For example, let\u2019s pretend Beiwe stores PHONE_ACCELEROMETER axis data in a single column called acc_col instead of three. You have to create a MUTATION_SCRIPT to split acc_col into three columns x , y , and z . For this, you mark the three axes columns RAPIDS needs in [RAPIDS_COLUMN_MAPPINGS] with the word FLAG_TO_MUTATE , map acc_col in [MUTATION][COLUMN_MAPPINGS] , and list a Python script under [MUTATION][SCRIPTS] with the code to split acc_col . See an example below. RAPIDS expects that every column mapped as FLAG_TO_MUTATE will be generated by your mutation script, so it won\u2019t try to retrieve them from your container (database, CSV file, etc.). In our example, acc_col will be fetched from the stream\u2019s container and renamed to JOINED_AXES because beiwe_split_acc.py will split it into double_values_0 , double_values_1 , and double_values_2 . PHONE_ACCELEROMETER : ANDROID : RAPIDS_COLUMN_MAPPINGS : TIMESTAMP : beiwe_timestamp DEVICE_ID : beiwe_deviceID DOUBLE_VALUES_0 : FLAG_TO_MUTATE DOUBLE_VALUES_1 : FLAG_TO_MUTATE DOUBLE_VALUES_2 : FLAG_TO_MUTATE MUTATE : COLUMN_MAPPINGS : JOINED_AXES : acc_col SCRIPTS : - src/data/streams/mutations/phone/beiwe/beiwe_split_acc.py This is a draft of beiwe_split_acc.py MUTATION_SCRIPT : import pandas as pd def main ( data , stream_parameters ): # data has the acc_col # split acc_col into three columns: double_values_0, double_values_1, double_values_2 to match RAPIDS format # remove acc_col since we don't need it anymore return ( data ) OS complex mapping \u00b6 There is a special case for a complex mapping scenario for smartphone data streams. The Android and iOS sensor APIs return data in different formats for certain sensors (like screen, activity recognition, battery, among others). In case you didn\u2019t notice, the examples we have used so far are grouped under an ANDROID key, which means they will be applied to data collected by Android phones. Additionally, each sensor has an IOS key for a similar purpose. We use the complex mapping described above to transform iOS data into an Android format (it\u2019s always iOS to Android and any new phone data stream must do the same). For example, this is the format.yaml key for PHONE_ACTVITY_RECOGNITION . Note that the ANDROID mapping is simple (one-to-one) but the IOS mapping is complex with three FLAG_TO_MUTATE columns, two [MUTATE][COLUMN_MAPPINGS] mappings, and one [MUTATION][SCRIPT] . PHONE_ACTIVITY_RECOGNITION : ANDROID : RAPIDS_COLUMN_MAPPINGS : TIMESTAMP : timestamp DEVICE_ID : device_id ACTIVITY_TYPE : activity_type ACTIVITY_NAME : activity_name CONFIDENCE : confidence MUTATION : COLUMN_MAPPINGS : SCRIPTS : IOS : RAPIDS_COLUMN_MAPPINGS : TIMESTAMP : timestamp DEVICE_ID : device_id ACTIVITY_TYPE : FLAG_TO_MUTATE ACTIVITY_NAME : FLAG_TO_MUTATE CONFIDENCE : FLAG_TO_MUTATE MUTATION : COLUMN_MAPPINGS : ACTIVITIES : activities CONFIDENCE : confidence SCRIPTS : - \"src/data/streams/mutations/phone/aware/activity_recogniton_ios_unification.R\" Example activity_recogniton_ios_unification.R In this MUTATION_SCRIPT we create ACTIVITY_NAME and ACTIVITY_TYPE based on activities , and map confidence iOS values to Android values. source ( \"renv/activate.R\" ) library ( \"dplyr\" , warn.conflicts = F ) library ( stringr ) clean_ios_activity_column <- function ( ios_gar ){ ios_gar <- ios_gar %>% mutate ( activities = str_replace_all ( activities , pattern = '(\"|\\\\[|\\\\])' , replacement = \"\" )) existent_multiple_activities <- ios_gar %>% filter ( str_detect ( activities , \",\" )) %>% group_by ( activities ) %>% summarise ( mutiple_activities = unique ( activities ), .groups = \"drop_last\" ) %>% pull ( mutiple_activities ) known_multiple_activities <- c ( \"stationary,automotive\" ) unkown_multiple_actvities <- setdiff ( existent_multiple_activities , known_multiple_activities ) if ( length ( unkown_multiple_actvities ) > 0 ){ stop ( paste0 ( \"There are unkwown combinations of ios activities, you need to implement the decision of the ones to keep: \" , unkown_multiple_actvities )) } ios_gar <- ios_gar %>% mutate ( activities = str_replace_all ( activities , pattern = \"stationary,automotive\" , replacement = \"automotive\" )) return ( ios_gar ) } unify_ios_activity_recognition <- function ( ios_gar ){ # We only need to unify Google Activity Recognition data for iOS # discard rows where activities column is blank ios_gar <- ios_gar [ - which ( ios_gar $ activities == \"\" ), ] # clean \"activities\" column of ios_gar ios_gar <- clean_ios_activity_column ( ios_gar ) # make it compatible with android version: generate \"activity_name\" and \"activity_type\" columns ios_gar <- ios_gar %>% mutate ( activity_name = case_when ( activities == \"automotive\" ~ \"in_vehicle\" , activities == \"cycling\" ~ \"on_bicycle\" , activities == \"walking\" ~ \"walking\" , activities == \"running\" ~ \"running\" , activities == \"stationary\" ~ \"still\" ), activity_type = case_when ( activities == \"automotive\" ~ 0 , activities == \"cycling\" ~ 1 , activities == \"walking\" ~ 7 , activities == \"running\" ~ 8 , activities == \"stationary\" ~ 3 , activities == \"unknown\" ~ 4 ), confidence = case_when ( confidence == 0 ~ 0 , confidence == 1 ~ 50 , confidence == 2 ~ 100 ) ) %>% select ( - activities ) return ( ios_gar ) } main <- function ( data , stream_parameters ){ return ( unify_ios_activity_recognition ( data , stream_parameters )) }","title":"Add New Data Streams"},{"location":"datastreams/add-new-data-streams/#add-new-data-streams","text":"A data stream is a set of sensor data collected using a specific type of device with a specific format and stored in a specific container . RAPIDS is agnostic to data streams\u2019 formats and container; see the Data Streams Introduction for a list of supported streams. A container is queried with an R or Python script that connects to the database, API or file where your stream\u2019s raw data is stored. A format is described using a format.yaml file that specifies how to map and mutate your stream\u2019s raw data to match the data and format RAPIDS needs. The most common cases when you would want to implement a new data stream are: You collected data with a mobile sensing app RAPIDS does not support yet. For example, Beiwe data stored in MySQL. You will need to define a new format file and a new container script. You collected data with a mobile sensing app RAPIDS supports, but this data is stored in a container that RAPIDS can\u2019t connect to yet. For example, AWARE data stored in PostgreSQL. In this case, you can reuse the format file of the aware_mysql stream, but you will need to implement a new container script. Hint Both the container.[R|py] and the format.yaml are stored in ./src/data/streams/[stream_name] where [stream_name] can be aware_mysql for example.","title":"Add New Data Streams"},{"location":"datastreams/add-new-data-streams/#implement-a-container","text":"The container script of a data stream can be implemented in R (strongly recommended) or python. This script must have two functions if you are implementing a stream for phone data or one function otherwise. The script can contain other auxiliary functions. First of all, add any parameters your script might need in config.yaml under (device)_DATA_STREAMS . These parameters will be available in the stream_parameters argument of the one or two functions you implement. For example, if you are adding support for Beiwe data stored in PostgreSQL and your container needs a set of credentials to connect to a database, your new data stream configuration would be: PHONE_DATA_STREAMS : USE : aware_python # AVAILABLE: aware_mysql : DATABASE_GROUP : MY_GROUP beiwe_postgresql : DATABASE_GROUP : MY_GROUP # users define this group (user, password, host, etc.) in credentials.yaml Then implement one or both of the following functions: pull_data This function returns the data columns for a specific sensor and participant. It has the following parameters: Param Description stream_parameters Any parameters (keys/values) set by the user in any [DEVICE_DATA_STREAMS][stream_name] key of config.yaml . For example, [DATABASE_GROUP] inside [FITBIT_DATA_STREAMS][fitbitjson_mysql] sensor_container The value set by the user in any [DEVICE_SENSOR][CONTAINER] key of config.yaml . It can be a table, file path, or whatever data source you want to support that contains the data from a single sensor for all participants . For example, [PHONE_ACCELEROMETER][CONTAINER] device The device id that you need to get the data for (this is set by the user in the participant files ). For example, in AWARE this device id is a uuid columns A list of the columns that you need to get from sensor_container . You specify these columns in your stream\u2019s format.yaml Example This is the pull_data function we implemented for aware_mysql . Note that we can message , warn or stop the user during execution. pull_data <- function ( stream_parameters , device , sensor_container , columns ){ # get_db_engine is an auxiliary function not shown here for brevity bu can be found in src/data/streams/aware_mysql/container.R dbEngine <- get_db_engine ( stream_parameters $ DATABASE_GROUP ) query <- paste0 ( \"SELECT \" , paste ( columns , collapse = \",\" ), \" FROM \" , sensor_container , \" WHERE device_id = '\" , device , \"'\" ) # Letting the user know what we are doing message ( paste0 ( \"Executing the following query to download data: \" , query )) sensor_data <- dbGetQuery ( dbEngine , query ) dbDisconnect ( dbEngine ) if ( nrow ( sensor_data ) == 0 ) warning ( paste ( \"The device '\" , device , \"' did not have data in \" , sensor_container )) return ( sensor_data ) } infer_device_os Warning This function is only necessary for phone data streams. RAPIDS allows users to use the keyword infer (previously multiple ) to automatically infer the mobile Operative System a phone was running. If you have a way to infer the OS of a device id, implement this function. For example, for AWARE data we use the aware_device table. If you don\u2019t have a way to infer the OS, call stop(\"Error Message\") so other users know they can\u2019t use infer or the inference failed, and they have to assign the OS manually in the participant file. This function returns the operative system ( android or ios ) for a specific phone device id. It has the following parameters: Param Description stream_parameters Any parameters (keys/values) set by the user in any [DEVICE_DATA_STREAMS][stream_name] key of config.yaml . For example, [DATABASE_GROUP] inside [FITBIT_DATA_STREAMS][fitbitjson_mysql] device The device id that you need to infer the OS for (this is set by the user in the participant files ). For example, in AWARE this device id is a uuid Example This is the infer_device_os function we implemented for aware_mysql . Note that we can message , warn or stop the user during execution. infer_device_os <- function ( stream_parameters , device ){ # get_db_engine is an auxiliary function not shown here for brevity bu can be found in src/data/streams/aware_mysql/container.R group <- stream_parameters $ DATABASE_GROUP dbEngine <- dbConnect ( MariaDB (), default.file = \"./.env\" , group = group ) query <- paste0 ( \"SELECT device_id,brand FROM aware_device WHERE device_id = '\" , device , \"'\" ) message ( paste0 ( \"Executing the following query to infer phone OS: \" , query )) os <- dbGetQuery ( dbEngine , query ) dbDisconnect ( dbEngine ) if ( nrow ( os ) > 0 ) return ( os %>% mutate ( os = ifelse ( brand == \"iPhone\" , \"ios\" , \"android\" )) %>% pull ( os )) else stop ( paste ( \"We cannot infer the OS of the following device id because it does not exist in the aware_device table:\" , device )) return ( os ) }","title":"Implement a Container"},{"location":"datastreams/add-new-data-streams/#implement-a-format","text":"A format file format.yaml describes the mapping between your stream\u2019s raw data and the data that RAPIDS needs. This file has a section per sensor (e.g. PHONE_ACCELEROMETER ), and each section has two attributes (keys): RAPIDS_COLUMN_MAPPINGS are mappings between the columns RAPIDS needs and the columns your raw data already has. The reserved keyword FLAG_TO_MUTATE flags columns that RAPIDS requires but that are not initially present in your container (database, CSV file). These columns have to be created by your mutation scripts. MUTATION . Sometimes your raw data needs to be transformed to match the format RAPIDS can handle (including creating columns marked as FLAG_TO_MUTATE ) COLUMN_MAPPINGS are mappings between the columns a mutation SCRIPT needs and the columns your raw data has. SCRIPTS are a collection of R or Python scripts that transform one or more raw data columns into the format RAPIDS needs. Hint [RAPIDS_COLUMN_MAPPINGS] and [MUTATE][COLUMN_MAPPINGS] have a key (left-hand side string) and a value (right-hand side string). The values are the names used to pulled columns from a container (e.g., columns in a database table). All values are renamed to their keys in lower case. The renamed columns are sent to every mutation script within the data argument, and the final output is the input RAPIDS process further. For example, let\u2019s assume we are implementing beiwe_mysql and defining the following format for PHONE_FAKESENSOR : PHONE_FAKESENSOR : ANDROID : RAPIDS_COLUMN_MAPPINGS : TIMESTAMP : beiwe_timestamp DEVICE_ID : beiwe_deviceID MAGNITUDE_SQUARED : FLAG_TO_MUTATE MUTATE : COLUMN_MAPPINGS : MAGNITUDE : beiwe_value SCRIPTS : - src/data/streams/mutations/phone/square_magnitude.py RAPIDS will: Download beiwe_timestamp , beiwe_deviceID , and beiwe_value from the container of beiwe_mysql (MySQL DB) Rename these columns to timestamp , device_id , and magnitude , respectively. Execute square_magnitude.py with a data frame as an argument containing the renamed columns. This script will square magnitude and rename it to magnitude_squared Verify the data frame returned by square_magnitude.py has the columns RAPIDS needs timestamp , device_id , and magnitude_squared . Use this data frame as the input to be processed in the pipeline. Note that although RAPIDS_COLUMN_MAPPINGS and [MUTATE][COLUMN_MAPPINGS] keys are in capital letters for readability (e.g. MAGNITUDE_SQUARED ), the names of the final columns you mutate in your scripts should be lower case. Let\u2019s explain in more depth this column mapping with examples.","title":"Implement a Format"},{"location":"datastreams/add-new-data-streams/#name-mapping","text":"The mapping for some sensors is straightforward. For example, accelerometer data most of the time has a timestamp, three axes (x,y,z), and a device id that produced it. AWARE and a different sensing app like Beiwe likely logged accelerometer data in the same way but with different column names. In this case, we only need to match Beiwe data columns to RAPIDS columns one-to-one: PHONE_ACCELEROMETER : ANDROID : RAPIDS_COLUMN_MAPPINGS : TIMESTAMP : beiwe_timestamp DEVICE_ID : beiwe_deviceID DOUBLE_VALUES_0 : beiwe_x DOUBLE_VALUES_1 : beiwe_y DOUBLE_VALUES_2 : beiwe_z MUTATE : COLUMN_MAPPINGS : SCRIPTS : # it's ok if this is empty","title":"Name mapping"},{"location":"datastreams/add-new-data-streams/#value-mapping","text":"For some sensors, we need to map column names and values. For example, screen data has ON and OFF events; let\u2019s suppose Beiwe represents an ON event with the number 1, but RAPIDS identifies ON events with the number 2 . In this case, we need to mutate the raw data coming from Beiwe and replace all 1 s with 2 s. We do this by listing one or more R or Python scripts in MUTATION_SCRIPTS that will be executed in order. We usually store all mutation scripts under src/data/streams/mutations/[device]/[platform]/ and they can be reused across data streams. PHONE_SCREEN : ANDROID : RAPIDS_COLUMN_MAPPINGS : TIMESTAMP : beiwe_timestamp DEVICE_ID : beiwe_deviceID EVENT : beiwe_event MUTATE : COLUMN_MAPPINGS : SCRIPTS : - src/data/streams/mutations/phone/beiwe/beiwe_screen_map.py Hint A MUTATION_SCRIPT can also be used to clean/preprocess your data before extracting behavioral features. A mutation script has to have a main function that receives two arguments, data and stream_parameters . The stream_parameters argument contains the config.yaml key/values of your data stream (this is the same argument that your container.[py|R] script receives, see Implement a Container ). python Example of a python mutation script import pandas as pd def main ( data , stream_parameters ): # mutate data return ( data ) R Example of a R mutation script source ( \"renv/activate.R\" ) # needed to use RAPIDS renv environment library ( dplyr ) main <- function ( data , stream_parameters ){ # mutate data return ( data ) }","title":"Value mapping"},{"location":"datastreams/add-new-data-streams/#complex-mapping","text":"Sometimes, your raw data doesn\u2019t even have the same columns RAPIDS expects for a sensor. For example, let\u2019s pretend Beiwe stores PHONE_ACCELEROMETER axis data in a single column called acc_col instead of three. You have to create a MUTATION_SCRIPT to split acc_col into three columns x , y , and z . For this, you mark the three axes columns RAPIDS needs in [RAPIDS_COLUMN_MAPPINGS] with the word FLAG_TO_MUTATE , map acc_col in [MUTATION][COLUMN_MAPPINGS] , and list a Python script under [MUTATION][SCRIPTS] with the code to split acc_col . See an example below. RAPIDS expects that every column mapped as FLAG_TO_MUTATE will be generated by your mutation script, so it won\u2019t try to retrieve them from your container (database, CSV file, etc.). In our example, acc_col will be fetched from the stream\u2019s container and renamed to JOINED_AXES because beiwe_split_acc.py will split it into double_values_0 , double_values_1 , and double_values_2 . PHONE_ACCELEROMETER : ANDROID : RAPIDS_COLUMN_MAPPINGS : TIMESTAMP : beiwe_timestamp DEVICE_ID : beiwe_deviceID DOUBLE_VALUES_0 : FLAG_TO_MUTATE DOUBLE_VALUES_1 : FLAG_TO_MUTATE DOUBLE_VALUES_2 : FLAG_TO_MUTATE MUTATE : COLUMN_MAPPINGS : JOINED_AXES : acc_col SCRIPTS : - src/data/streams/mutations/phone/beiwe/beiwe_split_acc.py This is a draft of beiwe_split_acc.py MUTATION_SCRIPT : import pandas as pd def main ( data , stream_parameters ): # data has the acc_col # split acc_col into three columns: double_values_0, double_values_1, double_values_2 to match RAPIDS format # remove acc_col since we don't need it anymore return ( data )","title":"Complex mapping"},{"location":"datastreams/add-new-data-streams/#os-complex-mapping","text":"There is a special case for a complex mapping scenario for smartphone data streams. The Android and iOS sensor APIs return data in different formats for certain sensors (like screen, activity recognition, battery, among others). In case you didn\u2019t notice, the examples we have used so far are grouped under an ANDROID key, which means they will be applied to data collected by Android phones. Additionally, each sensor has an IOS key for a similar purpose. We use the complex mapping described above to transform iOS data into an Android format (it\u2019s always iOS to Android and any new phone data stream must do the same). For example, this is the format.yaml key for PHONE_ACTVITY_RECOGNITION . Note that the ANDROID mapping is simple (one-to-one) but the IOS mapping is complex with three FLAG_TO_MUTATE columns, two [MUTATE][COLUMN_MAPPINGS] mappings, and one [MUTATION][SCRIPT] . PHONE_ACTIVITY_RECOGNITION : ANDROID : RAPIDS_COLUMN_MAPPINGS : TIMESTAMP : timestamp DEVICE_ID : device_id ACTIVITY_TYPE : activity_type ACTIVITY_NAME : activity_name CONFIDENCE : confidence MUTATION : COLUMN_MAPPINGS : SCRIPTS : IOS : RAPIDS_COLUMN_MAPPINGS : TIMESTAMP : timestamp DEVICE_ID : device_id ACTIVITY_TYPE : FLAG_TO_MUTATE ACTIVITY_NAME : FLAG_TO_MUTATE CONFIDENCE : FLAG_TO_MUTATE MUTATION : COLUMN_MAPPINGS : ACTIVITIES : activities CONFIDENCE : confidence SCRIPTS : - \"src/data/streams/mutations/phone/aware/activity_recogniton_ios_unification.R\" Example activity_recogniton_ios_unification.R In this MUTATION_SCRIPT we create ACTIVITY_NAME and ACTIVITY_TYPE based on activities , and map confidence iOS values to Android values. source ( \"renv/activate.R\" ) library ( \"dplyr\" , warn.conflicts = F ) library ( stringr ) clean_ios_activity_column <- function ( ios_gar ){ ios_gar <- ios_gar %>% mutate ( activities = str_replace_all ( activities , pattern = '(\"|\\\\[|\\\\])' , replacement = \"\" )) existent_multiple_activities <- ios_gar %>% filter ( str_detect ( activities , \",\" )) %>% group_by ( activities ) %>% summarise ( mutiple_activities = unique ( activities ), .groups = \"drop_last\" ) %>% pull ( mutiple_activities ) known_multiple_activities <- c ( \"stationary,automotive\" ) unkown_multiple_actvities <- setdiff ( existent_multiple_activities , known_multiple_activities ) if ( length ( unkown_multiple_actvities ) > 0 ){ stop ( paste0 ( \"There are unkwown combinations of ios activities, you need to implement the decision of the ones to keep: \" , unkown_multiple_actvities )) } ios_gar <- ios_gar %>% mutate ( activities = str_replace_all ( activities , pattern = \"stationary,automotive\" , replacement = \"automotive\" )) return ( ios_gar ) } unify_ios_activity_recognition <- function ( ios_gar ){ # We only need to unify Google Activity Recognition data for iOS # discard rows where activities column is blank ios_gar <- ios_gar [ - which ( ios_gar $ activities == \"\" ), ] # clean \"activities\" column of ios_gar ios_gar <- clean_ios_activity_column ( ios_gar ) # make it compatible with android version: generate \"activity_name\" and \"activity_type\" columns ios_gar <- ios_gar %>% mutate ( activity_name = case_when ( activities == \"automotive\" ~ \"in_vehicle\" , activities == \"cycling\" ~ \"on_bicycle\" , activities == \"walking\" ~ \"walking\" , activities == \"running\" ~ \"running\" , activities == \"stationary\" ~ \"still\" ), activity_type = case_when ( activities == \"automotive\" ~ 0 , activities == \"cycling\" ~ 1 , activities == \"walking\" ~ 7 , activities == \"running\" ~ 8 , activities == \"stationary\" ~ 3 , activities == \"unknown\" ~ 4 ), confidence = case_when ( confidence == 0 ~ 0 , confidence == 1 ~ 50 , confidence == 2 ~ 100 ) ) %>% select ( - activities ) return ( ios_gar ) } main <- function ( data , stream_parameters ){ return ( unify_ios_activity_recognition ( data , stream_parameters )) }","title":"OS complex mapping"},{"location":"datastreams/aware-csv/","text":"aware_csv \u00b6 This data stream handles iOS and Android sensor data collected with the AWARE Framework and stored in CSV files. Warning The CSV files have to use , as separator, \\ as escape character (do not escape \" with \"\" ), and wrap any string columns with \" . See examples in the CSV files inside rapids_example_csv.zip Example of a valid CSV file \"_id\",\"timestamp\",\"device_id\",\"activities\",\"confidence\",\"stationary\",\"walking\",\"running\",\"automotive\",\"cycling\",\"unknown\",\"label\" 1,1587528000000,\"13dbc8a3-dae3-4834-823a-4bc96a7d459d\",\"[\\\"stationary\\\"]\",2,1,0,0,0,0,0,\"\" 2,1587528060000,\"13dbc8a3-dae3-4834-823a-4bc96a7d459d\",\"[\\\"stationary\\\"]\",2,1,0,0,0,0,0,\"supplement\" 3,1587528120000,\"13dbc8a3-dae3-4834-823a-4bc96a7d459d\",\"[\\\"stationary\\\"]\",2,1,0,0,0,0,0,\"supplement\" 4,1587528180000,\"13dbc8a3-dae3-4834-823a-4bc96a7d459d\",\"[\\\"stationary\\\"]\",2,1,0,0,0,0,0,\"supplement\" 5,1587528240000,\"13dbc8a3-dae3-4834-823a-4bc96a7d459d\",\"[\\\"stationary\\\"]\",2,1,0,0,0,0,0,\"supplement\" 6,1587528300000,\"13dbc8a3-dae3-4834-823a-4bc96a7d459d\",\"[\\\"stationary\\\"]\",2,1,0,0,0,0,0,\"supplement\" 7,1587528360000,\"13dbc8a3-dae3-4834-823a-4bc96a7d459d\",\"[\\\"stationary\\\"]\",2,1,0,0,0,0,0,\"supplement\" Container \u00b6 A CSV file per sensor, each containing the data for all participants. The script to connect and download data from this container is at: src/data/streams/aware_csv/container.R Format \u00b6 If you collected sensor data with the vanilla (original) AWARE mobile clients, you shouldn\u2019t need to modify this format (described below). Remember that a format maps and transforms columns in your raw data stream to the mandatory columns RAPIDS needs . The yaml file that describes the format of this data stream is at: src/data/streams/aware_csv/format.yaml For some sensors, we need to transform iOS data into Android format; you can refer to OS complex mapping for learn how this works. Hint The mappings in this stream (RAPIDS/Stream) are the same names because AWARE data was the first stream RAPIDS supported, meaning that it considers AWARE column names the default. PHONE_ACCELEROMETER ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id DOUBLE_VALUES_0 double_values_0 DOUBLE_VALUES_1 double_values_1 DOUBLE_VALUES_2 double_values_2 MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS Same as ANDROID PHONE_ACTIVITY_RECOGNITION ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id ACTIVITY_NAME activity_name ACTIVITY_TYPE activity_type CONFIDENCE confidence MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id ACTIVITY_NAME FLAG_TO_MUTATE ACTIVITY_TYPE FLAG_TO_MUTATE CONFIDENCE FLAG_TO_MUTATE MUTATION COLUMN_MAPPINGS Script column Stream column ACTIVITIES activities CONFIDENCE confidence SCRIPTS src/data/streams/mutations/phone/aware/activity_recogniton_ios_unification.R Note For RAPIDS columns of ACTIVITY_NAME and ACTIVITY_TYPE : if stream\u2019s activities field is automotive, set ACTIVITY_NAME = in_vehicle and ACTIVITY_TYPE = 0 if stream\u2019s activities field is cycling, set ACTIVITY_NAME = on_bicycle and ACTIVITY_TYPE = 1 if stream\u2019s activities field is walking, set ACTIVITY_NAME = walking and ACTIVITY_TYPE = 7 if stream\u2019s activities field is running, set ACTIVITY_NAME = running and ACTIVITY_TYPE = 8 if stream\u2019s activities field is stationary, set ACTIVITY_NAME = still and ACTIVITY_TYPE = 3 if stream\u2019s activities field is unknown, set ACTIVITY_NAME = unknown and ACTIVITY_TYPE = 4 For RAPIDS CONFIDENCE column: if stream\u2019s confidence field is 0, set CONFIDENCE = 0 if stream\u2019s confidence field is 1, set CONFIDENCE = 50 if stream\u2019s confidence field is 2, set CONFIDENCE = 100 PHONE_APPLICATIONS_CRASHES ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id PACKAGE_NAME package_name APPLICATION_NAME application_name APPLICATION_VERSION application_version ERROR_SHORT error_short ERROR_LONG error_long ERROR_CONDITION error_condition IS_SYSTEM_APP is_system_app MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS This sensor is not supported by iOS devices. PHONE_APPLICATIONS_FOREGROUND ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id PACKAGE_NAME package_name APPLICATION_NAME application_name IS_SYSTEM_APP is_system_app MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS This sensor is not supported by iOS devices. PHONE_APPLICATIONS_NOTIFICATIONS ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id PACKAGE_NAME package_name APPLICATION_NAME application_name TEXT text SOUND sound VIBRATE vibrate DEFAULTS defaults FLAGS flags MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS This sensor is not supported by iOS devices. PHONE_BATTERY ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id BATTERY_STATUS battery_status BATTERY_LEVEL battery_level BATTERY_SCALE battery_scale MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS Client V1 RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id BATTERY_STATUS FLAG_TO_MUTATE BATTERY_LEVEL battery_level BATTERY_SCALE battery_scale MUTATION COLUMN_MAPPINGS Script column Stream column BATTERY_STATUS battery_status SCRIPTS src/data/streams/mutations/phone/aware/battery_ios_unification.R Note For RAPIDS BATTERY_STATUS column: if stream\u2019s battery_status field is 3, set BATTERY_STATUS = 5 (full status) if stream\u2019s battery_status field is 1, set BATTERY_STATUS = 3 (discharge) IOS Client V2 Same as ANDROID PHONE_BLUETOOTH ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id BT_ADDRESS bt_address BT_NAME bt_name BT_RSSI bt_rssi MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS Only old iOS versions supported this sensor (same mapping as Android). PHONE_CALLS ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id CALL_TYPE call_type CALL_DURATION call_duration TRACE trace MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id CALL_TYPE FLAG_TO_MUTATE CALL_DURATION call_duration TRACE trace MUTATION COLUMN_MAPPINGS Script column Stream column CALL_TYPE call_type SCRIPTS src/data/streams/mutations/phone/aware/calls_ios_unification.R Note We transform iOS call logs into Android\u2019s format. iOS stores call status: 1=incoming, 2=connected, 3=dialing, 4=disconnected, as opposed to Android\u2019s events: 1=incoming, 2=outgoing, 3=missed. We follow this algorithm to convert iOS call data (there are some inaccuracies in the way we handle sequences, see new rules below): Search for the disconnected (4) status as it is common to all calls Group all events that preceded every status 4 We convert every 1,2,4 (or 2,1,4) sequence to an incoming call We convert every 3,2,4 (or 2,3,4) sequence to an outgoing call We convert every 1,4 or 3,4 sequence to a missed call (either incoming or outgoing) We set the duration of the call to be the sum of every status (dialing/ringing to hangup) as opposed to the duration of the last status (pick up to hang up) Tested with an Android (OnePlus 7T) and an iPhone XR Call type Android (duration) iOS (duration) New Rule Outgoing missed ended by me 2 (0) 3,4 (0,X) 3,4 is converted to 2 with duration 0 Outgoing missed ended by them 2(0) 3,2,4 (0,X,X2) 3,2,4 is converted to 2 with duration X2* Incoming missed ended by me NA** 1,4 (0,X) 1,4 is converted to 3 with duration 0 Incoming missed ended by them 3(0) 1,4 (0,X) 1,4 is converted to 3 with duration 0 Outgoing answered 2(X excluding dialing time) 3,2,4 (0,X,X2) 3,2,4 is converted to 2 with duration X2 Incoming answered 1(X excluding dialing time) 1,2,4 (0,X,X2) 1,2,4 is converted to 1 with duration X2 .* There is no way to differentiate an outgoing missed call ended by them from an outgoing answered call because the phone goes directly to voice mail and it counts as call time (essentially the voice mail answered). .** Android does not record incoming missed calls ended by the participant, just those ended by the person calling or ignored by the participant. PHONE_CONVERSATION ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id DOUBLE_ENERGY double_energy INFERENCE inference DOUBLE_CONVO_START double_convo_start DOUBLE_CONVO_END double_convo_end MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id DOUBLE_ENERGY double_energy INFERENCE inference DOUBLE_CONVO_START FLAG_TO_MUTATE DOUBLE_CONVO_END FLAG_TO_MUTATE MUTATION COLUMN_MAPPINGS Script column Stream column DOUBLE_CONVO_START double_convo_start DOUBLE_CONVO_END double_convo_end SCRIPTS src/data/streams/mutations/phone/aware/conversation_ios_timestamp.R Note For RAPIDS columns of DOUBLE_CONVO_START and DOUBLE_CONVO_END : if stream\u2019s double_convo_start field is smaller than 9999999999, it is in seconds instead of milliseconds. Set DOUBLE_CONVO_START = 1000 * double_convo_start . if stream\u2019s double_convo_end field is smaller than 9999999999, it is in seconds instead of milliseconds. Set DOUBLE_CONVO_END = 1000 * double_convo_end . PHONE_KEYBOARD ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id PACKAGE_NAME package_name BEFORE_TEXT before_text CURRENT_TEXT current_text IS_PASSWORD is_password MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS This sensor is not supported by iOS devices. PHONE_LIGHT ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id DOUBLE_LIGHT_LUX double_light_lux ACCURACY accuracy MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS This sensor is not supported by iOS devices. PHONE_LOCATIONS ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id DOUBLE_LATITUDE double_latitude DOUBLE_LONGITUDE double_longitude DOUBLE_BEARING double_bearing DOUBLE_SPEED double_speed DOUBLE_ALTITUDE double_altitude PROVIDER provider ACCURACY accuracy MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS Same as ANDROID PHONE_LOG ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id LOG_MESSAGE log_message MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS Same as ANDROID PHONE_MESSAGES ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id MESSAGE_TYPE message_type TRACE trace MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS This sensor is not supported by iOS devices. PHONE_SCREEN ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id SCREEN_STATUS screen_status MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id SCREEN_STATUS FLAG_TO_MUTATE MUTATION COLUMN_MAPPINGS Script column Stream column SCREEN_STATUS screen_status SCRIPTS src/data/streams/mutations/phone/aware/screen_ios_unification.R Note For SCREEN_STATUS RAPIDS column: if stream\u2019s screen_status field is 2 (lock episode), set SCREEN_STATUS = 0 (off episode). PHONE_WIFI_CONNECTED ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id MAC_ADDRESS mac_address SSID ssid BSSID bssid MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS Same as ANDROID PHONE_WIFI_VISIBLE ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id SSID ssid BSSID bssid SECURITY security FREQUENCY frequency RSSI rssi MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS Only old iOS versions supported this sensor (same mapping as Android).","title":"aware_csv"},{"location":"datastreams/aware-csv/#aware_csv","text":"This data stream handles iOS and Android sensor data collected with the AWARE Framework and stored in CSV files. Warning The CSV files have to use , as separator, \\ as escape character (do not escape \" with \"\" ), and wrap any string columns with \" . See examples in the CSV files inside rapids_example_csv.zip Example of a valid CSV file \"_id\",\"timestamp\",\"device_id\",\"activities\",\"confidence\",\"stationary\",\"walking\",\"running\",\"automotive\",\"cycling\",\"unknown\",\"label\" 1,1587528000000,\"13dbc8a3-dae3-4834-823a-4bc96a7d459d\",\"[\\\"stationary\\\"]\",2,1,0,0,0,0,0,\"\" 2,1587528060000,\"13dbc8a3-dae3-4834-823a-4bc96a7d459d\",\"[\\\"stationary\\\"]\",2,1,0,0,0,0,0,\"supplement\" 3,1587528120000,\"13dbc8a3-dae3-4834-823a-4bc96a7d459d\",\"[\\\"stationary\\\"]\",2,1,0,0,0,0,0,\"supplement\" 4,1587528180000,\"13dbc8a3-dae3-4834-823a-4bc96a7d459d\",\"[\\\"stationary\\\"]\",2,1,0,0,0,0,0,\"supplement\" 5,1587528240000,\"13dbc8a3-dae3-4834-823a-4bc96a7d459d\",\"[\\\"stationary\\\"]\",2,1,0,0,0,0,0,\"supplement\" 6,1587528300000,\"13dbc8a3-dae3-4834-823a-4bc96a7d459d\",\"[\\\"stationary\\\"]\",2,1,0,0,0,0,0,\"supplement\" 7,1587528360000,\"13dbc8a3-dae3-4834-823a-4bc96a7d459d\",\"[\\\"stationary\\\"]\",2,1,0,0,0,0,0,\"supplement\"","title":"aware_csv"},{"location":"datastreams/aware-csv/#container","text":"A CSV file per sensor, each containing the data for all participants. The script to connect and download data from this container is at: src/data/streams/aware_csv/container.R","title":"Container"},{"location":"datastreams/aware-csv/#format","text":"If you collected sensor data with the vanilla (original) AWARE mobile clients, you shouldn\u2019t need to modify this format (described below). Remember that a format maps and transforms columns in your raw data stream to the mandatory columns RAPIDS needs . The yaml file that describes the format of this data stream is at: src/data/streams/aware_csv/format.yaml For some sensors, we need to transform iOS data into Android format; you can refer to OS complex mapping for learn how this works. Hint The mappings in this stream (RAPIDS/Stream) are the same names because AWARE data was the first stream RAPIDS supported, meaning that it considers AWARE column names the default. PHONE_ACCELEROMETER ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id DOUBLE_VALUES_0 double_values_0 DOUBLE_VALUES_1 double_values_1 DOUBLE_VALUES_2 double_values_2 MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS Same as ANDROID PHONE_ACTIVITY_RECOGNITION ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id ACTIVITY_NAME activity_name ACTIVITY_TYPE activity_type CONFIDENCE confidence MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id ACTIVITY_NAME FLAG_TO_MUTATE ACTIVITY_TYPE FLAG_TO_MUTATE CONFIDENCE FLAG_TO_MUTATE MUTATION COLUMN_MAPPINGS Script column Stream column ACTIVITIES activities CONFIDENCE confidence SCRIPTS src/data/streams/mutations/phone/aware/activity_recogniton_ios_unification.R Note For RAPIDS columns of ACTIVITY_NAME and ACTIVITY_TYPE : if stream\u2019s activities field is automotive, set ACTIVITY_NAME = in_vehicle and ACTIVITY_TYPE = 0 if stream\u2019s activities field is cycling, set ACTIVITY_NAME = on_bicycle and ACTIVITY_TYPE = 1 if stream\u2019s activities field is walking, set ACTIVITY_NAME = walking and ACTIVITY_TYPE = 7 if stream\u2019s activities field is running, set ACTIVITY_NAME = running and ACTIVITY_TYPE = 8 if stream\u2019s activities field is stationary, set ACTIVITY_NAME = still and ACTIVITY_TYPE = 3 if stream\u2019s activities field is unknown, set ACTIVITY_NAME = unknown and ACTIVITY_TYPE = 4 For RAPIDS CONFIDENCE column: if stream\u2019s confidence field is 0, set CONFIDENCE = 0 if stream\u2019s confidence field is 1, set CONFIDENCE = 50 if stream\u2019s confidence field is 2, set CONFIDENCE = 100 PHONE_APPLICATIONS_CRASHES ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id PACKAGE_NAME package_name APPLICATION_NAME application_name APPLICATION_VERSION application_version ERROR_SHORT error_short ERROR_LONG error_long ERROR_CONDITION error_condition IS_SYSTEM_APP is_system_app MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS This sensor is not supported by iOS devices. PHONE_APPLICATIONS_FOREGROUND ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id PACKAGE_NAME package_name APPLICATION_NAME application_name IS_SYSTEM_APP is_system_app MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS This sensor is not supported by iOS devices. PHONE_APPLICATIONS_NOTIFICATIONS ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id PACKAGE_NAME package_name APPLICATION_NAME application_name TEXT text SOUND sound VIBRATE vibrate DEFAULTS defaults FLAGS flags MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS This sensor is not supported by iOS devices. PHONE_BATTERY ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id BATTERY_STATUS battery_status BATTERY_LEVEL battery_level BATTERY_SCALE battery_scale MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS Client V1 RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id BATTERY_STATUS FLAG_TO_MUTATE BATTERY_LEVEL battery_level BATTERY_SCALE battery_scale MUTATION COLUMN_MAPPINGS Script column Stream column BATTERY_STATUS battery_status SCRIPTS src/data/streams/mutations/phone/aware/battery_ios_unification.R Note For RAPIDS BATTERY_STATUS column: if stream\u2019s battery_status field is 3, set BATTERY_STATUS = 5 (full status) if stream\u2019s battery_status field is 1, set BATTERY_STATUS = 3 (discharge) IOS Client V2 Same as ANDROID PHONE_BLUETOOTH ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id BT_ADDRESS bt_address BT_NAME bt_name BT_RSSI bt_rssi MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS Only old iOS versions supported this sensor (same mapping as Android). PHONE_CALLS ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id CALL_TYPE call_type CALL_DURATION call_duration TRACE trace MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id CALL_TYPE FLAG_TO_MUTATE CALL_DURATION call_duration TRACE trace MUTATION COLUMN_MAPPINGS Script column Stream column CALL_TYPE call_type SCRIPTS src/data/streams/mutations/phone/aware/calls_ios_unification.R Note We transform iOS call logs into Android\u2019s format. iOS stores call status: 1=incoming, 2=connected, 3=dialing, 4=disconnected, as opposed to Android\u2019s events: 1=incoming, 2=outgoing, 3=missed. We follow this algorithm to convert iOS call data (there are some inaccuracies in the way we handle sequences, see new rules below): Search for the disconnected (4) status as it is common to all calls Group all events that preceded every status 4 We convert every 1,2,4 (or 2,1,4) sequence to an incoming call We convert every 3,2,4 (or 2,3,4) sequence to an outgoing call We convert every 1,4 or 3,4 sequence to a missed call (either incoming or outgoing) We set the duration of the call to be the sum of every status (dialing/ringing to hangup) as opposed to the duration of the last status (pick up to hang up) Tested with an Android (OnePlus 7T) and an iPhone XR Call type Android (duration) iOS (duration) New Rule Outgoing missed ended by me 2 (0) 3,4 (0,X) 3,4 is converted to 2 with duration 0 Outgoing missed ended by them 2(0) 3,2,4 (0,X,X2) 3,2,4 is converted to 2 with duration X2* Incoming missed ended by me NA** 1,4 (0,X) 1,4 is converted to 3 with duration 0 Incoming missed ended by them 3(0) 1,4 (0,X) 1,4 is converted to 3 with duration 0 Outgoing answered 2(X excluding dialing time) 3,2,4 (0,X,X2) 3,2,4 is converted to 2 with duration X2 Incoming answered 1(X excluding dialing time) 1,2,4 (0,X,X2) 1,2,4 is converted to 1 with duration X2 .* There is no way to differentiate an outgoing missed call ended by them from an outgoing answered call because the phone goes directly to voice mail and it counts as call time (essentially the voice mail answered). .** Android does not record incoming missed calls ended by the participant, just those ended by the person calling or ignored by the participant. PHONE_CONVERSATION ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id DOUBLE_ENERGY double_energy INFERENCE inference DOUBLE_CONVO_START double_convo_start DOUBLE_CONVO_END double_convo_end MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id DOUBLE_ENERGY double_energy INFERENCE inference DOUBLE_CONVO_START FLAG_TO_MUTATE DOUBLE_CONVO_END FLAG_TO_MUTATE MUTATION COLUMN_MAPPINGS Script column Stream column DOUBLE_CONVO_START double_convo_start DOUBLE_CONVO_END double_convo_end SCRIPTS src/data/streams/mutations/phone/aware/conversation_ios_timestamp.R Note For RAPIDS columns of DOUBLE_CONVO_START and DOUBLE_CONVO_END : if stream\u2019s double_convo_start field is smaller than 9999999999, it is in seconds instead of milliseconds. Set DOUBLE_CONVO_START = 1000 * double_convo_start . if stream\u2019s double_convo_end field is smaller than 9999999999, it is in seconds instead of milliseconds. Set DOUBLE_CONVO_END = 1000 * double_convo_end . PHONE_KEYBOARD ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id PACKAGE_NAME package_name BEFORE_TEXT before_text CURRENT_TEXT current_text IS_PASSWORD is_password MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS This sensor is not supported by iOS devices. PHONE_LIGHT ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id DOUBLE_LIGHT_LUX double_light_lux ACCURACY accuracy MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS This sensor is not supported by iOS devices. PHONE_LOCATIONS ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id DOUBLE_LATITUDE double_latitude DOUBLE_LONGITUDE double_longitude DOUBLE_BEARING double_bearing DOUBLE_SPEED double_speed DOUBLE_ALTITUDE double_altitude PROVIDER provider ACCURACY accuracy MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS Same as ANDROID PHONE_LOG ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id LOG_MESSAGE log_message MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS Same as ANDROID PHONE_MESSAGES ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id MESSAGE_TYPE message_type TRACE trace MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS This sensor is not supported by iOS devices. PHONE_SCREEN ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id SCREEN_STATUS screen_status MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id SCREEN_STATUS FLAG_TO_MUTATE MUTATION COLUMN_MAPPINGS Script column Stream column SCREEN_STATUS screen_status SCRIPTS src/data/streams/mutations/phone/aware/screen_ios_unification.R Note For SCREEN_STATUS RAPIDS column: if stream\u2019s screen_status field is 2 (lock episode), set SCREEN_STATUS = 0 (off episode). PHONE_WIFI_CONNECTED ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id MAC_ADDRESS mac_address SSID ssid BSSID bssid MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS Same as ANDROID PHONE_WIFI_VISIBLE ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id SSID ssid BSSID bssid SECURITY security FREQUENCY frequency RSSI rssi MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS Only old iOS versions supported this sensor (same mapping as Android).","title":"Format"},{"location":"datastreams/aware-influxdb/","text":"aware_influxdb (beta) \u00b6 Warning This data stream is being released in beta while we test it thoroughly. This data stream handles iOS and Android sensor data collected with the AWARE Framework and stored in an InfluxDB database. Container \u00b6 An InfluxDB database with a table per sensor, each containing the data for all participants. The script to connect and download data from this container is at: src/data/streams/aware_influxdb/container.R Format \u00b6 If you collected sensor data with the vanilla (original) AWARE mobile clients, you shouldn\u2019t need to modify this format (described below). Remember that a format maps and transforms columns in your raw data stream to the mandatory columns RAPIDS needs . The yaml file that describes the format of this data stream is at: src/data/streams/aware_csv/format.yaml For some sensors, we need to transform iOS data into Android format; you can refer to OS complex mapping for learn how this works. Hint The mappings in this stream (RAPIDS/Stream) are the same names because AWARE data was the first stream RAPIDS supported, meaning that it considers AWARE column names the default. PHONE_ACCELEROMETER ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id DOUBLE_VALUES_0 double_values_0 DOUBLE_VALUES_1 double_values_1 DOUBLE_VALUES_2 double_values_2 MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS Same as ANDROID PHONE_ACTIVITY_RECOGNITION ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id ACTIVITY_NAME activity_name ACTIVITY_TYPE activity_type CONFIDENCE confidence MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id ACTIVITY_NAME FLAG_TO_MUTATE ACTIVITY_TYPE FLAG_TO_MUTATE CONFIDENCE FLAG_TO_MUTATE MUTATION COLUMN_MAPPINGS Script column Stream column ACTIVITIES activities CONFIDENCE confidence SCRIPTS src/data/streams/mutations/phone/aware/activity_recogniton_ios_unification.R Note For RAPIDS columns of ACTIVITY_NAME and ACTIVITY_TYPE : if stream\u2019s activities field is automotive, set ACTIVITY_NAME = in_vehicle and ACTIVITY_TYPE = 0 if stream\u2019s activities field is cycling, set ACTIVITY_NAME = on_bicycle and ACTIVITY_TYPE = 1 if stream\u2019s activities field is walking, set ACTIVITY_NAME = walking and ACTIVITY_TYPE = 7 if stream\u2019s activities field is running, set ACTIVITY_NAME = running and ACTIVITY_TYPE = 8 if stream\u2019s activities field is stationary, set ACTIVITY_NAME = still and ACTIVITY_TYPE = 3 if stream\u2019s activities field is unknown, set ACTIVITY_NAME = unknown and ACTIVITY_TYPE = 4 For RAPIDS CONFIDENCE column: if stream\u2019s confidence field is 0, set CONFIDENCE = 0 if stream\u2019s confidence field is 1, set CONFIDENCE = 50 if stream\u2019s confidence field is 2, set CONFIDENCE = 100 PHONE_APPLICATIONS_CRASHES ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id PACKAGE_NAME package_name APPLICATION_NAME application_name APPLICATION_VERSION application_version ERROR_SHORT error_short ERROR_LONG error_long ERROR_CONDITION error_condition IS_SYSTEM_APP is_system_app MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS This sensor is not supported by iOS devices. PHONE_APPLICATIONS_FOREGROUND ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id PACKAGE_NAME package_name APPLICATION_NAME application_name IS_SYSTEM_APP is_system_app MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS This sensor is not supported by iOS devices. PHONE_APPLICATIONS_NOTIFICATIONS ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id PACKAGE_NAME package_name APPLICATION_NAME application_name TEXT text SOUND sound VIBRATE vibrate DEFAULTS defaults FLAGS flags MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS This sensor is not supported by iOS devices. PHONE_BATTERY ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id BATTERY_STATUS battery_status BATTERY_LEVEL battery_level BATTERY_SCALE battery_scale MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS Client V1 RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id BATTERY_STATUS FLAG_TO_MUTATE BATTERY_LEVEL battery_level BATTERY_SCALE battery_scale MUTATION COLUMN_MAPPINGS Script column Stream column BATTERY_STATUS battery_status SCRIPTS src/data/streams/mutations/phone/aware/battery_ios_unification.R Note For RAPIDS BATTERY_STATUS column: if stream\u2019s battery_status field is 3, set BATTERY_STATUS = 5 (full status) if stream\u2019s battery_status field is 1, set BATTERY_STATUS = 3 (discharge) IOS Client V2 Same as ANDROID PHONE_BLUETOOTH ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id BT_ADDRESS bt_address BT_NAME bt_name BT_RSSI bt_rssi MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS Only old iOS versions supported this sensor (same mapping as Android). PHONE_CALLS ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id CALL_TYPE call_type CALL_DURATION call_duration TRACE trace MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id CALL_TYPE FLAG_TO_MUTATE CALL_DURATION call_duration TRACE trace MUTATION COLUMN_MAPPINGS Script column Stream column CALL_TYPE call_type SCRIPTS src/data/streams/mutations/phone/aware/calls_ios_unification.R Note We transform iOS call logs into Android\u2019s format. iOS stores call status: 1=incoming, 2=connected, 3=dialing, 4=disconnected, as opposed to Android\u2019s events: 1=incoming, 2=outgoing, 3=missed. We follow this algorithm to convert iOS call data (there are some inaccuracies in the way we handle sequences, see new rules below): Search for the disconnected (4) status as it is common to all calls Group all events that preceded every status 4 We convert every 1,2,4 (or 2,1,4) sequence to an incoming call We convert every 3,2,4 (or 2,3,4) sequence to an outgoing call We convert every 1,4 or 3,4 sequence to a missed call (either incoming or outgoing) We set the duration of the call to be the sum of every status (dialing/ringing to hangup) as opposed to the duration of the last status (pick up to hang up) Tested with an Android (OnePlus 7T) and an iPhone XR Call type Android (duration) iOS (duration) New Rule Outgoing missed ended by me 2 (0) 3,4 (0,X) 3,4 is converted to 2 with duration 0 Outgoing missed ended by them 2(0) 3,2,4 (0,X,X2) 3,2,4 is converted to 2 with duration X2* Incoming missed ended by me NA** 1,4 (0,X) 1,4 is converted to 3 with duration 0 Incoming missed ended by them 3(0) 1,4 (0,X) 1,4 is converted to 3 with duration 0 Outgoing answered 2(X excluding dialing time) 3,2,4 (0,X,X2) 3,2,4 is converted to 2 with duration X2 Incoming answered 1(X excluding dialing time) 1,2,4 (0,X,X2) 1,2,4 is converted to 1 with duration X2 .* There is no way to differentiate an outgoing missed call ended by them from an outgoing answered call because the phone goes directly to voice mail and it counts as call time (essentially the voice mail answered). .** Android does not record incoming missed calls ended by the participant, just those ended by the person calling or ignored by the participant. PHONE_CONVERSATION ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id DOUBLE_ENERGY double_energy INFERENCE inference DOUBLE_CONVO_START double_convo_start DOUBLE_CONVO_END double_convo_end MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id DOUBLE_ENERGY double_energy INFERENCE inference DOUBLE_CONVO_START FLAG_TO_MUTATE DOUBLE_CONVO_END FLAG_TO_MUTATE MUTATION COLUMN_MAPPINGS Script column Stream column DOUBLE_CONVO_START double_convo_start DOUBLE_CONVO_END double_convo_end SCRIPTS src/data/streams/mutations/phone/aware/conversation_ios_timestamp.R Note For RAPIDS columns of DOUBLE_CONVO_START and DOUBLE_CONVO_END : if stream\u2019s double_convo_start field is smaller than 9999999999, it is in seconds instead of milliseconds. Set DOUBLE_CONVO_START = 1000 * double_convo_start . if stream\u2019s double_convo_end field is smaller than 9999999999, it is in seconds instead of milliseconds. Set DOUBLE_CONVO_END = 1000 * double_convo_end . PHONE_KEYBOARD ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id PACKAGE_NAME package_name BEFORE_TEXT before_text CURRENT_TEXT current_text IS_PASSWORD is_password MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS This sensor is not supported by iOS devices. PHONE_LIGHT ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id DOUBLE_LIGHT_LUX double_light_lux ACCURACY accuracy MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS This sensor is not supported by iOS devices. PHONE_LOCATIONS ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id DOUBLE_LATITUDE double_latitude DOUBLE_LONGITUDE double_longitude DOUBLE_BEARING double_bearing DOUBLE_SPEED double_speed DOUBLE_ALTITUDE double_altitude PROVIDER provider ACCURACY accuracy MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS Same as ANDROID PHONE_LOG ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id LOG_MESSAGE log_message MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS Same as ANDROID PHONE_MESSAGES ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id MESSAGE_TYPE message_type TRACE trace MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS This sensor is not supported by iOS devices. PHONE_SCREEN ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id SCREEN_STATUS screen_status MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id SCREEN_STATUS FLAG_TO_MUTATE MUTATION COLUMN_MAPPINGS Script column Stream column SCREEN_STATUS screen_status SCRIPTS src/data/streams/mutations/phone/aware/screen_ios_unification.R Note For SCREEN_STATUS RAPIDS column: if stream\u2019s screen_status field is 2 (lock episode), set SCREEN_STATUS = 0 (off episode). PHONE_WIFI_CONNECTED ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id MAC_ADDRESS mac_address SSID ssid BSSID bssid MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS Same as ANDROID PHONE_WIFI_VISIBLE ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id SSID ssid BSSID bssid SECURITY security FREQUENCY frequency RSSI rssi MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS Only old iOS versions supported this sensor (same mapping as Android).","title":"aware_influxdb (beta)"},{"location":"datastreams/aware-influxdb/#aware_influxdb-beta","text":"Warning This data stream is being released in beta while we test it thoroughly. This data stream handles iOS and Android sensor data collected with the AWARE Framework and stored in an InfluxDB database.","title":"aware_influxdb (beta)"},{"location":"datastreams/aware-influxdb/#container","text":"An InfluxDB database with a table per sensor, each containing the data for all participants. The script to connect and download data from this container is at: src/data/streams/aware_influxdb/container.R","title":"Container"},{"location":"datastreams/aware-influxdb/#format","text":"If you collected sensor data with the vanilla (original) AWARE mobile clients, you shouldn\u2019t need to modify this format (described below). Remember that a format maps and transforms columns in your raw data stream to the mandatory columns RAPIDS needs . The yaml file that describes the format of this data stream is at: src/data/streams/aware_csv/format.yaml For some sensors, we need to transform iOS data into Android format; you can refer to OS complex mapping for learn how this works. Hint The mappings in this stream (RAPIDS/Stream) are the same names because AWARE data was the first stream RAPIDS supported, meaning that it considers AWARE column names the default. PHONE_ACCELEROMETER ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id DOUBLE_VALUES_0 double_values_0 DOUBLE_VALUES_1 double_values_1 DOUBLE_VALUES_2 double_values_2 MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS Same as ANDROID PHONE_ACTIVITY_RECOGNITION ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id ACTIVITY_NAME activity_name ACTIVITY_TYPE activity_type CONFIDENCE confidence MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id ACTIVITY_NAME FLAG_TO_MUTATE ACTIVITY_TYPE FLAG_TO_MUTATE CONFIDENCE FLAG_TO_MUTATE MUTATION COLUMN_MAPPINGS Script column Stream column ACTIVITIES activities CONFIDENCE confidence SCRIPTS src/data/streams/mutations/phone/aware/activity_recogniton_ios_unification.R Note For RAPIDS columns of ACTIVITY_NAME and ACTIVITY_TYPE : if stream\u2019s activities field is automotive, set ACTIVITY_NAME = in_vehicle and ACTIVITY_TYPE = 0 if stream\u2019s activities field is cycling, set ACTIVITY_NAME = on_bicycle and ACTIVITY_TYPE = 1 if stream\u2019s activities field is walking, set ACTIVITY_NAME = walking and ACTIVITY_TYPE = 7 if stream\u2019s activities field is running, set ACTIVITY_NAME = running and ACTIVITY_TYPE = 8 if stream\u2019s activities field is stationary, set ACTIVITY_NAME = still and ACTIVITY_TYPE = 3 if stream\u2019s activities field is unknown, set ACTIVITY_NAME = unknown and ACTIVITY_TYPE = 4 For RAPIDS CONFIDENCE column: if stream\u2019s confidence field is 0, set CONFIDENCE = 0 if stream\u2019s confidence field is 1, set CONFIDENCE = 50 if stream\u2019s confidence field is 2, set CONFIDENCE = 100 PHONE_APPLICATIONS_CRASHES ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id PACKAGE_NAME package_name APPLICATION_NAME application_name APPLICATION_VERSION application_version ERROR_SHORT error_short ERROR_LONG error_long ERROR_CONDITION error_condition IS_SYSTEM_APP is_system_app MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS This sensor is not supported by iOS devices. PHONE_APPLICATIONS_FOREGROUND ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id PACKAGE_NAME package_name APPLICATION_NAME application_name IS_SYSTEM_APP is_system_app MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS This sensor is not supported by iOS devices. PHONE_APPLICATIONS_NOTIFICATIONS ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id PACKAGE_NAME package_name APPLICATION_NAME application_name TEXT text SOUND sound VIBRATE vibrate DEFAULTS defaults FLAGS flags MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS This sensor is not supported by iOS devices. PHONE_BATTERY ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id BATTERY_STATUS battery_status BATTERY_LEVEL battery_level BATTERY_SCALE battery_scale MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS Client V1 RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id BATTERY_STATUS FLAG_TO_MUTATE BATTERY_LEVEL battery_level BATTERY_SCALE battery_scale MUTATION COLUMN_MAPPINGS Script column Stream column BATTERY_STATUS battery_status SCRIPTS src/data/streams/mutations/phone/aware/battery_ios_unification.R Note For RAPIDS BATTERY_STATUS column: if stream\u2019s battery_status field is 3, set BATTERY_STATUS = 5 (full status) if stream\u2019s battery_status field is 1, set BATTERY_STATUS = 3 (discharge) IOS Client V2 Same as ANDROID PHONE_BLUETOOTH ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id BT_ADDRESS bt_address BT_NAME bt_name BT_RSSI bt_rssi MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS Only old iOS versions supported this sensor (same mapping as Android). PHONE_CALLS ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id CALL_TYPE call_type CALL_DURATION call_duration TRACE trace MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id CALL_TYPE FLAG_TO_MUTATE CALL_DURATION call_duration TRACE trace MUTATION COLUMN_MAPPINGS Script column Stream column CALL_TYPE call_type SCRIPTS src/data/streams/mutations/phone/aware/calls_ios_unification.R Note We transform iOS call logs into Android\u2019s format. iOS stores call status: 1=incoming, 2=connected, 3=dialing, 4=disconnected, as opposed to Android\u2019s events: 1=incoming, 2=outgoing, 3=missed. We follow this algorithm to convert iOS call data (there are some inaccuracies in the way we handle sequences, see new rules below): Search for the disconnected (4) status as it is common to all calls Group all events that preceded every status 4 We convert every 1,2,4 (or 2,1,4) sequence to an incoming call We convert every 3,2,4 (or 2,3,4) sequence to an outgoing call We convert every 1,4 or 3,4 sequence to a missed call (either incoming or outgoing) We set the duration of the call to be the sum of every status (dialing/ringing to hangup) as opposed to the duration of the last status (pick up to hang up) Tested with an Android (OnePlus 7T) and an iPhone XR Call type Android (duration) iOS (duration) New Rule Outgoing missed ended by me 2 (0) 3,4 (0,X) 3,4 is converted to 2 with duration 0 Outgoing missed ended by them 2(0) 3,2,4 (0,X,X2) 3,2,4 is converted to 2 with duration X2* Incoming missed ended by me NA** 1,4 (0,X) 1,4 is converted to 3 with duration 0 Incoming missed ended by them 3(0) 1,4 (0,X) 1,4 is converted to 3 with duration 0 Outgoing answered 2(X excluding dialing time) 3,2,4 (0,X,X2) 3,2,4 is converted to 2 with duration X2 Incoming answered 1(X excluding dialing time) 1,2,4 (0,X,X2) 1,2,4 is converted to 1 with duration X2 .* There is no way to differentiate an outgoing missed call ended by them from an outgoing answered call because the phone goes directly to voice mail and it counts as call time (essentially the voice mail answered). .** Android does not record incoming missed calls ended by the participant, just those ended by the person calling or ignored by the participant. PHONE_CONVERSATION ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id DOUBLE_ENERGY double_energy INFERENCE inference DOUBLE_CONVO_START double_convo_start DOUBLE_CONVO_END double_convo_end MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id DOUBLE_ENERGY double_energy INFERENCE inference DOUBLE_CONVO_START FLAG_TO_MUTATE DOUBLE_CONVO_END FLAG_TO_MUTATE MUTATION COLUMN_MAPPINGS Script column Stream column DOUBLE_CONVO_START double_convo_start DOUBLE_CONVO_END double_convo_end SCRIPTS src/data/streams/mutations/phone/aware/conversation_ios_timestamp.R Note For RAPIDS columns of DOUBLE_CONVO_START and DOUBLE_CONVO_END : if stream\u2019s double_convo_start field is smaller than 9999999999, it is in seconds instead of milliseconds. Set DOUBLE_CONVO_START = 1000 * double_convo_start . if stream\u2019s double_convo_end field is smaller than 9999999999, it is in seconds instead of milliseconds. Set DOUBLE_CONVO_END = 1000 * double_convo_end . PHONE_KEYBOARD ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id PACKAGE_NAME package_name BEFORE_TEXT before_text CURRENT_TEXT current_text IS_PASSWORD is_password MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS This sensor is not supported by iOS devices. PHONE_LIGHT ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id DOUBLE_LIGHT_LUX double_light_lux ACCURACY accuracy MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS This sensor is not supported by iOS devices. PHONE_LOCATIONS ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id DOUBLE_LATITUDE double_latitude DOUBLE_LONGITUDE double_longitude DOUBLE_BEARING double_bearing DOUBLE_SPEED double_speed DOUBLE_ALTITUDE double_altitude PROVIDER provider ACCURACY accuracy MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS Same as ANDROID PHONE_LOG ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id LOG_MESSAGE log_message MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS Same as ANDROID PHONE_MESSAGES ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id MESSAGE_TYPE message_type TRACE trace MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS This sensor is not supported by iOS devices. PHONE_SCREEN ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id SCREEN_STATUS screen_status MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id SCREEN_STATUS FLAG_TO_MUTATE MUTATION COLUMN_MAPPINGS Script column Stream column SCREEN_STATUS screen_status SCRIPTS src/data/streams/mutations/phone/aware/screen_ios_unification.R Note For SCREEN_STATUS RAPIDS column: if stream\u2019s screen_status field is 2 (lock episode), set SCREEN_STATUS = 0 (off episode). PHONE_WIFI_CONNECTED ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id MAC_ADDRESS mac_address SSID ssid BSSID bssid MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS Same as ANDROID PHONE_WIFI_VISIBLE ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id SSID ssid BSSID bssid SECURITY security FREQUENCY frequency RSSI rssi MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS Only old iOS versions supported this sensor (same mapping as Android).","title":"Format"},{"location":"datastreams/aware-mysql/","text":"aware_mysql \u00b6 This data stream handles iOS and Android sensor data collected with the AWARE Framework and stored in a MySQL database. Container \u00b6 A MySQL database with a table per sensor, each containing the data for all participants. This is the default database created by the old PHP AWARE server (as opposed to the new JavaScript Micro server). The script to connect and download data from this container is at: src/data/streams/aware_mysql/container.R Format \u00b6 If you collected sensor data with the vanilla (original) AWARE mobile clients, you shouldn\u2019t need to modify this format (described below). Remember that a format maps and transforms columns in your raw data stream to the mandatory columns RAPIDS needs . The yaml file that describes the format of this data stream is at: src/data/streams/aware_csv/format.yaml For some sensors, we need to transform iOS data into Android format; you can refer to OS complex mapping for learn how this works. Hint The mappings in this stream (RAPIDS/Stream) are the same names because AWARE data was the first stream RAPIDS supported, meaning that it considers AWARE column names the default. PHONE_ACCELEROMETER ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id DOUBLE_VALUES_0 double_values_0 DOUBLE_VALUES_1 double_values_1 DOUBLE_VALUES_2 double_values_2 MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS Same as ANDROID PHONE_ACTIVITY_RECOGNITION ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id ACTIVITY_NAME activity_name ACTIVITY_TYPE activity_type CONFIDENCE confidence MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id ACTIVITY_NAME FLAG_TO_MUTATE ACTIVITY_TYPE FLAG_TO_MUTATE CONFIDENCE FLAG_TO_MUTATE MUTATION COLUMN_MAPPINGS Script column Stream column ACTIVITIES activities CONFIDENCE confidence SCRIPTS src/data/streams/mutations/phone/aware/activity_recogniton_ios_unification.R Note For RAPIDS columns of ACTIVITY_NAME and ACTIVITY_TYPE : if stream\u2019s activities field is automotive, set ACTIVITY_NAME = in_vehicle and ACTIVITY_TYPE = 0 if stream\u2019s activities field is cycling, set ACTIVITY_NAME = on_bicycle and ACTIVITY_TYPE = 1 if stream\u2019s activities field is walking, set ACTIVITY_NAME = walking and ACTIVITY_TYPE = 7 if stream\u2019s activities field is running, set ACTIVITY_NAME = running and ACTIVITY_TYPE = 8 if stream\u2019s activities field is stationary, set ACTIVITY_NAME = still and ACTIVITY_TYPE = 3 if stream\u2019s activities field is unknown, set ACTIVITY_NAME = unknown and ACTIVITY_TYPE = 4 For RAPIDS CONFIDENCE column: if stream\u2019s confidence field is 0, set CONFIDENCE = 0 if stream\u2019s confidence field is 1, set CONFIDENCE = 50 if stream\u2019s confidence field is 2, set CONFIDENCE = 100 PHONE_APPLICATIONS_CRASHES ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id PACKAGE_NAME package_name APPLICATION_NAME application_name APPLICATION_VERSION application_version ERROR_SHORT error_short ERROR_LONG error_long ERROR_CONDITION error_condition IS_SYSTEM_APP is_system_app MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS This sensor is not supported by iOS devices. PHONE_APPLICATIONS_FOREGROUND ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id PACKAGE_NAME package_name APPLICATION_NAME application_name IS_SYSTEM_APP is_system_app MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS This sensor is not supported by iOS devices. PHONE_APPLICATIONS_NOTIFICATIONS ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id PACKAGE_NAME package_name APPLICATION_NAME application_name TEXT text SOUND sound VIBRATE vibrate DEFAULTS defaults FLAGS flags MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS This sensor is not supported by iOS devices. PHONE_BATTERY ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id BATTERY_STATUS battery_status BATTERY_LEVEL battery_level BATTERY_SCALE battery_scale MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS Client V1 RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id BATTERY_STATUS FLAG_TO_MUTATE BATTERY_LEVEL battery_level BATTERY_SCALE battery_scale MUTATION COLUMN_MAPPINGS Script column Stream column BATTERY_STATUS battery_status SCRIPTS src/data/streams/mutations/phone/aware/battery_ios_unification.R Note For RAPIDS BATTERY_STATUS column: if stream\u2019s battery_status field is 3, set BATTERY_STATUS = 5 (full status) if stream\u2019s battery_status field is 1, set BATTERY_STATUS = 3 (discharge) IOS Client V2 Same as ANDROID PHONE_BLUETOOTH ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id BT_ADDRESS bt_address BT_NAME bt_name BT_RSSI bt_rssi MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS Only old iOS versions supported this sensor (same mapping as Android). PHONE_CALLS ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id CALL_TYPE call_type CALL_DURATION call_duration TRACE trace MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id CALL_TYPE FLAG_TO_MUTATE CALL_DURATION call_duration TRACE trace MUTATION COLUMN_MAPPINGS Script column Stream column CALL_TYPE call_type SCRIPTS src/data/streams/mutations/phone/aware/calls_ios_unification.R Note We transform iOS call logs into Android\u2019s format. iOS stores call status: 1=incoming, 2=connected, 3=dialing, 4=disconnected, as opposed to Android\u2019s events: 1=incoming, 2=outgoing, 3=missed. We follow this algorithm to convert iOS call data (there are some inaccuracies in the way we handle sequences, see new rules below): Search for the disconnected (4) status as it is common to all calls Group all events that preceded every status 4 We convert every 1,2,4 (or 2,1,4) sequence to an incoming call We convert every 3,2,4 (or 2,3,4) sequence to an outgoing call We convert every 1,4 or 3,4 sequence to a missed call (either incoming or outgoing) We set the duration of the call to be the sum of every status (dialing/ringing to hangup) as opposed to the duration of the last status (pick up to hang up) Tested with an Android (OnePlus 7T) and an iPhone XR Call type Android (duration) iOS (duration) New Rule Outgoing missed ended by me 2 (0) 3,4 (0,X) 3,4 is converted to 2 with duration 0 Outgoing missed ended by them 2(0) 3,2,4 (0,X,X2) 3,2,4 is converted to 2 with duration X2* Incoming missed ended by me NA** 1,4 (0,X) 1,4 is converted to 3 with duration 0 Incoming missed ended by them 3(0) 1,4 (0,X) 1,4 is converted to 3 with duration 0 Outgoing answered 2(X excluding dialing time) 3,2,4 (0,X,X2) 3,2,4 is converted to 2 with duration X2 Incoming answered 1(X excluding dialing time) 1,2,4 (0,X,X2) 1,2,4 is converted to 1 with duration X2 .* There is no way to differentiate an outgoing missed call ended by them from an outgoing answered call because the phone goes directly to voice mail and it counts as call time (essentially the voice mail answered). .** Android does not record incoming missed calls ended by the participant, just those ended by the person calling or ignored by the participant. PHONE_CONVERSATION ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id DOUBLE_ENERGY double_energy INFERENCE inference DOUBLE_CONVO_START double_convo_start DOUBLE_CONVO_END double_convo_end MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id DOUBLE_ENERGY double_energy INFERENCE inference DOUBLE_CONVO_START FLAG_TO_MUTATE DOUBLE_CONVO_END FLAG_TO_MUTATE MUTATION COLUMN_MAPPINGS Script column Stream column DOUBLE_CONVO_START double_convo_start DOUBLE_CONVO_END double_convo_end SCRIPTS src/data/streams/mutations/phone/aware/conversation_ios_timestamp.R Note For RAPIDS columns of DOUBLE_CONVO_START and DOUBLE_CONVO_END : if stream\u2019s double_convo_start field is smaller than 9999999999, it is in seconds instead of milliseconds. Set DOUBLE_CONVO_START = 1000 * double_convo_start . if stream\u2019s double_convo_end field is smaller than 9999999999, it is in seconds instead of milliseconds. Set DOUBLE_CONVO_END = 1000 * double_convo_end . PHONE_KEYBOARD ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id PACKAGE_NAME package_name BEFORE_TEXT before_text CURRENT_TEXT current_text IS_PASSWORD is_password MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS This sensor is not supported by iOS devices. PHONE_LIGHT ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id DOUBLE_LIGHT_LUX double_light_lux ACCURACY accuracy MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS This sensor is not supported by iOS devices. PHONE_LOCATIONS ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id DOUBLE_LATITUDE double_latitude DOUBLE_LONGITUDE double_longitude DOUBLE_BEARING double_bearing DOUBLE_SPEED double_speed DOUBLE_ALTITUDE double_altitude PROVIDER provider ACCURACY accuracy MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS Same as ANDROID PHONE_LOG ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id LOG_MESSAGE log_message MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS Same as ANDROID PHONE_MESSAGES ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id MESSAGE_TYPE message_type TRACE trace MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS This sensor is not supported by iOS devices. PHONE_SCREEN ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id SCREEN_STATUS screen_status MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id SCREEN_STATUS FLAG_TO_MUTATE MUTATION COLUMN_MAPPINGS Script column Stream column SCREEN_STATUS screen_status SCRIPTS src/data/streams/mutations/phone/aware/screen_ios_unification.R Note For SCREEN_STATUS RAPIDS column: if stream\u2019s screen_status field is 2 (lock episode), set SCREEN_STATUS = 0 (off episode). PHONE_WIFI_CONNECTED ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id MAC_ADDRESS mac_address SSID ssid BSSID bssid MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS Same as ANDROID PHONE_WIFI_VISIBLE ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id SSID ssid BSSID bssid SECURITY security FREQUENCY frequency RSSI rssi MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS Only old iOS versions supported this sensor (same mapping as Android).","title":"aware_mysql"},{"location":"datastreams/aware-mysql/#aware_mysql","text":"This data stream handles iOS and Android sensor data collected with the AWARE Framework and stored in a MySQL database.","title":"aware_mysql"},{"location":"datastreams/aware-mysql/#container","text":"A MySQL database with a table per sensor, each containing the data for all participants. This is the default database created by the old PHP AWARE server (as opposed to the new JavaScript Micro server). The script to connect and download data from this container is at: src/data/streams/aware_mysql/container.R","title":"Container"},{"location":"datastreams/aware-mysql/#format","text":"If you collected sensor data with the vanilla (original) AWARE mobile clients, you shouldn\u2019t need to modify this format (described below). Remember that a format maps and transforms columns in your raw data stream to the mandatory columns RAPIDS needs . The yaml file that describes the format of this data stream is at: src/data/streams/aware_csv/format.yaml For some sensors, we need to transform iOS data into Android format; you can refer to OS complex mapping for learn how this works. Hint The mappings in this stream (RAPIDS/Stream) are the same names because AWARE data was the first stream RAPIDS supported, meaning that it considers AWARE column names the default. PHONE_ACCELEROMETER ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id DOUBLE_VALUES_0 double_values_0 DOUBLE_VALUES_1 double_values_1 DOUBLE_VALUES_2 double_values_2 MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS Same as ANDROID PHONE_ACTIVITY_RECOGNITION ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id ACTIVITY_NAME activity_name ACTIVITY_TYPE activity_type CONFIDENCE confidence MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id ACTIVITY_NAME FLAG_TO_MUTATE ACTIVITY_TYPE FLAG_TO_MUTATE CONFIDENCE FLAG_TO_MUTATE MUTATION COLUMN_MAPPINGS Script column Stream column ACTIVITIES activities CONFIDENCE confidence SCRIPTS src/data/streams/mutations/phone/aware/activity_recogniton_ios_unification.R Note For RAPIDS columns of ACTIVITY_NAME and ACTIVITY_TYPE : if stream\u2019s activities field is automotive, set ACTIVITY_NAME = in_vehicle and ACTIVITY_TYPE = 0 if stream\u2019s activities field is cycling, set ACTIVITY_NAME = on_bicycle and ACTIVITY_TYPE = 1 if stream\u2019s activities field is walking, set ACTIVITY_NAME = walking and ACTIVITY_TYPE = 7 if stream\u2019s activities field is running, set ACTIVITY_NAME = running and ACTIVITY_TYPE = 8 if stream\u2019s activities field is stationary, set ACTIVITY_NAME = still and ACTIVITY_TYPE = 3 if stream\u2019s activities field is unknown, set ACTIVITY_NAME = unknown and ACTIVITY_TYPE = 4 For RAPIDS CONFIDENCE column: if stream\u2019s confidence field is 0, set CONFIDENCE = 0 if stream\u2019s confidence field is 1, set CONFIDENCE = 50 if stream\u2019s confidence field is 2, set CONFIDENCE = 100 PHONE_APPLICATIONS_CRASHES ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id PACKAGE_NAME package_name APPLICATION_NAME application_name APPLICATION_VERSION application_version ERROR_SHORT error_short ERROR_LONG error_long ERROR_CONDITION error_condition IS_SYSTEM_APP is_system_app MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS This sensor is not supported by iOS devices. PHONE_APPLICATIONS_FOREGROUND ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id PACKAGE_NAME package_name APPLICATION_NAME application_name IS_SYSTEM_APP is_system_app MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS This sensor is not supported by iOS devices. PHONE_APPLICATIONS_NOTIFICATIONS ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id PACKAGE_NAME package_name APPLICATION_NAME application_name TEXT text SOUND sound VIBRATE vibrate DEFAULTS defaults FLAGS flags MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS This sensor is not supported by iOS devices. PHONE_BATTERY ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id BATTERY_STATUS battery_status BATTERY_LEVEL battery_level BATTERY_SCALE battery_scale MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS Client V1 RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id BATTERY_STATUS FLAG_TO_MUTATE BATTERY_LEVEL battery_level BATTERY_SCALE battery_scale MUTATION COLUMN_MAPPINGS Script column Stream column BATTERY_STATUS battery_status SCRIPTS src/data/streams/mutations/phone/aware/battery_ios_unification.R Note For RAPIDS BATTERY_STATUS column: if stream\u2019s battery_status field is 3, set BATTERY_STATUS = 5 (full status) if stream\u2019s battery_status field is 1, set BATTERY_STATUS = 3 (discharge) IOS Client V2 Same as ANDROID PHONE_BLUETOOTH ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id BT_ADDRESS bt_address BT_NAME bt_name BT_RSSI bt_rssi MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS Only old iOS versions supported this sensor (same mapping as Android). PHONE_CALLS ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id CALL_TYPE call_type CALL_DURATION call_duration TRACE trace MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id CALL_TYPE FLAG_TO_MUTATE CALL_DURATION call_duration TRACE trace MUTATION COLUMN_MAPPINGS Script column Stream column CALL_TYPE call_type SCRIPTS src/data/streams/mutations/phone/aware/calls_ios_unification.R Note We transform iOS call logs into Android\u2019s format. iOS stores call status: 1=incoming, 2=connected, 3=dialing, 4=disconnected, as opposed to Android\u2019s events: 1=incoming, 2=outgoing, 3=missed. We follow this algorithm to convert iOS call data (there are some inaccuracies in the way we handle sequences, see new rules below): Search for the disconnected (4) status as it is common to all calls Group all events that preceded every status 4 We convert every 1,2,4 (or 2,1,4) sequence to an incoming call We convert every 3,2,4 (or 2,3,4) sequence to an outgoing call We convert every 1,4 or 3,4 sequence to a missed call (either incoming or outgoing) We set the duration of the call to be the sum of every status (dialing/ringing to hangup) as opposed to the duration of the last status (pick up to hang up) Tested with an Android (OnePlus 7T) and an iPhone XR Call type Android (duration) iOS (duration) New Rule Outgoing missed ended by me 2 (0) 3,4 (0,X) 3,4 is converted to 2 with duration 0 Outgoing missed ended by them 2(0) 3,2,4 (0,X,X2) 3,2,4 is converted to 2 with duration X2* Incoming missed ended by me NA** 1,4 (0,X) 1,4 is converted to 3 with duration 0 Incoming missed ended by them 3(0) 1,4 (0,X) 1,4 is converted to 3 with duration 0 Outgoing answered 2(X excluding dialing time) 3,2,4 (0,X,X2) 3,2,4 is converted to 2 with duration X2 Incoming answered 1(X excluding dialing time) 1,2,4 (0,X,X2) 1,2,4 is converted to 1 with duration X2 .* There is no way to differentiate an outgoing missed call ended by them from an outgoing answered call because the phone goes directly to voice mail and it counts as call time (essentially the voice mail answered). .** Android does not record incoming missed calls ended by the participant, just those ended by the person calling or ignored by the participant. PHONE_CONVERSATION ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id DOUBLE_ENERGY double_energy INFERENCE inference DOUBLE_CONVO_START double_convo_start DOUBLE_CONVO_END double_convo_end MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id DOUBLE_ENERGY double_energy INFERENCE inference DOUBLE_CONVO_START FLAG_TO_MUTATE DOUBLE_CONVO_END FLAG_TO_MUTATE MUTATION COLUMN_MAPPINGS Script column Stream column DOUBLE_CONVO_START double_convo_start DOUBLE_CONVO_END double_convo_end SCRIPTS src/data/streams/mutations/phone/aware/conversation_ios_timestamp.R Note For RAPIDS columns of DOUBLE_CONVO_START and DOUBLE_CONVO_END : if stream\u2019s double_convo_start field is smaller than 9999999999, it is in seconds instead of milliseconds. Set DOUBLE_CONVO_START = 1000 * double_convo_start . if stream\u2019s double_convo_end field is smaller than 9999999999, it is in seconds instead of milliseconds. Set DOUBLE_CONVO_END = 1000 * double_convo_end . PHONE_KEYBOARD ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id PACKAGE_NAME package_name BEFORE_TEXT before_text CURRENT_TEXT current_text IS_PASSWORD is_password MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS This sensor is not supported by iOS devices. PHONE_LIGHT ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id DOUBLE_LIGHT_LUX double_light_lux ACCURACY accuracy MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS This sensor is not supported by iOS devices. PHONE_LOCATIONS ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id DOUBLE_LATITUDE double_latitude DOUBLE_LONGITUDE double_longitude DOUBLE_BEARING double_bearing DOUBLE_SPEED double_speed DOUBLE_ALTITUDE double_altitude PROVIDER provider ACCURACY accuracy MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS Same as ANDROID PHONE_LOG ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id LOG_MESSAGE log_message MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS Same as ANDROID PHONE_MESSAGES ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id MESSAGE_TYPE message_type TRACE trace MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS This sensor is not supported by iOS devices. PHONE_SCREEN ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id SCREEN_STATUS screen_status MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id SCREEN_STATUS FLAG_TO_MUTATE MUTATION COLUMN_MAPPINGS Script column Stream column SCREEN_STATUS screen_status SCRIPTS src/data/streams/mutations/phone/aware/screen_ios_unification.R Note For SCREEN_STATUS RAPIDS column: if stream\u2019s screen_status field is 2 (lock episode), set SCREEN_STATUS = 0 (off episode). PHONE_WIFI_CONNECTED ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id MAC_ADDRESS mac_address SSID ssid BSSID bssid MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS Same as ANDROID PHONE_WIFI_VISIBLE ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id SSID ssid BSSID bssid SECURITY security FREQUENCY frequency RSSI rssi MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS Only old iOS versions supported this sensor (same mapping as Android).","title":"Format"},{"location":"datastreams/data-streams-introduction/","text":"Data Streams Introduction \u00b6 A data stream is a set of sensor data collected using a specific type of device with a specific format and stored in a specific container . For example, the aware_mysql data stream handles smartphone data ( device ) collected with the AWARE Framework ( format ) stored in a MySQL database ( container ). Similarly, smartphone data collected with Beiwe will have a different format and could be stored in a container like a PostgreSQL database or a CSV file. If you want to process a data stream using RAPIDS, make sure that your data is stored in a supported format and container (see table below). If RAPIDS doesn\u2019t support your data stream yet (e.g. Beiwe data stored in PostgreSQL, or AWARE data stored in SQLite), you can always implement a new data stream . If it\u2019s something you think other people might be interested on, we will be happy to include your new data stream in RAPIDS, so get in touch!. Hint Currently, you can add new data streams for smartphones, Fitbit, and Empatica devices. If you need RAPIDS to process data from other devices , like Oura Rings or Actigraph wearables, get in touch. It is a more complicated process that could take a couple of days to implement for someone familiar with R or Python, but we would be happy to work on it together. For reference, these are the data streams we currently support: Data Stream Device Format Container Docs aware_mysql Phone AWARE app MySQL link aware_csv Phone AWARE app CSV files link aware_influxdb (beta) Phone AWARE app InfluxDB link fitbitjson_mysql Fitbit JSON (per Fitbit\u2019s API ) MySQL link fitbitjson_csv Fitbit JSON (per Fitbit\u2019s API ) CSV files link fitbitparsed_mysql Fitbit Parsed (parsed API data) MySQL link fitbitparsed_csv Fitbit Parsed (parsed API data) CSV files link empatica_zip Empatica E4 Connect ZIP files link","title":"Introduction"},{"location":"datastreams/data-streams-introduction/#data-streams-introduction","text":"A data stream is a set of sensor data collected using a specific type of device with a specific format and stored in a specific container . For example, the aware_mysql data stream handles smartphone data ( device ) collected with the AWARE Framework ( format ) stored in a MySQL database ( container ). Similarly, smartphone data collected with Beiwe will have a different format and could be stored in a container like a PostgreSQL database or a CSV file. If you want to process a data stream using RAPIDS, make sure that your data is stored in a supported format and container (see table below). If RAPIDS doesn\u2019t support your data stream yet (e.g. Beiwe data stored in PostgreSQL, or AWARE data stored in SQLite), you can always implement a new data stream . If it\u2019s something you think other people might be interested on, we will be happy to include your new data stream in RAPIDS, so get in touch!. Hint Currently, you can add new data streams for smartphones, Fitbit, and Empatica devices. If you need RAPIDS to process data from other devices , like Oura Rings or Actigraph wearables, get in touch. It is a more complicated process that could take a couple of days to implement for someone familiar with R or Python, but we would be happy to work on it together. For reference, these are the data streams we currently support: Data Stream Device Format Container Docs aware_mysql Phone AWARE app MySQL link aware_csv Phone AWARE app CSV files link aware_influxdb (beta) Phone AWARE app InfluxDB link fitbitjson_mysql Fitbit JSON (per Fitbit\u2019s API ) MySQL link fitbitjson_csv Fitbit JSON (per Fitbit\u2019s API ) CSV files link fitbitparsed_mysql Fitbit Parsed (parsed API data) MySQL link fitbitparsed_csv Fitbit Parsed (parsed API data) CSV files link empatica_zip Empatica E4 Connect ZIP files link","title":"Data Streams Introduction"},{"location":"datastreams/empatica-zip/","text":"empatica_zip \u00b6 This data stream handles Empatica sensor data downloaded as zip files using the E4 Connect . Container \u00b6 You need to create a subfolder for every participant named after their device id inside the folder specified by [EMPATICA_DATA_STREAMS][empatica_zipfiles][FOLDER] . You can add one or more Empatica zip files to any subfolder. The script to connect and download data from this container is at: src/data/streams/empatica_zip/container.R Format \u00b6 The format.yaml maps and transforms columns in your raw data stream to the mandatory columns RAPIDS needs for Empatica sensors . This file is at: src/data/streams/empatica_zip/format.yaml All columns are mutated from the raw data in the zip files so you don\u2019t need to modify any column mappings. EMPATICA_ACCELEROMETER RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id DOUBLE_VALUES_0 double_values_0 DOUBLE_VALUES_1 double_values_1 DOUBLE_VALUES_2 double_values_2 MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) EMPATICA_HEARTRATE RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id HEARTRATE heartrate MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) EMPATICA_TEMPERATURE RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id TEMPERATURE temperature MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) EMPATICA_ELECTRODERMAL_ACTIVITY RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id ELECTRODERMAL_ACTIVITY electrodermal_activity MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) EMPATICA_BLOOD_VOLUME_PULSE RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id BLOOD_VOLUME_PULSE blood_volume_pulse MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) EMPATICA_INTER_BEAT_INTERVAL RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id INTER_BEAT_INTERVAL inter_beat_interval MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) EMPATICA_EMPATICA_TAGS RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id TAGS tags MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None)","title":"empatica_zip"},{"location":"datastreams/empatica-zip/#empatica_zip","text":"This data stream handles Empatica sensor data downloaded as zip files using the E4 Connect .","title":"empatica_zip"},{"location":"datastreams/empatica-zip/#container","text":"You need to create a subfolder for every participant named after their device id inside the folder specified by [EMPATICA_DATA_STREAMS][empatica_zipfiles][FOLDER] . You can add one or more Empatica zip files to any subfolder. The script to connect and download data from this container is at: src/data/streams/empatica_zip/container.R","title":"Container"},{"location":"datastreams/empatica-zip/#format","text":"The format.yaml maps and transforms columns in your raw data stream to the mandatory columns RAPIDS needs for Empatica sensors . This file is at: src/data/streams/empatica_zip/format.yaml All columns are mutated from the raw data in the zip files so you don\u2019t need to modify any column mappings. EMPATICA_ACCELEROMETER RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id DOUBLE_VALUES_0 double_values_0 DOUBLE_VALUES_1 double_values_1 DOUBLE_VALUES_2 double_values_2 MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) EMPATICA_HEARTRATE RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id HEARTRATE heartrate MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) EMPATICA_TEMPERATURE RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id TEMPERATURE temperature MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) EMPATICA_ELECTRODERMAL_ACTIVITY RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id ELECTRODERMAL_ACTIVITY electrodermal_activity MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) EMPATICA_BLOOD_VOLUME_PULSE RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id BLOOD_VOLUME_PULSE blood_volume_pulse MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) EMPATICA_INTER_BEAT_INTERVAL RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id INTER_BEAT_INTERVAL inter_beat_interval MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) EMPATICA_EMPATICA_TAGS RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id TAGS tags MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None)","title":"Format"},{"location":"datastreams/fitbitjson-csv/","text":"fitbitjson_csv \u00b6 This data stream handles Fitbit sensor data downloaded using the Fitbit Web API and stored in a CSV file. Please note that RAPIDS cannot query the API directly; you need to use other available tools or implement your own. Once you have your sensor data in a CSV file, RAPIDS can process it. Warning The CSV files have to use , as separator, \\ as escape character (do not escape \" with \"\" ), and wrap any string columns with \" . Example of a valid CSV file \"timestamp\",\"device_id\",\"label\",\"fitbit_id\",\"fitbit_data_type\",\"fitbit_data\" 1587614400000,\"a748ee1a-1d0b-4ae9-9074-279a2b6ba524\",\"5S\",\"5ZKN9B\",\"steps\",\"{\\\"activities-steps\\\":[{\\\"dateTime\\\":\\\"2020-04-23\\\",\\\"value\\\":\\\"7881\\\"}]\" Container \u00b6 The container should be a CSV file per Fitbit sensor, each containing all participants\u2019 data. The script to connect and download data from this container is at: src/data/streams/fitbitjson_csv/container.R Format \u00b6 The format.yaml maps and transforms columns in your raw data stream to the mandatory columns RAPIDS needs for Fitbit sensors . This file is at: src/data/streams/fitbitjson_csv/format.yaml If you want RAPIDS to process Fitbit sensor data using this stream, you will need to map DEVICE_ID and JSON_FITBIT_COLUMN to your own raw data columns inside each sensor section in format.yaml . FITBIT_HEARTRATE_SUMMARY RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column LOCAL_DATE_TIME FLAG_TO_MUTATE DEVICE_ID device_id HEARTRATE_DAILY_RESTINGHR FLAG_TO_MUTATE HEARTRATE_DAILY_CALORIESOUTOFRANGE FLAG_TO_MUTATE HEARTRATE_DAILY_CALORIESFATBURN FLAG_TO_MUTATE HEARTRATE_DAILY_CALORIESCARDIO FLAG_TO_MUTATE HEARTRATE_DAILY_CALORIESPEAK FLAG_TO_MUTATE MUTATION COLUMN_MAPPINGS Script column Stream column JSON_FITBIT_COLUMN fitbit_data SCRIPTS - src/data/streams/mutations/fitbit/parse_heartrate_summary_json.py - src/data/streams/mutations/fitbit/add_zero_timestamp.py Note All columns except DEVICE_ID are parsed from JSON_FITBIT_COLUMN . JSON_FITBIT_COLUMN is a string column containing the JSON objects returned by Fitbit\u2019s API. See an example of the raw data RAPIDS expects for this data stream: Example of the raw data RAPIDS expects for this data stream device_id fitbit_data a748ee1a-1d0b-4ae9-9074-279a2b6ba524 {\u201cactivities-heart\u201d:[{\u201cdateTime\u201d:\u201d2020-10-07\u201d,\u201dvalue\u201d:{\u201ccustomHeartRateZones\u201d:[],\u201dheartRateZones\u201d:[{\u201ccaloriesOut\u201d:1200.6102,\u201dmax\u201d:88,\u201dmin\u201d:31,\u201dminutes\u201d:1058,\u201dname\u201d:\u201dOut of Range\u201d},{\u201ccaloriesOut\u201d:760.3020,\u201dmax\u201d:120,\u201dmin\u201d:86,\u201dminutes\u201d:366,\u201dname\u201d:\u201dFat Burn\u201d},{\u201ccaloriesOut\u201d:15.2048,\u201dmax\u201d:146,\u201dmin\u201d:120,\u201dminutes\u201d:2,\u201dname\u201d:\u201dCardio\u201d},{\u201ccaloriesOut\u201d:0,\u201dmax\u201d:221,\u201dmin\u201d:148,\u201dminutes\u201d:0,\u201dname\u201d:\u201dPeak\u201d}],\u201drestingHeartRate\u201d:72}}],\u201dactivities-heart-intraday\u201d:{\u201cdataset\u201d:[{\u201ctime\u201d:\u201d00:00:00\u201d,\u201dvalue\u201d:68},{\u201ctime\u201d:\u201d00:01:00\u201d,\u201dvalue\u201d:67},{\u201ctime\u201d:\u201d00:02:00\u201d,\u201dvalue\u201d:67},\u2026],\u201ddatasetInterval\u201d:1,\u201ddatasetType\u201d:\u201dminute\u201d}} a748ee1a-1d0b-4ae9-9074-279a2b6ba524 {\u201cactivities-heart\u201d:[{\u201cdateTime\u201d:\u201d2020-10-08\u201d,\u201dvalue\u201d:{\u201ccustomHeartRateZones\u201d:[],\u201dheartRateZones\u201d:[{\u201ccaloriesOut\u201d:1100.1120,\u201dmax\u201d:89,\u201dmin\u201d:30,\u201dminutes\u201d:921,\u201dname\u201d:\u201dOut of Range\u201d},{\u201ccaloriesOut\u201d:660.0012,\u201dmax\u201d:118,\u201dmin\u201d:82,\u201dminutes\u201d:361,\u201dname\u201d:\u201dFat Burn\u201d},{\u201ccaloriesOut\u201d:23.7088,\u201dmax\u201d:142,\u201dmin\u201d:108,\u201dminutes\u201d:3,\u201dname\u201d:\u201dCardio\u201d},{\u201ccaloriesOut\u201d:0,\u201dmax\u201d:221,\u201dmin\u201d:148,\u201dminutes\u201d:0,\u201dname\u201d:\u201dPeak\u201d}],\u201drestingHeartRate\u201d:70}}],\u201dactivities-heart-intraday\u201d:{\u201cdataset\u201d:[{\u201ctime\u201d:\u201d00:00:00\u201d,\u201dvalue\u201d:77},{\u201ctime\u201d:\u201d00:01:00\u201d,\u201dvalue\u201d:75},{\u201ctime\u201d:\u201d00:02:00\u201d,\u201dvalue\u201d:73},\u2026],\u201ddatasetInterval\u201d:1,\u201ddatasetType\u201d:\u201dminute\u201d}} a748ee1a-1d0b-4ae9-9074-279a2b6ba524 {\u201cactivities-heart\u201d:[{\u201cdateTime\u201d:\u201d2020-10-09\u201d,\u201dvalue\u201d:{\u201ccustomHeartRateZones\u201d:[],\u201dheartRateZones\u201d:[{\u201ccaloriesOut\u201d:750.3615,\u201dmax\u201d:77,\u201dmin\u201d:30,\u201dminutes\u201d:851,\u201dname\u201d:\u201dOut of Range\u201d},{\u201ccaloriesOut\u201d:734.1516,\u201dmax\u201d:107,\u201dmin\u201d:77,\u201dminutes\u201d:550,\u201dname\u201d:\u201dFat Burn\u201d},{\u201ccaloriesOut\u201d:131.8579,\u201dmax\u201d:130,\u201dmin\u201d:107,\u201dminutes\u201d:29,\u201dname\u201d:\u201dCardio\u201d},{\u201ccaloriesOut\u201d:0,\u201dmax\u201d:220,\u201dmin\u201d:130,\u201dminutes\u201d:0,\u201dname\u201d:\u201dPeak\u201d}],\u201drestingHeartRate\u201d:69}}],\u201dactivities-heart-intraday\u201d:{\u201cdataset\u201d:[{\u201ctime\u201d:\u201d00:00:00\u201d,\u201dvalue\u201d:90},{\u201ctime\u201d:\u201d00:01:00\u201d,\u201dvalue\u201d:89},{\u201ctime\u201d:\u201d00:02:00\u201d,\u201dvalue\u201d:88},\u2026],\u201ddatasetInterval\u201d:1,\u201ddatasetType\u201d:\u201dminute\u201d}} FITBIT_HEARTRATE_INTRADAY RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column LOCAL_DATE_TIME FLAG_TO_MUTATE DEVICE_ID device_id HEARTRATE FLAG_TO_MUTATE HEARTRATE_ZONE FLAG_TO_MUTATE MUTATION COLUMN_MAPPINGS Script column Stream column JSON_FITBIT_COLUMN fitbit_data SCRIPTS - src/data/streams/mutations/fitbit/parse_heartrate_intraday_json.py - src/data/streams/mutations/fitbit/add_zero_timestamp.py Note All columns except DEVICE_ID are parsed from JSON_FITBIT_COLUMN . JSON_FITBIT_COLUMN is a string column containing the JSON objects returned by Fitbit\u2019s API. See an example of the raw data RAPIDS expects for this data stream: Example of the raw data RAPIDS expects for this data stream device_id fitbit_data a748ee1a-1d0b-4ae9-9074-279a2b6ba524 {\u201cactivities-heart\u201d:[{\u201cdateTime\u201d:\u201d2020-10-07\u201d,\u201dvalue\u201d:{\u201ccustomHeartRateZones\u201d:[],\u201dheartRateZones\u201d:[{\u201ccaloriesOut\u201d:1200.6102,\u201dmax\u201d:88,\u201dmin\u201d:31,\u201dminutes\u201d:1058,\u201dname\u201d:\u201dOut of Range\u201d},{\u201ccaloriesOut\u201d:760.3020,\u201dmax\u201d:120,\u201dmin\u201d:86,\u201dminutes\u201d:366,\u201dname\u201d:\u201dFat Burn\u201d},{\u201ccaloriesOut\u201d:15.2048,\u201dmax\u201d:146,\u201dmin\u201d:120,\u201dminutes\u201d:2,\u201dname\u201d:\u201dCardio\u201d},{\u201ccaloriesOut\u201d:0,\u201dmax\u201d:221,\u201dmin\u201d:148,\u201dminutes\u201d:0,\u201dname\u201d:\u201dPeak\u201d}],\u201drestingHeartRate\u201d:72}}],\u201dactivities-heart-intraday\u201d:{\u201cdataset\u201d:[{\u201ctime\u201d:\u201d00:00:00\u201d,\u201dvalue\u201d:68},{\u201ctime\u201d:\u201d00:01:00\u201d,\u201dvalue\u201d:67},{\u201ctime\u201d:\u201d00:02:00\u201d,\u201dvalue\u201d:67},\u2026],\u201ddatasetInterval\u201d:1,\u201ddatasetType\u201d:\u201dminute\u201d}} a748ee1a-1d0b-4ae9-9074-279a2b6ba524 {\u201cactivities-heart\u201d:[{\u201cdateTime\u201d:\u201d2020-10-08\u201d,\u201dvalue\u201d:{\u201ccustomHeartRateZones\u201d:[],\u201dheartRateZones\u201d:[{\u201ccaloriesOut\u201d:1100.1120,\u201dmax\u201d:89,\u201dmin\u201d:30,\u201dminutes\u201d:921,\u201dname\u201d:\u201dOut of Range\u201d},{\u201ccaloriesOut\u201d:660.0012,\u201dmax\u201d:118,\u201dmin\u201d:82,\u201dminutes\u201d:361,\u201dname\u201d:\u201dFat Burn\u201d},{\u201ccaloriesOut\u201d:23.7088,\u201dmax\u201d:142,\u201dmin\u201d:108,\u201dminutes\u201d:3,\u201dname\u201d:\u201dCardio\u201d},{\u201ccaloriesOut\u201d:0,\u201dmax\u201d:221,\u201dmin\u201d:148,\u201dminutes\u201d:0,\u201dname\u201d:\u201dPeak\u201d}],\u201drestingHeartRate\u201d:70}}],\u201dactivities-heart-intraday\u201d:{\u201cdataset\u201d:[{\u201ctime\u201d:\u201d00:00:00\u201d,\u201dvalue\u201d:77},{\u201ctime\u201d:\u201d00:01:00\u201d,\u201dvalue\u201d:75},{\u201ctime\u201d:\u201d00:02:00\u201d,\u201dvalue\u201d:73},\u2026],\u201ddatasetInterval\u201d:1,\u201ddatasetType\u201d:\u201dminute\u201d}} a748ee1a-1d0b-4ae9-9074-279a2b6ba524 {\u201cactivities-heart\u201d:[{\u201cdateTime\u201d:\u201d2020-10-09\u201d,\u201dvalue\u201d:{\u201ccustomHeartRateZones\u201d:[],\u201dheartRateZones\u201d:[{\u201ccaloriesOut\u201d:750.3615,\u201dmax\u201d:77,\u201dmin\u201d:30,\u201dminutes\u201d:851,\u201dname\u201d:\u201dOut of Range\u201d},{\u201ccaloriesOut\u201d:734.1516,\u201dmax\u201d:107,\u201dmin\u201d:77,\u201dminutes\u201d:550,\u201dname\u201d:\u201dFat Burn\u201d},{\u201ccaloriesOut\u201d:131.8579,\u201dmax\u201d:130,\u201dmin\u201d:107,\u201dminutes\u201d:29,\u201dname\u201d:\u201dCardio\u201d},{\u201ccaloriesOut\u201d:0,\u201dmax\u201d:220,\u201dmin\u201d:130,\u201dminutes\u201d:0,\u201dname\u201d:\u201dPeak\u201d}],\u201drestingHeartRate\u201d:69}}],\u201dactivities-heart-intraday\u201d:{\u201cdataset\u201d:[{\u201ctime\u201d:\u201d00:00:00\u201d,\u201dvalue\u201d:90},{\u201ctime\u201d:\u201d00:01:00\u201d,\u201dvalue\u201d:89},{\u201ctime\u201d:\u201d00:02:00\u201d,\u201dvalue\u201d:88},\u2026],\u201ddatasetInterval\u201d:1,\u201ddatasetType\u201d:\u201dminute\u201d}} FITBIT_SLEEP_SUMMARY RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP FLAG_TO_MUTATE LOCAL_DATE_TIME FLAG_TO_MUTATE LOCAL_START_DATE_TIME FLAG_TO_MUTATE LOCAL_END_DATE_TIME FLAG_TO_MUTATE DEVICE_ID device_id EFFICIENCY FLAG_TO_MUTATE MINUTES_AFTER_WAKEUP FLAG_TO_MUTATE MINUTES_ASLEEP FLAG_TO_MUTATE MINUTES_AWAKE FLAG_TO_MUTATE MINUTES_TO_FALL_ASLEEP FLAG_TO_MUTATE MINUTES_IN_BED FLAG_TO_MUTATE IS_MAIN_SLEEP FLAG_TO_MUTATE TYPE FLAG_TO_MUTATE MUTATION COLUMN_MAPPINGS Script column Stream column JSON_FITBIT_COLUMN fitbit_data SCRIPTS - src/data/streams/mutations/fitbit/parse_sleep_summary_json.py - src/data/streams/mutations/fitbit/add_local_date_time.py - src/data/streams/mutations/fitbit/add_zero_timestamp.py Note Fitbit API has two versions for sleep data, v1 and v1.2. We support both but ignore v1\u2019s count_awake , duration_awake , and count_awakenings , count_restless , duration_restless columns. All columns except DEVICE_ID are parsed from JSON_FITBIT_COLUMN . JSON_FITBIT_COLUMN is a string column containing the JSON objects returned by Fitbit\u2019s API. See an example of the raw data RAPIDS expects for this data stream: Example of the expected raw data device_id fitbit_data a748ee1a-1d0b-4ae9-9074-279a2b6ba524 {\u201csleep\u201d:[{\u201cdateOfSleep\u201d:\u201d2020-10-10\u201d,\u201dduration\u201d:3600000,\u201defficiency\u201d:92,\u201dendTime\u201d:\u201d2020-10-10T16:37:00.000\u201d,\u201dinfoCode\u201d:2,\u201disMainSleep\u201d:false,\u201dlevels\u201d:{\u201cdata\u201d:[{\u201cdateTime\u201d:\u201d2020-10-10T15:36:30.000\u201d,\u201dlevel\u201d:\u201drestless\u201d,\u201dseconds\u201d:60},{\u201cdateTime\u201d:\u201d2020-10-10T15:37:30.000\u201d,\u201dlevel\u201d:\u201dasleep\u201d,\u201dseconds\u201d:660},{\u201cdateTime\u201d:\u201d2020-10-10T15:48:30.000\u201d,\u201dlevel\u201d:\u201drestless\u201d,\u201dseconds\u201d:60},\u2026], \u201csummary\u201d:{\u201casleep\u201d:{\u201ccount\u201d:0,\u201dminutes\u201d:56},\u201dawake\u201d:{\u201ccount\u201d:0,\u201dminutes\u201d:0},\u201drestless\u201d:{\u201ccount\u201d:3,\u201dminutes\u201d:4}}},\u201dlogId\u201d:26315914306,\u201dminutesAfterWakeup\u201d:0,\u201dminutesAsleep\u201d:55,\u201dminutesAwake\u201d:5,\u201dminutesToFallAsleep\u201d:0,\u201dstartTime\u201d:\u201d2020-10-10T15:36:30.000\u201d,\u201dtimeInBed\u201d:60,\u201dtype\u201d:\u201dclassic\u201d},{\u201cdateOfSleep\u201d:\u201d2020-10-10\u201d,\u201dduration\u201d:22980000,\u201defficiency\u201d:88,\u201dendTime\u201d:\u201d2020-10-10T08:10:00.000\u201d,\u201dinfoCode\u201d:0,\u201disMainSleep\u201d:true,\u201dlevels\u201d:{\u201cdata\u201d:[{\u201cdateTime\u201d:\u201d2020-10-10T01:46:30.000\u201d,\u201dlevel\u201d:\u201dlight\u201d,\u201dseconds\u201d:420},{\u201cdateTime\u201d:\u201d2020-10-10T01:53:30.000\u201d,\u201dlevel\u201d:\u201ddeep\u201d,\u201dseconds\u201d:1230},{\u201cdateTime\u201d:\u201d2020-10-10T02:14:00.000\u201d,\u201dlevel\u201d:\u201dlight\u201d,\u201dseconds\u201d:360},\u2026], \u201csummary\u201d:{\u201cdeep\u201d:{\u201ccount\u201d:3,\u201dminutes\u201d:92,\u201dthirtyDayAvgMinutes\u201d:0},\u201dlight\u201d:{\u201ccount\u201d:29,\u201dminutes\u201d:193,\u201dthirtyDayAvgMinutes\u201d:0},\u201drem\u201d:{\u201ccount\u201d:4,\u201dminutes\u201d:33,\u201dthirtyDayAvgMinutes\u201d:0},\u201dwake\u201d:{\u201ccount\u201d:28,\u201dminutes\u201d:65,\u201dthirtyDayAvgMinutes\u201d:0}}},\u201dlogId\u201d:26311786557,\u201dminutesAfterWakeup\u201d:0,\u201dminutesAsleep\u201d:318,\u201dminutesAwake\u201d:65,\u201dminutesToFallAsleep\u201d:0,\u201dstartTime\u201d:\u201d2020-10-10T01:46:30.000\u201d,\u201dtimeInBed\u201d:383,\u201dtype\u201d:\u201dstages\u201d}],\u201dsummary\u201d:{\u201cstages\u201d:{\u201cdeep\u201d:92,\u201dlight\u201d:193,\u201drem\u201d:33,\u201dwake\u201d:65},\u201dtotalMinutesAsleep\u201d:373,\u201dtotalSleepRecords\u201d:2,\u201dtotalTimeInBed\u201d:443}} a748ee1a-1d0b-4ae9-9074-279a2b6ba524 {\u201csleep\u201d:[{\u201cdateOfSleep\u201d:\u201d2020-10-11\u201d,\u201dduration\u201d:41640000,\u201defficiency\u201d:89,\u201dendTime\u201d:\u201d2020-10-11T11:47:00.000\u201d,\u201dinfoCode\u201d:0,\u201disMainSleep\u201d:true,\u201dlevels\u201d:{\u201cdata\u201d:[{\u201cdateTime\u201d:\u201d2020-10-11T00:12:30.000\u201d,\u201dlevel\u201d:\u201dwake\u201d,\u201dseconds\u201d:450},{\u201cdateTime\u201d:\u201d2020-10-11T00:20:00.000\u201d,\u201dlevel\u201d:\u201dlight\u201d,\u201dseconds\u201d:870},{\u201cdateTime\u201d:\u201d2020-10-11T00:34:30.000\u201d,\u201dlevel\u201d:\u201dwake\u201d,\u201dseconds\u201d:780},\u2026], \u201csummary\u201d:{\u201cdeep\u201d:{\u201ccount\u201d:4,\u201dminutes\u201d:52,\u201dthirtyDayAvgMinutes\u201d:62},\u201dlight\u201d:{\u201ccount\u201d:32,\u201dminutes\u201d:442,\u201dthirtyDayAvgMinutes\u201d:364},\u201drem\u201d:{\u201ccount\u201d:6,\u201dminutes\u201d:68,\u201dthirtyDayAvgMinutes\u201d:58},\u201dwake\u201d:{\u201ccount\u201d:29,\u201dminutes\u201d:132,\u201dthirtyDayAvgMinutes\u201d:94}}},\u201dlogId\u201d:26589710670,\u201dminutesAfterWakeup\u201d:1,\u201dminutesAsleep\u201d:562,\u201dminutesAwake\u201d:132,\u201dminutesToFallAsleep\u201d:0,\u201dstartTime\u201d:\u201d2020-10-11T00:12:30.000\u201d,\u201dtimeInBed\u201d:694,\u201dtype\u201d:\u201dstages\u201d}],\u201dsummary\u201d:{\u201cstages\u201d:{\u201cdeep\u201d:52,\u201dlight\u201d:442,\u201drem\u201d:68,\u201dwake\u201d:132},\u201dtotalMinutesAsleep\u201d:562,\u201dtotalSleepRecords\u201d:1,\u201dtotalTimeInBed\u201d:694}} a748ee1a-1d0b-4ae9-9074-279a2b6ba524 {\u201csleep\u201d:[{\u201cdateOfSleep\u201d:\u201d2020-10-12\u201d,\u201dduration\u201d:28980000,\u201defficiency\u201d:93,\u201dendTime\u201d:\u201d2020-10-12T09:34:30.000\u201d,\u201dinfoCode\u201d:0,\u201disMainSleep\u201d:true,\u201dlevels\u201d:{\u201cdata\u201d:[{\u201cdateTime\u201d:\u201d2020-10-12T01:31:00.000\u201d,\u201dlevel\u201d:\u201dwake\u201d,\u201dseconds\u201d:600},{\u201cdateTime\u201d:\u201d2020-10-12T01:41:00.000\u201d,\u201dlevel\u201d:\u201dlight\u201d,\u201dseconds\u201d:60},{\u201cdateTime\u201d:\u201d2020-10-12T01:42:00.000\u201d,\u201dlevel\u201d:\u201ddeep\u201d,\u201dseconds\u201d:2340},\u2026], \u201csummary\u201d:{\u201cdeep\u201d:{\u201ccount\u201d:4,\u201dminutes\u201d:63,\u201dthirtyDayAvgMinutes\u201d:59},\u201dlight\u201d:{\u201ccount\u201d:27,\u201dminutes\u201d:257,\u201dthirtyDayAvgMinutes\u201d:364},\u201drem\u201d:{\u201ccount\u201d:5,\u201dminutes\u201d:94,\u201dthirtyDayAvgMinutes\u201d:58},\u201dwake\u201d:{\u201ccount\u201d:24,\u201dminutes\u201d:69,\u201dthirtyDayAvgMinutes\u201d:95}}},\u201dlogId\u201d:26589710673,\u201dminutesAfterWakeup\u201d:0,\u201dminutesAsleep\u201d:415,\u201dminutesAwake\u201d:68,\u201dminutesToFallAsleep\u201d:0,\u201dstartTime\u201d:\u201d2020-10-12T01:31:00.000\u201d,\u201dtimeInBed\u201d:483,\u201dtype\u201d:\u201dstages\u201d}],\u201dsummary\u201d:{\u201cstages\u201d:{\u201cdeep\u201d:63,\u201dlight\u201d:257,\u201drem\u201d:94,\u201dwake\u201d:69},\u201dtotalMinutesAsleep\u201d:415,\u201dtotalSleepRecords\u201d:1,\u201dtotalTimeInBed\u201d:483}} FITBIT_SLEEP_INTRADAY RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP FLAG_TO_MUTATE LOCAL_DATE_TIME FLAG_TO_MUTATE DEVICE_ID device_id TYPE_EPISODE_ID FLAG_TO_MUTATE DURATION FLAG_TO_MUTATE IS_MAIN_SLEEP FLAG_TO_MUTATE TYPE FLAG_TO_MUTATE LEVEL FLAG_TO_MUTATE MUTATION COLUMN_MAPPINGS Script column Stream column JSON_FITBIT_COLUMN fitbit_data SCRIPTS - src/data/streams/mutations/fitbit/parse_sleep_intraday_json.py - src/data/streams/mutations/fitbit/add_zero_timestamp.py Note Fitbit API has two versions for sleep data, v1 and v1.2, we support both. All columns except DEVICE_ID are parsed from JSON_FITBIT_COLUMN . JSON_FITBIT_COLUMN is a string column containing the JSON objects returned by Fitbit\u2019s API. See an example of the raw data RAPIDS expects for this data stream: Example of the expected raw data device_id fitbit_data a748ee1a-1d0b-4ae9-9074-279a2b6ba524 {\u201csleep\u201d:[{\u201cdateOfSleep\u201d:\u201d2020-10-10\u201d,\u201dduration\u201d:3600000,\u201defficiency\u201d:92,\u201dendTime\u201d:\u201d2020-10-10T16:37:00.000\u201d,\u201dinfoCode\u201d:2,\u201disMainSleep\u201d:false,\u201dlevels\u201d:{\u201cdata\u201d:[{\u201cdateTime\u201d:\u201d2020-10-10T15:36:30.000\u201d,\u201dlevel\u201d:\u201drestless\u201d,\u201dseconds\u201d:60},{\u201cdateTime\u201d:\u201d2020-10-10T15:37:30.000\u201d,\u201dlevel\u201d:\u201dasleep\u201d,\u201dseconds\u201d:660},{\u201cdateTime\u201d:\u201d2020-10-10T15:48:30.000\u201d,\u201dlevel\u201d:\u201drestless\u201d,\u201dseconds\u201d:60},\u2026], \u201csummary\u201d:{\u201casleep\u201d:{\u201ccount\u201d:0,\u201dminutes\u201d:56},\u201dawake\u201d:{\u201ccount\u201d:0,\u201dminutes\u201d:0},\u201drestless\u201d:{\u201ccount\u201d:3,\u201dminutes\u201d:4}}},\u201dlogId\u201d:26315914306,\u201dminutesAfterWakeup\u201d:0,\u201dminutesAsleep\u201d:55,\u201dminutesAwake\u201d:5,\u201dminutesToFallAsleep\u201d:0,\u201dstartTime\u201d:\u201d2020-10-10T15:36:30.000\u201d,\u201dtimeInBed\u201d:60,\u201dtype\u201d:\u201dclassic\u201d},{\u201cdateOfSleep\u201d:\u201d2020-10-10\u201d,\u201dduration\u201d:22980000,\u201defficiency\u201d:88,\u201dendTime\u201d:\u201d2020-10-10T08:10:00.000\u201d,\u201dinfoCode\u201d:0,\u201disMainSleep\u201d:true,\u201dlevels\u201d:{\u201cdata\u201d:[{\u201cdateTime\u201d:\u201d2020-10-10T01:46:30.000\u201d,\u201dlevel\u201d:\u201dlight\u201d,\u201dseconds\u201d:420},{\u201cdateTime\u201d:\u201d2020-10-10T01:53:30.000\u201d,\u201dlevel\u201d:\u201ddeep\u201d,\u201dseconds\u201d:1230},{\u201cdateTime\u201d:\u201d2020-10-10T02:14:00.000\u201d,\u201dlevel\u201d:\u201dlight\u201d,\u201dseconds\u201d:360},\u2026], \u201csummary\u201d:{\u201cdeep\u201d:{\u201ccount\u201d:3,\u201dminutes\u201d:92,\u201dthirtyDayAvgMinutes\u201d:0},\u201dlight\u201d:{\u201ccount\u201d:29,\u201dminutes\u201d:193,\u201dthirtyDayAvgMinutes\u201d:0},\u201drem\u201d:{\u201ccount\u201d:4,\u201dminutes\u201d:33,\u201dthirtyDayAvgMinutes\u201d:0},\u201dwake\u201d:{\u201ccount\u201d:28,\u201dminutes\u201d:65,\u201dthirtyDayAvgMinutes\u201d:0}}},\u201dlogId\u201d:26311786557,\u201dminutesAfterWakeup\u201d:0,\u201dminutesAsleep\u201d:318,\u201dminutesAwake\u201d:65,\u201dminutesToFallAsleep\u201d:0,\u201dstartTime\u201d:\u201d2020-10-10T01:46:30.000\u201d,\u201dtimeInBed\u201d:383,\u201dtype\u201d:\u201dstages\u201d}],\u201dsummary\u201d:{\u201cstages\u201d:{\u201cdeep\u201d:92,\u201dlight\u201d:193,\u201drem\u201d:33,\u201dwake\u201d:65},\u201dtotalMinutesAsleep\u201d:373,\u201dtotalSleepRecords\u201d:2,\u201dtotalTimeInBed\u201d:443}} a748ee1a-1d0b-4ae9-9074-279a2b6ba524 {\u201csleep\u201d:[{\u201cdateOfSleep\u201d:\u201d2020-10-11\u201d,\u201dduration\u201d:41640000,\u201defficiency\u201d:89,\u201dendTime\u201d:\u201d2020-10-11T11:47:00.000\u201d,\u201dinfoCode\u201d:0,\u201disMainSleep\u201d:true,\u201dlevels\u201d:{\u201cdata\u201d:[{\u201cdateTime\u201d:\u201d2020-10-11T00:12:30.000\u201d,\u201dlevel\u201d:\u201dwake\u201d,\u201dseconds\u201d:450},{\u201cdateTime\u201d:\u201d2020-10-11T00:20:00.000\u201d,\u201dlevel\u201d:\u201dlight\u201d,\u201dseconds\u201d:870},{\u201cdateTime\u201d:\u201d2020-10-11T00:34:30.000\u201d,\u201dlevel\u201d:\u201dwake\u201d,\u201dseconds\u201d:780},\u2026], \u201csummary\u201d:{\u201cdeep\u201d:{\u201ccount\u201d:4,\u201dminutes\u201d:52,\u201dthirtyDayAvgMinutes\u201d:62},\u201dlight\u201d:{\u201ccount\u201d:32,\u201dminutes\u201d:442,\u201dthirtyDayAvgMinutes\u201d:364},\u201drem\u201d:{\u201ccount\u201d:6,\u201dminutes\u201d:68,\u201dthirtyDayAvgMinutes\u201d:58},\u201dwake\u201d:{\u201ccount\u201d:29,\u201dminutes\u201d:132,\u201dthirtyDayAvgMinutes\u201d:94}}},\u201dlogId\u201d:26589710670,\u201dminutesAfterWakeup\u201d:1,\u201dminutesAsleep\u201d:562,\u201dminutesAwake\u201d:132,\u201dminutesToFallAsleep\u201d:0,\u201dstartTime\u201d:\u201d2020-10-11T00:12:30.000\u201d,\u201dtimeInBed\u201d:694,\u201dtype\u201d:\u201dstages\u201d}],\u201dsummary\u201d:{\u201cstages\u201d:{\u201cdeep\u201d:52,\u201dlight\u201d:442,\u201drem\u201d:68,\u201dwake\u201d:132},\u201dtotalMinutesAsleep\u201d:562,\u201dtotalSleepRecords\u201d:1,\u201dtotalTimeInBed\u201d:694}} a748ee1a-1d0b-4ae9-9074-279a2b6ba524 {\u201csleep\u201d:[{\u201cdateOfSleep\u201d:\u201d2020-10-12\u201d,\u201dduration\u201d:28980000,\u201defficiency\u201d:93,\u201dendTime\u201d:\u201d2020-10-12T09:34:30.000\u201d,\u201dinfoCode\u201d:0,\u201disMainSleep\u201d:true,\u201dlevels\u201d:{\u201cdata\u201d:[{\u201cdateTime\u201d:\u201d2020-10-12T01:31:00.000\u201d,\u201dlevel\u201d:\u201dwake\u201d,\u201dseconds\u201d:600},{\u201cdateTime\u201d:\u201d2020-10-12T01:41:00.000\u201d,\u201dlevel\u201d:\u201dlight\u201d,\u201dseconds\u201d:60},{\u201cdateTime\u201d:\u201d2020-10-12T01:42:00.000\u201d,\u201dlevel\u201d:\u201ddeep\u201d,\u201dseconds\u201d:2340},\u2026], \u201csummary\u201d:{\u201cdeep\u201d:{\u201ccount\u201d:4,\u201dminutes\u201d:63,\u201dthirtyDayAvgMinutes\u201d:59},\u201dlight\u201d:{\u201ccount\u201d:27,\u201dminutes\u201d:257,\u201dthirtyDayAvgMinutes\u201d:364},\u201drem\u201d:{\u201ccount\u201d:5,\u201dminutes\u201d:94,\u201dthirtyDayAvgMinutes\u201d:58},\u201dwake\u201d:{\u201ccount\u201d:24,\u201dminutes\u201d:69,\u201dthirtyDayAvgMinutes\u201d:95}}},\u201dlogId\u201d:26589710673,\u201dminutesAfterWakeup\u201d:0,\u201dminutesAsleep\u201d:415,\u201dminutesAwake\u201d:68,\u201dminutesToFallAsleep\u201d:0,\u201dstartTime\u201d:\u201d2020-10-12T01:31:00.000\u201d,\u201dtimeInBed\u201d:483,\u201dtype\u201d:\u201dstages\u201d}],\u201dsummary\u201d:{\u201cstages\u201d:{\u201cdeep\u201d:63,\u201dlight\u201d:257,\u201drem\u201d:94,\u201dwake\u201d:69},\u201dtotalMinutesAsleep\u201d:415,\u201dtotalSleepRecords\u201d:1,\u201dtotalTimeInBed\u201d:483}} FITBIT_STEPS_SUMMARY RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP FLAG_TO_MUTATE DEVICE_ID device_id LOCAL_DATE_TIME FLAG_TO_MUTATE STEPS FLAG_TO_MUTATE MUTATION COLUMN_MAPPINGS Script column Stream column JSON_FITBIT_COLUMN fitbit_data SCRIPTS - src/data/streams/mutations/fitbit/parse_steps_summary_json.py - src/data/streams/mutations/fitbit/add_zero_timestamp.py Note TIMESTAMP , LOCAL_DATE_TIME , and STEPS are parsed from JSON_FITBIT_COLUMN . JSON_FITBIT_COLUMN is a string column containing the JSON objects returned by Fitbit\u2019s API. See an example of the raw data RAPIDS expects for this data stream: Example of the expected raw data device_id fitbit_data a748ee1a-1d0b-4ae9-9074-279a2b6ba524 \u201cactivities-steps\u201d:[{\u201cdateTime\u201d:\u201d2020-10-07\u201d,\u201dvalue\u201d:\u201d1775\u201d}],\u201dactivities-steps-intraday\u201d:{\u201cdataset\u201d:[{\u201ctime\u201d:\u201d00:00:00\u201d,\u201dvalue\u201d:5},{\u201ctime\u201d:\u201d00:01:00\u201d,\u201dvalue\u201d:3},{\u201ctime\u201d:\u201d00:02:00\u201d,\u201dvalue\u201d:0},\u2026],\u201ddatasetInterval\u201d:1,\u201ddatasetType\u201d:\u201dminute\u201d}} a748ee1a-1d0b-4ae9-9074-279a2b6ba524 \u201cactivities-steps\u201d:[{\u201cdateTime\u201d:\u201d2020-10-08\u201d,\u201dvalue\u201d:\u201d3201\u201d}],\u201dactivities-steps-intraday\u201d:{\u201cdataset\u201d:[{\u201ctime\u201d:\u201d00:00:00\u201d,\u201dvalue\u201d:14},{\u201ctime\u201d:\u201d00:01:00\u201d,\u201dvalue\u201d:11},{\u201ctime\u201d:\u201d00:02:00\u201d,\u201dvalue\u201d:10},\u2026],\u201ddatasetInterval\u201d:1,\u201ddatasetType\u201d:\u201dminute\u201d}} a748ee1a-1d0b-4ae9-9074-279a2b6ba524 \u201cactivities-steps\u201d:[{\u201cdateTime\u201d:\u201d2020-10-09\u201d,\u201dvalue\u201d:\u201d998\u201d}],\u201dactivities-steps-intraday\u201d:{\u201cdataset\u201d:[{\u201ctime\u201d:\u201d00:00:00\u201d,\u201dvalue\u201d:0},{\u201ctime\u201d:\u201d00:01:00\u201d,\u201dvalue\u201d:0},{\u201ctime\u201d:\u201d00:02:00\u201d,\u201dvalue\u201d:0},\u2026],\u201ddatasetInterval\u201d:1,\u201ddatasetType\u201d:\u201dminute\u201d}} FITBIT_STEPS_INTRADAY RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP FLAG_TO_MUTATE DEVICE_ID device_id LOCAL_DATE_TIME FLAG_TO_MUTATE STEPS FLAG_TO_MUTATE MUTATION COLUMN_MAPPINGS Script column Stream column JSON_FITBIT_COLUMN fitbit_data SCRIPTS - src/data/streams/mutations/fitbit/parse_steps_intraday_json.py - src/data/streams/mutations/fitbit/add_zero_timestamp.py Note TIMESTAMP , LOCAL_DATE_TIME , and STEPS are parsed from JSON_FITBIT_COLUMN . JSON_FITBIT_COLUMN is a string column containing the JSON objects returned by Fitbit\u2019s API . See an example of the raw data RAPIDS expects for this data stream: Example of the expected raw data device_id fitbit_data a748ee1a-1d0b-4ae9-9074-279a2b6ba524 \u201cactivities-steps\u201d:[{\u201cdateTime\u201d:\u201d2020-10-07\u201d,\u201dvalue\u201d:\u201d1775\u201d}],\u201dactivities-steps-intraday\u201d:{\u201cdataset\u201d:[{\u201ctime\u201d:\u201d00:00:00\u201d,\u201dvalue\u201d:5},{\u201ctime\u201d:\u201d00:01:00\u201d,\u201dvalue\u201d:3},{\u201ctime\u201d:\u201d00:02:00\u201d,\u201dvalue\u201d:0},\u2026],\u201ddatasetInterval\u201d:1,\u201ddatasetType\u201d:\u201dminute\u201d}} a748ee1a-1d0b-4ae9-9074-279a2b6ba524 \u201cactivities-steps\u201d:[{\u201cdateTime\u201d:\u201d2020-10-08\u201d,\u201dvalue\u201d:\u201d3201\u201d}],\u201dactivities-steps-intraday\u201d:{\u201cdataset\u201d:[{\u201ctime\u201d:\u201d00:00:00\u201d,\u201dvalue\u201d:14},{\u201ctime\u201d:\u201d00:01:00\u201d,\u201dvalue\u201d:11},{\u201ctime\u201d:\u201d00:02:00\u201d,\u201dvalue\u201d:10},\u2026],\u201ddatasetInterval\u201d:1,\u201ddatasetType\u201d:\u201dminute\u201d}} a748ee1a-1d0b-4ae9-9074-279a2b6ba524 \u201cactivities-steps\u201d:[{\u201cdateTime\u201d:\u201d2020-10-09\u201d,\u201dvalue\u201d:\u201d998\u201d}],\u201dactivities-steps-intraday\u201d:{\u201cdataset\u201d:[{\u201ctime\u201d:\u201d00:00:00\u201d,\u201dvalue\u201d:0},{\u201ctime\u201d:\u201d00:01:00\u201d,\u201dvalue\u201d:0},{\u201ctime\u201d:\u201d00:02:00\u201d,\u201dvalue\u201d:0},\u2026],\u201ddatasetInterval\u201d:1,\u201ddatasetType\u201d:\u201dminute\u201d}}","title":"fitbitjson_csv"},{"location":"datastreams/fitbitjson-csv/#fitbitjson_csv","text":"This data stream handles Fitbit sensor data downloaded using the Fitbit Web API and stored in a CSV file. Please note that RAPIDS cannot query the API directly; you need to use other available tools or implement your own. Once you have your sensor data in a CSV file, RAPIDS can process it. Warning The CSV files have to use , as separator, \\ as escape character (do not escape \" with \"\" ), and wrap any string columns with \" . Example of a valid CSV file \"timestamp\",\"device_id\",\"label\",\"fitbit_id\",\"fitbit_data_type\",\"fitbit_data\" 1587614400000,\"a748ee1a-1d0b-4ae9-9074-279a2b6ba524\",\"5S\",\"5ZKN9B\",\"steps\",\"{\\\"activities-steps\\\":[{\\\"dateTime\\\":\\\"2020-04-23\\\",\\\"value\\\":\\\"7881\\\"}]\"","title":"fitbitjson_csv"},{"location":"datastreams/fitbitjson-csv/#container","text":"The container should be a CSV file per Fitbit sensor, each containing all participants\u2019 data. The script to connect and download data from this container is at: src/data/streams/fitbitjson_csv/container.R","title":"Container"},{"location":"datastreams/fitbitjson-csv/#format","text":"The format.yaml maps and transforms columns in your raw data stream to the mandatory columns RAPIDS needs for Fitbit sensors . This file is at: src/data/streams/fitbitjson_csv/format.yaml If you want RAPIDS to process Fitbit sensor data using this stream, you will need to map DEVICE_ID and JSON_FITBIT_COLUMN to your own raw data columns inside each sensor section in format.yaml . FITBIT_HEARTRATE_SUMMARY RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column LOCAL_DATE_TIME FLAG_TO_MUTATE DEVICE_ID device_id HEARTRATE_DAILY_RESTINGHR FLAG_TO_MUTATE HEARTRATE_DAILY_CALORIESOUTOFRANGE FLAG_TO_MUTATE HEARTRATE_DAILY_CALORIESFATBURN FLAG_TO_MUTATE HEARTRATE_DAILY_CALORIESCARDIO FLAG_TO_MUTATE HEARTRATE_DAILY_CALORIESPEAK FLAG_TO_MUTATE MUTATION COLUMN_MAPPINGS Script column Stream column JSON_FITBIT_COLUMN fitbit_data SCRIPTS - src/data/streams/mutations/fitbit/parse_heartrate_summary_json.py - src/data/streams/mutations/fitbit/add_zero_timestamp.py Note All columns except DEVICE_ID are parsed from JSON_FITBIT_COLUMN . JSON_FITBIT_COLUMN is a string column containing the JSON objects returned by Fitbit\u2019s API. See an example of the raw data RAPIDS expects for this data stream: Example of the raw data RAPIDS expects for this data stream device_id fitbit_data a748ee1a-1d0b-4ae9-9074-279a2b6ba524 {\u201cactivities-heart\u201d:[{\u201cdateTime\u201d:\u201d2020-10-07\u201d,\u201dvalue\u201d:{\u201ccustomHeartRateZones\u201d:[],\u201dheartRateZones\u201d:[{\u201ccaloriesOut\u201d:1200.6102,\u201dmax\u201d:88,\u201dmin\u201d:31,\u201dminutes\u201d:1058,\u201dname\u201d:\u201dOut of Range\u201d},{\u201ccaloriesOut\u201d:760.3020,\u201dmax\u201d:120,\u201dmin\u201d:86,\u201dminutes\u201d:366,\u201dname\u201d:\u201dFat Burn\u201d},{\u201ccaloriesOut\u201d:15.2048,\u201dmax\u201d:146,\u201dmin\u201d:120,\u201dminutes\u201d:2,\u201dname\u201d:\u201dCardio\u201d},{\u201ccaloriesOut\u201d:0,\u201dmax\u201d:221,\u201dmin\u201d:148,\u201dminutes\u201d:0,\u201dname\u201d:\u201dPeak\u201d}],\u201drestingHeartRate\u201d:72}}],\u201dactivities-heart-intraday\u201d:{\u201cdataset\u201d:[{\u201ctime\u201d:\u201d00:00:00\u201d,\u201dvalue\u201d:68},{\u201ctime\u201d:\u201d00:01:00\u201d,\u201dvalue\u201d:67},{\u201ctime\u201d:\u201d00:02:00\u201d,\u201dvalue\u201d:67},\u2026],\u201ddatasetInterval\u201d:1,\u201ddatasetType\u201d:\u201dminute\u201d}} a748ee1a-1d0b-4ae9-9074-279a2b6ba524 {\u201cactivities-heart\u201d:[{\u201cdateTime\u201d:\u201d2020-10-08\u201d,\u201dvalue\u201d:{\u201ccustomHeartRateZones\u201d:[],\u201dheartRateZones\u201d:[{\u201ccaloriesOut\u201d:1100.1120,\u201dmax\u201d:89,\u201dmin\u201d:30,\u201dminutes\u201d:921,\u201dname\u201d:\u201dOut of Range\u201d},{\u201ccaloriesOut\u201d:660.0012,\u201dmax\u201d:118,\u201dmin\u201d:82,\u201dminutes\u201d:361,\u201dname\u201d:\u201dFat Burn\u201d},{\u201ccaloriesOut\u201d:23.7088,\u201dmax\u201d:142,\u201dmin\u201d:108,\u201dminutes\u201d:3,\u201dname\u201d:\u201dCardio\u201d},{\u201ccaloriesOut\u201d:0,\u201dmax\u201d:221,\u201dmin\u201d:148,\u201dminutes\u201d:0,\u201dname\u201d:\u201dPeak\u201d}],\u201drestingHeartRate\u201d:70}}],\u201dactivities-heart-intraday\u201d:{\u201cdataset\u201d:[{\u201ctime\u201d:\u201d00:00:00\u201d,\u201dvalue\u201d:77},{\u201ctime\u201d:\u201d00:01:00\u201d,\u201dvalue\u201d:75},{\u201ctime\u201d:\u201d00:02:00\u201d,\u201dvalue\u201d:73},\u2026],\u201ddatasetInterval\u201d:1,\u201ddatasetType\u201d:\u201dminute\u201d}} a748ee1a-1d0b-4ae9-9074-279a2b6ba524 {\u201cactivities-heart\u201d:[{\u201cdateTime\u201d:\u201d2020-10-09\u201d,\u201dvalue\u201d:{\u201ccustomHeartRateZones\u201d:[],\u201dheartRateZones\u201d:[{\u201ccaloriesOut\u201d:750.3615,\u201dmax\u201d:77,\u201dmin\u201d:30,\u201dminutes\u201d:851,\u201dname\u201d:\u201dOut of Range\u201d},{\u201ccaloriesOut\u201d:734.1516,\u201dmax\u201d:107,\u201dmin\u201d:77,\u201dminutes\u201d:550,\u201dname\u201d:\u201dFat Burn\u201d},{\u201ccaloriesOut\u201d:131.8579,\u201dmax\u201d:130,\u201dmin\u201d:107,\u201dminutes\u201d:29,\u201dname\u201d:\u201dCardio\u201d},{\u201ccaloriesOut\u201d:0,\u201dmax\u201d:220,\u201dmin\u201d:130,\u201dminutes\u201d:0,\u201dname\u201d:\u201dPeak\u201d}],\u201drestingHeartRate\u201d:69}}],\u201dactivities-heart-intraday\u201d:{\u201cdataset\u201d:[{\u201ctime\u201d:\u201d00:00:00\u201d,\u201dvalue\u201d:90},{\u201ctime\u201d:\u201d00:01:00\u201d,\u201dvalue\u201d:89},{\u201ctime\u201d:\u201d00:02:00\u201d,\u201dvalue\u201d:88},\u2026],\u201ddatasetInterval\u201d:1,\u201ddatasetType\u201d:\u201dminute\u201d}} FITBIT_HEARTRATE_INTRADAY RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column LOCAL_DATE_TIME FLAG_TO_MUTATE DEVICE_ID device_id HEARTRATE FLAG_TO_MUTATE HEARTRATE_ZONE FLAG_TO_MUTATE MUTATION COLUMN_MAPPINGS Script column Stream column JSON_FITBIT_COLUMN fitbit_data SCRIPTS - src/data/streams/mutations/fitbit/parse_heartrate_intraday_json.py - src/data/streams/mutations/fitbit/add_zero_timestamp.py Note All columns except DEVICE_ID are parsed from JSON_FITBIT_COLUMN . JSON_FITBIT_COLUMN is a string column containing the JSON objects returned by Fitbit\u2019s API. See an example of the raw data RAPIDS expects for this data stream: Example of the raw data RAPIDS expects for this data stream device_id fitbit_data a748ee1a-1d0b-4ae9-9074-279a2b6ba524 {\u201cactivities-heart\u201d:[{\u201cdateTime\u201d:\u201d2020-10-07\u201d,\u201dvalue\u201d:{\u201ccustomHeartRateZones\u201d:[],\u201dheartRateZones\u201d:[{\u201ccaloriesOut\u201d:1200.6102,\u201dmax\u201d:88,\u201dmin\u201d:31,\u201dminutes\u201d:1058,\u201dname\u201d:\u201dOut of Range\u201d},{\u201ccaloriesOut\u201d:760.3020,\u201dmax\u201d:120,\u201dmin\u201d:86,\u201dminutes\u201d:366,\u201dname\u201d:\u201dFat Burn\u201d},{\u201ccaloriesOut\u201d:15.2048,\u201dmax\u201d:146,\u201dmin\u201d:120,\u201dminutes\u201d:2,\u201dname\u201d:\u201dCardio\u201d},{\u201ccaloriesOut\u201d:0,\u201dmax\u201d:221,\u201dmin\u201d:148,\u201dminutes\u201d:0,\u201dname\u201d:\u201dPeak\u201d}],\u201drestingHeartRate\u201d:72}}],\u201dactivities-heart-intraday\u201d:{\u201cdataset\u201d:[{\u201ctime\u201d:\u201d00:00:00\u201d,\u201dvalue\u201d:68},{\u201ctime\u201d:\u201d00:01:00\u201d,\u201dvalue\u201d:67},{\u201ctime\u201d:\u201d00:02:00\u201d,\u201dvalue\u201d:67},\u2026],\u201ddatasetInterval\u201d:1,\u201ddatasetType\u201d:\u201dminute\u201d}} a748ee1a-1d0b-4ae9-9074-279a2b6ba524 {\u201cactivities-heart\u201d:[{\u201cdateTime\u201d:\u201d2020-10-08\u201d,\u201dvalue\u201d:{\u201ccustomHeartRateZones\u201d:[],\u201dheartRateZones\u201d:[{\u201ccaloriesOut\u201d:1100.1120,\u201dmax\u201d:89,\u201dmin\u201d:30,\u201dminutes\u201d:921,\u201dname\u201d:\u201dOut of Range\u201d},{\u201ccaloriesOut\u201d:660.0012,\u201dmax\u201d:118,\u201dmin\u201d:82,\u201dminutes\u201d:361,\u201dname\u201d:\u201dFat Burn\u201d},{\u201ccaloriesOut\u201d:23.7088,\u201dmax\u201d:142,\u201dmin\u201d:108,\u201dminutes\u201d:3,\u201dname\u201d:\u201dCardio\u201d},{\u201ccaloriesOut\u201d:0,\u201dmax\u201d:221,\u201dmin\u201d:148,\u201dminutes\u201d:0,\u201dname\u201d:\u201dPeak\u201d}],\u201drestingHeartRate\u201d:70}}],\u201dactivities-heart-intraday\u201d:{\u201cdataset\u201d:[{\u201ctime\u201d:\u201d00:00:00\u201d,\u201dvalue\u201d:77},{\u201ctime\u201d:\u201d00:01:00\u201d,\u201dvalue\u201d:75},{\u201ctime\u201d:\u201d00:02:00\u201d,\u201dvalue\u201d:73},\u2026],\u201ddatasetInterval\u201d:1,\u201ddatasetType\u201d:\u201dminute\u201d}} a748ee1a-1d0b-4ae9-9074-279a2b6ba524 {\u201cactivities-heart\u201d:[{\u201cdateTime\u201d:\u201d2020-10-09\u201d,\u201dvalue\u201d:{\u201ccustomHeartRateZones\u201d:[],\u201dheartRateZones\u201d:[{\u201ccaloriesOut\u201d:750.3615,\u201dmax\u201d:77,\u201dmin\u201d:30,\u201dminutes\u201d:851,\u201dname\u201d:\u201dOut of Range\u201d},{\u201ccaloriesOut\u201d:734.1516,\u201dmax\u201d:107,\u201dmin\u201d:77,\u201dminutes\u201d:550,\u201dname\u201d:\u201dFat Burn\u201d},{\u201ccaloriesOut\u201d:131.8579,\u201dmax\u201d:130,\u201dmin\u201d:107,\u201dminutes\u201d:29,\u201dname\u201d:\u201dCardio\u201d},{\u201ccaloriesOut\u201d:0,\u201dmax\u201d:220,\u201dmin\u201d:130,\u201dminutes\u201d:0,\u201dname\u201d:\u201dPeak\u201d}],\u201drestingHeartRate\u201d:69}}],\u201dactivities-heart-intraday\u201d:{\u201cdataset\u201d:[{\u201ctime\u201d:\u201d00:00:00\u201d,\u201dvalue\u201d:90},{\u201ctime\u201d:\u201d00:01:00\u201d,\u201dvalue\u201d:89},{\u201ctime\u201d:\u201d00:02:00\u201d,\u201dvalue\u201d:88},\u2026],\u201ddatasetInterval\u201d:1,\u201ddatasetType\u201d:\u201dminute\u201d}} FITBIT_SLEEP_SUMMARY RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP FLAG_TO_MUTATE LOCAL_DATE_TIME FLAG_TO_MUTATE LOCAL_START_DATE_TIME FLAG_TO_MUTATE LOCAL_END_DATE_TIME FLAG_TO_MUTATE DEVICE_ID device_id EFFICIENCY FLAG_TO_MUTATE MINUTES_AFTER_WAKEUP FLAG_TO_MUTATE MINUTES_ASLEEP FLAG_TO_MUTATE MINUTES_AWAKE FLAG_TO_MUTATE MINUTES_TO_FALL_ASLEEP FLAG_TO_MUTATE MINUTES_IN_BED FLAG_TO_MUTATE IS_MAIN_SLEEP FLAG_TO_MUTATE TYPE FLAG_TO_MUTATE MUTATION COLUMN_MAPPINGS Script column Stream column JSON_FITBIT_COLUMN fitbit_data SCRIPTS - src/data/streams/mutations/fitbit/parse_sleep_summary_json.py - src/data/streams/mutations/fitbit/add_local_date_time.py - src/data/streams/mutations/fitbit/add_zero_timestamp.py Note Fitbit API has two versions for sleep data, v1 and v1.2. We support both but ignore v1\u2019s count_awake , duration_awake , and count_awakenings , count_restless , duration_restless columns. All columns except DEVICE_ID are parsed from JSON_FITBIT_COLUMN . JSON_FITBIT_COLUMN is a string column containing the JSON objects returned by Fitbit\u2019s API. See an example of the raw data RAPIDS expects for this data stream: Example of the expected raw data device_id fitbit_data a748ee1a-1d0b-4ae9-9074-279a2b6ba524 {\u201csleep\u201d:[{\u201cdateOfSleep\u201d:\u201d2020-10-10\u201d,\u201dduration\u201d:3600000,\u201defficiency\u201d:92,\u201dendTime\u201d:\u201d2020-10-10T16:37:00.000\u201d,\u201dinfoCode\u201d:2,\u201disMainSleep\u201d:false,\u201dlevels\u201d:{\u201cdata\u201d:[{\u201cdateTime\u201d:\u201d2020-10-10T15:36:30.000\u201d,\u201dlevel\u201d:\u201drestless\u201d,\u201dseconds\u201d:60},{\u201cdateTime\u201d:\u201d2020-10-10T15:37:30.000\u201d,\u201dlevel\u201d:\u201dasleep\u201d,\u201dseconds\u201d:660},{\u201cdateTime\u201d:\u201d2020-10-10T15:48:30.000\u201d,\u201dlevel\u201d:\u201drestless\u201d,\u201dseconds\u201d:60},\u2026], \u201csummary\u201d:{\u201casleep\u201d:{\u201ccount\u201d:0,\u201dminutes\u201d:56},\u201dawake\u201d:{\u201ccount\u201d:0,\u201dminutes\u201d:0},\u201drestless\u201d:{\u201ccount\u201d:3,\u201dminutes\u201d:4}}},\u201dlogId\u201d:26315914306,\u201dminutesAfterWakeup\u201d:0,\u201dminutesAsleep\u201d:55,\u201dminutesAwake\u201d:5,\u201dminutesToFallAsleep\u201d:0,\u201dstartTime\u201d:\u201d2020-10-10T15:36:30.000\u201d,\u201dtimeInBed\u201d:60,\u201dtype\u201d:\u201dclassic\u201d},{\u201cdateOfSleep\u201d:\u201d2020-10-10\u201d,\u201dduration\u201d:22980000,\u201defficiency\u201d:88,\u201dendTime\u201d:\u201d2020-10-10T08:10:00.000\u201d,\u201dinfoCode\u201d:0,\u201disMainSleep\u201d:true,\u201dlevels\u201d:{\u201cdata\u201d:[{\u201cdateTime\u201d:\u201d2020-10-10T01:46:30.000\u201d,\u201dlevel\u201d:\u201dlight\u201d,\u201dseconds\u201d:420},{\u201cdateTime\u201d:\u201d2020-10-10T01:53:30.000\u201d,\u201dlevel\u201d:\u201ddeep\u201d,\u201dseconds\u201d:1230},{\u201cdateTime\u201d:\u201d2020-10-10T02:14:00.000\u201d,\u201dlevel\u201d:\u201dlight\u201d,\u201dseconds\u201d:360},\u2026], \u201csummary\u201d:{\u201cdeep\u201d:{\u201ccount\u201d:3,\u201dminutes\u201d:92,\u201dthirtyDayAvgMinutes\u201d:0},\u201dlight\u201d:{\u201ccount\u201d:29,\u201dminutes\u201d:193,\u201dthirtyDayAvgMinutes\u201d:0},\u201drem\u201d:{\u201ccount\u201d:4,\u201dminutes\u201d:33,\u201dthirtyDayAvgMinutes\u201d:0},\u201dwake\u201d:{\u201ccount\u201d:28,\u201dminutes\u201d:65,\u201dthirtyDayAvgMinutes\u201d:0}}},\u201dlogId\u201d:26311786557,\u201dminutesAfterWakeup\u201d:0,\u201dminutesAsleep\u201d:318,\u201dminutesAwake\u201d:65,\u201dminutesToFallAsleep\u201d:0,\u201dstartTime\u201d:\u201d2020-10-10T01:46:30.000\u201d,\u201dtimeInBed\u201d:383,\u201dtype\u201d:\u201dstages\u201d}],\u201dsummary\u201d:{\u201cstages\u201d:{\u201cdeep\u201d:92,\u201dlight\u201d:193,\u201drem\u201d:33,\u201dwake\u201d:65},\u201dtotalMinutesAsleep\u201d:373,\u201dtotalSleepRecords\u201d:2,\u201dtotalTimeInBed\u201d:443}} a748ee1a-1d0b-4ae9-9074-279a2b6ba524 {\u201csleep\u201d:[{\u201cdateOfSleep\u201d:\u201d2020-10-11\u201d,\u201dduration\u201d:41640000,\u201defficiency\u201d:89,\u201dendTime\u201d:\u201d2020-10-11T11:47:00.000\u201d,\u201dinfoCode\u201d:0,\u201disMainSleep\u201d:true,\u201dlevels\u201d:{\u201cdata\u201d:[{\u201cdateTime\u201d:\u201d2020-10-11T00:12:30.000\u201d,\u201dlevel\u201d:\u201dwake\u201d,\u201dseconds\u201d:450},{\u201cdateTime\u201d:\u201d2020-10-11T00:20:00.000\u201d,\u201dlevel\u201d:\u201dlight\u201d,\u201dseconds\u201d:870},{\u201cdateTime\u201d:\u201d2020-10-11T00:34:30.000\u201d,\u201dlevel\u201d:\u201dwake\u201d,\u201dseconds\u201d:780},\u2026], \u201csummary\u201d:{\u201cdeep\u201d:{\u201ccount\u201d:4,\u201dminutes\u201d:52,\u201dthirtyDayAvgMinutes\u201d:62},\u201dlight\u201d:{\u201ccount\u201d:32,\u201dminutes\u201d:442,\u201dthirtyDayAvgMinutes\u201d:364},\u201drem\u201d:{\u201ccount\u201d:6,\u201dminutes\u201d:68,\u201dthirtyDayAvgMinutes\u201d:58},\u201dwake\u201d:{\u201ccount\u201d:29,\u201dminutes\u201d:132,\u201dthirtyDayAvgMinutes\u201d:94}}},\u201dlogId\u201d:26589710670,\u201dminutesAfterWakeup\u201d:1,\u201dminutesAsleep\u201d:562,\u201dminutesAwake\u201d:132,\u201dminutesToFallAsleep\u201d:0,\u201dstartTime\u201d:\u201d2020-10-11T00:12:30.000\u201d,\u201dtimeInBed\u201d:694,\u201dtype\u201d:\u201dstages\u201d}],\u201dsummary\u201d:{\u201cstages\u201d:{\u201cdeep\u201d:52,\u201dlight\u201d:442,\u201drem\u201d:68,\u201dwake\u201d:132},\u201dtotalMinutesAsleep\u201d:562,\u201dtotalSleepRecords\u201d:1,\u201dtotalTimeInBed\u201d:694}} a748ee1a-1d0b-4ae9-9074-279a2b6ba524 {\u201csleep\u201d:[{\u201cdateOfSleep\u201d:\u201d2020-10-12\u201d,\u201dduration\u201d:28980000,\u201defficiency\u201d:93,\u201dendTime\u201d:\u201d2020-10-12T09:34:30.000\u201d,\u201dinfoCode\u201d:0,\u201disMainSleep\u201d:true,\u201dlevels\u201d:{\u201cdata\u201d:[{\u201cdateTime\u201d:\u201d2020-10-12T01:31:00.000\u201d,\u201dlevel\u201d:\u201dwake\u201d,\u201dseconds\u201d:600},{\u201cdateTime\u201d:\u201d2020-10-12T01:41:00.000\u201d,\u201dlevel\u201d:\u201dlight\u201d,\u201dseconds\u201d:60},{\u201cdateTime\u201d:\u201d2020-10-12T01:42:00.000\u201d,\u201dlevel\u201d:\u201ddeep\u201d,\u201dseconds\u201d:2340},\u2026], \u201csummary\u201d:{\u201cdeep\u201d:{\u201ccount\u201d:4,\u201dminutes\u201d:63,\u201dthirtyDayAvgMinutes\u201d:59},\u201dlight\u201d:{\u201ccount\u201d:27,\u201dminutes\u201d:257,\u201dthirtyDayAvgMinutes\u201d:364},\u201drem\u201d:{\u201ccount\u201d:5,\u201dminutes\u201d:94,\u201dthirtyDayAvgMinutes\u201d:58},\u201dwake\u201d:{\u201ccount\u201d:24,\u201dminutes\u201d:69,\u201dthirtyDayAvgMinutes\u201d:95}}},\u201dlogId\u201d:26589710673,\u201dminutesAfterWakeup\u201d:0,\u201dminutesAsleep\u201d:415,\u201dminutesAwake\u201d:68,\u201dminutesToFallAsleep\u201d:0,\u201dstartTime\u201d:\u201d2020-10-12T01:31:00.000\u201d,\u201dtimeInBed\u201d:483,\u201dtype\u201d:\u201dstages\u201d}],\u201dsummary\u201d:{\u201cstages\u201d:{\u201cdeep\u201d:63,\u201dlight\u201d:257,\u201drem\u201d:94,\u201dwake\u201d:69},\u201dtotalMinutesAsleep\u201d:415,\u201dtotalSleepRecords\u201d:1,\u201dtotalTimeInBed\u201d:483}} FITBIT_SLEEP_INTRADAY RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP FLAG_TO_MUTATE LOCAL_DATE_TIME FLAG_TO_MUTATE DEVICE_ID device_id TYPE_EPISODE_ID FLAG_TO_MUTATE DURATION FLAG_TO_MUTATE IS_MAIN_SLEEP FLAG_TO_MUTATE TYPE FLAG_TO_MUTATE LEVEL FLAG_TO_MUTATE MUTATION COLUMN_MAPPINGS Script column Stream column JSON_FITBIT_COLUMN fitbit_data SCRIPTS - src/data/streams/mutations/fitbit/parse_sleep_intraday_json.py - src/data/streams/mutations/fitbit/add_zero_timestamp.py Note Fitbit API has two versions for sleep data, v1 and v1.2, we support both. All columns except DEVICE_ID are parsed from JSON_FITBIT_COLUMN . JSON_FITBIT_COLUMN is a string column containing the JSON objects returned by Fitbit\u2019s API. See an example of the raw data RAPIDS expects for this data stream: Example of the expected raw data device_id fitbit_data a748ee1a-1d0b-4ae9-9074-279a2b6ba524 {\u201csleep\u201d:[{\u201cdateOfSleep\u201d:\u201d2020-10-10\u201d,\u201dduration\u201d:3600000,\u201defficiency\u201d:92,\u201dendTime\u201d:\u201d2020-10-10T16:37:00.000\u201d,\u201dinfoCode\u201d:2,\u201disMainSleep\u201d:false,\u201dlevels\u201d:{\u201cdata\u201d:[{\u201cdateTime\u201d:\u201d2020-10-10T15:36:30.000\u201d,\u201dlevel\u201d:\u201drestless\u201d,\u201dseconds\u201d:60},{\u201cdateTime\u201d:\u201d2020-10-10T15:37:30.000\u201d,\u201dlevel\u201d:\u201dasleep\u201d,\u201dseconds\u201d:660},{\u201cdateTime\u201d:\u201d2020-10-10T15:48:30.000\u201d,\u201dlevel\u201d:\u201drestless\u201d,\u201dseconds\u201d:60},\u2026], \u201csummary\u201d:{\u201casleep\u201d:{\u201ccount\u201d:0,\u201dminutes\u201d:56},\u201dawake\u201d:{\u201ccount\u201d:0,\u201dminutes\u201d:0},\u201drestless\u201d:{\u201ccount\u201d:3,\u201dminutes\u201d:4}}},\u201dlogId\u201d:26315914306,\u201dminutesAfterWakeup\u201d:0,\u201dminutesAsleep\u201d:55,\u201dminutesAwake\u201d:5,\u201dminutesToFallAsleep\u201d:0,\u201dstartTime\u201d:\u201d2020-10-10T15:36:30.000\u201d,\u201dtimeInBed\u201d:60,\u201dtype\u201d:\u201dclassic\u201d},{\u201cdateOfSleep\u201d:\u201d2020-10-10\u201d,\u201dduration\u201d:22980000,\u201defficiency\u201d:88,\u201dendTime\u201d:\u201d2020-10-10T08:10:00.000\u201d,\u201dinfoCode\u201d:0,\u201disMainSleep\u201d:true,\u201dlevels\u201d:{\u201cdata\u201d:[{\u201cdateTime\u201d:\u201d2020-10-10T01:46:30.000\u201d,\u201dlevel\u201d:\u201dlight\u201d,\u201dseconds\u201d:420},{\u201cdateTime\u201d:\u201d2020-10-10T01:53:30.000\u201d,\u201dlevel\u201d:\u201ddeep\u201d,\u201dseconds\u201d:1230},{\u201cdateTime\u201d:\u201d2020-10-10T02:14:00.000\u201d,\u201dlevel\u201d:\u201dlight\u201d,\u201dseconds\u201d:360},\u2026], \u201csummary\u201d:{\u201cdeep\u201d:{\u201ccount\u201d:3,\u201dminutes\u201d:92,\u201dthirtyDayAvgMinutes\u201d:0},\u201dlight\u201d:{\u201ccount\u201d:29,\u201dminutes\u201d:193,\u201dthirtyDayAvgMinutes\u201d:0},\u201drem\u201d:{\u201ccount\u201d:4,\u201dminutes\u201d:33,\u201dthirtyDayAvgMinutes\u201d:0},\u201dwake\u201d:{\u201ccount\u201d:28,\u201dminutes\u201d:65,\u201dthirtyDayAvgMinutes\u201d:0}}},\u201dlogId\u201d:26311786557,\u201dminutesAfterWakeup\u201d:0,\u201dminutesAsleep\u201d:318,\u201dminutesAwake\u201d:65,\u201dminutesToFallAsleep\u201d:0,\u201dstartTime\u201d:\u201d2020-10-10T01:46:30.000\u201d,\u201dtimeInBed\u201d:383,\u201dtype\u201d:\u201dstages\u201d}],\u201dsummary\u201d:{\u201cstages\u201d:{\u201cdeep\u201d:92,\u201dlight\u201d:193,\u201drem\u201d:33,\u201dwake\u201d:65},\u201dtotalMinutesAsleep\u201d:373,\u201dtotalSleepRecords\u201d:2,\u201dtotalTimeInBed\u201d:443}} a748ee1a-1d0b-4ae9-9074-279a2b6ba524 {\u201csleep\u201d:[{\u201cdateOfSleep\u201d:\u201d2020-10-11\u201d,\u201dduration\u201d:41640000,\u201defficiency\u201d:89,\u201dendTime\u201d:\u201d2020-10-11T11:47:00.000\u201d,\u201dinfoCode\u201d:0,\u201disMainSleep\u201d:true,\u201dlevels\u201d:{\u201cdata\u201d:[{\u201cdateTime\u201d:\u201d2020-10-11T00:12:30.000\u201d,\u201dlevel\u201d:\u201dwake\u201d,\u201dseconds\u201d:450},{\u201cdateTime\u201d:\u201d2020-10-11T00:20:00.000\u201d,\u201dlevel\u201d:\u201dlight\u201d,\u201dseconds\u201d:870},{\u201cdateTime\u201d:\u201d2020-10-11T00:34:30.000\u201d,\u201dlevel\u201d:\u201dwake\u201d,\u201dseconds\u201d:780},\u2026], \u201csummary\u201d:{\u201cdeep\u201d:{\u201ccount\u201d:4,\u201dminutes\u201d:52,\u201dthirtyDayAvgMinutes\u201d:62},\u201dlight\u201d:{\u201ccount\u201d:32,\u201dminutes\u201d:442,\u201dthirtyDayAvgMinutes\u201d:364},\u201drem\u201d:{\u201ccount\u201d:6,\u201dminutes\u201d:68,\u201dthirtyDayAvgMinutes\u201d:58},\u201dwake\u201d:{\u201ccount\u201d:29,\u201dminutes\u201d:132,\u201dthirtyDayAvgMinutes\u201d:94}}},\u201dlogId\u201d:26589710670,\u201dminutesAfterWakeup\u201d:1,\u201dminutesAsleep\u201d:562,\u201dminutesAwake\u201d:132,\u201dminutesToFallAsleep\u201d:0,\u201dstartTime\u201d:\u201d2020-10-11T00:12:30.000\u201d,\u201dtimeInBed\u201d:694,\u201dtype\u201d:\u201dstages\u201d}],\u201dsummary\u201d:{\u201cstages\u201d:{\u201cdeep\u201d:52,\u201dlight\u201d:442,\u201drem\u201d:68,\u201dwake\u201d:132},\u201dtotalMinutesAsleep\u201d:562,\u201dtotalSleepRecords\u201d:1,\u201dtotalTimeInBed\u201d:694}} a748ee1a-1d0b-4ae9-9074-279a2b6ba524 {\u201csleep\u201d:[{\u201cdateOfSleep\u201d:\u201d2020-10-12\u201d,\u201dduration\u201d:28980000,\u201defficiency\u201d:93,\u201dendTime\u201d:\u201d2020-10-12T09:34:30.000\u201d,\u201dinfoCode\u201d:0,\u201disMainSleep\u201d:true,\u201dlevels\u201d:{\u201cdata\u201d:[{\u201cdateTime\u201d:\u201d2020-10-12T01:31:00.000\u201d,\u201dlevel\u201d:\u201dwake\u201d,\u201dseconds\u201d:600},{\u201cdateTime\u201d:\u201d2020-10-12T01:41:00.000\u201d,\u201dlevel\u201d:\u201dlight\u201d,\u201dseconds\u201d:60},{\u201cdateTime\u201d:\u201d2020-10-12T01:42:00.000\u201d,\u201dlevel\u201d:\u201ddeep\u201d,\u201dseconds\u201d:2340},\u2026], \u201csummary\u201d:{\u201cdeep\u201d:{\u201ccount\u201d:4,\u201dminutes\u201d:63,\u201dthirtyDayAvgMinutes\u201d:59},\u201dlight\u201d:{\u201ccount\u201d:27,\u201dminutes\u201d:257,\u201dthirtyDayAvgMinutes\u201d:364},\u201drem\u201d:{\u201ccount\u201d:5,\u201dminutes\u201d:94,\u201dthirtyDayAvgMinutes\u201d:58},\u201dwake\u201d:{\u201ccount\u201d:24,\u201dminutes\u201d:69,\u201dthirtyDayAvgMinutes\u201d:95}}},\u201dlogId\u201d:26589710673,\u201dminutesAfterWakeup\u201d:0,\u201dminutesAsleep\u201d:415,\u201dminutesAwake\u201d:68,\u201dminutesToFallAsleep\u201d:0,\u201dstartTime\u201d:\u201d2020-10-12T01:31:00.000\u201d,\u201dtimeInBed\u201d:483,\u201dtype\u201d:\u201dstages\u201d}],\u201dsummary\u201d:{\u201cstages\u201d:{\u201cdeep\u201d:63,\u201dlight\u201d:257,\u201drem\u201d:94,\u201dwake\u201d:69},\u201dtotalMinutesAsleep\u201d:415,\u201dtotalSleepRecords\u201d:1,\u201dtotalTimeInBed\u201d:483}} FITBIT_STEPS_SUMMARY RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP FLAG_TO_MUTATE DEVICE_ID device_id LOCAL_DATE_TIME FLAG_TO_MUTATE STEPS FLAG_TO_MUTATE MUTATION COLUMN_MAPPINGS Script column Stream column JSON_FITBIT_COLUMN fitbit_data SCRIPTS - src/data/streams/mutations/fitbit/parse_steps_summary_json.py - src/data/streams/mutations/fitbit/add_zero_timestamp.py Note TIMESTAMP , LOCAL_DATE_TIME , and STEPS are parsed from JSON_FITBIT_COLUMN . JSON_FITBIT_COLUMN is a string column containing the JSON objects returned by Fitbit\u2019s API. See an example of the raw data RAPIDS expects for this data stream: Example of the expected raw data device_id fitbit_data a748ee1a-1d0b-4ae9-9074-279a2b6ba524 \u201cactivities-steps\u201d:[{\u201cdateTime\u201d:\u201d2020-10-07\u201d,\u201dvalue\u201d:\u201d1775\u201d}],\u201dactivities-steps-intraday\u201d:{\u201cdataset\u201d:[{\u201ctime\u201d:\u201d00:00:00\u201d,\u201dvalue\u201d:5},{\u201ctime\u201d:\u201d00:01:00\u201d,\u201dvalue\u201d:3},{\u201ctime\u201d:\u201d00:02:00\u201d,\u201dvalue\u201d:0},\u2026],\u201ddatasetInterval\u201d:1,\u201ddatasetType\u201d:\u201dminute\u201d}} a748ee1a-1d0b-4ae9-9074-279a2b6ba524 \u201cactivities-steps\u201d:[{\u201cdateTime\u201d:\u201d2020-10-08\u201d,\u201dvalue\u201d:\u201d3201\u201d}],\u201dactivities-steps-intraday\u201d:{\u201cdataset\u201d:[{\u201ctime\u201d:\u201d00:00:00\u201d,\u201dvalue\u201d:14},{\u201ctime\u201d:\u201d00:01:00\u201d,\u201dvalue\u201d:11},{\u201ctime\u201d:\u201d00:02:00\u201d,\u201dvalue\u201d:10},\u2026],\u201ddatasetInterval\u201d:1,\u201ddatasetType\u201d:\u201dminute\u201d}} a748ee1a-1d0b-4ae9-9074-279a2b6ba524 \u201cactivities-steps\u201d:[{\u201cdateTime\u201d:\u201d2020-10-09\u201d,\u201dvalue\u201d:\u201d998\u201d}],\u201dactivities-steps-intraday\u201d:{\u201cdataset\u201d:[{\u201ctime\u201d:\u201d00:00:00\u201d,\u201dvalue\u201d:0},{\u201ctime\u201d:\u201d00:01:00\u201d,\u201dvalue\u201d:0},{\u201ctime\u201d:\u201d00:02:00\u201d,\u201dvalue\u201d:0},\u2026],\u201ddatasetInterval\u201d:1,\u201ddatasetType\u201d:\u201dminute\u201d}} FITBIT_STEPS_INTRADAY RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP FLAG_TO_MUTATE DEVICE_ID device_id LOCAL_DATE_TIME FLAG_TO_MUTATE STEPS FLAG_TO_MUTATE MUTATION COLUMN_MAPPINGS Script column Stream column JSON_FITBIT_COLUMN fitbit_data SCRIPTS - src/data/streams/mutations/fitbit/parse_steps_intraday_json.py - src/data/streams/mutations/fitbit/add_zero_timestamp.py Note TIMESTAMP , LOCAL_DATE_TIME , and STEPS are parsed from JSON_FITBIT_COLUMN . JSON_FITBIT_COLUMN is a string column containing the JSON objects returned by Fitbit\u2019s API . See an example of the raw data RAPIDS expects for this data stream: Example of the expected raw data device_id fitbit_data a748ee1a-1d0b-4ae9-9074-279a2b6ba524 \u201cactivities-steps\u201d:[{\u201cdateTime\u201d:\u201d2020-10-07\u201d,\u201dvalue\u201d:\u201d1775\u201d}],\u201dactivities-steps-intraday\u201d:{\u201cdataset\u201d:[{\u201ctime\u201d:\u201d00:00:00\u201d,\u201dvalue\u201d:5},{\u201ctime\u201d:\u201d00:01:00\u201d,\u201dvalue\u201d:3},{\u201ctime\u201d:\u201d00:02:00\u201d,\u201dvalue\u201d:0},\u2026],\u201ddatasetInterval\u201d:1,\u201ddatasetType\u201d:\u201dminute\u201d}} a748ee1a-1d0b-4ae9-9074-279a2b6ba524 \u201cactivities-steps\u201d:[{\u201cdateTime\u201d:\u201d2020-10-08\u201d,\u201dvalue\u201d:\u201d3201\u201d}],\u201dactivities-steps-intraday\u201d:{\u201cdataset\u201d:[{\u201ctime\u201d:\u201d00:00:00\u201d,\u201dvalue\u201d:14},{\u201ctime\u201d:\u201d00:01:00\u201d,\u201dvalue\u201d:11},{\u201ctime\u201d:\u201d00:02:00\u201d,\u201dvalue\u201d:10},\u2026],\u201ddatasetInterval\u201d:1,\u201ddatasetType\u201d:\u201dminute\u201d}} a748ee1a-1d0b-4ae9-9074-279a2b6ba524 \u201cactivities-steps\u201d:[{\u201cdateTime\u201d:\u201d2020-10-09\u201d,\u201dvalue\u201d:\u201d998\u201d}],\u201dactivities-steps-intraday\u201d:{\u201cdataset\u201d:[{\u201ctime\u201d:\u201d00:00:00\u201d,\u201dvalue\u201d:0},{\u201ctime\u201d:\u201d00:01:00\u201d,\u201dvalue\u201d:0},{\u201ctime\u201d:\u201d00:02:00\u201d,\u201dvalue\u201d:0},\u2026],\u201ddatasetInterval\u201d:1,\u201ddatasetType\u201d:\u201dminute\u201d}}","title":"Format"},{"location":"datastreams/fitbitjson-mysql/","text":"fitbitjson_mysql \u00b6 This data stream handles Fitbit sensor data downloaded using the Fitbit Web API and stored in a MySQL database. Please note that RAPIDS cannot query the API directly; you need to use other available tools or implement your own. Once you have your sensor data in a MySQL database, RAPIDS can process it. Container \u00b6 The container should be a MySQL database with a table per sensor, each containing all participants\u2019 data. The script to connect and download data from this container is at: src/data/streams/fitbitjson_mysql/container.R Format \u00b6 The format.yaml maps and transforms columns in your raw data stream to the mandatory columns RAPIDS needs for Fitbit sensors . This file is at: src/data/streams/fitbitjson_csv/format.yaml If you want RAPIDS to process Fitbit sensor data using this stream, you will need to map DEVICE_ID and JSON_FITBIT_COLUMN to your own raw data columns inside each sensor section in format.yaml . FITBIT_HEARTRATE_SUMMARY RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column LOCAL_DATE_TIME FLAG_TO_MUTATE DEVICE_ID device_id HEARTRATE_DAILY_RESTINGHR FLAG_TO_MUTATE HEARTRATE_DAILY_CALORIESOUTOFRANGE FLAG_TO_MUTATE HEARTRATE_DAILY_CALORIESFATBURN FLAG_TO_MUTATE HEARTRATE_DAILY_CALORIESCARDIO FLAG_TO_MUTATE HEARTRATE_DAILY_CALORIESPEAK FLAG_TO_MUTATE MUTATION COLUMN_MAPPINGS Script column Stream column JSON_FITBIT_COLUMN fitbit_data SCRIPTS - src/data/streams/mutations/fitbit/parse_heartrate_summary_json.py - src/data/streams/mutations/fitbit/add_zero_timestamp.py Note All columns except DEVICE_ID are parsed from JSON_FITBIT_COLUMN . JSON_FITBIT_COLUMN is a string column containing the JSON objects returned by Fitbit\u2019s API. See an example of the raw data RAPIDS expects for this data stream: Example of the raw data RAPIDS expects for this data stream device_id fitbit_data a748ee1a-1d0b-4ae9-9074-279a2b6ba524 {\u201cactivities-heart\u201d:[{\u201cdateTime\u201d:\u201d2020-10-07\u201d,\u201dvalue\u201d:{\u201ccustomHeartRateZones\u201d:[],\u201dheartRateZones\u201d:[{\u201ccaloriesOut\u201d:1200.6102,\u201dmax\u201d:88,\u201dmin\u201d:31,\u201dminutes\u201d:1058,\u201dname\u201d:\u201dOut of Range\u201d},{\u201ccaloriesOut\u201d:760.3020,\u201dmax\u201d:120,\u201dmin\u201d:86,\u201dminutes\u201d:366,\u201dname\u201d:\u201dFat Burn\u201d},{\u201ccaloriesOut\u201d:15.2048,\u201dmax\u201d:146,\u201dmin\u201d:120,\u201dminutes\u201d:2,\u201dname\u201d:\u201dCardio\u201d},{\u201ccaloriesOut\u201d:0,\u201dmax\u201d:221,\u201dmin\u201d:148,\u201dminutes\u201d:0,\u201dname\u201d:\u201dPeak\u201d}],\u201drestingHeartRate\u201d:72}}],\u201dactivities-heart-intraday\u201d:{\u201cdataset\u201d:[{\u201ctime\u201d:\u201d00:00:00\u201d,\u201dvalue\u201d:68},{\u201ctime\u201d:\u201d00:01:00\u201d,\u201dvalue\u201d:67},{\u201ctime\u201d:\u201d00:02:00\u201d,\u201dvalue\u201d:67},\u2026],\u201ddatasetInterval\u201d:1,\u201ddatasetType\u201d:\u201dminute\u201d}} a748ee1a-1d0b-4ae9-9074-279a2b6ba524 {\u201cactivities-heart\u201d:[{\u201cdateTime\u201d:\u201d2020-10-08\u201d,\u201dvalue\u201d:{\u201ccustomHeartRateZones\u201d:[],\u201dheartRateZones\u201d:[{\u201ccaloriesOut\u201d:1100.1120,\u201dmax\u201d:89,\u201dmin\u201d:30,\u201dminutes\u201d:921,\u201dname\u201d:\u201dOut of Range\u201d},{\u201ccaloriesOut\u201d:660.0012,\u201dmax\u201d:118,\u201dmin\u201d:82,\u201dminutes\u201d:361,\u201dname\u201d:\u201dFat Burn\u201d},{\u201ccaloriesOut\u201d:23.7088,\u201dmax\u201d:142,\u201dmin\u201d:108,\u201dminutes\u201d:3,\u201dname\u201d:\u201dCardio\u201d},{\u201ccaloriesOut\u201d:0,\u201dmax\u201d:221,\u201dmin\u201d:148,\u201dminutes\u201d:0,\u201dname\u201d:\u201dPeak\u201d}],\u201drestingHeartRate\u201d:70}}],\u201dactivities-heart-intraday\u201d:{\u201cdataset\u201d:[{\u201ctime\u201d:\u201d00:00:00\u201d,\u201dvalue\u201d:77},{\u201ctime\u201d:\u201d00:01:00\u201d,\u201dvalue\u201d:75},{\u201ctime\u201d:\u201d00:02:00\u201d,\u201dvalue\u201d:73},\u2026],\u201ddatasetInterval\u201d:1,\u201ddatasetType\u201d:\u201dminute\u201d}} a748ee1a-1d0b-4ae9-9074-279a2b6ba524 {\u201cactivities-heart\u201d:[{\u201cdateTime\u201d:\u201d2020-10-09\u201d,\u201dvalue\u201d:{\u201ccustomHeartRateZones\u201d:[],\u201dheartRateZones\u201d:[{\u201ccaloriesOut\u201d:750.3615,\u201dmax\u201d:77,\u201dmin\u201d:30,\u201dminutes\u201d:851,\u201dname\u201d:\u201dOut of Range\u201d},{\u201ccaloriesOut\u201d:734.1516,\u201dmax\u201d:107,\u201dmin\u201d:77,\u201dminutes\u201d:550,\u201dname\u201d:\u201dFat Burn\u201d},{\u201ccaloriesOut\u201d:131.8579,\u201dmax\u201d:130,\u201dmin\u201d:107,\u201dminutes\u201d:29,\u201dname\u201d:\u201dCardio\u201d},{\u201ccaloriesOut\u201d:0,\u201dmax\u201d:220,\u201dmin\u201d:130,\u201dminutes\u201d:0,\u201dname\u201d:\u201dPeak\u201d}],\u201drestingHeartRate\u201d:69}}],\u201dactivities-heart-intraday\u201d:{\u201cdataset\u201d:[{\u201ctime\u201d:\u201d00:00:00\u201d,\u201dvalue\u201d:90},{\u201ctime\u201d:\u201d00:01:00\u201d,\u201dvalue\u201d:89},{\u201ctime\u201d:\u201d00:02:00\u201d,\u201dvalue\u201d:88},\u2026],\u201ddatasetInterval\u201d:1,\u201ddatasetType\u201d:\u201dminute\u201d}} FITBIT_HEARTRATE_INTRADAY RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column LOCAL_DATE_TIME FLAG_TO_MUTATE DEVICE_ID device_id HEARTRATE FLAG_TO_MUTATE HEARTRATE_ZONE FLAG_TO_MUTATE MUTATION COLUMN_MAPPINGS Script column Stream column JSON_FITBIT_COLUMN fitbit_data SCRIPTS - src/data/streams/mutations/fitbit/parse_heartrate_intraday_json.py - src/data/streams/mutations/fitbit/add_zero_timestamp.py Note All columns except DEVICE_ID are parsed from JSON_FITBIT_COLUMN . JSON_FITBIT_COLUMN is a string column containing the JSON objects returned by Fitbit\u2019s API. See an example of the raw data RAPIDS expects for this data stream: Example of the raw data RAPIDS expects for this data stream device_id fitbit_data a748ee1a-1d0b-4ae9-9074-279a2b6ba524 {\u201cactivities-heart\u201d:[{\u201cdateTime\u201d:\u201d2020-10-07\u201d,\u201dvalue\u201d:{\u201ccustomHeartRateZones\u201d:[],\u201dheartRateZones\u201d:[{\u201ccaloriesOut\u201d:1200.6102,\u201dmax\u201d:88,\u201dmin\u201d:31,\u201dminutes\u201d:1058,\u201dname\u201d:\u201dOut of Range\u201d},{\u201ccaloriesOut\u201d:760.3020,\u201dmax\u201d:120,\u201dmin\u201d:86,\u201dminutes\u201d:366,\u201dname\u201d:\u201dFat Burn\u201d},{\u201ccaloriesOut\u201d:15.2048,\u201dmax\u201d:146,\u201dmin\u201d:120,\u201dminutes\u201d:2,\u201dname\u201d:\u201dCardio\u201d},{\u201ccaloriesOut\u201d:0,\u201dmax\u201d:221,\u201dmin\u201d:148,\u201dminutes\u201d:0,\u201dname\u201d:\u201dPeak\u201d}],\u201drestingHeartRate\u201d:72}}],\u201dactivities-heart-intraday\u201d:{\u201cdataset\u201d:[{\u201ctime\u201d:\u201d00:00:00\u201d,\u201dvalue\u201d:68},{\u201ctime\u201d:\u201d00:01:00\u201d,\u201dvalue\u201d:67},{\u201ctime\u201d:\u201d00:02:00\u201d,\u201dvalue\u201d:67},\u2026],\u201ddatasetInterval\u201d:1,\u201ddatasetType\u201d:\u201dminute\u201d}} a748ee1a-1d0b-4ae9-9074-279a2b6ba524 {\u201cactivities-heart\u201d:[{\u201cdateTime\u201d:\u201d2020-10-08\u201d,\u201dvalue\u201d:{\u201ccustomHeartRateZones\u201d:[],\u201dheartRateZones\u201d:[{\u201ccaloriesOut\u201d:1100.1120,\u201dmax\u201d:89,\u201dmin\u201d:30,\u201dminutes\u201d:921,\u201dname\u201d:\u201dOut of Range\u201d},{\u201ccaloriesOut\u201d:660.0012,\u201dmax\u201d:118,\u201dmin\u201d:82,\u201dminutes\u201d:361,\u201dname\u201d:\u201dFat Burn\u201d},{\u201ccaloriesOut\u201d:23.7088,\u201dmax\u201d:142,\u201dmin\u201d:108,\u201dminutes\u201d:3,\u201dname\u201d:\u201dCardio\u201d},{\u201ccaloriesOut\u201d:0,\u201dmax\u201d:221,\u201dmin\u201d:148,\u201dminutes\u201d:0,\u201dname\u201d:\u201dPeak\u201d}],\u201drestingHeartRate\u201d:70}}],\u201dactivities-heart-intraday\u201d:{\u201cdataset\u201d:[{\u201ctime\u201d:\u201d00:00:00\u201d,\u201dvalue\u201d:77},{\u201ctime\u201d:\u201d00:01:00\u201d,\u201dvalue\u201d:75},{\u201ctime\u201d:\u201d00:02:00\u201d,\u201dvalue\u201d:73},\u2026],\u201ddatasetInterval\u201d:1,\u201ddatasetType\u201d:\u201dminute\u201d}} a748ee1a-1d0b-4ae9-9074-279a2b6ba524 {\u201cactivities-heart\u201d:[{\u201cdateTime\u201d:\u201d2020-10-09\u201d,\u201dvalue\u201d:{\u201ccustomHeartRateZones\u201d:[],\u201dheartRateZones\u201d:[{\u201ccaloriesOut\u201d:750.3615,\u201dmax\u201d:77,\u201dmin\u201d:30,\u201dminutes\u201d:851,\u201dname\u201d:\u201dOut of Range\u201d},{\u201ccaloriesOut\u201d:734.1516,\u201dmax\u201d:107,\u201dmin\u201d:77,\u201dminutes\u201d:550,\u201dname\u201d:\u201dFat Burn\u201d},{\u201ccaloriesOut\u201d:131.8579,\u201dmax\u201d:130,\u201dmin\u201d:107,\u201dminutes\u201d:29,\u201dname\u201d:\u201dCardio\u201d},{\u201ccaloriesOut\u201d:0,\u201dmax\u201d:220,\u201dmin\u201d:130,\u201dminutes\u201d:0,\u201dname\u201d:\u201dPeak\u201d}],\u201drestingHeartRate\u201d:69}}],\u201dactivities-heart-intraday\u201d:{\u201cdataset\u201d:[{\u201ctime\u201d:\u201d00:00:00\u201d,\u201dvalue\u201d:90},{\u201ctime\u201d:\u201d00:01:00\u201d,\u201dvalue\u201d:89},{\u201ctime\u201d:\u201d00:02:00\u201d,\u201dvalue\u201d:88},\u2026],\u201ddatasetInterval\u201d:1,\u201ddatasetType\u201d:\u201dminute\u201d}} FITBIT_SLEEP_SUMMARY RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP FLAG_TO_MUTATE LOCAL_DATE_TIME FLAG_TO_MUTATE LOCAL_START_DATE_TIME FLAG_TO_MUTATE LOCAL_END_DATE_TIME FLAG_TO_MUTATE DEVICE_ID device_id EFFICIENCY FLAG_TO_MUTATE MINUTES_AFTER_WAKEUP FLAG_TO_MUTATE MINUTES_ASLEEP FLAG_TO_MUTATE MINUTES_AWAKE FLAG_TO_MUTATE MINUTES_TO_FALL_ASLEEP FLAG_TO_MUTATE MINUTES_IN_BED FLAG_TO_MUTATE IS_MAIN_SLEEP FLAG_TO_MUTATE TYPE FLAG_TO_MUTATE MUTATION COLUMN_MAPPINGS Script column Stream column JSON_FITBIT_COLUMN fitbit_data SCRIPTS - src/data/streams/mutations/fitbit/parse_sleep_summary_json.py - src/data/streams/mutations/fitbit/add_local_date_time.py - src/data/streams/mutations/fitbit/add_zero_timestamp.py Note Fitbit API has two versions for sleep data, v1 and v1.2. We support both but ignore v1\u2019s count_awake , duration_awake , and count_awakenings , count_restless , duration_restless columns. All columns except DEVICE_ID are parsed from JSON_FITBIT_COLUMN . JSON_FITBIT_COLUMN is a string column containing the JSON objects returned by Fitbit\u2019s API. See an example of the raw data RAPIDS expects for this data stream: Example of the expected raw data device_id fitbit_data a748ee1a-1d0b-4ae9-9074-279a2b6ba524 {\u201csleep\u201d:[{\u201cdateOfSleep\u201d:\u201d2020-10-10\u201d,\u201dduration\u201d:3600000,\u201defficiency\u201d:92,\u201dendTime\u201d:\u201d2020-10-10T16:37:00.000\u201d,\u201dinfoCode\u201d:2,\u201disMainSleep\u201d:false,\u201dlevels\u201d:{\u201cdata\u201d:[{\u201cdateTime\u201d:\u201d2020-10-10T15:36:30.000\u201d,\u201dlevel\u201d:\u201drestless\u201d,\u201dseconds\u201d:60},{\u201cdateTime\u201d:\u201d2020-10-10T15:37:30.000\u201d,\u201dlevel\u201d:\u201dasleep\u201d,\u201dseconds\u201d:660},{\u201cdateTime\u201d:\u201d2020-10-10T15:48:30.000\u201d,\u201dlevel\u201d:\u201drestless\u201d,\u201dseconds\u201d:60},\u2026], \u201csummary\u201d:{\u201casleep\u201d:{\u201ccount\u201d:0,\u201dminutes\u201d:56},\u201dawake\u201d:{\u201ccount\u201d:0,\u201dminutes\u201d:0},\u201drestless\u201d:{\u201ccount\u201d:3,\u201dminutes\u201d:4}}},\u201dlogId\u201d:26315914306,\u201dminutesAfterWakeup\u201d:0,\u201dminutesAsleep\u201d:55,\u201dminutesAwake\u201d:5,\u201dminutesToFallAsleep\u201d:0,\u201dstartTime\u201d:\u201d2020-10-10T15:36:30.000\u201d,\u201dtimeInBed\u201d:60,\u201dtype\u201d:\u201dclassic\u201d},{\u201cdateOfSleep\u201d:\u201d2020-10-10\u201d,\u201dduration\u201d:22980000,\u201defficiency\u201d:88,\u201dendTime\u201d:\u201d2020-10-10T08:10:00.000\u201d,\u201dinfoCode\u201d:0,\u201disMainSleep\u201d:true,\u201dlevels\u201d:{\u201cdata\u201d:[{\u201cdateTime\u201d:\u201d2020-10-10T01:46:30.000\u201d,\u201dlevel\u201d:\u201dlight\u201d,\u201dseconds\u201d:420},{\u201cdateTime\u201d:\u201d2020-10-10T01:53:30.000\u201d,\u201dlevel\u201d:\u201ddeep\u201d,\u201dseconds\u201d:1230},{\u201cdateTime\u201d:\u201d2020-10-10T02:14:00.000\u201d,\u201dlevel\u201d:\u201dlight\u201d,\u201dseconds\u201d:360},\u2026], \u201csummary\u201d:{\u201cdeep\u201d:{\u201ccount\u201d:3,\u201dminutes\u201d:92,\u201dthirtyDayAvgMinutes\u201d:0},\u201dlight\u201d:{\u201ccount\u201d:29,\u201dminutes\u201d:193,\u201dthirtyDayAvgMinutes\u201d:0},\u201drem\u201d:{\u201ccount\u201d:4,\u201dminutes\u201d:33,\u201dthirtyDayAvgMinutes\u201d:0},\u201dwake\u201d:{\u201ccount\u201d:28,\u201dminutes\u201d:65,\u201dthirtyDayAvgMinutes\u201d:0}}},\u201dlogId\u201d:26311786557,\u201dminutesAfterWakeup\u201d:0,\u201dminutesAsleep\u201d:318,\u201dminutesAwake\u201d:65,\u201dminutesToFallAsleep\u201d:0,\u201dstartTime\u201d:\u201d2020-10-10T01:46:30.000\u201d,\u201dtimeInBed\u201d:383,\u201dtype\u201d:\u201dstages\u201d}],\u201dsummary\u201d:{\u201cstages\u201d:{\u201cdeep\u201d:92,\u201dlight\u201d:193,\u201drem\u201d:33,\u201dwake\u201d:65},\u201dtotalMinutesAsleep\u201d:373,\u201dtotalSleepRecords\u201d:2,\u201dtotalTimeInBed\u201d:443}} a748ee1a-1d0b-4ae9-9074-279a2b6ba524 {\u201csleep\u201d:[{\u201cdateOfSleep\u201d:\u201d2020-10-11\u201d,\u201dduration\u201d:41640000,\u201defficiency\u201d:89,\u201dendTime\u201d:\u201d2020-10-11T11:47:00.000\u201d,\u201dinfoCode\u201d:0,\u201disMainSleep\u201d:true,\u201dlevels\u201d:{\u201cdata\u201d:[{\u201cdateTime\u201d:\u201d2020-10-11T00:12:30.000\u201d,\u201dlevel\u201d:\u201dwake\u201d,\u201dseconds\u201d:450},{\u201cdateTime\u201d:\u201d2020-10-11T00:20:00.000\u201d,\u201dlevel\u201d:\u201dlight\u201d,\u201dseconds\u201d:870},{\u201cdateTime\u201d:\u201d2020-10-11T00:34:30.000\u201d,\u201dlevel\u201d:\u201dwake\u201d,\u201dseconds\u201d:780},\u2026], \u201csummary\u201d:{\u201cdeep\u201d:{\u201ccount\u201d:4,\u201dminutes\u201d:52,\u201dthirtyDayAvgMinutes\u201d:62},\u201dlight\u201d:{\u201ccount\u201d:32,\u201dminutes\u201d:442,\u201dthirtyDayAvgMinutes\u201d:364},\u201drem\u201d:{\u201ccount\u201d:6,\u201dminutes\u201d:68,\u201dthirtyDayAvgMinutes\u201d:58},\u201dwake\u201d:{\u201ccount\u201d:29,\u201dminutes\u201d:132,\u201dthirtyDayAvgMinutes\u201d:94}}},\u201dlogId\u201d:26589710670,\u201dminutesAfterWakeup\u201d:1,\u201dminutesAsleep\u201d:562,\u201dminutesAwake\u201d:132,\u201dminutesToFallAsleep\u201d:0,\u201dstartTime\u201d:\u201d2020-10-11T00:12:30.000\u201d,\u201dtimeInBed\u201d:694,\u201dtype\u201d:\u201dstages\u201d}],\u201dsummary\u201d:{\u201cstages\u201d:{\u201cdeep\u201d:52,\u201dlight\u201d:442,\u201drem\u201d:68,\u201dwake\u201d:132},\u201dtotalMinutesAsleep\u201d:562,\u201dtotalSleepRecords\u201d:1,\u201dtotalTimeInBed\u201d:694}} a748ee1a-1d0b-4ae9-9074-279a2b6ba524 {\u201csleep\u201d:[{\u201cdateOfSleep\u201d:\u201d2020-10-12\u201d,\u201dduration\u201d:28980000,\u201defficiency\u201d:93,\u201dendTime\u201d:\u201d2020-10-12T09:34:30.000\u201d,\u201dinfoCode\u201d:0,\u201disMainSleep\u201d:true,\u201dlevels\u201d:{\u201cdata\u201d:[{\u201cdateTime\u201d:\u201d2020-10-12T01:31:00.000\u201d,\u201dlevel\u201d:\u201dwake\u201d,\u201dseconds\u201d:600},{\u201cdateTime\u201d:\u201d2020-10-12T01:41:00.000\u201d,\u201dlevel\u201d:\u201dlight\u201d,\u201dseconds\u201d:60},{\u201cdateTime\u201d:\u201d2020-10-12T01:42:00.000\u201d,\u201dlevel\u201d:\u201ddeep\u201d,\u201dseconds\u201d:2340},\u2026], \u201csummary\u201d:{\u201cdeep\u201d:{\u201ccount\u201d:4,\u201dminutes\u201d:63,\u201dthirtyDayAvgMinutes\u201d:59},\u201dlight\u201d:{\u201ccount\u201d:27,\u201dminutes\u201d:257,\u201dthirtyDayAvgMinutes\u201d:364},\u201drem\u201d:{\u201ccount\u201d:5,\u201dminutes\u201d:94,\u201dthirtyDayAvgMinutes\u201d:58},\u201dwake\u201d:{\u201ccount\u201d:24,\u201dminutes\u201d:69,\u201dthirtyDayAvgMinutes\u201d:95}}},\u201dlogId\u201d:26589710673,\u201dminutesAfterWakeup\u201d:0,\u201dminutesAsleep\u201d:415,\u201dminutesAwake\u201d:68,\u201dminutesToFallAsleep\u201d:0,\u201dstartTime\u201d:\u201d2020-10-12T01:31:00.000\u201d,\u201dtimeInBed\u201d:483,\u201dtype\u201d:\u201dstages\u201d}],\u201dsummary\u201d:{\u201cstages\u201d:{\u201cdeep\u201d:63,\u201dlight\u201d:257,\u201drem\u201d:94,\u201dwake\u201d:69},\u201dtotalMinutesAsleep\u201d:415,\u201dtotalSleepRecords\u201d:1,\u201dtotalTimeInBed\u201d:483}} FITBIT_SLEEP_INTRADAY RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP FLAG_TO_MUTATE LOCAL_DATE_TIME FLAG_TO_MUTATE DEVICE_ID device_id TYPE_EPISODE_ID FLAG_TO_MUTATE DURATION FLAG_TO_MUTATE IS_MAIN_SLEEP FLAG_TO_MUTATE TYPE FLAG_TO_MUTATE LEVEL FLAG_TO_MUTATE MUTATION COLUMN_MAPPINGS Script column Stream column JSON_FITBIT_COLUMN fitbit_data SCRIPTS - src/data/streams/mutations/fitbit/parse_sleep_intraday_json.py - src/data/streams/mutations/fitbit/add_zero_timestamp.py Note Fitbit API has two versions for sleep data, v1 and v1.2, we support both. All columns except DEVICE_ID are parsed from JSON_FITBIT_COLUMN . JSON_FITBIT_COLUMN is a string column containing the JSON objects returned by Fitbit\u2019s API. See an example of the raw data RAPIDS expects for this data stream: Example of the expected raw data device_id fitbit_data a748ee1a-1d0b-4ae9-9074-279a2b6ba524 {\u201csleep\u201d:[{\u201cdateOfSleep\u201d:\u201d2020-10-10\u201d,\u201dduration\u201d:3600000,\u201defficiency\u201d:92,\u201dendTime\u201d:\u201d2020-10-10T16:37:00.000\u201d,\u201dinfoCode\u201d:2,\u201disMainSleep\u201d:false,\u201dlevels\u201d:{\u201cdata\u201d:[{\u201cdateTime\u201d:\u201d2020-10-10T15:36:30.000\u201d,\u201dlevel\u201d:\u201drestless\u201d,\u201dseconds\u201d:60},{\u201cdateTime\u201d:\u201d2020-10-10T15:37:30.000\u201d,\u201dlevel\u201d:\u201dasleep\u201d,\u201dseconds\u201d:660},{\u201cdateTime\u201d:\u201d2020-10-10T15:48:30.000\u201d,\u201dlevel\u201d:\u201drestless\u201d,\u201dseconds\u201d:60},\u2026], \u201csummary\u201d:{\u201casleep\u201d:{\u201ccount\u201d:0,\u201dminutes\u201d:56},\u201dawake\u201d:{\u201ccount\u201d:0,\u201dminutes\u201d:0},\u201drestless\u201d:{\u201ccount\u201d:3,\u201dminutes\u201d:4}}},\u201dlogId\u201d:26315914306,\u201dminutesAfterWakeup\u201d:0,\u201dminutesAsleep\u201d:55,\u201dminutesAwake\u201d:5,\u201dminutesToFallAsleep\u201d:0,\u201dstartTime\u201d:\u201d2020-10-10T15:36:30.000\u201d,\u201dtimeInBed\u201d:60,\u201dtype\u201d:\u201dclassic\u201d},{\u201cdateOfSleep\u201d:\u201d2020-10-10\u201d,\u201dduration\u201d:22980000,\u201defficiency\u201d:88,\u201dendTime\u201d:\u201d2020-10-10T08:10:00.000\u201d,\u201dinfoCode\u201d:0,\u201disMainSleep\u201d:true,\u201dlevels\u201d:{\u201cdata\u201d:[{\u201cdateTime\u201d:\u201d2020-10-10T01:46:30.000\u201d,\u201dlevel\u201d:\u201dlight\u201d,\u201dseconds\u201d:420},{\u201cdateTime\u201d:\u201d2020-10-10T01:53:30.000\u201d,\u201dlevel\u201d:\u201ddeep\u201d,\u201dseconds\u201d:1230},{\u201cdateTime\u201d:\u201d2020-10-10T02:14:00.000\u201d,\u201dlevel\u201d:\u201dlight\u201d,\u201dseconds\u201d:360},\u2026], \u201csummary\u201d:{\u201cdeep\u201d:{\u201ccount\u201d:3,\u201dminutes\u201d:92,\u201dthirtyDayAvgMinutes\u201d:0},\u201dlight\u201d:{\u201ccount\u201d:29,\u201dminutes\u201d:193,\u201dthirtyDayAvgMinutes\u201d:0},\u201drem\u201d:{\u201ccount\u201d:4,\u201dminutes\u201d:33,\u201dthirtyDayAvgMinutes\u201d:0},\u201dwake\u201d:{\u201ccount\u201d:28,\u201dminutes\u201d:65,\u201dthirtyDayAvgMinutes\u201d:0}}},\u201dlogId\u201d:26311786557,\u201dminutesAfterWakeup\u201d:0,\u201dminutesAsleep\u201d:318,\u201dminutesAwake\u201d:65,\u201dminutesToFallAsleep\u201d:0,\u201dstartTime\u201d:\u201d2020-10-10T01:46:30.000\u201d,\u201dtimeInBed\u201d:383,\u201dtype\u201d:\u201dstages\u201d}],\u201dsummary\u201d:{\u201cstages\u201d:{\u201cdeep\u201d:92,\u201dlight\u201d:193,\u201drem\u201d:33,\u201dwake\u201d:65},\u201dtotalMinutesAsleep\u201d:373,\u201dtotalSleepRecords\u201d:2,\u201dtotalTimeInBed\u201d:443}} a748ee1a-1d0b-4ae9-9074-279a2b6ba524 {\u201csleep\u201d:[{\u201cdateOfSleep\u201d:\u201d2020-10-11\u201d,\u201dduration\u201d:41640000,\u201defficiency\u201d:89,\u201dendTime\u201d:\u201d2020-10-11T11:47:00.000\u201d,\u201dinfoCode\u201d:0,\u201disMainSleep\u201d:true,\u201dlevels\u201d:{\u201cdata\u201d:[{\u201cdateTime\u201d:\u201d2020-10-11T00:12:30.000\u201d,\u201dlevel\u201d:\u201dwake\u201d,\u201dseconds\u201d:450},{\u201cdateTime\u201d:\u201d2020-10-11T00:20:00.000\u201d,\u201dlevel\u201d:\u201dlight\u201d,\u201dseconds\u201d:870},{\u201cdateTime\u201d:\u201d2020-10-11T00:34:30.000\u201d,\u201dlevel\u201d:\u201dwake\u201d,\u201dseconds\u201d:780},\u2026], \u201csummary\u201d:{\u201cdeep\u201d:{\u201ccount\u201d:4,\u201dminutes\u201d:52,\u201dthirtyDayAvgMinutes\u201d:62},\u201dlight\u201d:{\u201ccount\u201d:32,\u201dminutes\u201d:442,\u201dthirtyDayAvgMinutes\u201d:364},\u201drem\u201d:{\u201ccount\u201d:6,\u201dminutes\u201d:68,\u201dthirtyDayAvgMinutes\u201d:58},\u201dwake\u201d:{\u201ccount\u201d:29,\u201dminutes\u201d:132,\u201dthirtyDayAvgMinutes\u201d:94}}},\u201dlogId\u201d:26589710670,\u201dminutesAfterWakeup\u201d:1,\u201dminutesAsleep\u201d:562,\u201dminutesAwake\u201d:132,\u201dminutesToFallAsleep\u201d:0,\u201dstartTime\u201d:\u201d2020-10-11T00:12:30.000\u201d,\u201dtimeInBed\u201d:694,\u201dtype\u201d:\u201dstages\u201d}],\u201dsummary\u201d:{\u201cstages\u201d:{\u201cdeep\u201d:52,\u201dlight\u201d:442,\u201drem\u201d:68,\u201dwake\u201d:132},\u201dtotalMinutesAsleep\u201d:562,\u201dtotalSleepRecords\u201d:1,\u201dtotalTimeInBed\u201d:694}} a748ee1a-1d0b-4ae9-9074-279a2b6ba524 {\u201csleep\u201d:[{\u201cdateOfSleep\u201d:\u201d2020-10-12\u201d,\u201dduration\u201d:28980000,\u201defficiency\u201d:93,\u201dendTime\u201d:\u201d2020-10-12T09:34:30.000\u201d,\u201dinfoCode\u201d:0,\u201disMainSleep\u201d:true,\u201dlevels\u201d:{\u201cdata\u201d:[{\u201cdateTime\u201d:\u201d2020-10-12T01:31:00.000\u201d,\u201dlevel\u201d:\u201dwake\u201d,\u201dseconds\u201d:600},{\u201cdateTime\u201d:\u201d2020-10-12T01:41:00.000\u201d,\u201dlevel\u201d:\u201dlight\u201d,\u201dseconds\u201d:60},{\u201cdateTime\u201d:\u201d2020-10-12T01:42:00.000\u201d,\u201dlevel\u201d:\u201ddeep\u201d,\u201dseconds\u201d:2340},\u2026], \u201csummary\u201d:{\u201cdeep\u201d:{\u201ccount\u201d:4,\u201dminutes\u201d:63,\u201dthirtyDayAvgMinutes\u201d:59},\u201dlight\u201d:{\u201ccount\u201d:27,\u201dminutes\u201d:257,\u201dthirtyDayAvgMinutes\u201d:364},\u201drem\u201d:{\u201ccount\u201d:5,\u201dminutes\u201d:94,\u201dthirtyDayAvgMinutes\u201d:58},\u201dwake\u201d:{\u201ccount\u201d:24,\u201dminutes\u201d:69,\u201dthirtyDayAvgMinutes\u201d:95}}},\u201dlogId\u201d:26589710673,\u201dminutesAfterWakeup\u201d:0,\u201dminutesAsleep\u201d:415,\u201dminutesAwake\u201d:68,\u201dminutesToFallAsleep\u201d:0,\u201dstartTime\u201d:\u201d2020-10-12T01:31:00.000\u201d,\u201dtimeInBed\u201d:483,\u201dtype\u201d:\u201dstages\u201d}],\u201dsummary\u201d:{\u201cstages\u201d:{\u201cdeep\u201d:63,\u201dlight\u201d:257,\u201drem\u201d:94,\u201dwake\u201d:69},\u201dtotalMinutesAsleep\u201d:415,\u201dtotalSleepRecords\u201d:1,\u201dtotalTimeInBed\u201d:483}} FITBIT_STEPS_SUMMARY RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP FLAG_TO_MUTATE DEVICE_ID device_id LOCAL_DATE_TIME FLAG_TO_MUTATE STEPS FLAG_TO_MUTATE MUTATION COLUMN_MAPPINGS Script column Stream column JSON_FITBIT_COLUMN fitbit_data SCRIPTS - src/data/streams/mutations/fitbit/parse_steps_summary_json.py - src/data/streams/mutations/fitbit/add_zero_timestamp.py Note TIMESTAMP , LOCAL_DATE_TIME , and STEPS are parsed from JSON_FITBIT_COLUMN . JSON_FITBIT_COLUMN is a string column containing the JSON objects returned by Fitbit\u2019s API. See an example of the raw data RAPIDS expects for this data stream: Example of the expected raw data device_id fitbit_data a748ee1a-1d0b-4ae9-9074-279a2b6ba524 \u201cactivities-steps\u201d:[{\u201cdateTime\u201d:\u201d2020-10-07\u201d,\u201dvalue\u201d:\u201d1775\u201d}],\u201dactivities-steps-intraday\u201d:{\u201cdataset\u201d:[{\u201ctime\u201d:\u201d00:00:00\u201d,\u201dvalue\u201d:5},{\u201ctime\u201d:\u201d00:01:00\u201d,\u201dvalue\u201d:3},{\u201ctime\u201d:\u201d00:02:00\u201d,\u201dvalue\u201d:0},\u2026],\u201ddatasetInterval\u201d:1,\u201ddatasetType\u201d:\u201dminute\u201d}} a748ee1a-1d0b-4ae9-9074-279a2b6ba524 \u201cactivities-steps\u201d:[{\u201cdateTime\u201d:\u201d2020-10-08\u201d,\u201dvalue\u201d:\u201d3201\u201d}],\u201dactivities-steps-intraday\u201d:{\u201cdataset\u201d:[{\u201ctime\u201d:\u201d00:00:00\u201d,\u201dvalue\u201d:14},{\u201ctime\u201d:\u201d00:01:00\u201d,\u201dvalue\u201d:11},{\u201ctime\u201d:\u201d00:02:00\u201d,\u201dvalue\u201d:10},\u2026],\u201ddatasetInterval\u201d:1,\u201ddatasetType\u201d:\u201dminute\u201d}} a748ee1a-1d0b-4ae9-9074-279a2b6ba524 \u201cactivities-steps\u201d:[{\u201cdateTime\u201d:\u201d2020-10-09\u201d,\u201dvalue\u201d:\u201d998\u201d}],\u201dactivities-steps-intraday\u201d:{\u201cdataset\u201d:[{\u201ctime\u201d:\u201d00:00:00\u201d,\u201dvalue\u201d:0},{\u201ctime\u201d:\u201d00:01:00\u201d,\u201dvalue\u201d:0},{\u201ctime\u201d:\u201d00:02:00\u201d,\u201dvalue\u201d:0},\u2026],\u201ddatasetInterval\u201d:1,\u201ddatasetType\u201d:\u201dminute\u201d}} FITBIT_STEPS_INTRADAY RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP FLAG_TO_MUTATE DEVICE_ID device_id LOCAL_DATE_TIME FLAG_TO_MUTATE STEPS FLAG_TO_MUTATE MUTATION COLUMN_MAPPINGS Script column Stream column JSON_FITBIT_COLUMN fitbit_data SCRIPTS - src/data/streams/mutations/fitbit/parse_steps_intraday_json.py - src/data/streams/mutations/fitbit/add_zero_timestamp.py Note TIMESTAMP , LOCAL_DATE_TIME , and STEPS are parsed from JSON_FITBIT_COLUMN . JSON_FITBIT_COLUMN is a string column containing the JSON objects returned by Fitbit\u2019s API . See an example of the raw data RAPIDS expects for this data stream: Example of the expected raw data device_id fitbit_data a748ee1a-1d0b-4ae9-9074-279a2b6ba524 \u201cactivities-steps\u201d:[{\u201cdateTime\u201d:\u201d2020-10-07\u201d,\u201dvalue\u201d:\u201d1775\u201d}],\u201dactivities-steps-intraday\u201d:{\u201cdataset\u201d:[{\u201ctime\u201d:\u201d00:00:00\u201d,\u201dvalue\u201d:5},{\u201ctime\u201d:\u201d00:01:00\u201d,\u201dvalue\u201d:3},{\u201ctime\u201d:\u201d00:02:00\u201d,\u201dvalue\u201d:0},\u2026],\u201ddatasetInterval\u201d:1,\u201ddatasetType\u201d:\u201dminute\u201d}} a748ee1a-1d0b-4ae9-9074-279a2b6ba524 \u201cactivities-steps\u201d:[{\u201cdateTime\u201d:\u201d2020-10-08\u201d,\u201dvalue\u201d:\u201d3201\u201d}],\u201dactivities-steps-intraday\u201d:{\u201cdataset\u201d:[{\u201ctime\u201d:\u201d00:00:00\u201d,\u201dvalue\u201d:14},{\u201ctime\u201d:\u201d00:01:00\u201d,\u201dvalue\u201d:11},{\u201ctime\u201d:\u201d00:02:00\u201d,\u201dvalue\u201d:10},\u2026],\u201ddatasetInterval\u201d:1,\u201ddatasetType\u201d:\u201dminute\u201d}} a748ee1a-1d0b-4ae9-9074-279a2b6ba524 \u201cactivities-steps\u201d:[{\u201cdateTime\u201d:\u201d2020-10-09\u201d,\u201dvalue\u201d:\u201d998\u201d}],\u201dactivities-steps-intraday\u201d:{\u201cdataset\u201d:[{\u201ctime\u201d:\u201d00:00:00\u201d,\u201dvalue\u201d:0},{\u201ctime\u201d:\u201d00:01:00\u201d,\u201dvalue\u201d:0},{\u201ctime\u201d:\u201d00:02:00\u201d,\u201dvalue\u201d:0},\u2026],\u201ddatasetInterval\u201d:1,\u201ddatasetType\u201d:\u201dminute\u201d}}","title":"fitbitjson_mysql"},{"location":"datastreams/fitbitjson-mysql/#fitbitjson_mysql","text":"This data stream handles Fitbit sensor data downloaded using the Fitbit Web API and stored in a MySQL database. Please note that RAPIDS cannot query the API directly; you need to use other available tools or implement your own. Once you have your sensor data in a MySQL database, RAPIDS can process it.","title":"fitbitjson_mysql"},{"location":"datastreams/fitbitjson-mysql/#container","text":"The container should be a MySQL database with a table per sensor, each containing all participants\u2019 data. The script to connect and download data from this container is at: src/data/streams/fitbitjson_mysql/container.R","title":"Container"},{"location":"datastreams/fitbitjson-mysql/#format","text":"The format.yaml maps and transforms columns in your raw data stream to the mandatory columns RAPIDS needs for Fitbit sensors . This file is at: src/data/streams/fitbitjson_csv/format.yaml If you want RAPIDS to process Fitbit sensor data using this stream, you will need to map DEVICE_ID and JSON_FITBIT_COLUMN to your own raw data columns inside each sensor section in format.yaml . FITBIT_HEARTRATE_SUMMARY RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column LOCAL_DATE_TIME FLAG_TO_MUTATE DEVICE_ID device_id HEARTRATE_DAILY_RESTINGHR FLAG_TO_MUTATE HEARTRATE_DAILY_CALORIESOUTOFRANGE FLAG_TO_MUTATE HEARTRATE_DAILY_CALORIESFATBURN FLAG_TO_MUTATE HEARTRATE_DAILY_CALORIESCARDIO FLAG_TO_MUTATE HEARTRATE_DAILY_CALORIESPEAK FLAG_TO_MUTATE MUTATION COLUMN_MAPPINGS Script column Stream column JSON_FITBIT_COLUMN fitbit_data SCRIPTS - src/data/streams/mutations/fitbit/parse_heartrate_summary_json.py - src/data/streams/mutations/fitbit/add_zero_timestamp.py Note All columns except DEVICE_ID are parsed from JSON_FITBIT_COLUMN . JSON_FITBIT_COLUMN is a string column containing the JSON objects returned by Fitbit\u2019s API. See an example of the raw data RAPIDS expects for this data stream: Example of the raw data RAPIDS expects for this data stream device_id fitbit_data a748ee1a-1d0b-4ae9-9074-279a2b6ba524 {\u201cactivities-heart\u201d:[{\u201cdateTime\u201d:\u201d2020-10-07\u201d,\u201dvalue\u201d:{\u201ccustomHeartRateZones\u201d:[],\u201dheartRateZones\u201d:[{\u201ccaloriesOut\u201d:1200.6102,\u201dmax\u201d:88,\u201dmin\u201d:31,\u201dminutes\u201d:1058,\u201dname\u201d:\u201dOut of Range\u201d},{\u201ccaloriesOut\u201d:760.3020,\u201dmax\u201d:120,\u201dmin\u201d:86,\u201dminutes\u201d:366,\u201dname\u201d:\u201dFat Burn\u201d},{\u201ccaloriesOut\u201d:15.2048,\u201dmax\u201d:146,\u201dmin\u201d:120,\u201dminutes\u201d:2,\u201dname\u201d:\u201dCardio\u201d},{\u201ccaloriesOut\u201d:0,\u201dmax\u201d:221,\u201dmin\u201d:148,\u201dminutes\u201d:0,\u201dname\u201d:\u201dPeak\u201d}],\u201drestingHeartRate\u201d:72}}],\u201dactivities-heart-intraday\u201d:{\u201cdataset\u201d:[{\u201ctime\u201d:\u201d00:00:00\u201d,\u201dvalue\u201d:68},{\u201ctime\u201d:\u201d00:01:00\u201d,\u201dvalue\u201d:67},{\u201ctime\u201d:\u201d00:02:00\u201d,\u201dvalue\u201d:67},\u2026],\u201ddatasetInterval\u201d:1,\u201ddatasetType\u201d:\u201dminute\u201d}} a748ee1a-1d0b-4ae9-9074-279a2b6ba524 {\u201cactivities-heart\u201d:[{\u201cdateTime\u201d:\u201d2020-10-08\u201d,\u201dvalue\u201d:{\u201ccustomHeartRateZones\u201d:[],\u201dheartRateZones\u201d:[{\u201ccaloriesOut\u201d:1100.1120,\u201dmax\u201d:89,\u201dmin\u201d:30,\u201dminutes\u201d:921,\u201dname\u201d:\u201dOut of Range\u201d},{\u201ccaloriesOut\u201d:660.0012,\u201dmax\u201d:118,\u201dmin\u201d:82,\u201dminutes\u201d:361,\u201dname\u201d:\u201dFat Burn\u201d},{\u201ccaloriesOut\u201d:23.7088,\u201dmax\u201d:142,\u201dmin\u201d:108,\u201dminutes\u201d:3,\u201dname\u201d:\u201dCardio\u201d},{\u201ccaloriesOut\u201d:0,\u201dmax\u201d:221,\u201dmin\u201d:148,\u201dminutes\u201d:0,\u201dname\u201d:\u201dPeak\u201d}],\u201drestingHeartRate\u201d:70}}],\u201dactivities-heart-intraday\u201d:{\u201cdataset\u201d:[{\u201ctime\u201d:\u201d00:00:00\u201d,\u201dvalue\u201d:77},{\u201ctime\u201d:\u201d00:01:00\u201d,\u201dvalue\u201d:75},{\u201ctime\u201d:\u201d00:02:00\u201d,\u201dvalue\u201d:73},\u2026],\u201ddatasetInterval\u201d:1,\u201ddatasetType\u201d:\u201dminute\u201d}} a748ee1a-1d0b-4ae9-9074-279a2b6ba524 {\u201cactivities-heart\u201d:[{\u201cdateTime\u201d:\u201d2020-10-09\u201d,\u201dvalue\u201d:{\u201ccustomHeartRateZones\u201d:[],\u201dheartRateZones\u201d:[{\u201ccaloriesOut\u201d:750.3615,\u201dmax\u201d:77,\u201dmin\u201d:30,\u201dminutes\u201d:851,\u201dname\u201d:\u201dOut of Range\u201d},{\u201ccaloriesOut\u201d:734.1516,\u201dmax\u201d:107,\u201dmin\u201d:77,\u201dminutes\u201d:550,\u201dname\u201d:\u201dFat Burn\u201d},{\u201ccaloriesOut\u201d:131.8579,\u201dmax\u201d:130,\u201dmin\u201d:107,\u201dminutes\u201d:29,\u201dname\u201d:\u201dCardio\u201d},{\u201ccaloriesOut\u201d:0,\u201dmax\u201d:220,\u201dmin\u201d:130,\u201dminutes\u201d:0,\u201dname\u201d:\u201dPeak\u201d}],\u201drestingHeartRate\u201d:69}}],\u201dactivities-heart-intraday\u201d:{\u201cdataset\u201d:[{\u201ctime\u201d:\u201d00:00:00\u201d,\u201dvalue\u201d:90},{\u201ctime\u201d:\u201d00:01:00\u201d,\u201dvalue\u201d:89},{\u201ctime\u201d:\u201d00:02:00\u201d,\u201dvalue\u201d:88},\u2026],\u201ddatasetInterval\u201d:1,\u201ddatasetType\u201d:\u201dminute\u201d}} FITBIT_HEARTRATE_INTRADAY RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column LOCAL_DATE_TIME FLAG_TO_MUTATE DEVICE_ID device_id HEARTRATE FLAG_TO_MUTATE HEARTRATE_ZONE FLAG_TO_MUTATE MUTATION COLUMN_MAPPINGS Script column Stream column JSON_FITBIT_COLUMN fitbit_data SCRIPTS - src/data/streams/mutations/fitbit/parse_heartrate_intraday_json.py - src/data/streams/mutations/fitbit/add_zero_timestamp.py Note All columns except DEVICE_ID are parsed from JSON_FITBIT_COLUMN . JSON_FITBIT_COLUMN is a string column containing the JSON objects returned by Fitbit\u2019s API. See an example of the raw data RAPIDS expects for this data stream: Example of the raw data RAPIDS expects for this data stream device_id fitbit_data a748ee1a-1d0b-4ae9-9074-279a2b6ba524 {\u201cactivities-heart\u201d:[{\u201cdateTime\u201d:\u201d2020-10-07\u201d,\u201dvalue\u201d:{\u201ccustomHeartRateZones\u201d:[],\u201dheartRateZones\u201d:[{\u201ccaloriesOut\u201d:1200.6102,\u201dmax\u201d:88,\u201dmin\u201d:31,\u201dminutes\u201d:1058,\u201dname\u201d:\u201dOut of Range\u201d},{\u201ccaloriesOut\u201d:760.3020,\u201dmax\u201d:120,\u201dmin\u201d:86,\u201dminutes\u201d:366,\u201dname\u201d:\u201dFat Burn\u201d},{\u201ccaloriesOut\u201d:15.2048,\u201dmax\u201d:146,\u201dmin\u201d:120,\u201dminutes\u201d:2,\u201dname\u201d:\u201dCardio\u201d},{\u201ccaloriesOut\u201d:0,\u201dmax\u201d:221,\u201dmin\u201d:148,\u201dminutes\u201d:0,\u201dname\u201d:\u201dPeak\u201d}],\u201drestingHeartRate\u201d:72}}],\u201dactivities-heart-intraday\u201d:{\u201cdataset\u201d:[{\u201ctime\u201d:\u201d00:00:00\u201d,\u201dvalue\u201d:68},{\u201ctime\u201d:\u201d00:01:00\u201d,\u201dvalue\u201d:67},{\u201ctime\u201d:\u201d00:02:00\u201d,\u201dvalue\u201d:67},\u2026],\u201ddatasetInterval\u201d:1,\u201ddatasetType\u201d:\u201dminute\u201d}} a748ee1a-1d0b-4ae9-9074-279a2b6ba524 {\u201cactivities-heart\u201d:[{\u201cdateTime\u201d:\u201d2020-10-08\u201d,\u201dvalue\u201d:{\u201ccustomHeartRateZones\u201d:[],\u201dheartRateZones\u201d:[{\u201ccaloriesOut\u201d:1100.1120,\u201dmax\u201d:89,\u201dmin\u201d:30,\u201dminutes\u201d:921,\u201dname\u201d:\u201dOut of Range\u201d},{\u201ccaloriesOut\u201d:660.0012,\u201dmax\u201d:118,\u201dmin\u201d:82,\u201dminutes\u201d:361,\u201dname\u201d:\u201dFat Burn\u201d},{\u201ccaloriesOut\u201d:23.7088,\u201dmax\u201d:142,\u201dmin\u201d:108,\u201dminutes\u201d:3,\u201dname\u201d:\u201dCardio\u201d},{\u201ccaloriesOut\u201d:0,\u201dmax\u201d:221,\u201dmin\u201d:148,\u201dminutes\u201d:0,\u201dname\u201d:\u201dPeak\u201d}],\u201drestingHeartRate\u201d:70}}],\u201dactivities-heart-intraday\u201d:{\u201cdataset\u201d:[{\u201ctime\u201d:\u201d00:00:00\u201d,\u201dvalue\u201d:77},{\u201ctime\u201d:\u201d00:01:00\u201d,\u201dvalue\u201d:75},{\u201ctime\u201d:\u201d00:02:00\u201d,\u201dvalue\u201d:73},\u2026],\u201ddatasetInterval\u201d:1,\u201ddatasetType\u201d:\u201dminute\u201d}} a748ee1a-1d0b-4ae9-9074-279a2b6ba524 {\u201cactivities-heart\u201d:[{\u201cdateTime\u201d:\u201d2020-10-09\u201d,\u201dvalue\u201d:{\u201ccustomHeartRateZones\u201d:[],\u201dheartRateZones\u201d:[{\u201ccaloriesOut\u201d:750.3615,\u201dmax\u201d:77,\u201dmin\u201d:30,\u201dminutes\u201d:851,\u201dname\u201d:\u201dOut of Range\u201d},{\u201ccaloriesOut\u201d:734.1516,\u201dmax\u201d:107,\u201dmin\u201d:77,\u201dminutes\u201d:550,\u201dname\u201d:\u201dFat Burn\u201d},{\u201ccaloriesOut\u201d:131.8579,\u201dmax\u201d:130,\u201dmin\u201d:107,\u201dminutes\u201d:29,\u201dname\u201d:\u201dCardio\u201d},{\u201ccaloriesOut\u201d:0,\u201dmax\u201d:220,\u201dmin\u201d:130,\u201dminutes\u201d:0,\u201dname\u201d:\u201dPeak\u201d}],\u201drestingHeartRate\u201d:69}}],\u201dactivities-heart-intraday\u201d:{\u201cdataset\u201d:[{\u201ctime\u201d:\u201d00:00:00\u201d,\u201dvalue\u201d:90},{\u201ctime\u201d:\u201d00:01:00\u201d,\u201dvalue\u201d:89},{\u201ctime\u201d:\u201d00:02:00\u201d,\u201dvalue\u201d:88},\u2026],\u201ddatasetInterval\u201d:1,\u201ddatasetType\u201d:\u201dminute\u201d}} FITBIT_SLEEP_SUMMARY RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP FLAG_TO_MUTATE LOCAL_DATE_TIME FLAG_TO_MUTATE LOCAL_START_DATE_TIME FLAG_TO_MUTATE LOCAL_END_DATE_TIME FLAG_TO_MUTATE DEVICE_ID device_id EFFICIENCY FLAG_TO_MUTATE MINUTES_AFTER_WAKEUP FLAG_TO_MUTATE MINUTES_ASLEEP FLAG_TO_MUTATE MINUTES_AWAKE FLAG_TO_MUTATE MINUTES_TO_FALL_ASLEEP FLAG_TO_MUTATE MINUTES_IN_BED FLAG_TO_MUTATE IS_MAIN_SLEEP FLAG_TO_MUTATE TYPE FLAG_TO_MUTATE MUTATION COLUMN_MAPPINGS Script column Stream column JSON_FITBIT_COLUMN fitbit_data SCRIPTS - src/data/streams/mutations/fitbit/parse_sleep_summary_json.py - src/data/streams/mutations/fitbit/add_local_date_time.py - src/data/streams/mutations/fitbit/add_zero_timestamp.py Note Fitbit API has two versions for sleep data, v1 and v1.2. We support both but ignore v1\u2019s count_awake , duration_awake , and count_awakenings , count_restless , duration_restless columns. All columns except DEVICE_ID are parsed from JSON_FITBIT_COLUMN . JSON_FITBIT_COLUMN is a string column containing the JSON objects returned by Fitbit\u2019s API. See an example of the raw data RAPIDS expects for this data stream: Example of the expected raw data device_id fitbit_data a748ee1a-1d0b-4ae9-9074-279a2b6ba524 {\u201csleep\u201d:[{\u201cdateOfSleep\u201d:\u201d2020-10-10\u201d,\u201dduration\u201d:3600000,\u201defficiency\u201d:92,\u201dendTime\u201d:\u201d2020-10-10T16:37:00.000\u201d,\u201dinfoCode\u201d:2,\u201disMainSleep\u201d:false,\u201dlevels\u201d:{\u201cdata\u201d:[{\u201cdateTime\u201d:\u201d2020-10-10T15:36:30.000\u201d,\u201dlevel\u201d:\u201drestless\u201d,\u201dseconds\u201d:60},{\u201cdateTime\u201d:\u201d2020-10-10T15:37:30.000\u201d,\u201dlevel\u201d:\u201dasleep\u201d,\u201dseconds\u201d:660},{\u201cdateTime\u201d:\u201d2020-10-10T15:48:30.000\u201d,\u201dlevel\u201d:\u201drestless\u201d,\u201dseconds\u201d:60},\u2026], \u201csummary\u201d:{\u201casleep\u201d:{\u201ccount\u201d:0,\u201dminutes\u201d:56},\u201dawake\u201d:{\u201ccount\u201d:0,\u201dminutes\u201d:0},\u201drestless\u201d:{\u201ccount\u201d:3,\u201dminutes\u201d:4}}},\u201dlogId\u201d:26315914306,\u201dminutesAfterWakeup\u201d:0,\u201dminutesAsleep\u201d:55,\u201dminutesAwake\u201d:5,\u201dminutesToFallAsleep\u201d:0,\u201dstartTime\u201d:\u201d2020-10-10T15:36:30.000\u201d,\u201dtimeInBed\u201d:60,\u201dtype\u201d:\u201dclassic\u201d},{\u201cdateOfSleep\u201d:\u201d2020-10-10\u201d,\u201dduration\u201d:22980000,\u201defficiency\u201d:88,\u201dendTime\u201d:\u201d2020-10-10T08:10:00.000\u201d,\u201dinfoCode\u201d:0,\u201disMainSleep\u201d:true,\u201dlevels\u201d:{\u201cdata\u201d:[{\u201cdateTime\u201d:\u201d2020-10-10T01:46:30.000\u201d,\u201dlevel\u201d:\u201dlight\u201d,\u201dseconds\u201d:420},{\u201cdateTime\u201d:\u201d2020-10-10T01:53:30.000\u201d,\u201dlevel\u201d:\u201ddeep\u201d,\u201dseconds\u201d:1230},{\u201cdateTime\u201d:\u201d2020-10-10T02:14:00.000\u201d,\u201dlevel\u201d:\u201dlight\u201d,\u201dseconds\u201d:360},\u2026], \u201csummary\u201d:{\u201cdeep\u201d:{\u201ccount\u201d:3,\u201dminutes\u201d:92,\u201dthirtyDayAvgMinutes\u201d:0},\u201dlight\u201d:{\u201ccount\u201d:29,\u201dminutes\u201d:193,\u201dthirtyDayAvgMinutes\u201d:0},\u201drem\u201d:{\u201ccount\u201d:4,\u201dminutes\u201d:33,\u201dthirtyDayAvgMinutes\u201d:0},\u201dwake\u201d:{\u201ccount\u201d:28,\u201dminutes\u201d:65,\u201dthirtyDayAvgMinutes\u201d:0}}},\u201dlogId\u201d:26311786557,\u201dminutesAfterWakeup\u201d:0,\u201dminutesAsleep\u201d:318,\u201dminutesAwake\u201d:65,\u201dminutesToFallAsleep\u201d:0,\u201dstartTime\u201d:\u201d2020-10-10T01:46:30.000\u201d,\u201dtimeInBed\u201d:383,\u201dtype\u201d:\u201dstages\u201d}],\u201dsummary\u201d:{\u201cstages\u201d:{\u201cdeep\u201d:92,\u201dlight\u201d:193,\u201drem\u201d:33,\u201dwake\u201d:65},\u201dtotalMinutesAsleep\u201d:373,\u201dtotalSleepRecords\u201d:2,\u201dtotalTimeInBed\u201d:443}} a748ee1a-1d0b-4ae9-9074-279a2b6ba524 {\u201csleep\u201d:[{\u201cdateOfSleep\u201d:\u201d2020-10-11\u201d,\u201dduration\u201d:41640000,\u201defficiency\u201d:89,\u201dendTime\u201d:\u201d2020-10-11T11:47:00.000\u201d,\u201dinfoCode\u201d:0,\u201disMainSleep\u201d:true,\u201dlevels\u201d:{\u201cdata\u201d:[{\u201cdateTime\u201d:\u201d2020-10-11T00:12:30.000\u201d,\u201dlevel\u201d:\u201dwake\u201d,\u201dseconds\u201d:450},{\u201cdateTime\u201d:\u201d2020-10-11T00:20:00.000\u201d,\u201dlevel\u201d:\u201dlight\u201d,\u201dseconds\u201d:870},{\u201cdateTime\u201d:\u201d2020-10-11T00:34:30.000\u201d,\u201dlevel\u201d:\u201dwake\u201d,\u201dseconds\u201d:780},\u2026], \u201csummary\u201d:{\u201cdeep\u201d:{\u201ccount\u201d:4,\u201dminutes\u201d:52,\u201dthirtyDayAvgMinutes\u201d:62},\u201dlight\u201d:{\u201ccount\u201d:32,\u201dminutes\u201d:442,\u201dthirtyDayAvgMinutes\u201d:364},\u201drem\u201d:{\u201ccount\u201d:6,\u201dminutes\u201d:68,\u201dthirtyDayAvgMinutes\u201d:58},\u201dwake\u201d:{\u201ccount\u201d:29,\u201dminutes\u201d:132,\u201dthirtyDayAvgMinutes\u201d:94}}},\u201dlogId\u201d:26589710670,\u201dminutesAfterWakeup\u201d:1,\u201dminutesAsleep\u201d:562,\u201dminutesAwake\u201d:132,\u201dminutesToFallAsleep\u201d:0,\u201dstartTime\u201d:\u201d2020-10-11T00:12:30.000\u201d,\u201dtimeInBed\u201d:694,\u201dtype\u201d:\u201dstages\u201d}],\u201dsummary\u201d:{\u201cstages\u201d:{\u201cdeep\u201d:52,\u201dlight\u201d:442,\u201drem\u201d:68,\u201dwake\u201d:132},\u201dtotalMinutesAsleep\u201d:562,\u201dtotalSleepRecords\u201d:1,\u201dtotalTimeInBed\u201d:694}} a748ee1a-1d0b-4ae9-9074-279a2b6ba524 {\u201csleep\u201d:[{\u201cdateOfSleep\u201d:\u201d2020-10-12\u201d,\u201dduration\u201d:28980000,\u201defficiency\u201d:93,\u201dendTime\u201d:\u201d2020-10-12T09:34:30.000\u201d,\u201dinfoCode\u201d:0,\u201disMainSleep\u201d:true,\u201dlevels\u201d:{\u201cdata\u201d:[{\u201cdateTime\u201d:\u201d2020-10-12T01:31:00.000\u201d,\u201dlevel\u201d:\u201dwake\u201d,\u201dseconds\u201d:600},{\u201cdateTime\u201d:\u201d2020-10-12T01:41:00.000\u201d,\u201dlevel\u201d:\u201dlight\u201d,\u201dseconds\u201d:60},{\u201cdateTime\u201d:\u201d2020-10-12T01:42:00.000\u201d,\u201dlevel\u201d:\u201ddeep\u201d,\u201dseconds\u201d:2340},\u2026], \u201csummary\u201d:{\u201cdeep\u201d:{\u201ccount\u201d:4,\u201dminutes\u201d:63,\u201dthirtyDayAvgMinutes\u201d:59},\u201dlight\u201d:{\u201ccount\u201d:27,\u201dminutes\u201d:257,\u201dthirtyDayAvgMinutes\u201d:364},\u201drem\u201d:{\u201ccount\u201d:5,\u201dminutes\u201d:94,\u201dthirtyDayAvgMinutes\u201d:58},\u201dwake\u201d:{\u201ccount\u201d:24,\u201dminutes\u201d:69,\u201dthirtyDayAvgMinutes\u201d:95}}},\u201dlogId\u201d:26589710673,\u201dminutesAfterWakeup\u201d:0,\u201dminutesAsleep\u201d:415,\u201dminutesAwake\u201d:68,\u201dminutesToFallAsleep\u201d:0,\u201dstartTime\u201d:\u201d2020-10-12T01:31:00.000\u201d,\u201dtimeInBed\u201d:483,\u201dtype\u201d:\u201dstages\u201d}],\u201dsummary\u201d:{\u201cstages\u201d:{\u201cdeep\u201d:63,\u201dlight\u201d:257,\u201drem\u201d:94,\u201dwake\u201d:69},\u201dtotalMinutesAsleep\u201d:415,\u201dtotalSleepRecords\u201d:1,\u201dtotalTimeInBed\u201d:483}} FITBIT_SLEEP_INTRADAY RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP FLAG_TO_MUTATE LOCAL_DATE_TIME FLAG_TO_MUTATE DEVICE_ID device_id TYPE_EPISODE_ID FLAG_TO_MUTATE DURATION FLAG_TO_MUTATE IS_MAIN_SLEEP FLAG_TO_MUTATE TYPE FLAG_TO_MUTATE LEVEL FLAG_TO_MUTATE MUTATION COLUMN_MAPPINGS Script column Stream column JSON_FITBIT_COLUMN fitbit_data SCRIPTS - src/data/streams/mutations/fitbit/parse_sleep_intraday_json.py - src/data/streams/mutations/fitbit/add_zero_timestamp.py Note Fitbit API has two versions for sleep data, v1 and v1.2, we support both. All columns except DEVICE_ID are parsed from JSON_FITBIT_COLUMN . JSON_FITBIT_COLUMN is a string column containing the JSON objects returned by Fitbit\u2019s API. See an example of the raw data RAPIDS expects for this data stream: Example of the expected raw data device_id fitbit_data a748ee1a-1d0b-4ae9-9074-279a2b6ba524 {\u201csleep\u201d:[{\u201cdateOfSleep\u201d:\u201d2020-10-10\u201d,\u201dduration\u201d:3600000,\u201defficiency\u201d:92,\u201dendTime\u201d:\u201d2020-10-10T16:37:00.000\u201d,\u201dinfoCode\u201d:2,\u201disMainSleep\u201d:false,\u201dlevels\u201d:{\u201cdata\u201d:[{\u201cdateTime\u201d:\u201d2020-10-10T15:36:30.000\u201d,\u201dlevel\u201d:\u201drestless\u201d,\u201dseconds\u201d:60},{\u201cdateTime\u201d:\u201d2020-10-10T15:37:30.000\u201d,\u201dlevel\u201d:\u201dasleep\u201d,\u201dseconds\u201d:660},{\u201cdateTime\u201d:\u201d2020-10-10T15:48:30.000\u201d,\u201dlevel\u201d:\u201drestless\u201d,\u201dseconds\u201d:60},\u2026], \u201csummary\u201d:{\u201casleep\u201d:{\u201ccount\u201d:0,\u201dminutes\u201d:56},\u201dawake\u201d:{\u201ccount\u201d:0,\u201dminutes\u201d:0},\u201drestless\u201d:{\u201ccount\u201d:3,\u201dminutes\u201d:4}}},\u201dlogId\u201d:26315914306,\u201dminutesAfterWakeup\u201d:0,\u201dminutesAsleep\u201d:55,\u201dminutesAwake\u201d:5,\u201dminutesToFallAsleep\u201d:0,\u201dstartTime\u201d:\u201d2020-10-10T15:36:30.000\u201d,\u201dtimeInBed\u201d:60,\u201dtype\u201d:\u201dclassic\u201d},{\u201cdateOfSleep\u201d:\u201d2020-10-10\u201d,\u201dduration\u201d:22980000,\u201defficiency\u201d:88,\u201dendTime\u201d:\u201d2020-10-10T08:10:00.000\u201d,\u201dinfoCode\u201d:0,\u201disMainSleep\u201d:true,\u201dlevels\u201d:{\u201cdata\u201d:[{\u201cdateTime\u201d:\u201d2020-10-10T01:46:30.000\u201d,\u201dlevel\u201d:\u201dlight\u201d,\u201dseconds\u201d:420},{\u201cdateTime\u201d:\u201d2020-10-10T01:53:30.000\u201d,\u201dlevel\u201d:\u201ddeep\u201d,\u201dseconds\u201d:1230},{\u201cdateTime\u201d:\u201d2020-10-10T02:14:00.000\u201d,\u201dlevel\u201d:\u201dlight\u201d,\u201dseconds\u201d:360},\u2026], \u201csummary\u201d:{\u201cdeep\u201d:{\u201ccount\u201d:3,\u201dminutes\u201d:92,\u201dthirtyDayAvgMinutes\u201d:0},\u201dlight\u201d:{\u201ccount\u201d:29,\u201dminutes\u201d:193,\u201dthirtyDayAvgMinutes\u201d:0},\u201drem\u201d:{\u201ccount\u201d:4,\u201dminutes\u201d:33,\u201dthirtyDayAvgMinutes\u201d:0},\u201dwake\u201d:{\u201ccount\u201d:28,\u201dminutes\u201d:65,\u201dthirtyDayAvgMinutes\u201d:0}}},\u201dlogId\u201d:26311786557,\u201dminutesAfterWakeup\u201d:0,\u201dminutesAsleep\u201d:318,\u201dminutesAwake\u201d:65,\u201dminutesToFallAsleep\u201d:0,\u201dstartTime\u201d:\u201d2020-10-10T01:46:30.000\u201d,\u201dtimeInBed\u201d:383,\u201dtype\u201d:\u201dstages\u201d}],\u201dsummary\u201d:{\u201cstages\u201d:{\u201cdeep\u201d:92,\u201dlight\u201d:193,\u201drem\u201d:33,\u201dwake\u201d:65},\u201dtotalMinutesAsleep\u201d:373,\u201dtotalSleepRecords\u201d:2,\u201dtotalTimeInBed\u201d:443}} a748ee1a-1d0b-4ae9-9074-279a2b6ba524 {\u201csleep\u201d:[{\u201cdateOfSleep\u201d:\u201d2020-10-11\u201d,\u201dduration\u201d:41640000,\u201defficiency\u201d:89,\u201dendTime\u201d:\u201d2020-10-11T11:47:00.000\u201d,\u201dinfoCode\u201d:0,\u201disMainSleep\u201d:true,\u201dlevels\u201d:{\u201cdata\u201d:[{\u201cdateTime\u201d:\u201d2020-10-11T00:12:30.000\u201d,\u201dlevel\u201d:\u201dwake\u201d,\u201dseconds\u201d:450},{\u201cdateTime\u201d:\u201d2020-10-11T00:20:00.000\u201d,\u201dlevel\u201d:\u201dlight\u201d,\u201dseconds\u201d:870},{\u201cdateTime\u201d:\u201d2020-10-11T00:34:30.000\u201d,\u201dlevel\u201d:\u201dwake\u201d,\u201dseconds\u201d:780},\u2026], \u201csummary\u201d:{\u201cdeep\u201d:{\u201ccount\u201d:4,\u201dminutes\u201d:52,\u201dthirtyDayAvgMinutes\u201d:62},\u201dlight\u201d:{\u201ccount\u201d:32,\u201dminutes\u201d:442,\u201dthirtyDayAvgMinutes\u201d:364},\u201drem\u201d:{\u201ccount\u201d:6,\u201dminutes\u201d:68,\u201dthirtyDayAvgMinutes\u201d:58},\u201dwake\u201d:{\u201ccount\u201d:29,\u201dminutes\u201d:132,\u201dthirtyDayAvgMinutes\u201d:94}}},\u201dlogId\u201d:26589710670,\u201dminutesAfterWakeup\u201d:1,\u201dminutesAsleep\u201d:562,\u201dminutesAwake\u201d:132,\u201dminutesToFallAsleep\u201d:0,\u201dstartTime\u201d:\u201d2020-10-11T00:12:30.000\u201d,\u201dtimeInBed\u201d:694,\u201dtype\u201d:\u201dstages\u201d}],\u201dsummary\u201d:{\u201cstages\u201d:{\u201cdeep\u201d:52,\u201dlight\u201d:442,\u201drem\u201d:68,\u201dwake\u201d:132},\u201dtotalMinutesAsleep\u201d:562,\u201dtotalSleepRecords\u201d:1,\u201dtotalTimeInBed\u201d:694}} a748ee1a-1d0b-4ae9-9074-279a2b6ba524 {\u201csleep\u201d:[{\u201cdateOfSleep\u201d:\u201d2020-10-12\u201d,\u201dduration\u201d:28980000,\u201defficiency\u201d:93,\u201dendTime\u201d:\u201d2020-10-12T09:34:30.000\u201d,\u201dinfoCode\u201d:0,\u201disMainSleep\u201d:true,\u201dlevels\u201d:{\u201cdata\u201d:[{\u201cdateTime\u201d:\u201d2020-10-12T01:31:00.000\u201d,\u201dlevel\u201d:\u201dwake\u201d,\u201dseconds\u201d:600},{\u201cdateTime\u201d:\u201d2020-10-12T01:41:00.000\u201d,\u201dlevel\u201d:\u201dlight\u201d,\u201dseconds\u201d:60},{\u201cdateTime\u201d:\u201d2020-10-12T01:42:00.000\u201d,\u201dlevel\u201d:\u201ddeep\u201d,\u201dseconds\u201d:2340},\u2026], \u201csummary\u201d:{\u201cdeep\u201d:{\u201ccount\u201d:4,\u201dminutes\u201d:63,\u201dthirtyDayAvgMinutes\u201d:59},\u201dlight\u201d:{\u201ccount\u201d:27,\u201dminutes\u201d:257,\u201dthirtyDayAvgMinutes\u201d:364},\u201drem\u201d:{\u201ccount\u201d:5,\u201dminutes\u201d:94,\u201dthirtyDayAvgMinutes\u201d:58},\u201dwake\u201d:{\u201ccount\u201d:24,\u201dminutes\u201d:69,\u201dthirtyDayAvgMinutes\u201d:95}}},\u201dlogId\u201d:26589710673,\u201dminutesAfterWakeup\u201d:0,\u201dminutesAsleep\u201d:415,\u201dminutesAwake\u201d:68,\u201dminutesToFallAsleep\u201d:0,\u201dstartTime\u201d:\u201d2020-10-12T01:31:00.000\u201d,\u201dtimeInBed\u201d:483,\u201dtype\u201d:\u201dstages\u201d}],\u201dsummary\u201d:{\u201cstages\u201d:{\u201cdeep\u201d:63,\u201dlight\u201d:257,\u201drem\u201d:94,\u201dwake\u201d:69},\u201dtotalMinutesAsleep\u201d:415,\u201dtotalSleepRecords\u201d:1,\u201dtotalTimeInBed\u201d:483}} FITBIT_STEPS_SUMMARY RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP FLAG_TO_MUTATE DEVICE_ID device_id LOCAL_DATE_TIME FLAG_TO_MUTATE STEPS FLAG_TO_MUTATE MUTATION COLUMN_MAPPINGS Script column Stream column JSON_FITBIT_COLUMN fitbit_data SCRIPTS - src/data/streams/mutations/fitbit/parse_steps_summary_json.py - src/data/streams/mutations/fitbit/add_zero_timestamp.py Note TIMESTAMP , LOCAL_DATE_TIME , and STEPS are parsed from JSON_FITBIT_COLUMN . JSON_FITBIT_COLUMN is a string column containing the JSON objects returned by Fitbit\u2019s API. See an example of the raw data RAPIDS expects for this data stream: Example of the expected raw data device_id fitbit_data a748ee1a-1d0b-4ae9-9074-279a2b6ba524 \u201cactivities-steps\u201d:[{\u201cdateTime\u201d:\u201d2020-10-07\u201d,\u201dvalue\u201d:\u201d1775\u201d}],\u201dactivities-steps-intraday\u201d:{\u201cdataset\u201d:[{\u201ctime\u201d:\u201d00:00:00\u201d,\u201dvalue\u201d:5},{\u201ctime\u201d:\u201d00:01:00\u201d,\u201dvalue\u201d:3},{\u201ctime\u201d:\u201d00:02:00\u201d,\u201dvalue\u201d:0},\u2026],\u201ddatasetInterval\u201d:1,\u201ddatasetType\u201d:\u201dminute\u201d}} a748ee1a-1d0b-4ae9-9074-279a2b6ba524 \u201cactivities-steps\u201d:[{\u201cdateTime\u201d:\u201d2020-10-08\u201d,\u201dvalue\u201d:\u201d3201\u201d}],\u201dactivities-steps-intraday\u201d:{\u201cdataset\u201d:[{\u201ctime\u201d:\u201d00:00:00\u201d,\u201dvalue\u201d:14},{\u201ctime\u201d:\u201d00:01:00\u201d,\u201dvalue\u201d:11},{\u201ctime\u201d:\u201d00:02:00\u201d,\u201dvalue\u201d:10},\u2026],\u201ddatasetInterval\u201d:1,\u201ddatasetType\u201d:\u201dminute\u201d}} a748ee1a-1d0b-4ae9-9074-279a2b6ba524 \u201cactivities-steps\u201d:[{\u201cdateTime\u201d:\u201d2020-10-09\u201d,\u201dvalue\u201d:\u201d998\u201d}],\u201dactivities-steps-intraday\u201d:{\u201cdataset\u201d:[{\u201ctime\u201d:\u201d00:00:00\u201d,\u201dvalue\u201d:0},{\u201ctime\u201d:\u201d00:01:00\u201d,\u201dvalue\u201d:0},{\u201ctime\u201d:\u201d00:02:00\u201d,\u201dvalue\u201d:0},\u2026],\u201ddatasetInterval\u201d:1,\u201ddatasetType\u201d:\u201dminute\u201d}} FITBIT_STEPS_INTRADAY RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP FLAG_TO_MUTATE DEVICE_ID device_id LOCAL_DATE_TIME FLAG_TO_MUTATE STEPS FLAG_TO_MUTATE MUTATION COLUMN_MAPPINGS Script column Stream column JSON_FITBIT_COLUMN fitbit_data SCRIPTS - src/data/streams/mutations/fitbit/parse_steps_intraday_json.py - src/data/streams/mutations/fitbit/add_zero_timestamp.py Note TIMESTAMP , LOCAL_DATE_TIME , and STEPS are parsed from JSON_FITBIT_COLUMN . JSON_FITBIT_COLUMN is a string column containing the JSON objects returned by Fitbit\u2019s API . See an example of the raw data RAPIDS expects for this data stream: Example of the expected raw data device_id fitbit_data a748ee1a-1d0b-4ae9-9074-279a2b6ba524 \u201cactivities-steps\u201d:[{\u201cdateTime\u201d:\u201d2020-10-07\u201d,\u201dvalue\u201d:\u201d1775\u201d}],\u201dactivities-steps-intraday\u201d:{\u201cdataset\u201d:[{\u201ctime\u201d:\u201d00:00:00\u201d,\u201dvalue\u201d:5},{\u201ctime\u201d:\u201d00:01:00\u201d,\u201dvalue\u201d:3},{\u201ctime\u201d:\u201d00:02:00\u201d,\u201dvalue\u201d:0},\u2026],\u201ddatasetInterval\u201d:1,\u201ddatasetType\u201d:\u201dminute\u201d}} a748ee1a-1d0b-4ae9-9074-279a2b6ba524 \u201cactivities-steps\u201d:[{\u201cdateTime\u201d:\u201d2020-10-08\u201d,\u201dvalue\u201d:\u201d3201\u201d}],\u201dactivities-steps-intraday\u201d:{\u201cdataset\u201d:[{\u201ctime\u201d:\u201d00:00:00\u201d,\u201dvalue\u201d:14},{\u201ctime\u201d:\u201d00:01:00\u201d,\u201dvalue\u201d:11},{\u201ctime\u201d:\u201d00:02:00\u201d,\u201dvalue\u201d:10},\u2026],\u201ddatasetInterval\u201d:1,\u201ddatasetType\u201d:\u201dminute\u201d}} a748ee1a-1d0b-4ae9-9074-279a2b6ba524 \u201cactivities-steps\u201d:[{\u201cdateTime\u201d:\u201d2020-10-09\u201d,\u201dvalue\u201d:\u201d998\u201d}],\u201dactivities-steps-intraday\u201d:{\u201cdataset\u201d:[{\u201ctime\u201d:\u201d00:00:00\u201d,\u201dvalue\u201d:0},{\u201ctime\u201d:\u201d00:01:00\u201d,\u201dvalue\u201d:0},{\u201ctime\u201d:\u201d00:02:00\u201d,\u201dvalue\u201d:0},\u2026],\u201ddatasetInterval\u201d:1,\u201ddatasetType\u201d:\u201dminute\u201d}}","title":"Format"},{"location":"datastreams/fitbitparsed-csv/","text":"fitbitparsed_csv \u00b6 This data stream handles Fitbit sensor data downloaded using the Fitbit Web API , parsed , and stored in a CSV file. Please note that RAPIDS cannot query the API directly; you need to use other available tools or implement your own. Once you have your parsed sensor data in a CSV file, RAPIDS can process it. What is the difference between JSON and plain data streams Most people will only need fitbitjson_* because they downloaded and stored their data directly from Fitbit\u2019s API. However, if, for some reason, you don\u2019t have access to that JSON data and instead only have the parsed data (columns and rows), you can use this data stream. Warning The CSV files have to use , as separator, \\ as escape character (do not escape \" with \"\" ), and wrap any string columns with \" . Example of a valid CSV file \"device_id\",\"heartrate\",\"heartrate_zone\",\"local_date_time\",\"timestamp\" \"a748ee1a-1d0b-4ae9-9074-279a2b6ba524\",69,\"outofrange\",\"2020-04-23 00:00:00\",0 \"a748ee1a-1d0b-4ae9-9074-279a2b6ba524\",69,\"outofrange\",\"2020-04-23 00:01:00\",0 \"a748ee1a-1d0b-4ae9-9074-279a2b6ba524\",67,\"outofrange\",\"2020-04-23 00:02:00\",0 \"a748ee1a-1d0b-4ae9-9074-279a2b6ba524\",69,\"outofrange\",\"2020-04-23 00:03:00\",0 Container \u00b6 The container should be a CSV file per sensor, each containing all participants\u2019 data. The script to connect and download data from this container is at: src/data/streams/fitbitparsed_csv/container.R Format \u00b6 The format.yaml maps and transforms columns in your raw data stream to the mandatory columns RAPIDS needs for Fitbit sensors . This file is at: src/data/streams/fitbitparsed_mysql/format.yaml If you want to use this stream with your data, modify every sensor in format.yaml to map all columns except TIMESTAMP in [RAPIDS_COLUMN_MAPPINGS] to your raw data column names. All columns are mandatory; however, all except device_id and local_date_time can be empty if you don\u2019t have that data. Just have in mind that some features will be empty if some of these columns are empty. FITBIT_HEARTRATE_SUMMARY RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP FLAG_TO_MUTATE LOCAL_DATE_TIME local_date_time DEVICE_ID device_id HEARTRATE_DAILY_RESTINGHR heartrate_daily_restinghr HEARTRATE_DAILY_CALORIESOUTOFRANGE heartrate_daily_caloriesoutofrange HEARTRATE_DAILY_CALORIESFATBURN heartrate_daily_caloriesfatburn HEARTRATE_DAILY_CALORIESCARDIO heartrate_daily_caloriescardio HEARTRATE_DAILY_CALORIESPEAK heartrate_daily_caloriespeak MUTATION COLUMN_MAPPINGS (None) SCRIPTS src/data/streams/mutations/fitbit/add_zero_timestamp.py Note add_zero_timestamp adds an all-zero column called timestamp that will be filled in later in the pipeline by readable_time.R converting LOCAL_DATE_TIME to a unix timestamp taking into account single or multiple time zones. Example of the raw data RAPIDS expects for this data stream device_id local_date_time heartrate_daily_restinghr heartrate_daily_caloriesoutofrange heartrate_daily_caloriesfatburn heartrate_daily_caloriescardio heartrate_daily_caloriespeak a748ee1a-1d0b-4ae9-9074-279a2b6ba524 2020-10-07 72 1200.6102 760.3020 15.2048 0 a748ee1a-1d0b-4ae9-9074-279a2b6ba524 2020-10-08 70 1100.1120 660.0012 23.7088 0 a748ee1a-1d0b-4ae9-9074-279a2b6ba524 2020-10-09 69 750.3615 734.1516 131.8579 0 FITBIT_HEARTRATE_INTRADAY RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP FLAG_TO_MUTATE LOCAL_DATE_TIME local_date_time DEVICE_ID device_id HEARTRATE heartrate HEARTRATE_ZONE heartrate_zone MUTATION COLUMN_MAPPINGS (None) SCRIPTS src/data/streams/mutations/fitbit/add_zero_timestamp.py Note add_zero_timestamp adds an all-zero column called timestamp that will be filled in later in the pipeline by readable_time.R converting LOCAL_DATE_TIME to a unix timestamp taking into account single or multiple time zones. Example of the raw data RAPIDS expects for this data stream device_id local_date_time heartrate heartrate_zone a748ee1a-1d0b-4ae9-9074-279a2b6ba524 2020-10-07 00:00:00 68 outofrange a748ee1a-1d0b-4ae9-9074-279a2b6ba524 2020-10-07 00:01:00 67 outofrange a748ee1a-1d0b-4ae9-9074-279a2b6ba524 2020-10-07 00:02:00 67 outofrange FITBIT_SLEEP_SUMMARY RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP FLAG_TO_MUTATE LOCAL_DATE_TIME FLAG_TO_MUTATE LOCAL_START_DATE_TIME local_start_date_time LOCAL_END_DATE_TIME local_end_date_time DEVICE_ID device_id EFFICIENCY efficiency MINUTES_AFTER_WAKEUP minutes_after_wakeup MINUTES_ASLEEP minutes_asleep MINUTES_AWAKE minutes_awake MINUTES_TO_FALL_ASLEEP minutes_to_fall_asleep MINUTES_IN_BED minutes_in_bed IS_MAIN_SLEEP is_main_sleep TYPE type MUTATION COLUMN_MAPPINGS (None) SCRIPTS - src/data/streams/mutations/fitbit/add_local_date_time.py - src/data/streams/mutations/fitbit/add_zero_timestamp.py Note add_zero_timestamp adds an all-zero column called timestamp that will be filled in later in the pipeline by readable_time.R converting LOCAL_DATE_TIME to a unix timestamp taking into account single or multiple time zones. Fitbit API has two versions for sleep data, v1 and v1.2. We support both but ignore v1\u2019s count_awake , duration_awake , and count_awakenings , count_restless , duration_restless columns. Example of the expected raw data device_id local_start_date_time local_end_date_time efficiency minutes_after_wakeup minutes_asleep minutes_awake minutes_to_fall_asleep minutes_in_bed is_main_sleep type a748ee1a-1d0b-4ae9-9074-279a2b6ba524 2020-10-10 15:36:30 2020-10-10 16:37:00 92 0 55 5 0 60 0 classic a748ee1a-1d0b-4ae9-9074-279a2b6ba524 2020-10-10 01:46:30 2020-10-10 08:10:00 88 0 318 65 0 383 1 stages a748ee1a-1d0b-4ae9-9074-279a2b6ba524 2020-10-11 00:12:30 2020-10-11 11:47:00 89 1 562 132 0 694 1 stages a748ee1a-1d0b-4ae9-9074-279a2b6ba524 2020-10-12 01:31:00 2020-10-12 09:34:30 93 0 415 68 0 483 1 stages FITBIT_SLEEP_INTRADAY RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP FLAG_TO_MUTATE LOCAL_DATE_TIME local_date_time DEVICE_ID device_id TYPE_EPISODE_ID type_episode_id DURATION duration IS_MAIN_SLEEP is_main_sleep TYPE type LEVEL level MUTATION COLUMN_MAPPINGS (None) SCRIPTS src/data/streams/mutations/fitbit/add_zero_timestamp.py Note add_zero_timestamp adds an all-zero column called timestamp that will be filled in later in the pipeline by readable_time.R converting LOCAL_DATE_TIME to a unix timestamp taking into account single or multiple time zones. Fitbit API has two versions for sleep data, v1 and v1.2, we support both. Example of the expected raw data device_id type_episode_id local_date_time duration level is_main_sleep type a748ee1a-1d0b-4ae9-9074-279a2b6ba524 0 2020-10-10 15:36:30 60 restless 0 classic a748ee1a-1d0b-4ae9-9074-279a2b6ba524 0 2020-10-10 15:37:30 660 asleep 0 classic a748ee1a-1d0b-4ae9-9074-279a2b6ba524 0 2020-10-10 15:48:30 60 restless 0 classic a748ee1a-1d0b-4ae9-9074-279a2b6ba524 \u2026 \u2026 \u2026 \u2026 \u2026 \u2026 a748ee1a-1d0b-4ae9-9074-279a2b6ba524 1 2020-10-10 01:46:30 420 light 1 stages a748ee1a-1d0b-4ae9-9074-279a2b6ba524 1 2020-10-10 01:53:30 1230 deep 1 stages FITBIT_STEPS_SUMMARY RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP FLAG_TO_MUTATE DEVICE_ID device_id LOCAL_DATE_TIME local_date_time STEPS steps MUTATION COLUMN_MAPPINGS (None) SCRIPTS src/data/streams/mutations/fitbit/add_zero_timestamp.py Note add_zero_timestamp adds an all-zero column called timestamp that will be filled in later in the pipeline by readable_time.R converting LOCAL_DATE_TIME to a unix timestamp taking into account single or multiple time zones. Example of the expected raw data device_id local_date_time steps a748ee1a-1d0b-4ae9-9074-279a2b6ba524 2020-10-07 1775 a748ee1a-1d0b-4ae9-9074-279a2b6ba524 2020-10-08 3201 a748ee1a-1d0b-4ae9-9074-279a2b6ba524 2020-10-09 998 FITBIT_STEPS_INTRADAY RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP FLAG_TO_MUTATE DEVICE_ID device_id LOCAL_DATE_TIME local_date_time STEPS steps MUTATION COLUMN_MAPPINGS (None) SCRIPTS src/data/streams/mutations/fitbit/add_zero_timestamp.py Note add_zero_timestamp adds an all-zero column called timestamp that will be filled in later in the pipeline by readable_time.R converting LOCAL_DATE_TIME to a unix timestamp taking into account single or multiple time zones. Example of the expected raw data device_id local_date_time steps a748ee1a-1d0b-4ae9-9074-279a2b6ba524 2020-10-07 00:00:00 5 a748ee1a-1d0b-4ae9-9074-279a2b6ba524 2020-10-07 00:01:00 3 a748ee1a-1d0b-4ae9-9074-279a2b6ba524 2020-10-07 00:02:00 0","title":"fitbitparsed_csv"},{"location":"datastreams/fitbitparsed-csv/#fitbitparsed_csv","text":"This data stream handles Fitbit sensor data downloaded using the Fitbit Web API , parsed , and stored in a CSV file. Please note that RAPIDS cannot query the API directly; you need to use other available tools or implement your own. Once you have your parsed sensor data in a CSV file, RAPIDS can process it. What is the difference between JSON and plain data streams Most people will only need fitbitjson_* because they downloaded and stored their data directly from Fitbit\u2019s API. However, if, for some reason, you don\u2019t have access to that JSON data and instead only have the parsed data (columns and rows), you can use this data stream. Warning The CSV files have to use , as separator, \\ as escape character (do not escape \" with \"\" ), and wrap any string columns with \" . Example of a valid CSV file \"device_id\",\"heartrate\",\"heartrate_zone\",\"local_date_time\",\"timestamp\" \"a748ee1a-1d0b-4ae9-9074-279a2b6ba524\",69,\"outofrange\",\"2020-04-23 00:00:00\",0 \"a748ee1a-1d0b-4ae9-9074-279a2b6ba524\",69,\"outofrange\",\"2020-04-23 00:01:00\",0 \"a748ee1a-1d0b-4ae9-9074-279a2b6ba524\",67,\"outofrange\",\"2020-04-23 00:02:00\",0 \"a748ee1a-1d0b-4ae9-9074-279a2b6ba524\",69,\"outofrange\",\"2020-04-23 00:03:00\",0","title":"fitbitparsed_csv"},{"location":"datastreams/fitbitparsed-csv/#container","text":"The container should be a CSV file per sensor, each containing all participants\u2019 data. The script to connect and download data from this container is at: src/data/streams/fitbitparsed_csv/container.R","title":"Container"},{"location":"datastreams/fitbitparsed-csv/#format","text":"The format.yaml maps and transforms columns in your raw data stream to the mandatory columns RAPIDS needs for Fitbit sensors . This file is at: src/data/streams/fitbitparsed_mysql/format.yaml If you want to use this stream with your data, modify every sensor in format.yaml to map all columns except TIMESTAMP in [RAPIDS_COLUMN_MAPPINGS] to your raw data column names. All columns are mandatory; however, all except device_id and local_date_time can be empty if you don\u2019t have that data. Just have in mind that some features will be empty if some of these columns are empty. FITBIT_HEARTRATE_SUMMARY RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP FLAG_TO_MUTATE LOCAL_DATE_TIME local_date_time DEVICE_ID device_id HEARTRATE_DAILY_RESTINGHR heartrate_daily_restinghr HEARTRATE_DAILY_CALORIESOUTOFRANGE heartrate_daily_caloriesoutofrange HEARTRATE_DAILY_CALORIESFATBURN heartrate_daily_caloriesfatburn HEARTRATE_DAILY_CALORIESCARDIO heartrate_daily_caloriescardio HEARTRATE_DAILY_CALORIESPEAK heartrate_daily_caloriespeak MUTATION COLUMN_MAPPINGS (None) SCRIPTS src/data/streams/mutations/fitbit/add_zero_timestamp.py Note add_zero_timestamp adds an all-zero column called timestamp that will be filled in later in the pipeline by readable_time.R converting LOCAL_DATE_TIME to a unix timestamp taking into account single or multiple time zones. Example of the raw data RAPIDS expects for this data stream device_id local_date_time heartrate_daily_restinghr heartrate_daily_caloriesoutofrange heartrate_daily_caloriesfatburn heartrate_daily_caloriescardio heartrate_daily_caloriespeak a748ee1a-1d0b-4ae9-9074-279a2b6ba524 2020-10-07 72 1200.6102 760.3020 15.2048 0 a748ee1a-1d0b-4ae9-9074-279a2b6ba524 2020-10-08 70 1100.1120 660.0012 23.7088 0 a748ee1a-1d0b-4ae9-9074-279a2b6ba524 2020-10-09 69 750.3615 734.1516 131.8579 0 FITBIT_HEARTRATE_INTRADAY RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP FLAG_TO_MUTATE LOCAL_DATE_TIME local_date_time DEVICE_ID device_id HEARTRATE heartrate HEARTRATE_ZONE heartrate_zone MUTATION COLUMN_MAPPINGS (None) SCRIPTS src/data/streams/mutations/fitbit/add_zero_timestamp.py Note add_zero_timestamp adds an all-zero column called timestamp that will be filled in later in the pipeline by readable_time.R converting LOCAL_DATE_TIME to a unix timestamp taking into account single or multiple time zones. Example of the raw data RAPIDS expects for this data stream device_id local_date_time heartrate heartrate_zone a748ee1a-1d0b-4ae9-9074-279a2b6ba524 2020-10-07 00:00:00 68 outofrange a748ee1a-1d0b-4ae9-9074-279a2b6ba524 2020-10-07 00:01:00 67 outofrange a748ee1a-1d0b-4ae9-9074-279a2b6ba524 2020-10-07 00:02:00 67 outofrange FITBIT_SLEEP_SUMMARY RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP FLAG_TO_MUTATE LOCAL_DATE_TIME FLAG_TO_MUTATE LOCAL_START_DATE_TIME local_start_date_time LOCAL_END_DATE_TIME local_end_date_time DEVICE_ID device_id EFFICIENCY efficiency MINUTES_AFTER_WAKEUP minutes_after_wakeup MINUTES_ASLEEP minutes_asleep MINUTES_AWAKE minutes_awake MINUTES_TO_FALL_ASLEEP minutes_to_fall_asleep MINUTES_IN_BED minutes_in_bed IS_MAIN_SLEEP is_main_sleep TYPE type MUTATION COLUMN_MAPPINGS (None) SCRIPTS - src/data/streams/mutations/fitbit/add_local_date_time.py - src/data/streams/mutations/fitbit/add_zero_timestamp.py Note add_zero_timestamp adds an all-zero column called timestamp that will be filled in later in the pipeline by readable_time.R converting LOCAL_DATE_TIME to a unix timestamp taking into account single or multiple time zones. Fitbit API has two versions for sleep data, v1 and v1.2. We support both but ignore v1\u2019s count_awake , duration_awake , and count_awakenings , count_restless , duration_restless columns. Example of the expected raw data device_id local_start_date_time local_end_date_time efficiency minutes_after_wakeup minutes_asleep minutes_awake minutes_to_fall_asleep minutes_in_bed is_main_sleep type a748ee1a-1d0b-4ae9-9074-279a2b6ba524 2020-10-10 15:36:30 2020-10-10 16:37:00 92 0 55 5 0 60 0 classic a748ee1a-1d0b-4ae9-9074-279a2b6ba524 2020-10-10 01:46:30 2020-10-10 08:10:00 88 0 318 65 0 383 1 stages a748ee1a-1d0b-4ae9-9074-279a2b6ba524 2020-10-11 00:12:30 2020-10-11 11:47:00 89 1 562 132 0 694 1 stages a748ee1a-1d0b-4ae9-9074-279a2b6ba524 2020-10-12 01:31:00 2020-10-12 09:34:30 93 0 415 68 0 483 1 stages FITBIT_SLEEP_INTRADAY RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP FLAG_TO_MUTATE LOCAL_DATE_TIME local_date_time DEVICE_ID device_id TYPE_EPISODE_ID type_episode_id DURATION duration IS_MAIN_SLEEP is_main_sleep TYPE type LEVEL level MUTATION COLUMN_MAPPINGS (None) SCRIPTS src/data/streams/mutations/fitbit/add_zero_timestamp.py Note add_zero_timestamp adds an all-zero column called timestamp that will be filled in later in the pipeline by readable_time.R converting LOCAL_DATE_TIME to a unix timestamp taking into account single or multiple time zones. Fitbit API has two versions for sleep data, v1 and v1.2, we support both. Example of the expected raw data device_id type_episode_id local_date_time duration level is_main_sleep type a748ee1a-1d0b-4ae9-9074-279a2b6ba524 0 2020-10-10 15:36:30 60 restless 0 classic a748ee1a-1d0b-4ae9-9074-279a2b6ba524 0 2020-10-10 15:37:30 660 asleep 0 classic a748ee1a-1d0b-4ae9-9074-279a2b6ba524 0 2020-10-10 15:48:30 60 restless 0 classic a748ee1a-1d0b-4ae9-9074-279a2b6ba524 \u2026 \u2026 \u2026 \u2026 \u2026 \u2026 a748ee1a-1d0b-4ae9-9074-279a2b6ba524 1 2020-10-10 01:46:30 420 light 1 stages a748ee1a-1d0b-4ae9-9074-279a2b6ba524 1 2020-10-10 01:53:30 1230 deep 1 stages FITBIT_STEPS_SUMMARY RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP FLAG_TO_MUTATE DEVICE_ID device_id LOCAL_DATE_TIME local_date_time STEPS steps MUTATION COLUMN_MAPPINGS (None) SCRIPTS src/data/streams/mutations/fitbit/add_zero_timestamp.py Note add_zero_timestamp adds an all-zero column called timestamp that will be filled in later in the pipeline by readable_time.R converting LOCAL_DATE_TIME to a unix timestamp taking into account single or multiple time zones. Example of the expected raw data device_id local_date_time steps a748ee1a-1d0b-4ae9-9074-279a2b6ba524 2020-10-07 1775 a748ee1a-1d0b-4ae9-9074-279a2b6ba524 2020-10-08 3201 a748ee1a-1d0b-4ae9-9074-279a2b6ba524 2020-10-09 998 FITBIT_STEPS_INTRADAY RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP FLAG_TO_MUTATE DEVICE_ID device_id LOCAL_DATE_TIME local_date_time STEPS steps MUTATION COLUMN_MAPPINGS (None) SCRIPTS src/data/streams/mutations/fitbit/add_zero_timestamp.py Note add_zero_timestamp adds an all-zero column called timestamp that will be filled in later in the pipeline by readable_time.R converting LOCAL_DATE_TIME to a unix timestamp taking into account single or multiple time zones. Example of the expected raw data device_id local_date_time steps a748ee1a-1d0b-4ae9-9074-279a2b6ba524 2020-10-07 00:00:00 5 a748ee1a-1d0b-4ae9-9074-279a2b6ba524 2020-10-07 00:01:00 3 a748ee1a-1d0b-4ae9-9074-279a2b6ba524 2020-10-07 00:02:00 0","title":"Format"},{"location":"datastreams/fitbitparsed-mysql/","text":"fitbitparsed_mysql \u00b6 This data stream handles Fitbit sensor data downloaded using the Fitbit Web API , parsed , and stored in a MySQL database. Please note that RAPIDS cannot query the API directly; you need to use other available tools or implement your own. Once you have your parsed sensor data in a MySQL database, RAPIDS can process it. What is the difference between JSON and plain data streams Most people will only need fitbitjson_* because they downloaded and stored their data directly from Fitbit\u2019s API. However, if, for some reason, you don\u2019t have access to that JSON data and instead only have the parsed data (columns and rows), you can use this data stream. Container \u00b6 The container should be a MySQL database with a table per sensor, each containing all participants\u2019 data. The script to connect and download data from this container is at: src/data/streams/fitbitparsed_mysql/container.R Format \u00b6 The format.yaml maps and transforms columns in your raw data stream to the mandatory columns RAPIDS needs for Fitbit sensors . This file is at: src/data/streams/fitbitparsed_mysql/format.yaml If you want to use this stream with your data, modify every sensor in format.yaml to map all columns except TIMESTAMP in [RAPIDS_COLUMN_MAPPINGS] to your raw data column names. All columns are mandatory; however, all except device_id and local_date_time can be empty if you don\u2019t have that data. Just have in mind that some features will be empty if some of these columns are empty. FITBIT_HEARTRATE_SUMMARY RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP FLAG_TO_MUTATE LOCAL_DATE_TIME local_date_time DEVICE_ID device_id HEARTRATE_DAILY_RESTINGHR heartrate_daily_restinghr HEARTRATE_DAILY_CALORIESOUTOFRANGE heartrate_daily_caloriesoutofrange HEARTRATE_DAILY_CALORIESFATBURN heartrate_daily_caloriesfatburn HEARTRATE_DAILY_CALORIESCARDIO heartrate_daily_caloriescardio HEARTRATE_DAILY_CALORIESPEAK heartrate_daily_caloriespeak MUTATION COLUMN_MAPPINGS (None) SCRIPTS src/data/streams/mutations/fitbit/add_zero_timestamp.py Note add_zero_timestamp adds an all-zero column called timestamp that will be filled in later in the pipeline by readable_time.R converting LOCAL_DATE_TIME to a unix timestamp taking into account single or multiple time zones. Example of the raw data RAPIDS expects for this data stream device_id local_date_time heartrate_daily_restinghr heartrate_daily_caloriesoutofrange heartrate_daily_caloriesfatburn heartrate_daily_caloriescardio heartrate_daily_caloriespeak a748ee1a-1d0b-4ae9-9074-279a2b6ba524 2020-10-07 72 1200.6102 760.3020 15.2048 0 a748ee1a-1d0b-4ae9-9074-279a2b6ba524 2020-10-08 70 1100.1120 660.0012 23.7088 0 a748ee1a-1d0b-4ae9-9074-279a2b6ba524 2020-10-09 69 750.3615 734.1516 131.8579 0 FITBIT_HEARTRATE_INTRADAY RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP FLAG_TO_MUTATE LOCAL_DATE_TIME local_date_time DEVICE_ID device_id HEARTRATE heartrate HEARTRATE_ZONE heartrate_zone MUTATION COLUMN_MAPPINGS (None) SCRIPTS src/data/streams/mutations/fitbit/add_zero_timestamp.py Note add_zero_timestamp adds an all-zero column called timestamp that will be filled in later in the pipeline by readable_time.R converting LOCAL_DATE_TIME to a unix timestamp taking into account single or multiple time zones. Example of the raw data RAPIDS expects for this data stream device_id local_date_time heartrate heartrate_zone a748ee1a-1d0b-4ae9-9074-279a2b6ba524 2020-10-07 00:00:00 68 outofrange a748ee1a-1d0b-4ae9-9074-279a2b6ba524 2020-10-07 00:01:00 67 outofrange a748ee1a-1d0b-4ae9-9074-279a2b6ba524 2020-10-07 00:02:00 67 outofrange FITBIT_SLEEP_SUMMARY RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP FLAG_TO_MUTATE LOCAL_DATE_TIME FLAG_TO_MUTATE LOCAL_START_DATE_TIME local_start_date_time LOCAL_END_DATE_TIME local_end_date_time DEVICE_ID device_id EFFICIENCY efficiency MINUTES_AFTER_WAKEUP minutes_after_wakeup MINUTES_ASLEEP minutes_asleep MINUTES_AWAKE minutes_awake MINUTES_TO_FALL_ASLEEP minutes_to_fall_asleep MINUTES_IN_BED minutes_in_bed IS_MAIN_SLEEP is_main_sleep TYPE type MUTATION COLUMN_MAPPINGS (None) SCRIPTS - src/data/streams/mutations/fitbit/add_local_date_time.py - src/data/streams/mutations/fitbit/add_zero_timestamp.py Note add_zero_timestamp adds an all-zero column called timestamp that will be filled in later in the pipeline by readable_time.R converting LOCAL_DATE_TIME to a unix timestamp taking into account single or multiple time zones. Fitbit API has two versions for sleep data, v1 and v1.2. We support both but ignore v1\u2019s count_awake , duration_awake , and count_awakenings , count_restless , duration_restless columns. Example of the expected raw data device_id local_start_date_time local_end_date_time efficiency minutes_after_wakeup minutes_asleep minutes_awake minutes_to_fall_asleep minutes_in_bed is_main_sleep type a748ee1a-1d0b-4ae9-9074-279a2b6ba524 2020-10-10 15:36:30 2020-10-10 16:37:00 92 0 55 5 0 60 0 classic a748ee1a-1d0b-4ae9-9074-279a2b6ba524 2020-10-10 01:46:30 2020-10-10 08:10:00 88 0 318 65 0 383 1 stages a748ee1a-1d0b-4ae9-9074-279a2b6ba524 2020-10-11 00:12:30 2020-10-11 11:47:00 89 1 562 132 0 694 1 stages a748ee1a-1d0b-4ae9-9074-279a2b6ba524 2020-10-12 01:31:00 2020-10-12 09:34:30 93 0 415 68 0 483 1 stages FITBIT_SLEEP_INTRADAY RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP FLAG_TO_MUTATE LOCAL_DATE_TIME local_date_time DEVICE_ID device_id TYPE_EPISODE_ID type_episode_id DURATION duration IS_MAIN_SLEEP is_main_sleep TYPE type LEVEL level MUTATION COLUMN_MAPPINGS (None) SCRIPTS src/data/streams/mutations/fitbit/add_zero_timestamp.py Note add_zero_timestamp adds an all-zero column called timestamp that will be filled in later in the pipeline by readable_time.R converting LOCAL_DATE_TIME to a unix timestamp taking into account single or multiple time zones. Fitbit API has two versions for sleep data, v1 and v1.2, we support both. Example of the expected raw data device_id type_episode_id local_date_time duration level is_main_sleep type a748ee1a-1d0b-4ae9-9074-279a2b6ba524 0 2020-10-10 15:36:30 60 restless 0 classic a748ee1a-1d0b-4ae9-9074-279a2b6ba524 0 2020-10-10 15:37:30 660 asleep 0 classic a748ee1a-1d0b-4ae9-9074-279a2b6ba524 0 2020-10-10 15:48:30 60 restless 0 classic a748ee1a-1d0b-4ae9-9074-279a2b6ba524 \u2026 \u2026 \u2026 \u2026 \u2026 \u2026 a748ee1a-1d0b-4ae9-9074-279a2b6ba524 1 2020-10-10 01:46:30 420 light 1 stages a748ee1a-1d0b-4ae9-9074-279a2b6ba524 1 2020-10-10 01:53:30 1230 deep 1 stages FITBIT_STEPS_SUMMARY RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP FLAG_TO_MUTATE DEVICE_ID device_id LOCAL_DATE_TIME local_date_time STEPS steps MUTATION COLUMN_MAPPINGS (None) SCRIPTS src/data/streams/mutations/fitbit/add_zero_timestamp.py Note add_zero_timestamp adds an all-zero column called timestamp that will be filled in later in the pipeline by readable_time.R converting LOCAL_DATE_TIME to a unix timestamp taking into account single or multiple time zones. Example of the expected raw data device_id local_date_time steps a748ee1a-1d0b-4ae9-9074-279a2b6ba524 2020-10-07 1775 a748ee1a-1d0b-4ae9-9074-279a2b6ba524 2020-10-08 3201 a748ee1a-1d0b-4ae9-9074-279a2b6ba524 2020-10-09 998 FITBIT_STEPS_INTRADAY RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP FLAG_TO_MUTATE DEVICE_ID device_id LOCAL_DATE_TIME local_date_time STEPS steps MUTATION COLUMN_MAPPINGS (None) SCRIPTS src/data/streams/mutations/fitbit/add_zero_timestamp.py Note add_zero_timestamp adds an all-zero column called timestamp that will be filled in later in the pipeline by readable_time.R converting LOCAL_DATE_TIME to a unix timestamp taking into account single or multiple time zones. Example of the expected raw data device_id local_date_time steps a748ee1a-1d0b-4ae9-9074-279a2b6ba524 2020-10-07 00:00:00 5 a748ee1a-1d0b-4ae9-9074-279a2b6ba524 2020-10-07 00:01:00 3 a748ee1a-1d0b-4ae9-9074-279a2b6ba524 2020-10-07 00:02:00 0","title":"fitbitparsed_mysql"},{"location":"datastreams/fitbitparsed-mysql/#fitbitparsed_mysql","text":"This data stream handles Fitbit sensor data downloaded using the Fitbit Web API , parsed , and stored in a MySQL database. Please note that RAPIDS cannot query the API directly; you need to use other available tools or implement your own. Once you have your parsed sensor data in a MySQL database, RAPIDS can process it. What is the difference between JSON and plain data streams Most people will only need fitbitjson_* because they downloaded and stored their data directly from Fitbit\u2019s API. However, if, for some reason, you don\u2019t have access to that JSON data and instead only have the parsed data (columns and rows), you can use this data stream.","title":"fitbitparsed_mysql"},{"location":"datastreams/fitbitparsed-mysql/#container","text":"The container should be a MySQL database with a table per sensor, each containing all participants\u2019 data. The script to connect and download data from this container is at: src/data/streams/fitbitparsed_mysql/container.R","title":"Container"},{"location":"datastreams/fitbitparsed-mysql/#format","text":"The format.yaml maps and transforms columns in your raw data stream to the mandatory columns RAPIDS needs for Fitbit sensors . This file is at: src/data/streams/fitbitparsed_mysql/format.yaml If you want to use this stream with your data, modify every sensor in format.yaml to map all columns except TIMESTAMP in [RAPIDS_COLUMN_MAPPINGS] to your raw data column names. All columns are mandatory; however, all except device_id and local_date_time can be empty if you don\u2019t have that data. Just have in mind that some features will be empty if some of these columns are empty. FITBIT_HEARTRATE_SUMMARY RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP FLAG_TO_MUTATE LOCAL_DATE_TIME local_date_time DEVICE_ID device_id HEARTRATE_DAILY_RESTINGHR heartrate_daily_restinghr HEARTRATE_DAILY_CALORIESOUTOFRANGE heartrate_daily_caloriesoutofrange HEARTRATE_DAILY_CALORIESFATBURN heartrate_daily_caloriesfatburn HEARTRATE_DAILY_CALORIESCARDIO heartrate_daily_caloriescardio HEARTRATE_DAILY_CALORIESPEAK heartrate_daily_caloriespeak MUTATION COLUMN_MAPPINGS (None) SCRIPTS src/data/streams/mutations/fitbit/add_zero_timestamp.py Note add_zero_timestamp adds an all-zero column called timestamp that will be filled in later in the pipeline by readable_time.R converting LOCAL_DATE_TIME to a unix timestamp taking into account single or multiple time zones. Example of the raw data RAPIDS expects for this data stream device_id local_date_time heartrate_daily_restinghr heartrate_daily_caloriesoutofrange heartrate_daily_caloriesfatburn heartrate_daily_caloriescardio heartrate_daily_caloriespeak a748ee1a-1d0b-4ae9-9074-279a2b6ba524 2020-10-07 72 1200.6102 760.3020 15.2048 0 a748ee1a-1d0b-4ae9-9074-279a2b6ba524 2020-10-08 70 1100.1120 660.0012 23.7088 0 a748ee1a-1d0b-4ae9-9074-279a2b6ba524 2020-10-09 69 750.3615 734.1516 131.8579 0 FITBIT_HEARTRATE_INTRADAY RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP FLAG_TO_MUTATE LOCAL_DATE_TIME local_date_time DEVICE_ID device_id HEARTRATE heartrate HEARTRATE_ZONE heartrate_zone MUTATION COLUMN_MAPPINGS (None) SCRIPTS src/data/streams/mutations/fitbit/add_zero_timestamp.py Note add_zero_timestamp adds an all-zero column called timestamp that will be filled in later in the pipeline by readable_time.R converting LOCAL_DATE_TIME to a unix timestamp taking into account single or multiple time zones. Example of the raw data RAPIDS expects for this data stream device_id local_date_time heartrate heartrate_zone a748ee1a-1d0b-4ae9-9074-279a2b6ba524 2020-10-07 00:00:00 68 outofrange a748ee1a-1d0b-4ae9-9074-279a2b6ba524 2020-10-07 00:01:00 67 outofrange a748ee1a-1d0b-4ae9-9074-279a2b6ba524 2020-10-07 00:02:00 67 outofrange FITBIT_SLEEP_SUMMARY RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP FLAG_TO_MUTATE LOCAL_DATE_TIME FLAG_TO_MUTATE LOCAL_START_DATE_TIME local_start_date_time LOCAL_END_DATE_TIME local_end_date_time DEVICE_ID device_id EFFICIENCY efficiency MINUTES_AFTER_WAKEUP minutes_after_wakeup MINUTES_ASLEEP minutes_asleep MINUTES_AWAKE minutes_awake MINUTES_TO_FALL_ASLEEP minutes_to_fall_asleep MINUTES_IN_BED minutes_in_bed IS_MAIN_SLEEP is_main_sleep TYPE type MUTATION COLUMN_MAPPINGS (None) SCRIPTS - src/data/streams/mutations/fitbit/add_local_date_time.py - src/data/streams/mutations/fitbit/add_zero_timestamp.py Note add_zero_timestamp adds an all-zero column called timestamp that will be filled in later in the pipeline by readable_time.R converting LOCAL_DATE_TIME to a unix timestamp taking into account single or multiple time zones. Fitbit API has two versions for sleep data, v1 and v1.2. We support both but ignore v1\u2019s count_awake , duration_awake , and count_awakenings , count_restless , duration_restless columns. Example of the expected raw data device_id local_start_date_time local_end_date_time efficiency minutes_after_wakeup minutes_asleep minutes_awake minutes_to_fall_asleep minutes_in_bed is_main_sleep type a748ee1a-1d0b-4ae9-9074-279a2b6ba524 2020-10-10 15:36:30 2020-10-10 16:37:00 92 0 55 5 0 60 0 classic a748ee1a-1d0b-4ae9-9074-279a2b6ba524 2020-10-10 01:46:30 2020-10-10 08:10:00 88 0 318 65 0 383 1 stages a748ee1a-1d0b-4ae9-9074-279a2b6ba524 2020-10-11 00:12:30 2020-10-11 11:47:00 89 1 562 132 0 694 1 stages a748ee1a-1d0b-4ae9-9074-279a2b6ba524 2020-10-12 01:31:00 2020-10-12 09:34:30 93 0 415 68 0 483 1 stages FITBIT_SLEEP_INTRADAY RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP FLAG_TO_MUTATE LOCAL_DATE_TIME local_date_time DEVICE_ID device_id TYPE_EPISODE_ID type_episode_id DURATION duration IS_MAIN_SLEEP is_main_sleep TYPE type LEVEL level MUTATION COLUMN_MAPPINGS (None) SCRIPTS src/data/streams/mutations/fitbit/add_zero_timestamp.py Note add_zero_timestamp adds an all-zero column called timestamp that will be filled in later in the pipeline by readable_time.R converting LOCAL_DATE_TIME to a unix timestamp taking into account single or multiple time zones. Fitbit API has two versions for sleep data, v1 and v1.2, we support both. Example of the expected raw data device_id type_episode_id local_date_time duration level is_main_sleep type a748ee1a-1d0b-4ae9-9074-279a2b6ba524 0 2020-10-10 15:36:30 60 restless 0 classic a748ee1a-1d0b-4ae9-9074-279a2b6ba524 0 2020-10-10 15:37:30 660 asleep 0 classic a748ee1a-1d0b-4ae9-9074-279a2b6ba524 0 2020-10-10 15:48:30 60 restless 0 classic a748ee1a-1d0b-4ae9-9074-279a2b6ba524 \u2026 \u2026 \u2026 \u2026 \u2026 \u2026 a748ee1a-1d0b-4ae9-9074-279a2b6ba524 1 2020-10-10 01:46:30 420 light 1 stages a748ee1a-1d0b-4ae9-9074-279a2b6ba524 1 2020-10-10 01:53:30 1230 deep 1 stages FITBIT_STEPS_SUMMARY RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP FLAG_TO_MUTATE DEVICE_ID device_id LOCAL_DATE_TIME local_date_time STEPS steps MUTATION COLUMN_MAPPINGS (None) SCRIPTS src/data/streams/mutations/fitbit/add_zero_timestamp.py Note add_zero_timestamp adds an all-zero column called timestamp that will be filled in later in the pipeline by readable_time.R converting LOCAL_DATE_TIME to a unix timestamp taking into account single or multiple time zones. Example of the expected raw data device_id local_date_time steps a748ee1a-1d0b-4ae9-9074-279a2b6ba524 2020-10-07 1775 a748ee1a-1d0b-4ae9-9074-279a2b6ba524 2020-10-08 3201 a748ee1a-1d0b-4ae9-9074-279a2b6ba524 2020-10-09 998 FITBIT_STEPS_INTRADAY RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP FLAG_TO_MUTATE DEVICE_ID device_id LOCAL_DATE_TIME local_date_time STEPS steps MUTATION COLUMN_MAPPINGS (None) SCRIPTS src/data/streams/mutations/fitbit/add_zero_timestamp.py Note add_zero_timestamp adds an all-zero column called timestamp that will be filled in later in the pipeline by readable_time.R converting LOCAL_DATE_TIME to a unix timestamp taking into account single or multiple time zones. Example of the expected raw data device_id local_date_time steps a748ee1a-1d0b-4ae9-9074-279a2b6ba524 2020-10-07 00:00:00 5 a748ee1a-1d0b-4ae9-9074-279a2b6ba524 2020-10-07 00:01:00 3 a748ee1a-1d0b-4ae9-9074-279a2b6ba524 2020-10-07 00:02:00 0","title":"Format"},{"location":"datastreams/mandatory-empatica-format/","text":"Mandatory Empatica Format \u00b6 This is a description of the format RAPIDS needs to process data for the following Empatica sensors. EMPATICA_ACCELEROMETER RAPIDS column Description TIMESTAMP An UNIX timestamp (13 digits) when a row of data was logged DEVICE_ID A string that uniquely identifies a device DOUBLE_VALUES_0 x axis of acceleration DOUBLE_VALUES_1 y axis of acceleration DOUBLE_VALUES_2 z axis of acceleration EMPATICA_HEARTRATE RAPIDS column Description TIMESTAMP An UNIX timestamp (13 digits) when a row of data was logged (automatically created by RAPIDS) DEVICE_ID A string that uniquely identifies a device HEARTRATE Intraday heartrate EMPATICA_TEMPERATURE RAPIDS column Description TIMESTAMP An UNIX timestamp (13 digits) when a row of data was logged (automatically created by RAPIDS) DEVICE_ID A string that uniquely identifies a device TEMPERATURE temperature EMPATICA_ELECTRODERMAL_ACTIVITY RAPIDS column Description TIMESTAMP An UNIX timestamp (13 digits) when a row of data was logged (automatically created by RAPIDS) DEVICE_ID A string that uniquely identifies a device ELECTRODERMAL_ACTIVITY electrical conductance EMPATICA_BLOOD_VOLUME_PULSE RAPIDS column Description TIMESTAMP An UNIX timestamp (13 digits) when a row of data was logged (automatically created by RAPIDS) DEVICE_ID A string that uniquely identifies a device BLOOD_VOLUME_PULSE blood volume pulse EMPATICA_INTER_BEAT_INTERVAL RAPIDS column Description TIMESTAMP An UNIX timestamp (13 digits) when a row of data was logged (automatically created by RAPIDS) DEVICE_ID A string that uniquely identifies a device INTER_BEAT_INTERVAL inter beat interval EMPATICA_TAGS RAPIDS column Description TIMESTAMP An UNIX timestamp (13 digits) when a row of data was logged (automatically created by RAPIDS) DEVICE_ID A string that uniquely identifies a device TAGS tags","title":"Mandatory Empatica Format"},{"location":"datastreams/mandatory-empatica-format/#mandatory-empatica-format","text":"This is a description of the format RAPIDS needs to process data for the following Empatica sensors. EMPATICA_ACCELEROMETER RAPIDS column Description TIMESTAMP An UNIX timestamp (13 digits) when a row of data was logged DEVICE_ID A string that uniquely identifies a device DOUBLE_VALUES_0 x axis of acceleration DOUBLE_VALUES_1 y axis of acceleration DOUBLE_VALUES_2 z axis of acceleration EMPATICA_HEARTRATE RAPIDS column Description TIMESTAMP An UNIX timestamp (13 digits) when a row of data was logged (automatically created by RAPIDS) DEVICE_ID A string that uniquely identifies a device HEARTRATE Intraday heartrate EMPATICA_TEMPERATURE RAPIDS column Description TIMESTAMP An UNIX timestamp (13 digits) when a row of data was logged (automatically created by RAPIDS) DEVICE_ID A string that uniquely identifies a device TEMPERATURE temperature EMPATICA_ELECTRODERMAL_ACTIVITY RAPIDS column Description TIMESTAMP An UNIX timestamp (13 digits) when a row of data was logged (automatically created by RAPIDS) DEVICE_ID A string that uniquely identifies a device ELECTRODERMAL_ACTIVITY electrical conductance EMPATICA_BLOOD_VOLUME_PULSE RAPIDS column Description TIMESTAMP An UNIX timestamp (13 digits) when a row of data was logged (automatically created by RAPIDS) DEVICE_ID A string that uniquely identifies a device BLOOD_VOLUME_PULSE blood volume pulse EMPATICA_INTER_BEAT_INTERVAL RAPIDS column Description TIMESTAMP An UNIX timestamp (13 digits) when a row of data was logged (automatically created by RAPIDS) DEVICE_ID A string that uniquely identifies a device INTER_BEAT_INTERVAL inter beat interval EMPATICA_TAGS RAPIDS column Description TIMESTAMP An UNIX timestamp (13 digits) when a row of data was logged (automatically created by RAPIDS) DEVICE_ID A string that uniquely identifies a device TAGS tags","title":"Mandatory Empatica Format"},{"location":"datastreams/mandatory-fitbit-format/","text":"Mandatory Fitbit Format \u00b6 This is a description of the format RAPIDS needs to process data for the following Fitbit sensors. FITBIT_HEARTRATE_SUMMARY RAPIDS column Description TIMESTAMP An UNIX timestamp (13 digits) when a row of data was logged (automatically created by RAPIDS) LOCAL_DATE_TIME Date time string with format yyyy-mm-dd hh:mm:ss DEVICE_ID A string that uniquely identifies a device HEARTRATE_DAILY_RESTINGHR Daily resting heartrate HEARTRATE_DAILY_CALORIESOUTOFRANGE Calories spent while heartrate was oustide a heartrate zone HEARTRATE_DAILY_CALORIESFATBURN Calories spent while heartrate was inside the fat burn zone HEARTRATE_DAILY_CALORIESCARDIO Calories spent while heartrate was inside the cardio zone HEARTRATE_DAILY_CALORIESPEAK Calories spent while heartrate was inside the peak zone FITBIT_HEARTRATE_INTRADAY RAPIDS column Description TIMESTAMP An UNIX timestamp (13 digits) when a row of data was logged (automatically created by RAPIDS) LOCAL_DATE_TIME Date time string with format yyyy-mm-dd hh:mm:ss DEVICE_ID A string that uniquely identifies a device HEARTRATE Intraday heartrate HEARTRATE_ZONE Heartrate zone that HEARTRATE belongs to. It is based on the heartrate zone ranges of each device FITBIT_SLEEP_SUMMARY RAPIDS column Description TIMESTAMP An UNIX timestamp (13 digits) when a row of data was logged (automatically created by RAPIDS) LOCAL_DATE_TIME Date time string with format yyyy-mm-dd 00:00:00 , the date is the same as the start date of a daily sleep episode if its time is after SLEEP_SUMMARY_LAST_NIGHT_END, otherwise it is the day before the start date of that sleep episode LOCAL_START_DATE_TIME Date time string with format yyyy-mm-dd hh:mm:ss representing the start of a daily sleep episode LOCAL_END_DATE_TIME Date time string with format yyyy-mm-dd hh:mm:ss representing the end of a daily sleep episode DEVICE_ID A string that uniquely identifies a device EFFICIENCY Sleep efficiency computed by fitbit as time asleep / (total time in bed - time to fall asleep) MINUTES_AFTER_WAKEUP Minutes the participant spent in bed after waking up MINUTES_ASLEEP Minutes the participant was asleep MINUTES_AWAKE Minutes the participant was awake MINUTES_TO_FALL_ASLEEP Minutes the participant spent in bed before falling asleep MINUTES_IN_BED Minutes the participant spent in bed across the sleep episode IS_MAIN_SLEEP 0 if this episode is a nap, or 1 if it is a main sleep episode TYPE stages or classic sleep data FITBIT_SLEEP_INTRADAY RAPIDS column Description TIMESTAMP An UNIX timestamp (13 digits) when a row of data was logged (automatically created by RAPIDS) LOCAL_DATE_TIME Date time string with format yyyy-mm-dd hh:mm:ss , this either is a copy of LOCAL_START_DATE_TIME or LOCAL_END_DATE_TIME depending on which column is used to assign an episode to a specific day DEVICE_ID A string that uniquely identifies a device TYPE_EPISODE_ID An id for each unique main or nap episode. Main and nap episodes have different levels, each row in this table is one of such levels, so multiple rows can have the same TYPE_EPISODE_ID DURATION Duration of the episode level in minutes IS_MAIN_SLEEP 0 if this episode level belongs to a nap, or 1 if it belongs to a main sleep episode TYPE type of level: stages or classic sleep data LEVEL For stages levels one of wake , deep , light , or rem . For classic levels one of awake , restless , and asleep FITBIT_STEPS_SUMMARY RAPIDS column Description TIMESTAMP An UNIX timestamp (13 digits) when a row of data was logged (automatically created by RAPIDS) LOCAL_DATE_TIME Date time string with format yyyy-mm-dd hh:mm:ss DEVICE_ID A string that uniquely identifies a device STEPS Daily step count FITBIT_STEPS_INTRADAY RAPIDS column Description TIMESTAMP An UNIX timestamp (13 digits) when a row of data was logged (automatically created by RAPIDS) LOCAL_DATE_TIME Date time string with format yyyy-mm-dd hh:mm:ss DEVICE_ID A string that uniquely identifies a device STEPS Intraday step count (usually every minute)","title":"Mandatory Fitbit Format"},{"location":"datastreams/mandatory-fitbit-format/#mandatory-fitbit-format","text":"This is a description of the format RAPIDS needs to process data for the following Fitbit sensors. FITBIT_HEARTRATE_SUMMARY RAPIDS column Description TIMESTAMP An UNIX timestamp (13 digits) when a row of data was logged (automatically created by RAPIDS) LOCAL_DATE_TIME Date time string with format yyyy-mm-dd hh:mm:ss DEVICE_ID A string that uniquely identifies a device HEARTRATE_DAILY_RESTINGHR Daily resting heartrate HEARTRATE_DAILY_CALORIESOUTOFRANGE Calories spent while heartrate was oustide a heartrate zone HEARTRATE_DAILY_CALORIESFATBURN Calories spent while heartrate was inside the fat burn zone HEARTRATE_DAILY_CALORIESCARDIO Calories spent while heartrate was inside the cardio zone HEARTRATE_DAILY_CALORIESPEAK Calories spent while heartrate was inside the peak zone FITBIT_HEARTRATE_INTRADAY RAPIDS column Description TIMESTAMP An UNIX timestamp (13 digits) when a row of data was logged (automatically created by RAPIDS) LOCAL_DATE_TIME Date time string with format yyyy-mm-dd hh:mm:ss DEVICE_ID A string that uniquely identifies a device HEARTRATE Intraday heartrate HEARTRATE_ZONE Heartrate zone that HEARTRATE belongs to. It is based on the heartrate zone ranges of each device FITBIT_SLEEP_SUMMARY RAPIDS column Description TIMESTAMP An UNIX timestamp (13 digits) when a row of data was logged (automatically created by RAPIDS) LOCAL_DATE_TIME Date time string with format yyyy-mm-dd 00:00:00 , the date is the same as the start date of a daily sleep episode if its time is after SLEEP_SUMMARY_LAST_NIGHT_END, otherwise it is the day before the start date of that sleep episode LOCAL_START_DATE_TIME Date time string with format yyyy-mm-dd hh:mm:ss representing the start of a daily sleep episode LOCAL_END_DATE_TIME Date time string with format yyyy-mm-dd hh:mm:ss representing the end of a daily sleep episode DEVICE_ID A string that uniquely identifies a device EFFICIENCY Sleep efficiency computed by fitbit as time asleep / (total time in bed - time to fall asleep) MINUTES_AFTER_WAKEUP Minutes the participant spent in bed after waking up MINUTES_ASLEEP Minutes the participant was asleep MINUTES_AWAKE Minutes the participant was awake MINUTES_TO_FALL_ASLEEP Minutes the participant spent in bed before falling asleep MINUTES_IN_BED Minutes the participant spent in bed across the sleep episode IS_MAIN_SLEEP 0 if this episode is a nap, or 1 if it is a main sleep episode TYPE stages or classic sleep data FITBIT_SLEEP_INTRADAY RAPIDS column Description TIMESTAMP An UNIX timestamp (13 digits) when a row of data was logged (automatically created by RAPIDS) LOCAL_DATE_TIME Date time string with format yyyy-mm-dd hh:mm:ss , this either is a copy of LOCAL_START_DATE_TIME or LOCAL_END_DATE_TIME depending on which column is used to assign an episode to a specific day DEVICE_ID A string that uniquely identifies a device TYPE_EPISODE_ID An id for each unique main or nap episode. Main and nap episodes have different levels, each row in this table is one of such levels, so multiple rows can have the same TYPE_EPISODE_ID DURATION Duration of the episode level in minutes IS_MAIN_SLEEP 0 if this episode level belongs to a nap, or 1 if it belongs to a main sleep episode TYPE type of level: stages or classic sleep data LEVEL For stages levels one of wake , deep , light , or rem . For classic levels one of awake , restless , and asleep FITBIT_STEPS_SUMMARY RAPIDS column Description TIMESTAMP An UNIX timestamp (13 digits) when a row of data was logged (automatically created by RAPIDS) LOCAL_DATE_TIME Date time string with format yyyy-mm-dd hh:mm:ss DEVICE_ID A string that uniquely identifies a device STEPS Daily step count FITBIT_STEPS_INTRADAY RAPIDS column Description TIMESTAMP An UNIX timestamp (13 digits) when a row of data was logged (automatically created by RAPIDS) LOCAL_DATE_TIME Date time string with format yyyy-mm-dd hh:mm:ss DEVICE_ID A string that uniquely identifies a device STEPS Intraday step count (usually every minute)","title":"Mandatory Fitbit Format"},{"location":"datastreams/mandatory-phone-format/","text":"Mandatory Phone Format \u00b6 This is a description of the format RAPIDS needs to process data for the following PHONE sensors. See examples in the CSV files inside rapids_example_csv.zip PHONE_ACCELEROMETER RAPIDS column Description TIMESTAMP An UNIX timestamp (13 digits) when a row of data was logged DEVICE_ID A string that uniquely identifies a device DOUBLE_VALUES_0 x axis of acceleration DOUBLE_VALUES_1 y axis of acceleration DOUBLE_VALUES_2 z axis of acceleration PHONE_ACTIVITY_RECOGNITION RAPIDS column Description TIMESTAMP An UNIX timestamp (13 digits) when a row of data was logged DEVICE_ID A string that uniquely identifies a device ACTIVITY_NAME An string that denotes current activity name: in_vehicle , on_bicycle , on_foot , still , unknown , tilting , walking or running ACTIVITY_TYPE An integer (ranged from 0 to 8) that denotes current activity type CONFIDENCE An integer (ranged from 0 to 100) that denotes the prediction accuracy PHONE_APPLICATIONS_CRASHES RAPIDS column Description TIMESTAMP An UNIX timestamp (13 digits) when a row of data was logged DEVICE_ID A string that uniquely identifies a device PACKAGE_NAME Application\u2019s package name APPLICATION_NAME Application\u2019s localized name APPLICATION_VERSION Application\u2019s version code ERROR_SHORT Short description of the error ERROR_LONG More verbose version of the error description ERROR_CONDITION 1 = code error; 2 = non-responsive (ANR error) IS_SYSTEM_APP Device\u2019s pre-installed application PHONE_APPLICATIONS_FOREGROUND RAPIDS column Description TIMESTAMP An UNIX timestamp (13 digits) when a row of data was logged DEVICE_ID A string that uniquely identifies a device PACKAGE_NAME Application\u2019s package name APPLICATION_NAME Application\u2019s localized name IS_SYSTEM_APP Device\u2019s pre-installed application PHONE_APPLICATIONS_NOTIFICATIONS RAPIDS column Description TIMESTAMP An UNIX timestamp (13 digits) when a row of data was logged DEVICE_ID A string that uniquely identifies a device PACKAGE_NAME Application\u2019s package name APPLICATION_NAME Application\u2019s localized name TEXT Notification\u2019s header text, not the content SOUND Notification\u2019s sound source (if applicable) VIBRATE Notification\u2019s vibration pattern (if applicable) DEFAULTS If notification was delivered according to device\u2019s default settings FLAGS An integer that denotes Android notification flag PHONE_BATTERY RAPIDS column Description TIMESTAMP An UNIX timestamp (13 digits) when a row of data was logged DEVICE_ID A string that uniquely identifies a device BATTERY_STATUS An integer that denotes battery status: 0 or 1 = unknown, 2 = charging, 3 = discharging, 4 = not charging, 5 = full BATTERY_LEVEL An integer that denotes battery level, between 0 and BATTERY_SCALE BATTERY_SCALE An integer that denotes the maximum battery level PHONE_BLUETOOTH RAPIDS column Description TIMESTAMP An UNIX timestamp (13 digits) when a row of data was logged DEVICE_ID A string that uniquely identifies a device BT_ADDRESS MAC address of the device\u2019s Bluetooth sensor BT_NAME User assigned name of the device\u2019s Bluetooth sensor BT_RSSI The RSSI dB to the scanned device PHONE_CALLS RAPIDS column Description TIMESTAMP An UNIX timestamp (13 digits) when a row of data was logged DEVICE_ID A string that uniquely identifies a device CALL_TYPE An integer that denotes call type: 1 = incoming, 2 = outgoing, 3 = missed CALL_DURATION Length of the call session TRACE SHA-1 one-way source/target of the call PHONE_CONVERSATION RAPIDS column Description TIMESTAMP An UNIX timestamp (13 digits) when a row of data was logged DEVICE_ID A string that uniquely identifies a device DOUBLE_ENERGY A number that denotes the amplitude of an audio sample (L2-norm of the audio frame) INFERENCE An integer (ranged from 0 to 3) that denotes the type of an audio sample: 0 = silence, 1 = noise, 2 = voice, 3 = unknown DOUBLE_CONVO_START UNIX timestamp (13 digits) of the beginning of a conversation DOUBLE_CONVO_END UNIX timestamp (13 digits) of the end of a conversation PHONE_KEYBOARD RAPIDS column Description TIMESTAMP An UNIX timestamp (13 digits) when a row of data was logged DEVICE_ID A string that uniquely identifies a device PACKAGE_NAME The application\u2019s package name of keyboard interaction BEFORE_TEXT The previous keyboard input (empty if password) CURRENT_TEXT The current keyboard input (empty if password) IS_PASSWORD An integer: 0 = not password; 1 = password PHONE_LIGHT RAPIDS column Description TIMESTAMP An UNIX timestamp (13 digits) when a row of data was logged DEVICE_ID A string that uniquely identifies a device DOUBLE_LIGHT_LUX The ambient luminance in lux units ACCURACY An integer that denotes the sensor\u2019s accuracy level: 3 = maximum accuracy, 2 = medium accuracy, 1 = low accuracy PHONE_LOCATIONS RAPIDS column Description TIMESTAMP An UNIX timestamp (13 digits) when a row of data was logged DEVICE_ID A string that uniquely identifies a device DOUBLE_LATITUDE The location\u2019s latitude, in degrees DOUBLE_LONGITUDE The location\u2019s longitude, in degrees DOUBLE_BEARING The location\u2019s bearing, in degrees DOUBLE_SPEED The speed if available, in meters/second over ground DOUBLE_ALTITUDE The altitude if available, in meters above sea level PROVIDER A string that denotes the provider: gps , fused or network ACCURACY The estimated location accuracy PHONE_LOG RAPIDS column Description TIMESTAMP An UNIX timestamp (13 digits) when a row of data was logged DEVICE_ID A string that uniquely identifies a device LOG_MESSAGE A string that denotes log message PHONE_MESSAGES RAPIDS column Description TIMESTAMP An UNIX timestamp (13 digits) when a row of data was logged DEVICE_ID A string that uniquely identifies a device MESSAGE_TYPE An integer that denotes message type: 1 = received, 2 = sent TRACE SHA-1 one-way source/target of the message PHONE_SCREEN RAPIDS column Description TIMESTAMP An UNIX timestamp (13 digits) when a row of data was logged DEVICE_ID A string that uniquely identifies a device SCREEN_STATUS An integer that denotes screen status: 0 = off, 1 = on, 2 = locked, 3 = unlocked PHONE_WIFI_CONNECTED RAPIDS column Description TIMESTAMP An UNIX timestamp (13 digits) when a row of data was logged DEVICE_ID A string that uniquely identifies a device MAC_ADDRESS Device\u2019s MAC address SSID Currently connected access point network name BSSID Currently connected access point MAC address PHONE_WIFI_VISIBLE RAPIDS column Description TIMESTAMP An UNIX timestamp (13 digits) when a row of data was logged DEVICE_ID A string that uniquely identifies a device SSID Detected access point network name BSSID Detected access point MAC address SECURITY Active security protocols FREQUENCY Wi-Fi band frequency (e.g., 2427, 5180), in Hz RSSI RSSI dB to the scanned device","title":"Mandatory Phone Format"},{"location":"datastreams/mandatory-phone-format/#mandatory-phone-format","text":"This is a description of the format RAPIDS needs to process data for the following PHONE sensors. See examples in the CSV files inside rapids_example_csv.zip PHONE_ACCELEROMETER RAPIDS column Description TIMESTAMP An UNIX timestamp (13 digits) when a row of data was logged DEVICE_ID A string that uniquely identifies a device DOUBLE_VALUES_0 x axis of acceleration DOUBLE_VALUES_1 y axis of acceleration DOUBLE_VALUES_2 z axis of acceleration PHONE_ACTIVITY_RECOGNITION RAPIDS column Description TIMESTAMP An UNIX timestamp (13 digits) when a row of data was logged DEVICE_ID A string that uniquely identifies a device ACTIVITY_NAME An string that denotes current activity name: in_vehicle , on_bicycle , on_foot , still , unknown , tilting , walking or running ACTIVITY_TYPE An integer (ranged from 0 to 8) that denotes current activity type CONFIDENCE An integer (ranged from 0 to 100) that denotes the prediction accuracy PHONE_APPLICATIONS_CRASHES RAPIDS column Description TIMESTAMP An UNIX timestamp (13 digits) when a row of data was logged DEVICE_ID A string that uniquely identifies a device PACKAGE_NAME Application\u2019s package name APPLICATION_NAME Application\u2019s localized name APPLICATION_VERSION Application\u2019s version code ERROR_SHORT Short description of the error ERROR_LONG More verbose version of the error description ERROR_CONDITION 1 = code error; 2 = non-responsive (ANR error) IS_SYSTEM_APP Device\u2019s pre-installed application PHONE_APPLICATIONS_FOREGROUND RAPIDS column Description TIMESTAMP An UNIX timestamp (13 digits) when a row of data was logged DEVICE_ID A string that uniquely identifies a device PACKAGE_NAME Application\u2019s package name APPLICATION_NAME Application\u2019s localized name IS_SYSTEM_APP Device\u2019s pre-installed application PHONE_APPLICATIONS_NOTIFICATIONS RAPIDS column Description TIMESTAMP An UNIX timestamp (13 digits) when a row of data was logged DEVICE_ID A string that uniquely identifies a device PACKAGE_NAME Application\u2019s package name APPLICATION_NAME Application\u2019s localized name TEXT Notification\u2019s header text, not the content SOUND Notification\u2019s sound source (if applicable) VIBRATE Notification\u2019s vibration pattern (if applicable) DEFAULTS If notification was delivered according to device\u2019s default settings FLAGS An integer that denotes Android notification flag PHONE_BATTERY RAPIDS column Description TIMESTAMP An UNIX timestamp (13 digits) when a row of data was logged DEVICE_ID A string that uniquely identifies a device BATTERY_STATUS An integer that denotes battery status: 0 or 1 = unknown, 2 = charging, 3 = discharging, 4 = not charging, 5 = full BATTERY_LEVEL An integer that denotes battery level, between 0 and BATTERY_SCALE BATTERY_SCALE An integer that denotes the maximum battery level PHONE_BLUETOOTH RAPIDS column Description TIMESTAMP An UNIX timestamp (13 digits) when a row of data was logged DEVICE_ID A string that uniquely identifies a device BT_ADDRESS MAC address of the device\u2019s Bluetooth sensor BT_NAME User assigned name of the device\u2019s Bluetooth sensor BT_RSSI The RSSI dB to the scanned device PHONE_CALLS RAPIDS column Description TIMESTAMP An UNIX timestamp (13 digits) when a row of data was logged DEVICE_ID A string that uniquely identifies a device CALL_TYPE An integer that denotes call type: 1 = incoming, 2 = outgoing, 3 = missed CALL_DURATION Length of the call session TRACE SHA-1 one-way source/target of the call PHONE_CONVERSATION RAPIDS column Description TIMESTAMP An UNIX timestamp (13 digits) when a row of data was logged DEVICE_ID A string that uniquely identifies a device DOUBLE_ENERGY A number that denotes the amplitude of an audio sample (L2-norm of the audio frame) INFERENCE An integer (ranged from 0 to 3) that denotes the type of an audio sample: 0 = silence, 1 = noise, 2 = voice, 3 = unknown DOUBLE_CONVO_START UNIX timestamp (13 digits) of the beginning of a conversation DOUBLE_CONVO_END UNIX timestamp (13 digits) of the end of a conversation PHONE_KEYBOARD RAPIDS column Description TIMESTAMP An UNIX timestamp (13 digits) when a row of data was logged DEVICE_ID A string that uniquely identifies a device PACKAGE_NAME The application\u2019s package name of keyboard interaction BEFORE_TEXT The previous keyboard input (empty if password) CURRENT_TEXT The current keyboard input (empty if password) IS_PASSWORD An integer: 0 = not password; 1 = password PHONE_LIGHT RAPIDS column Description TIMESTAMP An UNIX timestamp (13 digits) when a row of data was logged DEVICE_ID A string that uniquely identifies a device DOUBLE_LIGHT_LUX The ambient luminance in lux units ACCURACY An integer that denotes the sensor\u2019s accuracy level: 3 = maximum accuracy, 2 = medium accuracy, 1 = low accuracy PHONE_LOCATIONS RAPIDS column Description TIMESTAMP An UNIX timestamp (13 digits) when a row of data was logged DEVICE_ID A string that uniquely identifies a device DOUBLE_LATITUDE The location\u2019s latitude, in degrees DOUBLE_LONGITUDE The location\u2019s longitude, in degrees DOUBLE_BEARING The location\u2019s bearing, in degrees DOUBLE_SPEED The speed if available, in meters/second over ground DOUBLE_ALTITUDE The altitude if available, in meters above sea level PROVIDER A string that denotes the provider: gps , fused or network ACCURACY The estimated location accuracy PHONE_LOG RAPIDS column Description TIMESTAMP An UNIX timestamp (13 digits) when a row of data was logged DEVICE_ID A string that uniquely identifies a device LOG_MESSAGE A string that denotes log message PHONE_MESSAGES RAPIDS column Description TIMESTAMP An UNIX timestamp (13 digits) when a row of data was logged DEVICE_ID A string that uniquely identifies a device MESSAGE_TYPE An integer that denotes message type: 1 = received, 2 = sent TRACE SHA-1 one-way source/target of the message PHONE_SCREEN RAPIDS column Description TIMESTAMP An UNIX timestamp (13 digits) when a row of data was logged DEVICE_ID A string that uniquely identifies a device SCREEN_STATUS An integer that denotes screen status: 0 = off, 1 = on, 2 = locked, 3 = unlocked PHONE_WIFI_CONNECTED RAPIDS column Description TIMESTAMP An UNIX timestamp (13 digits) when a row of data was logged DEVICE_ID A string that uniquely identifies a device MAC_ADDRESS Device\u2019s MAC address SSID Currently connected access point network name BSSID Currently connected access point MAC address PHONE_WIFI_VISIBLE RAPIDS column Description TIMESTAMP An UNIX timestamp (13 digits) when a row of data was logged DEVICE_ID A string that uniquely identifies a device SSID Detected access point network name BSSID Detected access point MAC address SECURITY Active security protocols FREQUENCY Wi-Fi band frequency (e.g., 2427, 5180), in Hz RSSI RSSI dB to the scanned device","title":"Mandatory Phone Format"},{"location":"developers/documentation/","text":"Documentation \u00b6 We use mkdocs with the material theme to write these docs. Whenever you make any changes, just push them back to the repo and the documentation will be deployed automatically. Set up development environment \u00b6 Make sure your conda environment is active pip install mkdocs pip install mkdocs-material Preview \u00b6 Run the following command in RAPIDS root folder and go to http://127.0.0.1:8000 : mkdocs serve File Structure \u00b6 The documentation config file is /mkdocs.yml , if you are adding new .md files to the docs modify the nav attribute at the bottom of that file. You can use the hierarchy there to find all the files that appear in the documentation. Reference \u00b6 Check this page to get familiar with the different visual elements we can use in the docs (admonitions, code blocks, tables, etc.) You can also refer to /docs/setup/installation.md and /docs/setup/configuration.md to see practical examples of these elements. Hint Any links to internal pages should be relative to the current page. For example, any link from this page (documentation) which is inside ./developers should begin with ../ to go one folder level up like: [ mylink ]( ../setup/installation.md ) Extras \u00b6 You can insert emojis using this syntax :[SOURCE]-[ICON_NAME] from the following sources: https://materialdesignicons.com/ https://fontawesome.com/icons/tasks?style=solid https://primer.style/octicons/ You can use this page to create markdown tables more easily","title":"Documentation"},{"location":"developers/documentation/#documentation","text":"We use mkdocs with the material theme to write these docs. Whenever you make any changes, just push them back to the repo and the documentation will be deployed automatically.","title":"Documentation"},{"location":"developers/documentation/#set-up-development-environment","text":"Make sure your conda environment is active pip install mkdocs pip install mkdocs-material","title":"Set up development environment"},{"location":"developers/documentation/#preview","text":"Run the following command in RAPIDS root folder and go to http://127.0.0.1:8000 : mkdocs serve","title":"Preview"},{"location":"developers/documentation/#file-structure","text":"The documentation config file is /mkdocs.yml , if you are adding new .md files to the docs modify the nav attribute at the bottom of that file. You can use the hierarchy there to find all the files that appear in the documentation.","title":"File Structure"},{"location":"developers/documentation/#reference","text":"Check this page to get familiar with the different visual elements we can use in the docs (admonitions, code blocks, tables, etc.) You can also refer to /docs/setup/installation.md and /docs/setup/configuration.md to see practical examples of these elements. Hint Any links to internal pages should be relative to the current page. For example, any link from this page (documentation) which is inside ./developers should begin with ../ to go one folder level up like: [ mylink ]( ../setup/installation.md )","title":"Reference"},{"location":"developers/documentation/#extras","text":"You can insert emojis using this syntax :[SOURCE]-[ICON_NAME] from the following sources: https://materialdesignicons.com/ https://fontawesome.com/icons/tasks?style=solid https://primer.style/octicons/ You can use this page to create markdown tables more easily","title":"Extras"},{"location":"developers/git-flow/","text":"Git Flow \u00b6 We use the develop/master variation of the OneFlow git flow Add New Features \u00b6 We use feature (topic) branches to implement new features Internal Developer You are an internal developer if you have writing permissions to the repository. Most feature branches are never pushed to the repo, only do so if you expect that its development will take days (to avoid losing your work if you computer is damaged). Otherwise follow the following instructions to locally rebase your feature branch into develop and push those rebased changes online. Starting your feature branch Pull the latest develop git checkout develop git pull Create your feature branch git checkout -b feature/feature1 Add, modify or delete the necessary files to add your new feature Update the change log ( docs/change-log.md ) Stage and commit your changes using VS Code git GUI or the following commands git add modified-file1 modified-file2 git commit -m \"Add my new feature\" # use a concise description Merging back your feature branch If your changes took time to be implemented it is possible that there are new commits in our develop branch, so we need to rebase your feature branch. Fetch the latest changes to develop git fetch origin develop Rebase your feature branch git checkout feature/feature1 git rebase -i develop Integrate your new feature to develop git checkout develop git merge --no-ff feature/feature1 # (use the default merge message) git push origin develop git branch -d feature/feature1 External Developer You are an external developer if you do NOT have writing permissions to the repository. Starting your feature branch Fork and clone our repository on Github Switch to the latest develop git checkout develop Create your feature branch git checkout -b feature/external-test Add, modify or delete the necessary files to add your new feature Stage and commit your changes using VS Code git GUI or the following commands git add modified-file1 modified-file2 git commit -m \"Add my new feature\" # use a concise description Merging back your feature branch If your changes took time to be implemented, it is possible that there are new commits in our develop branch, so we need to rebase your feature branch. Add our repo as another remote git remote add upstream https://github.com/carissalow/rapids/ Fetch the latest changes to develop git fetch upstream develop Rebase your feature branch git checkout feature/external-test git rebase -i develop Push your feature branch online git push --set-upstream origin feature/external-test Open a pull request to the develop branch using Github\u2019s GUI Release a New Version \u00b6 Pull the latest develop git checkout develop git pull Create a new release branch git describe --abbrev = 0 --tags # Bump the release (0.1.0 to 0.2.0 => NEW_HOTFIX) git checkout -b release/v [ NEW_RELEASE ] develop Add new tag git tag v [ NEW_RELEASE ] Merge and push the release branch git checkout develop git merge release/v [ NEW_RELEASE ] git push --tags origin develop git branch -d release/v [ NEW_RELEASE ] Fast-forward master git checkout master git merge --ff-only develop git push Go to GitHub and create a new release based on the newest tag v[NEW_RELEASE] (remember to add the change log) Release a Hotfix \u00b6 Pull the latest master git checkout master git pull Start a hotfix branch git describe --abbrev = 0 --tags # Bump the hotfix (0.1.0 to 0.1.1 => NEW_HOTFIX) git checkout -b hotfix/v [ NEW_HOTFIX ] master Fix whatever needs to be fixed Update the change log Tag and merge the hotfix git tag v [ NEW_HOTFIX ] git checkout develop git merge hotfix/v [ NEW_HOTFIX ] git push --tags origin develop git branch -d hotfix/v [ NEW_HOTFIX ] Fast-forward master git checkout master git merge --ff-only v[NEW_HOTFIX] git push Go to GitHub and create a new release based on the newest tag v[NEW_HOTFIX] (remember to add the change log)","title":"Git Flow"},{"location":"developers/git-flow/#git-flow","text":"We use the develop/master variation of the OneFlow git flow","title":"Git Flow"},{"location":"developers/git-flow/#add-new-features","text":"We use feature (topic) branches to implement new features Internal Developer You are an internal developer if you have writing permissions to the repository. Most feature branches are never pushed to the repo, only do so if you expect that its development will take days (to avoid losing your work if you computer is damaged). Otherwise follow the following instructions to locally rebase your feature branch into develop and push those rebased changes online. Starting your feature branch Pull the latest develop git checkout develop git pull Create your feature branch git checkout -b feature/feature1 Add, modify or delete the necessary files to add your new feature Update the change log ( docs/change-log.md ) Stage and commit your changes using VS Code git GUI or the following commands git add modified-file1 modified-file2 git commit -m \"Add my new feature\" # use a concise description Merging back your feature branch If your changes took time to be implemented it is possible that there are new commits in our develop branch, so we need to rebase your feature branch. Fetch the latest changes to develop git fetch origin develop Rebase your feature branch git checkout feature/feature1 git rebase -i develop Integrate your new feature to develop git checkout develop git merge --no-ff feature/feature1 # (use the default merge message) git push origin develop git branch -d feature/feature1 External Developer You are an external developer if you do NOT have writing permissions to the repository. Starting your feature branch Fork and clone our repository on Github Switch to the latest develop git checkout develop Create your feature branch git checkout -b feature/external-test Add, modify or delete the necessary files to add your new feature Stage and commit your changes using VS Code git GUI or the following commands git add modified-file1 modified-file2 git commit -m \"Add my new feature\" # use a concise description Merging back your feature branch If your changes took time to be implemented, it is possible that there are new commits in our develop branch, so we need to rebase your feature branch. Add our repo as another remote git remote add upstream https://github.com/carissalow/rapids/ Fetch the latest changes to develop git fetch upstream develop Rebase your feature branch git checkout feature/external-test git rebase -i develop Push your feature branch online git push --set-upstream origin feature/external-test Open a pull request to the develop branch using Github\u2019s GUI","title":"Add New Features"},{"location":"developers/git-flow/#release-a-new-version","text":"Pull the latest develop git checkout develop git pull Create a new release branch git describe --abbrev = 0 --tags # Bump the release (0.1.0 to 0.2.0 => NEW_HOTFIX) git checkout -b release/v [ NEW_RELEASE ] develop Add new tag git tag v [ NEW_RELEASE ] Merge and push the release branch git checkout develop git merge release/v [ NEW_RELEASE ] git push --tags origin develop git branch -d release/v [ NEW_RELEASE ] Fast-forward master git checkout master git merge --ff-only develop git push Go to GitHub and create a new release based on the newest tag v[NEW_RELEASE] (remember to add the change log)","title":"Release a New Version"},{"location":"developers/git-flow/#release-a-hotfix","text":"Pull the latest master git checkout master git pull Start a hotfix branch git describe --abbrev = 0 --tags # Bump the hotfix (0.1.0 to 0.1.1 => NEW_HOTFIX) git checkout -b hotfix/v [ NEW_HOTFIX ] master Fix whatever needs to be fixed Update the change log Tag and merge the hotfix git tag v [ NEW_HOTFIX ] git checkout develop git merge hotfix/v [ NEW_HOTFIX ] git push --tags origin develop git branch -d hotfix/v [ NEW_HOTFIX ] Fast-forward master git checkout master git merge --ff-only v[NEW_HOTFIX] git push Go to GitHub and create a new release based on the newest tag v[NEW_HOTFIX] (remember to add the change log)","title":"Release a Hotfix"},{"location":"developers/remote-support/","text":"Remote Support \u00b6 We use the Live Share extension of Visual Studio Code to debug bugs when sharing data or database credentials is not possible. Install Visual Studio Code Open your RAPIDS root folder in a new VSCode window Open a new terminal in Visual Studio Code Terminal > New terminal Install the Live Share extension pack Press Ctrl + P or Cmd + P and run this command: >live share: start collaboration session Follow the instructions and share the session link you receive","title":"Remote Support"},{"location":"developers/remote-support/#remote-support","text":"We use the Live Share extension of Visual Studio Code to debug bugs when sharing data or database credentials is not possible. Install Visual Studio Code Open your RAPIDS root folder in a new VSCode window Open a new terminal in Visual Studio Code Terminal > New terminal Install the Live Share extension pack Press Ctrl + P or Cmd + P and run this command: >live share: start collaboration session Follow the instructions and share the session link you receive","title":"Remote Support"},{"location":"developers/test-cases/","text":"Test Cases \u00b6 Along with the continued development and the addition of new sensors and features to the RAPIDS pipeline, tests for the currently available sensors and features are being implemented. Since this is a Work In Progress this page will be updated with the list of sensors and features for which testing is available. For each of the sensors listed a description of the data used for testing (test cases) are outline. Currently for all intent and testing purposes the tests/data/raw/test01/ contains all the test data files for testing android data formats and tests/data/raw/test02/ contains all the test data files for testing iOS data formats. It follows that the expected (verified output) are contained in the tests/data/processed/test01/ and tests/data/processed/test02/ for Android and iOS respectively. tests/data/raw/test03/ and tests/data/raw/test04/ contain data files for testing empty raw data files for android and iOS respectively. The following is a list of the sensors that testing is currently available. Sensor Provider Periodic Frequency Event Phone Accelerometer Panda N N N Phone Accelerometer RAPIDS N N N Phone Activity Recognition RAPIDS N N N Phone Applications Foreground RAPIDS N N N Phone Battery RAPIDS Y Y N Phone Bluetooth Doryab N N N Phone Bluetooth RAPIDS Y Y Y Phone Calls RAPIDS Y Y N Phone Conversation RAPIDS Y Y N Phone Data Yield RAPIDS N N N Phone Light RAPIDS Y Y N Phone Locations Doryab N N N Phone Locations Barnett N N N Phone Messages RAPIDS Y Y N Phone Screen RAPIDS Y N N Phone WiFi Connected RAPIDS Y Y N Phone WiFi Visible RAPIDS Y Y N Fitbit Calories Intraday RAPIDS Y Y Y Fitbit Data Yield RAPIDS N N N Fitbit Heart Rate Summary RAPIDS N N N Fitbit Heart Rate Intraday RAPIDS N N N Fitbit Sleep Summary RAPIDS N N N Fitbit Sleep Intraday RAPIDS Y Y Y Fitbit Sleep Intraday PRICE Y Y Y Fitbit Steps Summary RAPIDS N N N Fitbit Steps Intraday RAPIDS N N N Messages (SMS) \u00b6 The raw message data file contains data for 2 separate days. The data for the first day contains records 5 records for every epoch . The second day's data contains 6 records for each of only 2 epoch (currently morning and evening ) The raw message data contains records for both message_types (i.e. recieved and sent ) in both days in all epochs. The number records with each message_types per epoch is randomly distributed There is at least one records with each message_types per epoch. There is one raw message data file each, as described above, for testing both iOS and Android data. There is also an additional empty data file for both android and iOS for testing empty data files Calls \u00b6 Due to the difference in the format of the raw call data for iOS and Android the following is the expected results the calls_with_datetime_unified.csv . This would give a better idea of the use cases being tested since the calls_with_datetime_unified.csv would make both the iOS and Android data comparable. The call data would contain data for 2 days. The data for the first day contains 6 records for every epoch . The second day's data contains 6 records for each of only 2 epoch (currently morning and evening ) The call data contains records for all call_types (i.e. incoming , outgoing and missed ) in both days in all epochs. The number records with each of the call_types per epoch is randomly distributed. There is at least one records with each call_types per epoch. There is one call data file each, as described above, for testing both iOS and Android data. There is also an additional empty data file for both android and iOS for testing empty data files Screen \u00b6 Due to the difference in the format of the raw screen data for iOS and Android the following is the expected results the screen_deltas.csv . This would give a better idea of the use cases being tested since the screen_eltas.csv would make both the iOS and Android data comparable These files are used to calculate the features for the screen sensor The screen delta data file contains data for 1 day. The screen delta data contains 1 record to represent an unlock episode that falls within an epoch for every epoch . The screen delta data contains 1 record to represent an unlock episode that falls across the boundary of 2 epochs. Namely the unlock episode starts in one epoch and ends in the next, thus there is a record for unlock episodes that fall across night to morning , morning to afternoon and finally afternoon to night The testing is done for unlock episode_type. There is one screen data file each for testing both iOS and Android data formats. There is also an additional empty data file for both android and iOS for testing empty data files Battery \u00b6 Due to the difference in the format of the raw battery data for iOS and Android as well as versions of iOS the following is the expected results the battery_deltas.csv . This would give a better idea of the use cases being tested since the battery_deltas.csv would make both the iOS and Android data comparable. These files are used to calculate the features for the battery sensor. The battery delta data file contains data for 1 day. The battery delta data contains 1 record each for a charging and discharging episode that falls within an epoch for every epoch . Thus, for the daily epoch there would be multiple charging and discharging episodes Since either a charging episode or a discharging episode and not both can occur across epochs, in order to test episodes that occur across epochs alternating episodes of charging and discharging episodes that fall across night to morning , morning to afternoon and finally afternoon to night are present in the battery delta data. This starts with a discharging episode that begins in night and end in morning . There is one battery data file each, for testing both iOS and Android data formats. There is also an additional empty data file for both android and iOS for testing empty data files Bluetooth \u00b6 The raw Bluetooth data file contains data for 1 day. The raw Bluetooth data contains at least 2 records for each epoch . Each epoch has a record with a timestamp for the beginning boundary for that epoch and a record with a timestamp for the ending boundary for that epoch . (e.g. For the morning epoch there is a record with a timestamp for 6:00AM and another record with a timestamp for 11:59:59AM . These are to test edge cases) An option of 5 Bluetooth devices are randomly distributed throughout the data records. There is one raw Bluetooth data file each, for testing both iOS and Android data formats. There is also an additional empty data file for both android and iOS for testing empty data files. WIFI \u00b6 There are 2 data files ( wifi_raw.csv and sensor_wifi_raw.csv ) for each fake participant for each phone platform. The raw WIFI data files contain data for 1 day. The sensor_wifi_raw.csv data contains at least 2 records for each epoch . Each epoch has a record with a timestamp for the beginning boundary for that epoch and a record with a timestamp for the ending boundary for that epoch . (e.g. For the morning epoch there is a record with a timestamp for 6:00AM and another record with a timestamp for 11:59:59AM . These are to test edge cases) The wifi_raw.csv data contains 3 records with random timestamps for each epoch to represent visible broadcasting WIFI network. This file is empty for the iOS phone testing data. An option of 10 access point devices is randomly distributed throughout the data records. 5 each for sensor_wifi_raw.csv and wifi_raw.csv . There data files for testing both iOS and Android data formats. There are also additional empty data files for both android and iOS for testing empty data files. Light \u00b6 The raw light data file contains data for 1 day. The raw light data contains 3 or 4 rows of data for each epoch except night . The single row of data for night is for testing features for single values inputs. (Example testing the standard deviation of one input value) Since light is only available for Android there is only one file that contains data for Android. All other files (i.e. for iPhone) are empty data files. Locations \u00b6 Description The participant\u2019s home location is (latitude=1, longitude=1). From Sat 10:56:00 to Sat 11:04:00, the center of the cluster is (latitude=-100, longitude=-100). From Sun 03:30:00 to Sun 03:47:00, the center of the cluster is (latitude=1, longitude=1). Home location is extracted from this period. From Sun 11:30:00 to Sun 11:38:00, the center of the cluster is (latitude=100, longitude=100). Application Foreground \u00b6 The raw application foreground data file contains data for 1 day. The raw application foreground data contains 7 - 9 rows of data for each epoch . The records for each epoch contains apps that are randomly selected from a list of apps that are from the MULTIPLE_CATEGORIES and SINGLE_CATEGORIES (See testing_config.yaml ). There are also records in each epoch that have apps randomly selected from a list of apps that are from the EXCLUDED_CATEGORIES and EXCLUDED_APPS . This is to test that these apps are actually being excluded from the calculations of features. There are also records to test SINGLE_APPS calculations. Since application foreground is only available for Android there is only one file that contains data for Android. All other files (i.e. for iPhone) are empty data files. Activity Recognition \u00b6 The raw Activity Recognition data file contains data for 1 day. The raw Activity Recognition data each epoch period contains rows that records 2 - 5 different activity_types . The is such that durations of activities can be tested. Additionally, there are records that mimic the duration of an activity over the time boundary of neighboring epochs. (For example, there a set of records that mimic the participant in_vehicle from afternoon into evening ) There is one file each with raw Activity Recognition data for testing both iOS and Android data formats. (plugin_google_activity_recognition_raw.csv for android and plugin_ios_activity_recognition_raw.csv for iOS) There is also an additional empty data file for both android and iOS for testing empty data files. Conversation \u00b6 The raw conversation data file contains data for 2 day. The raw conversation data contains records with a sample of both datatypes (i.e. voice/noise = 0 , and conversation = 2 ) as well as rows with for samples of each of the inference values (i.e. silence = 0 , noise = 1 , voice = 2 , and unknown = 3 ) for each epoch . The different datatype and inference records are randomly distributed throughout the epoch . Additionally there are 2 - 5 records for conversations ( datatype = 2, and inference = -1) in each epoch and for each epoch except night, there is a conversation record that has a double_convo_start timestamp that is from the previous epoch . This is to test the calculations of features across epochs . There is a raw conversation data file for both android and iOS platforms ( plugin_studentlife_audio_android_raw.csv and plugin_studentlife_audio_raw.csv respectively). Finally, there are also additional empty data files for both android and iOS for testing empty data files Keyboard \u00b6 The raw keyboard data file contains data for 4 days. The raw keyboard data contains records with difference in timestamp ranging from milliseconds to seconds. With difference in timestamps between consecutive records more than 5 seconds helps us to create separate sessions within the usage of the same app. This helps to verify the case where sessions have to be different. The raw keyboard data contains records where the difference in text is less than 5 seconds which makes it into 1 session but because of difference of app new session starts. This edge case determines the behaviour within particular app and also within 5 seconds. The raw keyboard data also contains the records where length of current_text varies between consecutive rows. This helps us to tests on the cases where input text is entered by auto-suggested or auto-correct operations. One three-minute episode with a 1-minute row on Sun 08:59:54.65 and 09:00:00,another on Sun 12:01:02 that are considering a single episode in multi-timezone event segments to showcase how inferring time zone data for Keyboard from phone data can produce inaccurate results around the tz change. This happens because the device was on LA time until 11:59 and switched to NY time at 12pm, in terms of actual time 09 am LA and 12 pm NY represent the same moment in time so 09:00 LA and 12:01 NY are consecutive minutes. Fitbit Calories Intraday \u00b6 Description A five-minute sedentary episode on Fri 11:00:00 A one-minute sedentary episode on Sun 02:00:00. It exists in November but not in February in STZ A five-minute sedentary episode on Fri 11:58:00. It is split within two 30-min segments and the morning A three-minute lightly active episode on Fri 11:10:00, a one-minute at 11:18:00 and a one-minute 11:24:00. These check for start and end times of first/last/longest episode A three-minute fairly active episode on Fri 11:40:00, a one-minute at 11:48:00 and a one-minute 11:54:00. These check for start and end times of first/last/longest episode A three-minute very active episode on Fri 12:10:00, a one-minute at 12:18:00 and a one-minute 12:24:00. These check for start and end times of first/last/longest episode A eight-minute MVPA episode with intertwined fairly and very active rows on Fri 12:30:00 The above episodes contain six higmet (>= 3 MET) episodes and nine lowmet episodes. One two-minute sedentary episode with a 1-minute row on Sun 09:00:00 and another on Sun 12:01:01 that are considering a single episode in multi-timezone event segments to showcase how inferring time zone data for Fitbit from phone data can produce inaccurate results around the tz change. This happens because the device was on LA time until 11:59 and switched to NY time at 12pm, in terms of actual time 09 am LA and 12 pm NY represent the same moment in time so 09:00 LA and 12:01 NY are consecutive minutes. A three-minute sedentary episode on Sat 08:59 that will be ignored for multi-timezone event segments. A three-minute sedentary episode on Sat 12:59 of which the first minute will be ignored for multi-timezone event segments since the test segment starts at 13:00 A three-minute sedentary episode on Sat 16:00 A four-minute sedentary episode on Sun 10:01 that will be ignored for Novembers\u2019s multi-timezone event segments since the test segment ends at 10am on that weekend. A three-minute very active episode on Sat 16:03. This episode and the one at 16:00 are counted as one for lowmet episodes Checklist time segment single tz multi tz platform 30min OK OK fitbit morning OK OK fitbit daily OK OK fitbit threeday OK OK fitbit weekend OK OK fitbit beforeMarchEvent OK OK fitbit beforeNovemberEvent OK OK fitbit Fitbit Sleep Summary \u00b6 Description A main sleep episode that starts on Fri 20:00:00 and ends on Sat 02:00:00. This episode starts after 11am (Last Night End) which will be considered as today\u2019s (Fri) data. A nap that starts on Sat 04:00:00 and ends on Sat 06:00:00. This episode starts before 11am (Last Night End) which will be considered as yesterday\u2019s (Fri) data. A nap that starts on Sat 13:00:00 and ends on Sat 15:00:00. This episode starts after 11am (Last Night End) which will be considered as today\u2019s (Sat) data. A main sleep that starts on Sun 01:00:00 and ends on Sun 12:00:00. This episode starts before 11am (Last Night End) which will be considered as yesterday\u2019s (Sat) data. A main sleep that starts on Sun 23:00:00 and ends on Mon 07:00:00. This episode starts after 11am (Last Night End) which will be considered as today\u2019s (Sun) data. Any segment shorter than one day will be ignored for sleep RAPIDS features. Checklist time segment single tz multi tz platform 30min OK OK fitbit morning OK OK fitbit daily OK OK fitbit threeday OK OK fitbit weekend OK OK fitbit beforeMarchEvent OK OK fitbit beforeNovemberEvent OK OK fitbit Fitbit Sleep Intraday \u00b6 Description A five-minute main sleep episode with asleep-classic level on Fri 11:00:00. An eight-hour main sleep episode on Fri 17:00:00. It is split into 2 parts for daily segment: a seven-hour sleep episode on Fri 17:00:00 and an one-hour sleep episode on Sat 00:00:00. A two-hour nap on Sat 01:00:00 that will be ignored for main sleep features. An one-hour nap on Sat 13:00:00 that will be ignored for main sleep features. An eight-hour main sleep episode on Sat 22:00:00. This episode ends on Sun 08:00:00 (NY) for March and Sun 06:00:00 (NY) for Novembers due to daylight savings. It will be considered for beforeMarchEvent segment and ignored for beforeNovemberEvent segment. A nine-hour main sleep episode on Sun 11:00:00. Start time will be assigned as NY time zone and converted to 14:00:00. A seven-hour main sleep episode on Mon 06:00:00. This episode will be split into two parts: a five-hour sleep episode on Mon 06:00:00 and a two-hour sleep episode on Mon 11:00:00. The first part will be discarded as it is before 11am (Last Night End) Any segment shorter than one day will be ignored for sleep PRICE features. Checklist time segment single tz multi tz platform 30min OK OK fitbit morning OK OK fitbit daily OK OK fitbit threeday OK OK fitbit weekend OK OK fitbit beforeMarchEvent OK OK fitbit beforeNovemberEvent OK OK fitbit","title":"Test cases"},{"location":"developers/test-cases/#test-cases","text":"Along with the continued development and the addition of new sensors and features to the RAPIDS pipeline, tests for the currently available sensors and features are being implemented. Since this is a Work In Progress this page will be updated with the list of sensors and features for which testing is available. For each of the sensors listed a description of the data used for testing (test cases) are outline. Currently for all intent and testing purposes the tests/data/raw/test01/ contains all the test data files for testing android data formats and tests/data/raw/test02/ contains all the test data files for testing iOS data formats. It follows that the expected (verified output) are contained in the tests/data/processed/test01/ and tests/data/processed/test02/ for Android and iOS respectively. tests/data/raw/test03/ and tests/data/raw/test04/ contain data files for testing empty raw data files for android and iOS respectively. The following is a list of the sensors that testing is currently available. Sensor Provider Periodic Frequency Event Phone Accelerometer Panda N N N Phone Accelerometer RAPIDS N N N Phone Activity Recognition RAPIDS N N N Phone Applications Foreground RAPIDS N N N Phone Battery RAPIDS Y Y N Phone Bluetooth Doryab N N N Phone Bluetooth RAPIDS Y Y Y Phone Calls RAPIDS Y Y N Phone Conversation RAPIDS Y Y N Phone Data Yield RAPIDS N N N Phone Light RAPIDS Y Y N Phone Locations Doryab N N N Phone Locations Barnett N N N Phone Messages RAPIDS Y Y N Phone Screen RAPIDS Y N N Phone WiFi Connected RAPIDS Y Y N Phone WiFi Visible RAPIDS Y Y N Fitbit Calories Intraday RAPIDS Y Y Y Fitbit Data Yield RAPIDS N N N Fitbit Heart Rate Summary RAPIDS N N N Fitbit Heart Rate Intraday RAPIDS N N N Fitbit Sleep Summary RAPIDS N N N Fitbit Sleep Intraday RAPIDS Y Y Y Fitbit Sleep Intraday PRICE Y Y Y Fitbit Steps Summary RAPIDS N N N Fitbit Steps Intraday RAPIDS N N N","title":"Test Cases"},{"location":"developers/test-cases/#messages-sms","text":"The raw message data file contains data for 2 separate days. The data for the first day contains records 5 records for every epoch . The second day's data contains 6 records for each of only 2 epoch (currently morning and evening ) The raw message data contains records for both message_types (i.e. recieved and sent ) in both days in all epochs. The number records with each message_types per epoch is randomly distributed There is at least one records with each message_types per epoch. There is one raw message data file each, as described above, for testing both iOS and Android data. There is also an additional empty data file for both android and iOS for testing empty data files","title":"Messages (SMS)"},{"location":"developers/test-cases/#calls","text":"Due to the difference in the format of the raw call data for iOS and Android the following is the expected results the calls_with_datetime_unified.csv . This would give a better idea of the use cases being tested since the calls_with_datetime_unified.csv would make both the iOS and Android data comparable. The call data would contain data for 2 days. The data for the first day contains 6 records for every epoch . The second day's data contains 6 records for each of only 2 epoch (currently morning and evening ) The call data contains records for all call_types (i.e. incoming , outgoing and missed ) in both days in all epochs. The number records with each of the call_types per epoch is randomly distributed. There is at least one records with each call_types per epoch. There is one call data file each, as described above, for testing both iOS and Android data. There is also an additional empty data file for both android and iOS for testing empty data files","title":"Calls"},{"location":"developers/test-cases/#screen","text":"Due to the difference in the format of the raw screen data for iOS and Android the following is the expected results the screen_deltas.csv . This would give a better idea of the use cases being tested since the screen_eltas.csv would make both the iOS and Android data comparable These files are used to calculate the features for the screen sensor The screen delta data file contains data for 1 day. The screen delta data contains 1 record to represent an unlock episode that falls within an epoch for every epoch . The screen delta data contains 1 record to represent an unlock episode that falls across the boundary of 2 epochs. Namely the unlock episode starts in one epoch and ends in the next, thus there is a record for unlock episodes that fall across night to morning , morning to afternoon and finally afternoon to night The testing is done for unlock episode_type. There is one screen data file each for testing both iOS and Android data formats. There is also an additional empty data file for both android and iOS for testing empty data files","title":"Screen"},{"location":"developers/test-cases/#battery","text":"Due to the difference in the format of the raw battery data for iOS and Android as well as versions of iOS the following is the expected results the battery_deltas.csv . This would give a better idea of the use cases being tested since the battery_deltas.csv would make both the iOS and Android data comparable. These files are used to calculate the features for the battery sensor. The battery delta data file contains data for 1 day. The battery delta data contains 1 record each for a charging and discharging episode that falls within an epoch for every epoch . Thus, for the daily epoch there would be multiple charging and discharging episodes Since either a charging episode or a discharging episode and not both can occur across epochs, in order to test episodes that occur across epochs alternating episodes of charging and discharging episodes that fall across night to morning , morning to afternoon and finally afternoon to night are present in the battery delta data. This starts with a discharging episode that begins in night and end in morning . There is one battery data file each, for testing both iOS and Android data formats. There is also an additional empty data file for both android and iOS for testing empty data files","title":"Battery"},{"location":"developers/test-cases/#bluetooth","text":"The raw Bluetooth data file contains data for 1 day. The raw Bluetooth data contains at least 2 records for each epoch . Each epoch has a record with a timestamp for the beginning boundary for that epoch and a record with a timestamp for the ending boundary for that epoch . (e.g. For the morning epoch there is a record with a timestamp for 6:00AM and another record with a timestamp for 11:59:59AM . These are to test edge cases) An option of 5 Bluetooth devices are randomly distributed throughout the data records. There is one raw Bluetooth data file each, for testing both iOS and Android data formats. There is also an additional empty data file for both android and iOS for testing empty data files.","title":"Bluetooth"},{"location":"developers/test-cases/#wifi","text":"There are 2 data files ( wifi_raw.csv and sensor_wifi_raw.csv ) for each fake participant for each phone platform. The raw WIFI data files contain data for 1 day. The sensor_wifi_raw.csv data contains at least 2 records for each epoch . Each epoch has a record with a timestamp for the beginning boundary for that epoch and a record with a timestamp for the ending boundary for that epoch . (e.g. For the morning epoch there is a record with a timestamp for 6:00AM and another record with a timestamp for 11:59:59AM . These are to test edge cases) The wifi_raw.csv data contains 3 records with random timestamps for each epoch to represent visible broadcasting WIFI network. This file is empty for the iOS phone testing data. An option of 10 access point devices is randomly distributed throughout the data records. 5 each for sensor_wifi_raw.csv and wifi_raw.csv . There data files for testing both iOS and Android data formats. There are also additional empty data files for both android and iOS for testing empty data files.","title":"WIFI"},{"location":"developers/test-cases/#light","text":"The raw light data file contains data for 1 day. The raw light data contains 3 or 4 rows of data for each epoch except night . The single row of data for night is for testing features for single values inputs. (Example testing the standard deviation of one input value) Since light is only available for Android there is only one file that contains data for Android. All other files (i.e. for iPhone) are empty data files.","title":"Light"},{"location":"developers/test-cases/#locations","text":"Description The participant\u2019s home location is (latitude=1, longitude=1). From Sat 10:56:00 to Sat 11:04:00, the center of the cluster is (latitude=-100, longitude=-100). From Sun 03:30:00 to Sun 03:47:00, the center of the cluster is (latitude=1, longitude=1). Home location is extracted from this period. From Sun 11:30:00 to Sun 11:38:00, the center of the cluster is (latitude=100, longitude=100).","title":"Locations"},{"location":"developers/test-cases/#application-foreground","text":"The raw application foreground data file contains data for 1 day. The raw application foreground data contains 7 - 9 rows of data for each epoch . The records for each epoch contains apps that are randomly selected from a list of apps that are from the MULTIPLE_CATEGORIES and SINGLE_CATEGORIES (See testing_config.yaml ). There are also records in each epoch that have apps randomly selected from a list of apps that are from the EXCLUDED_CATEGORIES and EXCLUDED_APPS . This is to test that these apps are actually being excluded from the calculations of features. There are also records to test SINGLE_APPS calculations. Since application foreground is only available for Android there is only one file that contains data for Android. All other files (i.e. for iPhone) are empty data files.","title":"Application Foreground"},{"location":"developers/test-cases/#activity-recognition","text":"The raw Activity Recognition data file contains data for 1 day. The raw Activity Recognition data each epoch period contains rows that records 2 - 5 different activity_types . The is such that durations of activities can be tested. Additionally, there are records that mimic the duration of an activity over the time boundary of neighboring epochs. (For example, there a set of records that mimic the participant in_vehicle from afternoon into evening ) There is one file each with raw Activity Recognition data for testing both iOS and Android data formats. (plugin_google_activity_recognition_raw.csv for android and plugin_ios_activity_recognition_raw.csv for iOS) There is also an additional empty data file for both android and iOS for testing empty data files.","title":"Activity Recognition"},{"location":"developers/test-cases/#conversation","text":"The raw conversation data file contains data for 2 day. The raw conversation data contains records with a sample of both datatypes (i.e. voice/noise = 0 , and conversation = 2 ) as well as rows with for samples of each of the inference values (i.e. silence = 0 , noise = 1 , voice = 2 , and unknown = 3 ) for each epoch . The different datatype and inference records are randomly distributed throughout the epoch . Additionally there are 2 - 5 records for conversations ( datatype = 2, and inference = -1) in each epoch and for each epoch except night, there is a conversation record that has a double_convo_start timestamp that is from the previous epoch . This is to test the calculations of features across epochs . There is a raw conversation data file for both android and iOS platforms ( plugin_studentlife_audio_android_raw.csv and plugin_studentlife_audio_raw.csv respectively). Finally, there are also additional empty data files for both android and iOS for testing empty data files","title":"Conversation"},{"location":"developers/test-cases/#keyboard","text":"The raw keyboard data file contains data for 4 days. The raw keyboard data contains records with difference in timestamp ranging from milliseconds to seconds. With difference in timestamps between consecutive records more than 5 seconds helps us to create separate sessions within the usage of the same app. This helps to verify the case where sessions have to be different. The raw keyboard data contains records where the difference in text is less than 5 seconds which makes it into 1 session but because of difference of app new session starts. This edge case determines the behaviour within particular app and also within 5 seconds. The raw keyboard data also contains the records where length of current_text varies between consecutive rows. This helps us to tests on the cases where input text is entered by auto-suggested or auto-correct operations. One three-minute episode with a 1-minute row on Sun 08:59:54.65 and 09:00:00,another on Sun 12:01:02 that are considering a single episode in multi-timezone event segments to showcase how inferring time zone data for Keyboard from phone data can produce inaccurate results around the tz change. This happens because the device was on LA time until 11:59 and switched to NY time at 12pm, in terms of actual time 09 am LA and 12 pm NY represent the same moment in time so 09:00 LA and 12:01 NY are consecutive minutes.","title":"Keyboard"},{"location":"developers/test-cases/#fitbit-calories-intraday","text":"Description A five-minute sedentary episode on Fri 11:00:00 A one-minute sedentary episode on Sun 02:00:00. It exists in November but not in February in STZ A five-minute sedentary episode on Fri 11:58:00. It is split within two 30-min segments and the morning A three-minute lightly active episode on Fri 11:10:00, a one-minute at 11:18:00 and a one-minute 11:24:00. These check for start and end times of first/last/longest episode A three-minute fairly active episode on Fri 11:40:00, a one-minute at 11:48:00 and a one-minute 11:54:00. These check for start and end times of first/last/longest episode A three-minute very active episode on Fri 12:10:00, a one-minute at 12:18:00 and a one-minute 12:24:00. These check for start and end times of first/last/longest episode A eight-minute MVPA episode with intertwined fairly and very active rows on Fri 12:30:00 The above episodes contain six higmet (>= 3 MET) episodes and nine lowmet episodes. One two-minute sedentary episode with a 1-minute row on Sun 09:00:00 and another on Sun 12:01:01 that are considering a single episode in multi-timezone event segments to showcase how inferring time zone data for Fitbit from phone data can produce inaccurate results around the tz change. This happens because the device was on LA time until 11:59 and switched to NY time at 12pm, in terms of actual time 09 am LA and 12 pm NY represent the same moment in time so 09:00 LA and 12:01 NY are consecutive minutes. A three-minute sedentary episode on Sat 08:59 that will be ignored for multi-timezone event segments. A three-minute sedentary episode on Sat 12:59 of which the first minute will be ignored for multi-timezone event segments since the test segment starts at 13:00 A three-minute sedentary episode on Sat 16:00 A four-minute sedentary episode on Sun 10:01 that will be ignored for Novembers\u2019s multi-timezone event segments since the test segment ends at 10am on that weekend. A three-minute very active episode on Sat 16:03. This episode and the one at 16:00 are counted as one for lowmet episodes Checklist time segment single tz multi tz platform 30min OK OK fitbit morning OK OK fitbit daily OK OK fitbit threeday OK OK fitbit weekend OK OK fitbit beforeMarchEvent OK OK fitbit beforeNovemberEvent OK OK fitbit","title":"Fitbit Calories Intraday"},{"location":"developers/test-cases/#fitbit-sleep-summary","text":"Description A main sleep episode that starts on Fri 20:00:00 and ends on Sat 02:00:00. This episode starts after 11am (Last Night End) which will be considered as today\u2019s (Fri) data. A nap that starts on Sat 04:00:00 and ends on Sat 06:00:00. This episode starts before 11am (Last Night End) which will be considered as yesterday\u2019s (Fri) data. A nap that starts on Sat 13:00:00 and ends on Sat 15:00:00. This episode starts after 11am (Last Night End) which will be considered as today\u2019s (Sat) data. A main sleep that starts on Sun 01:00:00 and ends on Sun 12:00:00. This episode starts before 11am (Last Night End) which will be considered as yesterday\u2019s (Sat) data. A main sleep that starts on Sun 23:00:00 and ends on Mon 07:00:00. This episode starts after 11am (Last Night End) which will be considered as today\u2019s (Sun) data. Any segment shorter than one day will be ignored for sleep RAPIDS features. Checklist time segment single tz multi tz platform 30min OK OK fitbit morning OK OK fitbit daily OK OK fitbit threeday OK OK fitbit weekend OK OK fitbit beforeMarchEvent OK OK fitbit beforeNovemberEvent OK OK fitbit","title":"Fitbit Sleep Summary"},{"location":"developers/test-cases/#fitbit-sleep-intraday","text":"Description A five-minute main sleep episode with asleep-classic level on Fri 11:00:00. An eight-hour main sleep episode on Fri 17:00:00. It is split into 2 parts for daily segment: a seven-hour sleep episode on Fri 17:00:00 and an one-hour sleep episode on Sat 00:00:00. A two-hour nap on Sat 01:00:00 that will be ignored for main sleep features. An one-hour nap on Sat 13:00:00 that will be ignored for main sleep features. An eight-hour main sleep episode on Sat 22:00:00. This episode ends on Sun 08:00:00 (NY) for March and Sun 06:00:00 (NY) for Novembers due to daylight savings. It will be considered for beforeMarchEvent segment and ignored for beforeNovemberEvent segment. A nine-hour main sleep episode on Sun 11:00:00. Start time will be assigned as NY time zone and converted to 14:00:00. A seven-hour main sleep episode on Mon 06:00:00. This episode will be split into two parts: a five-hour sleep episode on Mon 06:00:00 and a two-hour sleep episode on Mon 11:00:00. The first part will be discarded as it is before 11am (Last Night End) Any segment shorter than one day will be ignored for sleep PRICE features. Checklist time segment single tz multi tz platform 30min OK OK fitbit morning OK OK fitbit daily OK OK fitbit threeday OK OK fitbit weekend OK OK fitbit beforeMarchEvent OK OK fitbit beforeNovemberEvent OK OK fitbit","title":"Fitbit Sleep Intraday"},{"location":"developers/testing/","text":"Testing \u00b6 The following is a simple guide to run RAPIDS\u2019 tests. All files necessary for testing are stored in the ./tests/ directory Steps for Testing \u00b6 Testing Overview You have to create a single four day test dataset for the sensor you are working on. You will adjust your dataset with tests/script/assign_test_timestamps.py to fit Fri March 6th 2020 - Mon March 9th 2020 and Fri Oct 30th 2020 - Mon Nov 2nd 2020 . We test daylight saving times with these dates. We have one test participant per platform ( pids : android , ios , fitbit , empatica , empty ). The data device_id should be equal to the pid . We will run this test dataset against six test pipelines, three for frequency , periodic , and event time segments in a single time zone, and the same three in multiple time zones. You will have to create your test data to cover as many corner cases as possible. These cases depend on the sensor you are working on. The time segments and time zones to be tested are: Frequency 30 minutes ( 30min,30 ) Periodic morning ( morning,06:00:00,5H 59M 59S,every_day,0 ) daily ( daily,00:00:00,23H 59M 59S,every_day,0 ) three-day segments that repeat every day ( threeday,00:00:00,71H 59M 59S,every_day,0 ) three-day segments that repeat every Friday ( weekend,00:00:00,71H 59M 59S,wday,5 ) Event A segment that starts 3 hour before an event (Sat Mar 07 2020 19:00:00 EST) and lasts for 22 hours. Note that the last part of this segment will happen during a daylight saving change on Sunday at 2am when the clock moves forward and the period 2am-3am does not exist. In this case, the segment would start on Sat Mar 07 2020 16:00:00 EST (timestamp: 1583614800000) and end on Sun Mar 08 2020 15:00:00 EST (timestamp: 1583694000000). ( beforeMarchEvent,1583625600000,22H,3H,-1,android ) A segment that starts 3 hour before an event (Sat Oct 31 2020 19:00:00 EST) and lasts for 22 hours. Note that the last part of this segment will happen during a daylight saving change on Sunday at 2am when the clock moves back and the period 1am-2am exists twice. In this case, the segment would start on Sat Oct 31 2020 16:00:00 EST (timestamp: 1604174400000) and end on Sun Nov 01 2020 13:00:00 EST (timestamp: 1604253600000). ( beforeNovemberEvent,1604185200000,22H,3H,-1,android ) Single time zone to test America/New_York Multi time zones to test America/New_York starting at 0 America/Los_Angeles starting at 1583600400000 (Sat Mar 07 2020 12:00:00 EST) America/New_York starting at 1583683200000 (Sun Mar 08 2020 12:00:00 EST) America/Los_Angeles starting at 1604160000000 (Sat Oct 31 2020 12:00:00 EST) America/New_York starting at 1604250000000 (Sun Nov 01 2020 12:00:00 EST) Understanding event segments with multi timezones Document your tests Before you start implementing any test data you need to document your tests. The documentation of your tests should be added to docs/developers/test-cases.md under the corresponding sensor. You will need to add two subsections Description and the Checklist The amount of data you need depends on each sensor but you can be efficient by creating data that covers corner cases in more than one time segment. For example, a battery episode from 11am to 1pm, covers the case when an episode has to be split for 30min frequency segments and for morning segments. As a rule of thumb think about corner cases for 30min segments as they will give you the most flexibility. Only add tests for iOS if the raw data format is different than Android\u2019s (for example for screen) Create specific tests for Sunday before and after 02:00. These will test daylight saving switches, in March 02:00 to 02:59 do not exist, and in November 01:00 to 01:59 exist twice (read below how tests/script/assign_test_timestamps.py handles this) Example of Description Description is a list and every item describes the different scenarios your test data is covering. For example, if we are testing PHONE_BATTERY: - We test 24 discharge episodes, 24 charge episodes and 2 episodes with a 0 discharge rate - One episode is shorter than 30 minutes (`start timestamp` to `end timestamp`) - One episode is 120 minutes long from 11:00 to 13:00 (`start timestamp` to `end timestamp`). This one covers the case when an episode has to be chunked for 30min frequency segments and for morning segments - One episode is 60 minutes long from 23:30 to 00:30 (`start timestamp` to `end timestamp`). This one covers the case when an episode has to be chunked for 30min frequency segments and for daly segments (overnight) - One 0 discharge rate episode 10 minutes long that happens within a 30-minute segment (10:00 to 10:29) (`start timestamp` to `end timestamp`) - Three discharge episodes that happen between during beforeMarchEvent (start/end timestamps of those discharge episodes) - Three charge episodes that happen between during beforeMarchEvent (start/end timestamps of those charge episodes) - One discharge episode that happen between 00:30 and 04:00 to test for daylight saving times in March and Novemeber 2020. - ... any other test corner cases you can think of Describe your test cases in as much detail as possible so in the future if we find a bug in RAPIDS, we know what test case we did not include and should add. Example of Checklist Checklist is a table where you confirm you have verified the output of your dataset for the different time segments and time zones time segment single tz multi tz platform 30min OK OK android and iOS morning OK OK android and iOS daily OK OK android and iOS threeday OK OK android and iOS weekend OK OK android and iOS beforeMarchEvent OK OK android and iOS beforeNovemberEvent OK OK android and iOS Add raw input data. Add the raw test data to the corresponding sensor CSV file in tests/data/manual/aware_csv/SENSOR_raw.csv . Create the CSV if it does not exist. The test data you create will have the same columns as normal raw data except test_time replaces timestamp . To make your life easier, you can place a test data row in time using the test_time column with the following format: Day HH:MM:SS.XXX , for example Fri 22:54:30.597 . You can convert your manual test data to actual raw test data with the following commands: For the selected files: (It could be a single file name or multiple file names separated by whitespace(s)) python tests/scripts/assign_test_timestamps.py -f file_name_1 file_name_2 For all files under the tests/data/manual/aware_csv folder: python tests/scripts/assign_test_timestamps.py -a The script assign_test_timestamps.py converts you test_time column into a timestamp . For example, Fri 22:54:30.597 is converted to 1583553270597 ( Fri Mar 06 2020 22:54:30 GMT-0500 ) and to 1604112870597 ( Fri Oct 30 2020 22:54:30 GMT-0400 ). Note you can include milliseconds. The device_id should be the same as pid . Example of test data you need to create The test_time column will be automatically converted to a timestamp that fits our testing periods in March and November by tests/script/assign_test_timestamps.py test_time,device_id,battery_level,battery_scale,battery_status Fri 01:00:00.000,ios,90,100,4 Fri 01:00:30.500,ios,89,100,4 Fri 01:01:00.000,ios,80,100,4 Fri 01:01:45.500,ios,79,100,4 ... Sat 08:00:00.000,ios,78,100,4 Sat 08:01:00.000,ios,50,100,4 Sat 08:02:00.000,ios,49,100,4 Add expected output data. Add or update the expected output feature file of the participant and sensor you are testing: tests/data/processed/features/ { type_of_time_segment } / { pid } /device_sensor.csv # this example is expected output data for battery tests for periodic segments in a single timezone tests/data/processed/features/stz_periodic/android/phone_sensor.csv # this example is expected output data for battery tests for periodic segments in multi timezones tests/data/processed/features/mtz_periodic/android/phone_sensor.csv Edit the config file(s). Activate the sensor provider you are testing if it isn\u2019t already. Set [SENSOR][PROVIDER][COMPUTE] to TRUE in the config.yaml of the time segments and time zones you are testing: - tests/settings/stz_frequency_config.yaml # For single-timezone frequency time segments - tests/settings/stz_periodic_config.yaml # For single-timezone periodic time segments - tests/settings/stz_event_config.yaml # For single-timezone event time segments - tests/settings/mtz_frequency_config.yaml # For multi-timezone frequency time segments - tests/settings/mtz_periodic_config.yaml # For multi-timezone periodic time segments - tests/settings/mtz_event_config.yaml # For multi-timezone event time segments Run the pipeline and tests. You can run all six segment pipelines and their tests bash tests/scripts/run_tests.sh -t all You can run only the pipeline of a specific time segment and its tests bash tests/scripts/run_tests.sh -t stz_frequency -a both # swap stz_frequency for mtz_frequency, stz_event, mtz_event, etc Or, if you are working on your tests and you want to run a pipeline and its tests independently bash tests/scripts/run_tests.sh -t stz_frequency -a run bash tests/scripts/run_tests.sh -t stz_frequency -a test How does the test execution work? This bash script tests/scripts/run_tests.sh executes one or all test pipelines for different time segment types ( frequency , periodic , and events ) and single or multiple timezones. The python script tests/scripts/run_tests.py runs the tests. It parses the involved participants and active sensor providers in the config.yaml file of the time segment type and time zone being tested. We test that the output file we expect exists and that its content matches the expected values. Output Example The following is a snippet of the output you should see after running your test. test_sensors_files_exist ( test_sensor_features.TestSensorFeatures ) ... stz_periodic ok test_sensors_features_calculations ( test_sensor_features.TestSensorFeatures ) ... stz_periodic ok test_sensors_files_exist ( test_sensor_features.TestSensorFeatures ) ... stz_frequency ok test_sensors_features_calculations ( test_sensor_features.TestSensorFeatures ) ... stz_frequency FAIL The results above show that the for stz_periodic, both test_sensors_files_exist and test_sensors_features_calculations passed. While for stz_frequency, the first test test_sensors_files_exist passed while test_sensors_features_calculations failed. Additionally, you should get the traceback of the failure (not shown here).","title":"Testing"},{"location":"developers/testing/#testing","text":"The following is a simple guide to run RAPIDS\u2019 tests. All files necessary for testing are stored in the ./tests/ directory","title":"Testing"},{"location":"developers/testing/#steps-for-testing","text":"Testing Overview You have to create a single four day test dataset for the sensor you are working on. You will adjust your dataset with tests/script/assign_test_timestamps.py to fit Fri March 6th 2020 - Mon March 9th 2020 and Fri Oct 30th 2020 - Mon Nov 2nd 2020 . We test daylight saving times with these dates. We have one test participant per platform ( pids : android , ios , fitbit , empatica , empty ). The data device_id should be equal to the pid . We will run this test dataset against six test pipelines, three for frequency , periodic , and event time segments in a single time zone, and the same three in multiple time zones. You will have to create your test data to cover as many corner cases as possible. These cases depend on the sensor you are working on. The time segments and time zones to be tested are: Frequency 30 minutes ( 30min,30 ) Periodic morning ( morning,06:00:00,5H 59M 59S,every_day,0 ) daily ( daily,00:00:00,23H 59M 59S,every_day,0 ) three-day segments that repeat every day ( threeday,00:00:00,71H 59M 59S,every_day,0 ) three-day segments that repeat every Friday ( weekend,00:00:00,71H 59M 59S,wday,5 ) Event A segment that starts 3 hour before an event (Sat Mar 07 2020 19:00:00 EST) and lasts for 22 hours. Note that the last part of this segment will happen during a daylight saving change on Sunday at 2am when the clock moves forward and the period 2am-3am does not exist. In this case, the segment would start on Sat Mar 07 2020 16:00:00 EST (timestamp: 1583614800000) and end on Sun Mar 08 2020 15:00:00 EST (timestamp: 1583694000000). ( beforeMarchEvent,1583625600000,22H,3H,-1,android ) A segment that starts 3 hour before an event (Sat Oct 31 2020 19:00:00 EST) and lasts for 22 hours. Note that the last part of this segment will happen during a daylight saving change on Sunday at 2am when the clock moves back and the period 1am-2am exists twice. In this case, the segment would start on Sat Oct 31 2020 16:00:00 EST (timestamp: 1604174400000) and end on Sun Nov 01 2020 13:00:00 EST (timestamp: 1604253600000). ( beforeNovemberEvent,1604185200000,22H,3H,-1,android ) Single time zone to test America/New_York Multi time zones to test America/New_York starting at 0 America/Los_Angeles starting at 1583600400000 (Sat Mar 07 2020 12:00:00 EST) America/New_York starting at 1583683200000 (Sun Mar 08 2020 12:00:00 EST) America/Los_Angeles starting at 1604160000000 (Sat Oct 31 2020 12:00:00 EST) America/New_York starting at 1604250000000 (Sun Nov 01 2020 12:00:00 EST) Understanding event segments with multi timezones Document your tests Before you start implementing any test data you need to document your tests. The documentation of your tests should be added to docs/developers/test-cases.md under the corresponding sensor. You will need to add two subsections Description and the Checklist The amount of data you need depends on each sensor but you can be efficient by creating data that covers corner cases in more than one time segment. For example, a battery episode from 11am to 1pm, covers the case when an episode has to be split for 30min frequency segments and for morning segments. As a rule of thumb think about corner cases for 30min segments as they will give you the most flexibility. Only add tests for iOS if the raw data format is different than Android\u2019s (for example for screen) Create specific tests for Sunday before and after 02:00. These will test daylight saving switches, in March 02:00 to 02:59 do not exist, and in November 01:00 to 01:59 exist twice (read below how tests/script/assign_test_timestamps.py handles this) Example of Description Description is a list and every item describes the different scenarios your test data is covering. For example, if we are testing PHONE_BATTERY: - We test 24 discharge episodes, 24 charge episodes and 2 episodes with a 0 discharge rate - One episode is shorter than 30 minutes (`start timestamp` to `end timestamp`) - One episode is 120 minutes long from 11:00 to 13:00 (`start timestamp` to `end timestamp`). This one covers the case when an episode has to be chunked for 30min frequency segments and for morning segments - One episode is 60 minutes long from 23:30 to 00:30 (`start timestamp` to `end timestamp`). This one covers the case when an episode has to be chunked for 30min frequency segments and for daly segments (overnight) - One 0 discharge rate episode 10 minutes long that happens within a 30-minute segment (10:00 to 10:29) (`start timestamp` to `end timestamp`) - Three discharge episodes that happen between during beforeMarchEvent (start/end timestamps of those discharge episodes) - Three charge episodes that happen between during beforeMarchEvent (start/end timestamps of those charge episodes) - One discharge episode that happen between 00:30 and 04:00 to test for daylight saving times in March and Novemeber 2020. - ... any other test corner cases you can think of Describe your test cases in as much detail as possible so in the future if we find a bug in RAPIDS, we know what test case we did not include and should add. Example of Checklist Checklist is a table where you confirm you have verified the output of your dataset for the different time segments and time zones time segment single tz multi tz platform 30min OK OK android and iOS morning OK OK android and iOS daily OK OK android and iOS threeday OK OK android and iOS weekend OK OK android and iOS beforeMarchEvent OK OK android and iOS beforeNovemberEvent OK OK android and iOS Add raw input data. Add the raw test data to the corresponding sensor CSV file in tests/data/manual/aware_csv/SENSOR_raw.csv . Create the CSV if it does not exist. The test data you create will have the same columns as normal raw data except test_time replaces timestamp . To make your life easier, you can place a test data row in time using the test_time column with the following format: Day HH:MM:SS.XXX , for example Fri 22:54:30.597 . You can convert your manual test data to actual raw test data with the following commands: For the selected files: (It could be a single file name or multiple file names separated by whitespace(s)) python tests/scripts/assign_test_timestamps.py -f file_name_1 file_name_2 For all files under the tests/data/manual/aware_csv folder: python tests/scripts/assign_test_timestamps.py -a The script assign_test_timestamps.py converts you test_time column into a timestamp . For example, Fri 22:54:30.597 is converted to 1583553270597 ( Fri Mar 06 2020 22:54:30 GMT-0500 ) and to 1604112870597 ( Fri Oct 30 2020 22:54:30 GMT-0400 ). Note you can include milliseconds. The device_id should be the same as pid . Example of test data you need to create The test_time column will be automatically converted to a timestamp that fits our testing periods in March and November by tests/script/assign_test_timestamps.py test_time,device_id,battery_level,battery_scale,battery_status Fri 01:00:00.000,ios,90,100,4 Fri 01:00:30.500,ios,89,100,4 Fri 01:01:00.000,ios,80,100,4 Fri 01:01:45.500,ios,79,100,4 ... Sat 08:00:00.000,ios,78,100,4 Sat 08:01:00.000,ios,50,100,4 Sat 08:02:00.000,ios,49,100,4 Add expected output data. Add or update the expected output feature file of the participant and sensor you are testing: tests/data/processed/features/ { type_of_time_segment } / { pid } /device_sensor.csv # this example is expected output data for battery tests for periodic segments in a single timezone tests/data/processed/features/stz_periodic/android/phone_sensor.csv # this example is expected output data for battery tests for periodic segments in multi timezones tests/data/processed/features/mtz_periodic/android/phone_sensor.csv Edit the config file(s). Activate the sensor provider you are testing if it isn\u2019t already. Set [SENSOR][PROVIDER][COMPUTE] to TRUE in the config.yaml of the time segments and time zones you are testing: - tests/settings/stz_frequency_config.yaml # For single-timezone frequency time segments - tests/settings/stz_periodic_config.yaml # For single-timezone periodic time segments - tests/settings/stz_event_config.yaml # For single-timezone event time segments - tests/settings/mtz_frequency_config.yaml # For multi-timezone frequency time segments - tests/settings/mtz_periodic_config.yaml # For multi-timezone periodic time segments - tests/settings/mtz_event_config.yaml # For multi-timezone event time segments Run the pipeline and tests. You can run all six segment pipelines and their tests bash tests/scripts/run_tests.sh -t all You can run only the pipeline of a specific time segment and its tests bash tests/scripts/run_tests.sh -t stz_frequency -a both # swap stz_frequency for mtz_frequency, stz_event, mtz_event, etc Or, if you are working on your tests and you want to run a pipeline and its tests independently bash tests/scripts/run_tests.sh -t stz_frequency -a run bash tests/scripts/run_tests.sh -t stz_frequency -a test How does the test execution work? This bash script tests/scripts/run_tests.sh executes one or all test pipelines for different time segment types ( frequency , periodic , and events ) and single or multiple timezones. The python script tests/scripts/run_tests.py runs the tests. It parses the involved participants and active sensor providers in the config.yaml file of the time segment type and time zone being tested. We test that the output file we expect exists and that its content matches the expected values. Output Example The following is a snippet of the output you should see after running your test. test_sensors_files_exist ( test_sensor_features.TestSensorFeatures ) ... stz_periodic ok test_sensors_features_calculations ( test_sensor_features.TestSensorFeatures ) ... stz_periodic ok test_sensors_files_exist ( test_sensor_features.TestSensorFeatures ) ... stz_frequency ok test_sensors_features_calculations ( test_sensor_features.TestSensorFeatures ) ... stz_frequency FAIL The results above show that the for stz_periodic, both test_sensors_files_exist and test_sensors_features_calculations passed. While for stz_frequency, the first test test_sensors_files_exist passed while test_sensors_features_calculations failed. Additionally, you should get the traceback of the failure (not shown here).","title":"Steps for Testing"},{"location":"developers/validation-schema-config/","text":"Validation schema of config.yaml \u00b6 Why do we need to validate the config.yaml ? Most of the key/values in the config.yaml are constrained to a set of possible values or types. For example [TIME_SEGMENTS][TYPE] can only be one of [\"FREQUENCY\", \"PERIODIC\", \"EVENT\"] , and [TIMEZONE] has to be a string. We should show the user an error if that\u2019s not the case. We could validate this in Python or R but since we reuse scripts and keys in multiple places, tracking these validations can be time consuming and get out of control. Thus, we do these validations through a schema and check that schema before RAPIDS starts processing any data so the user can see the error right away. Keep in mind these validations can only cover certain base cases. Some validations that require more complex logic should still be done in the respective script. For example, we can check that a CSV file path actually ends in .csv but we can only check that the file actually exists in a Python script. The structure and values of the config.yaml file are validated using a YAML schema stored in tools/config.schema.yaml . Each key in config.yaml , for example PIDS , has a corresponding entry in the schema where we can validate its type, possible values, required properties, min and max values, among other things. The config.yaml is validated against the schema every time RAPIDS runs (see the top of the Snakefile ): validate ( config , \"tools/config.schema.yaml\" ) Structure of the schema \u00b6 The schema has three main sections required , definitions , and properties . All of them are just nested key/value YAML pairs, where the value can be a primitive type ( integer , string , boolean , number ) or can be another key/value pair ( object ). required \u00b6 required lists properties that should be present in the config.yaml . We will almost always add every config.yaml key to this list (meaning that the user cannot delete any of those keys like TIMEZONE or PIDS ). definitions \u00b6 definitions lists key/values that are common to different properties so we can reuse them. You can define a key/value under definitions and use $ref to refer to it in any property . For example, every sensor like [PHONE_ACCELEROMETER] has one or more providers like RAPIDS and PANDA , these providers have some common properties like the COMPUTE flag or the SRC_SCRIPT string. Therefore we define a shared provider \u201ctemplate\u201d that is used by every provider and extended with properties exclusive to each one of them. For example: provider definition (template) The PROVIDER definition will be used later on different properties . PROVIDER : type : object required : [ COMPUTE , SRC_SCRIPT , FEATURES ] properties : COMPUTE : type : boolean FEATURES : type : [ array , object ] SRC_SCRIPT : type : string pattern : \"^.*\\\\.(py|R)$\" provider reusing and extending the template Notice that RAPIDS (a provider) uses and extends the PROVIDER template in this example. The FEATURES key is overriding the FEATURES key from the #/definitions/PROVIDER template but is keeping the validation for COMPUTE , and SRC_SCRIPT . For more details about reusing properties, go to this link PHONE_ACCELEROMETER : type : object # .. other properties PROVIDERS : type : [ \"null\" , object ] properties : RAPIDS : allOf : - $ref : \"#/definitions/PROVIDER\" - properties : FEATURES : type : array uniqueItems : True items : type : string enum : [ \"maxmagnitude\" , \"minmagnitude\" , \"avgmagnitude\" , \"medianmagnitude\" , \"stdmagnitude\" ] properties \u00b6 properties are nested key/values that describe the different components of our config.yaml file. Values can be of one or more primitive types like string , number , array , boolean and null . Values can also be another key/value pair (of type object ) that are similar to a dictionary in Python. For example, the following property validates the PIDS of our config.yaml . It checks that PIDS is an array with unique items of type string . PIDS : type : array uniqueItems : True items : type : string Modifying the schema \u00b6 Validating the config.yaml during development If you updated the schema and want to check the config.yaml is compliant, you can run the command snakemake --list-params-changes . You will see Building DAG of jobs... if there are no problems or an error message otherwise (try setting any COMPUTE flag to a string like test instead of False/True ). You can use this command without having to configure RAPIDS to process any participants or sensors. You can validate different aspects of each key/value in our config.yaml file: number/integer Including min and max values MINUTE_RATIO_THRESHOLD_FOR_VALID_YIELDED_HOURS : type : number minimum : 0 maximum : 1 FUSED_RESAMPLED_CONSECUTIVE_THRESHOLD : type : integer exclusiveMinimum : 0 string Including valid values ( enum ) items : type : string enum : [ \"count\" , \"maxlux\" , \"minlux\" , \"avglux\" , \"medianlux\" , \"stdlux\" ] boolean MINUTES_DATA_USED : type : boolean array Including whether or not it should have unique values, the type of the array\u2019s elements ( strings , numbers ) and valid values ( enum ). MESSAGES_TYPES : type : array uniqueItems : True items : type : string enum : [ \"received\" , \"sent\" ] object PARENT is an object that has two properties. KID1 is one of those properties that are, in turn, another object that will reuse the \"#/definitions/PROVIDER\" definition AND also include (extend) two extra properties GRAND_KID1 of type array and GRAND_KID2 of type number . KID2 is another property of PARENT of type boolean . The schema validation looks like this PARENT : type : object properties : KID1 : allOf : - $ref : \"#/definitions/PROVIDER\" - properties : GRAND_KID1 : type : array uniqueItems : True GRAND_KID2 : type : number KID2 : type : boolean The config.yaml key that the previous schema validates looks like this: PARENT : KID1 : # These four come from the `PROVIDER` definition (template) COMPUTE : False FEATURES : [ x , y ] # an array SRC_SCRIPT : \"a path to a py or R script\" # This two come from the extension GRAND_KID1 : [ a , b ] # an array GRAND_KID2 : 5.1 # an number KID2 : True # a boolean Verifying the schema is correct \u00b6 We recommend that before you start modifying the schema you modify the config.yaml key that you want to validate with an invalid value. For example, if you want to validate that COMPUTE is boolean, you set COMPUTE: 123 . Then create your validation, run snakemake --list-params-changes and make sure your validation fails (123 is not boolean ), and then set the key to the correct value. In other words, make sure it\u2019s broken first so that you know that your validation works. Warning Be careful . You can check that the schema config.schema.yaml has a valid format by running python tools/check_schema.py . You will see this message if its structure is correct: Schema is OK . However, we don\u2019t have a way to detect typos, for example allOf will work but allOF won\u2019t (capital F ) and it won\u2019t show any error. That\u2019s why we recommend to start with an invalid key/value in your config.yaml so that you can be sure the schema validation finds the problem. Useful resources \u00b6 Read the following links to learn more about what we can validate with schemas. They are based on JSON instead of YAML schemas but the same concepts apply. Understanding JSON Schemas Specification of the JSON schema we use","title":"Validation schema of config.yaml"},{"location":"developers/validation-schema-config/#validation-schema-of-configyaml","text":"Why do we need to validate the config.yaml ? Most of the key/values in the config.yaml are constrained to a set of possible values or types. For example [TIME_SEGMENTS][TYPE] can only be one of [\"FREQUENCY\", \"PERIODIC\", \"EVENT\"] , and [TIMEZONE] has to be a string. We should show the user an error if that\u2019s not the case. We could validate this in Python or R but since we reuse scripts and keys in multiple places, tracking these validations can be time consuming and get out of control. Thus, we do these validations through a schema and check that schema before RAPIDS starts processing any data so the user can see the error right away. Keep in mind these validations can only cover certain base cases. Some validations that require more complex logic should still be done in the respective script. For example, we can check that a CSV file path actually ends in .csv but we can only check that the file actually exists in a Python script. The structure and values of the config.yaml file are validated using a YAML schema stored in tools/config.schema.yaml . Each key in config.yaml , for example PIDS , has a corresponding entry in the schema where we can validate its type, possible values, required properties, min and max values, among other things. The config.yaml is validated against the schema every time RAPIDS runs (see the top of the Snakefile ): validate ( config , \"tools/config.schema.yaml\" )","title":"Validation schema of config.yaml"},{"location":"developers/validation-schema-config/#structure-of-the-schema","text":"The schema has three main sections required , definitions , and properties . All of them are just nested key/value YAML pairs, where the value can be a primitive type ( integer , string , boolean , number ) or can be another key/value pair ( object ).","title":"Structure of the schema"},{"location":"developers/validation-schema-config/#required","text":"required lists properties that should be present in the config.yaml . We will almost always add every config.yaml key to this list (meaning that the user cannot delete any of those keys like TIMEZONE or PIDS ).","title":"required"},{"location":"developers/validation-schema-config/#definitions","text":"definitions lists key/values that are common to different properties so we can reuse them. You can define a key/value under definitions and use $ref to refer to it in any property . For example, every sensor like [PHONE_ACCELEROMETER] has one or more providers like RAPIDS and PANDA , these providers have some common properties like the COMPUTE flag or the SRC_SCRIPT string. Therefore we define a shared provider \u201ctemplate\u201d that is used by every provider and extended with properties exclusive to each one of them. For example: provider definition (template) The PROVIDER definition will be used later on different properties . PROVIDER : type : object required : [ COMPUTE , SRC_SCRIPT , FEATURES ] properties : COMPUTE : type : boolean FEATURES : type : [ array , object ] SRC_SCRIPT : type : string pattern : \"^.*\\\\.(py|R)$\" provider reusing and extending the template Notice that RAPIDS (a provider) uses and extends the PROVIDER template in this example. The FEATURES key is overriding the FEATURES key from the #/definitions/PROVIDER template but is keeping the validation for COMPUTE , and SRC_SCRIPT . For more details about reusing properties, go to this link PHONE_ACCELEROMETER : type : object # .. other properties PROVIDERS : type : [ \"null\" , object ] properties : RAPIDS : allOf : - $ref : \"#/definitions/PROVIDER\" - properties : FEATURES : type : array uniqueItems : True items : type : string enum : [ \"maxmagnitude\" , \"minmagnitude\" , \"avgmagnitude\" , \"medianmagnitude\" , \"stdmagnitude\" ]","title":"definitions"},{"location":"developers/validation-schema-config/#properties","text":"properties are nested key/values that describe the different components of our config.yaml file. Values can be of one or more primitive types like string , number , array , boolean and null . Values can also be another key/value pair (of type object ) that are similar to a dictionary in Python. For example, the following property validates the PIDS of our config.yaml . It checks that PIDS is an array with unique items of type string . PIDS : type : array uniqueItems : True items : type : string","title":"properties"},{"location":"developers/validation-schema-config/#modifying-the-schema","text":"Validating the config.yaml during development If you updated the schema and want to check the config.yaml is compliant, you can run the command snakemake --list-params-changes . You will see Building DAG of jobs... if there are no problems or an error message otherwise (try setting any COMPUTE flag to a string like test instead of False/True ). You can use this command without having to configure RAPIDS to process any participants or sensors. You can validate different aspects of each key/value in our config.yaml file: number/integer Including min and max values MINUTE_RATIO_THRESHOLD_FOR_VALID_YIELDED_HOURS : type : number minimum : 0 maximum : 1 FUSED_RESAMPLED_CONSECUTIVE_THRESHOLD : type : integer exclusiveMinimum : 0 string Including valid values ( enum ) items : type : string enum : [ \"count\" , \"maxlux\" , \"minlux\" , \"avglux\" , \"medianlux\" , \"stdlux\" ] boolean MINUTES_DATA_USED : type : boolean array Including whether or not it should have unique values, the type of the array\u2019s elements ( strings , numbers ) and valid values ( enum ). MESSAGES_TYPES : type : array uniqueItems : True items : type : string enum : [ \"received\" , \"sent\" ] object PARENT is an object that has two properties. KID1 is one of those properties that are, in turn, another object that will reuse the \"#/definitions/PROVIDER\" definition AND also include (extend) two extra properties GRAND_KID1 of type array and GRAND_KID2 of type number . KID2 is another property of PARENT of type boolean . The schema validation looks like this PARENT : type : object properties : KID1 : allOf : - $ref : \"#/definitions/PROVIDER\" - properties : GRAND_KID1 : type : array uniqueItems : True GRAND_KID2 : type : number KID2 : type : boolean The config.yaml key that the previous schema validates looks like this: PARENT : KID1 : # These four come from the `PROVIDER` definition (template) COMPUTE : False FEATURES : [ x , y ] # an array SRC_SCRIPT : \"a path to a py or R script\" # This two come from the extension GRAND_KID1 : [ a , b ] # an array GRAND_KID2 : 5.1 # an number KID2 : True # a boolean","title":"Modifying the schema"},{"location":"developers/validation-schema-config/#verifying-the-schema-is-correct","text":"We recommend that before you start modifying the schema you modify the config.yaml key that you want to validate with an invalid value. For example, if you want to validate that COMPUTE is boolean, you set COMPUTE: 123 . Then create your validation, run snakemake --list-params-changes and make sure your validation fails (123 is not boolean ), and then set the key to the correct value. In other words, make sure it\u2019s broken first so that you know that your validation works. Warning Be careful . You can check that the schema config.schema.yaml has a valid format by running python tools/check_schema.py . You will see this message if its structure is correct: Schema is OK . However, we don\u2019t have a way to detect typos, for example allOf will work but allOF won\u2019t (capital F ) and it won\u2019t show any error. That\u2019s why we recommend to start with an invalid key/value in your config.yaml so that you can be sure the schema validation finds the problem.","title":"Verifying the schema is correct"},{"location":"developers/validation-schema-config/#useful-resources","text":"Read the following links to learn more about what we can validate with schemas. They are based on JSON instead of YAML schemas but the same concepts apply. Understanding JSON Schemas Specification of the JSON schema we use","title":"Useful resources"},{"location":"developers/virtual-environments/","text":"Python Virtual Environment \u00b6 Add new packages \u00b6 Try to install any new package using conda install -c CHANNEL PACKAGE_NAME (you can use pip if the package is only available there). Make sure your Python virtual environment is active ( conda activate YOUR_ENV ). Remove packages \u00b6 Uninstall packages using the same manager you used to install them conda remove PACKAGE_NAME or pip uninstall PACKAGE_NAME Updating all packages \u00b6 Make sure your Python virtual environment is active ( conda activate YOUR_ENV ), then run conda update --all Update your conda environment.yaml \u00b6 After installing or removing a package you can use the following command in your terminal to update your environment.yaml before publishing your pipeline. Note that we ignore the package version for libfortran and mkl to keep compatibility with Linux: conda env export --no-builds | sed 's/^.*libgfortran.*$/ - libgfortran/' | sed 's/^.*mkl=.*$/ - mkl/' > environment.yml R Virtual Environment \u00b6 Add new packages \u00b6 Open your terminal and navigate to RAPIDS\u2019 root folder Run R to open an R interactive session Run renv::install(\"PACKAGE_NAME\") Remove packages \u00b6 Open your terminal and navigate to RAPIDS\u2019 root folder Run R to open an R interactive session Run renv::remove(\"PACKAGE_NAME\") Updating all packages \u00b6 Open your terminal and navigate to RAPIDS\u2019 root folder Run R to open an R interactive session Run renv::update() Update your R renv.lock \u00b6 After installing or removing a package you can use the following command in your terminal to update your renv.lock before publishing your pipeline. Open your terminal and navigate to RAPIDS\u2019 root folder Run R to open an R interactive session Run renv::snapshot() (renv will ask you to confirm any updates to this file)","title":"Virtual Environments"},{"location":"developers/virtual-environments/#python-virtual-environment","text":"","title":"Python Virtual Environment"},{"location":"developers/virtual-environments/#add-new-packages","text":"Try to install any new package using conda install -c CHANNEL PACKAGE_NAME (you can use pip if the package is only available there). Make sure your Python virtual environment is active ( conda activate YOUR_ENV ).","title":"Add new packages"},{"location":"developers/virtual-environments/#remove-packages","text":"Uninstall packages using the same manager you used to install them conda remove PACKAGE_NAME or pip uninstall PACKAGE_NAME","title":"Remove packages"},{"location":"developers/virtual-environments/#updating-all-packages","text":"Make sure your Python virtual environment is active ( conda activate YOUR_ENV ), then run conda update --all","title":"Updating all packages"},{"location":"developers/virtual-environments/#update-your-conda-environmentyaml","text":"After installing or removing a package you can use the following command in your terminal to update your environment.yaml before publishing your pipeline. Note that we ignore the package version for libfortran and mkl to keep compatibility with Linux: conda env export --no-builds | sed 's/^.*libgfortran.*$/ - libgfortran/' | sed 's/^.*mkl=.*$/ - mkl/' > environment.yml","title":"Update your conda environment.yaml"},{"location":"developers/virtual-environments/#r-virtual-environment","text":"","title":"R Virtual Environment"},{"location":"developers/virtual-environments/#add-new-packages_1","text":"Open your terminal and navigate to RAPIDS\u2019 root folder Run R to open an R interactive session Run renv::install(\"PACKAGE_NAME\")","title":"Add new packages"},{"location":"developers/virtual-environments/#remove-packages_1","text":"Open your terminal and navigate to RAPIDS\u2019 root folder Run R to open an R interactive session Run renv::remove(\"PACKAGE_NAME\")","title":"Remove packages"},{"location":"developers/virtual-environments/#updating-all-packages_1","text":"Open your terminal and navigate to RAPIDS\u2019 root folder Run R to open an R interactive session Run renv::update()","title":"Updating all packages"},{"location":"developers/virtual-environments/#update-your-r-renvlock","text":"After installing or removing a package you can use the following command in your terminal to update your renv.lock before publishing your pipeline. Open your terminal and navigate to RAPIDS\u2019 root folder Run R to open an R interactive session Run renv::snapshot() (renv will ask you to confirm any updates to this file)","title":"Update your R renv.lock"},{"location":"features/add-new-features/","text":"Add New Features \u00b6 Hint We recommend reading the Behavioral Features Introduction before reading this page. You can implement new features in Python or R scripts. You won\u2019t have to deal with time zones, dates, times, data cleaning, or preprocessing. The data that RAPIDS pipes to your feature extraction code are ready to process. New Features for Existing Sensors \u00b6 You can add new features to any existing sensors (see list below) by adding a new provider in three steps: Modify the config.yaml file Create your feature provider script Implement your features extraction code As a tutorial, we will add a new provider for PHONE_ACCELEROMETER called VEGA that extracts feature1 , feature2 , feature3 with a Python script that requires a parameter from the user called MY_PARAMETER . Existing Sensors An existing sensor of any device with a configuration entry in config.yaml : Smartphone (AWARE) Phone Accelerometer Phone Activity Recognition Phone Applications Crashes Phone Applications Foreground Phone Applications Notifications Phone Battery Phone Bluetooth Phone Calls Phone Conversation Phone Data Yield Phone Keyboard Phone Light Phone Locations Phone Log Phone Messages Phone Screen Phone WiFI Connected Phone WiFI Visible Fitbit Fitbit Data Yield Fitbit Heart Rate Summary Fitbit Heart Rate Intraday Fitbit Sleep Summary Fitbit Sleep Intraday Fitbit Steps Summary Fitbit Steps Intraday Empatica Empatica Accelerometer Empatica Heart Rate Empatica Temperature Empatica Electrodermal Activity Empatica Blood Volume Pulse Empatica Inter Beat Interval Empatica Tags Modify the config.yaml file \u00b6 In this step, you need to add your provider configuration section under the relevant sensor in config.yaml . See our example for our tutorial\u2019s VEGA provider for PHONE_ACCELEROMETER : Example configuration for a new accelerometer provider VEGA PHONE_ACCELEROMETER : CONTAINER : accelerometer PROVIDERS : RAPIDS : # this is a feature provider COMPUTE : False ... PANDA : # this is another feature provider COMPUTE : False ... VEGA : # this is our new feature provider COMPUTE : False FEATURES : [ \"feature1\" , \"feature2\" , \"feature3\" ] MY_PARAMTER : a_string SRC_SCRIPT : src/features/phone_accelerometer/vega/main.py Key Description [COMPUTE] Flag to activate/deactivate your provider [FEATURES] List of features your provider supports. Your provider code should only return the features on this list [MY_PARAMTER] An arbitrary parameter that our example provider VEGA needs. This can be a boolean, integer, float, string, or an array of any of such types. [SRC_SCRIPT] The relative path from RAPIDS\u2019 root folder to a script that computes the features for this provider. It can be implemented in R or Python. Create a feature provider script \u00b6 Create your feature Python or R script called main.py or main.R in the correct folder, src/feature/[sensorname]/[providername]/ . RAPIDS automatically loads and executes it based on the config key [SRC_SCRIPT] you added in the last step. For our example, this script is: src/feature/phone_accelerometer/vega/main.py Implement your feature extraction code \u00b6 Every feature script ( main.[py|R] ) needs a [providername]_features function with specific parameters. RAPIDS calls this function with the sensor data ready to process and with other functions and arguments you will need. Python function def [ providername ] _features ( sensor_data_files , time_segment , provider , filter_data_by_segment , * args , ** kwargs ): # empty for now return ( your_features_df ) R function [ providername ] _ features <- function ( sensor_data , time_segment , provider ){ # empty for now return ( your_features_df ) } Parameter Description sensor_data_files Path to the CSV file containing the data of a single participant. This data has been cleaned and preprocessed. Your function will be automatically called for each participant in your study (in the [PIDS] array in config.yaml ) time_segment The label of the time segment that should be processed. provider The parameters you configured for your provider in config.yaml will be available in this variable as a dictionary in Python or a list in R. In our example, this dictionary contains {MY_PARAMETER:\"a_string\"} filter_data_by_segment Python only. A function that you will use to filter your data. In R, this function is already available in the environment. *args Python only. Not used for now **kwargs Python only. Not used for now The next step is to implement the code that computes your behavioral features in your provider script\u2019s function. As with any other script, this function can call other auxiliary methods, but in general terms, it should have three stages: 1. Read a participant\u2019s data by loading the CSV data stored in the file pointed by sensor_data_files acc_data = pd . read_csv ( sensor_data_files [ \"sensor_data\" ]) Note that the phone\u2019s battery, screen, and activity recognition data are given as episodes instead of event rows (for example, start and end timestamps of the periods the phone screen was on) 2. Filter your data to process only those rows that belong to time_segment This step is only one line of code, but keep reading to understand why we need it. acc_data = filter_data_by_segment ( acc_data , time_segment ) You should use the filter_data_by_segment() function to process and group those rows that belong to each of the time segments RAPIDS could be configured with . Let\u2019s understand the filter_data_by_segment() function with an example. A RAPIDS user can extract features on any arbitrary time segment . A time segment is a period that has a label and one or more instances. For example, the user (or you) could have requested features on a daily, weekly, and weekend basis for p01 . The labels are arbitrary, and the instances depend on the days a participant was monitored for: the daily segment could be named my_days and if p01 was monitored for 14 days, it would have 14 instances the weekly segment could be named my_weeks and if p01 was monitored for 14 days, it would have 2 instances. the weekend segment could be named my_weekends and if p01 was monitored for 14 days, it would have 2 instances. For this example, RAPIDS will call your provider function three times for p01 , once where time_segment is my_days , once where time_segment is my_weeks , and once where time_segment is my_weekends . In this example, not every row in p01 \u2018s data needs to take part in the feature computation for either segment and the rows need to be grouped differently. Thus filter_data_by_segment() comes in handy, it will return a data frame that contains the rows that were logged during a time segment plus an extra column called local_segment . This new column will have as many unique values as time segment instances exist (14, 2, and 2 for our p01 \u2018s my_days , my_weeks , and my_weekends examples). After filtering, you should group the data frame by this column and compute any desired features , for example: acc_features [ \"maxmagnitude\" ] = acc_data . groupby ([ \"local_segment\" ])[ \"magnitude\" ] . max () The reason RAPIDS does not filter the participant\u2019s data set for you is because your code might need to compute something based on a participant\u2019s complete dataset before computing their features. For example, you might want to identify the number that called a participant the most throughout the study before computing a feature with the number of calls the participant received from that number. 3. Return a data frame with your features After filtering, grouping your data, and computing your features, your provider function should return a data frame that has: One row per time segment instance (e.g., 14 our p01 \u2018s my_days example) The local_segment column added by filter_data_by_segment() One column per feature. The name of your features should only contain letters or numbers ( feature1 ) by convention. RAPIDS automatically adds the correct sensor and provider prefix; in our example, this prefix is phone_accelerometr_vega_ . PHONE_ACCELEROMETER Provider Example For your reference, this our own provider ( RAPIDS ) for PHONE_ACCELEROMETER that computes five acceleration features import pandas as pd import numpy as np def rapids_features ( sensor_data_files , time_segment , provider , filter_data_by_segment , * args , ** kwargs ): acc_data = pd . read_csv ( sensor_data_files [ \"sensor_data\" ]) requested_features = provider [ \"FEATURES\" ] # name of the features this function can compute base_features_names = [ \"maxmagnitude\" , \"minmagnitude\" , \"avgmagnitude\" , \"medianmagnitude\" , \"stdmagnitude\" ] # the subset of requested features this function can compute features_to_compute = list ( set ( requested_features ) & set ( base_features_names )) acc_features = pd . DataFrame ( columns = [ \"local_segment\" ] + features_to_compute ) if not acc_data . empty : acc_data = filter_data_by_segment ( acc_data , time_segment ) if not acc_data . empty : acc_features = pd . DataFrame () # get magnitude related features: magnitude = sqrt(x^2+y^2+z^2) magnitude = acc_data . apply ( lambda row : np . sqrt ( row [ \"double_values_0\" ] ** 2 + row [ \"double_values_1\" ] ** 2 + row [ \"double_values_2\" ] ** 2 ), axis = 1 ) acc_data = acc_data . assign ( magnitude = magnitude . values ) if \"maxmagnitude\" in features_to_compute : acc_features [ \"maxmagnitude\" ] = acc_data . groupby ([ \"local_segment\" ])[ \"magnitude\" ] . max () if \"minmagnitude\" in features_to_compute : acc_features [ \"minmagnitude\" ] = acc_data . groupby ([ \"local_segment\" ])[ \"magnitude\" ] . min () if \"avgmagnitude\" in features_to_compute : acc_features [ \"avgmagnitude\" ] = acc_data . groupby ([ \"local_segment\" ])[ \"magnitude\" ] . mean () if \"medianmagnitude\" in features_to_compute : acc_features [ \"medianmagnitude\" ] = acc_data . groupby ([ \"local_segment\" ])[ \"magnitude\" ] . median () if \"stdmagnitude\" in features_to_compute : acc_features [ \"stdmagnitude\" ] = acc_data . groupby ([ \"local_segment\" ])[ \"magnitude\" ] . std () acc_features = acc_features . reset_index () return acc_features New Features for Non-Existing Sensors \u00b6 If you want to add features for a device or a sensor that we do not support at the moment (those that do not appear in the \"Existing Sensors\" list above), open a new discussion in Github and we can add the necessary code so you can follow the instructions above.","title":"Add New Features"},{"location":"features/add-new-features/#add-new-features","text":"Hint We recommend reading the Behavioral Features Introduction before reading this page. You can implement new features in Python or R scripts. You won\u2019t have to deal with time zones, dates, times, data cleaning, or preprocessing. The data that RAPIDS pipes to your feature extraction code are ready to process.","title":"Add New Features"},{"location":"features/add-new-features/#new-features-for-existing-sensors","text":"You can add new features to any existing sensors (see list below) by adding a new provider in three steps: Modify the config.yaml file Create your feature provider script Implement your features extraction code As a tutorial, we will add a new provider for PHONE_ACCELEROMETER called VEGA that extracts feature1 , feature2 , feature3 with a Python script that requires a parameter from the user called MY_PARAMETER . Existing Sensors An existing sensor of any device with a configuration entry in config.yaml : Smartphone (AWARE) Phone Accelerometer Phone Activity Recognition Phone Applications Crashes Phone Applications Foreground Phone Applications Notifications Phone Battery Phone Bluetooth Phone Calls Phone Conversation Phone Data Yield Phone Keyboard Phone Light Phone Locations Phone Log Phone Messages Phone Screen Phone WiFI Connected Phone WiFI Visible Fitbit Fitbit Data Yield Fitbit Heart Rate Summary Fitbit Heart Rate Intraday Fitbit Sleep Summary Fitbit Sleep Intraday Fitbit Steps Summary Fitbit Steps Intraday Empatica Empatica Accelerometer Empatica Heart Rate Empatica Temperature Empatica Electrodermal Activity Empatica Blood Volume Pulse Empatica Inter Beat Interval Empatica Tags","title":"New Features for Existing Sensors"},{"location":"features/add-new-features/#modify-the-configyaml-file","text":"In this step, you need to add your provider configuration section under the relevant sensor in config.yaml . See our example for our tutorial\u2019s VEGA provider for PHONE_ACCELEROMETER : Example configuration for a new accelerometer provider VEGA PHONE_ACCELEROMETER : CONTAINER : accelerometer PROVIDERS : RAPIDS : # this is a feature provider COMPUTE : False ... PANDA : # this is another feature provider COMPUTE : False ... VEGA : # this is our new feature provider COMPUTE : False FEATURES : [ \"feature1\" , \"feature2\" , \"feature3\" ] MY_PARAMTER : a_string SRC_SCRIPT : src/features/phone_accelerometer/vega/main.py Key Description [COMPUTE] Flag to activate/deactivate your provider [FEATURES] List of features your provider supports. Your provider code should only return the features on this list [MY_PARAMTER] An arbitrary parameter that our example provider VEGA needs. This can be a boolean, integer, float, string, or an array of any of such types. [SRC_SCRIPT] The relative path from RAPIDS\u2019 root folder to a script that computes the features for this provider. It can be implemented in R or Python.","title":"Modify the config.yaml file"},{"location":"features/add-new-features/#create-a-feature-provider-script","text":"Create your feature Python or R script called main.py or main.R in the correct folder, src/feature/[sensorname]/[providername]/ . RAPIDS automatically loads and executes it based on the config key [SRC_SCRIPT] you added in the last step. For our example, this script is: src/feature/phone_accelerometer/vega/main.py","title":"Create a feature provider script"},{"location":"features/add-new-features/#implement-your-feature-extraction-code","text":"Every feature script ( main.[py|R] ) needs a [providername]_features function with specific parameters. RAPIDS calls this function with the sensor data ready to process and with other functions and arguments you will need. Python function def [ providername ] _features ( sensor_data_files , time_segment , provider , filter_data_by_segment , * args , ** kwargs ): # empty for now return ( your_features_df ) R function [ providername ] _ features <- function ( sensor_data , time_segment , provider ){ # empty for now return ( your_features_df ) } Parameter Description sensor_data_files Path to the CSV file containing the data of a single participant. This data has been cleaned and preprocessed. Your function will be automatically called for each participant in your study (in the [PIDS] array in config.yaml ) time_segment The label of the time segment that should be processed. provider The parameters you configured for your provider in config.yaml will be available in this variable as a dictionary in Python or a list in R. In our example, this dictionary contains {MY_PARAMETER:\"a_string\"} filter_data_by_segment Python only. A function that you will use to filter your data. In R, this function is already available in the environment. *args Python only. Not used for now **kwargs Python only. Not used for now The next step is to implement the code that computes your behavioral features in your provider script\u2019s function. As with any other script, this function can call other auxiliary methods, but in general terms, it should have three stages: 1. Read a participant\u2019s data by loading the CSV data stored in the file pointed by sensor_data_files acc_data = pd . read_csv ( sensor_data_files [ \"sensor_data\" ]) Note that the phone\u2019s battery, screen, and activity recognition data are given as episodes instead of event rows (for example, start and end timestamps of the periods the phone screen was on) 2. Filter your data to process only those rows that belong to time_segment This step is only one line of code, but keep reading to understand why we need it. acc_data = filter_data_by_segment ( acc_data , time_segment ) You should use the filter_data_by_segment() function to process and group those rows that belong to each of the time segments RAPIDS could be configured with . Let\u2019s understand the filter_data_by_segment() function with an example. A RAPIDS user can extract features on any arbitrary time segment . A time segment is a period that has a label and one or more instances. For example, the user (or you) could have requested features on a daily, weekly, and weekend basis for p01 . The labels are arbitrary, and the instances depend on the days a participant was monitored for: the daily segment could be named my_days and if p01 was monitored for 14 days, it would have 14 instances the weekly segment could be named my_weeks and if p01 was monitored for 14 days, it would have 2 instances. the weekend segment could be named my_weekends and if p01 was monitored for 14 days, it would have 2 instances. For this example, RAPIDS will call your provider function three times for p01 , once where time_segment is my_days , once where time_segment is my_weeks , and once where time_segment is my_weekends . In this example, not every row in p01 \u2018s data needs to take part in the feature computation for either segment and the rows need to be grouped differently. Thus filter_data_by_segment() comes in handy, it will return a data frame that contains the rows that were logged during a time segment plus an extra column called local_segment . This new column will have as many unique values as time segment instances exist (14, 2, and 2 for our p01 \u2018s my_days , my_weeks , and my_weekends examples). After filtering, you should group the data frame by this column and compute any desired features , for example: acc_features [ \"maxmagnitude\" ] = acc_data . groupby ([ \"local_segment\" ])[ \"magnitude\" ] . max () The reason RAPIDS does not filter the participant\u2019s data set for you is because your code might need to compute something based on a participant\u2019s complete dataset before computing their features. For example, you might want to identify the number that called a participant the most throughout the study before computing a feature with the number of calls the participant received from that number. 3. Return a data frame with your features After filtering, grouping your data, and computing your features, your provider function should return a data frame that has: One row per time segment instance (e.g., 14 our p01 \u2018s my_days example) The local_segment column added by filter_data_by_segment() One column per feature. The name of your features should only contain letters or numbers ( feature1 ) by convention. RAPIDS automatically adds the correct sensor and provider prefix; in our example, this prefix is phone_accelerometr_vega_ . PHONE_ACCELEROMETER Provider Example For your reference, this our own provider ( RAPIDS ) for PHONE_ACCELEROMETER that computes five acceleration features import pandas as pd import numpy as np def rapids_features ( sensor_data_files , time_segment , provider , filter_data_by_segment , * args , ** kwargs ): acc_data = pd . read_csv ( sensor_data_files [ \"sensor_data\" ]) requested_features = provider [ \"FEATURES\" ] # name of the features this function can compute base_features_names = [ \"maxmagnitude\" , \"minmagnitude\" , \"avgmagnitude\" , \"medianmagnitude\" , \"stdmagnitude\" ] # the subset of requested features this function can compute features_to_compute = list ( set ( requested_features ) & set ( base_features_names )) acc_features = pd . DataFrame ( columns = [ \"local_segment\" ] + features_to_compute ) if not acc_data . empty : acc_data = filter_data_by_segment ( acc_data , time_segment ) if not acc_data . empty : acc_features = pd . DataFrame () # get magnitude related features: magnitude = sqrt(x^2+y^2+z^2) magnitude = acc_data . apply ( lambda row : np . sqrt ( row [ \"double_values_0\" ] ** 2 + row [ \"double_values_1\" ] ** 2 + row [ \"double_values_2\" ] ** 2 ), axis = 1 ) acc_data = acc_data . assign ( magnitude = magnitude . values ) if \"maxmagnitude\" in features_to_compute : acc_features [ \"maxmagnitude\" ] = acc_data . groupby ([ \"local_segment\" ])[ \"magnitude\" ] . max () if \"minmagnitude\" in features_to_compute : acc_features [ \"minmagnitude\" ] = acc_data . groupby ([ \"local_segment\" ])[ \"magnitude\" ] . min () if \"avgmagnitude\" in features_to_compute : acc_features [ \"avgmagnitude\" ] = acc_data . groupby ([ \"local_segment\" ])[ \"magnitude\" ] . mean () if \"medianmagnitude\" in features_to_compute : acc_features [ \"medianmagnitude\" ] = acc_data . groupby ([ \"local_segment\" ])[ \"magnitude\" ] . median () if \"stdmagnitude\" in features_to_compute : acc_features [ \"stdmagnitude\" ] = acc_data . groupby ([ \"local_segment\" ])[ \"magnitude\" ] . std () acc_features = acc_features . reset_index () return acc_features","title":"Implement your feature extraction code"},{"location":"features/add-new-features/#new-features-for-non-existing-sensors","text":"If you want to add features for a device or a sensor that we do not support at the moment (those that do not appear in the \"Existing Sensors\" list above), open a new discussion in Github and we can add the necessary code so you can follow the instructions above.","title":"New Features for Non-Existing Sensors"},{"location":"features/empatica-accelerometer/","text":"Empatica Accelerometer \u00b6 Sensor parameters description for [EMPATICA_ACCELEROMETER] : Key Description [CONTAINER] Name of the CSV file containing accelerometer data that is compressed inside an Empatica zip file. Since these zip files are created automatically by Empatica, there is no need to change the value of this attribute. DBDP provider \u00b6 Available time segments and platforms Available for all time segments File Sequence - data/raw/ { pid } /empatica_accelerometer_raw.csv - data/raw/ { pid } /empatica_accelerometer_with_datetime.csv - data/interim/ { pid } /empatica_accelerometer_features/empatica_accelerometer_ { language } _ { provider_key } .csv - data/processed/features/ { pid } /empatica_accelerometer.csv Parameters description for [EMPATICA_ACCELEROMETER][PROVIDERS][DBDP] : Key Description [COMPUTE] Set to True to extract EMPATICA_ACCELEROMETER features from the DBDP provider [FEATURES] Features to be computed, see table below Features description for [EMPATICA_ACCELEROMETER][PROVIDERS][RAPDBDPIDS] : Feature Units Description maxmagnitude m/s 2 The maximum magnitude of acceleration ( \\(\\|acceleration\\| = \\sqrt{x^2 + y^2 + z^2}\\) ). minmagnitude m/s 2 The minimum magnitude of acceleration. avgmagnitude m/s 2 The average magnitude of acceleration. medianmagnitude m/s 2 The median magnitude of acceleration. stdmagnitude m/s 2 The standard deviation of acceleration. Assumptions/Observations Analyzing accelerometer data is a memory intensive task. If RAPIDS crashes is likely because the accelerometer dataset for a participant is too big to fit in memory. We are considering different alternatives to overcome this problem, if this is something you need, get in touch and we can discuss how to implement it.","title":"Empatica Accelerometer"},{"location":"features/empatica-accelerometer/#empatica-accelerometer","text":"Sensor parameters description for [EMPATICA_ACCELEROMETER] : Key Description [CONTAINER] Name of the CSV file containing accelerometer data that is compressed inside an Empatica zip file. Since these zip files are created automatically by Empatica, there is no need to change the value of this attribute.","title":"Empatica Accelerometer"},{"location":"features/empatica-accelerometer/#dbdp-provider","text":"Available time segments and platforms Available for all time segments File Sequence - data/raw/ { pid } /empatica_accelerometer_raw.csv - data/raw/ { pid } /empatica_accelerometer_with_datetime.csv - data/interim/ { pid } /empatica_accelerometer_features/empatica_accelerometer_ { language } _ { provider_key } .csv - data/processed/features/ { pid } /empatica_accelerometer.csv Parameters description for [EMPATICA_ACCELEROMETER][PROVIDERS][DBDP] : Key Description [COMPUTE] Set to True to extract EMPATICA_ACCELEROMETER features from the DBDP provider [FEATURES] Features to be computed, see table below Features description for [EMPATICA_ACCELEROMETER][PROVIDERS][RAPDBDPIDS] : Feature Units Description maxmagnitude m/s 2 The maximum magnitude of acceleration ( \\(\\|acceleration\\| = \\sqrt{x^2 + y^2 + z^2}\\) ). minmagnitude m/s 2 The minimum magnitude of acceleration. avgmagnitude m/s 2 The average magnitude of acceleration. medianmagnitude m/s 2 The median magnitude of acceleration. stdmagnitude m/s 2 The standard deviation of acceleration. Assumptions/Observations Analyzing accelerometer data is a memory intensive task. If RAPIDS crashes is likely because the accelerometer dataset for a participant is too big to fit in memory. We are considering different alternatives to overcome this problem, if this is something you need, get in touch and we can discuss how to implement it.","title":"DBDP provider"},{"location":"features/empatica-blood-volume-pulse/","text":"Empatica Blood Volume Pulse \u00b6 Sensor parameters description for [EMPATICA_BLOOD_VOLUME_PULSE] : Key Description [CONTAINER] Name of the CSV file containing blood volume pulse data that is compressed inside an Empatica zip file. Since these zip files are created automatically by Empatica, there is no need to change the value of this attribute. DBDP provider \u00b6 Available time segments and platforms Available for all time segments File Sequence - data/raw/ { pid } /empatica_blood_volume_pulse_raw.csv - data/raw/ { pid } /empatica_blood_volume_pulse_with_datetime.csv - data/interim/ { pid } /empatica_blood_volume_pulse_features/empatica_blood_volume_pulse_ { language } _ { provider_key } .csv - data/processed/features/ { pid } /empatica_blood_volume_pulse.csv Parameters description for [EMPATICA_BLOOD_VOLUME_PULSE][PROVIDERS][DBDP] : Key Description [COMPUTE] Set to True to extract EMPATICA_BLOOD_VOLUME_PULSE features from the DBDP provider [FEATURES] Features to be computed from blood volume pulse intraday data, see table below Features description for [EMPATICA_BLOOD_VOLUME_PULSE][PROVIDERS][DBDP] : Feature Units Description maxbvp - The maximum blood volume pulse during a time segment. minbvp - The minimum blood volume pulse during a time segment. avgbvp - The average blood volume pulse during a time segment. medianbvp - The median of blood volume pulse during a time segment. modebvp - The mode of blood volume pulse during a time segment. stdbvp - The standard deviation of blood volume pulse during a time segment. diffmaxmodebvp - The difference between the maximum and mode blood volume pulse during a time segment. diffminmodebvp - The difference between the mode and minimum blood volume pulse during a time segment. entropybvp nats Shannon\u2019s entropy measurement based on blood volume pulse during a time segment. Assumptions/Observations For more information about BVP read this .","title":"Empatica Blood Volume Pulse"},{"location":"features/empatica-blood-volume-pulse/#empatica-blood-volume-pulse","text":"Sensor parameters description for [EMPATICA_BLOOD_VOLUME_PULSE] : Key Description [CONTAINER] Name of the CSV file containing blood volume pulse data that is compressed inside an Empatica zip file. Since these zip files are created automatically by Empatica, there is no need to change the value of this attribute.","title":"Empatica Blood Volume Pulse"},{"location":"features/empatica-blood-volume-pulse/#dbdp-provider","text":"Available time segments and platforms Available for all time segments File Sequence - data/raw/ { pid } /empatica_blood_volume_pulse_raw.csv - data/raw/ { pid } /empatica_blood_volume_pulse_with_datetime.csv - data/interim/ { pid } /empatica_blood_volume_pulse_features/empatica_blood_volume_pulse_ { language } _ { provider_key } .csv - data/processed/features/ { pid } /empatica_blood_volume_pulse.csv Parameters description for [EMPATICA_BLOOD_VOLUME_PULSE][PROVIDERS][DBDP] : Key Description [COMPUTE] Set to True to extract EMPATICA_BLOOD_VOLUME_PULSE features from the DBDP provider [FEATURES] Features to be computed from blood volume pulse intraday data, see table below Features description for [EMPATICA_BLOOD_VOLUME_PULSE][PROVIDERS][DBDP] : Feature Units Description maxbvp - The maximum blood volume pulse during a time segment. minbvp - The minimum blood volume pulse during a time segment. avgbvp - The average blood volume pulse during a time segment. medianbvp - The median of blood volume pulse during a time segment. modebvp - The mode of blood volume pulse during a time segment. stdbvp - The standard deviation of blood volume pulse during a time segment. diffmaxmodebvp - The difference between the maximum and mode blood volume pulse during a time segment. diffminmodebvp - The difference between the mode and minimum blood volume pulse during a time segment. entropybvp nats Shannon\u2019s entropy measurement based on blood volume pulse during a time segment. Assumptions/Observations For more information about BVP read this .","title":"DBDP provider"},{"location":"features/empatica-electrodermal-activity/","text":"Empatica Electrodermal Activity \u00b6 Sensor parameters description for [EMPATICA_ELECTRODERMAL_ACTIVITY] : Key Description [CONTAINER] Name of the CSV file containing electrodermal activity data that is compressed inside an Empatica zip file. Since these zip files are created automatically by Empatica, there is no need to change the value of this attribute. DBDP provider \u00b6 Available time segments and platforms Available for all time segments File Sequence - data/raw/ { pid } /empatica_electrodermal_activity_raw.csv - data/raw/ { pid } /empatica_electrodermal_activity_with_datetime.csv - data/interim/ { pid } /empatica_electrodermal_activity_features/empatica_electrodermal activity_ { language } _ { provider_key } .csv - data/processed/features/ { pid } /empatica_electrodermal_activity.csv Parameters description for [EMPATICA_ELECTRODERMAL_ACTIVITY][PROVIDERS][DBDP] : Key Description [COMPUTE] Set to True to extract EMPATICA_ELECTRODERMAL_ACTIVITY features from the DBDP provider [FEATURES] Features to be computed from electrodermal activity intraday data, see table below Features description for [EMPATICA_ELECTRODERMAL ACTIVITY][PROVIDERS][DBDP] : Feature Units Description maxeda microsiemens The maximum electrical conductance during a time segment. mineda microsiemens The minimum electrical conductance during a time segment. avgeda microsiemens The average electrical conductance during a time segment. medianeda microsiemens The median of electrical conductance during a time segment. modeeda microsiemens The mode of electrical conductance during a time segment. stdeda microsiemens The standard deviation of electrical conductance during a time segment. diffmaxmodeeda microsiemens The difference between the maximum and mode electrical conductance during a time segment. diffminmodeeda microsiemens The difference between the mode and minimum electrical conductance during a time segment. entropyeda nats Shannon\u2019s entropy measurement based on electrical conductance during a time segment. Assumptions/Observations None","title":"Empatica Electrodermal Activity"},{"location":"features/empatica-electrodermal-activity/#empatica-electrodermal-activity","text":"Sensor parameters description for [EMPATICA_ELECTRODERMAL_ACTIVITY] : Key Description [CONTAINER] Name of the CSV file containing electrodermal activity data that is compressed inside an Empatica zip file. Since these zip files are created automatically by Empatica, there is no need to change the value of this attribute.","title":"Empatica Electrodermal Activity"},{"location":"features/empatica-electrodermal-activity/#dbdp-provider","text":"Available time segments and platforms Available for all time segments File Sequence - data/raw/ { pid } /empatica_electrodermal_activity_raw.csv - data/raw/ { pid } /empatica_electrodermal_activity_with_datetime.csv - data/interim/ { pid } /empatica_electrodermal_activity_features/empatica_electrodermal activity_ { language } _ { provider_key } .csv - data/processed/features/ { pid } /empatica_electrodermal_activity.csv Parameters description for [EMPATICA_ELECTRODERMAL_ACTIVITY][PROVIDERS][DBDP] : Key Description [COMPUTE] Set to True to extract EMPATICA_ELECTRODERMAL_ACTIVITY features from the DBDP provider [FEATURES] Features to be computed from electrodermal activity intraday data, see table below Features description for [EMPATICA_ELECTRODERMAL ACTIVITY][PROVIDERS][DBDP] : Feature Units Description maxeda microsiemens The maximum electrical conductance during a time segment. mineda microsiemens The minimum electrical conductance during a time segment. avgeda microsiemens The average electrical conductance during a time segment. medianeda microsiemens The median of electrical conductance during a time segment. modeeda microsiemens The mode of electrical conductance during a time segment. stdeda microsiemens The standard deviation of electrical conductance during a time segment. diffmaxmodeeda microsiemens The difference between the maximum and mode electrical conductance during a time segment. diffminmodeeda microsiemens The difference between the mode and minimum electrical conductance during a time segment. entropyeda nats Shannon\u2019s entropy measurement based on electrical conductance during a time segment. Assumptions/Observations None","title":"DBDP provider"},{"location":"features/empatica-heartrate/","text":"Empatica Heart Rate \u00b6 Sensor parameters description for [EMPATICA_HEARTRATE] : Key Description [CONTAINER] Name of the CSV file containing heart rate data that is compressed inside an Empatica zip file. Since these zip files are created automatically by Empatica, there is no need to change the value of this attribute. DBDP provider \u00b6 Available time segments and platforms Available for all time segments File Sequence - data/raw/ { pid } /empatica_heartrate_raw.csv - data/raw/ { pid } /empatica_heartrate_with_datetime.csv - data/interim/ { pid } /empatica_heartrate_features/empatica_heartrate_ { language } _ { provider_key } .csv - data/processed/features/ { pid } /empatica_heartrate.csv Parameters description for [EMPATICA_HEARTRATE][PROVIDERS][DBDP] : Key Description [COMPUTE] Set to True to extract EMPATICA_HEARTRATE features from the DBDP provider [FEATURES] Features to be computed from heart rate intraday data, see table below Features description for [EMPATICA_HEARTRATE][PROVIDERS][DBDP] : Feature Units Description maxhr beats The maximum heart rate during a time segment. minhr beats The minimum heart rate during a time segment. avghr beats The average heart rate during a time segment. medianhr beats The median of heart rate during a time segment. modehr beats The mode of heart rate during a time segment. stdhr beats The standard deviation of heart rate during a time segment. diffmaxmodehr beats The difference between the maximum and mode heart rate during a time segment. diffminmodehr beats The difference between the mode and minimum heart rate during a time segment. entropyhr nats Shannon\u2019s entropy measurement based on heart rate during a time segment. Assumptions/Observations We extract the previous features based on the average heart rate values computed in 10-second windows .","title":"Empatica Heart Rate"},{"location":"features/empatica-heartrate/#empatica-heart-rate","text":"Sensor parameters description for [EMPATICA_HEARTRATE] : Key Description [CONTAINER] Name of the CSV file containing heart rate data that is compressed inside an Empatica zip file. Since these zip files are created automatically by Empatica, there is no need to change the value of this attribute.","title":"Empatica Heart Rate"},{"location":"features/empatica-heartrate/#dbdp-provider","text":"Available time segments and platforms Available for all time segments File Sequence - data/raw/ { pid } /empatica_heartrate_raw.csv - data/raw/ { pid } /empatica_heartrate_with_datetime.csv - data/interim/ { pid } /empatica_heartrate_features/empatica_heartrate_ { language } _ { provider_key } .csv - data/processed/features/ { pid } /empatica_heartrate.csv Parameters description for [EMPATICA_HEARTRATE][PROVIDERS][DBDP] : Key Description [COMPUTE] Set to True to extract EMPATICA_HEARTRATE features from the DBDP provider [FEATURES] Features to be computed from heart rate intraday data, see table below Features description for [EMPATICA_HEARTRATE][PROVIDERS][DBDP] : Feature Units Description maxhr beats The maximum heart rate during a time segment. minhr beats The minimum heart rate during a time segment. avghr beats The average heart rate during a time segment. medianhr beats The median of heart rate during a time segment. modehr beats The mode of heart rate during a time segment. stdhr beats The standard deviation of heart rate during a time segment. diffmaxmodehr beats The difference between the maximum and mode heart rate during a time segment. diffminmodehr beats The difference between the mode and minimum heart rate during a time segment. entropyhr nats Shannon\u2019s entropy measurement based on heart rate during a time segment. Assumptions/Observations We extract the previous features based on the average heart rate values computed in 10-second windows .","title":"DBDP provider"},{"location":"features/empatica-inter-beat-interval/","text":"Empatica Inter Beat Interval \u00b6 Sensor parameters description for [EMPATICA_INTER_BEAT_INTERVAL] : Key Description [CONTAINER] Name of the CSV file containing inter beat interval data that is compressed inside an Empatica zip file. Since these zip files are created automatically by Empatica, there is no need to change the value of this attribute. DBDP provider \u00b6 Available time segments and platforms Available for all time segments File Sequence - data/raw/ { pid } /empatica_inter_beat_interval_raw.csv - data/raw/ { pid } /empatica_inter_beat_interval_with_datetime.csv - data/interim/ { pid } /empatica_inter_beat_interval_features/empatica_inter_beat_interval_ { language } _ { provider_key } .csv - data/processed/features/ { pid } /empatica_inter_beat_interval.csv Parameters description for [EMPATICA_INTER_BEAT_INTERVAL][PROVIDERS][DBDP] : Key Description [COMPUTE] Set to True to extract EMPATICA_INTER_BEAT_INTERVAL features from the DBDP provider [FEATURES] Features to be computed from inter beat interval intraday data, see table below Features description for [EMPATICA_INTER_BEAT_INTERVAL][PROVIDERS][DBDP] : Feature Units Description maxibi seconds The maximum inter beat interval during a time segment. minibi seconds The minimum inter beat interval during a time segment. avgibi seconds The average inter beat interval during a time segment. medianibi seconds The median of inter beat interval during a time segment. modeibi seconds The mode of inter beat interval during a time segment. stdibi seconds The standard deviation of inter beat interval during a time segment. diffmaxmodeibi seconds The difference between the maximum and mode inter beat interval during a time segment. diffminmodeibi seconds The difference between the mode and minimum inter beat interval during a time segment. entropyibi nats Shannon\u2019s entropy measurement based on inter beat interval during a time segment. Assumptions/Observations For more information about IBI read this .","title":"Empatica Inter Beat Interval"},{"location":"features/empatica-inter-beat-interval/#empatica-inter-beat-interval","text":"Sensor parameters description for [EMPATICA_INTER_BEAT_INTERVAL] : Key Description [CONTAINER] Name of the CSV file containing inter beat interval data that is compressed inside an Empatica zip file. Since these zip files are created automatically by Empatica, there is no need to change the value of this attribute.","title":"Empatica Inter Beat Interval"},{"location":"features/empatica-inter-beat-interval/#dbdp-provider","text":"Available time segments and platforms Available for all time segments File Sequence - data/raw/ { pid } /empatica_inter_beat_interval_raw.csv - data/raw/ { pid } /empatica_inter_beat_interval_with_datetime.csv - data/interim/ { pid } /empatica_inter_beat_interval_features/empatica_inter_beat_interval_ { language } _ { provider_key } .csv - data/processed/features/ { pid } /empatica_inter_beat_interval.csv Parameters description for [EMPATICA_INTER_BEAT_INTERVAL][PROVIDERS][DBDP] : Key Description [COMPUTE] Set to True to extract EMPATICA_INTER_BEAT_INTERVAL features from the DBDP provider [FEATURES] Features to be computed from inter beat interval intraday data, see table below Features description for [EMPATICA_INTER_BEAT_INTERVAL][PROVIDERS][DBDP] : Feature Units Description maxibi seconds The maximum inter beat interval during a time segment. minibi seconds The minimum inter beat interval during a time segment. avgibi seconds The average inter beat interval during a time segment. medianibi seconds The median of inter beat interval during a time segment. modeibi seconds The mode of inter beat interval during a time segment. stdibi seconds The standard deviation of inter beat interval during a time segment. diffmaxmodeibi seconds The difference between the maximum and mode inter beat interval during a time segment. diffminmodeibi seconds The difference between the mode and minimum inter beat interval during a time segment. entropyibi nats Shannon\u2019s entropy measurement based on inter beat interval during a time segment. Assumptions/Observations For more information about IBI read this .","title":"DBDP provider"},{"location":"features/empatica-tags/","text":"Empatica Tags \u00b6 Sensor parameters description for [EMPATICA_TAGS] : Key Description [CONTAINER] Name of the CSV file containing tags data that is compressed inside an Empatica zip file. Since these zip files are created automatically by Empatica, there is no need to change the value of this attribute. Note No feature providers have been implemented for this sensor yet, however you can implement your own features . To know more about tags read this .","title":"Empatica Tags"},{"location":"features/empatica-tags/#empatica-tags","text":"Sensor parameters description for [EMPATICA_TAGS] : Key Description [CONTAINER] Name of the CSV file containing tags data that is compressed inside an Empatica zip file. Since these zip files are created automatically by Empatica, there is no need to change the value of this attribute. Note No feature providers have been implemented for this sensor yet, however you can implement your own features . To know more about tags read this .","title":"Empatica Tags"},{"location":"features/empatica-temperature/","text":"Empatica Temperature \u00b6 Sensor parameters description for [EMPATICA_TEMPERATURE] : Key Description [CONTAINER] Name of the CSV file containing temperature data that is compressed inside an Empatica zip file. Since these zip files are created automatically by Empatica, there is no need to change the value of this attribute. DBDP provider \u00b6 Available time segments and platforms Available for all time segments File Sequence - data/raw/ { pid } /empatica_temperature_raw.csv - data/raw/ { pid } /empatica_temperature_with_datetime.csv - data/interim/ { pid } /empatica_temperature_features/empatica_temperature_ { language } _ { provider_key } .csv - data/processed/features/ { pid } /empatica_temperature.csv Parameters description for [EMPATICA_TEMPERATURE][PROVIDERS][DBDP] : Key Description [COMPUTE] Set to True to extract EMPATICA_TEMPERATURE features from the DBDP provider [FEATURES] Features to be computed from temperature intraday data, see table below Features description for [EMPATICA_TEMPERATURE][PROVIDERS][DBDP] : Feature Units Description maxtemp degrees C The maximum temperature during a time segment. mintemp degrees C The minimum temperature during a time segment. avgtemp degrees C The average temperature during a time segment. mediantemp degrees C The median of temperature during a time segment. modetemp degrees C The mode of temperature during a time segment. stdtemp degrees C The standard deviation of temperature during a time segment. diffmaxmodetemp degrees C The difference between the maximum and mode temperature during a time segment. diffminmodetemp degrees C The difference between the mode and minimum temperature during a time segment. entropytemp nats Shannon\u2019s entropy measurement based on temperature during a time segment. Assumptions/Observations None","title":"Empatica Temperature"},{"location":"features/empatica-temperature/#empatica-temperature","text":"Sensor parameters description for [EMPATICA_TEMPERATURE] : Key Description [CONTAINER] Name of the CSV file containing temperature data that is compressed inside an Empatica zip file. Since these zip files are created automatically by Empatica, there is no need to change the value of this attribute.","title":"Empatica Temperature"},{"location":"features/empatica-temperature/#dbdp-provider","text":"Available time segments and platforms Available for all time segments File Sequence - data/raw/ { pid } /empatica_temperature_raw.csv - data/raw/ { pid } /empatica_temperature_with_datetime.csv - data/interim/ { pid } /empatica_temperature_features/empatica_temperature_ { language } _ { provider_key } .csv - data/processed/features/ { pid } /empatica_temperature.csv Parameters description for [EMPATICA_TEMPERATURE][PROVIDERS][DBDP] : Key Description [COMPUTE] Set to True to extract EMPATICA_TEMPERATURE features from the DBDP provider [FEATURES] Features to be computed from temperature intraday data, see table below Features description for [EMPATICA_TEMPERATURE][PROVIDERS][DBDP] : Feature Units Description maxtemp degrees C The maximum temperature during a time segment. mintemp degrees C The minimum temperature during a time segment. avgtemp degrees C The average temperature during a time segment. mediantemp degrees C The median of temperature during a time segment. modetemp degrees C The mode of temperature during a time segment. stdtemp degrees C The standard deviation of temperature during a time segment. diffmaxmodetemp degrees C The difference between the maximum and mode temperature during a time segment. diffminmodetemp degrees C The difference between the mode and minimum temperature during a time segment. entropytemp nats Shannon\u2019s entropy measurement based on temperature during a time segment. Assumptions/Observations None","title":"DBDP provider"},{"location":"features/feature-introduction/","text":"Behavioral Features Introduction \u00b6 A behavioral feature is a metric computed from raw sensor data quantifying the behavior of a participant. For example, the time spent at home computed based on location data. These are also known as digital biomarkers. RAPIDS\u2019 config.yaml has a section for each supported device/sensor (e.g., PHONE_ACCELEROMETER , FITBIT_STEPS , EMPATICA_HEARTRATE ). These sections follow a similar structure, and they can have one or more feature PROVIDERS , that compute one or more behavioral features. You will modify the parameters of these PROVIDERS to obtain features from different mobile sensors. We\u2019ll use PHONE_ACCELEROMETER as an example to explain this further. Hint We recommend reading this page if you are using RAPIDS for the first time All computed sensor features are stored under /data/processed/features on files per sensor, per participant and per study (all participants). Every time you change any sensor parameters, provider parameters or provider features, all the necessary files will be updated as soon as you execute RAPIDS. In short, to extract features offered by a provider, you need to set its [COMPUTE] flag to TRUE , configure any of its parameters, and execute RAPIDS. Explaining the config.yaml sensor sections with an example \u00b6 Each sensor section follows the same structure. Click on the numbered markers to know more. PHONE_ACCELEROMETER : # (1) CONTAINER : accelerometer # (2) PROVIDERS : # (3) RAPIDS : COMPUTE : False # (4) FEATURES : [ \"maxmagnitude\" , \"minmagnitude\" , \"avgmagnitude\" , \"medianmagnitude\" , \"stdmagnitude\" ] SRC_SCRIPT : src/features/phone_accelerometer/rapids/main.py PANDA : COMPUTE : False VALID_SENSED_MINUTES : False FEATURES : # (5) exertional_activity_episode : [ \"sumduration\" , \"maxduration\" , \"minduration\" , \"avgduration\" , \"medianduration\" , \"stdduration\" ] nonexertional_activity_episode : [ \"sumduration\" , \"maxduration\" , \"minduration\" , \"avgduration\" , \"medianduration\" , \"stdduration\" ] # (6) SRC_SCRIPT : src/features/phone_accelerometer/panda/main.py Sensor section Each sensor (accelerometer, screen, etc.) of every supported device (smartphone, Fitbit, etc.) has a section in the config.yaml with parameters and feature PROVIDERS . Sensor Parameters. Each sensor section has one or more parameters. These are parameters that affect different aspects of how the raw data is pulled, and processed. The CONTAINER parameter exists for every sensor, but some sensors will have extra parameters like [PHONE_LOCATIONS] . We explain these parameters in a table at the top of each sensor documentation page. Sensor Providers Each object in this list represents a feature PROVIDER . Each sensor can have zero, one, or more providers. A PROVIDER is a script that creates behavioral features for a specific sensor. Providers are created by the core RAPIDS team or by the community, which are named after its first author like [PHONE_LOCATIONS][DORYAB] . In this example, there are two accelerometer feature providers RAPIDS and PANDA . PROVIDER Parameters Each PROVIDER has parameters that affect the computation of the behavioral features it offers. These parameters include at least a [COMPUTE] flag that you switch to True to extract a provider\u2019s behavioral features. We explain every provider\u2019s parameter in a table under the Parameters description heading on each provider documentation page. PROVIDER Features Each PROVIDER offers a set of behavioral features. These features are grouped in an array for some providers, like those for RAPIDS provider. For others, they are grouped in a collection of arrays, like those for PANDAS provider. In either case, you can delete the features you are not interested in, and they will not be included in the sensor\u2019s output feature file. We explain each behavioral feature in a table under the Features description heading on each provider documentation page. PROVIDER script Each PROVIDER has a SRC_SCRIPT that points to the script implementing its behavioral features. It has to be a relative path from RAPIDS\u2019 root folder and the script\u2019s parent folder should be named after the provider, e.g. panda . These are the descriptions of each marker for accessibility: Sensor section Each sensor (accelerometer, screen, etc.) of every supported device (smartphone, Fitbit, etc.) has a section in the config.yaml with parameters and feature PROVIDERS . Sensor Parameters. Each sensor section has one or more parameters. These are parameters that affect different aspects of how the raw data is pulled, and processed. The CONTAINER parameter exists for every sensor, but some sensors will have extra parameters like [PHONE_LOCATIONS] . We explain these parameters in a table at the top of each sensor documentation page. Sensor Providers Each object in this list represents a feature PROVIDER . Each sensor can have zero, one, or more providers. A PROVIDER is a script that creates behavioral features for a specific sensor. Providers are created by the core RAPIDS team or by the community, which are named after its first author like [PHONE_LOCATIONS][DORYAB] . In this example, there are two accelerometer feature providers RAPIDS and PANDA . PROVIDER Parameters Each PROVIDER has parameters that affect the computation of the behavioral features it offers. These parameters include at least a [COMPUTE] flag that you switch to True to extract a provider\u2019s behavioral features. We explain every provider\u2019s parameter in a table under the Parameters description heading on each provider documentation page. PROVIDER Features Each PROVIDER offers a set of behavioral features. These features are grouped in an array for some providers, like those for RAPIDS provider. For others, they are grouped in a collection of arrays, like those for PANDAS provider. In either case, you can delete the features you are not interested in, and they will not be included in the sensor\u2019s output feature file. We explain each behavioral feature in a table under the Features description heading on each provider documentation page. PROVIDER script Each PROVIDER has a SRC_SCRIPT that points to the script implementing its behavioral features. It has to be a relative path from RAPIDS\u2019 root folder and the script\u2019s parent folder should be named after the provider, e.g. panda .","title":"Introduction"},{"location":"features/feature-introduction/#behavioral-features-introduction","text":"A behavioral feature is a metric computed from raw sensor data quantifying the behavior of a participant. For example, the time spent at home computed based on location data. These are also known as digital biomarkers. RAPIDS\u2019 config.yaml has a section for each supported device/sensor (e.g., PHONE_ACCELEROMETER , FITBIT_STEPS , EMPATICA_HEARTRATE ). These sections follow a similar structure, and they can have one or more feature PROVIDERS , that compute one or more behavioral features. You will modify the parameters of these PROVIDERS to obtain features from different mobile sensors. We\u2019ll use PHONE_ACCELEROMETER as an example to explain this further. Hint We recommend reading this page if you are using RAPIDS for the first time All computed sensor features are stored under /data/processed/features on files per sensor, per participant and per study (all participants). Every time you change any sensor parameters, provider parameters or provider features, all the necessary files will be updated as soon as you execute RAPIDS. In short, to extract features offered by a provider, you need to set its [COMPUTE] flag to TRUE , configure any of its parameters, and execute RAPIDS.","title":"Behavioral Features Introduction"},{"location":"features/feature-introduction/#explaining-the-configyaml-sensor-sections-with-an-example","text":"Each sensor section follows the same structure. Click on the numbered markers to know more. PHONE_ACCELEROMETER : # (1) CONTAINER : accelerometer # (2) PROVIDERS : # (3) RAPIDS : COMPUTE : False # (4) FEATURES : [ \"maxmagnitude\" , \"minmagnitude\" , \"avgmagnitude\" , \"medianmagnitude\" , \"stdmagnitude\" ] SRC_SCRIPT : src/features/phone_accelerometer/rapids/main.py PANDA : COMPUTE : False VALID_SENSED_MINUTES : False FEATURES : # (5) exertional_activity_episode : [ \"sumduration\" , \"maxduration\" , \"minduration\" , \"avgduration\" , \"medianduration\" , \"stdduration\" ] nonexertional_activity_episode : [ \"sumduration\" , \"maxduration\" , \"minduration\" , \"avgduration\" , \"medianduration\" , \"stdduration\" ] # (6) SRC_SCRIPT : src/features/phone_accelerometer/panda/main.py Sensor section Each sensor (accelerometer, screen, etc.) of every supported device (smartphone, Fitbit, etc.) has a section in the config.yaml with parameters and feature PROVIDERS . Sensor Parameters. Each sensor section has one or more parameters. These are parameters that affect different aspects of how the raw data is pulled, and processed. The CONTAINER parameter exists for every sensor, but some sensors will have extra parameters like [PHONE_LOCATIONS] . We explain these parameters in a table at the top of each sensor documentation page. Sensor Providers Each object in this list represents a feature PROVIDER . Each sensor can have zero, one, or more providers. A PROVIDER is a script that creates behavioral features for a specific sensor. Providers are created by the core RAPIDS team or by the community, which are named after its first author like [PHONE_LOCATIONS][DORYAB] . In this example, there are two accelerometer feature providers RAPIDS and PANDA . PROVIDER Parameters Each PROVIDER has parameters that affect the computation of the behavioral features it offers. These parameters include at least a [COMPUTE] flag that you switch to True to extract a provider\u2019s behavioral features. We explain every provider\u2019s parameter in a table under the Parameters description heading on each provider documentation page. PROVIDER Features Each PROVIDER offers a set of behavioral features. These features are grouped in an array for some providers, like those for RAPIDS provider. For others, they are grouped in a collection of arrays, like those for PANDAS provider. In either case, you can delete the features you are not interested in, and they will not be included in the sensor\u2019s output feature file. We explain each behavioral feature in a table under the Features description heading on each provider documentation page. PROVIDER script Each PROVIDER has a SRC_SCRIPT that points to the script implementing its behavioral features. It has to be a relative path from RAPIDS\u2019 root folder and the script\u2019s parent folder should be named after the provider, e.g. panda . These are the descriptions of each marker for accessibility: Sensor section Each sensor (accelerometer, screen, etc.) of every supported device (smartphone, Fitbit, etc.) has a section in the config.yaml with parameters and feature PROVIDERS . Sensor Parameters. Each sensor section has one or more parameters. These are parameters that affect different aspects of how the raw data is pulled, and processed. The CONTAINER parameter exists for every sensor, but some sensors will have extra parameters like [PHONE_LOCATIONS] . We explain these parameters in a table at the top of each sensor documentation page. Sensor Providers Each object in this list represents a feature PROVIDER . Each sensor can have zero, one, or more providers. A PROVIDER is a script that creates behavioral features for a specific sensor. Providers are created by the core RAPIDS team or by the community, which are named after its first author like [PHONE_LOCATIONS][DORYAB] . In this example, there are two accelerometer feature providers RAPIDS and PANDA . PROVIDER Parameters Each PROVIDER has parameters that affect the computation of the behavioral features it offers. These parameters include at least a [COMPUTE] flag that you switch to True to extract a provider\u2019s behavioral features. We explain every provider\u2019s parameter in a table under the Parameters description heading on each provider documentation page. PROVIDER Features Each PROVIDER offers a set of behavioral features. These features are grouped in an array for some providers, like those for RAPIDS provider. For others, they are grouped in a collection of arrays, like those for PANDAS provider. In either case, you can delete the features you are not interested in, and they will not be included in the sensor\u2019s output feature file. We explain each behavioral feature in a table under the Features description heading on each provider documentation page. PROVIDER script Each PROVIDER has a SRC_SCRIPT that points to the script implementing its behavioral features. It has to be a relative path from RAPIDS\u2019 root folder and the script\u2019s parent folder should be named after the provider, e.g. panda .","title":"Explaining the config.yaml sensor sections with an example"},{"location":"features/fitbit-calories-intraday/","text":"Fitbit Calories Intraday \u00b6 Sensor parameters description for [FITBIT_CALORIES_INTRADAY] : Key Description [CONTAINER] Container where your calories intraday data is stored, depending on the data stream you are using this can be a database table, a CSV file, etc. RAPIDS provider \u00b6 Available time segments Available for all time segments File Sequence - data/raw/ { pid } /fitbit_calories_intraday_raw.csv - data/raw/ { pid } /fitbit_calories_intraday_with_datetime.csv - data/interim/ { pid } /fitbit_calories_intraday_features/fitbit_calories_intraday_ { language } _ { provider_key } .csv - data/processed/features/ { pid } /fitbit_calories_intraday.csv Parameters description for [FITBIT_CALORIES_INTRADAY][PROVIDERS][RAPIDS] : Key Description [COMPUTE] Set to True to extract FITBIT_CALORIES_INTRADAY features from the RAPIDS provider [FEATURES] Features to be computed from calories intraday data, see table below [EPISODE_TYPE] RAPIDS will compute features for any episodes in this list. There are seven types of episodes defined as consecutive appearances of a label. Four are based on the activity level labels provided by Fitbit: sedentary , lightly active , fairly active , and very active . One is defined by RAPIDS as moderate to vigorous physical activity MVPA episodes that are based on all fairly active , and very active labels. Two are defined by the user based on a threshold that divides low or high MET (metabolic equivalent) episodes. EPISODE_TIME_THRESHOLD Any consecutive rows of the same [EPISODE_TYPE] will be considered a single episode if the time difference between them is less or equal than this threshold in minutes [EPISODE_MET_THRESHOLD] Any 1-minute calorie data chunk with a MET value equal or higher than this threshold will be considered a high MET episode and low MET otherwise. The default value is 3 [EPISODE_MVPA_CATEGORIES] The Fitbit level labels that are considered part of a moderate to vigorous physical activity episode. One or more of sedentary , lightly active , fairly active , and very active . The default are fairly active and very active [EPISODE_REFERENCE_TIME] Reference time for the start/end time features. MIDNIGHT sets the reference time to 00:00 of each day, START_OF_THE_SEGMENT sets the reference time to the start of the time segment (useful when a segment is shorter than a day or spans multiple days) Features description for [FITBIT_CALORIES_INTRADAY][PROVIDERS][RAPIDS] : Feature Units Description starttimefirstepisode EPISODE_TYPE minutes Start time of the first episode of type [EPISODE_TYPE] endtimefirstepisode EPISODE_TYPE minutes End time of the first episode of type [EPISODE_TYPE] starttimelastepisode EPISODE_TYPE minutes Start time of the last episode of type [EPISODE_TYPE] endtimelastepisode EPISODE_TYPE minutes End time of the last episode of type [EPISODE_TYPE] starttimelongestepisode EPISODE_TYPE minutes Start time of the longest episode of type [EPISODE_TYPE] endtimelongestepisode EPISODE_TYPE minutes End time of the longest episode of type [EPISODE_TYPE] countepisode EPISODE_TYPE episodes The number of episodes of type [EPISODE_TYPE] sumdurationepisode EPISODE_TYPE minutes The sum of the duration of episodes of type [EPISODE_TYPE] avgdurationepisode EPISODE_TYPE minutes The average of the duration of episodes of type [EPISODE_TYPE] maxdurationepisode EPISODE_TYPE minutes The maximum of the duration of episodes of type [EPISODE_TYPE] mindurationepisode EPISODE_TYPE minutes The minimum of the duration of episodes of type [EPISODE_TYPE] stddurationepisode EPISODE_TYPE minutes The standard deviation of the duration of episodes of type [EPISODE_TYPE] summet EPISODE_TYPE METs The sum of all METs during episodes of type [EPISODE_TYPE] avgmet EPISODE_TYPE METs The average of all METs during episodes of type [EPISODE_TYPE] maxmet EPISODE_TYPE METs The maximum of all METs during episodes of type [EPISODE_TYPE] minmet EPISODE_TYPE METs The minimum of all METs during episodes of type [EPISODE_TYPE] stdmet EPISODE_TYPE METs The standard deviation of all METs during episodes of type [EPISODE_TYPE] sumcalories EPISODE_TYPE calories The sum of all calories during episodes of type [EPISODE_TYPE] avgcalories EPISODE_TYPE calories The average of all calories during episodes of type [EPISODE_TYPE] maxcalories EPISODE_TYPE calories The maximum of all calories during episodes of type [EPISODE_TYPE] mincalories EPISODE_TYPE calories The minimum of all calories during episodes of type [EPISODE_TYPE] stdcalories EPISODE_TYPE calories The standard deviation of all calories during episodes of type [EPISODE_TYPE] Assumptions/Observations These features are based on intraday calories data that is usually obtained in 1-minute chunks from Fitbit\u2019s API. The MET value returned by Fitbit is divided by 10 Take into account that the intraday data returned by Fitbit can contain time series for calories burned inclusive of BMR, tracked activity, and manually logged activities.","title":"Fitbit Calories Intraday"},{"location":"features/fitbit-calories-intraday/#fitbit-calories-intraday","text":"Sensor parameters description for [FITBIT_CALORIES_INTRADAY] : Key Description [CONTAINER] Container where your calories intraday data is stored, depending on the data stream you are using this can be a database table, a CSV file, etc.","title":"Fitbit Calories Intraday"},{"location":"features/fitbit-calories-intraday/#rapids-provider","text":"Available time segments Available for all time segments File Sequence - data/raw/ { pid } /fitbit_calories_intraday_raw.csv - data/raw/ { pid } /fitbit_calories_intraday_with_datetime.csv - data/interim/ { pid } /fitbit_calories_intraday_features/fitbit_calories_intraday_ { language } _ { provider_key } .csv - data/processed/features/ { pid } /fitbit_calories_intraday.csv Parameters description for [FITBIT_CALORIES_INTRADAY][PROVIDERS][RAPIDS] : Key Description [COMPUTE] Set to True to extract FITBIT_CALORIES_INTRADAY features from the RAPIDS provider [FEATURES] Features to be computed from calories intraday data, see table below [EPISODE_TYPE] RAPIDS will compute features for any episodes in this list. There are seven types of episodes defined as consecutive appearances of a label. Four are based on the activity level labels provided by Fitbit: sedentary , lightly active , fairly active , and very active . One is defined by RAPIDS as moderate to vigorous physical activity MVPA episodes that are based on all fairly active , and very active labels. Two are defined by the user based on a threshold that divides low or high MET (metabolic equivalent) episodes. EPISODE_TIME_THRESHOLD Any consecutive rows of the same [EPISODE_TYPE] will be considered a single episode if the time difference between them is less or equal than this threshold in minutes [EPISODE_MET_THRESHOLD] Any 1-minute calorie data chunk with a MET value equal or higher than this threshold will be considered a high MET episode and low MET otherwise. The default value is 3 [EPISODE_MVPA_CATEGORIES] The Fitbit level labels that are considered part of a moderate to vigorous physical activity episode. One or more of sedentary , lightly active , fairly active , and very active . The default are fairly active and very active [EPISODE_REFERENCE_TIME] Reference time for the start/end time features. MIDNIGHT sets the reference time to 00:00 of each day, START_OF_THE_SEGMENT sets the reference time to the start of the time segment (useful when a segment is shorter than a day or spans multiple days) Features description for [FITBIT_CALORIES_INTRADAY][PROVIDERS][RAPIDS] : Feature Units Description starttimefirstepisode EPISODE_TYPE minutes Start time of the first episode of type [EPISODE_TYPE] endtimefirstepisode EPISODE_TYPE minutes End time of the first episode of type [EPISODE_TYPE] starttimelastepisode EPISODE_TYPE minutes Start time of the last episode of type [EPISODE_TYPE] endtimelastepisode EPISODE_TYPE minutes End time of the last episode of type [EPISODE_TYPE] starttimelongestepisode EPISODE_TYPE minutes Start time of the longest episode of type [EPISODE_TYPE] endtimelongestepisode EPISODE_TYPE minutes End time of the longest episode of type [EPISODE_TYPE] countepisode EPISODE_TYPE episodes The number of episodes of type [EPISODE_TYPE] sumdurationepisode EPISODE_TYPE minutes The sum of the duration of episodes of type [EPISODE_TYPE] avgdurationepisode EPISODE_TYPE minutes The average of the duration of episodes of type [EPISODE_TYPE] maxdurationepisode EPISODE_TYPE minutes The maximum of the duration of episodes of type [EPISODE_TYPE] mindurationepisode EPISODE_TYPE minutes The minimum of the duration of episodes of type [EPISODE_TYPE] stddurationepisode EPISODE_TYPE minutes The standard deviation of the duration of episodes of type [EPISODE_TYPE] summet EPISODE_TYPE METs The sum of all METs during episodes of type [EPISODE_TYPE] avgmet EPISODE_TYPE METs The average of all METs during episodes of type [EPISODE_TYPE] maxmet EPISODE_TYPE METs The maximum of all METs during episodes of type [EPISODE_TYPE] minmet EPISODE_TYPE METs The minimum of all METs during episodes of type [EPISODE_TYPE] stdmet EPISODE_TYPE METs The standard deviation of all METs during episodes of type [EPISODE_TYPE] sumcalories EPISODE_TYPE calories The sum of all calories during episodes of type [EPISODE_TYPE] avgcalories EPISODE_TYPE calories The average of all calories during episodes of type [EPISODE_TYPE] maxcalories EPISODE_TYPE calories The maximum of all calories during episodes of type [EPISODE_TYPE] mincalories EPISODE_TYPE calories The minimum of all calories during episodes of type [EPISODE_TYPE] stdcalories EPISODE_TYPE calories The standard deviation of all calories during episodes of type [EPISODE_TYPE] Assumptions/Observations These features are based on intraday calories data that is usually obtained in 1-minute chunks from Fitbit\u2019s API. The MET value returned by Fitbit is divided by 10 Take into account that the intraday data returned by Fitbit can contain time series for calories burned inclusive of BMR, tracked activity, and manually logged activities.","title":"RAPIDS provider"},{"location":"features/fitbit-data-yield/","text":"Fitbit Data Yield \u00b6 We use Fitbit heart rate intraday data to extract data yield features. Fitbit data yield features can be used to remove rows ( time segments ) that do not contain enough Fitbit data. You should decide what is your \u201cenough\u201d threshold depending on the time a participant was supposed to be wearing their Fitbit, the length of your study, and the rates of missing data that your analysis could handle. Why is Fitbit data yield important? Imagine that you want to extract FITBIT_STEPS_SUMMARY features on daily segments ( 00:00 to 23:59 ). Let\u2019s say that on day 1 the Fitbit logged 6k as the total step count and the heart rate sensor logged 24 hours of data and on day 2 the Fitbit logged 101 as the total step count and the heart rate sensor logged 2 hours of data. It\u2019s very likely that on day 2 you walked during the other 22 hours so including this day in your analysis could bias your results. Sensor parameters description for [FITBIT_DATA_YIELD] : Key Description [SENSORS] The Fitbit sensor we considered for calculating the Fitbit data yield features. We only support FITBIT_HEARTRATE_INTRADAY since sleep data is commonly collected only overnight, and step counts are 0 even when not wearing the Fitbit device. RAPIDS provider \u00b6 Before explaining the data yield features, let\u2019s define the following relevant concepts: A valid minute is any 60 second window when Fitbit heart rate intraday sensor logged at least 1 row of data A valid hour is any 60 minute window with at least X valid minutes. The X or threshold is given by [MINUTE_RATIO_THRESHOLD_FOR_VALID_YIELDED_HOURS] Available time segments and platforms Available for all time segments File Sequence - data/raw/ { pid } /fitbit_heartrate_intraday_raw.csv - data/raw/ { pid } /fitbit_heartrate_intraday_with_datetime.csv - data/interim/ { pid } /fitbit_data_yield_features/fitbit_data_yield_ { language } _ { provider_key } .csv - data/processed/features/ { pid } /fitbit_data_yield.csv Parameters description for [FITBIT_DATA_YIELD][PROVIDERS][RAPIDS] : Key Description [COMPUTE] Set to True to extract FITBIT_DATA_YIELD features from the RAPIDS provider [FEATURES] Features to be computed, see table below [MINUTE_RATIO_THRESHOLD_FOR_VALID_YIELDED_HOURS] The proportion [0.0 ,1.0] of valid minutes in a 60-minute window necessary to flag that window as valid. Features description for [FITBIT_DATA_YIELD][PROVIDERS][RAPIDS] : Feature Units Description ratiovalidyieldedminutes - The ratio between the number of valid minutes and the duration in minutes of a time segment. ratiovalidyieldedhours - The ratio between the number of valid hours and the duration in hours of a time segment. If the time segment is shorter than 1 hour this feature will always be 1. Assumptions/Observations We recommend using ratiovalidyieldedminutes on time segments that are shorter than two or three hours and ratiovalidyieldedhours for longer segments. This is because relying on yielded minutes only can be misleading when a big chunk of those missing minutes are clustered together. For example, let\u2019s assume we are working with a 24-hour time segment that is missing 12 hours of data. Two extreme cases can occur: the 12 missing hours are from the beginning of the segment or 30 minutes could be missing from every hour (24 * 30 minutes = 12 hours). ratiovalidyieldedminutes would be 0.5 for both a and b (hinting the missing circumstances are similar). However, ratiovalidyieldedhours would be 0.5 for a and 1.0 for b if [MINUTE_RATIO_THRESHOLD_FOR_VALID_YIELDED_HOURS] is between [0.0 and 0.49] (hinting that the missing circumstances might be more favorable for b . In other words, sensed data for b is more evenly spread compared to a . We assume your Fitbit intraday data was sampled (requested form the Fitbit API) at 1 minute intervals, if the interval is longer, for example 15 minutes, you need to take into account that valid minutes and valid hours ratios are going to be small (for example you would have at most 4 \u201cminutes\u201d of data per hour because you would have four 15-minute windows) and so you should adjust your thresholds to include and exclude rows accordingly. If you are in this situation, get in touch with us, we could implement this use case but we are not sure there is enough demand for it at the moment since you can control the sampling rate of the data you request from Fitbit API.","title":"Fitbit Data Yield"},{"location":"features/fitbit-data-yield/#fitbit-data-yield","text":"We use Fitbit heart rate intraday data to extract data yield features. Fitbit data yield features can be used to remove rows ( time segments ) that do not contain enough Fitbit data. You should decide what is your \u201cenough\u201d threshold depending on the time a participant was supposed to be wearing their Fitbit, the length of your study, and the rates of missing data that your analysis could handle. Why is Fitbit data yield important? Imagine that you want to extract FITBIT_STEPS_SUMMARY features on daily segments ( 00:00 to 23:59 ). Let\u2019s say that on day 1 the Fitbit logged 6k as the total step count and the heart rate sensor logged 24 hours of data and on day 2 the Fitbit logged 101 as the total step count and the heart rate sensor logged 2 hours of data. It\u2019s very likely that on day 2 you walked during the other 22 hours so including this day in your analysis could bias your results. Sensor parameters description for [FITBIT_DATA_YIELD] : Key Description [SENSORS] The Fitbit sensor we considered for calculating the Fitbit data yield features. We only support FITBIT_HEARTRATE_INTRADAY since sleep data is commonly collected only overnight, and step counts are 0 even when not wearing the Fitbit device.","title":"Fitbit Data Yield"},{"location":"features/fitbit-data-yield/#rapids-provider","text":"Before explaining the data yield features, let\u2019s define the following relevant concepts: A valid minute is any 60 second window when Fitbit heart rate intraday sensor logged at least 1 row of data A valid hour is any 60 minute window with at least X valid minutes. The X or threshold is given by [MINUTE_RATIO_THRESHOLD_FOR_VALID_YIELDED_HOURS] Available time segments and platforms Available for all time segments File Sequence - data/raw/ { pid } /fitbit_heartrate_intraday_raw.csv - data/raw/ { pid } /fitbit_heartrate_intraday_with_datetime.csv - data/interim/ { pid } /fitbit_data_yield_features/fitbit_data_yield_ { language } _ { provider_key } .csv - data/processed/features/ { pid } /fitbit_data_yield.csv Parameters description for [FITBIT_DATA_YIELD][PROVIDERS][RAPIDS] : Key Description [COMPUTE] Set to True to extract FITBIT_DATA_YIELD features from the RAPIDS provider [FEATURES] Features to be computed, see table below [MINUTE_RATIO_THRESHOLD_FOR_VALID_YIELDED_HOURS] The proportion [0.0 ,1.0] of valid minutes in a 60-minute window necessary to flag that window as valid. Features description for [FITBIT_DATA_YIELD][PROVIDERS][RAPIDS] : Feature Units Description ratiovalidyieldedminutes - The ratio between the number of valid minutes and the duration in minutes of a time segment. ratiovalidyieldedhours - The ratio between the number of valid hours and the duration in hours of a time segment. If the time segment is shorter than 1 hour this feature will always be 1. Assumptions/Observations We recommend using ratiovalidyieldedminutes on time segments that are shorter than two or three hours and ratiovalidyieldedhours for longer segments. This is because relying on yielded minutes only can be misleading when a big chunk of those missing minutes are clustered together. For example, let\u2019s assume we are working with a 24-hour time segment that is missing 12 hours of data. Two extreme cases can occur: the 12 missing hours are from the beginning of the segment or 30 minutes could be missing from every hour (24 * 30 minutes = 12 hours). ratiovalidyieldedminutes would be 0.5 for both a and b (hinting the missing circumstances are similar). However, ratiovalidyieldedhours would be 0.5 for a and 1.0 for b if [MINUTE_RATIO_THRESHOLD_FOR_VALID_YIELDED_HOURS] is between [0.0 and 0.49] (hinting that the missing circumstances might be more favorable for b . In other words, sensed data for b is more evenly spread compared to a . We assume your Fitbit intraday data was sampled (requested form the Fitbit API) at 1 minute intervals, if the interval is longer, for example 15 minutes, you need to take into account that valid minutes and valid hours ratios are going to be small (for example you would have at most 4 \u201cminutes\u201d of data per hour because you would have four 15-minute windows) and so you should adjust your thresholds to include and exclude rows accordingly. If you are in this situation, get in touch with us, we could implement this use case but we are not sure there is enough demand for it at the moment since you can control the sampling rate of the data you request from Fitbit API.","title":"RAPIDS provider"},{"location":"features/fitbit-heartrate-intraday/","text":"Fitbit Heart Rate Intraday \u00b6 Sensor parameters description for [FITBIT_HEARTRATE_INTRADAY] : Key Description [CONTAINER] Container where your heart rate intraday data is stored, depending on the data stream you are using this can be a database table, a CSV file, etc. RAPIDS provider \u00b6 Available time segments Available for all time segments File Sequence - data/raw/ { pid } /fitbit_heartrate_intraday_raw.csv - data/raw/ { pid } /fitbit_heartrate_intraday_with_datetime.csv - data/interim/ { pid } /fitbit_heartrate_intraday_features/fitbit_heartrate_intraday_ { language } _ { provider_key } .csv - data/processed/features/ { pid } /fitbit_heartrate_intraday.csv Parameters description for [FITBIT_HEARTRATE_INTRADAY][PROVIDERS][RAPIDS] : Key Description [COMPUTE] Set to True to extract FITBIT_HEARTRATE_INTRADAY features from the RAPIDS provider [FEATURES] Features to be computed from heart rate intraday data, see table below Features description for [FITBIT_HEARTRATE_INTRADAY][PROVIDERS][RAPIDS] : Feature Units Description maxhr beats/mins The maximum heart rate during a time segment. minhr beats/mins The minimum heart rate during a time segment. avghr beats/mins The average heart rate during a time segment. medianhr beats/mins The median of heart rate during a time segment. modehr beats/mins The mode of heart rate during a time segment. stdhr beats/mins The standard deviation of heart rate during a time segment. diffmaxmodehr beats/mins The difference between the maximum and mode heart rate during a time segment. diffminmodehr beats/mins The difference between the mode and minimum heart rate during a time segment. entropyhr nats Shannon\u2019s entropy measurement based on heart rate during a time segment. minutesonZONE minutes Number of minutes the user\u2019s heart rate fell within each heartrate_zone during a time segment. Assumptions/Observations There are four heart rate zones (ZONE): outofrange , fatburn , cardio , and peak . Please refer to Fitbit documentation for more information about the way they are computed.","title":"Fitbit Heart Rate Intraday"},{"location":"features/fitbit-heartrate-intraday/#fitbit-heart-rate-intraday","text":"Sensor parameters description for [FITBIT_HEARTRATE_INTRADAY] : Key Description [CONTAINER] Container where your heart rate intraday data is stored, depending on the data stream you are using this can be a database table, a CSV file, etc.","title":"Fitbit Heart Rate Intraday"},{"location":"features/fitbit-heartrate-intraday/#rapids-provider","text":"Available time segments Available for all time segments File Sequence - data/raw/ { pid } /fitbit_heartrate_intraday_raw.csv - data/raw/ { pid } /fitbit_heartrate_intraday_with_datetime.csv - data/interim/ { pid } /fitbit_heartrate_intraday_features/fitbit_heartrate_intraday_ { language } _ { provider_key } .csv - data/processed/features/ { pid } /fitbit_heartrate_intraday.csv Parameters description for [FITBIT_HEARTRATE_INTRADAY][PROVIDERS][RAPIDS] : Key Description [COMPUTE] Set to True to extract FITBIT_HEARTRATE_INTRADAY features from the RAPIDS provider [FEATURES] Features to be computed from heart rate intraday data, see table below Features description for [FITBIT_HEARTRATE_INTRADAY][PROVIDERS][RAPIDS] : Feature Units Description maxhr beats/mins The maximum heart rate during a time segment. minhr beats/mins The minimum heart rate during a time segment. avghr beats/mins The average heart rate during a time segment. medianhr beats/mins The median of heart rate during a time segment. modehr beats/mins The mode of heart rate during a time segment. stdhr beats/mins The standard deviation of heart rate during a time segment. diffmaxmodehr beats/mins The difference between the maximum and mode heart rate during a time segment. diffminmodehr beats/mins The difference between the mode and minimum heart rate during a time segment. entropyhr nats Shannon\u2019s entropy measurement based on heart rate during a time segment. minutesonZONE minutes Number of minutes the user\u2019s heart rate fell within each heartrate_zone during a time segment. Assumptions/Observations There are four heart rate zones (ZONE): outofrange , fatburn , cardio , and peak . Please refer to Fitbit documentation for more information about the way they are computed.","title":"RAPIDS provider"},{"location":"features/fitbit-heartrate-summary/","text":"Fitbit Heart Rate Summary \u00b6 Sensor parameters description for [FITBIT_HEARTRATE_SUMMARY] : Key Description [CONTAINER] Container where your heart rate summary data is stored, depending on the data stream you are using this can be a database table, a CSV file, etc. RAPIDS provider \u00b6 Available time segments Only available for segments that span 1 or more complete days (e.g. Jan 1 st 00:00 to Jan 3 rd 23:59) File Sequence - data/raw/ { pid } /fitbit_heartrate_summary_raw.csv - data/raw/ { pid } /fitbit_heartrate_summary_with_datetime.csv - data/interim/ { pid } /fitbit_heartrate_summary_features/fitbit_heartrate_summary_ { language } _ { provider_key } .csv - data/processed/features/ { pid } /fitbit_heartrate_summary.csv Parameters description for [FITBIT_HEARTRATE_SUMMARY][PROVIDERS][RAPIDS] : Key Description [COMPUTE] Set to True to extract FITBIT_HEARTRATE_SUMMARY features from the RAPIDS provider [FEATURES] Features to be computed from heart rate summary data, see table below Features description for [FITBIT_HEARTRATE_SUMMARY][PROVIDERS][RAPIDS] : Feature Units Description maxrestinghr beats/mins The maximum daily resting heart rate during a time segment. minrestinghr beats/mins The minimum daily resting heart rate during a time segment. avgrestinghr beats/mins The average daily resting heart rate during a time segment. medianrestinghr beats/mins The median of daily resting heart rate during a time segment. moderestinghr beats/mins The mode of daily resting heart rate during a time segment. stdrestinghr beats/mins The standard deviation of daily resting heart rate during a time segment. diffmaxmoderestinghr beats/mins The difference between the maximum and mode daily resting heart rate during a time segment. diffminmoderestinghr beats/mins The difference between the mode and minimum daily resting heart rate during a time segment. entropyrestinghr nats Shannon\u2019s entropy measurement based on daily resting heart rate during a time segment. sumcaloriesZONE cals The total daily calories burned within heartrate_zone during a time segment. maxcaloriesZONE cals The maximum daily calories burned within heartrate_zone during a time segment. mincaloriesZONE cals The minimum daily calories burned within heartrate_zone during a time segment. avgcaloriesZONE cals The average daily calories burned within heartrate_zone during a time segment. mediancaloriesZONE cals The median of daily calories burned within heartrate_zone during a time segment. stdcaloriesZONE cals The standard deviation of daily calories burned within heartrate_zone during a time segment. entropycaloriesZONE nats Shannon\u2019s entropy measurement based on daily calories burned within heartrate_zone during a time segment. Assumptions/Observations There are four heart rate zones (ZONE): outofrange , fatburn , cardio , and peak . Please refer to Fitbit documentation for more information about the way they are computed. Calories\u2019 accuracy depends on the users\u2019 Fitbit profile (weight, height, etc.).","title":"Fitbit Heart Rate Summary"},{"location":"features/fitbit-heartrate-summary/#fitbit-heart-rate-summary","text":"Sensor parameters description for [FITBIT_HEARTRATE_SUMMARY] : Key Description [CONTAINER] Container where your heart rate summary data is stored, depending on the data stream you are using this can be a database table, a CSV file, etc.","title":"Fitbit Heart Rate Summary"},{"location":"features/fitbit-heartrate-summary/#rapids-provider","text":"Available time segments Only available for segments that span 1 or more complete days (e.g. Jan 1 st 00:00 to Jan 3 rd 23:59) File Sequence - data/raw/ { pid } /fitbit_heartrate_summary_raw.csv - data/raw/ { pid } /fitbit_heartrate_summary_with_datetime.csv - data/interim/ { pid } /fitbit_heartrate_summary_features/fitbit_heartrate_summary_ { language } _ { provider_key } .csv - data/processed/features/ { pid } /fitbit_heartrate_summary.csv Parameters description for [FITBIT_HEARTRATE_SUMMARY][PROVIDERS][RAPIDS] : Key Description [COMPUTE] Set to True to extract FITBIT_HEARTRATE_SUMMARY features from the RAPIDS provider [FEATURES] Features to be computed from heart rate summary data, see table below Features description for [FITBIT_HEARTRATE_SUMMARY][PROVIDERS][RAPIDS] : Feature Units Description maxrestinghr beats/mins The maximum daily resting heart rate during a time segment. minrestinghr beats/mins The minimum daily resting heart rate during a time segment. avgrestinghr beats/mins The average daily resting heart rate during a time segment. medianrestinghr beats/mins The median of daily resting heart rate during a time segment. moderestinghr beats/mins The mode of daily resting heart rate during a time segment. stdrestinghr beats/mins The standard deviation of daily resting heart rate during a time segment. diffmaxmoderestinghr beats/mins The difference between the maximum and mode daily resting heart rate during a time segment. diffminmoderestinghr beats/mins The difference between the mode and minimum daily resting heart rate during a time segment. entropyrestinghr nats Shannon\u2019s entropy measurement based on daily resting heart rate during a time segment. sumcaloriesZONE cals The total daily calories burned within heartrate_zone during a time segment. maxcaloriesZONE cals The maximum daily calories burned within heartrate_zone during a time segment. mincaloriesZONE cals The minimum daily calories burned within heartrate_zone during a time segment. avgcaloriesZONE cals The average daily calories burned within heartrate_zone during a time segment. mediancaloriesZONE cals The median of daily calories burned within heartrate_zone during a time segment. stdcaloriesZONE cals The standard deviation of daily calories burned within heartrate_zone during a time segment. entropycaloriesZONE nats Shannon\u2019s entropy measurement based on daily calories burned within heartrate_zone during a time segment. Assumptions/Observations There are four heart rate zones (ZONE): outofrange , fatburn , cardio , and peak . Please refer to Fitbit documentation for more information about the way they are computed. Calories\u2019 accuracy depends on the users\u2019 Fitbit profile (weight, height, etc.).","title":"RAPIDS provider"},{"location":"features/fitbit-sleep-intraday/","text":"Fitbit Sleep Intraday \u00b6 Sensor parameters description for [FITBIT_SLEEP_INTRADAY] : Key Description [CONTAINER] Container where your sleep intraday data is stored, depending on the data stream you are using this can be a database table, a CSV file, etc. RAPIDS provider \u00b6 Understanding RAPIDS features This diagram will help you understand how sleep episodes are chunked and grouped within time segments for the RAPIDS provider. Available time segments Available for all time segments File Sequence - data/raw/ { pid } /fitbit_sleep_intraday_raw.csv - data/raw/ { pid } /fitbit_sleep_intraday_with_datetime.csv - data/interim/ { pid } /fitbit_sleep_intraday_episodes.csv - data/interim/ { pid } /fitbit_sleep_intraday_episodes_resampled.csv - data/interim/ { pid } /fitbit_sleep_intraday_episodes_resampled_with_datetime.csv - data/interim/ { pid } /fitbit_sleep_intraday_features/fitbit_sleep_intraday_ { language } _ { provider_key } .csv - data/processed/features/ { pid } /fitbit_sleep_intraday.csv Parameters description for [FITBIT_SLEEP_INTRADAY][PROVIDERS][RAPIDS] : Key Description [COMPUTE] Set to True to extract FITBIT_SLEEP_INTRADAY features from the RAPIDS provider [FEATURES] Features to be computed from sleep intraday data, see table below [SLEEP_LEVELS] Fitbit\u2019s sleep API Version 1 only provides CLASSIC records. However, Version 1.2 provides 2 types of records: CLASSIC and STAGES . STAGES is only available in devices with a heart rate sensor and even those devices will fail to report it if the battery is low or the device is not tight enough. While CLASSIC contains 3 sleep levels ( awake , restless , and asleep ), STAGES contains 4 sleep levels ( wake , deep , light , rem ). To make it consistent, RAPIDS groups them into 2 UNIFIED sleep levels: awake ( CLASSIC : awake and restless ; STAGES : wake ) and asleep ( CLASSIC : asleep ; STAGES : deep , light , and rem ). In this section, there is a boolean flag named INCLUDE_ALL_GROUPS that if set to TRUE, computes LEVELS_AND_TYPES features grouping all levels together in a single all category. [SLEEP_TYPES] Types of sleep to be included in the feature extraction computation. There are three sleep types: main , nap , and all . The all type means both main sleep and naps are considered. Features description for [FITBIT_SLEEP_INTRADAY][PROVIDERS][RAPIDS][LEVELS_AND_TYPES] : Feature Units Description countepisode [LEVEL][TYPE] episodes Number of [LEVEL][TYPE] sleep episodes. [LEVEL] is one of [SLEEP_LEVELS] (e.g. awake-classic or rem-stages) and [TYPE] is one of [SLEEP_TYPES] (e.g. main). [LEVEL] can also be all when INCLUDE_ALL_GROUPS is True, which ignores the levels and groups by sleep types. sumduration [LEVEL][TYPE] minutes Total duration of all [LEVEL][TYPE] sleep episodes. [LEVEL] is one of [SLEEP_LEVELS] (e.g. awake-classic or rem-stages) and [TYPE] is one of [SLEEP_TYPES] (e.g. main). [LEVEL] can also be all when INCLUDE_ALL_GROUPS is True, which ignores the levels and groups by sleep types. maxduration [LEVEL][TYPE] minutes Longest duration of any [LEVEL][TYPE] sleep episode. [LEVEL] is one of [SLEEP_LEVELS] (e.g. awake-classic or rem-stages) and [TYPE] is one of [SLEEP_TYPES] (e.g. main). [LEVEL] can also be all when INCLUDE_ALL_GROUPS is True, which ignores the levels and groups by sleep types. minduration [LEVEL][TYPE] minutes Shortest duration of any [LEVEL][TYPE] sleep episode. [LEVEL] is one of [SLEEP_LEVELS] (e.g. awake-classic or rem-stages) and [TYPE] is one of [SLEEP_TYPES] (e.g. main). [LEVEL] can also be all when INCLUDE_ALL_GROUPS is True, which ignores the levels and groups by sleep types. avgduration [LEVEL][TYPE] minutes Average duration of all [LEVEL][TYPE] sleep episodes. [LEVEL] is one of [SLEEP_LEVELS] (e.g. awake-classic or rem-stages) and [TYPE] is one of [SLEEP_TYPES] (e.g. main). [LEVEL] can also be all when INCLUDE_ALL_GROUPS is True, which ignores the levels and groups by sleep types. medianduration [LEVEL][TYPE] minutes Median duration of all [LEVEL][TYPE] sleep episodes. [LEVEL] is one of [SLEEP_LEVELS] (e.g. awake-classic or rem-stages) and [TYPE] is one of [SLEEP_TYPES] (e.g. main). [LEVEL] can also be all when INCLUDE_ALL_GROUPS is True, which ignores the levels and groups by sleep types. stdduration [LEVEL][TYPE] minutes Standard deviation duration of all [LEVEL][TYPE] sleep episodes. [LEVEL] is one of [SLEEP_LEVELS] (e.g. awake-classic or rem-stages) and [TYPE] is one of [SLEEP_TYPES] (e.g. main). [LEVEL] can also be all when INCLUDE_ALL_GROUPS is True, which ignores the levels and groups by sleep types. Features description for [FITBIT_SLEEP_INTRADAY][PROVIDERS][RAPIDS] RATIOS [ACROSS_LEVELS] : Feature Units Description ratiocount [LEVEL] - Ratio between the count of episodes of a single sleep [LEVEL] and the count of all episodes of all levels during both main and nap sleep types. This answers the question: what percentage of all wake , deep , light , and rem episodes were rem ? (e.g., \\(countepisode[remstages][all] / countepisode[all][all]\\) ) ratioduration [LEVEL] - Ratio between the duration of episodes of a single sleep [LEVEL] and the duration of all episodes of all levels during both main and nap sleep types. This answers the question: what percentage of all wake , deep , light , and rem time was rem ? (e.g., \\(sumduration[remstages][all] / sumduration[all][all]\\) ) Features description for [FITBIT_SLEEP_INTRADAY][PROVIDERS][RAPIDS] RATIOS [ACROSS_TYPES] : Feature Units Description ratiocountmain - Ratio between the count of all main episodes (independently of the levels inside) divided by the count of all main and nap episodes. This answers the question: what percentage of all sleep episodes ( main and nap ) were main ? We do not provide the ratio for nap because is complementary. ( \\(countepisode[all][main] / countepisode[all][all]\\) ) ratiodurationmain - Ratio between the duration of all main episodes (independently of the levels inside) divided by the duration of all main and nap episodes. This answers the question: what percentage of all sleep time ( main and nap ) was main ? We do not provide the ratio for nap because is complementary. ( \\(sumduration[all][main] / sumduration[all][all]\\) ) Features description for [FITBIT_SLEEP_INTRADAY][PROVIDERS][RAPIDS] RATIOS [WITHIN_LEVELS] : Feature Units Description ratiocountmainwithin [LEVEL] - Ratio between the count of episodes of a single sleep [LEVEL] during main sleep divided by the count of episodes of a single sleep [LEVEL] during main and nap . This answers the question: are rem episodes more frequent during main than nap sleep? We do not provide the ratio for nap because is complementary. ( \\(countepisode[remstages][main] / countepisode[remstages][all]\\) ) ratiodurationmainwithin [LEVEL] - Ratio between the duration of episodes of a single sleep [LEVEL] during main sleep divided by the duration of episodes of a single sleep [LEVEL] during main and nap . This answers the question: is rem time more frequent during main than nap sleep? We do not provide the ratio for nap because is complementary. ( \\(countepisode[remstages][main] / countepisode[remstages][all]\\) ) Features description for [FITBIT_SLEEP_INTRADAY][PROVIDERS][RAPIDS] RATIOS [WITHIN_TYPES] : Feature Units Description ratiocount [LEVEL] within [TYPE] - Ratio between the count of episodes of a single sleep [LEVEL] and the count of all episodes of all levels during either main or nap sleep types. This answers the question: what percentage of all wake , deep , light , and rem episodes were rem during main / nap sleep time? (e.g., \\(countepisode[remstages][main] / countepisode[all][main]\\) ) ratioduration [LEVEL] within [TYPE] - Ratio between the duration of episodes of a single sleep [LEVEL] and the duration of all episodes of all levels during either main or nap sleep types. This answers the question: what percentage of all wake , deep , light , and rem time was rem during main / nap sleep time? (e.g., \\(sumduration[remstages][main] / sumduration[all][main]\\) ) Assumptions/Observations This diagram will help you understand how sleep episodes are chunked and grouped within time segments for the RAPIDS provider. Features listed in [LEVELS_AND_TYPES] are computed for any levels and types listed in [SLEEP_LEVELS] or [SLEEP_TYPES] . For example if STAGES only contains [rem, light] you will not get countepisode[wake|deep][TYPE] or sum, max, min, avg, median, or std duration . Levels or types in these lists do not influence RATIOS or ROUTINE features. Any [LEVEL] grouping is done within the elements of each class CLASSIC , STAGES , and UNIFIED . That is, we never combine CLASSIC or STAGES types to compute features. The categories for all levels (when INCLUDE_ALL_GROUPS is True ) and all SLEEP_TYPES are not considered for RATIOS features as they are always 1. These features can be computed in time segments of any length, but only the 1-minute sleep chunks within each segment instance will be used. PRICE provider \u00b6 Understanding PRICE features This diagram will help you understand how sleep episodes are chunked and grouped within time segments and LNE-LNE intervals for the PRICE provider. Available time segments Available for any time segments larger or equal to one day File Sequence - data/raw/ { pid } /fitbit_sleep_intraday_raw.csv - data/raw/ { pid } /fitbit_sleep_intraday_parsed.csv - data/interim/ { pid } /fitbit_sleep_intraday_episodes_resampled.csv - data/interim/ { pid } /fitbit_sleep_intraday_episodes_resampled_with_datetime.csv - data/interim/ { pid } /fitbit_sleep_intraday_features/fitbit_sleep_intraday_ { language } _ { provider_key } .csv - data/processed/features/ { pid } /fitbit_sleep_intraday.csv Parameters description for [FITBIT_SLEEP_INTRADAY][PROVIDERS][PRICE] : Key Description [COMPUTE] Set to True to extract FITBIT_SLEEP_INTRADAY features from the PRICE provider [FEATURES] Features to be computed from sleep intraday data, see table below [SLEEP_LEVELS] Fitbit\u2019s sleep API Version 1 only provides CLASSIC records. However, Version 1.2 provides 2 types of records: CLASSIC and STAGES . STAGES is only available in devices with a heart rate sensor and even those devices will fail to report it if the battery is low or the device is not tight enough. While CLASSIC contains 3 sleep levels ( awake , restless , and asleep ), STAGES contains 4 sleep levels ( wake , deep , light , rem ). To make it consistent, RAPIDS groups them into 2 UNIFIED sleep levels: awake ( CLASSIC : awake and restless ; STAGES : wake ) and asleep ( CLASSIC : asleep ; STAGES : deep , light , and rem ). In this section, there is a boolean flag named INCLUDE_ALL_GROUPS that if set to TRUE, computes avgdurationallmain [DAY_TYPE] features grouping all levels together in a single all category. [DAY_TYPE] The features of this provider can be computed using daily averages/standard deviations that were extracted on WEEKEND days only, WEEK days only, or ALL days [LAST_NIGHT_END] Only main sleep episodes that start within the LNE-LNE interval [ LAST_NIGHT_END , LAST_NIGHT_END + 23H 59M 59S] are taken into account to compute the features described below. [LAST_NIGHT_END] is a number ranging from 0 (midnight) to 1439 (23:59). Features description for [FITBIT_SLEEP_INTRADAY][PROVIDERS][PRICE] : Feature Units Description avgduration [LEVEL] main [DAY_TYPE] minutes Average duration of daily sleep chunks of a LEVEL . Use the DAY_TYPE flag to include daily durations from weekend days only, weekdays, or both. Use [LEVEL] to group all levels in a single all category. avgratioduration [LEVEL] withinmain [DAY_TYPE] - Average of the daily ratio between the duration of sleep chunks of a LEVEL and total duration of all main sleep episodes in a day. When INCLUDE_ALL_GROUPS is True the all LEVEL is ignored since this feature is always 1. Use the DAY_TYPE flag to include start times from weekend days only, weekdays, or both. avgstarttimeofepisodemain [DAY_TYPE] minutes Average of all start times of the first main sleep episode within each LNE-LNE interval in a time segment. Use the DAY_TYPE flag to include start times from LNE-LNE intervals that start on weekend days only, weekdays, or both. avgendtimeofepisodemain [DAY_TYPE] minutes Average of all end times of the last main sleep episode within each LNE-LNE interval in a time segment. Use the DAY_TYPE flag to include end times from LNE-LNE intervals that start on weekend days only, weekdays, or both. avgmidpointofepisodemain [DAY_TYPE] minutes Average of all the differences between avgendtime... and avgstarttime.. in a time segment. Use the DAY_TYPE flag to include end times from LNE-LNE intervals that start on weekend days only, weekdays, or both. stdstarttimeofepisodemain [DAY_TYPE] minutes Standard deviation of all start times of the first main sleep episode within each LNE-LNE interval in a time segment. Use the DAY_TYPE flag to include start times from LNE-LNE intervals that start on weekend days only, weekdays, or both. stdendtimeofepisodemain [DAY_TYPE] minutes Standard deviation of all end times of the last main sleep episode within each LNE-LNE interval in a time segment. Use the DAY_TYPE flag to include end times from LNE-LNE intervals that start on weekend days only, weekdays, or both. stdmidpointofepisodemain [DAY_TYPE] minutes Standard deviation of all the differences between avgendtime... and avgstarttime.. in a time segment. Use the DAY_TYPE flag to include end times from LNE-LNE intervals that start on weekend days only, weekdays, or both. socialjetlag minutes Difference in minutes between the avgmidpointofepisodemain of weekends and weekdays that belong to each time segment instance. If your time segment does not contain at least one week day and one weekend day this feature will be NA. rmssdmeanstarttimeofepisodemain minutes Square root of the mean squared successive difference (RMSSD) between today\u2019s and yesterday\u2019s starttimeofepisodemain values across the entire participant\u2019s sleep data grouped per time segment instance. It represents the mean of how someone\u2019s starttimeofepisodemain (bedtime) changed from night to night. rmssdmeanendtimeofepisodemain minutes Square root of the mean squared successive difference (RMSSD) between today\u2019s and yesterday\u2019s endtimeofepisodemain values across the entire participant\u2019s sleep data grouped per time segment instance. It represents the mean of how someone\u2019s endtimeofepisodemain (wake time) changed from night to night. rmssdmeanmidpointofepisodemain minutes Square root of the mean squared successive difference (RMSSD) between today\u2019s and yesterday\u2019s midpointofepisodemain values across the entire participant\u2019s sleep data grouped per time segment instance. It represents the mean of how someone\u2019s midpointofepisodemain (mid time between bedtime and wake time) changed from night to night. rmssdmedianstarttimeofepisodemain minutes Square root of the median squared successive difference (RMSSD) between today\u2019s and yesterday\u2019s starttimeofepisodemain values across the entire participant\u2019s sleep data grouped per time segment instance. It represents the median of how someone\u2019s starttimeofepisodemain (bedtime) changed from night to night. rmssdmedianendtimeofepisodemain minutes Square root of the median squared successive difference (RMSSD) between today\u2019s and yesterday\u2019s endtimeofepisodemain values across the entire participant\u2019s sleep data grouped per time segment instance. It represents the median of how someone\u2019s endtimeofepisodemain (wake time) changed from night to night. rmssdmedianmidpointofepisodemain minutes Square root of the median squared successive difference (RMSSD) between today\u2019s and yesterday\u2019s midpointofepisodemain values across the entire participant\u2019s sleep data grouped per time segment instance. It represents the median of how someone\u2019s midpointofepisodemain (average mid time between bedtime and wake time) changed from night to night. Assumptions/Observations This diagram will help you understand how sleep episodes are chunked and grouped within time segments and LNE-LNE intervals for the PRICE provider. We recommend you use periodic segments that start in the morning so RAPIDS can chunk and group sleep episodes overnight. Shifted segments (as any other segments) are labelled based on their start and end date times. avgstarttime... and avgendtime... are roughly equivalent to an average bed and awake time only if you are using shifted segments. The features of this provider are only available on time segments that are longer than 24 hours because they are based on descriptive statistics computed across daily values. Even though Fitbit provides 2 types of sleep episodes ( main and nap ), only main sleep episodes are considered. The reference point for all times is 00:00 of the first day in the LNE-LNE interval. Sleep episodes are formed by 1-minute chunks that we group overnight starting from today\u2019s LNE and ending on tomorrow\u2019s LNE or the end of that segment (whatever is first). The features avgstarttime... and avgendtime... are the average of the first and last sleep episode across every LNE-LNE interval within a segment ( avgmidtime... is the mid point between start and end). Therefore, only segments longer than 24hrs will be averaged across more than one LNE-LNE interval. socialjetlag is only available on segment instances equal or longer than 48hrs that contain at least one weekday day and one weekend day, for example seven-day (weekly) segments.","title":"Fitbit Sleep Intraday"},{"location":"features/fitbit-sleep-intraday/#fitbit-sleep-intraday","text":"Sensor parameters description for [FITBIT_SLEEP_INTRADAY] : Key Description [CONTAINER] Container where your sleep intraday data is stored, depending on the data stream you are using this can be a database table, a CSV file, etc.","title":"Fitbit Sleep Intraday"},{"location":"features/fitbit-sleep-intraday/#rapids-provider","text":"Understanding RAPIDS features This diagram will help you understand how sleep episodes are chunked and grouped within time segments for the RAPIDS provider. Available time segments Available for all time segments File Sequence - data/raw/ { pid } /fitbit_sleep_intraday_raw.csv - data/raw/ { pid } /fitbit_sleep_intraday_with_datetime.csv - data/interim/ { pid } /fitbit_sleep_intraday_episodes.csv - data/interim/ { pid } /fitbit_sleep_intraday_episodes_resampled.csv - data/interim/ { pid } /fitbit_sleep_intraday_episodes_resampled_with_datetime.csv - data/interim/ { pid } /fitbit_sleep_intraday_features/fitbit_sleep_intraday_ { language } _ { provider_key } .csv - data/processed/features/ { pid } /fitbit_sleep_intraday.csv Parameters description for [FITBIT_SLEEP_INTRADAY][PROVIDERS][RAPIDS] : Key Description [COMPUTE] Set to True to extract FITBIT_SLEEP_INTRADAY features from the RAPIDS provider [FEATURES] Features to be computed from sleep intraday data, see table below [SLEEP_LEVELS] Fitbit\u2019s sleep API Version 1 only provides CLASSIC records. However, Version 1.2 provides 2 types of records: CLASSIC and STAGES . STAGES is only available in devices with a heart rate sensor and even those devices will fail to report it if the battery is low or the device is not tight enough. While CLASSIC contains 3 sleep levels ( awake , restless , and asleep ), STAGES contains 4 sleep levels ( wake , deep , light , rem ). To make it consistent, RAPIDS groups them into 2 UNIFIED sleep levels: awake ( CLASSIC : awake and restless ; STAGES : wake ) and asleep ( CLASSIC : asleep ; STAGES : deep , light , and rem ). In this section, there is a boolean flag named INCLUDE_ALL_GROUPS that if set to TRUE, computes LEVELS_AND_TYPES features grouping all levels together in a single all category. [SLEEP_TYPES] Types of sleep to be included in the feature extraction computation. There are three sleep types: main , nap , and all . The all type means both main sleep and naps are considered. Features description for [FITBIT_SLEEP_INTRADAY][PROVIDERS][RAPIDS][LEVELS_AND_TYPES] : Feature Units Description countepisode [LEVEL][TYPE] episodes Number of [LEVEL][TYPE] sleep episodes. [LEVEL] is one of [SLEEP_LEVELS] (e.g. awake-classic or rem-stages) and [TYPE] is one of [SLEEP_TYPES] (e.g. main). [LEVEL] can also be all when INCLUDE_ALL_GROUPS is True, which ignores the levels and groups by sleep types. sumduration [LEVEL][TYPE] minutes Total duration of all [LEVEL][TYPE] sleep episodes. [LEVEL] is one of [SLEEP_LEVELS] (e.g. awake-classic or rem-stages) and [TYPE] is one of [SLEEP_TYPES] (e.g. main). [LEVEL] can also be all when INCLUDE_ALL_GROUPS is True, which ignores the levels and groups by sleep types. maxduration [LEVEL][TYPE] minutes Longest duration of any [LEVEL][TYPE] sleep episode. [LEVEL] is one of [SLEEP_LEVELS] (e.g. awake-classic or rem-stages) and [TYPE] is one of [SLEEP_TYPES] (e.g. main). [LEVEL] can also be all when INCLUDE_ALL_GROUPS is True, which ignores the levels and groups by sleep types. minduration [LEVEL][TYPE] minutes Shortest duration of any [LEVEL][TYPE] sleep episode. [LEVEL] is one of [SLEEP_LEVELS] (e.g. awake-classic or rem-stages) and [TYPE] is one of [SLEEP_TYPES] (e.g. main). [LEVEL] can also be all when INCLUDE_ALL_GROUPS is True, which ignores the levels and groups by sleep types. avgduration [LEVEL][TYPE] minutes Average duration of all [LEVEL][TYPE] sleep episodes. [LEVEL] is one of [SLEEP_LEVELS] (e.g. awake-classic or rem-stages) and [TYPE] is one of [SLEEP_TYPES] (e.g. main). [LEVEL] can also be all when INCLUDE_ALL_GROUPS is True, which ignores the levels and groups by sleep types. medianduration [LEVEL][TYPE] minutes Median duration of all [LEVEL][TYPE] sleep episodes. [LEVEL] is one of [SLEEP_LEVELS] (e.g. awake-classic or rem-stages) and [TYPE] is one of [SLEEP_TYPES] (e.g. main). [LEVEL] can also be all when INCLUDE_ALL_GROUPS is True, which ignores the levels and groups by sleep types. stdduration [LEVEL][TYPE] minutes Standard deviation duration of all [LEVEL][TYPE] sleep episodes. [LEVEL] is one of [SLEEP_LEVELS] (e.g. awake-classic or rem-stages) and [TYPE] is one of [SLEEP_TYPES] (e.g. main). [LEVEL] can also be all when INCLUDE_ALL_GROUPS is True, which ignores the levels and groups by sleep types. Features description for [FITBIT_SLEEP_INTRADAY][PROVIDERS][RAPIDS] RATIOS [ACROSS_LEVELS] : Feature Units Description ratiocount [LEVEL] - Ratio between the count of episodes of a single sleep [LEVEL] and the count of all episodes of all levels during both main and nap sleep types. This answers the question: what percentage of all wake , deep , light , and rem episodes were rem ? (e.g., \\(countepisode[remstages][all] / countepisode[all][all]\\) ) ratioduration [LEVEL] - Ratio between the duration of episodes of a single sleep [LEVEL] and the duration of all episodes of all levels during both main and nap sleep types. This answers the question: what percentage of all wake , deep , light , and rem time was rem ? (e.g., \\(sumduration[remstages][all] / sumduration[all][all]\\) ) Features description for [FITBIT_SLEEP_INTRADAY][PROVIDERS][RAPIDS] RATIOS [ACROSS_TYPES] : Feature Units Description ratiocountmain - Ratio between the count of all main episodes (independently of the levels inside) divided by the count of all main and nap episodes. This answers the question: what percentage of all sleep episodes ( main and nap ) were main ? We do not provide the ratio for nap because is complementary. ( \\(countepisode[all][main] / countepisode[all][all]\\) ) ratiodurationmain - Ratio between the duration of all main episodes (independently of the levels inside) divided by the duration of all main and nap episodes. This answers the question: what percentage of all sleep time ( main and nap ) was main ? We do not provide the ratio for nap because is complementary. ( \\(sumduration[all][main] / sumduration[all][all]\\) ) Features description for [FITBIT_SLEEP_INTRADAY][PROVIDERS][RAPIDS] RATIOS [WITHIN_LEVELS] : Feature Units Description ratiocountmainwithin [LEVEL] - Ratio between the count of episodes of a single sleep [LEVEL] during main sleep divided by the count of episodes of a single sleep [LEVEL] during main and nap . This answers the question: are rem episodes more frequent during main than nap sleep? We do not provide the ratio for nap because is complementary. ( \\(countepisode[remstages][main] / countepisode[remstages][all]\\) ) ratiodurationmainwithin [LEVEL] - Ratio between the duration of episodes of a single sleep [LEVEL] during main sleep divided by the duration of episodes of a single sleep [LEVEL] during main and nap . This answers the question: is rem time more frequent during main than nap sleep? We do not provide the ratio for nap because is complementary. ( \\(countepisode[remstages][main] / countepisode[remstages][all]\\) ) Features description for [FITBIT_SLEEP_INTRADAY][PROVIDERS][RAPIDS] RATIOS [WITHIN_TYPES] : Feature Units Description ratiocount [LEVEL] within [TYPE] - Ratio between the count of episodes of a single sleep [LEVEL] and the count of all episodes of all levels during either main or nap sleep types. This answers the question: what percentage of all wake , deep , light , and rem episodes were rem during main / nap sleep time? (e.g., \\(countepisode[remstages][main] / countepisode[all][main]\\) ) ratioduration [LEVEL] within [TYPE] - Ratio between the duration of episodes of a single sleep [LEVEL] and the duration of all episodes of all levels during either main or nap sleep types. This answers the question: what percentage of all wake , deep , light , and rem time was rem during main / nap sleep time? (e.g., \\(sumduration[remstages][main] / sumduration[all][main]\\) ) Assumptions/Observations This diagram will help you understand how sleep episodes are chunked and grouped within time segments for the RAPIDS provider. Features listed in [LEVELS_AND_TYPES] are computed for any levels and types listed in [SLEEP_LEVELS] or [SLEEP_TYPES] . For example if STAGES only contains [rem, light] you will not get countepisode[wake|deep][TYPE] or sum, max, min, avg, median, or std duration . Levels or types in these lists do not influence RATIOS or ROUTINE features. Any [LEVEL] grouping is done within the elements of each class CLASSIC , STAGES , and UNIFIED . That is, we never combine CLASSIC or STAGES types to compute features. The categories for all levels (when INCLUDE_ALL_GROUPS is True ) and all SLEEP_TYPES are not considered for RATIOS features as they are always 1. These features can be computed in time segments of any length, but only the 1-minute sleep chunks within each segment instance will be used.","title":"RAPIDS provider"},{"location":"features/fitbit-sleep-intraday/#price-provider","text":"Understanding PRICE features This diagram will help you understand how sleep episodes are chunked and grouped within time segments and LNE-LNE intervals for the PRICE provider. Available time segments Available for any time segments larger or equal to one day File Sequence - data/raw/ { pid } /fitbit_sleep_intraday_raw.csv - data/raw/ { pid } /fitbit_sleep_intraday_parsed.csv - data/interim/ { pid } /fitbit_sleep_intraday_episodes_resampled.csv - data/interim/ { pid } /fitbit_sleep_intraday_episodes_resampled_with_datetime.csv - data/interim/ { pid } /fitbit_sleep_intraday_features/fitbit_sleep_intraday_ { language } _ { provider_key } .csv - data/processed/features/ { pid } /fitbit_sleep_intraday.csv Parameters description for [FITBIT_SLEEP_INTRADAY][PROVIDERS][PRICE] : Key Description [COMPUTE] Set to True to extract FITBIT_SLEEP_INTRADAY features from the PRICE provider [FEATURES] Features to be computed from sleep intraday data, see table below [SLEEP_LEVELS] Fitbit\u2019s sleep API Version 1 only provides CLASSIC records. However, Version 1.2 provides 2 types of records: CLASSIC and STAGES . STAGES is only available in devices with a heart rate sensor and even those devices will fail to report it if the battery is low or the device is not tight enough. While CLASSIC contains 3 sleep levels ( awake , restless , and asleep ), STAGES contains 4 sleep levels ( wake , deep , light , rem ). To make it consistent, RAPIDS groups them into 2 UNIFIED sleep levels: awake ( CLASSIC : awake and restless ; STAGES : wake ) and asleep ( CLASSIC : asleep ; STAGES : deep , light , and rem ). In this section, there is a boolean flag named INCLUDE_ALL_GROUPS that if set to TRUE, computes avgdurationallmain [DAY_TYPE] features grouping all levels together in a single all category. [DAY_TYPE] The features of this provider can be computed using daily averages/standard deviations that were extracted on WEEKEND days only, WEEK days only, or ALL days [LAST_NIGHT_END] Only main sleep episodes that start within the LNE-LNE interval [ LAST_NIGHT_END , LAST_NIGHT_END + 23H 59M 59S] are taken into account to compute the features described below. [LAST_NIGHT_END] is a number ranging from 0 (midnight) to 1439 (23:59). Features description for [FITBIT_SLEEP_INTRADAY][PROVIDERS][PRICE] : Feature Units Description avgduration [LEVEL] main [DAY_TYPE] minutes Average duration of daily sleep chunks of a LEVEL . Use the DAY_TYPE flag to include daily durations from weekend days only, weekdays, or both. Use [LEVEL] to group all levels in a single all category. avgratioduration [LEVEL] withinmain [DAY_TYPE] - Average of the daily ratio between the duration of sleep chunks of a LEVEL and total duration of all main sleep episodes in a day. When INCLUDE_ALL_GROUPS is True the all LEVEL is ignored since this feature is always 1. Use the DAY_TYPE flag to include start times from weekend days only, weekdays, or both. avgstarttimeofepisodemain [DAY_TYPE] minutes Average of all start times of the first main sleep episode within each LNE-LNE interval in a time segment. Use the DAY_TYPE flag to include start times from LNE-LNE intervals that start on weekend days only, weekdays, or both. avgendtimeofepisodemain [DAY_TYPE] minutes Average of all end times of the last main sleep episode within each LNE-LNE interval in a time segment. Use the DAY_TYPE flag to include end times from LNE-LNE intervals that start on weekend days only, weekdays, or both. avgmidpointofepisodemain [DAY_TYPE] minutes Average of all the differences between avgendtime... and avgstarttime.. in a time segment. Use the DAY_TYPE flag to include end times from LNE-LNE intervals that start on weekend days only, weekdays, or both. stdstarttimeofepisodemain [DAY_TYPE] minutes Standard deviation of all start times of the first main sleep episode within each LNE-LNE interval in a time segment. Use the DAY_TYPE flag to include start times from LNE-LNE intervals that start on weekend days only, weekdays, or both. stdendtimeofepisodemain [DAY_TYPE] minutes Standard deviation of all end times of the last main sleep episode within each LNE-LNE interval in a time segment. Use the DAY_TYPE flag to include end times from LNE-LNE intervals that start on weekend days only, weekdays, or both. stdmidpointofepisodemain [DAY_TYPE] minutes Standard deviation of all the differences between avgendtime... and avgstarttime.. in a time segment. Use the DAY_TYPE flag to include end times from LNE-LNE intervals that start on weekend days only, weekdays, or both. socialjetlag minutes Difference in minutes between the avgmidpointofepisodemain of weekends and weekdays that belong to each time segment instance. If your time segment does not contain at least one week day and one weekend day this feature will be NA. rmssdmeanstarttimeofepisodemain minutes Square root of the mean squared successive difference (RMSSD) between today\u2019s and yesterday\u2019s starttimeofepisodemain values across the entire participant\u2019s sleep data grouped per time segment instance. It represents the mean of how someone\u2019s starttimeofepisodemain (bedtime) changed from night to night. rmssdmeanendtimeofepisodemain minutes Square root of the mean squared successive difference (RMSSD) between today\u2019s and yesterday\u2019s endtimeofepisodemain values across the entire participant\u2019s sleep data grouped per time segment instance. It represents the mean of how someone\u2019s endtimeofepisodemain (wake time) changed from night to night. rmssdmeanmidpointofepisodemain minutes Square root of the mean squared successive difference (RMSSD) between today\u2019s and yesterday\u2019s midpointofepisodemain values across the entire participant\u2019s sleep data grouped per time segment instance. It represents the mean of how someone\u2019s midpointofepisodemain (mid time between bedtime and wake time) changed from night to night. rmssdmedianstarttimeofepisodemain minutes Square root of the median squared successive difference (RMSSD) between today\u2019s and yesterday\u2019s starttimeofepisodemain values across the entire participant\u2019s sleep data grouped per time segment instance. It represents the median of how someone\u2019s starttimeofepisodemain (bedtime) changed from night to night. rmssdmedianendtimeofepisodemain minutes Square root of the median squared successive difference (RMSSD) between today\u2019s and yesterday\u2019s endtimeofepisodemain values across the entire participant\u2019s sleep data grouped per time segment instance. It represents the median of how someone\u2019s endtimeofepisodemain (wake time) changed from night to night. rmssdmedianmidpointofepisodemain minutes Square root of the median squared successive difference (RMSSD) between today\u2019s and yesterday\u2019s midpointofepisodemain values across the entire participant\u2019s sleep data grouped per time segment instance. It represents the median of how someone\u2019s midpointofepisodemain (average mid time between bedtime and wake time) changed from night to night. Assumptions/Observations This diagram will help you understand how sleep episodes are chunked and grouped within time segments and LNE-LNE intervals for the PRICE provider. We recommend you use periodic segments that start in the morning so RAPIDS can chunk and group sleep episodes overnight. Shifted segments (as any other segments) are labelled based on their start and end date times. avgstarttime... and avgendtime... are roughly equivalent to an average bed and awake time only if you are using shifted segments. The features of this provider are only available on time segments that are longer than 24 hours because they are based on descriptive statistics computed across daily values. Even though Fitbit provides 2 types of sleep episodes ( main and nap ), only main sleep episodes are considered. The reference point for all times is 00:00 of the first day in the LNE-LNE interval. Sleep episodes are formed by 1-minute chunks that we group overnight starting from today\u2019s LNE and ending on tomorrow\u2019s LNE or the end of that segment (whatever is first). The features avgstarttime... and avgendtime... are the average of the first and last sleep episode across every LNE-LNE interval within a segment ( avgmidtime... is the mid point between start and end). Therefore, only segments longer than 24hrs will be averaged across more than one LNE-LNE interval. socialjetlag is only available on segment instances equal or longer than 48hrs that contain at least one weekday day and one weekend day, for example seven-day (weekly) segments.","title":"PRICE provider"},{"location":"features/fitbit-sleep-summary/","text":"Fitbit Sleep Summary \u00b6 Sensor parameters description for [FITBIT_SLEEP_SUMMARY] : Key Description [CONTAINER] Container where your sleep summary data is stored, depending on the data stream you are using this can be a database table, a CSV file, etc. RAPIDS provider \u00b6 Understanding RAPIDS features This diagram will help you understand how sleep episodes are chunked and grouped within time segments using SLEEP_SUMMARY_LAST_NIGHT_END for the RAPIDS provider. Available time segments Only available for segments that span 1 or more complete days (e.g. Jan 1 st 00:00 to Jan 3 rd 23:59) File Sequence - data/raw/ { pid } /fitbit_sleep_summary_raw.csv - data/raw/ { pid } /fitbit_sleep_summary_with_datetime.csv - data/interim/ { pid } /fitbit_sleep_summary_features/fitbit_sleep_summary_ { language } _ { provider_key } .csv - data/processed/features/ { pid } /fitbit_sleep_summary.csv Parameters description for [FITBIT_SLEEP_SUMMARY][PROVIDERS][RAPIDS] : Key Description [COMPUTE] Set to True to extract FITBIT_SLEEP_SUMMARY features from the RAPIDS provider [SLEEP_TYPES] Types of sleep to be included in the feature extraction computation. There are three sleep types: main , nap , and all . The all type means both main sleep and naps are considered. [FEATURES] Features to be computed from sleep summary data, see table below [FITBIT_DATA_STREAMS][data stream][SLEEP_SUMMARY_LAST_NIGHT_END] As an exception, the LAST_NIGHT_END parameter for this provider is in the data stream configuration section. This parameter controls how sleep episodes are assigned to different days and affects wake and bedtimes. Features description for [FITBIT_SLEEP_SUMMARY][PROVIDERS][RAPIDS] : Feature Units Description firstwaketimeTYPE minutes First wake time for a certain sleep type during a time segment. Wake time is number of minutes after midnight of a sleep episode\u2019s end time. lastwaketimeTYPE minutes Last wake time for a certain sleep type during a time segment. Wake time is number of minutes after midnight of a sleep episode\u2019s end time. firstbedtimeTYPE minutes First bedtime for a certain sleep type during a time segment. Bedtime is number of minutes after midnight of a sleep episode\u2019s start time. lastbedtimeTYPE minutes Last bedtime for a certain sleep type during a time segment. Bedtime is number of minutes after midnight of a sleep episode\u2019s start time. countepisodeTYPE episodes Number of sleep episodes for a certain sleep type during a time segment. avgefficiencyTYPE scores Average sleep efficiency for a certain sleep type during a time segment. sumdurationafterwakeupTYPE minutes Total duration the user stayed in bed after waking up for a certain sleep type during a time segment. sumdurationasleepTYPE minutes Total sleep duration for a certain sleep type during a time segment. sumdurationawakeTYPE minutes Total duration the user stayed awake but still in bed for a certain sleep type during a time segment. sumdurationtofallasleepTYPE minutes Total duration the user spent to fall asleep for a certain sleep type during a time segment. sumdurationinbedTYPE minutes Total duration the user stayed in bed (sumdurationtofallasleep + sumdurationawake + sumdurationasleep + sumdurationafterwakeup) for a certain sleep type during a time segment. avgdurationafterwakeupTYPE minutes Average duration the user stayed in bed after waking up for a certain sleep type during a time segment. avgdurationasleepTYPE minutes Average sleep duration for a certain sleep type during a time segment. avgdurationawakeTYPE minutes Average duration the user stayed awake but still in bed for a certain sleep type during a time segment. avgdurationtofallasleepTYPE minutes Average duration the user spent to fall asleep for a certain sleep type during a time segment. avgdurationinbedTYPE minutes Average duration the user stayed in bed (sumdurationtofallasleep + sumdurationawake + sumdurationasleep + sumdurationafterwakeup) for a certain sleep type during a time segment. Assumptions/Observations This diagram will help you understand how sleep episodes are chunked and grouped within time segments using LNE for the RAPIDS provider. There are three sleep types (TYPE): main , nap , all . The all type groups both main sleep and naps . All types are based on Fitbit\u2019s labels. There are two versions of Fitbit\u2019s sleep API ( version 1 and version 1.2 ), and each provides raw sleep data in a different format: Count & duration summaries . v1 contains count_awake , duration_awake , count_awakenings , count_restless , and duration_restless fields for every sleep record but v1.2 does not. API columns . Most features are computed based on the values provided by Fitbit\u2019s API: efficiency , minutes_after_wakeup , minutes_asleep , minutes_awake , minutes_to_fall_asleep , minutes_in_bed , is_main_sleep and type . Bed time and sleep duration are based on episodes that started between today\u2019s LNE and tomorrow\u2019s LNE while awake time is based on the episodes that started between yesterday\u2019s LNE and today\u2019s LNE The reference point for bed/awake times is today\u2019s 00:00. You can have bedtimes larger than 24 and awake times smaller than 0 These features are only available for time segments that span midnight to midnight of the same or different day. We include first and last wake and bedtimes because, when LAST_NIGHT_END is 10 am, the first bedtime could match a nap at 2 pm, and the last bedtime could match a main overnight sleep episode that starts at 10pm. Set the value for SLEEP_SUMMARY_LAST_NIGHT_END int the config parameter [FITBIT_DATA_STREAMS][data stream][SLEEP_SUMMARY_LAST_NIGHT_END].","title":"Fitbit Sleep Summary"},{"location":"features/fitbit-sleep-summary/#fitbit-sleep-summary","text":"Sensor parameters description for [FITBIT_SLEEP_SUMMARY] : Key Description [CONTAINER] Container where your sleep summary data is stored, depending on the data stream you are using this can be a database table, a CSV file, etc.","title":"Fitbit Sleep Summary"},{"location":"features/fitbit-sleep-summary/#rapids-provider","text":"Understanding RAPIDS features This diagram will help you understand how sleep episodes are chunked and grouped within time segments using SLEEP_SUMMARY_LAST_NIGHT_END for the RAPIDS provider. Available time segments Only available for segments that span 1 or more complete days (e.g. Jan 1 st 00:00 to Jan 3 rd 23:59) File Sequence - data/raw/ { pid } /fitbit_sleep_summary_raw.csv - data/raw/ { pid } /fitbit_sleep_summary_with_datetime.csv - data/interim/ { pid } /fitbit_sleep_summary_features/fitbit_sleep_summary_ { language } _ { provider_key } .csv - data/processed/features/ { pid } /fitbit_sleep_summary.csv Parameters description for [FITBIT_SLEEP_SUMMARY][PROVIDERS][RAPIDS] : Key Description [COMPUTE] Set to True to extract FITBIT_SLEEP_SUMMARY features from the RAPIDS provider [SLEEP_TYPES] Types of sleep to be included in the feature extraction computation. There are three sleep types: main , nap , and all . The all type means both main sleep and naps are considered. [FEATURES] Features to be computed from sleep summary data, see table below [FITBIT_DATA_STREAMS][data stream][SLEEP_SUMMARY_LAST_NIGHT_END] As an exception, the LAST_NIGHT_END parameter for this provider is in the data stream configuration section. This parameter controls how sleep episodes are assigned to different days and affects wake and bedtimes. Features description for [FITBIT_SLEEP_SUMMARY][PROVIDERS][RAPIDS] : Feature Units Description firstwaketimeTYPE minutes First wake time for a certain sleep type during a time segment. Wake time is number of minutes after midnight of a sleep episode\u2019s end time. lastwaketimeTYPE minutes Last wake time for a certain sleep type during a time segment. Wake time is number of minutes after midnight of a sleep episode\u2019s end time. firstbedtimeTYPE minutes First bedtime for a certain sleep type during a time segment. Bedtime is number of minutes after midnight of a sleep episode\u2019s start time. lastbedtimeTYPE minutes Last bedtime for a certain sleep type during a time segment. Bedtime is number of minutes after midnight of a sleep episode\u2019s start time. countepisodeTYPE episodes Number of sleep episodes for a certain sleep type during a time segment. avgefficiencyTYPE scores Average sleep efficiency for a certain sleep type during a time segment. sumdurationafterwakeupTYPE minutes Total duration the user stayed in bed after waking up for a certain sleep type during a time segment. sumdurationasleepTYPE minutes Total sleep duration for a certain sleep type during a time segment. sumdurationawakeTYPE minutes Total duration the user stayed awake but still in bed for a certain sleep type during a time segment. sumdurationtofallasleepTYPE minutes Total duration the user spent to fall asleep for a certain sleep type during a time segment. sumdurationinbedTYPE minutes Total duration the user stayed in bed (sumdurationtofallasleep + sumdurationawake + sumdurationasleep + sumdurationafterwakeup) for a certain sleep type during a time segment. avgdurationafterwakeupTYPE minutes Average duration the user stayed in bed after waking up for a certain sleep type during a time segment. avgdurationasleepTYPE minutes Average sleep duration for a certain sleep type during a time segment. avgdurationawakeTYPE minutes Average duration the user stayed awake but still in bed for a certain sleep type during a time segment. avgdurationtofallasleepTYPE minutes Average duration the user spent to fall asleep for a certain sleep type during a time segment. avgdurationinbedTYPE minutes Average duration the user stayed in bed (sumdurationtofallasleep + sumdurationawake + sumdurationasleep + sumdurationafterwakeup) for a certain sleep type during a time segment. Assumptions/Observations This diagram will help you understand how sleep episodes are chunked and grouped within time segments using LNE for the RAPIDS provider. There are three sleep types (TYPE): main , nap , all . The all type groups both main sleep and naps . All types are based on Fitbit\u2019s labels. There are two versions of Fitbit\u2019s sleep API ( version 1 and version 1.2 ), and each provides raw sleep data in a different format: Count & duration summaries . v1 contains count_awake , duration_awake , count_awakenings , count_restless , and duration_restless fields for every sleep record but v1.2 does not. API columns . Most features are computed based on the values provided by Fitbit\u2019s API: efficiency , minutes_after_wakeup , minutes_asleep , minutes_awake , minutes_to_fall_asleep , minutes_in_bed , is_main_sleep and type . Bed time and sleep duration are based on episodes that started between today\u2019s LNE and tomorrow\u2019s LNE while awake time is based on the episodes that started between yesterday\u2019s LNE and today\u2019s LNE The reference point for bed/awake times is today\u2019s 00:00. You can have bedtimes larger than 24 and awake times smaller than 0 These features are only available for time segments that span midnight to midnight of the same or different day. We include first and last wake and bedtimes because, when LAST_NIGHT_END is 10 am, the first bedtime could match a nap at 2 pm, and the last bedtime could match a main overnight sleep episode that starts at 10pm. Set the value for SLEEP_SUMMARY_LAST_NIGHT_END int the config parameter [FITBIT_DATA_STREAMS][data stream][SLEEP_SUMMARY_LAST_NIGHT_END].","title":"RAPIDS provider"},{"location":"features/fitbit-steps-intraday/","text":"Fitbit Steps Intraday \u00b6 Sensor parameters description for [FITBIT_STEPS_INTRADAY] : Key Description [CONTAINER] Container where your steps intraday data is stored, depending on the data stream you are using this can be a database table, a CSV file, etc. [EXCLUDE_SLEEP] Step data will be excluded if it was logged during sleep periods when at least one [EXCLUDE] flag is set to True . Sleep can be delimited by (1) a fixed period that repeats on every day if [TIME_BASED][EXCLUDE] is True or (2) by Fitbit summary sleep episodes if [FITBIT_BASED][EXCLUDE] is True. If both are True (3), we use all Fitbit sleep episodes as well as the time-based episodes that do not overlap with any Fitbit episodes. If [TIME_BASED][EXCLUDE] is True, make sure Fitbit sleep summary container points to a valid table or file. RAPIDS provider \u00b6 Available time segments Available for all time segments File Sequence - data/raw/ { pid } /fitbit_steps_intraday_raw.csv - data/raw/ { pid } /fitbit_steps_intraday_with_datetime.csv - data/raw/ { pid } /fitbit_sleep_summary_raw.csv ( Only when [ EXCLUDE_SLEEP ][ EXCLUDE ]= True and [ EXCLUDE_SLEEP ][ TYPE ]= FITBIT_BASED ) - data/interim/ { pid } /fitbit_steps_intraday_with_datetime_exclude_sleep.csv ( Only when [ EXCLUDE_SLEEP ][ EXCLUDE ]= True ) - data/interim/ { pid } /fitbit_steps_intraday_features/fitbit_steps_intraday_ { language } _ { provider_key } .csv - data/processed/features/ { pid } /fitbit_steps_intraday.csv Parameters description for [FITBIT_STEPS_INTRADAY][PROVIDERS][RAPIDS] : Key Description [COMPUTE] Set to True to extract FITBIT_STEPS_INTRADAY features from the RAPIDS provider [FEATURES] Features to be computed from steps intraday data, see table below [THRESHOLD_ACTIVE_BOUT] Every minute with Fitbit steps data wil be labelled as sedentary if its step count is below this threshold, otherwise, active . [INCLUDE_ZERO_STEP_ROWS] Whether or not to include time segments with a 0 step count during the whole day. Features description for [FITBIT_STEPS_INTRADAY][PROVIDERS][RAPIDS] : Feature Units Description sumsteps steps The total step count during a time segment. maxsteps steps The maximum step count during a time segment. minsteps steps The minimum step count during a time segment. avgsteps steps The average step count during a time segment. stdsteps steps The standard deviation of step count during a time segment. countepisodesedentarybout bouts Number of sedentary bouts during a time segment. sumdurationsedentarybout minutes Total duration of all sedentary bouts during a time segment. maxdurationsedentarybout minutes The maximum duration of any sedentary bout during a time segment. mindurationsedentarybout minutes The minimum duration of any sedentary bout during a time segment. avgdurationsedentarybout minutes The average duration of sedentary bouts during a time segment. stddurationsedentarybout minutes The standard deviation of the duration of sedentary bouts during a time segment. countepisodeactivebout bouts Number of active bouts during a time segment. sumdurationactivebout minutes Total duration of all active bouts during a time segment. maxdurationactivebout minutes The maximum duration of any active bout during a time segment. mindurationactivebout minutes The minimum duration of any active bout during a time segment. avgdurationactivebout minutes The average duration of active bouts during a time segment. stddurationactivebout minutes The standard deviation of the duration of active bouts during a time segment. Assumptions/Observations Active and sedentary bouts . If the step count per minute is smaller than THRESHOLD_ACTIVE_BOUT (default value is 10), that minute is labelled as sedentary, otherwise, is labelled as active. Active and sedentary bouts are periods of consecutive minutes labelled as active or sedentary .","title":"Fitbit Steps Intraday"},{"location":"features/fitbit-steps-intraday/#fitbit-steps-intraday","text":"Sensor parameters description for [FITBIT_STEPS_INTRADAY] : Key Description [CONTAINER] Container where your steps intraday data is stored, depending on the data stream you are using this can be a database table, a CSV file, etc. [EXCLUDE_SLEEP] Step data will be excluded if it was logged during sleep periods when at least one [EXCLUDE] flag is set to True . Sleep can be delimited by (1) a fixed period that repeats on every day if [TIME_BASED][EXCLUDE] is True or (2) by Fitbit summary sleep episodes if [FITBIT_BASED][EXCLUDE] is True. If both are True (3), we use all Fitbit sleep episodes as well as the time-based episodes that do not overlap with any Fitbit episodes. If [TIME_BASED][EXCLUDE] is True, make sure Fitbit sleep summary container points to a valid table or file.","title":"Fitbit Steps Intraday"},{"location":"features/fitbit-steps-intraday/#rapids-provider","text":"Available time segments Available for all time segments File Sequence - data/raw/ { pid } /fitbit_steps_intraday_raw.csv - data/raw/ { pid } /fitbit_steps_intraday_with_datetime.csv - data/raw/ { pid } /fitbit_sleep_summary_raw.csv ( Only when [ EXCLUDE_SLEEP ][ EXCLUDE ]= True and [ EXCLUDE_SLEEP ][ TYPE ]= FITBIT_BASED ) - data/interim/ { pid } /fitbit_steps_intraday_with_datetime_exclude_sleep.csv ( Only when [ EXCLUDE_SLEEP ][ EXCLUDE ]= True ) - data/interim/ { pid } /fitbit_steps_intraday_features/fitbit_steps_intraday_ { language } _ { provider_key } .csv - data/processed/features/ { pid } /fitbit_steps_intraday.csv Parameters description for [FITBIT_STEPS_INTRADAY][PROVIDERS][RAPIDS] : Key Description [COMPUTE] Set to True to extract FITBIT_STEPS_INTRADAY features from the RAPIDS provider [FEATURES] Features to be computed from steps intraday data, see table below [THRESHOLD_ACTIVE_BOUT] Every minute with Fitbit steps data wil be labelled as sedentary if its step count is below this threshold, otherwise, active . [INCLUDE_ZERO_STEP_ROWS] Whether or not to include time segments with a 0 step count during the whole day. Features description for [FITBIT_STEPS_INTRADAY][PROVIDERS][RAPIDS] : Feature Units Description sumsteps steps The total step count during a time segment. maxsteps steps The maximum step count during a time segment. minsteps steps The minimum step count during a time segment. avgsteps steps The average step count during a time segment. stdsteps steps The standard deviation of step count during a time segment. countepisodesedentarybout bouts Number of sedentary bouts during a time segment. sumdurationsedentarybout minutes Total duration of all sedentary bouts during a time segment. maxdurationsedentarybout minutes The maximum duration of any sedentary bout during a time segment. mindurationsedentarybout minutes The minimum duration of any sedentary bout during a time segment. avgdurationsedentarybout minutes The average duration of sedentary bouts during a time segment. stddurationsedentarybout minutes The standard deviation of the duration of sedentary bouts during a time segment. countepisodeactivebout bouts Number of active bouts during a time segment. sumdurationactivebout minutes Total duration of all active bouts during a time segment. maxdurationactivebout minutes The maximum duration of any active bout during a time segment. mindurationactivebout minutes The minimum duration of any active bout during a time segment. avgdurationactivebout minutes The average duration of active bouts during a time segment. stddurationactivebout minutes The standard deviation of the duration of active bouts during a time segment. Assumptions/Observations Active and sedentary bouts . If the step count per minute is smaller than THRESHOLD_ACTIVE_BOUT (default value is 10), that minute is labelled as sedentary, otherwise, is labelled as active. Active and sedentary bouts are periods of consecutive minutes labelled as active or sedentary .","title":"RAPIDS provider"},{"location":"features/fitbit-steps-summary/","text":"Fitbit Steps Summary \u00b6 Sensor parameters description for [FITBIT_STEPS_SUMMARY] : Key Description [CONTAINER] Container where your steps summary data is stored, depending on the data stream you are using this can be a database table, a CSV file, etc. RAPIDS provider \u00b6 Available time segments Only available for segments that span 1 or more complete days (e.g. Jan 1 st 00:00 to Jan 3 rd 23:59) File Sequence - data/raw/ { pid } /fitbit_steps_summary_raw.csv - data/raw/ { pid } /fitbit_steps_summary_with_datetime.csv - data/interim/ { pid } /fitbit_steps_summary_features/fitbit_steps_summary_ { language } _ { provider_key } .csv - data/processed/features/ { pid } /fitbit_steps_summary.csv Parameters description for [FITBIT_STEPS_SUMMARY][PROVIDERS][RAPIDS] : Key Description [COMPUTE] Set to True to extract FITBIT_STEPS_SUMMARY features from the RAPIDS provider [FEATURES] Features to be computed from steps summary data, see table below Features description for [FITBIT_STEPS_SUMMARY][PROVIDERS][RAPIDS] : Feature Units Description maxsumsteps steps The maximum daily step count during a time segment. minsumsteps steps The minimum daily step count during a time segment. avgsumsteps steps The average daily step count during a time segment. mediansumsteps steps The median of daily step count during a time segment. stdsumsteps steps The standard deviation of daily step count during a time segment. Assumptions/Observations NA","title":"Fitbit Steps Summary"},{"location":"features/fitbit-steps-summary/#fitbit-steps-summary","text":"Sensor parameters description for [FITBIT_STEPS_SUMMARY] : Key Description [CONTAINER] Container where your steps summary data is stored, depending on the data stream you are using this can be a database table, a CSV file, etc.","title":"Fitbit Steps Summary"},{"location":"features/fitbit-steps-summary/#rapids-provider","text":"Available time segments Only available for segments that span 1 or more complete days (e.g. Jan 1 st 00:00 to Jan 3 rd 23:59) File Sequence - data/raw/ { pid } /fitbit_steps_summary_raw.csv - data/raw/ { pid } /fitbit_steps_summary_with_datetime.csv - data/interim/ { pid } /fitbit_steps_summary_features/fitbit_steps_summary_ { language } _ { provider_key } .csv - data/processed/features/ { pid } /fitbit_steps_summary.csv Parameters description for [FITBIT_STEPS_SUMMARY][PROVIDERS][RAPIDS] : Key Description [COMPUTE] Set to True to extract FITBIT_STEPS_SUMMARY features from the RAPIDS provider [FEATURES] Features to be computed from steps summary data, see table below Features description for [FITBIT_STEPS_SUMMARY][PROVIDERS][RAPIDS] : Feature Units Description maxsumsteps steps The maximum daily step count during a time segment. minsumsteps steps The minimum daily step count during a time segment. avgsumsteps steps The average daily step count during a time segment. mediansumsteps steps The median of daily step count during a time segment. stdsumsteps steps The standard deviation of daily step count during a time segment. Assumptions/Observations NA","title":"RAPIDS provider"},{"location":"features/phone-accelerometer/","text":"Phone Accelerometer \u00b6 Sensor parameters description for [PHONE_ACCELEROMETER] : Key Description [CONTAINER] Data stream container (database table, CSV file, etc.) where the accelerometer data is stored RAPIDS provider \u00b6 Available time segments and platforms Available for all time segments Available for Android and iOS File Sequence - data/raw/ { pid } /phone_accelerometer_raw.csv - data/raw/ { pid } /phone_accelerometer_with_datetime.csv - data/interim/ { pid } /phone_accelerometer_features/phone_accelerometer_ { language } _ { provider_key } .csv - data/processed/features/ { pid } /phone_accelerometer.csv Parameters description for [PHONE_ACCELEROMETER][PROVIDERS][RAPIDS] : Key Description [COMPUTE] Set to True to extract PHONE_ACCELEROMETER features from the RAPIDS provider [FEATURES] Features to be computed, see table below Features description for [PHONE_ACCELEROMETER][PROVIDERS][RAPIDS] : Feature Units Description maxmagnitude m/s 2 The maximum magnitude of acceleration ( \\(\\|acceleration\\| = \\sqrt{x^2 + y^2 + z^2}\\) ). minmagnitude m/s 2 The minimum magnitude of acceleration. avgmagnitude m/s 2 The average magnitude of acceleration. medianmagnitude m/s 2 The median magnitude of acceleration. stdmagnitude m/s 2 The standard deviation of acceleration. Assumptions/Observations Analyzing accelerometer data is a memory intensive task. If RAPIDS crashes is likely because the accelerometer dataset for a participant is to big to fit in memory. We are considering different alternatives to overcome this problem. PANDA provider \u00b6 These features are based on the work by Panda et al . Available time segments and platforms Available for all time segments Available for Android and iOS File Sequence - data/raw/ { pid } /phone_accelerometer_raw.csv - data/raw/ { pid } /phone_accelerometer_with_datetime.csv - data/interim/ { pid } /phone_accelerometer_features/phone_accelerometer_ { language } _ { provider_key } .csv - data/processed/features/ { pid } /phone_accelerometer.csv Parameters description for [PHONE_ACCELEROMETER][PROVIDERS][PANDA] : Key Description [COMPUTE] Set to True to extract PHONE_ACCELEROMETER features from the PANDA provider [FEATURES] Features to be computed for exertional and non-exertional activity episodes, see table below Features description for [PHONE_ACCELEROMETER][PROVIDERS][PANDA] : Feature Units Description sumduration minutes Total duration of all exertional or non-exertional activity episodes. maxduration minutes Longest duration of any exertional or non-exertional activity episode. minduration minutes Shortest duration of any exertional or non-exertional activity episode. avgduration minutes Average duration of any exertional or non-exertional activity episode. medianduration minutes Median duration of any exertional or non-exertional activity episode. stdduration minutes Standard deviation of the duration of all exertional or non-exertional activity episodes. Assumptions/Observations Analyzing accelerometer data is a memory intensive task. If RAPIDS crashes is likely because the accelerometer dataset for a participant is to big to fit in memory. We are considering different alternatives to overcome this problem. See Panda et al for a definition of exertional and non-exertional activity episodes","title":"Phone Accelerometer"},{"location":"features/phone-accelerometer/#phone-accelerometer","text":"Sensor parameters description for [PHONE_ACCELEROMETER] : Key Description [CONTAINER] Data stream container (database table, CSV file, etc.) where the accelerometer data is stored","title":"Phone Accelerometer"},{"location":"features/phone-accelerometer/#rapids-provider","text":"Available time segments and platforms Available for all time segments Available for Android and iOS File Sequence - data/raw/ { pid } /phone_accelerometer_raw.csv - data/raw/ { pid } /phone_accelerometer_with_datetime.csv - data/interim/ { pid } /phone_accelerometer_features/phone_accelerometer_ { language } _ { provider_key } .csv - data/processed/features/ { pid } /phone_accelerometer.csv Parameters description for [PHONE_ACCELEROMETER][PROVIDERS][RAPIDS] : Key Description [COMPUTE] Set to True to extract PHONE_ACCELEROMETER features from the RAPIDS provider [FEATURES] Features to be computed, see table below Features description for [PHONE_ACCELEROMETER][PROVIDERS][RAPIDS] : Feature Units Description maxmagnitude m/s 2 The maximum magnitude of acceleration ( \\(\\|acceleration\\| = \\sqrt{x^2 + y^2 + z^2}\\) ). minmagnitude m/s 2 The minimum magnitude of acceleration. avgmagnitude m/s 2 The average magnitude of acceleration. medianmagnitude m/s 2 The median magnitude of acceleration. stdmagnitude m/s 2 The standard deviation of acceleration. Assumptions/Observations Analyzing accelerometer data is a memory intensive task. If RAPIDS crashes is likely because the accelerometer dataset for a participant is to big to fit in memory. We are considering different alternatives to overcome this problem.","title":"RAPIDS provider"},{"location":"features/phone-accelerometer/#panda-provider","text":"These features are based on the work by Panda et al . Available time segments and platforms Available for all time segments Available for Android and iOS File Sequence - data/raw/ { pid } /phone_accelerometer_raw.csv - data/raw/ { pid } /phone_accelerometer_with_datetime.csv - data/interim/ { pid } /phone_accelerometer_features/phone_accelerometer_ { language } _ { provider_key } .csv - data/processed/features/ { pid } /phone_accelerometer.csv Parameters description for [PHONE_ACCELEROMETER][PROVIDERS][PANDA] : Key Description [COMPUTE] Set to True to extract PHONE_ACCELEROMETER features from the PANDA provider [FEATURES] Features to be computed for exertional and non-exertional activity episodes, see table below Features description for [PHONE_ACCELEROMETER][PROVIDERS][PANDA] : Feature Units Description sumduration minutes Total duration of all exertional or non-exertional activity episodes. maxduration minutes Longest duration of any exertional or non-exertional activity episode. minduration minutes Shortest duration of any exertional or non-exertional activity episode. avgduration minutes Average duration of any exertional or non-exertional activity episode. medianduration minutes Median duration of any exertional or non-exertional activity episode. stdduration minutes Standard deviation of the duration of all exertional or non-exertional activity episodes. Assumptions/Observations Analyzing accelerometer data is a memory intensive task. If RAPIDS crashes is likely because the accelerometer dataset for a participant is to big to fit in memory. We are considering different alternatives to overcome this problem. See Panda et al for a definition of exertional and non-exertional activity episodes","title":"PANDA provider"},{"location":"features/phone-activity-recognition/","text":"Phone Activity Recognition \u00b6 Sensor parameters description for [PHONE_ACTIVITY_RECOGNITION] : Key Description [CONTAINER][ANDROID] Data stream container (database table, CSV file, etc.) where the activity data from Android devices is stored (the AWARE client saves this data on different tables for Android and iOS) [CONTAINER][IOS] Data stream container (database table, CSV file, etc.) where the activity data from iOS devices is stored (the AWARE client saves this data on different tables for Android and iOS) [EPISODE_THRESHOLD_BETWEEN_ROWS] Difference in minutes between any two rows for them to be considered part of the same activity episode RAPIDS provider \u00b6 Available time segments and platforms Available for all time segments Available for Android and iOS File Sequence - data/raw/ { pid } /phone_activity_recognition_raw.csv - data/raw/ { pid } /phone_activity_recognition_with_datetime.csv - data/interim/ { pid } /phone_activity_recognition_episodes.csv - data/interim/ { pid } /phone_activity_recognition_episodes_resampled.csv - data/interim/ { pid } /phone_activity_recognition_episodes_resampled_with_datetime.csv - data/interim/ { pid } /phone_activity_recognition_features/phone_activity_recognition_ { language } _ { provider_key } .csv - data/processed/features/ { pid } /phone_activity_recognition.csv Parameters description for [PHONE_ACTIVITY_RECOGNITION][PROVIDERS][RAPIDS] : Key Description [COMPUTE] Set to True to extract PHONE_ACTIVITY_RECOGNITION features from the RAPIDS provider [FEATURES] Features to be computed, see table below [ACTIVITY_CLASSES][STATIONARY] An array of the activity labels to be considered in the STATIONARY category choose any of still , tilting [ACTIVITY_CLASSES][MOBILE] An array of the activity labels to be considered in the MOBILE category choose any of on_foot , walking , running , on_bicycle [ACTIVITY_CLASSES][VEHICLE] An array of the activity labels to be considered in the VEHICLE category choose any of in_vehicule Features description for [PHONE_ACTIVITY_RECOGNITION][PROVIDERS][RAPIDS] : Feature Units Description count rows Number of episodes. mostcommonactivity activity type The most common activity type (e.g. still , on_foot , etc.). If there is a tie, the first one is chosen. countuniqueactivities activity type Number of unique activities. durationstationary minutes The total duration of [ACTIVITY_CLASSES][STATIONARY] episodes durationmobile minutes The total duration of [ACTIVITY_CLASSES][MOBILE] episodes of on foot, running, and on bicycle activities durationvehicle minutes The total duration of [ACTIVITY_CLASSES][VEHICLE] episodes of on vehicle activity Assumptions/Observations iOS Activity Recognition names and types are unified with Android labels: iOS Activity Name Android Activity Name Android Activity Type walking walking 7 running running 8 cycling on_bicycle 1 automotive in_vehicle 0 stationary still 3 unknown unknown 4 In AWARE, Activity Recognition data for Android and iOS are stored in two different database tables, RAPIDS automatically infers what platform each participant belongs to based on their participant file .","title":"Phone Activity Recognition"},{"location":"features/phone-activity-recognition/#phone-activity-recognition","text":"Sensor parameters description for [PHONE_ACTIVITY_RECOGNITION] : Key Description [CONTAINER][ANDROID] Data stream container (database table, CSV file, etc.) where the activity data from Android devices is stored (the AWARE client saves this data on different tables for Android and iOS) [CONTAINER][IOS] Data stream container (database table, CSV file, etc.) where the activity data from iOS devices is stored (the AWARE client saves this data on different tables for Android and iOS) [EPISODE_THRESHOLD_BETWEEN_ROWS] Difference in minutes between any two rows for them to be considered part of the same activity episode","title":"Phone Activity Recognition"},{"location":"features/phone-activity-recognition/#rapids-provider","text":"Available time segments and platforms Available for all time segments Available for Android and iOS File Sequence - data/raw/ { pid } /phone_activity_recognition_raw.csv - data/raw/ { pid } /phone_activity_recognition_with_datetime.csv - data/interim/ { pid } /phone_activity_recognition_episodes.csv - data/interim/ { pid } /phone_activity_recognition_episodes_resampled.csv - data/interim/ { pid } /phone_activity_recognition_episodes_resampled_with_datetime.csv - data/interim/ { pid } /phone_activity_recognition_features/phone_activity_recognition_ { language } _ { provider_key } .csv - data/processed/features/ { pid } /phone_activity_recognition.csv Parameters description for [PHONE_ACTIVITY_RECOGNITION][PROVIDERS][RAPIDS] : Key Description [COMPUTE] Set to True to extract PHONE_ACTIVITY_RECOGNITION features from the RAPIDS provider [FEATURES] Features to be computed, see table below [ACTIVITY_CLASSES][STATIONARY] An array of the activity labels to be considered in the STATIONARY category choose any of still , tilting [ACTIVITY_CLASSES][MOBILE] An array of the activity labels to be considered in the MOBILE category choose any of on_foot , walking , running , on_bicycle [ACTIVITY_CLASSES][VEHICLE] An array of the activity labels to be considered in the VEHICLE category choose any of in_vehicule Features description for [PHONE_ACTIVITY_RECOGNITION][PROVIDERS][RAPIDS] : Feature Units Description count rows Number of episodes. mostcommonactivity activity type The most common activity type (e.g. still , on_foot , etc.). If there is a tie, the first one is chosen. countuniqueactivities activity type Number of unique activities. durationstationary minutes The total duration of [ACTIVITY_CLASSES][STATIONARY] episodes durationmobile minutes The total duration of [ACTIVITY_CLASSES][MOBILE] episodes of on foot, running, and on bicycle activities durationvehicle minutes The total duration of [ACTIVITY_CLASSES][VEHICLE] episodes of on vehicle activity Assumptions/Observations iOS Activity Recognition names and types are unified with Android labels: iOS Activity Name Android Activity Name Android Activity Type walking walking 7 running running 8 cycling on_bicycle 1 automotive in_vehicle 0 stationary still 3 unknown unknown 4 In AWARE, Activity Recognition data for Android and iOS are stored in two different database tables, RAPIDS automatically infers what platform each participant belongs to based on their participant file .","title":"RAPIDS provider"},{"location":"features/phone-applications-crashes/","text":"Phone Applications Crashes \u00b6 Sensor parameters description for [PHONE_APPLICATIONS_CRASHES] : Key Description [CONTAINER] Data stream container (database table, CSV file, etc.) where the applications crashes data is stored [APPLICATION_CATEGORIES][CATALOGUE_SOURCE] FILE or GOOGLE . If FILE , app categories (genres) are read from [CATALOGUE_FILE] . If [GOOGLE] , app categories (genres) are scrapped from the Play Store [APPLICATION_CATEGORIES][CATALOGUE_FILE] CSV file with a package_name and genre column. By default we provide the catalogue created by Stachl et al in data/external/stachl_application_genre_catalogue.csv [APPLICATION_CATEGORIES][UPDATE_CATALOGUE_FILE] if [CATALOGUE_SOURCE] is equal to FILE , this flag signals whether or not to update [CATALOGUE_FILE] , if [CATALOGUE_SOURCE] is equal to GOOGLE all scraped genres will be saved to [CATALOGUE_FILE] [APPLICATION_CATEGORIES][SCRAPE_MISSING_CATEGORIES] This flag signals whether or not to scrape categories (genres) missing from the [CATALOGUE_FILE] . If [CATALOGUE_SOURCE] is equal to GOOGLE , all genres are scraped anyway (this flag is ignored) Note No feature providers have been implemented for this sensor yet, however you can use its key ( PHONE_APPLICATIONS_CRASHES ) to improve PHONE_DATA_YIELD or you can implement your own features .","title":"Phone Applications Crashes"},{"location":"features/phone-applications-crashes/#phone-applications-crashes","text":"Sensor parameters description for [PHONE_APPLICATIONS_CRASHES] : Key Description [CONTAINER] Data stream container (database table, CSV file, etc.) where the applications crashes data is stored [APPLICATION_CATEGORIES][CATALOGUE_SOURCE] FILE or GOOGLE . If FILE , app categories (genres) are read from [CATALOGUE_FILE] . If [GOOGLE] , app categories (genres) are scrapped from the Play Store [APPLICATION_CATEGORIES][CATALOGUE_FILE] CSV file with a package_name and genre column. By default we provide the catalogue created by Stachl et al in data/external/stachl_application_genre_catalogue.csv [APPLICATION_CATEGORIES][UPDATE_CATALOGUE_FILE] if [CATALOGUE_SOURCE] is equal to FILE , this flag signals whether or not to update [CATALOGUE_FILE] , if [CATALOGUE_SOURCE] is equal to GOOGLE all scraped genres will be saved to [CATALOGUE_FILE] [APPLICATION_CATEGORIES][SCRAPE_MISSING_CATEGORIES] This flag signals whether or not to scrape categories (genres) missing from the [CATALOGUE_FILE] . If [CATALOGUE_SOURCE] is equal to GOOGLE , all genres are scraped anyway (this flag is ignored) Note No feature providers have been implemented for this sensor yet, however you can use its key ( PHONE_APPLICATIONS_CRASHES ) to improve PHONE_DATA_YIELD or you can implement your own features .","title":"Phone Applications Crashes"},{"location":"features/phone-applications-foreground/","text":"Phone Applications Foreground \u00b6 Sensor parameters description for [PHONE_APPLICATIONS_FOREGROUND] (these parameters are used by the only provider available at the moment, RAPIDS): Key Description [CONTAINER] Data stream container (database table, CSV file, etc.) where the applications foreground data is stored [APPLICATION_CATEGORIES][CATALOGUE_SOURCE] FILE or GOOGLE . If FILE , app categories (genres) are read from [CATALOGUE_FILE] . If [GOOGLE] , app categories (genres) are scrapped from the Play Store [APPLICATION_CATEGORIES][CATALOGUE_FILE] CSV file with a package_name and genre column. By default we provide the catalogue created by Stachl et al in data/external/stachl_application_genre_catalogue.csv [APPLICATION_CATEGORIES][UPDATE_CATALOGUE_FILE] if [CATALOGUE_SOURCE] is equal to FILE , this flag signals whether or not to update [CATALOGUE_FILE] , if [CATALOGUE_SOURCE] is equal to GOOGLE all scraped genres will be saved to [CATALOGUE_FILE] [APPLICATION_CATEGORIES][SCRAPE_MISSING_CATEGORIES] This flag signals whether or not to scrape categories (genres) missing from the [CATALOGUE_FILE] . If [CATALOGUE_SOURCE] is equal to GOOGLE , all genres are scraped anyway (this flag is ignored) RAPIDS provider \u00b6 The app category (genre) catalogue used in these features was originally created by Stachl et al . Available time segments and platforms Available for all time segments Available for Android only File Sequence - data/raw/ { pid } /phone_applications_foreground_raw.csv - data/raw/ { pid } /phone_applications_foreground_with_datetime.csv - data/raw/ { pid } /phone_applications_foreground_with_datetime_with_categories.csv - data/interim/ { pid } /phone_applications_foreground_features/phone_applications_foreground_ { language } _ { provider_key } .csv - data/processed/features/ { pid } /phone_applications_foreground.csv Parameters description for [PHONE_APPLICATIONS_FOREGROUND][PROVIDERS][RAPIDS] : Key Description [COMPUTE] Set to True to extract PHONE_APPLICATIONS_FOREGROUND features from the RAPIDS provider [FEATURES] Features to be computed, see table below [SINGLE_CATEGORIES] An array of app categories to be included in the feature extraction computation. The special keyword all represents a category with all the apps from each participant. By default we use the category catalogue pointed by [APPLICATION_CATEGORIES][CATALOGUE_FILE] (see the Sensor parameters description table above) [MULTIPLE_CATEGORIES] An array of collections representing meta-categories (a group of categories). They key of each element is the name of the meta-category and the value is an array of member app categories. By default we use the category catalogue pointed by [APPLICATION_CATEGORIES][CATALOGUE_FILE] (see the Sensor parameters description table above) [SINGLE_APPS] An array of apps to be included in the feature extraction computation. Use their package name (e.g. com.google.android.youtube ) or the reserved keyword top1global (the most used app by a participant over the whole monitoring study) [EXCLUDED_CATEGORIES] An array of app categories to be excluded from the feature extraction computation. By default we use the category catalogue pointed by [APPLICATION_CATEGORIES][CATALOGUE_FILE] (see the Sensor parameters description table above) [EXCLUDED_APPS] An array of apps to be excluded from the feature extraction computation. Use their package name, for example: com.google.android.youtube Features description for [PHONE_APPLICATIONS_FOREGROUND][PROVIDERS][RAPIDS] : Feature Units Description count apps Number of times a single app or apps within a category were used (i.e. they were brought to the foreground either by tapping their icon or switching to it from another app) timeoffirstuse minutes The time in minutes between 12:00am (midnight) and the first use of a single app or apps within a category during a time_segment timeoflastuse minutes The time in minutes between 12:00am (midnight) and the last use of a single app or apps within a category during a time_segment frequencyentropy nats The entropy of the used apps within a category during a time_segment (each app is seen as a unique event, the more apps were used, the higher the entropy). This is especially relevant when computed over all apps. Entropy cannot be obtained for a single app Assumptions/Observations Features can be computed by app, by apps grouped under a single category (genre) and by multiple categories grouped together (meta-categories). For example, we can get features for Facebook (single app), for Social Network apps (a category including Facebook and other social media apps) or for Social (a meta-category formed by Social Network and Social Media Tools categories). Apps installed by default like YouTube are considered systems apps on some phones. We do an exact match to exclude apps where \u201cgenre\u201d == EXCLUDED_CATEGORIES or \u201cpackage_name\u201d == EXCLUDED_APPS . We provide three ways of classifying and app within a category (genre): a) by automatically scraping its official category from the Google Play Store, b) by using the catalogue created by Stachl et al. which we provide in RAPIDS ( data/external/stachl_application_genre_catalogue.csv ), or c) by manually creating a personalized catalogue. You can choose a, b or c by modifying [APPLICATION_GENRES] keys and values (see the Sensor parameters description table above).","title":"Phone Applications Foreground"},{"location":"features/phone-applications-foreground/#phone-applications-foreground","text":"Sensor parameters description for [PHONE_APPLICATIONS_FOREGROUND] (these parameters are used by the only provider available at the moment, RAPIDS): Key Description [CONTAINER] Data stream container (database table, CSV file, etc.) where the applications foreground data is stored [APPLICATION_CATEGORIES][CATALOGUE_SOURCE] FILE or GOOGLE . If FILE , app categories (genres) are read from [CATALOGUE_FILE] . If [GOOGLE] , app categories (genres) are scrapped from the Play Store [APPLICATION_CATEGORIES][CATALOGUE_FILE] CSV file with a package_name and genre column. By default we provide the catalogue created by Stachl et al in data/external/stachl_application_genre_catalogue.csv [APPLICATION_CATEGORIES][UPDATE_CATALOGUE_FILE] if [CATALOGUE_SOURCE] is equal to FILE , this flag signals whether or not to update [CATALOGUE_FILE] , if [CATALOGUE_SOURCE] is equal to GOOGLE all scraped genres will be saved to [CATALOGUE_FILE] [APPLICATION_CATEGORIES][SCRAPE_MISSING_CATEGORIES] This flag signals whether or not to scrape categories (genres) missing from the [CATALOGUE_FILE] . If [CATALOGUE_SOURCE] is equal to GOOGLE , all genres are scraped anyway (this flag is ignored)","title":"Phone Applications Foreground"},{"location":"features/phone-applications-foreground/#rapids-provider","text":"The app category (genre) catalogue used in these features was originally created by Stachl et al . Available time segments and platforms Available for all time segments Available for Android only File Sequence - data/raw/ { pid } /phone_applications_foreground_raw.csv - data/raw/ { pid } /phone_applications_foreground_with_datetime.csv - data/raw/ { pid } /phone_applications_foreground_with_datetime_with_categories.csv - data/interim/ { pid } /phone_applications_foreground_features/phone_applications_foreground_ { language } _ { provider_key } .csv - data/processed/features/ { pid } /phone_applications_foreground.csv Parameters description for [PHONE_APPLICATIONS_FOREGROUND][PROVIDERS][RAPIDS] : Key Description [COMPUTE] Set to True to extract PHONE_APPLICATIONS_FOREGROUND features from the RAPIDS provider [FEATURES] Features to be computed, see table below [SINGLE_CATEGORIES] An array of app categories to be included in the feature extraction computation. The special keyword all represents a category with all the apps from each participant. By default we use the category catalogue pointed by [APPLICATION_CATEGORIES][CATALOGUE_FILE] (see the Sensor parameters description table above) [MULTIPLE_CATEGORIES] An array of collections representing meta-categories (a group of categories). They key of each element is the name of the meta-category and the value is an array of member app categories. By default we use the category catalogue pointed by [APPLICATION_CATEGORIES][CATALOGUE_FILE] (see the Sensor parameters description table above) [SINGLE_APPS] An array of apps to be included in the feature extraction computation. Use their package name (e.g. com.google.android.youtube ) or the reserved keyword top1global (the most used app by a participant over the whole monitoring study) [EXCLUDED_CATEGORIES] An array of app categories to be excluded from the feature extraction computation. By default we use the category catalogue pointed by [APPLICATION_CATEGORIES][CATALOGUE_FILE] (see the Sensor parameters description table above) [EXCLUDED_APPS] An array of apps to be excluded from the feature extraction computation. Use their package name, for example: com.google.android.youtube Features description for [PHONE_APPLICATIONS_FOREGROUND][PROVIDERS][RAPIDS] : Feature Units Description count apps Number of times a single app or apps within a category were used (i.e. they were brought to the foreground either by tapping their icon or switching to it from another app) timeoffirstuse minutes The time in minutes between 12:00am (midnight) and the first use of a single app or apps within a category during a time_segment timeoflastuse minutes The time in minutes between 12:00am (midnight) and the last use of a single app or apps within a category during a time_segment frequencyentropy nats The entropy of the used apps within a category during a time_segment (each app is seen as a unique event, the more apps were used, the higher the entropy). This is especially relevant when computed over all apps. Entropy cannot be obtained for a single app Assumptions/Observations Features can be computed by app, by apps grouped under a single category (genre) and by multiple categories grouped together (meta-categories). For example, we can get features for Facebook (single app), for Social Network apps (a category including Facebook and other social media apps) or for Social (a meta-category formed by Social Network and Social Media Tools categories). Apps installed by default like YouTube are considered systems apps on some phones. We do an exact match to exclude apps where \u201cgenre\u201d == EXCLUDED_CATEGORIES or \u201cpackage_name\u201d == EXCLUDED_APPS . We provide three ways of classifying and app within a category (genre): a) by automatically scraping its official category from the Google Play Store, b) by using the catalogue created by Stachl et al. which we provide in RAPIDS ( data/external/stachl_application_genre_catalogue.csv ), or c) by manually creating a personalized catalogue. You can choose a, b or c by modifying [APPLICATION_GENRES] keys and values (see the Sensor parameters description table above).","title":"RAPIDS provider"},{"location":"features/phone-applications-notifications/","text":"Phone Applications Notifications \u00b6 Sensor parameters description for [PHONE_APPLICATIONS_NOTIFICATIONS] : Key Description [CONTAINER] Data stream container (database table, CSV file, etc.) where the applications notifications data is stored [APPLICATION_CATEGORIES][CATALOGUE_SOURCE] FILE or GOOGLE . If FILE , app categories (genres) are read from [CATALOGUE_FILE] . If [GOOGLE] , app categories (genres) are scrapped from the Play Store [APPLICATION_CATEGORIES][CATALOGUE_FILE] CSV file with a package_name and genre column. By default we provide the catalogue created by Stachl et al in data/external/stachl_application_genre_catalogue.csv [APPLICATION_CATEGORIES][UPDATE_CATALOGUE_FILE] if [CATALOGUE_SOURCE] is equal to FILE , this flag signals whether or not to update [CATALOGUE_FILE] , if [CATALOGUE_SOURCE] is equal to GOOGLE all scraped genres will be saved to [CATALOGUE_FILE] [APPLICATION_CATEGORIES][SCRAPE_MISSING_CATEGORIES] This flag signals whether or not to scrape categories (genres) missing from the [CATALOGUE_FILE] . If [CATALOGUE_SOURCE] is equal to GOOGLE , all genres are scraped anyway (this flag is ignored) Note No feature providers have been implemented for this sensor yet, however you can use its key ( PHONE_APPLICATIONS_NOTIFICATIONS ) to improve PHONE_DATA_YIELD or you can implement your own features .","title":"Phone Applications Notifications"},{"location":"features/phone-applications-notifications/#phone-applications-notifications","text":"Sensor parameters description for [PHONE_APPLICATIONS_NOTIFICATIONS] : Key Description [CONTAINER] Data stream container (database table, CSV file, etc.) where the applications notifications data is stored [APPLICATION_CATEGORIES][CATALOGUE_SOURCE] FILE or GOOGLE . If FILE , app categories (genres) are read from [CATALOGUE_FILE] . If [GOOGLE] , app categories (genres) are scrapped from the Play Store [APPLICATION_CATEGORIES][CATALOGUE_FILE] CSV file with a package_name and genre column. By default we provide the catalogue created by Stachl et al in data/external/stachl_application_genre_catalogue.csv [APPLICATION_CATEGORIES][UPDATE_CATALOGUE_FILE] if [CATALOGUE_SOURCE] is equal to FILE , this flag signals whether or not to update [CATALOGUE_FILE] , if [CATALOGUE_SOURCE] is equal to GOOGLE all scraped genres will be saved to [CATALOGUE_FILE] [APPLICATION_CATEGORIES][SCRAPE_MISSING_CATEGORIES] This flag signals whether or not to scrape categories (genres) missing from the [CATALOGUE_FILE] . If [CATALOGUE_SOURCE] is equal to GOOGLE , all genres are scraped anyway (this flag is ignored) Note No feature providers have been implemented for this sensor yet, however you can use its key ( PHONE_APPLICATIONS_NOTIFICATIONS ) to improve PHONE_DATA_YIELD or you can implement your own features .","title":"Phone Applications Notifications"},{"location":"features/phone-battery/","text":"Phone Battery \u00b6 Sensor parameters description for [PHONE_BATTERY] : Key Description [CONTAINER] Data stream container (database table, CSV file, etc.) where the battery data is stored [EPISODE_THRESHOLD_BETWEEN_ROWS] Difference in minutes between any two rows for them to be considered part of the same battery charge or discharge episode RAPIDS provider \u00b6 Available time segments and platforms Available for all time segments Available for Android and iOS File Sequence - data/raw/ { pid } /phone_battery_raw.csv - data/interim/ { pid } /phone_battery_episodes.csv - data/interim/ { pid } /phone_battery_episodes_resampled.csv - data/interim/ { pid } /phone_battery_episodes_resampled_with_datetime.csv - data/interim/ { pid } /phone_battery_features/phone_battery_ { language } _ { provider_key } .csv - data/processed/features/ { pid } /phone_battery.csv Parameters description for [PHONE_BATTERY][PROVIDERS][RAPIDS] : Key Description [COMPUTE] Set to True to extract PHONE_BATTERY features from the RAPIDS provider [FEATURES] Features to be computed, see table below Features description for [PHONE_BATTERY][PROVIDERS][RAPIDS] : Feature Units Description countdischarge episodes Number of discharging episodes. sumdurationdischarge minutes The total duration of all discharging episodes. countcharge episodes Number of battery charging episodes. sumdurationcharge minutes The total duration of all charging episodes. avgconsumptionrate episodes/minutes The average of all episodes\u2019 consumption rates. An episode\u2019s consumption rate is defined as the ratio between its battery delta and duration maxconsumptionrate episodes/minutes The highest of all episodes\u2019 consumption rates. An episode\u2019s consumption rate is defined as the ratio between its battery delta and duration Assumptions/Observations We convert battery data collected with iOS client v1 (autodetected because battery status 4 do not exist) to match Android battery format: we swap status 3 for 5 and 1 for 3 We group battery data into discharge or charge episodes considering any contiguous rows with consecutive reductions or increases of the battery level if they are logged within [EPISODE_THRESHOLD_BETWEEN_ROWS] minutes from each other.","title":"Phone Battery"},{"location":"features/phone-battery/#phone-battery","text":"Sensor parameters description for [PHONE_BATTERY] : Key Description [CONTAINER] Data stream container (database table, CSV file, etc.) where the battery data is stored [EPISODE_THRESHOLD_BETWEEN_ROWS] Difference in minutes between any two rows for them to be considered part of the same battery charge or discharge episode","title":"Phone Battery"},{"location":"features/phone-battery/#rapids-provider","text":"Available time segments and platforms Available for all time segments Available for Android and iOS File Sequence - data/raw/ { pid } /phone_battery_raw.csv - data/interim/ { pid } /phone_battery_episodes.csv - data/interim/ { pid } /phone_battery_episodes_resampled.csv - data/interim/ { pid } /phone_battery_episodes_resampled_with_datetime.csv - data/interim/ { pid } /phone_battery_features/phone_battery_ { language } _ { provider_key } .csv - data/processed/features/ { pid } /phone_battery.csv Parameters description for [PHONE_BATTERY][PROVIDERS][RAPIDS] : Key Description [COMPUTE] Set to True to extract PHONE_BATTERY features from the RAPIDS provider [FEATURES] Features to be computed, see table below Features description for [PHONE_BATTERY][PROVIDERS][RAPIDS] : Feature Units Description countdischarge episodes Number of discharging episodes. sumdurationdischarge minutes The total duration of all discharging episodes. countcharge episodes Number of battery charging episodes. sumdurationcharge minutes The total duration of all charging episodes. avgconsumptionrate episodes/minutes The average of all episodes\u2019 consumption rates. An episode\u2019s consumption rate is defined as the ratio between its battery delta and duration maxconsumptionrate episodes/minutes The highest of all episodes\u2019 consumption rates. An episode\u2019s consumption rate is defined as the ratio between its battery delta and duration Assumptions/Observations We convert battery data collected with iOS client v1 (autodetected because battery status 4 do not exist) to match Android battery format: we swap status 3 for 5 and 1 for 3 We group battery data into discharge or charge episodes considering any contiguous rows with consecutive reductions or increases of the battery level if they are logged within [EPISODE_THRESHOLD_BETWEEN_ROWS] minutes from each other.","title":"RAPIDS provider"},{"location":"features/phone-bluetooth/","text":"Phone Bluetooth \u00b6 Sensor parameters description for [PHONE_BLUETOOTH] : Key Description [CONTAINER] Data stream container (database table, CSV file, etc.) where the bluetooth data is stored RAPIDS provider \u00b6 Warning The features of this provider are deprecated in favor of DORYAB provider (see below). Available time segments and platforms Available for all time segments Available for Android only File Sequence - data/raw/ { pid } /phone_bluetooth_raw.csv - data/raw/ { pid } /phone_bluetooth_with_datetime.csv - data/interim/ { pid } /phone_bluetooth_features/phone_bluetooth_ { language } _ { provider_key } .csv - data/processed/features/ { pid } /phone_bluetooth.csv \" Parameters description for [PHONE_BLUETOOTH][PROVIDERS][RAPIDS] : Key Description [COMPUTE] Set to True to extract PHONE_BLUETOOTH features from the RAPIDS provider [FEATURES] Features to be computed, see table below Features description for [PHONE_BLUETOOTH][PROVIDERS][RAPIDS] : Feature Units Description countscans devices Number of scanned devices during a time segment, a device can be detected multiple times over time and these appearances are counted separately uniquedevices devices Number of unique devices during a time segment as identified by their hardware ( bt_address ) address countscansmostuniquedevice scans Number of scans of the most sensed device within each time segment instance Assumptions/Observations From v0.2.0 countscans , uniquedevices , countscansmostuniquedevice were deprecated because they overlap with the respective features for ALL devices of the PHONE_BLUETOOTH DORYAB provider DORYAB provider \u00b6 This provider is adapted from the work by Doryab et al . Available time segments and platforms Available for all time segments Available for Android only File Sequence - data/raw/ { pid } /phone_bluetooth_raw.csv - data/raw/ { pid } /phone_bluetooth_with_datetime.csv - data/interim/ { pid } /phone_bluetooth_features/phone_bluetooth_ { language } _ { provider_key } .csv - data/processed/features/ { pid } /phone_bluetooth.csv \" Parameters description for [PHONE_BLUETOOTH][PROVIDERS][DORYAB] : Key Description [COMPUTE] Set to True to extract PHONE_BLUETOOTH features from the DORYAB provider [FEATURES] Features to be computed, see table below. These features are computed for three device categories: all devices, own devices and other devices. Features description for [PHONE_BLUETOOTH][PROVIDERS][DORYAB] : Feature Units Description countscans scans Number of scans (rows) from the devices sensed during a time segment instance. The more scans a bluetooth device has the longer it remained within range of the participant\u2019s phone uniquedevices devices Number of unique bluetooth devices sensed during a time segment instance as identified by their hardware addresses ( bt_address ) meanscans scans Mean of the scans of every sensed device within each time segment instance stdscans scans Standard deviation of the scans of every sensed device within each time segment instance countscans most frequentdevice within segments scans Number of scans of the most sensed device within each time segment instance countscans least frequentdevice within segments scans Number of scans of the least sensed device within each time segment instance countscans most frequentdevice across segments scans Number of scans of the most sensed device across time segment instances of the same type countscans least frequentdevice across segments scans Number of scans of the least sensed device across time segment instances of the same type per device countscans most frequentdevice acrossdataset scans Number of scans of the most sensed device across the entire dataset of every participant countscans least frequentdevice acrossdataset scans Number of scans of the least sensed device across the entire dataset of every participant Assumptions/Observations Devices are classified as belonging to the participant ( own ) or to other people ( others ) using k-means based on the number of times and the number of days each device was detected across each participant\u2019s dataset. See Doryab et al for more details. If ownership cannot be computed because all devices were detected on only one day, they are all considered as other . Thus all and other features will be equal. The likelihood of this scenario decreases the more days of data you have. The most and least frequent devices will be the same across time segment instances and across the entire dataset when every time segment instance covers every hour of a dataset. For example, daily segments (00:00 to 23:59) fall in this category but morning segments (06:00am to 11:59am) or periodic 30-minute segments don\u2019t. Example Simplified raw bluetooth data The following is a simplified example with bluetooth data from three days and two time segments: morning and afternoon. There are two own devices: 5C836F5-487E-405F-8E28-21DBD40FA4FF detected seven times across two days and 499A1EAF-DDF1-4657-986C-EA5032104448 detected eight times on a single day. local_date segment bt_address own_device 2016-11-29 morning 55C836F5-487E-405F-8E28-21DBD40FA4FF 1 2016-11-29 morning 55C836F5-487E-405F-8E28-21DBD40FA4FF 1 2016-11-29 morning 55C836F5-487E-405F-8E28-21DBD40FA4FF 1 2016-11-29 morning 55C836F5-487E-405F-8E28-21DBD40FA4FF 1 2016-11-29 morning 48872A52-68DE-420D-98DA-73339A1C4685 0 2016-11-29 afternoon 55C836F5-487E-405F-8E28-21DBD40FA4FF 1 2016-11-29 afternoon 48872A52-68DE-420D-98DA-73339A1C4685 0 2016-11-30 morning 55C836F5-487E-405F-8E28-21DBD40FA4FF 1 2016-11-30 morning 48872A52-68DE-420D-98DA-73339A1C4685 0 2016-11-30 morning 25262DC7-780C-4AD5-AD3A-D9776AEF7FC1 0 2016-11-30 morning 5B1E6981-2E50-4D9A-99D8-67AED430C5A8 0 2016-11-30 morning 5B1E6981-2E50-4D9A-99D8-67AED430C5A8 0 2016-11-30 afternoon 55C836F5-487E-405F-8E28-21DBD40FA4FF 1 2017-05-07 morning 5C5A9C41-2F68-4CEB-96D0-77DE3729B729 0 2017-05-07 morning 25262DC7-780C-4AD5-AD3A-D9776AEF7FC1 0 2017-05-07 morning 5B1E6981-2E50-4D9A-99D8-67AED430C5A8 0 2017-05-07 morning 6C444841-FE64-4375-BC3F-FA410CDC0AC7 0 2017-05-07 morning 4DC7A22D-9F1F-4DEF-8576-086910AABCB5 0 2017-05-07 afternoon 5B1E6981-2E50-4D9A-99D8-67AED430C5A8 0 2017-05-07 afternoon 499A1EAF-DDF1-4657-986C-EA5032104448 1 2017-05-07 afternoon 499A1EAF-DDF1-4657-986C-EA5032104448 1 2017-05-07 afternoon 499A1EAF-DDF1-4657-986C-EA5032104448 1 2017-05-07 afternoon 499A1EAF-DDF1-4657-986C-EA5032104448 1 2017-05-07 afternoon 499A1EAF-DDF1-4657-986C-EA5032104448 1 2017-05-07 afternoon 499A1EAF-DDF1-4657-986C-EA5032104448 1 2017-05-07 afternoon 499A1EAF-DDF1-4657-986C-EA5032104448 1 2017-05-07 afternoon 499A1EAF-DDF1-4657-986C-EA5032104448 1 The most and least frequent OTHER devices ( own_device == 0 ) during morning segments The most and least frequent ALL | OWN | OTHER devices are computed within each time segment instance, across time segment instances of the same type and across the entire dataset of each person. These are the most and least frequent devices for OTHER devices during morning segments. most frequent device across 2016-11-29 morning: '48872A52-68DE-420D-98DA-73339A1C4685' (this device is the only one in this instance) least frequent device across 2016-11-29 morning: '48872A52-68DE-420D-98DA-73339A1C4685' (this device is the only one in this instance) most frequent device across 2016-11-30 morning: '5B1E6981-2E50-4D9A-99D8-67AED430C5A8' least frequent device across 2016-11-30 morning: '25262DC7-780C-4AD5-AD3A-D9776AEF7FC1' (when tied, the first occurance is chosen) most frequent device across 2017-05-07 morning: '25262DC7-780C-4AD5-AD3A-D9776AEF7FC1' (when tied, the first occurance is chosen) least frequent device across 2017-05-07 morning: '25262DC7-780C-4AD5-AD3A-D9776AEF7FC1' (when tied, the first occurance is chosen) most frequent across morning segments: '5B1E6981-2E50-4D9A-99D8-67AED430C5A8' least frequent across morning segments: '6C444841-FE64-4375-BC3F-FA410CDC0AC7' (when tied, the first occurance is chosen) most frequent across dataset: '499A1EAF-DDF1-4657-986C-EA5032104448' (only taking into account \"morning\" segments) least frequent across dataset: '4DC7A22D-9F1F-4DEF-8576-086910AABCB5' (when tied, the first occurance is chosen) Bluetooth features for OTHER devices and morning segments For brevity we only show the following features for morning segments: OTHER : DEVICES : [ \"countscans\" , \"uniquedevices\" , \"meanscans\" , \"stdscans\" ] SCANS_MOST_FREQUENT_DEVICE : [ \"withinsegments\" , \"acrosssegments\" , \"acrossdataset\" ] Note that countscansmostfrequentdeviceacrossdatasetothers is all 0 s because 499A1EAF-DDF1-4657-986C-EA5032104448 is excluded from the count as is labelled as an own device (not other ). local_segment countscansothers uniquedevicesothers meanscansothers stdscansothers countscansmostfrequentdevicewithinsegmentsothers countscansmostfrequentdeviceacrosssegmentsothers countscansmostfrequentdeviceacrossdatasetothers 2016-11-29-morning 1 1 1.000000 NaN 1 0.0 0.0 2016-11-30-morning 4 3 1.333333 0.57735 2 2.0 2.0 2017-05-07-morning 5 5 1.000000 0.00000 1 1.0 1.0","title":"Phone Bluetooth"},{"location":"features/phone-bluetooth/#phone-bluetooth","text":"Sensor parameters description for [PHONE_BLUETOOTH] : Key Description [CONTAINER] Data stream container (database table, CSV file, etc.) where the bluetooth data is stored","title":"Phone Bluetooth"},{"location":"features/phone-bluetooth/#rapids-provider","text":"Warning The features of this provider are deprecated in favor of DORYAB provider (see below). Available time segments and platforms Available for all time segments Available for Android only File Sequence - data/raw/ { pid } /phone_bluetooth_raw.csv - data/raw/ { pid } /phone_bluetooth_with_datetime.csv - data/interim/ { pid } /phone_bluetooth_features/phone_bluetooth_ { language } _ { provider_key } .csv - data/processed/features/ { pid } /phone_bluetooth.csv \" Parameters description for [PHONE_BLUETOOTH][PROVIDERS][RAPIDS] : Key Description [COMPUTE] Set to True to extract PHONE_BLUETOOTH features from the RAPIDS provider [FEATURES] Features to be computed, see table below Features description for [PHONE_BLUETOOTH][PROVIDERS][RAPIDS] : Feature Units Description countscans devices Number of scanned devices during a time segment, a device can be detected multiple times over time and these appearances are counted separately uniquedevices devices Number of unique devices during a time segment as identified by their hardware ( bt_address ) address countscansmostuniquedevice scans Number of scans of the most sensed device within each time segment instance Assumptions/Observations From v0.2.0 countscans , uniquedevices , countscansmostuniquedevice were deprecated because they overlap with the respective features for ALL devices of the PHONE_BLUETOOTH DORYAB provider","title":"RAPIDS provider"},{"location":"features/phone-bluetooth/#doryab-provider","text":"This provider is adapted from the work by Doryab et al . Available time segments and platforms Available for all time segments Available for Android only File Sequence - data/raw/ { pid } /phone_bluetooth_raw.csv - data/raw/ { pid } /phone_bluetooth_with_datetime.csv - data/interim/ { pid } /phone_bluetooth_features/phone_bluetooth_ { language } _ { provider_key } .csv - data/processed/features/ { pid } /phone_bluetooth.csv \" Parameters description for [PHONE_BLUETOOTH][PROVIDERS][DORYAB] : Key Description [COMPUTE] Set to True to extract PHONE_BLUETOOTH features from the DORYAB provider [FEATURES] Features to be computed, see table below. These features are computed for three device categories: all devices, own devices and other devices. Features description for [PHONE_BLUETOOTH][PROVIDERS][DORYAB] : Feature Units Description countscans scans Number of scans (rows) from the devices sensed during a time segment instance. The more scans a bluetooth device has the longer it remained within range of the participant\u2019s phone uniquedevices devices Number of unique bluetooth devices sensed during a time segment instance as identified by their hardware addresses ( bt_address ) meanscans scans Mean of the scans of every sensed device within each time segment instance stdscans scans Standard deviation of the scans of every sensed device within each time segment instance countscans most frequentdevice within segments scans Number of scans of the most sensed device within each time segment instance countscans least frequentdevice within segments scans Number of scans of the least sensed device within each time segment instance countscans most frequentdevice across segments scans Number of scans of the most sensed device across time segment instances of the same type countscans least frequentdevice across segments scans Number of scans of the least sensed device across time segment instances of the same type per device countscans most frequentdevice acrossdataset scans Number of scans of the most sensed device across the entire dataset of every participant countscans least frequentdevice acrossdataset scans Number of scans of the least sensed device across the entire dataset of every participant Assumptions/Observations Devices are classified as belonging to the participant ( own ) or to other people ( others ) using k-means based on the number of times and the number of days each device was detected across each participant\u2019s dataset. See Doryab et al for more details. If ownership cannot be computed because all devices were detected on only one day, they are all considered as other . Thus all and other features will be equal. The likelihood of this scenario decreases the more days of data you have. The most and least frequent devices will be the same across time segment instances and across the entire dataset when every time segment instance covers every hour of a dataset. For example, daily segments (00:00 to 23:59) fall in this category but morning segments (06:00am to 11:59am) or periodic 30-minute segments don\u2019t. Example Simplified raw bluetooth data The following is a simplified example with bluetooth data from three days and two time segments: morning and afternoon. There are two own devices: 5C836F5-487E-405F-8E28-21DBD40FA4FF detected seven times across two days and 499A1EAF-DDF1-4657-986C-EA5032104448 detected eight times on a single day. local_date segment bt_address own_device 2016-11-29 morning 55C836F5-487E-405F-8E28-21DBD40FA4FF 1 2016-11-29 morning 55C836F5-487E-405F-8E28-21DBD40FA4FF 1 2016-11-29 morning 55C836F5-487E-405F-8E28-21DBD40FA4FF 1 2016-11-29 morning 55C836F5-487E-405F-8E28-21DBD40FA4FF 1 2016-11-29 morning 48872A52-68DE-420D-98DA-73339A1C4685 0 2016-11-29 afternoon 55C836F5-487E-405F-8E28-21DBD40FA4FF 1 2016-11-29 afternoon 48872A52-68DE-420D-98DA-73339A1C4685 0 2016-11-30 morning 55C836F5-487E-405F-8E28-21DBD40FA4FF 1 2016-11-30 morning 48872A52-68DE-420D-98DA-73339A1C4685 0 2016-11-30 morning 25262DC7-780C-4AD5-AD3A-D9776AEF7FC1 0 2016-11-30 morning 5B1E6981-2E50-4D9A-99D8-67AED430C5A8 0 2016-11-30 morning 5B1E6981-2E50-4D9A-99D8-67AED430C5A8 0 2016-11-30 afternoon 55C836F5-487E-405F-8E28-21DBD40FA4FF 1 2017-05-07 morning 5C5A9C41-2F68-4CEB-96D0-77DE3729B729 0 2017-05-07 morning 25262DC7-780C-4AD5-AD3A-D9776AEF7FC1 0 2017-05-07 morning 5B1E6981-2E50-4D9A-99D8-67AED430C5A8 0 2017-05-07 morning 6C444841-FE64-4375-BC3F-FA410CDC0AC7 0 2017-05-07 morning 4DC7A22D-9F1F-4DEF-8576-086910AABCB5 0 2017-05-07 afternoon 5B1E6981-2E50-4D9A-99D8-67AED430C5A8 0 2017-05-07 afternoon 499A1EAF-DDF1-4657-986C-EA5032104448 1 2017-05-07 afternoon 499A1EAF-DDF1-4657-986C-EA5032104448 1 2017-05-07 afternoon 499A1EAF-DDF1-4657-986C-EA5032104448 1 2017-05-07 afternoon 499A1EAF-DDF1-4657-986C-EA5032104448 1 2017-05-07 afternoon 499A1EAF-DDF1-4657-986C-EA5032104448 1 2017-05-07 afternoon 499A1EAF-DDF1-4657-986C-EA5032104448 1 2017-05-07 afternoon 499A1EAF-DDF1-4657-986C-EA5032104448 1 2017-05-07 afternoon 499A1EAF-DDF1-4657-986C-EA5032104448 1 The most and least frequent OTHER devices ( own_device == 0 ) during morning segments The most and least frequent ALL | OWN | OTHER devices are computed within each time segment instance, across time segment instances of the same type and across the entire dataset of each person. These are the most and least frequent devices for OTHER devices during morning segments. most frequent device across 2016-11-29 morning: '48872A52-68DE-420D-98DA-73339A1C4685' (this device is the only one in this instance) least frequent device across 2016-11-29 morning: '48872A52-68DE-420D-98DA-73339A1C4685' (this device is the only one in this instance) most frequent device across 2016-11-30 morning: '5B1E6981-2E50-4D9A-99D8-67AED430C5A8' least frequent device across 2016-11-30 morning: '25262DC7-780C-4AD5-AD3A-D9776AEF7FC1' (when tied, the first occurance is chosen) most frequent device across 2017-05-07 morning: '25262DC7-780C-4AD5-AD3A-D9776AEF7FC1' (when tied, the first occurance is chosen) least frequent device across 2017-05-07 morning: '25262DC7-780C-4AD5-AD3A-D9776AEF7FC1' (when tied, the first occurance is chosen) most frequent across morning segments: '5B1E6981-2E50-4D9A-99D8-67AED430C5A8' least frequent across morning segments: '6C444841-FE64-4375-BC3F-FA410CDC0AC7' (when tied, the first occurance is chosen) most frequent across dataset: '499A1EAF-DDF1-4657-986C-EA5032104448' (only taking into account \"morning\" segments) least frequent across dataset: '4DC7A22D-9F1F-4DEF-8576-086910AABCB5' (when tied, the first occurance is chosen) Bluetooth features for OTHER devices and morning segments For brevity we only show the following features for morning segments: OTHER : DEVICES : [ \"countscans\" , \"uniquedevices\" , \"meanscans\" , \"stdscans\" ] SCANS_MOST_FREQUENT_DEVICE : [ \"withinsegments\" , \"acrosssegments\" , \"acrossdataset\" ] Note that countscansmostfrequentdeviceacrossdatasetothers is all 0 s because 499A1EAF-DDF1-4657-986C-EA5032104448 is excluded from the count as is labelled as an own device (not other ). local_segment countscansothers uniquedevicesothers meanscansothers stdscansothers countscansmostfrequentdevicewithinsegmentsothers countscansmostfrequentdeviceacrosssegmentsothers countscansmostfrequentdeviceacrossdatasetothers 2016-11-29-morning 1 1 1.000000 NaN 1 0.0 0.0 2016-11-30-morning 4 3 1.333333 0.57735 2 2.0 2.0 2017-05-07-morning 5 5 1.000000 0.00000 1 1.0 1.0","title":"DORYAB provider"},{"location":"features/phone-calls/","text":"Phone Calls \u00b6 Sensor parameters description for [PHONE_CALLS] : Key Description [CONTAINER] Data stream container (database table, CSV file, etc.) where the calls data is stored RAPIDS Provider \u00b6 Available time segments and platforms Available for all time segments Available for Android and iOS File Sequence - data/raw/ { pid } /phone_calls_raw.csv - data/raw/ { pid } /phone_calls_with_datetime.csv - data/interim/ { pid } /phone_calls_features/phone_calls_ { language } _ { provider_key } .csv - data/processed/features/ { pid } /phone_calls.csv Parameters description for [PHONE_CALLS][PROVIDERS][RAPIDS] : Key Description [COMPUTE] Set to True to extract PHONE_CALLS features from the RAPIDS provider [CALL_TYPES] The particular call_type that will be analyzed. The options for this parameter are incoming, outgoing or missed. [FEATURES] Features to be computed for outgoing , incoming , and missed calls. Note that the same features are available for both incoming and outgoing calls, while missed calls has its own set of features. See the tables below. Features description for [PHONE_CALLS][PROVIDERS][RAPIDS] incoming and outgoing calls: Feature Units Description count calls Number of calls of a particular call_type occurred during a particular time_segment . distinctcontacts contacts Number of distinct contacts that are associated with a particular call_type for a particular time_segment meanduration seconds The mean duration of all calls of a particular call_type during a particular time_segment . sumduration seconds The sum of the duration of all calls of a particular call_type during a particular time_segment . minduration seconds The duration of the shortest call of a particular call_type during a particular time_segment . maxduration seconds The duration of the longest call of a particular call_type during a particular time_segment . stdduration seconds The standard deviation of the duration of all the calls of a particular call_type during a particular time_segment . modeduration seconds The mode of the duration of all the calls of a particular call_type during a particular time_segment . entropyduration nats The estimate of the Shannon entropy for the the duration of all the calls of a particular call_type during a particular time_segment . timefirstcall minutes The time in minutes between 12:00am (midnight) and the first call of call_type . timelastcall minutes The time in minutes between 12:00am (midnight) and the last call of call_type . countmostfrequentcontact calls The number of calls of a particular call_type during a particular time_segment of the most frequent contact throughout the monitored period. Features description for [PHONE_CALLS][PROVIDERS][RAPIDS] missed calls: Feature Units Description count calls Number of missed calls that occurred during a particular time_segment . distinctcontacts contacts Number of distinct contacts that are associated with missed calls for a particular time_segment timefirstcall minutes The time in hours from 12:00am (Midnight) that the first missed call occurred. timelastcall minutes The time in hours from 12:00am (Midnight) that the last missed call occurred. countmostfrequentcontact calls The number of missed calls during a particular time_segment of the most frequent contact throughout the monitored period. Assumptions/Observations Traces for iOS calls are unique even for the same contact calling a participant more than once which renders countmostfrequentcontact meaningless and distinctcontacts equal to the total number of traces. [CALL_TYPES] and [FEATURES] keys in config.yaml need to match. For example, [CALL_TYPES] outgoing matches the [FEATURES] key outgoing iOS calls data is transformed to match Android calls data format. See our algorithm","title":"Phone Calls"},{"location":"features/phone-calls/#phone-calls","text":"Sensor parameters description for [PHONE_CALLS] : Key Description [CONTAINER] Data stream container (database table, CSV file, etc.) where the calls data is stored","title":"Phone Calls"},{"location":"features/phone-calls/#rapids-provider","text":"Available time segments and platforms Available for all time segments Available for Android and iOS File Sequence - data/raw/ { pid } /phone_calls_raw.csv - data/raw/ { pid } /phone_calls_with_datetime.csv - data/interim/ { pid } /phone_calls_features/phone_calls_ { language } _ { provider_key } .csv - data/processed/features/ { pid } /phone_calls.csv Parameters description for [PHONE_CALLS][PROVIDERS][RAPIDS] : Key Description [COMPUTE] Set to True to extract PHONE_CALLS features from the RAPIDS provider [CALL_TYPES] The particular call_type that will be analyzed. The options for this parameter are incoming, outgoing or missed. [FEATURES] Features to be computed for outgoing , incoming , and missed calls. Note that the same features are available for both incoming and outgoing calls, while missed calls has its own set of features. See the tables below. Features description for [PHONE_CALLS][PROVIDERS][RAPIDS] incoming and outgoing calls: Feature Units Description count calls Number of calls of a particular call_type occurred during a particular time_segment . distinctcontacts contacts Number of distinct contacts that are associated with a particular call_type for a particular time_segment meanduration seconds The mean duration of all calls of a particular call_type during a particular time_segment . sumduration seconds The sum of the duration of all calls of a particular call_type during a particular time_segment . minduration seconds The duration of the shortest call of a particular call_type during a particular time_segment . maxduration seconds The duration of the longest call of a particular call_type during a particular time_segment . stdduration seconds The standard deviation of the duration of all the calls of a particular call_type during a particular time_segment . modeduration seconds The mode of the duration of all the calls of a particular call_type during a particular time_segment . entropyduration nats The estimate of the Shannon entropy for the the duration of all the calls of a particular call_type during a particular time_segment . timefirstcall minutes The time in minutes between 12:00am (midnight) and the first call of call_type . timelastcall minutes The time in minutes between 12:00am (midnight) and the last call of call_type . countmostfrequentcontact calls The number of calls of a particular call_type during a particular time_segment of the most frequent contact throughout the monitored period. Features description for [PHONE_CALLS][PROVIDERS][RAPIDS] missed calls: Feature Units Description count calls Number of missed calls that occurred during a particular time_segment . distinctcontacts contacts Number of distinct contacts that are associated with missed calls for a particular time_segment timefirstcall minutes The time in hours from 12:00am (Midnight) that the first missed call occurred. timelastcall minutes The time in hours from 12:00am (Midnight) that the last missed call occurred. countmostfrequentcontact calls The number of missed calls during a particular time_segment of the most frequent contact throughout the monitored period. Assumptions/Observations Traces for iOS calls are unique even for the same contact calling a participant more than once which renders countmostfrequentcontact meaningless and distinctcontacts equal to the total number of traces. [CALL_TYPES] and [FEATURES] keys in config.yaml need to match. For example, [CALL_TYPES] outgoing matches the [FEATURES] key outgoing iOS calls data is transformed to match Android calls data format. See our algorithm","title":"RAPIDS Provider"},{"location":"features/phone-conversation/","text":"Phone Conversation \u00b6 Sensor parameters description for [PHONE_CONVERSATION] : Key Description [CONTAINER][ANDROID] Data stream container (database table, CSV file, etc.) where the conversation data from Android devices is stored (the AWARE client saves this data on different tables for Android and iOS) [CONTAINER][IOS] Data stream container (database table, CSV file, etc.) where the conversation data from iOS devices is stored (the AWARE client saves this data on different tables for Android and iOS) RAPIDS provider \u00b6 Available time segments and platforms Available for all time segments Available for Android only File Sequence - data/raw/ { pid } /phone_conversation_raw.csv - data/raw/ { pid } /phone_conversation_with_datetime.csv - data/interim/ { pid } /phone_conversation_features/phone_conversation_ { language } _ { provider_key } .csv - data/processed/features/ { pid } /phone_conversation.csv Parameters description for [PHONE_CONVERSATION][PROVIDERS][RAPIDS] : Key Description [COMPUTE] Set to True to extract PHONE_CONVERSATION features from the RAPIDS provider [FEATURES] Features to be computed, see table below [RECORDING_MINUTES] Minutes the plugin was recording audio (default 1 min) [PAUSED_MINUTES] Minutes the plugin was NOT recording audio (default 3 min) Features description for [PHONE_CONVERSATION][PROVIDERS][RAPIDS] : Feature Units Description minutessilence minutes Minutes labeled as silence minutesnoise minutes Minutes labeled as noise minutesvoice minutes Minutes labeled as voice minutesunknown minutes Minutes labeled as unknown sumconversationduration minutes Total duration of all conversations maxconversationduration minutes Longest duration of all conversations minconversationduration minutes Shortest duration of all conversations avgconversationduration minutes Average duration of all conversations sdconversationduration minutes Standard Deviation of the duration of all conversations timefirstconversation minutes Minutes since midnight when the first conversation for a time segment was detected timelastconversation minutes Minutes since midnight when the last conversation for a time segment was detected noisesumenergy L2-norm Sum of all energy values when inference is noise noiseavgenergy L2-norm Average of all energy values when inference is noise noisesdenergy L2-norm Standard Deviation of all energy values when inference is noise noiseminenergy L2-norm Minimum of all energy values when inference is noise noisemaxenergy L2-norm Maximum of all energy values when inference is noise voicesumenergy L2-norm Sum of all energy values when inference is voice voiceavgenergy L2-norm Average of all energy values when inference is voice voicesdenergy L2-norm Standard Deviation of all energy values when inference is voice voiceminenergy L2-norm Minimum of all energy values when inference is voice voicemaxenergy L2-norm Maximum of all energy values when inference is voice silencesensedfraction - Ratio between minutessilence and the sum of (minutessilence, minutesnoise, minutesvoice, minutesunknown) noisesensedfraction - Ratio between minutesnoise and the sum of (minutessilence, minutesnoise, minutesvoice, minutesunknown) voicesensedfraction - Ratio between minutesvoice and the sum of (minutessilence, minutesnoise, minutesvoice, minutesunknown) unknownsensedfraction - Ratio between minutesunknown and the sum of (minutessilence, minutesnoise, minutesvoice, minutesunknown) silenceexpectedfraction - Ration between minutessilence and the number of minutes that in theory should have been sensed based on the record and pause cycle of the plugin (1440 / recordingMinutes+pausedMinutes) noiseexpectedfraction - Ration between minutesnoise and the number of minutes that in theory should have been sensed based on the record and pause cycle of the plugin (1440 / recordingMinutes+pausedMinutes) voiceexpectedfraction - Ration between minutesvoice and the number of minutes that in theory should have been sensed based on the record and pause cycle of the plugin (1440 / recordingMinutes+pausedMinutes) unknownexpectedfraction - Ration between minutesunknown and the number of minutes that in theory should have been sensed based on the record and pause cycle of the plugin (1440 / recordingMinutes+pausedMinutes) Assumptions/Observations The timestamp of conversation rows in iOS is in seconds so we convert it to milliseconds to match Android\u2019s format","title":"Phone Conversation"},{"location":"features/phone-conversation/#phone-conversation","text":"Sensor parameters description for [PHONE_CONVERSATION] : Key Description [CONTAINER][ANDROID] Data stream container (database table, CSV file, etc.) where the conversation data from Android devices is stored (the AWARE client saves this data on different tables for Android and iOS) [CONTAINER][IOS] Data stream container (database table, CSV file, etc.) where the conversation data from iOS devices is stored (the AWARE client saves this data on different tables for Android and iOS)","title":"Phone Conversation"},{"location":"features/phone-conversation/#rapids-provider","text":"Available time segments and platforms Available for all time segments Available for Android only File Sequence - data/raw/ { pid } /phone_conversation_raw.csv - data/raw/ { pid } /phone_conversation_with_datetime.csv - data/interim/ { pid } /phone_conversation_features/phone_conversation_ { language } _ { provider_key } .csv - data/processed/features/ { pid } /phone_conversation.csv Parameters description for [PHONE_CONVERSATION][PROVIDERS][RAPIDS] : Key Description [COMPUTE] Set to True to extract PHONE_CONVERSATION features from the RAPIDS provider [FEATURES] Features to be computed, see table below [RECORDING_MINUTES] Minutes the plugin was recording audio (default 1 min) [PAUSED_MINUTES] Minutes the plugin was NOT recording audio (default 3 min) Features description for [PHONE_CONVERSATION][PROVIDERS][RAPIDS] : Feature Units Description minutessilence minutes Minutes labeled as silence minutesnoise minutes Minutes labeled as noise minutesvoice minutes Minutes labeled as voice minutesunknown minutes Minutes labeled as unknown sumconversationduration minutes Total duration of all conversations maxconversationduration minutes Longest duration of all conversations minconversationduration minutes Shortest duration of all conversations avgconversationduration minutes Average duration of all conversations sdconversationduration minutes Standard Deviation of the duration of all conversations timefirstconversation minutes Minutes since midnight when the first conversation for a time segment was detected timelastconversation minutes Minutes since midnight when the last conversation for a time segment was detected noisesumenergy L2-norm Sum of all energy values when inference is noise noiseavgenergy L2-norm Average of all energy values when inference is noise noisesdenergy L2-norm Standard Deviation of all energy values when inference is noise noiseminenergy L2-norm Minimum of all energy values when inference is noise noisemaxenergy L2-norm Maximum of all energy values when inference is noise voicesumenergy L2-norm Sum of all energy values when inference is voice voiceavgenergy L2-norm Average of all energy values when inference is voice voicesdenergy L2-norm Standard Deviation of all energy values when inference is voice voiceminenergy L2-norm Minimum of all energy values when inference is voice voicemaxenergy L2-norm Maximum of all energy values when inference is voice silencesensedfraction - Ratio between minutessilence and the sum of (minutessilence, minutesnoise, minutesvoice, minutesunknown) noisesensedfraction - Ratio between minutesnoise and the sum of (minutessilence, minutesnoise, minutesvoice, minutesunknown) voicesensedfraction - Ratio between minutesvoice and the sum of (minutessilence, minutesnoise, minutesvoice, minutesunknown) unknownsensedfraction - Ratio between minutesunknown and the sum of (minutessilence, minutesnoise, minutesvoice, minutesunknown) silenceexpectedfraction - Ration between minutessilence and the number of minutes that in theory should have been sensed based on the record and pause cycle of the plugin (1440 / recordingMinutes+pausedMinutes) noiseexpectedfraction - Ration between minutesnoise and the number of minutes that in theory should have been sensed based on the record and pause cycle of the plugin (1440 / recordingMinutes+pausedMinutes) voiceexpectedfraction - Ration between minutesvoice and the number of minutes that in theory should have been sensed based on the record and pause cycle of the plugin (1440 / recordingMinutes+pausedMinutes) unknownexpectedfraction - Ration between minutesunknown and the number of minutes that in theory should have been sensed based on the record and pause cycle of the plugin (1440 / recordingMinutes+pausedMinutes) Assumptions/Observations The timestamp of conversation rows in iOS is in seconds so we convert it to milliseconds to match Android\u2019s format","title":"RAPIDS provider"},{"location":"features/phone-data-yield/","text":"Phone Data Yield \u00b6 This is a combinatorial sensor which means that we use the data from multiple sensors to extract data yield features. Data yield features can be used to remove rows ( time segments ) that do not contain enough data. You should decide what is your \u201cenough\u201d threshold depending on the type of sensors you collected (frequency vs event based, e.g. acceleroemter vs calls), the length of your study, and the rates of missing data that your analysis could handle. Why is data yield important? Imagine that you want to extract PHONE_CALL features on daily segments ( 00:00 to 23:59 ). Let\u2019s say that on day 1 the phone logged 10 calls and 23 hours of data from other sensors and on day 2 the phone logged 10 calls and only 2 hours of data from other sensors. It\u2019s more likely that other calls were placed on the 22 hours of data that you didn\u2019t log on day 2 than on the 1 hour of data you didn\u2019t log on day 1, and so including day 2 in your analysis could bias your results. Sensor parameters description for [PHONE_DATA_YIELD] : Key Description [SENSORS] One or more phone sensor config keys (e.g. PHONE_MESSAGE ). The more keys you include the more accurately RAPIDS can approximate the time an smartphone was sensing data. The supported phone sensors you can include in this list are outlined below ( do NOT include Fitbit sensors, ONLY include phone sensors ). Supported phone sensors for [PHONE_DATA_YIELD][SENSORS] PHONE_ACCELEROMETER PHONE_ACTIVITY_RECOGNITION PHONE_APPLICATIONS_CRASHES PHONE_APPLICATIONS_FOREGROUND PHONE_APPLICATIONS_NOTIFICATIONS PHONE_BATTERY PHONE_BLUETOOTH PHONE_CALLS PHONE_CONVERSATION PHONE_KEYBOARD PHONE_LIGHT PHONE_LOCATIONS PHONE_LOG PHONE_MESSAGES PHONE_SCREEN PHONE_WIFI_CONNECTED PHONE_WIFI_VISIBLE RAPIDS provider \u00b6 Before explaining the data yield features, let\u2019s define the following relevant concepts: A valid minute is any 60 second window when any phone sensor logged at least 1 row of data A valid hour is any 60 minute window with at least X valid minutes. The X or threshold is given by [MINUTE_RATIO_THRESHOLD_FOR_VALID_YIELDED_HOURS] The timestamps of all sensors are concatenated and then grouped per time segment. Minute and hour windows are created from the beginning of each time segment instance and these windows are marked as valid based on the definitions above. The duration of each time segment is taken into account to compute the features described below. Available time segments and platforms Available for all time segments Available for Android and iOS File Sequence - data/raw/ { pid } / { sensor } _raw.csv # one for every [PHONE_DATA_YIELD][SENSORS] - data/interim/ { pid } /phone_yielded_timestamps.csv - data/interim/ { pid } /phone_yielded_timestamps_with_datetime.csv - data/interim/ { pid } /phone_data_yield_features/phone_data_yield_ { language } _ { provider_key } .csv - data/processed/features/ { pid } /phone_data_yield.csv Parameters description for [PHONE_DATA_YIELD][PROVIDERS][RAPIDS] : Key Description [COMPUTE] Set to True to extract PHONE_DATA_YIELD features from the RAPIDS provider [FEATURES] Features to be computed, see table below [MINUTE_RATIO_THRESHOLD_FOR_VALID_YIELDED_HOURS] The proportion [0.0 ,1.0] of valid minutes in a 60-minute window necessary to flag that window as valid. Features description for [PHONE_DATA_YIELD][PROVIDERS][RAPIDS] : Feature Units Description ratiovalidyieldedminutes - The ratio between the number of valid minutes and the duration in minutes of a time segment. ratiovalidyieldedhours - The ratio between the number of valid hours and the duration in hours of a time segment. If the time segment is shorter than 1 hour this feature will always be 1. Assumptions/Observations We recommend using ratiovalidyieldedminutes on time segments that are shorter than two or three hours and ratiovalidyieldedhours for longer segments. This is because relying on yielded minutes only can be misleading when a big chunk of those missing minutes are clustered together. For example, let\u2019s assume we are working with a 24-hour time segment that is missing 12 hours of data. Two extreme cases can occur: the 12 missing hours are from the beginning of the segment or 30 minutes could be missing from every hour (24 * 30 minutes = 12 hours). ratiovalidyieldedminutes would be 0.5 for both a and b (hinting the missing circumstances are similar). However, ratiovalidyieldedhours would be 0.5 for a and 1.0 for b if [MINUTE_RATIO_THRESHOLD_FOR_VALID_YIELDED_HOURS] is between [0.0 and 0.49] (hinting that the missing circumstances might be more favorable for b . In other words, sensed data for b is more evenly spread compared to a .","title":"Phone Data Yield"},{"location":"features/phone-data-yield/#phone-data-yield","text":"This is a combinatorial sensor which means that we use the data from multiple sensors to extract data yield features. Data yield features can be used to remove rows ( time segments ) that do not contain enough data. You should decide what is your \u201cenough\u201d threshold depending on the type of sensors you collected (frequency vs event based, e.g. acceleroemter vs calls), the length of your study, and the rates of missing data that your analysis could handle. Why is data yield important? Imagine that you want to extract PHONE_CALL features on daily segments ( 00:00 to 23:59 ). Let\u2019s say that on day 1 the phone logged 10 calls and 23 hours of data from other sensors and on day 2 the phone logged 10 calls and only 2 hours of data from other sensors. It\u2019s more likely that other calls were placed on the 22 hours of data that you didn\u2019t log on day 2 than on the 1 hour of data you didn\u2019t log on day 1, and so including day 2 in your analysis could bias your results. Sensor parameters description for [PHONE_DATA_YIELD] : Key Description [SENSORS] One or more phone sensor config keys (e.g. PHONE_MESSAGE ). The more keys you include the more accurately RAPIDS can approximate the time an smartphone was sensing data. The supported phone sensors you can include in this list are outlined below ( do NOT include Fitbit sensors, ONLY include phone sensors ). Supported phone sensors for [PHONE_DATA_YIELD][SENSORS] PHONE_ACCELEROMETER PHONE_ACTIVITY_RECOGNITION PHONE_APPLICATIONS_CRASHES PHONE_APPLICATIONS_FOREGROUND PHONE_APPLICATIONS_NOTIFICATIONS PHONE_BATTERY PHONE_BLUETOOTH PHONE_CALLS PHONE_CONVERSATION PHONE_KEYBOARD PHONE_LIGHT PHONE_LOCATIONS PHONE_LOG PHONE_MESSAGES PHONE_SCREEN PHONE_WIFI_CONNECTED PHONE_WIFI_VISIBLE","title":"Phone Data Yield"},{"location":"features/phone-data-yield/#rapids-provider","text":"Before explaining the data yield features, let\u2019s define the following relevant concepts: A valid minute is any 60 second window when any phone sensor logged at least 1 row of data A valid hour is any 60 minute window with at least X valid minutes. The X or threshold is given by [MINUTE_RATIO_THRESHOLD_FOR_VALID_YIELDED_HOURS] The timestamps of all sensors are concatenated and then grouped per time segment. Minute and hour windows are created from the beginning of each time segment instance and these windows are marked as valid based on the definitions above. The duration of each time segment is taken into account to compute the features described below. Available time segments and platforms Available for all time segments Available for Android and iOS File Sequence - data/raw/ { pid } / { sensor } _raw.csv # one for every [PHONE_DATA_YIELD][SENSORS] - data/interim/ { pid } /phone_yielded_timestamps.csv - data/interim/ { pid } /phone_yielded_timestamps_with_datetime.csv - data/interim/ { pid } /phone_data_yield_features/phone_data_yield_ { language } _ { provider_key } .csv - data/processed/features/ { pid } /phone_data_yield.csv Parameters description for [PHONE_DATA_YIELD][PROVIDERS][RAPIDS] : Key Description [COMPUTE] Set to True to extract PHONE_DATA_YIELD features from the RAPIDS provider [FEATURES] Features to be computed, see table below [MINUTE_RATIO_THRESHOLD_FOR_VALID_YIELDED_HOURS] The proportion [0.0 ,1.0] of valid minutes in a 60-minute window necessary to flag that window as valid. Features description for [PHONE_DATA_YIELD][PROVIDERS][RAPIDS] : Feature Units Description ratiovalidyieldedminutes - The ratio between the number of valid minutes and the duration in minutes of a time segment. ratiovalidyieldedhours - The ratio between the number of valid hours and the duration in hours of a time segment. If the time segment is shorter than 1 hour this feature will always be 1. Assumptions/Observations We recommend using ratiovalidyieldedminutes on time segments that are shorter than two or three hours and ratiovalidyieldedhours for longer segments. This is because relying on yielded minutes only can be misleading when a big chunk of those missing minutes are clustered together. For example, let\u2019s assume we are working with a 24-hour time segment that is missing 12 hours of data. Two extreme cases can occur: the 12 missing hours are from the beginning of the segment or 30 minutes could be missing from every hour (24 * 30 minutes = 12 hours). ratiovalidyieldedminutes would be 0.5 for both a and b (hinting the missing circumstances are similar). However, ratiovalidyieldedhours would be 0.5 for a and 1.0 for b if [MINUTE_RATIO_THRESHOLD_FOR_VALID_YIELDED_HOURS] is between [0.0 and 0.49] (hinting that the missing circumstances might be more favorable for b . In other words, sensed data for b is more evenly spread compared to a .","title":"RAPIDS provider"},{"location":"features/phone-keyboard/","text":"Phone Keyboard \u00b6 Sensor parameters description for [PHONE_KEYBOARD] : Key Description [CONTAINER] Data stream container (database table, CSV file, etc.) where the keyboard data is stored File Sequence - data/raw/ { pid } /phone_keyboard_raw.csv - data/raw/ { pid } /phone_keyboard_with_datetime.csv - data/interim/ { pid } /phone_keyboard_features/phone_keyboard_ { language } _ { provider_key } .csv - data/processed/features/ { pid } /phone_keyboard.csv Features description for [PHONE_KEYBOARD] : Feature Units Description sessioncount - Number of typing sessions in a time segment. A session begins with any keypress and finishes until 5 seconds have elapsed since the last key was pressed or the application that the user was typing on changes. averagesessionlength milliseconds Average length of all sessions in a time segment instance averageinterkeydelay milliseconds The average time between keystrokes measured in milliseconds. changeintextlengthlessthanminusone Number of times a keyboard typing or swiping event changed the length of the current text to less than one fewer character. changeintextlengthequaltominusone Number of times a keyboard typing or swiping event changed the length of the current text in exactly one fewer character. changeintextlengthequaltoone Number of times a keyboard typing or swiping event changed the length of the current text in exactly one more character. changeintextlengthmorethanone Number of times a keyboard typing or swiping event changed the length of the current text to more than one character. maxtextlength Length in characters of the longest sentence(s) contained in the typing text box of any app during the time segment. lastmessagelength Length of the last text in characters of the sentence(s) contained in the typing text box of any app during the time segment. totalkeyboardtouches Average number of typing events across all sessions in a time segment instance. Note We did not find a reliable way to distinguish between AutoCorrect or AutoComplete changes, since both can be applied with a single touch or swipe event and can decrease or increase the length of the text by an arbitrary number of characters.","title":"Phone Keyboard"},{"location":"features/phone-keyboard/#phone-keyboard","text":"Sensor parameters description for [PHONE_KEYBOARD] : Key Description [CONTAINER] Data stream container (database table, CSV file, etc.) where the keyboard data is stored File Sequence - data/raw/ { pid } /phone_keyboard_raw.csv - data/raw/ { pid } /phone_keyboard_with_datetime.csv - data/interim/ { pid } /phone_keyboard_features/phone_keyboard_ { language } _ { provider_key } .csv - data/processed/features/ { pid } /phone_keyboard.csv Features description for [PHONE_KEYBOARD] : Feature Units Description sessioncount - Number of typing sessions in a time segment. A session begins with any keypress and finishes until 5 seconds have elapsed since the last key was pressed or the application that the user was typing on changes. averagesessionlength milliseconds Average length of all sessions in a time segment instance averageinterkeydelay milliseconds The average time between keystrokes measured in milliseconds. changeintextlengthlessthanminusone Number of times a keyboard typing or swiping event changed the length of the current text to less than one fewer character. changeintextlengthequaltominusone Number of times a keyboard typing or swiping event changed the length of the current text in exactly one fewer character. changeintextlengthequaltoone Number of times a keyboard typing or swiping event changed the length of the current text in exactly one more character. changeintextlengthmorethanone Number of times a keyboard typing or swiping event changed the length of the current text to more than one character. maxtextlength Length in characters of the longest sentence(s) contained in the typing text box of any app during the time segment. lastmessagelength Length of the last text in characters of the sentence(s) contained in the typing text box of any app during the time segment. totalkeyboardtouches Average number of typing events across all sessions in a time segment instance. Note We did not find a reliable way to distinguish between AutoCorrect or AutoComplete changes, since both can be applied with a single touch or swipe event and can decrease or increase the length of the text by an arbitrary number of characters.","title":"Phone Keyboard"},{"location":"features/phone-light/","text":"Phone Light \u00b6 Sensor parameters description for [PHONE_LIGHT] : Key Description [CONTAINER] Data stream container (database table, CSV file, etc.) where the light data is stored RAPIDS provider \u00b6 Available time segments and platforms Available for all time segments Available for Android only File Sequence - data/raw/ { pid } /phone_light_raw.csv - data/raw/ { pid } /phone_light_with_datetime.csv - data/interim/ { pid } /phone_light_features/phone_light_ { language } _ { provider_key } .csv - data/processed/features/ { pid } /phone_light.csv Parameters description for [PHONE_LIGHT][PROVIDERS][RAPIDS] : Key Description [COMPUTE] Set to True to extract PHONE_LIGHT features from the RAPIDS provider [FEATURES] Features to be computed, see table below Features description for [PHONE_LIGHT][PROVIDERS][RAPIDS] : Feature Units Description count rows Number light sensor rows recorded. maxlux lux The maximum ambient luminance. minlux lux The minimum ambient luminance. avglux lux The average ambient luminance. medianlux lux The median ambient luminance. stdlux lux The standard deviation of ambient luminance. Assumptions/Observations NA","title":"Phone Light"},{"location":"features/phone-light/#phone-light","text":"Sensor parameters description for [PHONE_LIGHT] : Key Description [CONTAINER] Data stream container (database table, CSV file, etc.) where the light data is stored","title":"Phone Light"},{"location":"features/phone-light/#rapids-provider","text":"Available time segments and platforms Available for all time segments Available for Android only File Sequence - data/raw/ { pid } /phone_light_raw.csv - data/raw/ { pid } /phone_light_with_datetime.csv - data/interim/ { pid } /phone_light_features/phone_light_ { language } _ { provider_key } .csv - data/processed/features/ { pid } /phone_light.csv Parameters description for [PHONE_LIGHT][PROVIDERS][RAPIDS] : Key Description [COMPUTE] Set to True to extract PHONE_LIGHT features from the RAPIDS provider [FEATURES] Features to be computed, see table below Features description for [PHONE_LIGHT][PROVIDERS][RAPIDS] : Feature Units Description count rows Number light sensor rows recorded. maxlux lux The maximum ambient luminance. minlux lux The minimum ambient luminance. avglux lux The average ambient luminance. medianlux lux The median ambient luminance. stdlux lux The standard deviation of ambient luminance. Assumptions/Observations NA","title":"RAPIDS provider"},{"location":"features/phone-locations/","text":"Phone Locations \u00b6 Sensor parameters description for [PHONE_LOCATIONS] : Key Description [CONTAINER] Data stream container (database table, CSV file, etc.) where the location data is stored [LOCATIONS_TO_USE] Type of location data to use, one of ALL , GPS , ALL_RESAMPLED or FUSED_RESAMPLED . This filter is based on the provider column of the locations table, ALL includes every row, GPS only includes rows where the provider is gps, ALL_RESAMPLED includes all rows after being resampled, and FUSED_RESAMPLED only includes rows where the provider is fused after being resampled. [FUSED_RESAMPLED_CONSECUTIVE_THRESHOLD] if ALL_RESAMPLED or FUSED_RESAMPLED is used, the original fused data has to be resampled, a location row is resampled to the next valid timestamp (see the Assumptions/Observations below) only if the time difference between them is less or equal than this threshold (in minutes). [FUSED_RESAMPLED_TIME_SINCE_VALID_LOCATION] if ALL_RESAMPLED or FUSED_RESAMPLED is used, the original fused data has to be resampled, a location row is resampled at most for this long (in minutes) Assumptions/Observations Types of location data to use Android and iOS clients can collect location coordinates through the phone\u2019s GPS, the network cellular towers around the phone, or Google\u2019s fused location API. If you want to use only the GPS provider, set [LOCATIONS_TO_USE] to GPS If you want to use all providers, set [LOCATIONS_TO_USE] to ALL If you collected location data from different providers, including the fused API, use ALL_RESAMPLED If your mobile client was configured to use fused location only or want to focus only on this provider, set [LOCATIONS_TO_USE] to RESAMPLE_FUSED . ALL_RESAMPLED and RESAMPLE_FUSED take the original location coordinates and replicate each pair forward in time as long as the phone was sensing data as indicated by the joined timestamps of [PHONE_DATA_YIELD][SENSORS] . This is done because Google\u2019s API only logs a new location coordinate pair when it is sufficiently different in time or space from the previous one and because GPS and network providers can log data at variable rates. There are two parameters associated with resampling fused location. FUSED_RESAMPLED_CONSECUTIVE_THRESHOLD (in minutes, default 30) controls the maximum gap between any two coordinate pairs to replicate the last known pair. For example, participant A\u2019s phone did not collect data between 10.30 am and 10:50 am and between 11:05am and 11:40am, the last known coordinate pair is replicated during the first period but not the second. In other words, we assume that we cannot longer guarantee the participant stayed at the last known location if the phone did not sense data for more than 30 minutes. FUSED_RESAMPLED_TIME_SINCE_VALID_LOCATION (in minutes, default 720 or 12 hours) stops the last known fused location from being replicated longer than this threshold even if the phone was sensing data continuously. For example, participant A went home at 9 pm, and their phone was sensing data without gaps until 11 am the next morning, the last known location is replicated until 9 am. If you have suggestions to modify or improve this resampling, let us know. BARNETT provider \u00b6 These features are based on the original open-source implementation by Barnett et al and some features created by Canzian et al . Available time segments and platforms Available only for segments that start at 00:00:00 and end at 23:59:59 of the same or a different day (daily, weekly, weekend, etc.) Available for Android and iOS File Sequence - data/raw/ { pid } /phone_locations_raw.csv - data/interim/ { pid } /phone_locations_processed.csv - data/interim/ { pid } /phone_locations_processed_with_datetime.csv - data/interim/ { pid } /phone_locations_features/phone_locations_ { language } _ { provider_key } .csv - data/processed/features/ { pid } /phone_locations.csv Parameters description for [PHONE_LOCATIONS][PROVIDERS][BARNETT] : Key Description [COMPUTE] Set to True to extract PHONE_LOCATIONS features from the BARNETT provider [FEATURES] Features to be computed, see table below [ACCURACY_LIMIT] An integer in meters, any location rows with an accuracy higher than this is dropped. This number means there\u2019s a 68% probability the actual location is within this radius [IF_MULTIPLE_TIMEZONES] Currently, USE_MOST_COMMON is the only value supported. If the location data for a participant belongs to multiple time zones, we select the most common because Barnett\u2019s algorithm can only handle one time zone [MINUTES_DATA_USED] Set to True to include an extra column in the final location feature file containing the number of minutes used to compute the features on each time segment. Use this for quality control purposes; the more data minutes exist for a period, the more reliable its features should be. For fused location, a single minute can contain more than one coordinate pair if the participant is moving fast enough. Features description for [PHONE_LOCATIONS][PROVIDERS][BARNETT] adapted from Beiwe Summary Statistics : Feature Units Description hometime minutes Time at home. Time spent at home in minutes. Home is the most visited significant location between 8 pm and 8 am, including any pauses within a 200-meter radius. disttravelled meters Total distance traveled over a day (flights). rog meters The Radius of Gyration (rog) is a measure in meters of the area covered by a person over a day. A centroid is calculated for all the places (pauses) visited during a day, and a weighted distance between all the places and that centroid is computed. The weights are proportional to the time spent in each place. maxdiam meters The maximum diameter is the largest distance between any two pauses. maxhomedist meters The maximum distance from home in meters. siglocsvisited locations The number of significant locations visited during the day. Significant locations are computed using k-means clustering over pauses found in the whole monitoring period. The number of clusters is found iterating k from 1 to 200 stopping until the centroids of two significant locations are within 400 meters of one another. avgflightlen meters Mean length of all flights. stdflightlen meters Standard deviation of the length of all flights. avgflightdur seconds Mean duration of all flights. stdflightdur seconds The standard deviation of the duration of all flights. probpause - The fraction of a day spent in a pause (as opposed to a flight) siglocentropy nats Shannon\u2019s entropy measurement is based on the proportion of time spent at each significant location visited during a day. circdnrtn - A continuous metric quantifying a person\u2019s circadian routine that can take any value between 0 and 1, where 0 represents a daily routine completely different from any other sensed days and 1 a routine the same as every other sensed day. wkenddayrtn - Same as circdnrtn but computed separately for weekends and weekdays. Assumptions/Observations Multi day segment features Barnett\u2019s features are only available on time segments that span entire days (00:00:00 to 23:59:59). Such segments can be one-day long (daily) or multi-day (weekly, for example). Multi-day segment features are computed based on daily features summarized the following way: sum for hometime , disttravelled , siglocsvisited , and minutes_data_used max for maxdiam , and maxhomedist mean for rog , avgflightlen , stdflightlen , avgflightdur , stdflightdur , probpause , siglocentropy , circdnrtn , wkenddayrtn , and minsmissing Computation speed The process to extract these features can be slow compared to other sensors and providers due to the required simulation. How are these features computed? These features are based on a Pause-Flight model. A pause is defined as a mobility trace (location pings) within a certain duration and distance (by default, 300 seconds and 60 meters). A flight is any mobility trace between two pauses. Data is resampled and imputed before the features are computed. See Barnett et al for more information. In RAPIDS, we only expose one parameter for these features (accuracy limit). You can change other parameters in src/features/phone_locations/barnett/library/MobilityFeatures.R . Significant Locations Significant locations are determined using K-means clustering on pauses longer than 10 minutes. The number of clusters (K) is increased until no two clusters are within 400 meters from each other. After this, pauses within a certain range of a cluster (200 meters by default) count as a visit to that significant location. This description was adapted from the Supplementary Materials of Barnett et al . The Circadian Calculation For a detailed description of how this is calculated, see Canzian et al . DORYAB provider \u00b6 These features are based on the original implementation by Doryab et al. . Available time segments and platforms Available for all time segments Available for Android and iOS File Sequence - data/raw/ { pid } /phone_locations_raw.csv - data/interim/ { pid } /phone_locations_processed.csv - data/interim/ { pid } /phone_locations_processed_with_datetime.csv - data/interim/ { pid } /phone_locations_processed_with_datetime_with_doryab_columns.csv - data/interim/ { pid } /phone_locations_features/phone_locations_ { language } _ { provider_key } .csv - data/processed/features/ { pid } /phone_locations.csv Parameters description for [PHONE_LOCATIONS][PROVIDERS][DORYAB] : Key Description [COMPUTE] Set to True to extract PHONE_LOCATIONS features from the BARNETT provider [FEATURES] Features to be computed, see table below [ACCURACY_LIMIT] An integer in meters, any location rows with an accuracy higher than this will be dropped. This number means there\u2019s a 68% probability the true location is within this radius [DBSCAN_EPS] The maximum distance in meters between two samples for one to be considered as in the neighborhood of the other. This is not a maximum bound on the distances of points within a cluster. This is the most important DBSCAN parameter to choose appropriately for your data set and distance function. [DBSCAN_MINSAMPLES] The number of samples (or total weight) in a neighborhood for a point to be considered as a core point of a cluster. This includes the point itself. [THRESHOLD_STATIC] It is the threshold value in km/hr which labels a row as Static or Moving. [MAXIMUM_ROW_GAP] The maximum gap (in seconds) allowed between any two consecutive rows for them to be considered part of the same displacement. If this threshold is too high, it can throw speed and distance calculations off for periods when the phone was not sensing. This value must be larger than your GPS sampling interval when [LOCATIONS_TO_USE] is ALL or GPS , otherwise all the stationary-related features will be NA. If [LOCATIONS_TO_USE] is ALL_RESAMPLED or FUSED_RESAMPLED , you can use the default value as every row will be resampled at 1-minute intervals. [MINUTES_DATA_USED] Set to True to include an extra column in the final location feature file containing the number of minutes used to compute the features on each time segment. Use this for quality control purposes; the more data minutes exist for a period, the more reliable its features should be. For fused location, a single minute can contain more than one coordinate pair if the participant is moving fast enough. [CLUSTER_ON] Set this flag to PARTICIPANT_DATASET to create clusters based on the entire participant\u2019s dataset or to TIME_SEGMENT to create clusters based on all the instances of the corresponding time segment (e.g. all mornings) or to TIME_SEGMENT_INSTANCE to create clusters based on a single instance (e.g. 2020-05-20\u2019s morning). [INFER_HOME_LOCATION_STRATEGY] The strategy applied to infer home locations. Set to DORYAB_STRATEGY to infer one home location for the entire dataset of each participant or to SUN_LI_VEGA_STRATEGY to infer one home location per day per participant. See Observations below to know more. [MINIMUM_DAYS_TO_DETECT_HOME_CHANGES] The minimum number of consecutive days a new home location candidate has to repeat before it is considered the participant\u2019s new home. This parameter will be used only when [INFER_HOME_LOCATION_STRATEGY] is set to SUN_LI_VEGA_STRATEGY . [CLUSTERING_ALGORITHM] The original Doryab et al. implementation uses DBSCAN , OPTICS is also available with similar (but not identical) clustering results and lower memory consumption. [RADIUS_FOR_HOME] All location coordinates within this distance (meters) from the home location coordinates are considered a homestay (see timeathome feature). Features description for [PHONE_LOCATIONS][PROVIDERS][DORYAB] : Feature Units Description locationvariance \\(meters^2\\) The sum of the variances of the latitude and longitude columns. loglocationvariance - Log of the sum of the variances of the latitude and longitude columns. totaldistance meters Total distance traveled in a time segment using the haversine formula. avgspeed km/hr Average speed in a time segment considering only the instances labeled as Moving. varspeed km/hr Speed variance in a time segment considering only the instances labeled as Moving. circadianmovement - Deprecated, see Observations below. \u201cIt encodes the extent to which a person\u2019s location patterns follow a 24-hour circadian cycle.\" Doryab et al. . numberofsignificantplaces places Number of significant locations visited. It is calculated using the DBSCAN/OPTICS clustering algorithm which takes in EPS and MIN_SAMPLES as parameters to identify clusters. Each cluster is a significant place. numberlocationtransitions transitions Number of movements between any two clusters in a time segment. radiusgyration meters Quantifies the area covered by a participant timeattop1location minutes Time spent at the most significant location. timeattop2location minutes Time spent at the 2 nd most significant location. timeattop3location minutes Time spent at the 3 rd most significant location. movingtostaticratio - Ratio between stationary time and total location sensed time. A lat/long coordinate pair is labeled as stationary if its speed (distance/time) to the next coordinate pair is less than 1km/hr. A higher value represents a more stationary routine. outlierstimepercent - Ratio between the time spent in non-significant clusters divided by the time spent in all clusters (stationary time. Only stationary samples are clustered). A higher value represents more time spent in non-significant clusters. maxlengthstayatclusters minutes Maximum time spent in a cluster (significant location). minlengthstayatclusters minutes Minimum time spent in a cluster (significant location). avglengthstayatclusters minutes Average time spent in a cluster (significant location). stdlengthstayatclusters minutes Standard deviation of time spent in a cluster (significant location). locationentropy nats Shannon Entropy computed over the row count of each cluster (significant location), it is higher the more rows belong to a cluster (i.e., the more time a participant spent at a significant location). normalizedlocationentropy nats Shannon Entropy computed over the row count of each cluster (significant location) divided by the number of clusters; it is higher the more rows belong to a cluster (i.e., the more time a participant spent at a significant location). timeathome minutes Time spent at home (see Observations below for a description on how we compute home). homelabel - An integer that represents a different home location. It will be a constant number (1) for all participants when [INFER_HOME_LOCATION_STRATEGY] is set to DORYAB_STRATEGY or an incremental index if the strategy is set to SUN_LI_VEGA_STRATEGY . Assumptions/Observations Significant Locations Identified Significant locations are determined using DBSCAN clustering on locations that a patient visit over the course of the period of data collection. Circadian Movement Calculation Note Feb 3 2021. It seems the implementation of this feature is not correct; we suggest not to use this feature until a fix is in place. For a detailed description of how this should be calculated, see Saeb et al . Fine-Tuning Clustering Parameters Based on an experiment where we collected fused location data for 7 days with a mean accuracy of 86 & SD of 350.874635, we determined that EPS/MAX_EPS =100 produced closer clustering results to reality. Higher values (>100) missed out on some significant places, like a short grocery visit, while lower values (<100) picked up traffic lights and stop signs while driving as significant locations. We recommend you set EPS based on your location data\u2019s accuracy (the more accurate your data is, the lower you should be able to set EPS). Duration Calculation To calculate the time duration component for our features, we compute the difference between consecutive rows\u2019 timestamps to take into account sampling rate variability. If this time difference is larger than a threshold (300 seconds by default), we replace it with NA and label that row as Moving. Home location DORYAB_STRATEGY : home is calculated using all location data of a participant between 12 am and 6 am, then applying a clustering algorithm ( DBSCAN or OPTICS ) and considering the center of the biggest cluster home for that participant. SUN_LI_VEGA_STRATEGY : home is calculated using all location data of a participant between 12 am and 6 am, then applying a clustering algorithm ( DBSCAN or OPTICS ). The following steps are used to infer the home location per day for that participant: if there are records within [03:30:00, 04:30:00] for that night: we choose the most common cluster during that period as a home candidate for that day. elif there are records within [midnight, 03:30:00) for that night: we choose the last valid cluster during that period as a home candidate for that day. elif there are records within (04:30:00, 06:00:00] for that night: we choose the first valid cluster during that period as a home candidate for that day. else: the home location is NA (missing) for that day. If the count of consecutive days with the same candidate home location cluster label is larger or equal to [MINIMUM_DAYS_TO_DETECT_HOME_CHANGES] , the candidate will be regarded as the home cluster; otherwise, the home cluster will be the last valid day\u2019s cluster. If there are no valid clusters before that day, the first home location in the days after is used.","title":"Phone Locations"},{"location":"features/phone-locations/#phone-locations","text":"Sensor parameters description for [PHONE_LOCATIONS] : Key Description [CONTAINER] Data stream container (database table, CSV file, etc.) where the location data is stored [LOCATIONS_TO_USE] Type of location data to use, one of ALL , GPS , ALL_RESAMPLED or FUSED_RESAMPLED . This filter is based on the provider column of the locations table, ALL includes every row, GPS only includes rows where the provider is gps, ALL_RESAMPLED includes all rows after being resampled, and FUSED_RESAMPLED only includes rows where the provider is fused after being resampled. [FUSED_RESAMPLED_CONSECUTIVE_THRESHOLD] if ALL_RESAMPLED or FUSED_RESAMPLED is used, the original fused data has to be resampled, a location row is resampled to the next valid timestamp (see the Assumptions/Observations below) only if the time difference between them is less or equal than this threshold (in minutes). [FUSED_RESAMPLED_TIME_SINCE_VALID_LOCATION] if ALL_RESAMPLED or FUSED_RESAMPLED is used, the original fused data has to be resampled, a location row is resampled at most for this long (in minutes) Assumptions/Observations Types of location data to use Android and iOS clients can collect location coordinates through the phone\u2019s GPS, the network cellular towers around the phone, or Google\u2019s fused location API. If you want to use only the GPS provider, set [LOCATIONS_TO_USE] to GPS If you want to use all providers, set [LOCATIONS_TO_USE] to ALL If you collected location data from different providers, including the fused API, use ALL_RESAMPLED If your mobile client was configured to use fused location only or want to focus only on this provider, set [LOCATIONS_TO_USE] to RESAMPLE_FUSED . ALL_RESAMPLED and RESAMPLE_FUSED take the original location coordinates and replicate each pair forward in time as long as the phone was sensing data as indicated by the joined timestamps of [PHONE_DATA_YIELD][SENSORS] . This is done because Google\u2019s API only logs a new location coordinate pair when it is sufficiently different in time or space from the previous one and because GPS and network providers can log data at variable rates. There are two parameters associated with resampling fused location. FUSED_RESAMPLED_CONSECUTIVE_THRESHOLD (in minutes, default 30) controls the maximum gap between any two coordinate pairs to replicate the last known pair. For example, participant A\u2019s phone did not collect data between 10.30 am and 10:50 am and between 11:05am and 11:40am, the last known coordinate pair is replicated during the first period but not the second. In other words, we assume that we cannot longer guarantee the participant stayed at the last known location if the phone did not sense data for more than 30 minutes. FUSED_RESAMPLED_TIME_SINCE_VALID_LOCATION (in minutes, default 720 or 12 hours) stops the last known fused location from being replicated longer than this threshold even if the phone was sensing data continuously. For example, participant A went home at 9 pm, and their phone was sensing data without gaps until 11 am the next morning, the last known location is replicated until 9 am. If you have suggestions to modify or improve this resampling, let us know.","title":"Phone Locations"},{"location":"features/phone-locations/#barnett-provider","text":"These features are based on the original open-source implementation by Barnett et al and some features created by Canzian et al . Available time segments and platforms Available only for segments that start at 00:00:00 and end at 23:59:59 of the same or a different day (daily, weekly, weekend, etc.) Available for Android and iOS File Sequence - data/raw/ { pid } /phone_locations_raw.csv - data/interim/ { pid } /phone_locations_processed.csv - data/interim/ { pid } /phone_locations_processed_with_datetime.csv - data/interim/ { pid } /phone_locations_features/phone_locations_ { language } _ { provider_key } .csv - data/processed/features/ { pid } /phone_locations.csv Parameters description for [PHONE_LOCATIONS][PROVIDERS][BARNETT] : Key Description [COMPUTE] Set to True to extract PHONE_LOCATIONS features from the BARNETT provider [FEATURES] Features to be computed, see table below [ACCURACY_LIMIT] An integer in meters, any location rows with an accuracy higher than this is dropped. This number means there\u2019s a 68% probability the actual location is within this radius [IF_MULTIPLE_TIMEZONES] Currently, USE_MOST_COMMON is the only value supported. If the location data for a participant belongs to multiple time zones, we select the most common because Barnett\u2019s algorithm can only handle one time zone [MINUTES_DATA_USED] Set to True to include an extra column in the final location feature file containing the number of minutes used to compute the features on each time segment. Use this for quality control purposes; the more data minutes exist for a period, the more reliable its features should be. For fused location, a single minute can contain more than one coordinate pair if the participant is moving fast enough. Features description for [PHONE_LOCATIONS][PROVIDERS][BARNETT] adapted from Beiwe Summary Statistics : Feature Units Description hometime minutes Time at home. Time spent at home in minutes. Home is the most visited significant location between 8 pm and 8 am, including any pauses within a 200-meter radius. disttravelled meters Total distance traveled over a day (flights). rog meters The Radius of Gyration (rog) is a measure in meters of the area covered by a person over a day. A centroid is calculated for all the places (pauses) visited during a day, and a weighted distance between all the places and that centroid is computed. The weights are proportional to the time spent in each place. maxdiam meters The maximum diameter is the largest distance between any two pauses. maxhomedist meters The maximum distance from home in meters. siglocsvisited locations The number of significant locations visited during the day. Significant locations are computed using k-means clustering over pauses found in the whole monitoring period. The number of clusters is found iterating k from 1 to 200 stopping until the centroids of two significant locations are within 400 meters of one another. avgflightlen meters Mean length of all flights. stdflightlen meters Standard deviation of the length of all flights. avgflightdur seconds Mean duration of all flights. stdflightdur seconds The standard deviation of the duration of all flights. probpause - The fraction of a day spent in a pause (as opposed to a flight) siglocentropy nats Shannon\u2019s entropy measurement is based on the proportion of time spent at each significant location visited during a day. circdnrtn - A continuous metric quantifying a person\u2019s circadian routine that can take any value between 0 and 1, where 0 represents a daily routine completely different from any other sensed days and 1 a routine the same as every other sensed day. wkenddayrtn - Same as circdnrtn but computed separately for weekends and weekdays. Assumptions/Observations Multi day segment features Barnett\u2019s features are only available on time segments that span entire days (00:00:00 to 23:59:59). Such segments can be one-day long (daily) or multi-day (weekly, for example). Multi-day segment features are computed based on daily features summarized the following way: sum for hometime , disttravelled , siglocsvisited , and minutes_data_used max for maxdiam , and maxhomedist mean for rog , avgflightlen , stdflightlen , avgflightdur , stdflightdur , probpause , siglocentropy , circdnrtn , wkenddayrtn , and minsmissing Computation speed The process to extract these features can be slow compared to other sensors and providers due to the required simulation. How are these features computed? These features are based on a Pause-Flight model. A pause is defined as a mobility trace (location pings) within a certain duration and distance (by default, 300 seconds and 60 meters). A flight is any mobility trace between two pauses. Data is resampled and imputed before the features are computed. See Barnett et al for more information. In RAPIDS, we only expose one parameter for these features (accuracy limit). You can change other parameters in src/features/phone_locations/barnett/library/MobilityFeatures.R . Significant Locations Significant locations are determined using K-means clustering on pauses longer than 10 minutes. The number of clusters (K) is increased until no two clusters are within 400 meters from each other. After this, pauses within a certain range of a cluster (200 meters by default) count as a visit to that significant location. This description was adapted from the Supplementary Materials of Barnett et al . The Circadian Calculation For a detailed description of how this is calculated, see Canzian et al .","title":"BARNETT provider"},{"location":"features/phone-locations/#doryab-provider","text":"These features are based on the original implementation by Doryab et al. . Available time segments and platforms Available for all time segments Available for Android and iOS File Sequence - data/raw/ { pid } /phone_locations_raw.csv - data/interim/ { pid } /phone_locations_processed.csv - data/interim/ { pid } /phone_locations_processed_with_datetime.csv - data/interim/ { pid } /phone_locations_processed_with_datetime_with_doryab_columns.csv - data/interim/ { pid } /phone_locations_features/phone_locations_ { language } _ { provider_key } .csv - data/processed/features/ { pid } /phone_locations.csv Parameters description for [PHONE_LOCATIONS][PROVIDERS][DORYAB] : Key Description [COMPUTE] Set to True to extract PHONE_LOCATIONS features from the BARNETT provider [FEATURES] Features to be computed, see table below [ACCURACY_LIMIT] An integer in meters, any location rows with an accuracy higher than this will be dropped. This number means there\u2019s a 68% probability the true location is within this radius [DBSCAN_EPS] The maximum distance in meters between two samples for one to be considered as in the neighborhood of the other. This is not a maximum bound on the distances of points within a cluster. This is the most important DBSCAN parameter to choose appropriately for your data set and distance function. [DBSCAN_MINSAMPLES] The number of samples (or total weight) in a neighborhood for a point to be considered as a core point of a cluster. This includes the point itself. [THRESHOLD_STATIC] It is the threshold value in km/hr which labels a row as Static or Moving. [MAXIMUM_ROW_GAP] The maximum gap (in seconds) allowed between any two consecutive rows for them to be considered part of the same displacement. If this threshold is too high, it can throw speed and distance calculations off for periods when the phone was not sensing. This value must be larger than your GPS sampling interval when [LOCATIONS_TO_USE] is ALL or GPS , otherwise all the stationary-related features will be NA. If [LOCATIONS_TO_USE] is ALL_RESAMPLED or FUSED_RESAMPLED , you can use the default value as every row will be resampled at 1-minute intervals. [MINUTES_DATA_USED] Set to True to include an extra column in the final location feature file containing the number of minutes used to compute the features on each time segment. Use this for quality control purposes; the more data minutes exist for a period, the more reliable its features should be. For fused location, a single minute can contain more than one coordinate pair if the participant is moving fast enough. [CLUSTER_ON] Set this flag to PARTICIPANT_DATASET to create clusters based on the entire participant\u2019s dataset or to TIME_SEGMENT to create clusters based on all the instances of the corresponding time segment (e.g. all mornings) or to TIME_SEGMENT_INSTANCE to create clusters based on a single instance (e.g. 2020-05-20\u2019s morning). [INFER_HOME_LOCATION_STRATEGY] The strategy applied to infer home locations. Set to DORYAB_STRATEGY to infer one home location for the entire dataset of each participant or to SUN_LI_VEGA_STRATEGY to infer one home location per day per participant. See Observations below to know more. [MINIMUM_DAYS_TO_DETECT_HOME_CHANGES] The minimum number of consecutive days a new home location candidate has to repeat before it is considered the participant\u2019s new home. This parameter will be used only when [INFER_HOME_LOCATION_STRATEGY] is set to SUN_LI_VEGA_STRATEGY . [CLUSTERING_ALGORITHM] The original Doryab et al. implementation uses DBSCAN , OPTICS is also available with similar (but not identical) clustering results and lower memory consumption. [RADIUS_FOR_HOME] All location coordinates within this distance (meters) from the home location coordinates are considered a homestay (see timeathome feature). Features description for [PHONE_LOCATIONS][PROVIDERS][DORYAB] : Feature Units Description locationvariance \\(meters^2\\) The sum of the variances of the latitude and longitude columns. loglocationvariance - Log of the sum of the variances of the latitude and longitude columns. totaldistance meters Total distance traveled in a time segment using the haversine formula. avgspeed km/hr Average speed in a time segment considering only the instances labeled as Moving. varspeed km/hr Speed variance in a time segment considering only the instances labeled as Moving. circadianmovement - Deprecated, see Observations below. \u201cIt encodes the extent to which a person\u2019s location patterns follow a 24-hour circadian cycle.\" Doryab et al. . numberofsignificantplaces places Number of significant locations visited. It is calculated using the DBSCAN/OPTICS clustering algorithm which takes in EPS and MIN_SAMPLES as parameters to identify clusters. Each cluster is a significant place. numberlocationtransitions transitions Number of movements between any two clusters in a time segment. radiusgyration meters Quantifies the area covered by a participant timeattop1location minutes Time spent at the most significant location. timeattop2location minutes Time spent at the 2 nd most significant location. timeattop3location minutes Time spent at the 3 rd most significant location. movingtostaticratio - Ratio between stationary time and total location sensed time. A lat/long coordinate pair is labeled as stationary if its speed (distance/time) to the next coordinate pair is less than 1km/hr. A higher value represents a more stationary routine. outlierstimepercent - Ratio between the time spent in non-significant clusters divided by the time spent in all clusters (stationary time. Only stationary samples are clustered). A higher value represents more time spent in non-significant clusters. maxlengthstayatclusters minutes Maximum time spent in a cluster (significant location). minlengthstayatclusters minutes Minimum time spent in a cluster (significant location). avglengthstayatclusters minutes Average time spent in a cluster (significant location). stdlengthstayatclusters minutes Standard deviation of time spent in a cluster (significant location). locationentropy nats Shannon Entropy computed over the row count of each cluster (significant location), it is higher the more rows belong to a cluster (i.e., the more time a participant spent at a significant location). normalizedlocationentropy nats Shannon Entropy computed over the row count of each cluster (significant location) divided by the number of clusters; it is higher the more rows belong to a cluster (i.e., the more time a participant spent at a significant location). timeathome minutes Time spent at home (see Observations below for a description on how we compute home). homelabel - An integer that represents a different home location. It will be a constant number (1) for all participants when [INFER_HOME_LOCATION_STRATEGY] is set to DORYAB_STRATEGY or an incremental index if the strategy is set to SUN_LI_VEGA_STRATEGY . Assumptions/Observations Significant Locations Identified Significant locations are determined using DBSCAN clustering on locations that a patient visit over the course of the period of data collection. Circadian Movement Calculation Note Feb 3 2021. It seems the implementation of this feature is not correct; we suggest not to use this feature until a fix is in place. For a detailed description of how this should be calculated, see Saeb et al . Fine-Tuning Clustering Parameters Based on an experiment where we collected fused location data for 7 days with a mean accuracy of 86 & SD of 350.874635, we determined that EPS/MAX_EPS =100 produced closer clustering results to reality. Higher values (>100) missed out on some significant places, like a short grocery visit, while lower values (<100) picked up traffic lights and stop signs while driving as significant locations. We recommend you set EPS based on your location data\u2019s accuracy (the more accurate your data is, the lower you should be able to set EPS). Duration Calculation To calculate the time duration component for our features, we compute the difference between consecutive rows\u2019 timestamps to take into account sampling rate variability. If this time difference is larger than a threshold (300 seconds by default), we replace it with NA and label that row as Moving. Home location DORYAB_STRATEGY : home is calculated using all location data of a participant between 12 am and 6 am, then applying a clustering algorithm ( DBSCAN or OPTICS ) and considering the center of the biggest cluster home for that participant. SUN_LI_VEGA_STRATEGY : home is calculated using all location data of a participant between 12 am and 6 am, then applying a clustering algorithm ( DBSCAN or OPTICS ). The following steps are used to infer the home location per day for that participant: if there are records within [03:30:00, 04:30:00] for that night: we choose the most common cluster during that period as a home candidate for that day. elif there are records within [midnight, 03:30:00) for that night: we choose the last valid cluster during that period as a home candidate for that day. elif there are records within (04:30:00, 06:00:00] for that night: we choose the first valid cluster during that period as a home candidate for that day. else: the home location is NA (missing) for that day. If the count of consecutive days with the same candidate home location cluster label is larger or equal to [MINIMUM_DAYS_TO_DETECT_HOME_CHANGES] , the candidate will be regarded as the home cluster; otherwise, the home cluster will be the last valid day\u2019s cluster. If there are no valid clusters before that day, the first home location in the days after is used.","title":"DORYAB provider"},{"location":"features/phone-log/","text":"Phone Log \u00b6 Sensor parameters description for [PHONE_LOG] : Key Description [CONTAINER][ANDROID] Data stream container (database table, CSV file, etc.) where a data log is stored for Android devices [CONTAINER][IOS] Data stream container (database table, CSV file, etc.) where a data log is stored for iOS devices Note No feature providers have been implemented for this sensor yet, however you can use its key ( PHONE_LOG ) to improve PHONE_DATA_YIELD or you can implement your own features .","title":"Phone Log"},{"location":"features/phone-log/#phone-log","text":"Sensor parameters description for [PHONE_LOG] : Key Description [CONTAINER][ANDROID] Data stream container (database table, CSV file, etc.) where a data log is stored for Android devices [CONTAINER][IOS] Data stream container (database table, CSV file, etc.) where a data log is stored for iOS devices Note No feature providers have been implemented for this sensor yet, however you can use its key ( PHONE_LOG ) to improve PHONE_DATA_YIELD or you can implement your own features .","title":"Phone Log"},{"location":"features/phone-messages/","text":"Phone Messages \u00b6 Sensor parameters description for [PHONE_MESSAGES] : Key Description [CONTAINER] Data stream container (database table, CSV file, etc.) where the messages data is stored RAPIDS provider \u00b6 Available time segments and platforms Available for all time segments Available for Android only File Sequence - data/raw/ { pid } /phone_messages_raw.csv - data/raw/ { pid } /phone_messages_with_datetime.csv - data/interim/ { pid } /phone_messages_features/phone_messages_ { language } _ { provider_key } .csv - data/processed/features/ { pid } /phone_messages.csv Parameters description for [PHONE_MESSAGES][PROVIDERS][RAPIDS] : Key Description [COMPUTE] Set to True to extract PHONE_MESSAGES features from the RAPIDS provider [MESSAGES_TYPES] The messages_type that will be analyzed. The options for this parameter are received or sent . [FEATURES] Features to be computed, see table below for [MESSAGES_TYPES] received and sent Features description for [PHONE_MESSAGES][PROVIDERS][RAPIDS] : Feature Units Description count messages Number of messages of type messages_type that occurred during a particular time_segment . distinctcontacts contacts Number of distinct contacts that are associated with a particular messages_type during a particular time_segment . timefirstmessages minutes Number of minutes between 12:00am (midnight) and the first message of a particular messages_type during a particular time_segment . timelastmessages minutes Number of minutes between 12:00am (midnight) and the last message of a particular messages_type during a particular time_segment . countmostfrequentcontact messages Number of messages from the contact with the most messages of messages_type during a time_segment throughout the whole dataset of each participant. Assumptions/Observations [MESSAGES_TYPES] and [FEATURES] keys in config.yaml need to match. For example, [MESSAGES_TYPES] sent matches the [FEATURES] key sent","title":"Phone Messages"},{"location":"features/phone-messages/#phone-messages","text":"Sensor parameters description for [PHONE_MESSAGES] : Key Description [CONTAINER] Data stream container (database table, CSV file, etc.) where the messages data is stored","title":"Phone Messages"},{"location":"features/phone-messages/#rapids-provider","text":"Available time segments and platforms Available for all time segments Available for Android only File Sequence - data/raw/ { pid } /phone_messages_raw.csv - data/raw/ { pid } /phone_messages_with_datetime.csv - data/interim/ { pid } /phone_messages_features/phone_messages_ { language } _ { provider_key } .csv - data/processed/features/ { pid } /phone_messages.csv Parameters description for [PHONE_MESSAGES][PROVIDERS][RAPIDS] : Key Description [COMPUTE] Set to True to extract PHONE_MESSAGES features from the RAPIDS provider [MESSAGES_TYPES] The messages_type that will be analyzed. The options for this parameter are received or sent . [FEATURES] Features to be computed, see table below for [MESSAGES_TYPES] received and sent Features description for [PHONE_MESSAGES][PROVIDERS][RAPIDS] : Feature Units Description count messages Number of messages of type messages_type that occurred during a particular time_segment . distinctcontacts contacts Number of distinct contacts that are associated with a particular messages_type during a particular time_segment . timefirstmessages minutes Number of minutes between 12:00am (midnight) and the first message of a particular messages_type during a particular time_segment . timelastmessages minutes Number of minutes between 12:00am (midnight) and the last message of a particular messages_type during a particular time_segment . countmostfrequentcontact messages Number of messages from the contact with the most messages of messages_type during a time_segment throughout the whole dataset of each participant. Assumptions/Observations [MESSAGES_TYPES] and [FEATURES] keys in config.yaml need to match. For example, [MESSAGES_TYPES] sent matches the [FEATURES] key sent","title":"RAPIDS provider"},{"location":"features/phone-screen/","text":"Phone Screen \u00b6 Sensor parameters description for [PHONE_SCREEN] : Key Description [CONTAINER] Data stream container (database table, CSV file, etc.) where the screen data is stored RAPIDS provider \u00b6 Available time segments and platforms Available for all time segments Available for Android and iOS File Sequence - data/raw/ { pid } /phone_screen_raw.csv - data/raw/ { pid } /phone_screen_with_datetime.csv - data/interim/ { pid } /phone_screen_episodes.csv - data/interim/ { pid } /phone_screen_episodes_resampled.csv - data/interim/ { pid } /phone_screen_episodes_resampled_with_datetime.csv - data/interim/ { pid } /phone_screen_features/phone_screen_ { language } _ { provider_key } .csv - data/processed/features/ { pid } /phone_screen.csv Parameters description for [PHONE_SCREEN][PROVIDERS][RAPIDS] : Key Description [COMPUTE] Set to True to extract PHONE_SCREEN features from the RAPIDS provider [FEATURES] Features to be computed, see table below [REFERENCE_HOUR_FIRST_USE] The reference point from which firstuseafter is to be computed, default is midnight [IGNORE_EPISODES_SHORTER_THAN] Ignore episodes that are shorter than this threshold (minutes). Set to 0 to disable this filter. [IGNORE_EPISODES_LONGER_THAN] Ignore episodes that are longer than this threshold (minutes). Set to 0 to disable this filter. [EPISODE_TYPES] Currently we only support unlock episodes (from when the phone is unlocked until the screen is off) Features description for [PHONE_SCREEN][PROVIDERS][RAPIDS] : Feature Units Description sumduration minutes Total duration of all unlock episodes. maxduration minutes Longest duration of any unlock episode. minduration minutes Shortest duration of any unlock episode. avgduration minutes Average duration of all unlock episodes. stdduration minutes Standard deviation duration of all unlock episodes. countepisode episodes Number of all unlock episodes firstuseafter minutes Minutes until the first unlock episode. Assumptions/Observations In Android, lock events can happen right after an off event, after a few seconds of an off event, or never happen depending on the phone's settings, therefore, an unlock episode is defined as the time between an unlock and a off event. In iOS, on and off events do not exist, so an unlock episode is defined as the time between an unlock and a lock event. Events in iOS are recorded reliably albeit some duplicated lock events within milliseconds from each other, so we only keep consecutive unlock/lock pairs. In Android you cand find multiple consecutive unlock or lock events, so we only keep consecutive unlock/off pairs. In our experiments these cases are less than 10% of the screen events collected and this happens because ACTION_SCREEN_OFF and ACTION_SCREEN_ON are sent when the device becomes non-interactive which may have nothing to do with the screen turning off . In addition to unlock/off episodes, in Android it is possible to measure the time spent on the lock screen before an unlock event as well as the total screen time (i.e. ON to OFF ) but these are not implemented at the moment. We transform iOS screen events to match Android\u2019s format, we replace lock episodes with off episodes (2 with 0) in iOS. However, as mentioned above this is still computing unlock to lock episodes.","title":"Phone Screen"},{"location":"features/phone-screen/#phone-screen","text":"Sensor parameters description for [PHONE_SCREEN] : Key Description [CONTAINER] Data stream container (database table, CSV file, etc.) where the screen data is stored","title":"Phone Screen"},{"location":"features/phone-screen/#rapids-provider","text":"Available time segments and platforms Available for all time segments Available for Android and iOS File Sequence - data/raw/ { pid } /phone_screen_raw.csv - data/raw/ { pid } /phone_screen_with_datetime.csv - data/interim/ { pid } /phone_screen_episodes.csv - data/interim/ { pid } /phone_screen_episodes_resampled.csv - data/interim/ { pid } /phone_screen_episodes_resampled_with_datetime.csv - data/interim/ { pid } /phone_screen_features/phone_screen_ { language } _ { provider_key } .csv - data/processed/features/ { pid } /phone_screen.csv Parameters description for [PHONE_SCREEN][PROVIDERS][RAPIDS] : Key Description [COMPUTE] Set to True to extract PHONE_SCREEN features from the RAPIDS provider [FEATURES] Features to be computed, see table below [REFERENCE_HOUR_FIRST_USE] The reference point from which firstuseafter is to be computed, default is midnight [IGNORE_EPISODES_SHORTER_THAN] Ignore episodes that are shorter than this threshold (minutes). Set to 0 to disable this filter. [IGNORE_EPISODES_LONGER_THAN] Ignore episodes that are longer than this threshold (minutes). Set to 0 to disable this filter. [EPISODE_TYPES] Currently we only support unlock episodes (from when the phone is unlocked until the screen is off) Features description for [PHONE_SCREEN][PROVIDERS][RAPIDS] : Feature Units Description sumduration minutes Total duration of all unlock episodes. maxduration minutes Longest duration of any unlock episode. minduration minutes Shortest duration of any unlock episode. avgduration minutes Average duration of all unlock episodes. stdduration minutes Standard deviation duration of all unlock episodes. countepisode episodes Number of all unlock episodes firstuseafter minutes Minutes until the first unlock episode. Assumptions/Observations In Android, lock events can happen right after an off event, after a few seconds of an off event, or never happen depending on the phone's settings, therefore, an unlock episode is defined as the time between an unlock and a off event. In iOS, on and off events do not exist, so an unlock episode is defined as the time between an unlock and a lock event. Events in iOS are recorded reliably albeit some duplicated lock events within milliseconds from each other, so we only keep consecutive unlock/lock pairs. In Android you cand find multiple consecutive unlock or lock events, so we only keep consecutive unlock/off pairs. In our experiments these cases are less than 10% of the screen events collected and this happens because ACTION_SCREEN_OFF and ACTION_SCREEN_ON are sent when the device becomes non-interactive which may have nothing to do with the screen turning off . In addition to unlock/off episodes, in Android it is possible to measure the time spent on the lock screen before an unlock event as well as the total screen time (i.e. ON to OFF ) but these are not implemented at the moment. We transform iOS screen events to match Android\u2019s format, we replace lock episodes with off episodes (2 with 0) in iOS. However, as mentioned above this is still computing unlock to lock episodes.","title":"RAPIDS provider"},{"location":"features/phone-wifi-connected/","text":"Phone WiFi Connected \u00b6 Sensor parameters description for [PHONE_WIFI_CONNECTED] : Key Description [CONTAINER] Data stream container (database table, CSV file, etc.) where the wifi (connected) data is stored RAPIDS provider \u00b6 Available time segments and platforms Available for all time segments Available for Android and iOS File Sequence - data/raw/ { pid } /phone_wifi_connected_raw.csv - data/raw/ { pid } /phone_wifi_connected_with_datetime.csv - data/interim/ { pid } /phone_wifi_connected_features/phone_wifi_connected_ { language } _ { provider_key } .csv - data/processed/features/ { pid } /phone_wifi_connected.csv Parameters description for [PHONE_WIFI_CONNECTED][PROVIDERS][RAPIDS] : Key Description [COMPUTE] Set to True to extract PHONE_WIFI_CONNECTED features from the RAPIDS provider [FEATURES] Features to be computed, see table below Features description for [PHONE_WIFI_CONNECTED][PROVIDERS][RAPIDS] : Feature Units Description countscans devices Number of scanned WiFi access points connected during a time_segment, an access point can be detected multiple times over time and these appearances are counted separately uniquedevices devices Number of unique access point during a time_segment as identified by their hardware address countscansmostuniquedevice scans Number of scans of the most scanned access point during a time_segment across the whole monitoring period Assumptions/Observations A connected WiFI access point is one that a phone was connected to. By default AWARE stores this data in the sensor_wifi table.","title":"Phone WiFI Connected"},{"location":"features/phone-wifi-connected/#phone-wifi-connected","text":"Sensor parameters description for [PHONE_WIFI_CONNECTED] : Key Description [CONTAINER] Data stream container (database table, CSV file, etc.) where the wifi (connected) data is stored","title":"Phone WiFi Connected"},{"location":"features/phone-wifi-connected/#rapids-provider","text":"Available time segments and platforms Available for all time segments Available for Android and iOS File Sequence - data/raw/ { pid } /phone_wifi_connected_raw.csv - data/raw/ { pid } /phone_wifi_connected_with_datetime.csv - data/interim/ { pid } /phone_wifi_connected_features/phone_wifi_connected_ { language } _ { provider_key } .csv - data/processed/features/ { pid } /phone_wifi_connected.csv Parameters description for [PHONE_WIFI_CONNECTED][PROVIDERS][RAPIDS] : Key Description [COMPUTE] Set to True to extract PHONE_WIFI_CONNECTED features from the RAPIDS provider [FEATURES] Features to be computed, see table below Features description for [PHONE_WIFI_CONNECTED][PROVIDERS][RAPIDS] : Feature Units Description countscans devices Number of scanned WiFi access points connected during a time_segment, an access point can be detected multiple times over time and these appearances are counted separately uniquedevices devices Number of unique access point during a time_segment as identified by their hardware address countscansmostuniquedevice scans Number of scans of the most scanned access point during a time_segment across the whole monitoring period Assumptions/Observations A connected WiFI access point is one that a phone was connected to. By default AWARE stores this data in the sensor_wifi table.","title":"RAPIDS provider"},{"location":"features/phone-wifi-visible/","text":"Phone WiFi Visible \u00b6 Sensor parameters description for [PHONE_WIFI_VISIBLE] : Key Description [CONTAINER] Data stream container (database table, CSV file, etc.) where the wifi (visible) data is stored RAPIDS provider \u00b6 Available time segments and platforms Available for all time segments Available for Android only File Sequence - data/raw/ { pid } /phone_wifi_visible_raw.csv - data/raw/ { pid } /phone_wifi_visible_with_datetime.csv - data/interim/ { pid } /phone_wifi_visible_features/phone_wifi_visible_ { language } _ { provider_key } .csv - data/processed/features/ { pid } /phone_wifi_visible.csv Parameters description for [PHONE_WIFI_VISIBLE][PROVIDERS][RAPIDS] : Key Description [COMPUTE] Set to True to extract PHONE_WIFI_VISIBLE features from the RAPIDS provider [FEATURES] Features to be computed, see table below Features description for [PHONE_WIFI_VISIBLE][PROVIDERS][RAPIDS] : Feature Units Description countscans devices Number of scanned WiFi access points visible during a time_segment, an access point can be detected multiple times over time and these appearances are counted separately uniquedevices devices Number of unique access point during a time_segment as identified by their hardware address countscansmostuniquedevice scans Number of scans of the most scanned access point during a time_segment across the whole monitoring period Assumptions/Observations A visible WiFI access point is one that a phone sensed around itself but that it was not connected to. Due to API restrictions, this sensor is not available on iOS. By default AWARE stores this data in the wifi table.","title":"Phone WiFI Visible"},{"location":"features/phone-wifi-visible/#phone-wifi-visible","text":"Sensor parameters description for [PHONE_WIFI_VISIBLE] : Key Description [CONTAINER] Data stream container (database table, CSV file, etc.) where the wifi (visible) data is stored","title":"Phone WiFi Visible"},{"location":"features/phone-wifi-visible/#rapids-provider","text":"Available time segments and platforms Available for all time segments Available for Android only File Sequence - data/raw/ { pid } /phone_wifi_visible_raw.csv - data/raw/ { pid } /phone_wifi_visible_with_datetime.csv - data/interim/ { pid } /phone_wifi_visible_features/phone_wifi_visible_ { language } _ { provider_key } .csv - data/processed/features/ { pid } /phone_wifi_visible.csv Parameters description for [PHONE_WIFI_VISIBLE][PROVIDERS][RAPIDS] : Key Description [COMPUTE] Set to True to extract PHONE_WIFI_VISIBLE features from the RAPIDS provider [FEATURES] Features to be computed, see table below Features description for [PHONE_WIFI_VISIBLE][PROVIDERS][RAPIDS] : Feature Units Description countscans devices Number of scanned WiFi access points visible during a time_segment, an access point can be detected multiple times over time and these appearances are counted separately uniquedevices devices Number of unique access point during a time_segment as identified by their hardware address countscansmostuniquedevice scans Number of scans of the most scanned access point during a time_segment across the whole monitoring period Assumptions/Observations A visible WiFI access point is one that a phone sensed around itself but that it was not connected to. Due to API restrictions, this sensor is not available on iOS. By default AWARE stores this data in the wifi table.","title":"RAPIDS provider"},{"location":"setup/configuration/","text":"Configuration \u00b6 You need to follow these steps to configure your RAPIDS deployment before you can extract behavioral features. Verify RAPIDS can process your data streams Create your participants files Select what time segments you want to extract features on Select the timezone of your study Configure your data streams Select what sensors and features you want to process When you are done with this configuration, go to executing RAPIDS . Hint Every time you see config[\"KEY\"] or [KEY] in these docs, we are referring to the corresponding key in the config.yaml file. Supported data streams \u00b6 A data stream refers to sensor data collected using a specific device with a specific format and stored in a specific container . For example, the aware_mysql data stream handles smartphone data ( device ) collected with the AWARE Framework ( format ) stored in a MySQL database ( container ). Check the table in introduction to data streams to know what data streams we support. If your data stream is supported, continue to the next configuration section, you will use its label later in this guide (e.g. aware_mysql ). If your steam is not supported, but you want to implement it, follow the tutorial to add support for new data streams and open a new discussion in Github with any questions. Participant files \u00b6 Participant files link together multiple devices (smartphones and wearables) to specific participants and identify them throughout RAPIDS. You can create these files manually or automatically . Participant files are stored in data/external/participant_files/pxx.yaml and follow a unified structure . Remember to modify the config.yaml file with your PIDS The list PIDS in config.yaml needs to have the participant file names of the people you want to process. For example, if you created p01.yaml , p02.yaml and p03.yaml files in /data/external/participant_files/ , then PIDS should be: PIDS : [ p01 , p02 , p03 ] Optional: Migrating participants files with the old format If you were using the pre-release version of RAPIDS with participant files in plain text (as opposed to yaml), you could run the following command, and your old files will be converted into yaml files stored in data/external/participant_files/ python tools/update_format_participant_files.py Structure of participants files \u00b6 Example of the structure of a participant file In this example, the participant used an android phone, an ios phone, a Fitbit device, and an Empatica device throughout the study between April 23 rd , 2020, and October 28 th , 2020 If your participants didn\u2019t use a [PHONE] , [FITBIT] or [EMPATICA] device, it is not necessary to include that section in their participant file. In other words, you can analyze data from 1 or more devices per participant. PHONE : DEVICE_IDS : [ a748ee1a-1d0b-4ae9-9074-279a2b6ba524 , dsadas-2324-fgsf-sdwr-gdfgs4rfsdf43 ] PLATFORMS : [ android , ios ] LABEL : test01 START_DATE : 2020-04-23 END_DATE : 2020-10-28 FITBIT : DEVICE_IDS : [ fitbit1 ] LABEL : test01 START_DATE : 2020-04-23 END_DATE : 2020-10-28 EMPATICA : DEVICE_IDS : [ empatica1 ] LABEL : test01 START_DATE : 2020-04-23 END_DATE : 2020-10-28 [PHONE] Key Description [DEVICE_IDS] An array of the strings that uniquely identify each smartphone, you can have more than one for when participants changed phones in the middle of the study. [PLATFORMS] An array that specifies the OS of each smartphone in [DEVICE_IDS] , use a combination of android or ios (we support participants that changed platforms in the middle of your study!). You can set [PLATFORMS]: [infer] , and RAPIDS will infer them automatically (each phone data stream infer this differently, e.g., aware_mysql uses the aware_device table). [LABEL] A string that is used in reports and visualizations. [START_DATE] A string with format YYYY-MM-DD or YYYY-MM-DD HH:MM:SS . Only data collected after this date-time will be included in the analysis. By default, YYYY-MM-DD is interpreted as YYYY-MM-DD 00:00:00 . [END_DATE] A string with format YYYY-MM-DD or YYYY-MM-DD HH:MM:SS . Only data collected before this date-time will be included in the analysis. By default, YYYY-MM-DD is interpreted as YYYY-MM-DD 00:00:00 . [FITBIT] Key Description [DEVICE_IDS] An array of the strings that uniquely identify each Fitbit, you can have more than one in case the participant changed devices in the middle of the study. [LABEL] A string that is used in reports and visualizations. [START_DATE] A string with format YYYY-MM-DD or YYYY-MM-DD HH:MM:SS . Only data collected after this date-time will be included in the analysis. By default, YYYY-MM-DD is interpreted as YYYY-MM-DD 00:00:00 . [END_DATE] A string with format YYYY-MM-DD or YYYY-MM-DD HH:MM:SS . Only data collected before this date-time will be included in the analysis. By default, YYYY-MM-DD is interpreted as YYYY-MM-DD 00:00:00 . [EMPATICA] Key Description [DEVICE_IDS] An array of the strings that uniquely identify each Empatica device used by this participant. Since the most common use case involves having multiple zip files from a single device for each person, set this device id to an arbitrary string (we usually use their pid ) [LABEL] A string that is used in reports and visualizations. [START_DATE] A string with format YYYY-MM-DD or YYYY-MM-DD HH:MM:SS . Only data collected after this date-time will be included in the analysis. By default, YYYY-MM-DD is interpreted as YYYY-MM-DD 00:00:00 . [END_DATE] A string with format YYYY-MM-DD or YYYY-MM-DD HH:MM:SS . Only data collected before this date-time will be included in the analysis. By default, YYYY-MM-DD is interpreted as YYYY-MM-DD 00:00:00 . Automatic creation of participant files \u00b6 You can use a CSV file with a row per participant to automatically create participant files. AWARE_DEVICE_TABLE was deprecated In previous versions of RAPIDS, you could create participant files automatically using the aware_device table. We deprecated this option, but you can still achieve the same results if you export the output of the following SQL query as a CSV file and follow the instructions below: SELECT device_id , device_id as fitbit_id , CONCAT ( \"p\" , _id ) as empatica_id , CONCAT ( \"p\" , _id ) as pid , if ( brand = \"iPhone\" , \"ios\" , \"android\" ) as platform , CONCAT ( \"p\" , _id ) as label , DATE_FORMAT ( FROM_UNIXTIME (( timestamp / 1000 ) - 86400 ), \"%Y-%m-%d\" ) as start_date , CURRENT_DATE as end_date from aware_device order by _id ; In your config.yaml : Set CSV_FILE_PATH to a CSV file path that complies with the specs described below Set the devices ( PHONE , FITBIT , EMPATICA ) [ADD] flag to TRUE depending on what devices you used in your study. CREATE_PARTICIPANT_FILES : CSV_FILE_PATH : \"your_path/to_your.csv\" PHONE_SECTION : ADD : TRUE # or FALSE IGNORED_DEVICE_IDS : [] FITBIT_SECTION : ADD : TRUE # or FALSE IGNORED_DEVICE_IDS : [] EMPATICA_SECTION : ADD : TRUE # or FALSE IGNORED_DEVICE_IDS : [] Your CSV file ( [CSV_FILE_PATH] ) should have the following columns (headers), but the values within each column can be empty: Column Description device_id Phone device id. Separate multiple ids with ; fitbit_id Fitbit device id. Separate multiple ids with ; empatica_id Empatica device id. Since the most common use case involves having various zip files from a single device for each person, set this device id to an arbitrary string (we usually use their pid ) pid Unique identifiers with the format pXXX (your participant files will be named with this string) platform Use android , ios or infer as explained above, separate values with ; label A human-readable string that is used in reports and visualizations. start_date A string with format YYY-MM-DD or YYYY-MM-DD HH:MM:SS . By default, YYYY-MM-DD is interpreted as YYYY-MM-DD 00:00:00 . end_date A string with format YYY-MM-DD or YYYY-MM-DD HH:MM:SS . By default, YYYY-MM-DD is interpreted as YYYY-MM-DD 00:00:00 . Example We added white spaces to this example to make it easy to read, but you don\u2019t have to. device_id ,fitbit_id, empatica_id ,pid ,label ,platform ,start_date ,end_date a748ee1a-1d0b-4ae9-9074-279a2b6ba524;dsadas-2324-fgsf-sdwr-gdfgs4rfsdf43 ,fitbit1 , p01 ,p01 ,julio ,android;ios ,2020-01-01 ,2021-01-01 4c4cf7a1-0340-44bc-be0f-d5053bf7390c ,fitbit2 , p02 ,p02 ,meng ,ios ,2021-01-01 ,2022-01-01 Then run snakemake -j1 create_participants_files Time Segments \u00b6 Time segments (or epochs) are the time windows on which you want to extract behavioral features. For example, you might want to process data every day, every morning, or only during weekends. RAPIDS offers three categories of time segments that are flexible enough to cover most use cases: frequency (short time windows every day), periodic (arbitrary time windows on any day), and event (arbitrary time windows around events of interest). See also our examples . Frequency Segments These segments are computed every day, and all have the same duration (for example, 30 minutes). Set the following keys in your config.yaml TIME_SEGMENTS : &time_segments TYPE : FREQUENCY FILE : \"data/external/your_frequency_segments.csv\" INCLUDE_PAST_PERIODIC_SEGMENTS : FALSE The file pointed by [TIME_SEGMENTS][FILE] should have the following format and only have 1 row. Column Description label A string that is used as a prefix in the name of your time segments length An integer representing the duration of your time segments in minutes Example label,length thirtyminutes,30 This configuration will compute 48 time segments for every day when any data from any participant was sensed. For example: start_time,length,label 00:00,30,thirtyminutes0000 00:30,30,thirtyminutes0001 01:00,30,thirtyminutes0002 01:30,30,thirtyminutes0003 ... Periodic Segments These segments can be computed every day or on specific days of the week, month, quarter, and year. Their minimum duration is 1 minute, but they can be as long as you want. Set the following keys in your config.yaml . TIME_SEGMENTS : &time_segments TYPE : PERIODIC FILE : \"data/external/your_periodic_segments.csv\" INCLUDE_PAST_PERIODIC_SEGMENTS : FALSE # or TRUE If [INCLUDE_PAST_PERIODIC_SEGMENTS] is set to TRUE , RAPIDS will consider instances of your segments back enough in the past to include the first row of data of each participant. For example, if the first row of data from a participant happened on Saturday, March 7 th , 2020, and the requested segment duration is 7 days starting on every Sunday, the first segment to be considered would begin on Sunday, March 1 st if [INCLUDE_PAST_PERIODIC_SEGMENTS] is TRUE or on Sunday, March 8 th if FALSE . The file pointed by [TIME_SEGMENTS][FILE] should have the following format and can have multiple rows. Column Description label A string that is used as a prefix in the name of your time segments. It has to be unique between rows start_time A string with format HH:MM:SS representing the starting time of this segment on any day length A string representing the length of this segment. It can have one or more of the following strings XXD XXH XXM XXS to represent days, hours, minutes, and seconds. For example, 7D 23H 59M 59S repeats_on One of the following options every_day , wday , qday , mday , and yday . The last four represent a week, quarter, month, and year day repeats_value An integer complementing repeats_on . If you set repeats_on to every_day , set this to 0 , otherwise 1-7 represent a wday starting from Mondays, 1-31 represent a mday , 1-91 represent a qday , and 1-366 represent a yday Example label,start_time,length,repeats_on,repeats_value daily,00:00:00,23H 59M 59S,every_day,0 morning,06:00:00,5H 59M 59S,every_day,0 afternoon,12:00:00,5H 59M 59S,every_day,0 evening,18:00:00,5H 59M 59S,every_day,0 night,00:00:00,5H 59M 59S,every_day,0 This configuration will create five segment instances ( daily , morning , afternoon , evening , night ) on any given day ( every_day set to 0). The daily segment will start at midnight and last 23:59:59 ; the other four segments will begin at 6am, 12pm, 6pm, and 12am, respectively, and last for 05:59:59 . Event segments These segments can be computed before or after an event of interest (defined as any UNIX timestamp). Their minimum duration is 1 minute, but they can be as long as you want. The start of each segment can be shifted backward or forwards from the specified timestamp. Set the following keys in your config.yaml . TIME_SEGMENTS : &time_segments TYPE : EVENT FILE : \"data/external/your_event_segments.csv\" INCLUDE_PAST_PERIODIC_SEGMENTS : FALSE # or TRUE The file pointed by [TIME_SEGMENTS][FILE] should have the following format and can have multiple rows. Column Description label A string that is used as a prefix in the name of your time segments. If labels are unique, every segment is independent; if two or more segments have the same label, their data will be grouped when computing auxiliary data for features like the most frequent contact for calls (the most frequent contact will be calculated across all these segments). There cannot be two overlapping event segments with the same label (RAPIDS will throw an error) event_timestamp A UNIX timestamp that represents the moment an event of interest happened (clinical relapse, survey, readmission, etc.). The corresponding time segment will be computed around this moment using length , shift , and shift_direction length A string representing the length of this segment. It can have one or more of the following keys XXD XXH XXM XXS to represent days, hours, minutes, and seconds. For example, 7D 23H 59M 59S shift A string representing the time shift from event_timestamp . It can have one or more of the following keys XXD XXH XXM XXS to represent days, hours, minutes, and seconds. For example, 7D 23H 59M 59S . Use this value to change the start of a segment with respect to its event_timestamp . For example, set this variable to 1H to create a segment that starts 1 hour from an event of interest ( shift_direction determines if it\u2019s before or after). shift_direction An integer representing whether the shift is before ( -1 ) or after ( 1 ) an event_timestamp device_id The device id (smartphone or Fitbit) to whom this segment belongs to. You have to create a line in this event segment file for each event of a participant that you want to analyze. If you have participants with multiple device ids, you can choose any of them Example label,event_timestamp,length,shift,shift_direction,device_id stress1,1587661220000,1H,5M,1,a748ee1a-1d0b-4ae9-9074-279a2b6ba524 stress2,1587747620000,4H,4H,-1,a748ee1a-1d0b-4ae9-9074-279a2b6ba524 stress3,1587906020000,3H,5M,1,a748ee1a-1d0b-4ae9-9074-279a2b6ba524 stress4,1584291600000,7H,4H,-1,a748ee1a-1d0b-4ae9-9074-279a2b6ba524 stress5,1588172420000,9H,5M,-1,a748ee1a-1d0b-4ae9-9074-279a2b6ba524 mood,1587661220000,1H,0,0,a748ee1a-1d0b-4ae9-9074-279a2b6ba524 mood,1587747620000,1D,0,0,a748ee1a-1d0b-4ae9-9074-279a2b6ba524 mood,1587906020000,7D,0,0,a748ee1a-1d0b-4ae9-9074-279a2b6ba524 This example will create eight segments for a single participant ( a748ee1a... ), five independent stressX segments with various lengths (1,4,3,7, and 9 hours). Segments stress1 , stress3 , and stress5 are shifted forwards by 5 minutes, and stress2 and stress4 are shifted backward by 4 hours (that is, if the stress4 event happened on March 15 th at 1pm EST ( 1584291600000 ), the time segment will start on that day at 9am and end at 4pm). The three mood segments are 1 hour, 1 day, and 7 days long and have no shift. In addition, these mood segments are grouped together, meaning that although RAPIDS will compute features on each one of them, some information for such computation will be extracted from all three segments, for example, the phone contact that called a participant the most, or the location clusters visited by a participant. Date time labels of event segments In the final feature file, you will find a row per event segment. The local_segment column of each row has a label , a start date-time string, and an end date-time string. weeklysurvey2060#2020-09-12 01 :00:00,2020-09-18 23 :59:59 All sensor data is always segmented based on timestamps, and the date-time strings are attached for informative purposes. For example, you can plot your features based on these strings. When you configure RAPIDS to work with a single time zone, such time zone code will be used to convert start/end timestamps (the ones you typed in the event segments file) into start/end date-time strings. However, when you configure RAPIDS to work with multiple time zones, RAPIDS will use the most common time zone across all devices of every participant to do the conversion. The most common time zone is the one in which a participant spent the most time. In practical terms, this means that the date-time strings of event segments that happened in uncommon time zones will have shifted start/end date-time labels. However, the data within each segment was correctly filtered based on timestamps. Segment Examples \u00b6 5-minutes Use the following Frequency segment file to create 288 (12 * 60 * 24) 5-minute segments starting from midnight of every day in your study label,length fiveminutes,5 Daily Use the following Periodic segment file to create daily segments starting from midnight of every day in your study label,start_time,length,repeats_on,repeats_value daily,00:00:00,23H 59M 59S,every_day,0 Morning Use the following Periodic segment file to create morning segments starting at 06:00:00 and ending at 11:59:59 of every day in your study label,start_time,length,repeats_on,repeats_value morning,06:00:00,5H 59M 59S,every_day,0 Overnight Use the following Periodic segment file to create overnight segments starting at 20:00:00 and ending at 07:59:59 (next day) of every day in your study label,start_time,length,repeats_on,repeats_value morning,20:00:00,11H 59M 59S,every_day,0 Weekly Use the following Periodic segment file to create non-overlapping weekly segments starting at midnight of every Monday in your study label,start_time,length,repeats_on,repeats_value weekly,00:00:00,6D 23H 59M 59S,wday,1 Use the following Periodic segment file to create overlapping weekly segments starting at midnight of every day in your study label,start_time,length,repeats_on,repeats_value weekly,00:00:00,6D 23H 59M 59S,every_day,0 Week-ends Use the following Periodic segment file to create week-end segments starting at midnight of every Saturday in your study label,start_time,length,repeats_on,repeats_value weekend,00:00:00,1D 23H 59M 59S,wday,6 Around surveys Use the following Event segment file to create two 2-hour segments that start 1 hour before surveys answered by 3 participants label,event_timestamp,length,shift,shift_direction,device_id survey1,1587661220000,2H,1H,-1,a748ee1a-1d0b-4ae9-9074-279a2b6ba524 survey2,1587747620000,2H,1H,-1,a748ee1a-1d0b-4ae9-9074-279a2b6ba524 survey1,1587906020000,2H,1H,-1,rqtertsd-43ff-34fr-3eeg-efe4fergregr survey2,1584291600000,2H,1H,-1,rqtertsd-43ff-34fr-3eeg-efe4fergregr survey1,1588172420000,2H,1H,-1,klj34oi2-8frk-2343-21kk-324ljklewlr3 survey2,1584291600000,2H,1H,-1,klj34oi2-8frk-2343-21kk-324ljklewlr3 Timezone of your study \u00b6 Single timezone \u00b6 If your study only happened in a single time zone or you want to ignore short trips of your participants to different time zones, select the appropriate code from this list and change the following config key. Double-check your timezone code pick; for example, US Eastern Time is America/New_York , not EST . TIMEZONE : TYPE : SINGLE TZCODE : America/New_York Multiple timezones \u00b6 If your participants lived in different time zones or they traveled across time zones, and you know when participants\u2019 devices were in a specific time zone, RAPIDS can use this data to process your data streams with the correct date-time. You need to provide RAPIDS with the time zone data in a CSV file ( [TZCODES_FILE] ) in the format described below. TIMEZONE : TYPE : MULTIPLE SINGLE : TZCODE : America/New_York MULTIPLE : TZCODES_FILE : path_to/time_zones_csv.file IF_MISSING_TZCODE : STOP DEFAULT_TZCODE : America/New_York FITBIT : ALLOW_MULTIPLE_TZ_PER_DEVICE : False INFER_FROM_SMARTPHONE_TZ : False Parameters for [TIMEZONE] Parameter Description [TYPE] Either SINGLE or MULTIPLE as explained above [SINGLE][TZCODE] The time zone code from this list to be used across all devices [MULTIPLE][TZCODES_FILE] A CSV file containing the time zones in which participants\u2019 devices sensed data (see the required format below). Multiple devices can be linked to the same person. Read more in Participants Files [MULTIPLE][IF_MISSING_TZCODE] When a device is missing from [TZCODES_FILE] Set this flag to STOP to stop RAPIDS execution and show an error, or to USE_DEFAULT to assign the time zone specified in [DEFAULT_TZCODE] to any such devices [MULTIPLE][FITBIT][ALLOW_MULTIPLE_TZ_PER_DEVICE] You only need to care about this flag if one or more Fitbit devices sensed data in one or more time zones, and you want RAPIDS to take into account this in its feature computation. Read more in \u201cHow does RAPIDS handle Fitbit devices?\u201d below. [MULTIPLE][FITBIT][INFER_FROM_SMARTPHONE_TZ] You only need to care about this flag if one or more Fitbit devices sensed data in one or more time zones, and you want RAPIDS to take into account this in its feature computation. Read more in \u201cHow does RAPIDS handle Fitbit devices?\u201d below. Format of TZCODES_FILE TZCODES_FILE has three columns and a row for each time zone a device visited (a device can be a smartphone or wearable (Fitbit/Empatica)): Column Description device_id A string that uniquely identifies a smartphone or wearable tzcode A string with the appropriate code from this list that represents the time zone where the device sensed data timestamp A UNIX timestamp indicating when was the first time this device_id sensed data in tzcode device_id, tzcode, timestamp 13dbc8a3-dae3-4834-823a-4bc96a7d459d, America/New_York, 1587500000000 13dbc8a3-dae3-4834-823a-4bc96a7d459d, America/Mexico_City, 1587600000000 13dbc8a3-dae3-4834-823a-4bc96a7d459d, America/Los_Angeles, 1587700000000 65sa66a5-2d2d-4524-946v-44ascbv4sad7, Europe/Amsterdam, 1587100000000 65sa66a5-2d2d-4524-946v-44ascbv4sad7, Europe/Berlin, 1587200000000 65sa66a5-2d2d-4524-946v-44ascbv4sad7, Europe/Amsterdam, 1587300000000 Using this file, RAPDIS will create time zone intervals per device, for example for 13dbc8a3-dae3-4834-823a-4bc96a7d459d : Interval 1 [1587500000000, 1587599999999] for America/New_York Interval 2 [1587600000000, 1587699999999] for America/Mexico_City Interval 3 [1587700000000, now] for America/Los_Angeles Any sensor data row from a device will be assigned a timezone if it falls within that interval, for example: A screen row sensed at 1587533333333 will be assigned to America/New_York because it falls within Interval 1 A screen row sensed at 1587400000000 will be discarded because it was logged outside any interval. Can I get the TZCODES_FILE from the time zone table collected automatically by the AWARE app? Sure. You can put your timezone table ( timezone.csv ) collected by the AWARE app under data/external folder and run: python tools/create_multi_timezones_file.py The TZCODES_FILE will be saved as data/external/multiple_timezones.csv . What happens if participant X lives in Los Angeles but participant Y lives in Amsterdam and they both stayed there during my study? Add a row per participant and set timestamp to 0 : device_id, tzcode, timestamp 13dbc8a3-dae3-4834-823a-4bc96a7d459d, America/Los_Angeles, 0 65sa66a5-2d2d-4524-946v-44ascbv4sad7, Europe/Amsterdam, 0 What happens if I forget to add a timezone for one or more devices? It depends on [IF_MISSING_TZCODE] . If [IF_MISSING_TZCODE] is set to STOP , RAPIDS will stop its execution and show you an error message. If [IF_MISSING_TZCODE] is set to USE_DEFAULT , it will assign the time zone specified in [DEFAULT_TZCODE] to any devices with missing time zone information in [TZCODES_FILE] . This is helpful if only a few of your participants had multiple timezones, and you don\u2019t want to specify the same time zone for the rest. How does RAPIDS handle Fitbit devices? Fitbit devices are not time zone aware, and they always log data with a local date-time string. When none of the Fitbit devices in your study changed time zones (e.g., p01 was always in New York and p02 was always in Amsterdam), you can set a single time zone per Fitbit device id along with a timestamp of 0 (you can still assign multiple time zones to smartphone device ids) device_id, tzcode, timestamp fitbit123, America/New_York, 0 fitbit999, Europe/Amsterdam, 0 On the other hand, when at least one of your Fitbit devices changed time zones AND you want RAPIDS to take into account these changes, you need to set [ALLOW_MULTIPLE_TZ_PER_DEVICE] to True . You have to manually allow this option because you need to be aware it can produce inaccurate features around the times when time zones changed . This is because we cannot know precisely when the Fitbit device detected and processed the time zone change. If you want to ALLOW_MULTIPLE_TZ_PER_DEVICE , you will need to add any time zone changes per device in the TZCODES_FILE as explained above. You could obtain this data by hand, but if your participants also used a smartphone during your study, you can use their time zone logs. Recall that in RAPIDS, every participant is represented with a participant file pXX.yaml , this file links together multiple devices, and we will use it to know what smartphone time zone data should be applied to Fitbit devices. Thus set INFER_FROM_SMARTPHONE_TZ to TRUE , if you have included smartphone time zone data in your TZCODE_FILE and want to make a participant\u2019s Fitbit data time zone aware with their respective smartphone data. Data Stream Configuration \u00b6 Modify the following keys in your config.yaml depending on the data stream you want to process. Phone Set [PHONE_DATA_STREAMS][TYPE] to the smartphone data stream you want to process (e.g. aware_mysql ) and configure its parameters (e.g. [DATABASE_GROUP] ). Ignore the parameters of streams you are not using (e.g. [FOLDER] of aware_csv ). PHONE_DATA_STREAMS : USE : aware_mysql # AVAILABLE: aware_mysql : DATABASE_GROUP : MY_GROUP aware_csv : FOLDER : data/external/aware_csv aware_mysql Key Description [DATABASE_GROUP] A database credentials group. Read the instructions below to set it up Setting up a DATABASE_GROUP and its connection credentials. If you haven\u2019t done so, create an empty file called credentials.yaml in your RAPIDS root directory: Add the following lines to credentials.yaml and replace your database-specific credentials (user, password, host, and database): MY_GROUP : database : MY_DATABASE host : MY_HOST password : MY_PASSWORD port : 3306 user : MY_USER Notes The label [MY_GROUP] is arbitrary but it has to match the [DATABASE_GROUP] attribute of the data stream you choose to use. Indentation matters You can have more than one credentials group in credentials.yaml Upgrading from ./.env from RAPIDS 0.x In RAPIDS versions 0.x, database credentials were stored in a ./.env file. If you are migrating from that type of file, you have two options: Migrate your credentials by hand: change .env format [ MY_GROUP ] user=MY_USER password=MY_PASSWORD host=MY_HOST port=3306 database=MY_DATABASE to credentials.yaml format MY_GROUP : user : MY_USER password : MY_PASSWORD host : MY_HOST port : 3306 database : MY_DATABASE Use the migration script we provide (make sure your conda environment is active): python tools / update_format_env . py Connecting to localhost (host machine) from inside our docker container. If you are using RAPIDS\u2019 docker container and Docker-for-mac or Docker-for-Windows 18.03+, you can connect to a MySQL database in your host machine using host.docker.internal instead of 127.0.0.1 or localhost . In a Linux host, you need to run our docker container using docker run --network=\"host\" -d moshiresearch/rapids:latest and then 127.0.0.1 will point to your host machine. aware_csv Key Description [FOLDER] Folder where you have to place a CSV file per phone sensor. Each file has to contain all the data from every participant you want to process. Fitbit Set [FITBIT_DATA_STREAMS][TYPE] to the Fitbit data stream you want to process (e.g. fitbitjson_mysql ) and configure its parameters (e.g. [DATABASE_GROUP] ). Ignore the parameters of the other streams you are not using (e.g. [FOLDER] of aware_csv ). Warning You will probably have to tell RAPIDS the name of the columns where you stored your Fitbit data. To do this, modify your chosen stream\u2019s format.yaml column mappings to match your raw data column names. FITBIT_DATA_STREAMS : USE : fitbitjson_mysql # AVAILABLE: fitbitjson_mysql : DATABASE_GROUP : MY_GROUP SLEEP_SUMMARY_LAST_NIGHT_END : 660 fitbitjson_csv : FOLDER : data/external/fitbit_csv SLEEP_SUMMARY_LAST_NIGHT_END : 660 fitbitparsed_mysql : DATABASE_GROUP : MY_GROUP SLEEP_SUMMARY_LAST_NIGHT_END : 660 fitbitparsed_csv : FOLDER : data/external/fitbit_csv SLEEP_SUMMARY_LAST_NIGHT_END : 660 fitbitjson_mysql This data stream processes Fitbit data inside a JSON column obtained from the Fitbit API and stored in a MySQL database. Read more about its column mappings and mutations in fitbitjson_mysql . Key Description [DATABASE_GROUP] A database credentials group. Read the instructions below to set it up [SLEEP_SUMMARY_LAST_NIGHT_END] Segments are assigned based on this parameter. Any sleep episodes that start between today\u2019s SLEEP_SUMMARY_LAST_NIGHT_END (LNE) and tomorrow\u2019s LNE are regarded as today\u2019s sleep episodes. While today\u2019s bedtime is based on today\u2019s sleep episodes, today\u2019s wake time is based on yesterday\u2019s sleep episodes. Setting up a DATABASE_GROUP and its connection credentials. If you haven\u2019t done so, create an empty file called credentials.yaml in your RAPIDS root directory: Add the following lines to credentials.yaml and replace your database-specific credentials (user, password, host, and database): MY_GROUP : database : MY_DATABASE host : MY_HOST password : MY_PASSWORD port : 3306 user : MY_USER Notes The label [MY_GROUP] is arbitrary but it has to match the [DATABASE_GROUP] attribute of the data stream you choose to use. Indentation matters You can have more than one credentials group in credentials.yaml Upgrading from ./.env from RAPIDS 0.x In RAPIDS versions 0.x, database credentials were stored in a ./.env file. If you are migrating from that type of file, you have two options: Migrate your credentials by hand: change .env format [ MY_GROUP ] user=MY_USER password=MY_PASSWORD host=MY_HOST port=3306 database=MY_DATABASE to credentials.yaml format MY_GROUP : user : MY_USER password : MY_PASSWORD host : MY_HOST port : 3306 database : MY_DATABASE Use the migration script we provide (make sure your conda environment is active): python tools / update_format_env . py Connecting to localhost (host machine) from inside our docker container. If you are using RAPIDS\u2019 docker container and Docker-for-mac or Docker-for-Windows 18.03+, you can connect to a MySQL database in your host machine using host.docker.internal instead of 127.0.0.1 or localhost . In a Linux host, you need to run our docker container using docker run --network=\"host\" -d moshiresearch/rapids:latest and then 127.0.0.1 will point to your host machine. fitbitjson_csv This data stream processes Fitbit data inside a JSON column obtained from the Fitbit API and stored in a CSV file. Read more about its column mappings and mutations in fitbitjson_csv . Key Description [FOLDER] Folder where you have to place a CSV file per Fitbit sensor. Each file has to contain all the data from every participant you want to process. [SLEEP_SUMMARY_LAST_NIGHT_END] Segments are assigned based on this parameter. Any sleep episodes that start between today\u2019s SLEEP_SUMMARY_LAST_NIGHT_END (LNE) and tomorrow\u2019s LNE are regarded as today\u2019s sleep episodes. While today\u2019s bedtime is based on today\u2019s sleep episodes, today\u2019s wake time is based on yesterday\u2019s sleep episodes. fitbitparsed_mysql This data stream process Fitbit data stored in multiple columns after being parsed from the JSON column returned by Fitbit API and stored in a MySQL database. Read more about its column mappings and mutations in fitbitparsed_mysql . Key Description [DATABASE_GROUP] A database credentials group. Read the instructions below to set it up [SLEEP_SUMMARY_LAST_NIGHT_END] Segments are assigned based on this parameter. Any sleep episodes that start between today\u2019s SLEEP_SUMMARY_LAST_NIGHT_END (LNE) and tomorrow\u2019s LNE are regarded as today\u2019s sleep episodes. While today\u2019s bedtime is based on today\u2019s sleep episodes, today\u2019s wake time is based on yesterday\u2019s sleep episodes. Setting up a DATABASE_GROUP and its connection credentials. If you haven\u2019t done so, create an empty file called credentials.yaml in your RAPIDS root directory: Add the following lines to credentials.yaml and replace your database-specific credentials (user, password, host, and database): MY_GROUP : database : MY_DATABASE host : MY_HOST password : MY_PASSWORD port : 3306 user : MY_USER Notes The label [MY_GROUP] is arbitrary but it has to match the [DATABASE_GROUP] attribute of the data stream you choose to use. Indentation matters You can have more than one credentials group in credentials.yaml Upgrading from ./.env from RAPIDS 0.x In RAPIDS versions 0.x, database credentials were stored in a ./.env file. If you are migrating from that type of file, you have two options: Migrate your credentials by hand: change .env format [ MY_GROUP ] user=MY_USER password=MY_PASSWORD host=MY_HOST port=3306 database=MY_DATABASE to credentials.yaml format MY_GROUP : user : MY_USER password : MY_PASSWORD host : MY_HOST port : 3306 database : MY_DATABASE Use the migration script we provide (make sure your conda environment is active): python tools / update_format_env . py Connecting to localhost (host machine) from inside our docker container. If you are using RAPIDS\u2019 docker container and Docker-for-mac or Docker-for-Windows 18.03+, you can connect to a MySQL database in your host machine using host.docker.internal instead of 127.0.0.1 or localhost . In a Linux host, you need to run our docker container using docker run --network=\"host\" -d moshiresearch/rapids:latest and then 127.0.0.1 will point to your host machine. fitbitparsed_csv This data stream process Fitbit data stored in multiple columns (plain text) after being parsed from the JSON column returned by Fitbit API and stored in a CSV file. Read more about its column mappings and mutations in fitbitparsed_csv . Key Description [FOLDER] Folder where you have to place a CSV file per Fitbit sensor. Each file has to contain all the data from every participant you want to process. [SLEEP_SUMMARY_LAST_NIGHT_END] Segments are assigned based on this parameter. Any sleep episodes that start between today\u2019s SLEEP_SUMMARY_LAST_NIGHT_END (LNE) and tomorrow\u2019s LNE are regarded as today\u2019s sleep episodes. While today\u2019s bedtime is based on today\u2019s sleep episodes, today\u2019s wake time is based on yesterday\u2019s sleep episodes. Empatica Set [USE] to the Empatica data stream you want to use; see the table in introduction to data streams . Configure any parameters as indicated below. EMPATICA_DATA_STREAMS : USE : empatica_zip # AVAILABLE: empatica_zip : FOLDER : data/external/empatica empatica_zip Key Description [FOLDER] The relative path to a folder containing one subfolder per participant. The name of a participant folder should match their device_id assigned in their participant file. Each participant folder can have one or more zip files with any name; in other words, the sensor data in those zip files belong to a single participant. The zip files are automatically generated by Empatica and have a CSV file per sensor ( ACC , HR , TEMP , EDA , BVP , TAGS ). All CSV files of the same type contained in one or more zip files are uncompressed, parsed, sorted by timestamp, and joined together. Example of an EMPATICA FOLDER In the file tree below, we want to process three participants\u2019 data: p01 , p02 , and p03 . p01 has two zip files, p02 has only one zip file, and p03 has three zip files. Each zip has a CSV file per sensor that is joined together and processed by RAPIDS. data/ # this folder exists in the root RAPIDS folder external/ empatica/ p01/ file1.zip file2.zip p02/ aaaa.zip p03/ t1.zip t2.zip t3.zip Sensor and Features to Process \u00b6 Finally, you need to modify the config.yaml section of the sensors you want to extract behavioral features from. All sensors follow the same naming nomenclature ( DEVICE_SENSOR ) and parameter structure which we explain in the Behavioral Features Introduction . Done Head over to Execution to learn how to execute RAPIDS.","title":"Configuration"},{"location":"setup/configuration/#configuration","text":"You need to follow these steps to configure your RAPIDS deployment before you can extract behavioral features. Verify RAPIDS can process your data streams Create your participants files Select what time segments you want to extract features on Select the timezone of your study Configure your data streams Select what sensors and features you want to process When you are done with this configuration, go to executing RAPIDS . Hint Every time you see config[\"KEY\"] or [KEY] in these docs, we are referring to the corresponding key in the config.yaml file.","title":"Configuration"},{"location":"setup/configuration/#supported-data-streams","text":"A data stream refers to sensor data collected using a specific device with a specific format and stored in a specific container . For example, the aware_mysql data stream handles smartphone data ( device ) collected with the AWARE Framework ( format ) stored in a MySQL database ( container ). Check the table in introduction to data streams to know what data streams we support. If your data stream is supported, continue to the next configuration section, you will use its label later in this guide (e.g. aware_mysql ). If your steam is not supported, but you want to implement it, follow the tutorial to add support for new data streams and open a new discussion in Github with any questions.","title":"Supported data streams"},{"location":"setup/configuration/#participant-files","text":"Participant files link together multiple devices (smartphones and wearables) to specific participants and identify them throughout RAPIDS. You can create these files manually or automatically . Participant files are stored in data/external/participant_files/pxx.yaml and follow a unified structure . Remember to modify the config.yaml file with your PIDS The list PIDS in config.yaml needs to have the participant file names of the people you want to process. For example, if you created p01.yaml , p02.yaml and p03.yaml files in /data/external/participant_files/ , then PIDS should be: PIDS : [ p01 , p02 , p03 ] Optional: Migrating participants files with the old format If you were using the pre-release version of RAPIDS with participant files in plain text (as opposed to yaml), you could run the following command, and your old files will be converted into yaml files stored in data/external/participant_files/ python tools/update_format_participant_files.py","title":"Participant files"},{"location":"setup/configuration/#structure-of-participants-files","text":"Example of the structure of a participant file In this example, the participant used an android phone, an ios phone, a Fitbit device, and an Empatica device throughout the study between April 23 rd , 2020, and October 28 th , 2020 If your participants didn\u2019t use a [PHONE] , [FITBIT] or [EMPATICA] device, it is not necessary to include that section in their participant file. In other words, you can analyze data from 1 or more devices per participant. PHONE : DEVICE_IDS : [ a748ee1a-1d0b-4ae9-9074-279a2b6ba524 , dsadas-2324-fgsf-sdwr-gdfgs4rfsdf43 ] PLATFORMS : [ android , ios ] LABEL : test01 START_DATE : 2020-04-23 END_DATE : 2020-10-28 FITBIT : DEVICE_IDS : [ fitbit1 ] LABEL : test01 START_DATE : 2020-04-23 END_DATE : 2020-10-28 EMPATICA : DEVICE_IDS : [ empatica1 ] LABEL : test01 START_DATE : 2020-04-23 END_DATE : 2020-10-28 [PHONE] Key Description [DEVICE_IDS] An array of the strings that uniquely identify each smartphone, you can have more than one for when participants changed phones in the middle of the study. [PLATFORMS] An array that specifies the OS of each smartphone in [DEVICE_IDS] , use a combination of android or ios (we support participants that changed platforms in the middle of your study!). You can set [PLATFORMS]: [infer] , and RAPIDS will infer them automatically (each phone data stream infer this differently, e.g., aware_mysql uses the aware_device table). [LABEL] A string that is used in reports and visualizations. [START_DATE] A string with format YYYY-MM-DD or YYYY-MM-DD HH:MM:SS . Only data collected after this date-time will be included in the analysis. By default, YYYY-MM-DD is interpreted as YYYY-MM-DD 00:00:00 . [END_DATE] A string with format YYYY-MM-DD or YYYY-MM-DD HH:MM:SS . Only data collected before this date-time will be included in the analysis. By default, YYYY-MM-DD is interpreted as YYYY-MM-DD 00:00:00 . [FITBIT] Key Description [DEVICE_IDS] An array of the strings that uniquely identify each Fitbit, you can have more than one in case the participant changed devices in the middle of the study. [LABEL] A string that is used in reports and visualizations. [START_DATE] A string with format YYYY-MM-DD or YYYY-MM-DD HH:MM:SS . Only data collected after this date-time will be included in the analysis. By default, YYYY-MM-DD is interpreted as YYYY-MM-DD 00:00:00 . [END_DATE] A string with format YYYY-MM-DD or YYYY-MM-DD HH:MM:SS . Only data collected before this date-time will be included in the analysis. By default, YYYY-MM-DD is interpreted as YYYY-MM-DD 00:00:00 . [EMPATICA] Key Description [DEVICE_IDS] An array of the strings that uniquely identify each Empatica device used by this participant. Since the most common use case involves having multiple zip files from a single device for each person, set this device id to an arbitrary string (we usually use their pid ) [LABEL] A string that is used in reports and visualizations. [START_DATE] A string with format YYYY-MM-DD or YYYY-MM-DD HH:MM:SS . Only data collected after this date-time will be included in the analysis. By default, YYYY-MM-DD is interpreted as YYYY-MM-DD 00:00:00 . [END_DATE] A string with format YYYY-MM-DD or YYYY-MM-DD HH:MM:SS . Only data collected before this date-time will be included in the analysis. By default, YYYY-MM-DD is interpreted as YYYY-MM-DD 00:00:00 .","title":"Structure of participants files"},{"location":"setup/configuration/#automatic-creation-of-participant-files","text":"You can use a CSV file with a row per participant to automatically create participant files. AWARE_DEVICE_TABLE was deprecated In previous versions of RAPIDS, you could create participant files automatically using the aware_device table. We deprecated this option, but you can still achieve the same results if you export the output of the following SQL query as a CSV file and follow the instructions below: SELECT device_id , device_id as fitbit_id , CONCAT ( \"p\" , _id ) as empatica_id , CONCAT ( \"p\" , _id ) as pid , if ( brand = \"iPhone\" , \"ios\" , \"android\" ) as platform , CONCAT ( \"p\" , _id ) as label , DATE_FORMAT ( FROM_UNIXTIME (( timestamp / 1000 ) - 86400 ), \"%Y-%m-%d\" ) as start_date , CURRENT_DATE as end_date from aware_device order by _id ; In your config.yaml : Set CSV_FILE_PATH to a CSV file path that complies with the specs described below Set the devices ( PHONE , FITBIT , EMPATICA ) [ADD] flag to TRUE depending on what devices you used in your study. CREATE_PARTICIPANT_FILES : CSV_FILE_PATH : \"your_path/to_your.csv\" PHONE_SECTION : ADD : TRUE # or FALSE IGNORED_DEVICE_IDS : [] FITBIT_SECTION : ADD : TRUE # or FALSE IGNORED_DEVICE_IDS : [] EMPATICA_SECTION : ADD : TRUE # or FALSE IGNORED_DEVICE_IDS : [] Your CSV file ( [CSV_FILE_PATH] ) should have the following columns (headers), but the values within each column can be empty: Column Description device_id Phone device id. Separate multiple ids with ; fitbit_id Fitbit device id. Separate multiple ids with ; empatica_id Empatica device id. Since the most common use case involves having various zip files from a single device for each person, set this device id to an arbitrary string (we usually use their pid ) pid Unique identifiers with the format pXXX (your participant files will be named with this string) platform Use android , ios or infer as explained above, separate values with ; label A human-readable string that is used in reports and visualizations. start_date A string with format YYY-MM-DD or YYYY-MM-DD HH:MM:SS . By default, YYYY-MM-DD is interpreted as YYYY-MM-DD 00:00:00 . end_date A string with format YYY-MM-DD or YYYY-MM-DD HH:MM:SS . By default, YYYY-MM-DD is interpreted as YYYY-MM-DD 00:00:00 . Example We added white spaces to this example to make it easy to read, but you don\u2019t have to. device_id ,fitbit_id, empatica_id ,pid ,label ,platform ,start_date ,end_date a748ee1a-1d0b-4ae9-9074-279a2b6ba524;dsadas-2324-fgsf-sdwr-gdfgs4rfsdf43 ,fitbit1 , p01 ,p01 ,julio ,android;ios ,2020-01-01 ,2021-01-01 4c4cf7a1-0340-44bc-be0f-d5053bf7390c ,fitbit2 , p02 ,p02 ,meng ,ios ,2021-01-01 ,2022-01-01 Then run snakemake -j1 create_participants_files","title":"Automatic creation of participant files"},{"location":"setup/configuration/#time-segments","text":"Time segments (or epochs) are the time windows on which you want to extract behavioral features. For example, you might want to process data every day, every morning, or only during weekends. RAPIDS offers three categories of time segments that are flexible enough to cover most use cases: frequency (short time windows every day), periodic (arbitrary time windows on any day), and event (arbitrary time windows around events of interest). See also our examples . Frequency Segments These segments are computed every day, and all have the same duration (for example, 30 minutes). Set the following keys in your config.yaml TIME_SEGMENTS : &time_segments TYPE : FREQUENCY FILE : \"data/external/your_frequency_segments.csv\" INCLUDE_PAST_PERIODIC_SEGMENTS : FALSE The file pointed by [TIME_SEGMENTS][FILE] should have the following format and only have 1 row. Column Description label A string that is used as a prefix in the name of your time segments length An integer representing the duration of your time segments in minutes Example label,length thirtyminutes,30 This configuration will compute 48 time segments for every day when any data from any participant was sensed. For example: start_time,length,label 00:00,30,thirtyminutes0000 00:30,30,thirtyminutes0001 01:00,30,thirtyminutes0002 01:30,30,thirtyminutes0003 ... Periodic Segments These segments can be computed every day or on specific days of the week, month, quarter, and year. Their minimum duration is 1 minute, but they can be as long as you want. Set the following keys in your config.yaml . TIME_SEGMENTS : &time_segments TYPE : PERIODIC FILE : \"data/external/your_periodic_segments.csv\" INCLUDE_PAST_PERIODIC_SEGMENTS : FALSE # or TRUE If [INCLUDE_PAST_PERIODIC_SEGMENTS] is set to TRUE , RAPIDS will consider instances of your segments back enough in the past to include the first row of data of each participant. For example, if the first row of data from a participant happened on Saturday, March 7 th , 2020, and the requested segment duration is 7 days starting on every Sunday, the first segment to be considered would begin on Sunday, March 1 st if [INCLUDE_PAST_PERIODIC_SEGMENTS] is TRUE or on Sunday, March 8 th if FALSE . The file pointed by [TIME_SEGMENTS][FILE] should have the following format and can have multiple rows. Column Description label A string that is used as a prefix in the name of your time segments. It has to be unique between rows start_time A string with format HH:MM:SS representing the starting time of this segment on any day length A string representing the length of this segment. It can have one or more of the following strings XXD XXH XXM XXS to represent days, hours, minutes, and seconds. For example, 7D 23H 59M 59S repeats_on One of the following options every_day , wday , qday , mday , and yday . The last four represent a week, quarter, month, and year day repeats_value An integer complementing repeats_on . If you set repeats_on to every_day , set this to 0 , otherwise 1-7 represent a wday starting from Mondays, 1-31 represent a mday , 1-91 represent a qday , and 1-366 represent a yday Example label,start_time,length,repeats_on,repeats_value daily,00:00:00,23H 59M 59S,every_day,0 morning,06:00:00,5H 59M 59S,every_day,0 afternoon,12:00:00,5H 59M 59S,every_day,0 evening,18:00:00,5H 59M 59S,every_day,0 night,00:00:00,5H 59M 59S,every_day,0 This configuration will create five segment instances ( daily , morning , afternoon , evening , night ) on any given day ( every_day set to 0). The daily segment will start at midnight and last 23:59:59 ; the other four segments will begin at 6am, 12pm, 6pm, and 12am, respectively, and last for 05:59:59 . Event segments These segments can be computed before or after an event of interest (defined as any UNIX timestamp). Their minimum duration is 1 minute, but they can be as long as you want. The start of each segment can be shifted backward or forwards from the specified timestamp. Set the following keys in your config.yaml . TIME_SEGMENTS : &time_segments TYPE : EVENT FILE : \"data/external/your_event_segments.csv\" INCLUDE_PAST_PERIODIC_SEGMENTS : FALSE # or TRUE The file pointed by [TIME_SEGMENTS][FILE] should have the following format and can have multiple rows. Column Description label A string that is used as a prefix in the name of your time segments. If labels are unique, every segment is independent; if two or more segments have the same label, their data will be grouped when computing auxiliary data for features like the most frequent contact for calls (the most frequent contact will be calculated across all these segments). There cannot be two overlapping event segments with the same label (RAPIDS will throw an error) event_timestamp A UNIX timestamp that represents the moment an event of interest happened (clinical relapse, survey, readmission, etc.). The corresponding time segment will be computed around this moment using length , shift , and shift_direction length A string representing the length of this segment. It can have one or more of the following keys XXD XXH XXM XXS to represent days, hours, minutes, and seconds. For example, 7D 23H 59M 59S shift A string representing the time shift from event_timestamp . It can have one or more of the following keys XXD XXH XXM XXS to represent days, hours, minutes, and seconds. For example, 7D 23H 59M 59S . Use this value to change the start of a segment with respect to its event_timestamp . For example, set this variable to 1H to create a segment that starts 1 hour from an event of interest ( shift_direction determines if it\u2019s before or after). shift_direction An integer representing whether the shift is before ( -1 ) or after ( 1 ) an event_timestamp device_id The device id (smartphone or Fitbit) to whom this segment belongs to. You have to create a line in this event segment file for each event of a participant that you want to analyze. If you have participants with multiple device ids, you can choose any of them Example label,event_timestamp,length,shift,shift_direction,device_id stress1,1587661220000,1H,5M,1,a748ee1a-1d0b-4ae9-9074-279a2b6ba524 stress2,1587747620000,4H,4H,-1,a748ee1a-1d0b-4ae9-9074-279a2b6ba524 stress3,1587906020000,3H,5M,1,a748ee1a-1d0b-4ae9-9074-279a2b6ba524 stress4,1584291600000,7H,4H,-1,a748ee1a-1d0b-4ae9-9074-279a2b6ba524 stress5,1588172420000,9H,5M,-1,a748ee1a-1d0b-4ae9-9074-279a2b6ba524 mood,1587661220000,1H,0,0,a748ee1a-1d0b-4ae9-9074-279a2b6ba524 mood,1587747620000,1D,0,0,a748ee1a-1d0b-4ae9-9074-279a2b6ba524 mood,1587906020000,7D,0,0,a748ee1a-1d0b-4ae9-9074-279a2b6ba524 This example will create eight segments for a single participant ( a748ee1a... ), five independent stressX segments with various lengths (1,4,3,7, and 9 hours). Segments stress1 , stress3 , and stress5 are shifted forwards by 5 minutes, and stress2 and stress4 are shifted backward by 4 hours (that is, if the stress4 event happened on March 15 th at 1pm EST ( 1584291600000 ), the time segment will start on that day at 9am and end at 4pm). The three mood segments are 1 hour, 1 day, and 7 days long and have no shift. In addition, these mood segments are grouped together, meaning that although RAPIDS will compute features on each one of them, some information for such computation will be extracted from all three segments, for example, the phone contact that called a participant the most, or the location clusters visited by a participant. Date time labels of event segments In the final feature file, you will find a row per event segment. The local_segment column of each row has a label , a start date-time string, and an end date-time string. weeklysurvey2060#2020-09-12 01 :00:00,2020-09-18 23 :59:59 All sensor data is always segmented based on timestamps, and the date-time strings are attached for informative purposes. For example, you can plot your features based on these strings. When you configure RAPIDS to work with a single time zone, such time zone code will be used to convert start/end timestamps (the ones you typed in the event segments file) into start/end date-time strings. However, when you configure RAPIDS to work with multiple time zones, RAPIDS will use the most common time zone across all devices of every participant to do the conversion. The most common time zone is the one in which a participant spent the most time. In practical terms, this means that the date-time strings of event segments that happened in uncommon time zones will have shifted start/end date-time labels. However, the data within each segment was correctly filtered based on timestamps.","title":"Time Segments"},{"location":"setup/configuration/#segment-examples","text":"5-minutes Use the following Frequency segment file to create 288 (12 * 60 * 24) 5-minute segments starting from midnight of every day in your study label,length fiveminutes,5 Daily Use the following Periodic segment file to create daily segments starting from midnight of every day in your study label,start_time,length,repeats_on,repeats_value daily,00:00:00,23H 59M 59S,every_day,0 Morning Use the following Periodic segment file to create morning segments starting at 06:00:00 and ending at 11:59:59 of every day in your study label,start_time,length,repeats_on,repeats_value morning,06:00:00,5H 59M 59S,every_day,0 Overnight Use the following Periodic segment file to create overnight segments starting at 20:00:00 and ending at 07:59:59 (next day) of every day in your study label,start_time,length,repeats_on,repeats_value morning,20:00:00,11H 59M 59S,every_day,0 Weekly Use the following Periodic segment file to create non-overlapping weekly segments starting at midnight of every Monday in your study label,start_time,length,repeats_on,repeats_value weekly,00:00:00,6D 23H 59M 59S,wday,1 Use the following Periodic segment file to create overlapping weekly segments starting at midnight of every day in your study label,start_time,length,repeats_on,repeats_value weekly,00:00:00,6D 23H 59M 59S,every_day,0 Week-ends Use the following Periodic segment file to create week-end segments starting at midnight of every Saturday in your study label,start_time,length,repeats_on,repeats_value weekend,00:00:00,1D 23H 59M 59S,wday,6 Around surveys Use the following Event segment file to create two 2-hour segments that start 1 hour before surveys answered by 3 participants label,event_timestamp,length,shift,shift_direction,device_id survey1,1587661220000,2H,1H,-1,a748ee1a-1d0b-4ae9-9074-279a2b6ba524 survey2,1587747620000,2H,1H,-1,a748ee1a-1d0b-4ae9-9074-279a2b6ba524 survey1,1587906020000,2H,1H,-1,rqtertsd-43ff-34fr-3eeg-efe4fergregr survey2,1584291600000,2H,1H,-1,rqtertsd-43ff-34fr-3eeg-efe4fergregr survey1,1588172420000,2H,1H,-1,klj34oi2-8frk-2343-21kk-324ljklewlr3 survey2,1584291600000,2H,1H,-1,klj34oi2-8frk-2343-21kk-324ljklewlr3","title":"Segment Examples"},{"location":"setup/configuration/#timezone-of-your-study","text":"","title":"Timezone of your study"},{"location":"setup/configuration/#single-timezone","text":"If your study only happened in a single time zone or you want to ignore short trips of your participants to different time zones, select the appropriate code from this list and change the following config key. Double-check your timezone code pick; for example, US Eastern Time is America/New_York , not EST . TIMEZONE : TYPE : SINGLE TZCODE : America/New_York","title":"Single timezone"},{"location":"setup/configuration/#multiple-timezones","text":"If your participants lived in different time zones or they traveled across time zones, and you know when participants\u2019 devices were in a specific time zone, RAPIDS can use this data to process your data streams with the correct date-time. You need to provide RAPIDS with the time zone data in a CSV file ( [TZCODES_FILE] ) in the format described below. TIMEZONE : TYPE : MULTIPLE SINGLE : TZCODE : America/New_York MULTIPLE : TZCODES_FILE : path_to/time_zones_csv.file IF_MISSING_TZCODE : STOP DEFAULT_TZCODE : America/New_York FITBIT : ALLOW_MULTIPLE_TZ_PER_DEVICE : False INFER_FROM_SMARTPHONE_TZ : False Parameters for [TIMEZONE] Parameter Description [TYPE] Either SINGLE or MULTIPLE as explained above [SINGLE][TZCODE] The time zone code from this list to be used across all devices [MULTIPLE][TZCODES_FILE] A CSV file containing the time zones in which participants\u2019 devices sensed data (see the required format below). Multiple devices can be linked to the same person. Read more in Participants Files [MULTIPLE][IF_MISSING_TZCODE] When a device is missing from [TZCODES_FILE] Set this flag to STOP to stop RAPIDS execution and show an error, or to USE_DEFAULT to assign the time zone specified in [DEFAULT_TZCODE] to any such devices [MULTIPLE][FITBIT][ALLOW_MULTIPLE_TZ_PER_DEVICE] You only need to care about this flag if one or more Fitbit devices sensed data in one or more time zones, and you want RAPIDS to take into account this in its feature computation. Read more in \u201cHow does RAPIDS handle Fitbit devices?\u201d below. [MULTIPLE][FITBIT][INFER_FROM_SMARTPHONE_TZ] You only need to care about this flag if one or more Fitbit devices sensed data in one or more time zones, and you want RAPIDS to take into account this in its feature computation. Read more in \u201cHow does RAPIDS handle Fitbit devices?\u201d below. Format of TZCODES_FILE TZCODES_FILE has three columns and a row for each time zone a device visited (a device can be a smartphone or wearable (Fitbit/Empatica)): Column Description device_id A string that uniquely identifies a smartphone or wearable tzcode A string with the appropriate code from this list that represents the time zone where the device sensed data timestamp A UNIX timestamp indicating when was the first time this device_id sensed data in tzcode device_id, tzcode, timestamp 13dbc8a3-dae3-4834-823a-4bc96a7d459d, America/New_York, 1587500000000 13dbc8a3-dae3-4834-823a-4bc96a7d459d, America/Mexico_City, 1587600000000 13dbc8a3-dae3-4834-823a-4bc96a7d459d, America/Los_Angeles, 1587700000000 65sa66a5-2d2d-4524-946v-44ascbv4sad7, Europe/Amsterdam, 1587100000000 65sa66a5-2d2d-4524-946v-44ascbv4sad7, Europe/Berlin, 1587200000000 65sa66a5-2d2d-4524-946v-44ascbv4sad7, Europe/Amsterdam, 1587300000000 Using this file, RAPDIS will create time zone intervals per device, for example for 13dbc8a3-dae3-4834-823a-4bc96a7d459d : Interval 1 [1587500000000, 1587599999999] for America/New_York Interval 2 [1587600000000, 1587699999999] for America/Mexico_City Interval 3 [1587700000000, now] for America/Los_Angeles Any sensor data row from a device will be assigned a timezone if it falls within that interval, for example: A screen row sensed at 1587533333333 will be assigned to America/New_York because it falls within Interval 1 A screen row sensed at 1587400000000 will be discarded because it was logged outside any interval. Can I get the TZCODES_FILE from the time zone table collected automatically by the AWARE app? Sure. You can put your timezone table ( timezone.csv ) collected by the AWARE app under data/external folder and run: python tools/create_multi_timezones_file.py The TZCODES_FILE will be saved as data/external/multiple_timezones.csv . What happens if participant X lives in Los Angeles but participant Y lives in Amsterdam and they both stayed there during my study? Add a row per participant and set timestamp to 0 : device_id, tzcode, timestamp 13dbc8a3-dae3-4834-823a-4bc96a7d459d, America/Los_Angeles, 0 65sa66a5-2d2d-4524-946v-44ascbv4sad7, Europe/Amsterdam, 0 What happens if I forget to add a timezone for one or more devices? It depends on [IF_MISSING_TZCODE] . If [IF_MISSING_TZCODE] is set to STOP , RAPIDS will stop its execution and show you an error message. If [IF_MISSING_TZCODE] is set to USE_DEFAULT , it will assign the time zone specified in [DEFAULT_TZCODE] to any devices with missing time zone information in [TZCODES_FILE] . This is helpful if only a few of your participants had multiple timezones, and you don\u2019t want to specify the same time zone for the rest. How does RAPIDS handle Fitbit devices? Fitbit devices are not time zone aware, and they always log data with a local date-time string. When none of the Fitbit devices in your study changed time zones (e.g., p01 was always in New York and p02 was always in Amsterdam), you can set a single time zone per Fitbit device id along with a timestamp of 0 (you can still assign multiple time zones to smartphone device ids) device_id, tzcode, timestamp fitbit123, America/New_York, 0 fitbit999, Europe/Amsterdam, 0 On the other hand, when at least one of your Fitbit devices changed time zones AND you want RAPIDS to take into account these changes, you need to set [ALLOW_MULTIPLE_TZ_PER_DEVICE] to True . You have to manually allow this option because you need to be aware it can produce inaccurate features around the times when time zones changed . This is because we cannot know precisely when the Fitbit device detected and processed the time zone change. If you want to ALLOW_MULTIPLE_TZ_PER_DEVICE , you will need to add any time zone changes per device in the TZCODES_FILE as explained above. You could obtain this data by hand, but if your participants also used a smartphone during your study, you can use their time zone logs. Recall that in RAPIDS, every participant is represented with a participant file pXX.yaml , this file links together multiple devices, and we will use it to know what smartphone time zone data should be applied to Fitbit devices. Thus set INFER_FROM_SMARTPHONE_TZ to TRUE , if you have included smartphone time zone data in your TZCODE_FILE and want to make a participant\u2019s Fitbit data time zone aware with their respective smartphone data.","title":"Multiple timezones"},{"location":"setup/configuration/#data-stream-configuration","text":"Modify the following keys in your config.yaml depending on the data stream you want to process. Phone Set [PHONE_DATA_STREAMS][TYPE] to the smartphone data stream you want to process (e.g. aware_mysql ) and configure its parameters (e.g. [DATABASE_GROUP] ). Ignore the parameters of streams you are not using (e.g. [FOLDER] of aware_csv ). PHONE_DATA_STREAMS : USE : aware_mysql # AVAILABLE: aware_mysql : DATABASE_GROUP : MY_GROUP aware_csv : FOLDER : data/external/aware_csv aware_mysql Key Description [DATABASE_GROUP] A database credentials group. Read the instructions below to set it up Setting up a DATABASE_GROUP and its connection credentials. If you haven\u2019t done so, create an empty file called credentials.yaml in your RAPIDS root directory: Add the following lines to credentials.yaml and replace your database-specific credentials (user, password, host, and database): MY_GROUP : database : MY_DATABASE host : MY_HOST password : MY_PASSWORD port : 3306 user : MY_USER Notes The label [MY_GROUP] is arbitrary but it has to match the [DATABASE_GROUP] attribute of the data stream you choose to use. Indentation matters You can have more than one credentials group in credentials.yaml Upgrading from ./.env from RAPIDS 0.x In RAPIDS versions 0.x, database credentials were stored in a ./.env file. If you are migrating from that type of file, you have two options: Migrate your credentials by hand: change .env format [ MY_GROUP ] user=MY_USER password=MY_PASSWORD host=MY_HOST port=3306 database=MY_DATABASE to credentials.yaml format MY_GROUP : user : MY_USER password : MY_PASSWORD host : MY_HOST port : 3306 database : MY_DATABASE Use the migration script we provide (make sure your conda environment is active): python tools / update_format_env . py Connecting to localhost (host machine) from inside our docker container. If you are using RAPIDS\u2019 docker container and Docker-for-mac or Docker-for-Windows 18.03+, you can connect to a MySQL database in your host machine using host.docker.internal instead of 127.0.0.1 or localhost . In a Linux host, you need to run our docker container using docker run --network=\"host\" -d moshiresearch/rapids:latest and then 127.0.0.1 will point to your host machine. aware_csv Key Description [FOLDER] Folder where you have to place a CSV file per phone sensor. Each file has to contain all the data from every participant you want to process. Fitbit Set [FITBIT_DATA_STREAMS][TYPE] to the Fitbit data stream you want to process (e.g. fitbitjson_mysql ) and configure its parameters (e.g. [DATABASE_GROUP] ). Ignore the parameters of the other streams you are not using (e.g. [FOLDER] of aware_csv ). Warning You will probably have to tell RAPIDS the name of the columns where you stored your Fitbit data. To do this, modify your chosen stream\u2019s format.yaml column mappings to match your raw data column names. FITBIT_DATA_STREAMS : USE : fitbitjson_mysql # AVAILABLE: fitbitjson_mysql : DATABASE_GROUP : MY_GROUP SLEEP_SUMMARY_LAST_NIGHT_END : 660 fitbitjson_csv : FOLDER : data/external/fitbit_csv SLEEP_SUMMARY_LAST_NIGHT_END : 660 fitbitparsed_mysql : DATABASE_GROUP : MY_GROUP SLEEP_SUMMARY_LAST_NIGHT_END : 660 fitbitparsed_csv : FOLDER : data/external/fitbit_csv SLEEP_SUMMARY_LAST_NIGHT_END : 660 fitbitjson_mysql This data stream processes Fitbit data inside a JSON column obtained from the Fitbit API and stored in a MySQL database. Read more about its column mappings and mutations in fitbitjson_mysql . Key Description [DATABASE_GROUP] A database credentials group. Read the instructions below to set it up [SLEEP_SUMMARY_LAST_NIGHT_END] Segments are assigned based on this parameter. Any sleep episodes that start between today\u2019s SLEEP_SUMMARY_LAST_NIGHT_END (LNE) and tomorrow\u2019s LNE are regarded as today\u2019s sleep episodes. While today\u2019s bedtime is based on today\u2019s sleep episodes, today\u2019s wake time is based on yesterday\u2019s sleep episodes. Setting up a DATABASE_GROUP and its connection credentials. If you haven\u2019t done so, create an empty file called credentials.yaml in your RAPIDS root directory: Add the following lines to credentials.yaml and replace your database-specific credentials (user, password, host, and database): MY_GROUP : database : MY_DATABASE host : MY_HOST password : MY_PASSWORD port : 3306 user : MY_USER Notes The label [MY_GROUP] is arbitrary but it has to match the [DATABASE_GROUP] attribute of the data stream you choose to use. Indentation matters You can have more than one credentials group in credentials.yaml Upgrading from ./.env from RAPIDS 0.x In RAPIDS versions 0.x, database credentials were stored in a ./.env file. If you are migrating from that type of file, you have two options: Migrate your credentials by hand: change .env format [ MY_GROUP ] user=MY_USER password=MY_PASSWORD host=MY_HOST port=3306 database=MY_DATABASE to credentials.yaml format MY_GROUP : user : MY_USER password : MY_PASSWORD host : MY_HOST port : 3306 database : MY_DATABASE Use the migration script we provide (make sure your conda environment is active): python tools / update_format_env . py Connecting to localhost (host machine) from inside our docker container. If you are using RAPIDS\u2019 docker container and Docker-for-mac or Docker-for-Windows 18.03+, you can connect to a MySQL database in your host machine using host.docker.internal instead of 127.0.0.1 or localhost . In a Linux host, you need to run our docker container using docker run --network=\"host\" -d moshiresearch/rapids:latest and then 127.0.0.1 will point to your host machine. fitbitjson_csv This data stream processes Fitbit data inside a JSON column obtained from the Fitbit API and stored in a CSV file. Read more about its column mappings and mutations in fitbitjson_csv . Key Description [FOLDER] Folder where you have to place a CSV file per Fitbit sensor. Each file has to contain all the data from every participant you want to process. [SLEEP_SUMMARY_LAST_NIGHT_END] Segments are assigned based on this parameter. Any sleep episodes that start between today\u2019s SLEEP_SUMMARY_LAST_NIGHT_END (LNE) and tomorrow\u2019s LNE are regarded as today\u2019s sleep episodes. While today\u2019s bedtime is based on today\u2019s sleep episodes, today\u2019s wake time is based on yesterday\u2019s sleep episodes. fitbitparsed_mysql This data stream process Fitbit data stored in multiple columns after being parsed from the JSON column returned by Fitbit API and stored in a MySQL database. Read more about its column mappings and mutations in fitbitparsed_mysql . Key Description [DATABASE_GROUP] A database credentials group. Read the instructions below to set it up [SLEEP_SUMMARY_LAST_NIGHT_END] Segments are assigned based on this parameter. Any sleep episodes that start between today\u2019s SLEEP_SUMMARY_LAST_NIGHT_END (LNE) and tomorrow\u2019s LNE are regarded as today\u2019s sleep episodes. While today\u2019s bedtime is based on today\u2019s sleep episodes, today\u2019s wake time is based on yesterday\u2019s sleep episodes. Setting up a DATABASE_GROUP and its connection credentials. If you haven\u2019t done so, create an empty file called credentials.yaml in your RAPIDS root directory: Add the following lines to credentials.yaml and replace your database-specific credentials (user, password, host, and database): MY_GROUP : database : MY_DATABASE host : MY_HOST password : MY_PASSWORD port : 3306 user : MY_USER Notes The label [MY_GROUP] is arbitrary but it has to match the [DATABASE_GROUP] attribute of the data stream you choose to use. Indentation matters You can have more than one credentials group in credentials.yaml Upgrading from ./.env from RAPIDS 0.x In RAPIDS versions 0.x, database credentials were stored in a ./.env file. If you are migrating from that type of file, you have two options: Migrate your credentials by hand: change .env format [ MY_GROUP ] user=MY_USER password=MY_PASSWORD host=MY_HOST port=3306 database=MY_DATABASE to credentials.yaml format MY_GROUP : user : MY_USER password : MY_PASSWORD host : MY_HOST port : 3306 database : MY_DATABASE Use the migration script we provide (make sure your conda environment is active): python tools / update_format_env . py Connecting to localhost (host machine) from inside our docker container. If you are using RAPIDS\u2019 docker container and Docker-for-mac or Docker-for-Windows 18.03+, you can connect to a MySQL database in your host machine using host.docker.internal instead of 127.0.0.1 or localhost . In a Linux host, you need to run our docker container using docker run --network=\"host\" -d moshiresearch/rapids:latest and then 127.0.0.1 will point to your host machine. fitbitparsed_csv This data stream process Fitbit data stored in multiple columns (plain text) after being parsed from the JSON column returned by Fitbit API and stored in a CSV file. Read more about its column mappings and mutations in fitbitparsed_csv . Key Description [FOLDER] Folder where you have to place a CSV file per Fitbit sensor. Each file has to contain all the data from every participant you want to process. [SLEEP_SUMMARY_LAST_NIGHT_END] Segments are assigned based on this parameter. Any sleep episodes that start between today\u2019s SLEEP_SUMMARY_LAST_NIGHT_END (LNE) and tomorrow\u2019s LNE are regarded as today\u2019s sleep episodes. While today\u2019s bedtime is based on today\u2019s sleep episodes, today\u2019s wake time is based on yesterday\u2019s sleep episodes. Empatica Set [USE] to the Empatica data stream you want to use; see the table in introduction to data streams . Configure any parameters as indicated below. EMPATICA_DATA_STREAMS : USE : empatica_zip # AVAILABLE: empatica_zip : FOLDER : data/external/empatica empatica_zip Key Description [FOLDER] The relative path to a folder containing one subfolder per participant. The name of a participant folder should match their device_id assigned in their participant file. Each participant folder can have one or more zip files with any name; in other words, the sensor data in those zip files belong to a single participant. The zip files are automatically generated by Empatica and have a CSV file per sensor ( ACC , HR , TEMP , EDA , BVP , TAGS ). All CSV files of the same type contained in one or more zip files are uncompressed, parsed, sorted by timestamp, and joined together. Example of an EMPATICA FOLDER In the file tree below, we want to process three participants\u2019 data: p01 , p02 , and p03 . p01 has two zip files, p02 has only one zip file, and p03 has three zip files. Each zip has a CSV file per sensor that is joined together and processed by RAPIDS. data/ # this folder exists in the root RAPIDS folder external/ empatica/ p01/ file1.zip file2.zip p02/ aaaa.zip p03/ t1.zip t2.zip t3.zip","title":"Data Stream Configuration"},{"location":"setup/configuration/#sensor-and-features-to-process","text":"Finally, you need to modify the config.yaml section of the sensors you want to extract behavioral features from. All sensors follow the same naming nomenclature ( DEVICE_SENSOR ) and parameter structure which we explain in the Behavioral Features Introduction . Done Head over to Execution to learn how to execute RAPIDS.","title":"Sensor and Features to Process"},{"location":"setup/execution/","text":"Execution \u00b6 After you have installed and configured RAPIDS, use the following command to execute it. ./rapids -j1 Ready to extract behavioral features If you are ready to extract features head over to the Behavioral Features Introduction We wrap Snakemake The script ./rapids is a wrapper around Snakemake so you can pass any parameters that Snakemake accepts (e.g. -j1 ). Updating RAPIDS output after modifying config.yaml Any changes to the config.yaml file will be applied automatically and only the relevant files will be updated. This means that after modifying the features list for PHONE_MESSAGE for example, RAPIDS will execute the script that computes MESSAGES features and update its output file. Multi-core You can run RAPIDS over multiple cores by modifying the -j argument (e.g. use -j8 to use 8 cores). However , take into account that this means multiple sensor datasets for different participants will be loaded in memory at the same time. If RAPIDS crashes because it ran out of memory, reduce the number of cores and try again. As reference, we have run RAPIDS over 12 cores and 32 Gb of RAM without problems for a study with 200 participants with 14 days of low-frequency smartphone data (no accelerometer, gyroscope, or magnetometer). Deleting RAPIDS output If you want to delete all the output files RAPIDS produces, you can execute the following command: ./rapids -j1 --delete-all-output Forcing a complete rerun or updating your raw data in RAPIDS If you want to update your raw data or rerun the whole pipeline from scratch, run the following commands: ./rapids -j1 --delete-all-output ./rapids -j1","title":"Execution"},{"location":"setup/execution/#execution","text":"After you have installed and configured RAPIDS, use the following command to execute it. ./rapids -j1 Ready to extract behavioral features If you are ready to extract features head over to the Behavioral Features Introduction We wrap Snakemake The script ./rapids is a wrapper around Snakemake so you can pass any parameters that Snakemake accepts (e.g. -j1 ). Updating RAPIDS output after modifying config.yaml Any changes to the config.yaml file will be applied automatically and only the relevant files will be updated. This means that after modifying the features list for PHONE_MESSAGE for example, RAPIDS will execute the script that computes MESSAGES features and update its output file. Multi-core You can run RAPIDS over multiple cores by modifying the -j argument (e.g. use -j8 to use 8 cores). However , take into account that this means multiple sensor datasets for different participants will be loaded in memory at the same time. If RAPIDS crashes because it ran out of memory, reduce the number of cores and try again. As reference, we have run RAPIDS over 12 cores and 32 Gb of RAM without problems for a study with 200 participants with 14 days of low-frequency smartphone data (no accelerometer, gyroscope, or magnetometer). Deleting RAPIDS output If you want to delete all the output files RAPIDS produces, you can execute the following command: ./rapids -j1 --delete-all-output Forcing a complete rerun or updating your raw data in RAPIDS If you want to update your raw data or rerun the whole pipeline from scratch, run the following commands: ./rapids -j1 --delete-all-output ./rapids -j1","title":"Execution"},{"location":"setup/installation/","text":"Installation \u00b6 You can install RAPIDS using Docker (the fastest), or native instructions for MacOS and Linux (Ubuntu). Windows is supported through Docker or WSL. Docker Install Docker Pull our RAPIDS container docker pull moshiresearch/rapids:latest Run RAPIDS' container (after this step is done you should see a prompt in the main RAPIDS folder with its python environment active) docker run -it moshiresearch/rapids:latest Pull the latest version of RAPIDS git pull Make RAPIDS script executable chmod +x rapids Check that RAPIDS is working ./rapids -j1 Optional . You can edit RAPIDS files with vim but we recommend using Visual Studio Code and its Remote Containers extension How to configure Remote Containers extension Make sure RAPIDS container is running Install the Remote - Containers extension Go to the Remote Explorer panel on the left hand sidebar On the top right dropdown menu choose Containers Double click on the moshiresearch/rapids container in the CONTAINERS tree A new VS Code session should open on RAPIDS main folder inside the container. Warning If you installed RAPIDS using Docker for Windows on Windows 10, the container will have limits on the amount of RAM it can use. If you find that RAPIDS crashes due to running out of memory, increase this limit. MacOS We tested these instructions in Catalina and Big Sur M1 Macs RAPIDS can run on M1 Macs, the only changes as of Feb 21, 2021 are: R needs to be installed via brew under Rosetta (x86 arch) due to incompatibility issues with some R libraries. To do this, run your terminal via Rosetta , then proceed with the usual brew installation command. Use x86 brew to install R and restore RAPIDS\u2019 packages ( snakemake -j1 renv_install & snakemake -j1 renv_restore ). There is a bug related to timezone codes. We set the correct TZ_DIR in renv/activate.R (line #19) Sys.setenv(\"TZDIR\" = file.path(R.home(), \"share\", \"zoneinfo\")) (RAPIDS does this automatically). Install brew Install MySQL brew install mysql brew services start mysql Install R 4.0, pandoc and rmarkdown. If you have other instances of R, we recommend uninstalling them brew install r brew install pandoc Rscript --vanilla -e 'install.packages(\"rmarkdown\", repos=\"http://cran.us.r-project.org\")' Install miniconda (restart your terminal afterwards) brew cask install miniconda conda init zsh # (or conda init bash) Clone our repo git clone https://github.com/carissalow/rapids Create a python virtual environment cd rapids conda env create -f environment.yml -n rapids conda activate rapids Install R packages and virtual environment: snakemake -j1 renv_install snakemake -j1 renv_restore Note This step could take several minutes to complete, especially if you have less than 3Gb of RAM or packages need to be compiled from source. Please be patient and let it run until completion. Make RAPIDS script executable chmod +x rapids Check that RAPIDS is working ./rapids -j1 Ubuntu We tested RAPIDS on Ubuntu 18.04 & 20.04. Note that the necessary Python and R packages are available in other Linux distributions, so if you decide to give it a try, let us know and we can update these docs. Install dependencies sudo apt install libcurl4-openssl-dev sudo apt install libssl-dev sudo apt install libxml2-dev sudo apt install libglpk40 Install MySQL sudo apt install libmysqlclient-dev sudo apt install mysql-server Add key for R\u2019s repository. sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9 Add R\u2019s repository Ubuntu 18.04 Bionic sudo add-apt-repository 'deb https://cloud.r-project.org/bin/linux/ubuntu bionic-cran40/' Ubuntu 20.04 Focal sudo add-apt-repository 'deb https://cloud.r-project.org/bin/linux/ubuntu focal-cran40/' Install R 4.0. If you have other instances of R, we recommend uninstalling them sudo apt update sudo apt install r-base Install Pandoc and rmarkdown sudo apt install pandoc Rscript --vanilla -e 'install.packages(\"rmarkdown\", repos=\"http://cran.us.r-project.org\")' Install git sudo apt install git Install miniconda Restart your current shell Clone our repo: git clone https://github.com/carissalow/rapids Create a python virtual environment: cd rapids conda env create -f environment.yml -n MY_ENV_NAME conda activate MY_ENV_NAME Install the R virtual environment management package (renv) snakemake -j1 renv_install Restore the R virtual environment Ubuntu 18.04 Bionic (fast) Run the following command to restore the R virtual environment using RSPM binaries R -e 'renv::restore(repos = c(CRAN = \"https://packagemanager.rstudio.com/all/__linux__/bionic/latest\"))' Ubuntu 20.04 Focal (fast) Run the following command to restore the R virtual environment using RSPM binaries R -e 'renv::restore(repos = c(CRAN = \"https://packagemanager.rstudio.com/all/__linux__/focal/latest\"))' Ubuntu (slow) If the fast installation command failed for some reason, you can restore the R virtual environment from source: R -e 'renv::restore()' Note This step could take several minutes to complete, especially if you have less than 3Gb of RAM or packages need to be compiled from source. Please be patient and let it run until completion. Make RAPIDS script executable chmod +x rapids Check that RAPIDS is working ./rapids -j1 Windows There are several options varying in complexity: You can use our Docker instructions (tested) You can use our Ubuntu 20.04 instructions on WSL2 (not tested but it will likely work) Native installation (experimental). If you would like to contribute to RAPIDS you could try to install MySQL, miniconda, Python, and R 4.0+ in Windows and restore the Python and R virtual environments using steps 6 and 7 of the instructions for Mac. You can get in touch if you would like to discuss this with the team.","title":"Installation"},{"location":"setup/installation/#installation","text":"You can install RAPIDS using Docker (the fastest), or native instructions for MacOS and Linux (Ubuntu). Windows is supported through Docker or WSL. Docker Install Docker Pull our RAPIDS container docker pull moshiresearch/rapids:latest Run RAPIDS' container (after this step is done you should see a prompt in the main RAPIDS folder with its python environment active) docker run -it moshiresearch/rapids:latest Pull the latest version of RAPIDS git pull Make RAPIDS script executable chmod +x rapids Check that RAPIDS is working ./rapids -j1 Optional . You can edit RAPIDS files with vim but we recommend using Visual Studio Code and its Remote Containers extension How to configure Remote Containers extension Make sure RAPIDS container is running Install the Remote - Containers extension Go to the Remote Explorer panel on the left hand sidebar On the top right dropdown menu choose Containers Double click on the moshiresearch/rapids container in the CONTAINERS tree A new VS Code session should open on RAPIDS main folder inside the container. Warning If you installed RAPIDS using Docker for Windows on Windows 10, the container will have limits on the amount of RAM it can use. If you find that RAPIDS crashes due to running out of memory, increase this limit. MacOS We tested these instructions in Catalina and Big Sur M1 Macs RAPIDS can run on M1 Macs, the only changes as of Feb 21, 2021 are: R needs to be installed via brew under Rosetta (x86 arch) due to incompatibility issues with some R libraries. To do this, run your terminal via Rosetta , then proceed with the usual brew installation command. Use x86 brew to install R and restore RAPIDS\u2019 packages ( snakemake -j1 renv_install & snakemake -j1 renv_restore ). There is a bug related to timezone codes. We set the correct TZ_DIR in renv/activate.R (line #19) Sys.setenv(\"TZDIR\" = file.path(R.home(), \"share\", \"zoneinfo\")) (RAPIDS does this automatically). Install brew Install MySQL brew install mysql brew services start mysql Install R 4.0, pandoc and rmarkdown. If you have other instances of R, we recommend uninstalling them brew install r brew install pandoc Rscript --vanilla -e 'install.packages(\"rmarkdown\", repos=\"http://cran.us.r-project.org\")' Install miniconda (restart your terminal afterwards) brew cask install miniconda conda init zsh # (or conda init bash) Clone our repo git clone https://github.com/carissalow/rapids Create a python virtual environment cd rapids conda env create -f environment.yml -n rapids conda activate rapids Install R packages and virtual environment: snakemake -j1 renv_install snakemake -j1 renv_restore Note This step could take several minutes to complete, especially if you have less than 3Gb of RAM or packages need to be compiled from source. Please be patient and let it run until completion. Make RAPIDS script executable chmod +x rapids Check that RAPIDS is working ./rapids -j1 Ubuntu We tested RAPIDS on Ubuntu 18.04 & 20.04. Note that the necessary Python and R packages are available in other Linux distributions, so if you decide to give it a try, let us know and we can update these docs. Install dependencies sudo apt install libcurl4-openssl-dev sudo apt install libssl-dev sudo apt install libxml2-dev sudo apt install libglpk40 Install MySQL sudo apt install libmysqlclient-dev sudo apt install mysql-server Add key for R\u2019s repository. sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9 Add R\u2019s repository Ubuntu 18.04 Bionic sudo add-apt-repository 'deb https://cloud.r-project.org/bin/linux/ubuntu bionic-cran40/' Ubuntu 20.04 Focal sudo add-apt-repository 'deb https://cloud.r-project.org/bin/linux/ubuntu focal-cran40/' Install R 4.0. If you have other instances of R, we recommend uninstalling them sudo apt update sudo apt install r-base Install Pandoc and rmarkdown sudo apt install pandoc Rscript --vanilla -e 'install.packages(\"rmarkdown\", repos=\"http://cran.us.r-project.org\")' Install git sudo apt install git Install miniconda Restart your current shell Clone our repo: git clone https://github.com/carissalow/rapids Create a python virtual environment: cd rapids conda env create -f environment.yml -n MY_ENV_NAME conda activate MY_ENV_NAME Install the R virtual environment management package (renv) snakemake -j1 renv_install Restore the R virtual environment Ubuntu 18.04 Bionic (fast) Run the following command to restore the R virtual environment using RSPM binaries R -e 'renv::restore(repos = c(CRAN = \"https://packagemanager.rstudio.com/all/__linux__/bionic/latest\"))' Ubuntu 20.04 Focal (fast) Run the following command to restore the R virtual environment using RSPM binaries R -e 'renv::restore(repos = c(CRAN = \"https://packagemanager.rstudio.com/all/__linux__/focal/latest\"))' Ubuntu (slow) If the fast installation command failed for some reason, you can restore the R virtual environment from source: R -e 'renv::restore()' Note This step could take several minutes to complete, especially if you have less than 3Gb of RAM or packages need to be compiled from source. Please be patient and let it run until completion. Make RAPIDS script executable chmod +x rapids Check that RAPIDS is working ./rapids -j1 Windows There are several options varying in complexity: You can use our Docker instructions (tested) You can use our Ubuntu 20.04 instructions on WSL2 (not tested but it will likely work) Native installation (experimental). If you would like to contribute to RAPIDS you could try to install MySQL, miniconda, Python, and R 4.0+ in Windows and restore the Python and R virtual environments using steps 6 and 7 of the instructions for Mac. You can get in touch if you would like to discuss this with the team.","title":"Installation"},{"location":"setup/overview/","text":"Overview \u00b6 Let\u2019s review some key concepts we use throughout these docs: Definition Description Device A mobile or wearable device, like smartphones, Fitbit wrist bands, Oura Rings, etc. Sensor A physical or digital module builtin in a device that produces a data stream. For example, a smartphone\u2019s accelerometer or screen. Data Stream Set of sensor data collected using a specific device with a particular ** format** and stored in a specific container . For example, smartphone (device) data collected with the AWARE Framework (format) and stored in a MySQL database (container). Data Stream Format Sensor data produced by a data stream have columns with specific names and types. RAPIDS can process a data stream using a format.yaml file that describes the raw data columns and any necessary transformations. Data Stream Container Sensor data produced by a data stream can be stored in a database, electronic files, or arbitrary electronic containers. RAPIDS can pull (download) the data from a stream using a container script implemented in R or Python. Participant A person that took part in a monitoring study Behavioral feature A metric computed from raw sensor data quantifying the behavior of a participant. For example, time spent at home calculated from location data. These are also known as digital biomarkers Time segment Time segments (or epochs) are the time windows on which RAPIDS extracts behavioral features. For example, you might want to compute participants\u2019 time at home every morning or only during weekends. You define time segments in a CSV file that RAPIDS processes. Time zone A string like America/New_York that represents a time zone where a device logged data. You can process data collected in single or multiple time zones for every participant. Feature Provider A script that creates behavioral features for a specific sensor. Providers are created by the core RAPIDS team or by the community, which are named after its first author like [PHONE_LOCATIONS][DORYAB] . config.yaml A YAML file where you can modify parameters to process data streams and behavioral features. This is the heart of RAPIDS and the file that you will change the most. credentials.yaml A YAML file where you can define credential groups (user, password, host, etc.) if your data stream needs to connect to a database or Web API Participant file(s) A YAML file that links one or more smartphone or wearable devices used by a single participant. RAPIDS needs one file per participant. What can I do with RAPIDS? Extract behavioral features from smartphone, Fitbit, and Empatica\u2019s supported data streams Add your own behavioral features (we can include them in RAPIDS if you want to share them with the community) Add support for new data streams if yours cannot be processed by RAPIDS yet Create visualizations for data quality control and feature inspection Extending RAPIDS to organize your analysis and publish a code repository along with your code Hint We recommend you follow the Minimal Example tutorial to get familiar with RAPIDS In order to follow any of the previous tutorials, you will have to Install , Configure , and learn how to Execute RAPIDS. Open a new discussion in Github if you have any questions and open an issue to report any bugs. Frequently Asked Questions \u00b6 General \u00b6 What exactly is RAPIDS? RAPIDS is a group of configuration files and R and Python scripts executed by Snakemake . You can get a copy of RAPIDS by cloning our Github repository. RAPIDS is not a web application or server; all the processing is done in your laptop, server, or computer cluster. How does RAPIDS work? You will most of the time only have to modify configuration files in YAML format ( config.yaml , credentials.yaml , and participant files pxx.yaml ), and in CSV format (time zones and time segments). RAPIDS pulls data from different data containers and processes it in steps. The input/output of each stage is saved as a CSV file for inspection; you can check the files created for each sensor on its documentation page. All data is stored in data/ , and all processing Python and R scripts are stored in src/ . User and File interactions in RAPIDS In the figure below, we represent the interactions between users and files. After a user modifies the configuration files mentioned above, the Snakefile file will search for and execute the Snakemake rules that contain the Python or R scripts necessary to generate or update the required output files (behavioral features, plots, etc.). Interaction diagram between the user, and important files in RAPIDS Data flow in RAPIDS In the figure below, we represent the flow of data in RAPIDS. In broad terms, smartphone and wearable devices log data streams with a certain format to a data container (database, file, etc.). RAPIDS can connect to these containers if it has a format.yaml and a container.[R|py] script used to pull the correct data and mutate it to comply with RAPIDS\u2019 internal data representation. Once the data stream is in RAPIDS, it goes through some basic transformations (scripts), one that assigns a time segment and a time zone to each data row, and another one that creates \u201cepisodes\u201d of data for some sensors that need it (like screen, battery, activity recognition, and sleep intraday data). After this, RAPIDS executes the requested PROVIDER script that computes behavioral features per time segment instance. After every feature is computed, they are joined per sensor, per participant, and study. Visualizations are built based on raw data or based on calculated features. Data stream flow in RAPIDS Is my data private? Absolutely, you are processing your data with your own copy of RAPIDS in your laptop, server, or computer cluster, so neither we nor anyone else can access your datasets. Do I need to have coding skills to use RAPIDS? If you want to extract the behavioral features or visualizations that RAPIDS offers out of the box, the answer is no. However, you need to be comfortable running commands in your terminal and familiar with editing YAML files and CSV files. If you want to add support for new data streams or behavioral features, you need to be familiar with R or Python. Is RAPIDS open-source or free? Yes, RAPIDS is both open-source and free. How do I cite RAPIDS? Please refer to our Citation guide ; depending on what parts of RAPIDS you used, we also ask you to cite the work of other authors that shared their work. I have a lot of data, can RAPIDS handle it/ is RAPIDS fast enough? Yes, we use Snakemake under the hood, so you can automatically distribute RAPIDS execution over multiple cores or clusters . RAPIDS processes data per sensor and participant, so it can take advantage of this parallel processing. What are the advantages of using RAPIDS over implementing my own analysis code? We believe RAPIDS can benefit your analysis in several ways: RAPIDS has more than 250 behavioral features available, many of them tested and used by other researchers. RAPIDS can extract features in dynamic time segments (for example, every x minutes, x hours, x days, x weeks, x months, etc.). This is handy because you don\u2019t have to deal with time zones, daylight saving changes, or date arithmetic. Your analysis is less prone to errors. Every participant sensor dataset is analyzed in the same way and isolated from each other. If you have lots of data, out-of-the-box parallel execution will speed up your analysis, and if your computer crashes, RAPIDS will start from where it left off. You can publish your analysis code along with your papers and be sure it will run exactly as it does on your computer. You can still add your own behavioral features and data streams if you need to, and the community will be able to reuse your work. Data Streams \u00b6 Can I process smartphone data collected with Beiwe, PurpleRobot, or app X? Yes, but you need to add a new data stream to RAPIDS (a new format.yaml and container script in R or Python). Follow this tutorial . Open a new discussion in Github if you have any questions. If you do so, let us know so we can integrate your work into RAPIDS. Can I process data from Oura Rings, Actigraphs, or wearable X? The only wearables we support at the moment are Empatica and Fitbit. However, get in touch if you need to process data from a different wearable. We have limited resources, so we add support for additional devices on an as-needed basis, but we would be happy to collaborate. Open a new discussion in Github if you have any questions. Can I process smartphone or wearable data stored in PostgreSQL, Oracle, SQLite, CSV files, or data container X? Yes, but you need to add a new data stream to RAPIDS (a new format.yaml and container script in R or Python). Follow this tutorial . If you are processing data streams we already support like AWARE, Fitbit, or Empatica and are just connecting to a different container, you can reuse their format.yaml and only implement a new container script. Open a new discussion in Github if you have any questions. If you do so, let us know so we can integrate your work into RAPIDS. I have participants that live in different time zones and some that travel; can RAPIDS handle this? Yes, RAPIDS can handle single or multiple timezones per participant. You can use time zone data collected by smartphones or collected by hand. Some of my participants used more than one device during my study; can RAPIDS handle this? Yes, you can link more than one smartphone or wearable device to a single participant. RAPIDS will merge them and sort them automatically. Some of my participants switched from Android to iOS or vice-versa during my study; can RAPIDS handle this? Yes, data from multiple smartphones can be linked to a single participant. All iOS data is converted to Android data before merging it. Extending RAPIDS \u00b6 Can I add my own behavioral features/digital biomarkers? Yes, you can implement your own features in R or Python following this tutorial Can I extract behavioral features based on two or more sensors? Yes, we do this for PHONE_DATA_YIELD (combines all phone sensors), PHONE_LOCATIONS (combines location and data yield data), PHONE_APPLICATIONS_BACKGROUND (combines screen and app usage data), and FITBIT_INTRADAY_STEPS (combines Fitbit and sleep and step data). However, we haven\u2019t come up with a user-friendly way to configure this, and currently, we join sensors on a case-by-case basis. This is mainly because not enough users have needed this functionality so far. Get in touch, and we can set it up together; the more use cases we are aware of, the easier it will be to integrate this into RAPIDS. I know how to program in Python or R but not both. Can I still use or extend RAPIDS? Yes, you don\u2019t need to write any code to use RAPIDS out of the box. If you need to add support for new data streams or behavioral features you can use scripts in either language. I have scripts that clean raw data from X sensor, can I use them with RAPIDS? Yes, you can add them as a [MUTATION][SCRIPT] in the format.yaml of the data stream you are using. You will add a main function that will receive a data frame with the raw data for that sensor that, in turn, will be used to compute behavioral features.","title":"Overview"},{"location":"setup/overview/#overview","text":"Let\u2019s review some key concepts we use throughout these docs: Definition Description Device A mobile or wearable device, like smartphones, Fitbit wrist bands, Oura Rings, etc. Sensor A physical or digital module builtin in a device that produces a data stream. For example, a smartphone\u2019s accelerometer or screen. Data Stream Set of sensor data collected using a specific device with a particular ** format** and stored in a specific container . For example, smartphone (device) data collected with the AWARE Framework (format) and stored in a MySQL database (container). Data Stream Format Sensor data produced by a data stream have columns with specific names and types. RAPIDS can process a data stream using a format.yaml file that describes the raw data columns and any necessary transformations. Data Stream Container Sensor data produced by a data stream can be stored in a database, electronic files, or arbitrary electronic containers. RAPIDS can pull (download) the data from a stream using a container script implemented in R or Python. Participant A person that took part in a monitoring study Behavioral feature A metric computed from raw sensor data quantifying the behavior of a participant. For example, time spent at home calculated from location data. These are also known as digital biomarkers Time segment Time segments (or epochs) are the time windows on which RAPIDS extracts behavioral features. For example, you might want to compute participants\u2019 time at home every morning or only during weekends. You define time segments in a CSV file that RAPIDS processes. Time zone A string like America/New_York that represents a time zone where a device logged data. You can process data collected in single or multiple time zones for every participant. Feature Provider A script that creates behavioral features for a specific sensor. Providers are created by the core RAPIDS team or by the community, which are named after its first author like [PHONE_LOCATIONS][DORYAB] . config.yaml A YAML file where you can modify parameters to process data streams and behavioral features. This is the heart of RAPIDS and the file that you will change the most. credentials.yaml A YAML file where you can define credential groups (user, password, host, etc.) if your data stream needs to connect to a database or Web API Participant file(s) A YAML file that links one or more smartphone or wearable devices used by a single participant. RAPIDS needs one file per participant. What can I do with RAPIDS? Extract behavioral features from smartphone, Fitbit, and Empatica\u2019s supported data streams Add your own behavioral features (we can include them in RAPIDS if you want to share them with the community) Add support for new data streams if yours cannot be processed by RAPIDS yet Create visualizations for data quality control and feature inspection Extending RAPIDS to organize your analysis and publish a code repository along with your code Hint We recommend you follow the Minimal Example tutorial to get familiar with RAPIDS In order to follow any of the previous tutorials, you will have to Install , Configure , and learn how to Execute RAPIDS. Open a new discussion in Github if you have any questions and open an issue to report any bugs.","title":"Overview"},{"location":"setup/overview/#frequently-asked-questions","text":"","title":"Frequently Asked Questions"},{"location":"setup/overview/#general","text":"What exactly is RAPIDS? RAPIDS is a group of configuration files and R and Python scripts executed by Snakemake . You can get a copy of RAPIDS by cloning our Github repository. RAPIDS is not a web application or server; all the processing is done in your laptop, server, or computer cluster. How does RAPIDS work? You will most of the time only have to modify configuration files in YAML format ( config.yaml , credentials.yaml , and participant files pxx.yaml ), and in CSV format (time zones and time segments). RAPIDS pulls data from different data containers and processes it in steps. The input/output of each stage is saved as a CSV file for inspection; you can check the files created for each sensor on its documentation page. All data is stored in data/ , and all processing Python and R scripts are stored in src/ . User and File interactions in RAPIDS In the figure below, we represent the interactions between users and files. After a user modifies the configuration files mentioned above, the Snakefile file will search for and execute the Snakemake rules that contain the Python or R scripts necessary to generate or update the required output files (behavioral features, plots, etc.). Interaction diagram between the user, and important files in RAPIDS Data flow in RAPIDS In the figure below, we represent the flow of data in RAPIDS. In broad terms, smartphone and wearable devices log data streams with a certain format to a data container (database, file, etc.). RAPIDS can connect to these containers if it has a format.yaml and a container.[R|py] script used to pull the correct data and mutate it to comply with RAPIDS\u2019 internal data representation. Once the data stream is in RAPIDS, it goes through some basic transformations (scripts), one that assigns a time segment and a time zone to each data row, and another one that creates \u201cepisodes\u201d of data for some sensors that need it (like screen, battery, activity recognition, and sleep intraday data). After this, RAPIDS executes the requested PROVIDER script that computes behavioral features per time segment instance. After every feature is computed, they are joined per sensor, per participant, and study. Visualizations are built based on raw data or based on calculated features. Data stream flow in RAPIDS Is my data private? Absolutely, you are processing your data with your own copy of RAPIDS in your laptop, server, or computer cluster, so neither we nor anyone else can access your datasets. Do I need to have coding skills to use RAPIDS? If you want to extract the behavioral features or visualizations that RAPIDS offers out of the box, the answer is no. However, you need to be comfortable running commands in your terminal and familiar with editing YAML files and CSV files. If you want to add support for new data streams or behavioral features, you need to be familiar with R or Python. Is RAPIDS open-source or free? Yes, RAPIDS is both open-source and free. How do I cite RAPIDS? Please refer to our Citation guide ; depending on what parts of RAPIDS you used, we also ask you to cite the work of other authors that shared their work. I have a lot of data, can RAPIDS handle it/ is RAPIDS fast enough? Yes, we use Snakemake under the hood, so you can automatically distribute RAPIDS execution over multiple cores or clusters . RAPIDS processes data per sensor and participant, so it can take advantage of this parallel processing. What are the advantages of using RAPIDS over implementing my own analysis code? We believe RAPIDS can benefit your analysis in several ways: RAPIDS has more than 250 behavioral features available, many of them tested and used by other researchers. RAPIDS can extract features in dynamic time segments (for example, every x minutes, x hours, x days, x weeks, x months, etc.). This is handy because you don\u2019t have to deal with time zones, daylight saving changes, or date arithmetic. Your analysis is less prone to errors. Every participant sensor dataset is analyzed in the same way and isolated from each other. If you have lots of data, out-of-the-box parallel execution will speed up your analysis, and if your computer crashes, RAPIDS will start from where it left off. You can publish your analysis code along with your papers and be sure it will run exactly as it does on your computer. You can still add your own behavioral features and data streams if you need to, and the community will be able to reuse your work.","title":"General"},{"location":"setup/overview/#data-streams","text":"Can I process smartphone data collected with Beiwe, PurpleRobot, or app X? Yes, but you need to add a new data stream to RAPIDS (a new format.yaml and container script in R or Python). Follow this tutorial . Open a new discussion in Github if you have any questions. If you do so, let us know so we can integrate your work into RAPIDS. Can I process data from Oura Rings, Actigraphs, or wearable X? The only wearables we support at the moment are Empatica and Fitbit. However, get in touch if you need to process data from a different wearable. We have limited resources, so we add support for additional devices on an as-needed basis, but we would be happy to collaborate. Open a new discussion in Github if you have any questions. Can I process smartphone or wearable data stored in PostgreSQL, Oracle, SQLite, CSV files, or data container X? Yes, but you need to add a new data stream to RAPIDS (a new format.yaml and container script in R or Python). Follow this tutorial . If you are processing data streams we already support like AWARE, Fitbit, or Empatica and are just connecting to a different container, you can reuse their format.yaml and only implement a new container script. Open a new discussion in Github if you have any questions. If you do so, let us know so we can integrate your work into RAPIDS. I have participants that live in different time zones and some that travel; can RAPIDS handle this? Yes, RAPIDS can handle single or multiple timezones per participant. You can use time zone data collected by smartphones or collected by hand. Some of my participants used more than one device during my study; can RAPIDS handle this? Yes, you can link more than one smartphone or wearable device to a single participant. RAPIDS will merge them and sort them automatically. Some of my participants switched from Android to iOS or vice-versa during my study; can RAPIDS handle this? Yes, data from multiple smartphones can be linked to a single participant. All iOS data is converted to Android data before merging it.","title":"Data Streams"},{"location":"setup/overview/#extending-rapids","text":"Can I add my own behavioral features/digital biomarkers? Yes, you can implement your own features in R or Python following this tutorial Can I extract behavioral features based on two or more sensors? Yes, we do this for PHONE_DATA_YIELD (combines all phone sensors), PHONE_LOCATIONS (combines location and data yield data), PHONE_APPLICATIONS_BACKGROUND (combines screen and app usage data), and FITBIT_INTRADAY_STEPS (combines Fitbit and sleep and step data). However, we haven\u2019t come up with a user-friendly way to configure this, and currently, we join sensors on a case-by-case basis. This is mainly because not enough users have needed this functionality so far. Get in touch, and we can set it up together; the more use cases we are aware of, the easier it will be to integrate this into RAPIDS. I know how to program in Python or R but not both. Can I still use or extend RAPIDS? Yes, you don\u2019t need to write any code to use RAPIDS out of the box. If you need to add support for new data streams or behavioral features you can use scripts in either language. I have scripts that clean raw data from X sensor, can I use them with RAPIDS? Yes, you can add them as a [MUTATION][SCRIPT] in the format.yaml of the data stream you are using. You will add a main function that will receive a data frame with the raw data for that sensor that, in turn, will be used to compute behavioral features.","title":"Extending RAPIDS"},{"location":"snippets/aware_format/","text":"If you collected sensor data with the vanilla (original) AWARE mobile clients, you shouldn\u2019t need to modify this format (described below). Remember that a format maps and transforms columns in your raw data stream to the mandatory columns RAPIDS needs . The yaml file that describes the format of this data stream is at: src/data/streams/aware_csv/format.yaml For some sensors, we need to transform iOS data into Android format; you can refer to OS complex mapping for learn how this works. Hint The mappings in this stream (RAPIDS/Stream) are the same names because AWARE data was the first stream RAPIDS supported, meaning that it considers AWARE column names the default. PHONE_ACCELEROMETER ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id DOUBLE_VALUES_0 double_values_0 DOUBLE_VALUES_1 double_values_1 DOUBLE_VALUES_2 double_values_2 MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS Same as ANDROID PHONE_ACTIVITY_RECOGNITION ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id ACTIVITY_NAME activity_name ACTIVITY_TYPE activity_type CONFIDENCE confidence MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id ACTIVITY_NAME FLAG_TO_MUTATE ACTIVITY_TYPE FLAG_TO_MUTATE CONFIDENCE FLAG_TO_MUTATE MUTATION COLUMN_MAPPINGS Script column Stream column ACTIVITIES activities CONFIDENCE confidence SCRIPTS src/data/streams/mutations/phone/aware/activity_recogniton_ios_unification.R Note For RAPIDS columns of ACTIVITY_NAME and ACTIVITY_TYPE : if stream\u2019s activities field is automotive, set ACTIVITY_NAME = in_vehicle and ACTIVITY_TYPE = 0 if stream\u2019s activities field is cycling, set ACTIVITY_NAME = on_bicycle and ACTIVITY_TYPE = 1 if stream\u2019s activities field is walking, set ACTIVITY_NAME = walking and ACTIVITY_TYPE = 7 if stream\u2019s activities field is running, set ACTIVITY_NAME = running and ACTIVITY_TYPE = 8 if stream\u2019s activities field is stationary, set ACTIVITY_NAME = still and ACTIVITY_TYPE = 3 if stream\u2019s activities field is unknown, set ACTIVITY_NAME = unknown and ACTIVITY_TYPE = 4 For RAPIDS CONFIDENCE column: if stream\u2019s confidence field is 0, set CONFIDENCE = 0 if stream\u2019s confidence field is 1, set CONFIDENCE = 50 if stream\u2019s confidence field is 2, set CONFIDENCE = 100 PHONE_APPLICATIONS_CRASHES ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id PACKAGE_NAME package_name APPLICATION_NAME application_name APPLICATION_VERSION application_version ERROR_SHORT error_short ERROR_LONG error_long ERROR_CONDITION error_condition IS_SYSTEM_APP is_system_app MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS This sensor is not supported by iOS devices. PHONE_APPLICATIONS_FOREGROUND ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id PACKAGE_NAME package_name APPLICATION_NAME application_name IS_SYSTEM_APP is_system_app MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS This sensor is not supported by iOS devices. PHONE_APPLICATIONS_NOTIFICATIONS ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id PACKAGE_NAME package_name APPLICATION_NAME application_name TEXT text SOUND sound VIBRATE vibrate DEFAULTS defaults FLAGS flags MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS This sensor is not supported by iOS devices. PHONE_BATTERY ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id BATTERY_STATUS battery_status BATTERY_LEVEL battery_level BATTERY_SCALE battery_scale MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS Client V1 RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id BATTERY_STATUS FLAG_TO_MUTATE BATTERY_LEVEL battery_level BATTERY_SCALE battery_scale MUTATION COLUMN_MAPPINGS Script column Stream column BATTERY_STATUS battery_status SCRIPTS src/data/streams/mutations/phone/aware/battery_ios_unification.R Note For RAPIDS BATTERY_STATUS column: if stream\u2019s battery_status field is 3, set BATTERY_STATUS = 5 (full status) if stream\u2019s battery_status field is 1, set BATTERY_STATUS = 3 (discharge) IOS Client V2 Same as ANDROID PHONE_BLUETOOTH ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id BT_ADDRESS bt_address BT_NAME bt_name BT_RSSI bt_rssi MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS Only old iOS versions supported this sensor (same mapping as Android). PHONE_CALLS ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id CALL_TYPE call_type CALL_DURATION call_duration TRACE trace MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id CALL_TYPE FLAG_TO_MUTATE CALL_DURATION call_duration TRACE trace MUTATION COLUMN_MAPPINGS Script column Stream column CALL_TYPE call_type SCRIPTS src/data/streams/mutations/phone/aware/calls_ios_unification.R Note We transform iOS call logs into Android\u2019s format. iOS stores call status: 1=incoming, 2=connected, 3=dialing, 4=disconnected, as opposed to Android\u2019s events: 1=incoming, 2=outgoing, 3=missed. We follow this algorithm to convert iOS call data (there are some inaccuracies in the way we handle sequences, see new rules below): Search for the disconnected (4) status as it is common to all calls Group all events that preceded every status 4 We convert every 1,2,4 (or 2,1,4) sequence to an incoming call We convert every 3,2,4 (or 2,3,4) sequence to an outgoing call We convert every 1,4 or 3,4 sequence to a missed call (either incoming or outgoing) We set the duration of the call to be the sum of every status (dialing/ringing to hangup) as opposed to the duration of the last status (pick up to hang up) Tested with an Android (OnePlus 7T) and an iPhone XR Call type Android (duration) iOS (duration) New Rule Outgoing missed ended by me 2 (0) 3,4 (0,X) 3,4 is converted to 2 with duration 0 Outgoing missed ended by them 2(0) 3,2,4 (0,X,X2) 3,2,4 is converted to 2 with duration X2* Incoming missed ended by me NA** 1,4 (0,X) 1,4 is converted to 3 with duration 0 Incoming missed ended by them 3(0) 1,4 (0,X) 1,4 is converted to 3 with duration 0 Outgoing answered 2(X excluding dialing time) 3,2,4 (0,X,X2) 3,2,4 is converted to 2 with duration X2 Incoming answered 1(X excluding dialing time) 1,2,4 (0,X,X2) 1,2,4 is converted to 1 with duration X2 .* There is no way to differentiate an outgoing missed call ended by them from an outgoing answered call because the phone goes directly to voice mail and it counts as call time (essentially the voice mail answered). .** Android does not record incoming missed calls ended by the participant, just those ended by the person calling or ignored by the participant. PHONE_CONVERSATION ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id DOUBLE_ENERGY double_energy INFERENCE inference DOUBLE_CONVO_START double_convo_start DOUBLE_CONVO_END double_convo_end MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id DOUBLE_ENERGY double_energy INFERENCE inference DOUBLE_CONVO_START FLAG_TO_MUTATE DOUBLE_CONVO_END FLAG_TO_MUTATE MUTATION COLUMN_MAPPINGS Script column Stream column DOUBLE_CONVO_START double_convo_start DOUBLE_CONVO_END double_convo_end SCRIPTS src/data/streams/mutations/phone/aware/conversation_ios_timestamp.R Note For RAPIDS columns of DOUBLE_CONVO_START and DOUBLE_CONVO_END : if stream\u2019s double_convo_start field is smaller than 9999999999, it is in seconds instead of milliseconds. Set DOUBLE_CONVO_START = 1000 * double_convo_start . if stream\u2019s double_convo_end field is smaller than 9999999999, it is in seconds instead of milliseconds. Set DOUBLE_CONVO_END = 1000 * double_convo_end . PHONE_KEYBOARD ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id PACKAGE_NAME package_name BEFORE_TEXT before_text CURRENT_TEXT current_text IS_PASSWORD is_password MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS This sensor is not supported by iOS devices. PHONE_LIGHT ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id DOUBLE_LIGHT_LUX double_light_lux ACCURACY accuracy MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS This sensor is not supported by iOS devices. PHONE_LOCATIONS ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id DOUBLE_LATITUDE double_latitude DOUBLE_LONGITUDE double_longitude DOUBLE_BEARING double_bearing DOUBLE_SPEED double_speed DOUBLE_ALTITUDE double_altitude PROVIDER provider ACCURACY accuracy MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS Same as ANDROID PHONE_LOG ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id LOG_MESSAGE log_message MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS Same as ANDROID PHONE_MESSAGES ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id MESSAGE_TYPE message_type TRACE trace MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS This sensor is not supported by iOS devices. PHONE_SCREEN ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id SCREEN_STATUS screen_status MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id SCREEN_STATUS FLAG_TO_MUTATE MUTATION COLUMN_MAPPINGS Script column Stream column SCREEN_STATUS screen_status SCRIPTS src/data/streams/mutations/phone/aware/screen_ios_unification.R Note For SCREEN_STATUS RAPIDS column: if stream\u2019s screen_status field is 2 (lock episode), set SCREEN_STATUS = 0 (off episode). PHONE_WIFI_CONNECTED ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id MAC_ADDRESS mac_address SSID ssid BSSID bssid MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS Same as ANDROID PHONE_WIFI_VISIBLE ANDROID RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP timestamp DEVICE_ID device_id SSID ssid BSSID bssid SECURITY security FREQUENCY frequency RSSI rssi MUTATION COLUMN_MAPPINGS (None) SCRIPTS (None) IOS Only old iOS versions supported this sensor (same mapping as Android).","title":"Aware format"},{"location":"snippets/database/","text":"Setting up a DATABASE_GROUP and its connection credentials. If you haven\u2019t done so, create an empty file called credentials.yaml in your RAPIDS root directory: Add the following lines to credentials.yaml and replace your database-specific credentials (user, password, host, and database): MY_GROUP : database : MY_DATABASE host : MY_HOST password : MY_PASSWORD port : 3306 user : MY_USER Notes The label [MY_GROUP] is arbitrary but it has to match the [DATABASE_GROUP] attribute of the data stream you choose to use. Indentation matters You can have more than one credentials group in credentials.yaml Upgrading from ./.env from RAPIDS 0.x In RAPIDS versions 0.x, database credentials were stored in a ./.env file. If you are migrating from that type of file, you have two options: Migrate your credentials by hand: change .env format [ MY_GROUP ] user=MY_USER password=MY_PASSWORD host=MY_HOST port=3306 database=MY_DATABASE to credentials.yaml format MY_GROUP : user : MY_USER password : MY_PASSWORD host : MY_HOST port : 3306 database : MY_DATABASE Use the migration script we provide (make sure your conda environment is active): python tools / update_format_env . py Connecting to localhost (host machine) from inside our docker container. If you are using RAPIDS\u2019 docker container and Docker-for-mac or Docker-for-Windows 18.03+, you can connect to a MySQL database in your host machine using host.docker.internal instead of 127.0.0.1 or localhost . In a Linux host, you need to run our docker container using docker run --network=\"host\" -d moshiresearch/rapids:latest and then 127.0.0.1 will point to your host machine.","title":"Database"},{"location":"snippets/feature_introduction_example/","text":"Sensor section Each sensor (accelerometer, screen, etc.) of every supported device (smartphone, Fitbit, etc.) has a section in the config.yaml with parameters and feature PROVIDERS . Sensor Parameters. Each sensor section has one or more parameters. These are parameters that affect different aspects of how the raw data is pulled, and processed. The CONTAINER parameter exists for every sensor, but some sensors will have extra parameters like [PHONE_LOCATIONS] . We explain these parameters in a table at the top of each sensor documentation page. Sensor Providers Each object in this list represents a feature PROVIDER . Each sensor can have zero, one, or more providers. A PROVIDER is a script that creates behavioral features for a specific sensor. Providers are created by the core RAPIDS team or by the community, which are named after its first author like [PHONE_LOCATIONS][DORYAB] . In this example, there are two accelerometer feature providers RAPIDS and PANDA . PROVIDER Parameters Each PROVIDER has parameters that affect the computation of the behavioral features it offers. These parameters include at least a [COMPUTE] flag that you switch to True to extract a provider\u2019s behavioral features. We explain every provider\u2019s parameter in a table under the Parameters description heading on each provider documentation page. PROVIDER Features Each PROVIDER offers a set of behavioral features. These features are grouped in an array for some providers, like those for RAPIDS provider. For others, they are grouped in a collection of arrays, like those for PANDAS provider. In either case, you can delete the features you are not interested in, and they will not be included in the sensor\u2019s output feature file. We explain each behavioral feature in a table under the Features description heading on each provider documentation page. PROVIDER script Each PROVIDER has a SRC_SCRIPT that points to the script implementing its behavioral features. It has to be a relative path from RAPIDS\u2019 root folder and the script\u2019s parent folder should be named after the provider, e.g. panda .","title":"Feature introduction example"},{"location":"snippets/jsonfitbit_format/","text":"The format.yaml maps and transforms columns in your raw data stream to the mandatory columns RAPIDS needs for Fitbit sensors . This file is at: src/data/streams/fitbitjson_csv/format.yaml If you want RAPIDS to process Fitbit sensor data using this stream, you will need to map DEVICE_ID and JSON_FITBIT_COLUMN to your own raw data columns inside each sensor section in format.yaml . FITBIT_HEARTRATE_SUMMARY RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column LOCAL_DATE_TIME FLAG_TO_MUTATE DEVICE_ID device_id HEARTRATE_DAILY_RESTINGHR FLAG_TO_MUTATE HEARTRATE_DAILY_CALORIESOUTOFRANGE FLAG_TO_MUTATE HEARTRATE_DAILY_CALORIESFATBURN FLAG_TO_MUTATE HEARTRATE_DAILY_CALORIESCARDIO FLAG_TO_MUTATE HEARTRATE_DAILY_CALORIESPEAK FLAG_TO_MUTATE MUTATION COLUMN_MAPPINGS Script column Stream column JSON_FITBIT_COLUMN fitbit_data SCRIPTS - src/data/streams/mutations/fitbit/parse_heartrate_summary_json.py - src/data/streams/mutations/fitbit/add_zero_timestamp.py Note All columns except DEVICE_ID are parsed from JSON_FITBIT_COLUMN . JSON_FITBIT_COLUMN is a string column containing the JSON objects returned by Fitbit\u2019s API. See an example of the raw data RAPIDS expects for this data stream: Example of the raw data RAPIDS expects for this data stream device_id fitbit_data a748ee1a-1d0b-4ae9-9074-279a2b6ba524 {\u201cactivities-heart\u201d:[{\u201cdateTime\u201d:\u201d2020-10-07\u201d,\u201dvalue\u201d:{\u201ccustomHeartRateZones\u201d:[],\u201dheartRateZones\u201d:[{\u201ccaloriesOut\u201d:1200.6102,\u201dmax\u201d:88,\u201dmin\u201d:31,\u201dminutes\u201d:1058,\u201dname\u201d:\u201dOut of Range\u201d},{\u201ccaloriesOut\u201d:760.3020,\u201dmax\u201d:120,\u201dmin\u201d:86,\u201dminutes\u201d:366,\u201dname\u201d:\u201dFat Burn\u201d},{\u201ccaloriesOut\u201d:15.2048,\u201dmax\u201d:146,\u201dmin\u201d:120,\u201dminutes\u201d:2,\u201dname\u201d:\u201dCardio\u201d},{\u201ccaloriesOut\u201d:0,\u201dmax\u201d:221,\u201dmin\u201d:148,\u201dminutes\u201d:0,\u201dname\u201d:\u201dPeak\u201d}],\u201drestingHeartRate\u201d:72}}],\u201dactivities-heart-intraday\u201d:{\u201cdataset\u201d:[{\u201ctime\u201d:\u201d00:00:00\u201d,\u201dvalue\u201d:68},{\u201ctime\u201d:\u201d00:01:00\u201d,\u201dvalue\u201d:67},{\u201ctime\u201d:\u201d00:02:00\u201d,\u201dvalue\u201d:67},\u2026],\u201ddatasetInterval\u201d:1,\u201ddatasetType\u201d:\u201dminute\u201d}} a748ee1a-1d0b-4ae9-9074-279a2b6ba524 {\u201cactivities-heart\u201d:[{\u201cdateTime\u201d:\u201d2020-10-08\u201d,\u201dvalue\u201d:{\u201ccustomHeartRateZones\u201d:[],\u201dheartRateZones\u201d:[{\u201ccaloriesOut\u201d:1100.1120,\u201dmax\u201d:89,\u201dmin\u201d:30,\u201dminutes\u201d:921,\u201dname\u201d:\u201dOut of Range\u201d},{\u201ccaloriesOut\u201d:660.0012,\u201dmax\u201d:118,\u201dmin\u201d:82,\u201dminutes\u201d:361,\u201dname\u201d:\u201dFat Burn\u201d},{\u201ccaloriesOut\u201d:23.7088,\u201dmax\u201d:142,\u201dmin\u201d:108,\u201dminutes\u201d:3,\u201dname\u201d:\u201dCardio\u201d},{\u201ccaloriesOut\u201d:0,\u201dmax\u201d:221,\u201dmin\u201d:148,\u201dminutes\u201d:0,\u201dname\u201d:\u201dPeak\u201d}],\u201drestingHeartRate\u201d:70}}],\u201dactivities-heart-intraday\u201d:{\u201cdataset\u201d:[{\u201ctime\u201d:\u201d00:00:00\u201d,\u201dvalue\u201d:77},{\u201ctime\u201d:\u201d00:01:00\u201d,\u201dvalue\u201d:75},{\u201ctime\u201d:\u201d00:02:00\u201d,\u201dvalue\u201d:73},\u2026],\u201ddatasetInterval\u201d:1,\u201ddatasetType\u201d:\u201dminute\u201d}} a748ee1a-1d0b-4ae9-9074-279a2b6ba524 {\u201cactivities-heart\u201d:[{\u201cdateTime\u201d:\u201d2020-10-09\u201d,\u201dvalue\u201d:{\u201ccustomHeartRateZones\u201d:[],\u201dheartRateZones\u201d:[{\u201ccaloriesOut\u201d:750.3615,\u201dmax\u201d:77,\u201dmin\u201d:30,\u201dminutes\u201d:851,\u201dname\u201d:\u201dOut of Range\u201d},{\u201ccaloriesOut\u201d:734.1516,\u201dmax\u201d:107,\u201dmin\u201d:77,\u201dminutes\u201d:550,\u201dname\u201d:\u201dFat Burn\u201d},{\u201ccaloriesOut\u201d:131.8579,\u201dmax\u201d:130,\u201dmin\u201d:107,\u201dminutes\u201d:29,\u201dname\u201d:\u201dCardio\u201d},{\u201ccaloriesOut\u201d:0,\u201dmax\u201d:220,\u201dmin\u201d:130,\u201dminutes\u201d:0,\u201dname\u201d:\u201dPeak\u201d}],\u201drestingHeartRate\u201d:69}}],\u201dactivities-heart-intraday\u201d:{\u201cdataset\u201d:[{\u201ctime\u201d:\u201d00:00:00\u201d,\u201dvalue\u201d:90},{\u201ctime\u201d:\u201d00:01:00\u201d,\u201dvalue\u201d:89},{\u201ctime\u201d:\u201d00:02:00\u201d,\u201dvalue\u201d:88},\u2026],\u201ddatasetInterval\u201d:1,\u201ddatasetType\u201d:\u201dminute\u201d}} FITBIT_HEARTRATE_INTRADAY RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column LOCAL_DATE_TIME FLAG_TO_MUTATE DEVICE_ID device_id HEARTRATE FLAG_TO_MUTATE HEARTRATE_ZONE FLAG_TO_MUTATE MUTATION COLUMN_MAPPINGS Script column Stream column JSON_FITBIT_COLUMN fitbit_data SCRIPTS - src/data/streams/mutations/fitbit/parse_heartrate_intraday_json.py - src/data/streams/mutations/fitbit/add_zero_timestamp.py Note All columns except DEVICE_ID are parsed from JSON_FITBIT_COLUMN . JSON_FITBIT_COLUMN is a string column containing the JSON objects returned by Fitbit\u2019s API. See an example of the raw data RAPIDS expects for this data stream: Example of the raw data RAPIDS expects for this data stream device_id fitbit_data a748ee1a-1d0b-4ae9-9074-279a2b6ba524 {\u201cactivities-heart\u201d:[{\u201cdateTime\u201d:\u201d2020-10-07\u201d,\u201dvalue\u201d:{\u201ccustomHeartRateZones\u201d:[],\u201dheartRateZones\u201d:[{\u201ccaloriesOut\u201d:1200.6102,\u201dmax\u201d:88,\u201dmin\u201d:31,\u201dminutes\u201d:1058,\u201dname\u201d:\u201dOut of Range\u201d},{\u201ccaloriesOut\u201d:760.3020,\u201dmax\u201d:120,\u201dmin\u201d:86,\u201dminutes\u201d:366,\u201dname\u201d:\u201dFat Burn\u201d},{\u201ccaloriesOut\u201d:15.2048,\u201dmax\u201d:146,\u201dmin\u201d:120,\u201dminutes\u201d:2,\u201dname\u201d:\u201dCardio\u201d},{\u201ccaloriesOut\u201d:0,\u201dmax\u201d:221,\u201dmin\u201d:148,\u201dminutes\u201d:0,\u201dname\u201d:\u201dPeak\u201d}],\u201drestingHeartRate\u201d:72}}],\u201dactivities-heart-intraday\u201d:{\u201cdataset\u201d:[{\u201ctime\u201d:\u201d00:00:00\u201d,\u201dvalue\u201d:68},{\u201ctime\u201d:\u201d00:01:00\u201d,\u201dvalue\u201d:67},{\u201ctime\u201d:\u201d00:02:00\u201d,\u201dvalue\u201d:67},\u2026],\u201ddatasetInterval\u201d:1,\u201ddatasetType\u201d:\u201dminute\u201d}} a748ee1a-1d0b-4ae9-9074-279a2b6ba524 {\u201cactivities-heart\u201d:[{\u201cdateTime\u201d:\u201d2020-10-08\u201d,\u201dvalue\u201d:{\u201ccustomHeartRateZones\u201d:[],\u201dheartRateZones\u201d:[{\u201ccaloriesOut\u201d:1100.1120,\u201dmax\u201d:89,\u201dmin\u201d:30,\u201dminutes\u201d:921,\u201dname\u201d:\u201dOut of Range\u201d},{\u201ccaloriesOut\u201d:660.0012,\u201dmax\u201d:118,\u201dmin\u201d:82,\u201dminutes\u201d:361,\u201dname\u201d:\u201dFat Burn\u201d},{\u201ccaloriesOut\u201d:23.7088,\u201dmax\u201d:142,\u201dmin\u201d:108,\u201dminutes\u201d:3,\u201dname\u201d:\u201dCardio\u201d},{\u201ccaloriesOut\u201d:0,\u201dmax\u201d:221,\u201dmin\u201d:148,\u201dminutes\u201d:0,\u201dname\u201d:\u201dPeak\u201d}],\u201drestingHeartRate\u201d:70}}],\u201dactivities-heart-intraday\u201d:{\u201cdataset\u201d:[{\u201ctime\u201d:\u201d00:00:00\u201d,\u201dvalue\u201d:77},{\u201ctime\u201d:\u201d00:01:00\u201d,\u201dvalue\u201d:75},{\u201ctime\u201d:\u201d00:02:00\u201d,\u201dvalue\u201d:73},\u2026],\u201ddatasetInterval\u201d:1,\u201ddatasetType\u201d:\u201dminute\u201d}} a748ee1a-1d0b-4ae9-9074-279a2b6ba524 {\u201cactivities-heart\u201d:[{\u201cdateTime\u201d:\u201d2020-10-09\u201d,\u201dvalue\u201d:{\u201ccustomHeartRateZones\u201d:[],\u201dheartRateZones\u201d:[{\u201ccaloriesOut\u201d:750.3615,\u201dmax\u201d:77,\u201dmin\u201d:30,\u201dminutes\u201d:851,\u201dname\u201d:\u201dOut of Range\u201d},{\u201ccaloriesOut\u201d:734.1516,\u201dmax\u201d:107,\u201dmin\u201d:77,\u201dminutes\u201d:550,\u201dname\u201d:\u201dFat Burn\u201d},{\u201ccaloriesOut\u201d:131.8579,\u201dmax\u201d:130,\u201dmin\u201d:107,\u201dminutes\u201d:29,\u201dname\u201d:\u201dCardio\u201d},{\u201ccaloriesOut\u201d:0,\u201dmax\u201d:220,\u201dmin\u201d:130,\u201dminutes\u201d:0,\u201dname\u201d:\u201dPeak\u201d}],\u201drestingHeartRate\u201d:69}}],\u201dactivities-heart-intraday\u201d:{\u201cdataset\u201d:[{\u201ctime\u201d:\u201d00:00:00\u201d,\u201dvalue\u201d:90},{\u201ctime\u201d:\u201d00:01:00\u201d,\u201dvalue\u201d:89},{\u201ctime\u201d:\u201d00:02:00\u201d,\u201dvalue\u201d:88},\u2026],\u201ddatasetInterval\u201d:1,\u201ddatasetType\u201d:\u201dminute\u201d}} FITBIT_SLEEP_SUMMARY RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP FLAG_TO_MUTATE LOCAL_DATE_TIME FLAG_TO_MUTATE LOCAL_START_DATE_TIME FLAG_TO_MUTATE LOCAL_END_DATE_TIME FLAG_TO_MUTATE DEVICE_ID device_id EFFICIENCY FLAG_TO_MUTATE MINUTES_AFTER_WAKEUP FLAG_TO_MUTATE MINUTES_ASLEEP FLAG_TO_MUTATE MINUTES_AWAKE FLAG_TO_MUTATE MINUTES_TO_FALL_ASLEEP FLAG_TO_MUTATE MINUTES_IN_BED FLAG_TO_MUTATE IS_MAIN_SLEEP FLAG_TO_MUTATE TYPE FLAG_TO_MUTATE MUTATION COLUMN_MAPPINGS Script column Stream column JSON_FITBIT_COLUMN fitbit_data SCRIPTS - src/data/streams/mutations/fitbit/parse_sleep_summary_json.py - src/data/streams/mutations/fitbit/add_local_date_time.py - src/data/streams/mutations/fitbit/add_zero_timestamp.py Note Fitbit API has two versions for sleep data, v1 and v1.2. We support both but ignore v1\u2019s count_awake , duration_awake , and count_awakenings , count_restless , duration_restless columns. All columns except DEVICE_ID are parsed from JSON_FITBIT_COLUMN . JSON_FITBIT_COLUMN is a string column containing the JSON objects returned by Fitbit\u2019s API. See an example of the raw data RAPIDS expects for this data stream: Example of the expected raw data device_id fitbit_data a748ee1a-1d0b-4ae9-9074-279a2b6ba524 {\u201csleep\u201d:[{\u201cdateOfSleep\u201d:\u201d2020-10-10\u201d,\u201dduration\u201d:3600000,\u201defficiency\u201d:92,\u201dendTime\u201d:\u201d2020-10-10T16:37:00.000\u201d,\u201dinfoCode\u201d:2,\u201disMainSleep\u201d:false,\u201dlevels\u201d:{\u201cdata\u201d:[{\u201cdateTime\u201d:\u201d2020-10-10T15:36:30.000\u201d,\u201dlevel\u201d:\u201drestless\u201d,\u201dseconds\u201d:60},{\u201cdateTime\u201d:\u201d2020-10-10T15:37:30.000\u201d,\u201dlevel\u201d:\u201dasleep\u201d,\u201dseconds\u201d:660},{\u201cdateTime\u201d:\u201d2020-10-10T15:48:30.000\u201d,\u201dlevel\u201d:\u201drestless\u201d,\u201dseconds\u201d:60},\u2026], \u201csummary\u201d:{\u201casleep\u201d:{\u201ccount\u201d:0,\u201dminutes\u201d:56},\u201dawake\u201d:{\u201ccount\u201d:0,\u201dminutes\u201d:0},\u201drestless\u201d:{\u201ccount\u201d:3,\u201dminutes\u201d:4}}},\u201dlogId\u201d:26315914306,\u201dminutesAfterWakeup\u201d:0,\u201dminutesAsleep\u201d:55,\u201dminutesAwake\u201d:5,\u201dminutesToFallAsleep\u201d:0,\u201dstartTime\u201d:\u201d2020-10-10T15:36:30.000\u201d,\u201dtimeInBed\u201d:60,\u201dtype\u201d:\u201dclassic\u201d},{\u201cdateOfSleep\u201d:\u201d2020-10-10\u201d,\u201dduration\u201d:22980000,\u201defficiency\u201d:88,\u201dendTime\u201d:\u201d2020-10-10T08:10:00.000\u201d,\u201dinfoCode\u201d:0,\u201disMainSleep\u201d:true,\u201dlevels\u201d:{\u201cdata\u201d:[{\u201cdateTime\u201d:\u201d2020-10-10T01:46:30.000\u201d,\u201dlevel\u201d:\u201dlight\u201d,\u201dseconds\u201d:420},{\u201cdateTime\u201d:\u201d2020-10-10T01:53:30.000\u201d,\u201dlevel\u201d:\u201ddeep\u201d,\u201dseconds\u201d:1230},{\u201cdateTime\u201d:\u201d2020-10-10T02:14:00.000\u201d,\u201dlevel\u201d:\u201dlight\u201d,\u201dseconds\u201d:360},\u2026], \u201csummary\u201d:{\u201cdeep\u201d:{\u201ccount\u201d:3,\u201dminutes\u201d:92,\u201dthirtyDayAvgMinutes\u201d:0},\u201dlight\u201d:{\u201ccount\u201d:29,\u201dminutes\u201d:193,\u201dthirtyDayAvgMinutes\u201d:0},\u201drem\u201d:{\u201ccount\u201d:4,\u201dminutes\u201d:33,\u201dthirtyDayAvgMinutes\u201d:0},\u201dwake\u201d:{\u201ccount\u201d:28,\u201dminutes\u201d:65,\u201dthirtyDayAvgMinutes\u201d:0}}},\u201dlogId\u201d:26311786557,\u201dminutesAfterWakeup\u201d:0,\u201dminutesAsleep\u201d:318,\u201dminutesAwake\u201d:65,\u201dminutesToFallAsleep\u201d:0,\u201dstartTime\u201d:\u201d2020-10-10T01:46:30.000\u201d,\u201dtimeInBed\u201d:383,\u201dtype\u201d:\u201dstages\u201d}],\u201dsummary\u201d:{\u201cstages\u201d:{\u201cdeep\u201d:92,\u201dlight\u201d:193,\u201drem\u201d:33,\u201dwake\u201d:65},\u201dtotalMinutesAsleep\u201d:373,\u201dtotalSleepRecords\u201d:2,\u201dtotalTimeInBed\u201d:443}} a748ee1a-1d0b-4ae9-9074-279a2b6ba524 {\u201csleep\u201d:[{\u201cdateOfSleep\u201d:\u201d2020-10-11\u201d,\u201dduration\u201d:41640000,\u201defficiency\u201d:89,\u201dendTime\u201d:\u201d2020-10-11T11:47:00.000\u201d,\u201dinfoCode\u201d:0,\u201disMainSleep\u201d:true,\u201dlevels\u201d:{\u201cdata\u201d:[{\u201cdateTime\u201d:\u201d2020-10-11T00:12:30.000\u201d,\u201dlevel\u201d:\u201dwake\u201d,\u201dseconds\u201d:450},{\u201cdateTime\u201d:\u201d2020-10-11T00:20:00.000\u201d,\u201dlevel\u201d:\u201dlight\u201d,\u201dseconds\u201d:870},{\u201cdateTime\u201d:\u201d2020-10-11T00:34:30.000\u201d,\u201dlevel\u201d:\u201dwake\u201d,\u201dseconds\u201d:780},\u2026], \u201csummary\u201d:{\u201cdeep\u201d:{\u201ccount\u201d:4,\u201dminutes\u201d:52,\u201dthirtyDayAvgMinutes\u201d:62},\u201dlight\u201d:{\u201ccount\u201d:32,\u201dminutes\u201d:442,\u201dthirtyDayAvgMinutes\u201d:364},\u201drem\u201d:{\u201ccount\u201d:6,\u201dminutes\u201d:68,\u201dthirtyDayAvgMinutes\u201d:58},\u201dwake\u201d:{\u201ccount\u201d:29,\u201dminutes\u201d:132,\u201dthirtyDayAvgMinutes\u201d:94}}},\u201dlogId\u201d:26589710670,\u201dminutesAfterWakeup\u201d:1,\u201dminutesAsleep\u201d:562,\u201dminutesAwake\u201d:132,\u201dminutesToFallAsleep\u201d:0,\u201dstartTime\u201d:\u201d2020-10-11T00:12:30.000\u201d,\u201dtimeInBed\u201d:694,\u201dtype\u201d:\u201dstages\u201d}],\u201dsummary\u201d:{\u201cstages\u201d:{\u201cdeep\u201d:52,\u201dlight\u201d:442,\u201drem\u201d:68,\u201dwake\u201d:132},\u201dtotalMinutesAsleep\u201d:562,\u201dtotalSleepRecords\u201d:1,\u201dtotalTimeInBed\u201d:694}} a748ee1a-1d0b-4ae9-9074-279a2b6ba524 {\u201csleep\u201d:[{\u201cdateOfSleep\u201d:\u201d2020-10-12\u201d,\u201dduration\u201d:28980000,\u201defficiency\u201d:93,\u201dendTime\u201d:\u201d2020-10-12T09:34:30.000\u201d,\u201dinfoCode\u201d:0,\u201disMainSleep\u201d:true,\u201dlevels\u201d:{\u201cdata\u201d:[{\u201cdateTime\u201d:\u201d2020-10-12T01:31:00.000\u201d,\u201dlevel\u201d:\u201dwake\u201d,\u201dseconds\u201d:600},{\u201cdateTime\u201d:\u201d2020-10-12T01:41:00.000\u201d,\u201dlevel\u201d:\u201dlight\u201d,\u201dseconds\u201d:60},{\u201cdateTime\u201d:\u201d2020-10-12T01:42:00.000\u201d,\u201dlevel\u201d:\u201ddeep\u201d,\u201dseconds\u201d:2340},\u2026], \u201csummary\u201d:{\u201cdeep\u201d:{\u201ccount\u201d:4,\u201dminutes\u201d:63,\u201dthirtyDayAvgMinutes\u201d:59},\u201dlight\u201d:{\u201ccount\u201d:27,\u201dminutes\u201d:257,\u201dthirtyDayAvgMinutes\u201d:364},\u201drem\u201d:{\u201ccount\u201d:5,\u201dminutes\u201d:94,\u201dthirtyDayAvgMinutes\u201d:58},\u201dwake\u201d:{\u201ccount\u201d:24,\u201dminutes\u201d:69,\u201dthirtyDayAvgMinutes\u201d:95}}},\u201dlogId\u201d:26589710673,\u201dminutesAfterWakeup\u201d:0,\u201dminutesAsleep\u201d:415,\u201dminutesAwake\u201d:68,\u201dminutesToFallAsleep\u201d:0,\u201dstartTime\u201d:\u201d2020-10-12T01:31:00.000\u201d,\u201dtimeInBed\u201d:483,\u201dtype\u201d:\u201dstages\u201d}],\u201dsummary\u201d:{\u201cstages\u201d:{\u201cdeep\u201d:63,\u201dlight\u201d:257,\u201drem\u201d:94,\u201dwake\u201d:69},\u201dtotalMinutesAsleep\u201d:415,\u201dtotalSleepRecords\u201d:1,\u201dtotalTimeInBed\u201d:483}} FITBIT_SLEEP_INTRADAY RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP FLAG_TO_MUTATE LOCAL_DATE_TIME FLAG_TO_MUTATE DEVICE_ID device_id TYPE_EPISODE_ID FLAG_TO_MUTATE DURATION FLAG_TO_MUTATE IS_MAIN_SLEEP FLAG_TO_MUTATE TYPE FLAG_TO_MUTATE LEVEL FLAG_TO_MUTATE MUTATION COLUMN_MAPPINGS Script column Stream column JSON_FITBIT_COLUMN fitbit_data SCRIPTS - src/data/streams/mutations/fitbit/parse_sleep_intraday_json.py - src/data/streams/mutations/fitbit/add_zero_timestamp.py Note Fitbit API has two versions for sleep data, v1 and v1.2, we support both. All columns except DEVICE_ID are parsed from JSON_FITBIT_COLUMN . JSON_FITBIT_COLUMN is a string column containing the JSON objects returned by Fitbit\u2019s API. See an example of the raw data RAPIDS expects for this data stream: Example of the expected raw data device_id fitbit_data a748ee1a-1d0b-4ae9-9074-279a2b6ba524 {\u201csleep\u201d:[{\u201cdateOfSleep\u201d:\u201d2020-10-10\u201d,\u201dduration\u201d:3600000,\u201defficiency\u201d:92,\u201dendTime\u201d:\u201d2020-10-10T16:37:00.000\u201d,\u201dinfoCode\u201d:2,\u201disMainSleep\u201d:false,\u201dlevels\u201d:{\u201cdata\u201d:[{\u201cdateTime\u201d:\u201d2020-10-10T15:36:30.000\u201d,\u201dlevel\u201d:\u201drestless\u201d,\u201dseconds\u201d:60},{\u201cdateTime\u201d:\u201d2020-10-10T15:37:30.000\u201d,\u201dlevel\u201d:\u201dasleep\u201d,\u201dseconds\u201d:660},{\u201cdateTime\u201d:\u201d2020-10-10T15:48:30.000\u201d,\u201dlevel\u201d:\u201drestless\u201d,\u201dseconds\u201d:60},\u2026], \u201csummary\u201d:{\u201casleep\u201d:{\u201ccount\u201d:0,\u201dminutes\u201d:56},\u201dawake\u201d:{\u201ccount\u201d:0,\u201dminutes\u201d:0},\u201drestless\u201d:{\u201ccount\u201d:3,\u201dminutes\u201d:4}}},\u201dlogId\u201d:26315914306,\u201dminutesAfterWakeup\u201d:0,\u201dminutesAsleep\u201d:55,\u201dminutesAwake\u201d:5,\u201dminutesToFallAsleep\u201d:0,\u201dstartTime\u201d:\u201d2020-10-10T15:36:30.000\u201d,\u201dtimeInBed\u201d:60,\u201dtype\u201d:\u201dclassic\u201d},{\u201cdateOfSleep\u201d:\u201d2020-10-10\u201d,\u201dduration\u201d:22980000,\u201defficiency\u201d:88,\u201dendTime\u201d:\u201d2020-10-10T08:10:00.000\u201d,\u201dinfoCode\u201d:0,\u201disMainSleep\u201d:true,\u201dlevels\u201d:{\u201cdata\u201d:[{\u201cdateTime\u201d:\u201d2020-10-10T01:46:30.000\u201d,\u201dlevel\u201d:\u201dlight\u201d,\u201dseconds\u201d:420},{\u201cdateTime\u201d:\u201d2020-10-10T01:53:30.000\u201d,\u201dlevel\u201d:\u201ddeep\u201d,\u201dseconds\u201d:1230},{\u201cdateTime\u201d:\u201d2020-10-10T02:14:00.000\u201d,\u201dlevel\u201d:\u201dlight\u201d,\u201dseconds\u201d:360},\u2026], \u201csummary\u201d:{\u201cdeep\u201d:{\u201ccount\u201d:3,\u201dminutes\u201d:92,\u201dthirtyDayAvgMinutes\u201d:0},\u201dlight\u201d:{\u201ccount\u201d:29,\u201dminutes\u201d:193,\u201dthirtyDayAvgMinutes\u201d:0},\u201drem\u201d:{\u201ccount\u201d:4,\u201dminutes\u201d:33,\u201dthirtyDayAvgMinutes\u201d:0},\u201dwake\u201d:{\u201ccount\u201d:28,\u201dminutes\u201d:65,\u201dthirtyDayAvgMinutes\u201d:0}}},\u201dlogId\u201d:26311786557,\u201dminutesAfterWakeup\u201d:0,\u201dminutesAsleep\u201d:318,\u201dminutesAwake\u201d:65,\u201dminutesToFallAsleep\u201d:0,\u201dstartTime\u201d:\u201d2020-10-10T01:46:30.000\u201d,\u201dtimeInBed\u201d:383,\u201dtype\u201d:\u201dstages\u201d}],\u201dsummary\u201d:{\u201cstages\u201d:{\u201cdeep\u201d:92,\u201dlight\u201d:193,\u201drem\u201d:33,\u201dwake\u201d:65},\u201dtotalMinutesAsleep\u201d:373,\u201dtotalSleepRecords\u201d:2,\u201dtotalTimeInBed\u201d:443}} a748ee1a-1d0b-4ae9-9074-279a2b6ba524 {\u201csleep\u201d:[{\u201cdateOfSleep\u201d:\u201d2020-10-11\u201d,\u201dduration\u201d:41640000,\u201defficiency\u201d:89,\u201dendTime\u201d:\u201d2020-10-11T11:47:00.000\u201d,\u201dinfoCode\u201d:0,\u201disMainSleep\u201d:true,\u201dlevels\u201d:{\u201cdata\u201d:[{\u201cdateTime\u201d:\u201d2020-10-11T00:12:30.000\u201d,\u201dlevel\u201d:\u201dwake\u201d,\u201dseconds\u201d:450},{\u201cdateTime\u201d:\u201d2020-10-11T00:20:00.000\u201d,\u201dlevel\u201d:\u201dlight\u201d,\u201dseconds\u201d:870},{\u201cdateTime\u201d:\u201d2020-10-11T00:34:30.000\u201d,\u201dlevel\u201d:\u201dwake\u201d,\u201dseconds\u201d:780},\u2026], \u201csummary\u201d:{\u201cdeep\u201d:{\u201ccount\u201d:4,\u201dminutes\u201d:52,\u201dthirtyDayAvgMinutes\u201d:62},\u201dlight\u201d:{\u201ccount\u201d:32,\u201dminutes\u201d:442,\u201dthirtyDayAvgMinutes\u201d:364},\u201drem\u201d:{\u201ccount\u201d:6,\u201dminutes\u201d:68,\u201dthirtyDayAvgMinutes\u201d:58},\u201dwake\u201d:{\u201ccount\u201d:29,\u201dminutes\u201d:132,\u201dthirtyDayAvgMinutes\u201d:94}}},\u201dlogId\u201d:26589710670,\u201dminutesAfterWakeup\u201d:1,\u201dminutesAsleep\u201d:562,\u201dminutesAwake\u201d:132,\u201dminutesToFallAsleep\u201d:0,\u201dstartTime\u201d:\u201d2020-10-11T00:12:30.000\u201d,\u201dtimeInBed\u201d:694,\u201dtype\u201d:\u201dstages\u201d}],\u201dsummary\u201d:{\u201cstages\u201d:{\u201cdeep\u201d:52,\u201dlight\u201d:442,\u201drem\u201d:68,\u201dwake\u201d:132},\u201dtotalMinutesAsleep\u201d:562,\u201dtotalSleepRecords\u201d:1,\u201dtotalTimeInBed\u201d:694}} a748ee1a-1d0b-4ae9-9074-279a2b6ba524 {\u201csleep\u201d:[{\u201cdateOfSleep\u201d:\u201d2020-10-12\u201d,\u201dduration\u201d:28980000,\u201defficiency\u201d:93,\u201dendTime\u201d:\u201d2020-10-12T09:34:30.000\u201d,\u201dinfoCode\u201d:0,\u201disMainSleep\u201d:true,\u201dlevels\u201d:{\u201cdata\u201d:[{\u201cdateTime\u201d:\u201d2020-10-12T01:31:00.000\u201d,\u201dlevel\u201d:\u201dwake\u201d,\u201dseconds\u201d:600},{\u201cdateTime\u201d:\u201d2020-10-12T01:41:00.000\u201d,\u201dlevel\u201d:\u201dlight\u201d,\u201dseconds\u201d:60},{\u201cdateTime\u201d:\u201d2020-10-12T01:42:00.000\u201d,\u201dlevel\u201d:\u201ddeep\u201d,\u201dseconds\u201d:2340},\u2026], \u201csummary\u201d:{\u201cdeep\u201d:{\u201ccount\u201d:4,\u201dminutes\u201d:63,\u201dthirtyDayAvgMinutes\u201d:59},\u201dlight\u201d:{\u201ccount\u201d:27,\u201dminutes\u201d:257,\u201dthirtyDayAvgMinutes\u201d:364},\u201drem\u201d:{\u201ccount\u201d:5,\u201dminutes\u201d:94,\u201dthirtyDayAvgMinutes\u201d:58},\u201dwake\u201d:{\u201ccount\u201d:24,\u201dminutes\u201d:69,\u201dthirtyDayAvgMinutes\u201d:95}}},\u201dlogId\u201d:26589710673,\u201dminutesAfterWakeup\u201d:0,\u201dminutesAsleep\u201d:415,\u201dminutesAwake\u201d:68,\u201dminutesToFallAsleep\u201d:0,\u201dstartTime\u201d:\u201d2020-10-12T01:31:00.000\u201d,\u201dtimeInBed\u201d:483,\u201dtype\u201d:\u201dstages\u201d}],\u201dsummary\u201d:{\u201cstages\u201d:{\u201cdeep\u201d:63,\u201dlight\u201d:257,\u201drem\u201d:94,\u201dwake\u201d:69},\u201dtotalMinutesAsleep\u201d:415,\u201dtotalSleepRecords\u201d:1,\u201dtotalTimeInBed\u201d:483}} FITBIT_STEPS_SUMMARY RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP FLAG_TO_MUTATE DEVICE_ID device_id LOCAL_DATE_TIME FLAG_TO_MUTATE STEPS FLAG_TO_MUTATE MUTATION COLUMN_MAPPINGS Script column Stream column JSON_FITBIT_COLUMN fitbit_data SCRIPTS - src/data/streams/mutations/fitbit/parse_steps_summary_json.py - src/data/streams/mutations/fitbit/add_zero_timestamp.py Note TIMESTAMP , LOCAL_DATE_TIME , and STEPS are parsed from JSON_FITBIT_COLUMN . JSON_FITBIT_COLUMN is a string column containing the JSON objects returned by Fitbit\u2019s API. See an example of the raw data RAPIDS expects for this data stream: Example of the expected raw data device_id fitbit_data a748ee1a-1d0b-4ae9-9074-279a2b6ba524 \u201cactivities-steps\u201d:[{\u201cdateTime\u201d:\u201d2020-10-07\u201d,\u201dvalue\u201d:\u201d1775\u201d}],\u201dactivities-steps-intraday\u201d:{\u201cdataset\u201d:[{\u201ctime\u201d:\u201d00:00:00\u201d,\u201dvalue\u201d:5},{\u201ctime\u201d:\u201d00:01:00\u201d,\u201dvalue\u201d:3},{\u201ctime\u201d:\u201d00:02:00\u201d,\u201dvalue\u201d:0},\u2026],\u201ddatasetInterval\u201d:1,\u201ddatasetType\u201d:\u201dminute\u201d}} a748ee1a-1d0b-4ae9-9074-279a2b6ba524 \u201cactivities-steps\u201d:[{\u201cdateTime\u201d:\u201d2020-10-08\u201d,\u201dvalue\u201d:\u201d3201\u201d}],\u201dactivities-steps-intraday\u201d:{\u201cdataset\u201d:[{\u201ctime\u201d:\u201d00:00:00\u201d,\u201dvalue\u201d:14},{\u201ctime\u201d:\u201d00:01:00\u201d,\u201dvalue\u201d:11},{\u201ctime\u201d:\u201d00:02:00\u201d,\u201dvalue\u201d:10},\u2026],\u201ddatasetInterval\u201d:1,\u201ddatasetType\u201d:\u201dminute\u201d}} a748ee1a-1d0b-4ae9-9074-279a2b6ba524 \u201cactivities-steps\u201d:[{\u201cdateTime\u201d:\u201d2020-10-09\u201d,\u201dvalue\u201d:\u201d998\u201d}],\u201dactivities-steps-intraday\u201d:{\u201cdataset\u201d:[{\u201ctime\u201d:\u201d00:00:00\u201d,\u201dvalue\u201d:0},{\u201ctime\u201d:\u201d00:01:00\u201d,\u201dvalue\u201d:0},{\u201ctime\u201d:\u201d00:02:00\u201d,\u201dvalue\u201d:0},\u2026],\u201ddatasetInterval\u201d:1,\u201ddatasetType\u201d:\u201dminute\u201d}} FITBIT_STEPS_INTRADAY RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP FLAG_TO_MUTATE DEVICE_ID device_id LOCAL_DATE_TIME FLAG_TO_MUTATE STEPS FLAG_TO_MUTATE MUTATION COLUMN_MAPPINGS Script column Stream column JSON_FITBIT_COLUMN fitbit_data SCRIPTS - src/data/streams/mutations/fitbit/parse_steps_intraday_json.py - src/data/streams/mutations/fitbit/add_zero_timestamp.py Note TIMESTAMP , LOCAL_DATE_TIME , and STEPS are parsed from JSON_FITBIT_COLUMN . JSON_FITBIT_COLUMN is a string column containing the JSON objects returned by Fitbit\u2019s API . See an example of the raw data RAPIDS expects for this data stream: Example of the expected raw data device_id fitbit_data a748ee1a-1d0b-4ae9-9074-279a2b6ba524 \u201cactivities-steps\u201d:[{\u201cdateTime\u201d:\u201d2020-10-07\u201d,\u201dvalue\u201d:\u201d1775\u201d}],\u201dactivities-steps-intraday\u201d:{\u201cdataset\u201d:[{\u201ctime\u201d:\u201d00:00:00\u201d,\u201dvalue\u201d:5},{\u201ctime\u201d:\u201d00:01:00\u201d,\u201dvalue\u201d:3},{\u201ctime\u201d:\u201d00:02:00\u201d,\u201dvalue\u201d:0},\u2026],\u201ddatasetInterval\u201d:1,\u201ddatasetType\u201d:\u201dminute\u201d}} a748ee1a-1d0b-4ae9-9074-279a2b6ba524 \u201cactivities-steps\u201d:[{\u201cdateTime\u201d:\u201d2020-10-08\u201d,\u201dvalue\u201d:\u201d3201\u201d}],\u201dactivities-steps-intraday\u201d:{\u201cdataset\u201d:[{\u201ctime\u201d:\u201d00:00:00\u201d,\u201dvalue\u201d:14},{\u201ctime\u201d:\u201d00:01:00\u201d,\u201dvalue\u201d:11},{\u201ctime\u201d:\u201d00:02:00\u201d,\u201dvalue\u201d:10},\u2026],\u201ddatasetInterval\u201d:1,\u201ddatasetType\u201d:\u201dminute\u201d}} a748ee1a-1d0b-4ae9-9074-279a2b6ba524 \u201cactivities-steps\u201d:[{\u201cdateTime\u201d:\u201d2020-10-09\u201d,\u201dvalue\u201d:\u201d998\u201d}],\u201dactivities-steps-intraday\u201d:{\u201cdataset\u201d:[{\u201ctime\u201d:\u201d00:00:00\u201d,\u201dvalue\u201d:0},{\u201ctime\u201d:\u201d00:01:00\u201d,\u201dvalue\u201d:0},{\u201ctime\u201d:\u201d00:02:00\u201d,\u201dvalue\u201d:0},\u2026],\u201ddatasetInterval\u201d:1,\u201ddatasetType\u201d:\u201dminute\u201d}}","title":"Jsonfitbit format"},{"location":"snippets/parsedfitbit_format/","text":"The format.yaml maps and transforms columns in your raw data stream to the mandatory columns RAPIDS needs for Fitbit sensors . This file is at: src/data/streams/fitbitparsed_mysql/format.yaml If you want to use this stream with your data, modify every sensor in format.yaml to map all columns except TIMESTAMP in [RAPIDS_COLUMN_MAPPINGS] to your raw data column names. All columns are mandatory; however, all except device_id and local_date_time can be empty if you don\u2019t have that data. Just have in mind that some features will be empty if some of these columns are empty. FITBIT_HEARTRATE_SUMMARY RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP FLAG_TO_MUTATE LOCAL_DATE_TIME local_date_time DEVICE_ID device_id HEARTRATE_DAILY_RESTINGHR heartrate_daily_restinghr HEARTRATE_DAILY_CALORIESOUTOFRANGE heartrate_daily_caloriesoutofrange HEARTRATE_DAILY_CALORIESFATBURN heartrate_daily_caloriesfatburn HEARTRATE_DAILY_CALORIESCARDIO heartrate_daily_caloriescardio HEARTRATE_DAILY_CALORIESPEAK heartrate_daily_caloriespeak MUTATION COLUMN_MAPPINGS (None) SCRIPTS src/data/streams/mutations/fitbit/add_zero_timestamp.py Note add_zero_timestamp adds an all-zero column called timestamp that will be filled in later in the pipeline by readable_time.R converting LOCAL_DATE_TIME to a unix timestamp taking into account single or multiple time zones. Example of the raw data RAPIDS expects for this data stream device_id local_date_time heartrate_daily_restinghr heartrate_daily_caloriesoutofrange heartrate_daily_caloriesfatburn heartrate_daily_caloriescardio heartrate_daily_caloriespeak a748ee1a-1d0b-4ae9-9074-279a2b6ba524 2020-10-07 72 1200.6102 760.3020 15.2048 0 a748ee1a-1d0b-4ae9-9074-279a2b6ba524 2020-10-08 70 1100.1120 660.0012 23.7088 0 a748ee1a-1d0b-4ae9-9074-279a2b6ba524 2020-10-09 69 750.3615 734.1516 131.8579 0 FITBIT_HEARTRATE_INTRADAY RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP FLAG_TO_MUTATE LOCAL_DATE_TIME local_date_time DEVICE_ID device_id HEARTRATE heartrate HEARTRATE_ZONE heartrate_zone MUTATION COLUMN_MAPPINGS (None) SCRIPTS src/data/streams/mutations/fitbit/add_zero_timestamp.py Note add_zero_timestamp adds an all-zero column called timestamp that will be filled in later in the pipeline by readable_time.R converting LOCAL_DATE_TIME to a unix timestamp taking into account single or multiple time zones. Example of the raw data RAPIDS expects for this data stream device_id local_date_time heartrate heartrate_zone a748ee1a-1d0b-4ae9-9074-279a2b6ba524 2020-10-07 00:00:00 68 outofrange a748ee1a-1d0b-4ae9-9074-279a2b6ba524 2020-10-07 00:01:00 67 outofrange a748ee1a-1d0b-4ae9-9074-279a2b6ba524 2020-10-07 00:02:00 67 outofrange FITBIT_SLEEP_SUMMARY RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP FLAG_TO_MUTATE LOCAL_DATE_TIME FLAG_TO_MUTATE LOCAL_START_DATE_TIME local_start_date_time LOCAL_END_DATE_TIME local_end_date_time DEVICE_ID device_id EFFICIENCY efficiency MINUTES_AFTER_WAKEUP minutes_after_wakeup MINUTES_ASLEEP minutes_asleep MINUTES_AWAKE minutes_awake MINUTES_TO_FALL_ASLEEP minutes_to_fall_asleep MINUTES_IN_BED minutes_in_bed IS_MAIN_SLEEP is_main_sleep TYPE type MUTATION COLUMN_MAPPINGS (None) SCRIPTS - src/data/streams/mutations/fitbit/add_local_date_time.py - src/data/streams/mutations/fitbit/add_zero_timestamp.py Note add_zero_timestamp adds an all-zero column called timestamp that will be filled in later in the pipeline by readable_time.R converting LOCAL_DATE_TIME to a unix timestamp taking into account single or multiple time zones. Fitbit API has two versions for sleep data, v1 and v1.2. We support both but ignore v1\u2019s count_awake , duration_awake , and count_awakenings , count_restless , duration_restless columns. Example of the expected raw data device_id local_start_date_time local_end_date_time efficiency minutes_after_wakeup minutes_asleep minutes_awake minutes_to_fall_asleep minutes_in_bed is_main_sleep type a748ee1a-1d0b-4ae9-9074-279a2b6ba524 2020-10-10 15:36:30 2020-10-10 16:37:00 92 0 55 5 0 60 0 classic a748ee1a-1d0b-4ae9-9074-279a2b6ba524 2020-10-10 01:46:30 2020-10-10 08:10:00 88 0 318 65 0 383 1 stages a748ee1a-1d0b-4ae9-9074-279a2b6ba524 2020-10-11 00:12:30 2020-10-11 11:47:00 89 1 562 132 0 694 1 stages a748ee1a-1d0b-4ae9-9074-279a2b6ba524 2020-10-12 01:31:00 2020-10-12 09:34:30 93 0 415 68 0 483 1 stages FITBIT_SLEEP_INTRADAY RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP FLAG_TO_MUTATE LOCAL_DATE_TIME local_date_time DEVICE_ID device_id TYPE_EPISODE_ID type_episode_id DURATION duration IS_MAIN_SLEEP is_main_sleep TYPE type LEVEL level MUTATION COLUMN_MAPPINGS (None) SCRIPTS src/data/streams/mutations/fitbit/add_zero_timestamp.py Note add_zero_timestamp adds an all-zero column called timestamp that will be filled in later in the pipeline by readable_time.R converting LOCAL_DATE_TIME to a unix timestamp taking into account single or multiple time zones. Fitbit API has two versions for sleep data, v1 and v1.2, we support both. Example of the expected raw data device_id type_episode_id local_date_time duration level is_main_sleep type a748ee1a-1d0b-4ae9-9074-279a2b6ba524 0 2020-10-10 15:36:30 60 restless 0 classic a748ee1a-1d0b-4ae9-9074-279a2b6ba524 0 2020-10-10 15:37:30 660 asleep 0 classic a748ee1a-1d0b-4ae9-9074-279a2b6ba524 0 2020-10-10 15:48:30 60 restless 0 classic a748ee1a-1d0b-4ae9-9074-279a2b6ba524 \u2026 \u2026 \u2026 \u2026 \u2026 \u2026 a748ee1a-1d0b-4ae9-9074-279a2b6ba524 1 2020-10-10 01:46:30 420 light 1 stages a748ee1a-1d0b-4ae9-9074-279a2b6ba524 1 2020-10-10 01:53:30 1230 deep 1 stages FITBIT_STEPS_SUMMARY RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP FLAG_TO_MUTATE DEVICE_ID device_id LOCAL_DATE_TIME local_date_time STEPS steps MUTATION COLUMN_MAPPINGS (None) SCRIPTS src/data/streams/mutations/fitbit/add_zero_timestamp.py Note add_zero_timestamp adds an all-zero column called timestamp that will be filled in later in the pipeline by readable_time.R converting LOCAL_DATE_TIME to a unix timestamp taking into account single or multiple time zones. Example of the expected raw data device_id local_date_time steps a748ee1a-1d0b-4ae9-9074-279a2b6ba524 2020-10-07 1775 a748ee1a-1d0b-4ae9-9074-279a2b6ba524 2020-10-08 3201 a748ee1a-1d0b-4ae9-9074-279a2b6ba524 2020-10-09 998 FITBIT_STEPS_INTRADAY RAPIDS_COLUMN_MAPPINGS RAPIDS column Stream column TIMESTAMP FLAG_TO_MUTATE DEVICE_ID device_id LOCAL_DATE_TIME local_date_time STEPS steps MUTATION COLUMN_MAPPINGS (None) SCRIPTS src/data/streams/mutations/fitbit/add_zero_timestamp.py Note add_zero_timestamp adds an all-zero column called timestamp that will be filled in later in the pipeline by readable_time.R converting LOCAL_DATE_TIME to a unix timestamp taking into account single or multiple time zones. Example of the expected raw data device_id local_date_time steps a748ee1a-1d0b-4ae9-9074-279a2b6ba524 2020-10-07 00:00:00 5 a748ee1a-1d0b-4ae9-9074-279a2b6ba524 2020-10-07 00:01:00 3 a748ee1a-1d0b-4ae9-9074-279a2b6ba524 2020-10-07 00:02:00 0","title":"Parsedfitbit format"},{"location":"visualizations/data-quality-visualizations/","text":"Data Quality Visualizations \u00b6 We showcase these visualizations with a test study that collected 14 days of smartphone and Fitbit data from two participants (example01 and example02) and extracted behavioral features within five time segments (daily, morning, afternoon, evening, and night). Note Time segments (e.g. daily , morning , etc.) can have multiple instances (day 1, day 2, or morning 1, morning 2, etc.) 1. Histograms of phone data yield \u00b6 RAPIDS provides two histograms that show the number of time segment instances that had a certain ratio of valid yielded minutes and hours , respectively. A valid yielded minute has at least 1 row of data from any smartphone sensor and a valid yielded hour contains at least M valid minutes. These plots can be used as a rough indication of the smartphone monitoring coverage during a study aggregated across all participants. For example, the figure below shows a valid yielded minutes histogram for daily segments and we can infer that the monitoring coverage was very good since almost all segments contain at least 90 to 100% of the expected sensed minutes. Example Click here to see an example of these interactive visualizations in HTML format Histogram of the data yielded minute ratio for a single participant during five time segments (daily, morning, afternoon, evening, and night) 2. Heatmaps of overall data yield \u00b6 These heatmaps are a break down per time segment and per participant of Visualization 1 . Heatmap\u2019s rows represent participants, columns represent time segment instances and the cells\u2019 color represent the valid yielded minute or hour ratio for a participant during a time segment instance. As different participants might join a study on different dates and time segments can be of any length and start on any day, the x-axis can be labelled with the absolute time of the start of each time segment instance or the time delta between the start of each time segment instance minus the start of the first instance. These plots provide a quick study overview of the monitoring coverage per person and per time segment. The figure below shows the heatmap of the valid yielded minute ratio for participants example01 and example02 on daily segments and, as we inferred from the previous histogram, the lighter (yellow) color on most time segment instances (cells) indicate both phones sensed data without interruptions for most days (except for the first and last ones). [ABSOLUTE_TIME] Example Click here to see an example of these interactive visualizations in HTML format Overall compliance heatmap for all participants [RELATIVE_TIME] Example Click here to see an example of these interactive visualizations in HTML format Overall compliance heatmap for all participants 3. Heatmap of recorded phone sensors \u00b6 In these heatmaps rows represent time segment instances, columns represent minutes since the start of a time segment instance, and cells\u2019 color shows the number of phone sensors that logged at least one row of data during those 1-minute windows. RAPIDS creates a plot per participant and per time segment and can be used as a rough indication of whether time-based sensors were following their sensing schedule (e.g. if location was being sensed every 2 minutes). The figure below shows this heatmap for phone sensors collected by participant example01 in daily time segments from Apr 23 rd 2020 to May 4 th 2020. We can infer that for most of the monitoring time, the participant\u2019s phone logged data from at least 7 sensors each minute. Example Click here to see an example of these interactive visualizations in HTML format Heatmap of the recorded phone sensors per minute and per time segment of a single participant 4. Heatmap of sensor row count \u00b6 These heatmaps are a per-sensor breakdown of Visualization 1 and Visualization 2 . Note that the second row (ratio of valid yielded minutes) of this heatmap matches the respective participant (bottom) row the screenshot in Visualization 2. In these heatmaps rows represent phone or Fitbit sensors, columns represent time segment instances and cell\u2019s color shows the normalized (0 to 1) row count of each sensor within a time segment instance. RAPIDS creates one heatmap per participant and they can be used to judge missing data on a per participant and per sensor basis. The figure below shows data for 14 phone sensors (including data yield) of example01\u2019s daily segments. From the top two rows, we can see that the phone was sensing data for most of the monitoring period (as suggested by Figure 3 and Figure 4). We can also infer how phone usage influenced the different sensor streams; there are peaks of screen events during the first day (Apr 23 rd ), peaks of location coordinates on Apr 26 th and Apr 30 th , and no sent or received SMS except for Apr 23 rd , Apr 29 th and Apr 30 th (unlabeled row between screen and locations). Example Click here to see an example of these interactive visualizations in HTML format Heatmap of the sensor row count per time segment of a single participant","title":"Data Quality"},{"location":"visualizations/data-quality-visualizations/#data-quality-visualizations","text":"We showcase these visualizations with a test study that collected 14 days of smartphone and Fitbit data from two participants (example01 and example02) and extracted behavioral features within five time segments (daily, morning, afternoon, evening, and night). Note Time segments (e.g. daily , morning , etc.) can have multiple instances (day 1, day 2, or morning 1, morning 2, etc.)","title":"Data Quality Visualizations"},{"location":"visualizations/data-quality-visualizations/#1-histograms-of-phone-data-yield","text":"RAPIDS provides two histograms that show the number of time segment instances that had a certain ratio of valid yielded minutes and hours , respectively. A valid yielded minute has at least 1 row of data from any smartphone sensor and a valid yielded hour contains at least M valid minutes. These plots can be used as a rough indication of the smartphone monitoring coverage during a study aggregated across all participants. For example, the figure below shows a valid yielded minutes histogram for daily segments and we can infer that the monitoring coverage was very good since almost all segments contain at least 90 to 100% of the expected sensed minutes. Example Click here to see an example of these interactive visualizations in HTML format Histogram of the data yielded minute ratio for a single participant during five time segments (daily, morning, afternoon, evening, and night)","title":"1. Histograms of phone data yield"},{"location":"visualizations/data-quality-visualizations/#2-heatmaps-of-overall-data-yield","text":"These heatmaps are a break down per time segment and per participant of Visualization 1 . Heatmap\u2019s rows represent participants, columns represent time segment instances and the cells\u2019 color represent the valid yielded minute or hour ratio for a participant during a time segment instance. As different participants might join a study on different dates and time segments can be of any length and start on any day, the x-axis can be labelled with the absolute time of the start of each time segment instance or the time delta between the start of each time segment instance minus the start of the first instance. These plots provide a quick study overview of the monitoring coverage per person and per time segment. The figure below shows the heatmap of the valid yielded minute ratio for participants example01 and example02 on daily segments and, as we inferred from the previous histogram, the lighter (yellow) color on most time segment instances (cells) indicate both phones sensed data without interruptions for most days (except for the first and last ones). [ABSOLUTE_TIME] Example Click here to see an example of these interactive visualizations in HTML format Overall compliance heatmap for all participants [RELATIVE_TIME] Example Click here to see an example of these interactive visualizations in HTML format Overall compliance heatmap for all participants","title":"2. Heatmaps of overall data yield"},{"location":"visualizations/data-quality-visualizations/#3-heatmap-of-recorded-phone-sensors","text":"In these heatmaps rows represent time segment instances, columns represent minutes since the start of a time segment instance, and cells\u2019 color shows the number of phone sensors that logged at least one row of data during those 1-minute windows. RAPIDS creates a plot per participant and per time segment and can be used as a rough indication of whether time-based sensors were following their sensing schedule (e.g. if location was being sensed every 2 minutes). The figure below shows this heatmap for phone sensors collected by participant example01 in daily time segments from Apr 23 rd 2020 to May 4 th 2020. We can infer that for most of the monitoring time, the participant\u2019s phone logged data from at least 7 sensors each minute. Example Click here to see an example of these interactive visualizations in HTML format Heatmap of the recorded phone sensors per minute and per time segment of a single participant","title":"3. Heatmap of recorded phone sensors"},{"location":"visualizations/data-quality-visualizations/#4-heatmap-of-sensor-row-count","text":"These heatmaps are a per-sensor breakdown of Visualization 1 and Visualization 2 . Note that the second row (ratio of valid yielded minutes) of this heatmap matches the respective participant (bottom) row the screenshot in Visualization 2. In these heatmaps rows represent phone or Fitbit sensors, columns represent time segment instances and cell\u2019s color shows the normalized (0 to 1) row count of each sensor within a time segment instance. RAPIDS creates one heatmap per participant and they can be used to judge missing data on a per participant and per sensor basis. The figure below shows data for 14 phone sensors (including data yield) of example01\u2019s daily segments. From the top two rows, we can see that the phone was sensing data for most of the monitoring period (as suggested by Figure 3 and Figure 4). We can also infer how phone usage influenced the different sensor streams; there are peaks of screen events during the first day (Apr 23 rd ), peaks of location coordinates on Apr 26 th and Apr 30 th , and no sent or received SMS except for Apr 23 rd , Apr 29 th and Apr 30 th (unlabeled row between screen and locations). Example Click here to see an example of these interactive visualizations in HTML format Heatmap of the sensor row count per time segment of a single participant","title":"4. Heatmap of sensor row count"},{"location":"visualizations/feature-visualizations/","text":"Feature Visualizations \u00b6 1. Heatmap Correlation Matrix \u00b6 Columns and rows are the behavioral features computed in RAPIDS, cells\u2019 color represents the correlation coefficient between all days of data for every pair of features of all participants. The user can specify a minimum number of observations ( time segment instances) required to compute the correlation between two features using the MIN_ROWS_RATIO parameter (0.5 by default) and the correlation method (Pearson, Spearman or Kendall) with the CORR_METHOD parameter. In addition, this plot can be configured to only display correlation coefficients above a threshold using the CORR_THRESHOLD parameter (0.1 by default). Example Click here to see an example of these interactive visualizations in HTML format Correlation matrix heatmap for all the features of all participants","title":"Features"},{"location":"visualizations/feature-visualizations/#feature-visualizations","text":"","title":"Feature Visualizations"},{"location":"visualizations/feature-visualizations/#1-heatmap-correlation-matrix","text":"Columns and rows are the behavioral features computed in RAPIDS, cells\u2019 color represents the correlation coefficient between all days of data for every pair of features of all participants. The user can specify a minimum number of observations ( time segment instances) required to compute the correlation between two features using the MIN_ROWS_RATIO parameter (0.5 by default) and the correlation method (Pearson, Spearman or Kendall) with the CORR_METHOD parameter. In addition, this plot can be configured to only display correlation coefficients above a threshold using the CORR_THRESHOLD parameter (0.1 by default). Example Click here to see an example of these interactive visualizations in HTML format Correlation matrix heatmap for all the features of all participants","title":"1. Heatmap Correlation Matrix"},{"location":"workflow-examples/analysis/","text":"Analysis Workflow Example \u00b6 TL;DR In addition to using RAPIDS to extract behavioral features and create plots, you can structure your data analysis within RAPIDS (i.e. cleaning your features and creating ML/statistical models) We include an analysis example in RAPIDS that covers raw data processing, cleaning, feature extraction, machine learning modeling, and evaluation Use this example as a guide to structure your own analysis within RAPIDS RAPIDS analysis workflows are compatible with your favorite data science tools and libraries RAPIDS analysis workflows are reproducible and we encourage you to publish them along with your research papers Why should I integrate my analysis in RAPIDS? \u00b6 Even though the bulk of RAPIDS current functionality is related to the computation of behavioral features, we recommend RAPIDS as a complementary tool to create a mobile data analysis workflow. This is because the cookiecutter data science file organization guidelines, the use of Snakemake, the provided behavioral features, and the reproducible R and Python development environments allow researchers to divide an analysis workflow into small parts that can be audited, shared in an online repository, reproduced in other computers, and understood by other people as they follow a familiar and consistent structure. We believe these advantages outweigh the time needed to learn how to create these workflows in RAPIDS. We clarify that to create analysis workflows in RAPIDS, researchers can still use any data manipulation tools, editors, libraries or languages they are already familiar with. RAPIDS is meant to be the final destination of analysis code that was developed in interactive notebooks or stand-alone scripts. For example, a user can compute call and location features using RAPIDS, then, they can use Jupyter notebooks to explore feature cleaning approaches and once the cleaning code is final, it can be moved to RAPIDS as a new step in the pipeline. In turn, the output of this cleaning step can be used to explore machine learning models and once a model is finished, it can also be transferred to RAPIDS as a step of its own. The idea is that when it is time to publish a piece of research, a RAPIDS workflow can be shared in a public repository as is. In the following sections we share an example of how we structured an analysis workflow in RAPIDS. Analysis workflow structure \u00b6 To accurately reflect the complexity of a real-world modeling scenario, we decided not to oversimplify this example. Importantly, every step in this example follows a basic structure: an input file and parameters are manipulated by an R or Python script that saves the results to an output file. Input files, parameters, output files and scripts are grouped into Snakemake rules that are described on smk files in the rules folder (we point the reader to the relevant rule(s) of each step). Researchers can use these rules and scripts as a guide to create their own as it is expected every modeling project will have different requirements, data and goals but ultimately most follow a similar chainned pattern. Hint The example\u2019s config file is example_profile/example_config.yaml and its Snakefile is in example_profile/Snakefile . The config file is already configured to process the sensor data as explained in Analysis workflow modules . Description of the study modeled in our analysis workflow example \u00b6 Our example is based on a hypothetical study that recruited 2 participants that underwent surgery and collected mobile data for at least one week before and one week after the procedure. Participants wore a Fitbit device and installed the AWARE client in their personal Android and iOS smartphones to collect mobile data 24/7. In addition, participants completed daily severity ratings of 12 common symptoms on a scale from 0 to 10 that we summed up into a daily symptom burden score. The goal of this workflow is to find out if we can predict the daily symptom burden score of a participant. Thus, we framed this question as a binary classification problem with two classes, high and low symptom burden based on the scores above and below average of each participant. We also want to compare the performance of individual (personalized) models vs a population model. In total, our example workflow has nine steps that are in charge of sensor data preprocessing, feature extraction, feature cleaning, machine learning model training and model evaluation (see figure below). We ship this workflow with RAPIDS and share files with test data in an Open Science Framework repository. Modules of RAPIDS example workflow, from raw data to model evaluation Configure and run the analysis workflow example \u00b6 Install RAPIDS Unzip the CSV files inside rapids_example_csv.zip in data/external/example_workflow/*.csv . Create the participant files for this example by running: ./rapids -j1 create_example_participant_files Run the example pipeline with: ./rapids -j1 --profile example_profile Note you will see a lot of warning messages, you can ignore them since they happen because we ran ML algorithms with a small fake dataset. Modules of our analysis workflow example \u00b6 1. Feature extraction We extract daily behavioral features for data yield, received and sent messages, missed, incoming and outgoing calls, resample fused location data using Doryab provider, activity recognition, battery, Bluetooth, screen, light, applications foreground, conversations, Wi-Fi connected, Wi-Fi visible, Fitbit heart rate summary and intraday data, Fitbit sleep summary data, and Fitbit step summary and intraday data without excluding sleep periods with an active bout threshold of 10 steps. In total, we obtained 237 daily sensor features over 12 days per participant. 2. Extract demographic data. It is common to have demographic data in addition to mobile and target (ground truth) data. In this example we include participants\u2019 age, gender and the number of days they spent in hospital after their surgery as features in our model. We extract these three columns from the data/external/example_workflow/participant_info.csv file. As these three features remain the same within participants, they are used only on the population model. Refer to the demographic_features rule in rules/models.smk . 3. Create target labels. The two classes for our machine learning binary classification problem are high and low symptom burden. Target values are already stored in the data/external/example_workflow/participant_target.csv file. A new rule/script can be created if further manipulation is necessary. Refer to the parse_targets rule in rules/models.smk . 4. Feature merging. These daily features are stored on a CSV file per sensor, a CSV file per participant, and a CSV file including all features from all participants (in every case each column represents a feature and each row represents a day). Refer to the merge_sensor_features_for_individual_participants and merge_sensor_features_for_all_participants rules in rules/features.smk . 5. Data visualization. At this point the user can use the five plots RAPIDS provides (or implement new ones) to explore and understand the quality of the raw data and extracted features and decide what sensors, days, or participants to include and exclude. Refer to rules/reports.smk to find the rules that generate these plots. 6. Feature cleaning. In this stage we perform four steps to clean our sensor feature file. First, we discard days with a data yield hour ratio less than or equal to 0.75, i.e. we include days with at least 18 hours of data. Second, we drop columns (features) with more than 30% of missing rows. Third, we drop columns with zero variance. Fourth, we drop rows (days) with more than 30% of missing columns (features). In this cleaning stage several parameters are created and exposed in example_profile/example_config.yaml . After this step, we kept 158 features over 11 days for the individual model of p01, 101 features over 12 days for the individual model of p02 and 106 features over 20 days for the population model. Note that the difference in the number of features between p01 and p02 is mostly due to iOS restrictions that stops researchers from collecting the same number of sensors than in Android phones. Feature cleaning for the individual models is done in the clean_sensor_features_for_individual_participants rule and for the population model in the clean_sensor_features_for_all_participants rule in rules/models.smk . 7. Merge features and targets. In this step we merge the cleaned features and target labels for our individual models in the merge_features_and_targets_for_individual_model rule in rules/models.smk . Additionally, we merge the cleaned features, target labels, and demographic features of our two participants for the population model in the merge_features_and_targets_for_population_model rule in rules/models.smk . These two merged files are the input for our individual and population models. 8. Modelling. This stage has three phases: model building, training and evaluation. In the building phase we impute, normalize and oversample our dataset. Missing numeric values in each column are imputed with their mean and we impute missing categorical values with their mode. We normalize each numeric column with one of three strategies (min-max, z-score, and scikit-learn package\u2019s robust scaler) and we one-hot encode each categorial feature as a numerical array. We oversample our imbalanced dataset using SMOTE (Synthetic Minority Over-sampling Technique) or a Random Over sampler from scikit-learn. All these parameters are exposed in example_profile/example_config.yaml . In the training phase, we create eight models: logistic regression, k-nearest neighbors, support vector machine, decision tree, random forest, gradient boosting classifier, extreme gradient boosting classifier and a light gradient boosting machine. We cross-validate each model with an inner cycle to tune hyper-parameters based on the Macro F1 score and an outer cycle to predict the test set on a model with the best hyper-parameters. Both cross-validation cycles use a leave-one-out strategy. Parameters for each model like weights and learning rates are exposed in example_profile/example_config.yaml . Finally, in the evaluation phase we compute the accuracy, Macro F1, kappa, area under the curve and per class precision, recall and F1 score of all folds of the outer cross-validation cycle. Refer to the modelling_for_individual_participants rule for the individual modeling and to the modelling_for_all_participants rule for the population modeling, both in rules/models.smk . 9. Compute model baselines. We create three baselines to evaluate our classification models. First, a majority classifier that labels each test sample with the majority class of our training data. Second, a random weighted classifier that predicts each test observation sampling at random from a binomial distribution based on the ratio of our target labels. Third, a decision tree classifier based solely on the demographic features of each participant. As we do not have demographic features for individual model, this baseline is only available for population model. Our baseline metrics (e.g. accuracy, precision, etc.) are saved into a CSV file, ready to be compared to our modeling results. Refer to the baselines_for_individual_model rule for the individual model baselines and to the baselines_for_population_model rule for population model baselines, both in rules/models.smk .","title":"Complete Example"},{"location":"workflow-examples/analysis/#analysis-workflow-example","text":"TL;DR In addition to using RAPIDS to extract behavioral features and create plots, you can structure your data analysis within RAPIDS (i.e. cleaning your features and creating ML/statistical models) We include an analysis example in RAPIDS that covers raw data processing, cleaning, feature extraction, machine learning modeling, and evaluation Use this example as a guide to structure your own analysis within RAPIDS RAPIDS analysis workflows are compatible with your favorite data science tools and libraries RAPIDS analysis workflows are reproducible and we encourage you to publish them along with your research papers","title":"Analysis Workflow Example"},{"location":"workflow-examples/analysis/#why-should-i-integrate-my-analysis-in-rapids","text":"Even though the bulk of RAPIDS current functionality is related to the computation of behavioral features, we recommend RAPIDS as a complementary tool to create a mobile data analysis workflow. This is because the cookiecutter data science file organization guidelines, the use of Snakemake, the provided behavioral features, and the reproducible R and Python development environments allow researchers to divide an analysis workflow into small parts that can be audited, shared in an online repository, reproduced in other computers, and understood by other people as they follow a familiar and consistent structure. We believe these advantages outweigh the time needed to learn how to create these workflows in RAPIDS. We clarify that to create analysis workflows in RAPIDS, researchers can still use any data manipulation tools, editors, libraries or languages they are already familiar with. RAPIDS is meant to be the final destination of analysis code that was developed in interactive notebooks or stand-alone scripts. For example, a user can compute call and location features using RAPIDS, then, they can use Jupyter notebooks to explore feature cleaning approaches and once the cleaning code is final, it can be moved to RAPIDS as a new step in the pipeline. In turn, the output of this cleaning step can be used to explore machine learning models and once a model is finished, it can also be transferred to RAPIDS as a step of its own. The idea is that when it is time to publish a piece of research, a RAPIDS workflow can be shared in a public repository as is. In the following sections we share an example of how we structured an analysis workflow in RAPIDS.","title":"Why should I integrate my analysis in RAPIDS?"},{"location":"workflow-examples/analysis/#analysis-workflow-structure","text":"To accurately reflect the complexity of a real-world modeling scenario, we decided not to oversimplify this example. Importantly, every step in this example follows a basic structure: an input file and parameters are manipulated by an R or Python script that saves the results to an output file. Input files, parameters, output files and scripts are grouped into Snakemake rules that are described on smk files in the rules folder (we point the reader to the relevant rule(s) of each step). Researchers can use these rules and scripts as a guide to create their own as it is expected every modeling project will have different requirements, data and goals but ultimately most follow a similar chainned pattern. Hint The example\u2019s config file is example_profile/example_config.yaml and its Snakefile is in example_profile/Snakefile . The config file is already configured to process the sensor data as explained in Analysis workflow modules .","title":"Analysis workflow structure"},{"location":"workflow-examples/analysis/#description-of-the-study-modeled-in-our-analysis-workflow-example","text":"Our example is based on a hypothetical study that recruited 2 participants that underwent surgery and collected mobile data for at least one week before and one week after the procedure. Participants wore a Fitbit device and installed the AWARE client in their personal Android and iOS smartphones to collect mobile data 24/7. In addition, participants completed daily severity ratings of 12 common symptoms on a scale from 0 to 10 that we summed up into a daily symptom burden score. The goal of this workflow is to find out if we can predict the daily symptom burden score of a participant. Thus, we framed this question as a binary classification problem with two classes, high and low symptom burden based on the scores above and below average of each participant. We also want to compare the performance of individual (personalized) models vs a population model. In total, our example workflow has nine steps that are in charge of sensor data preprocessing, feature extraction, feature cleaning, machine learning model training and model evaluation (see figure below). We ship this workflow with RAPIDS and share files with test data in an Open Science Framework repository. Modules of RAPIDS example workflow, from raw data to model evaluation","title":"Description of the study modeled in our analysis workflow example"},{"location":"workflow-examples/analysis/#configure-and-run-the-analysis-workflow-example","text":"Install RAPIDS Unzip the CSV files inside rapids_example_csv.zip in data/external/example_workflow/*.csv . Create the participant files for this example by running: ./rapids -j1 create_example_participant_files Run the example pipeline with: ./rapids -j1 --profile example_profile Note you will see a lot of warning messages, you can ignore them since they happen because we ran ML algorithms with a small fake dataset.","title":"Configure and run the analysis workflow example"},{"location":"workflow-examples/analysis/#modules-of-our-analysis-workflow-example","text":"1. Feature extraction We extract daily behavioral features for data yield, received and sent messages, missed, incoming and outgoing calls, resample fused location data using Doryab provider, activity recognition, battery, Bluetooth, screen, light, applications foreground, conversations, Wi-Fi connected, Wi-Fi visible, Fitbit heart rate summary and intraday data, Fitbit sleep summary data, and Fitbit step summary and intraday data without excluding sleep periods with an active bout threshold of 10 steps. In total, we obtained 237 daily sensor features over 12 days per participant. 2. Extract demographic data. It is common to have demographic data in addition to mobile and target (ground truth) data. In this example we include participants\u2019 age, gender and the number of days they spent in hospital after their surgery as features in our model. We extract these three columns from the data/external/example_workflow/participant_info.csv file. As these three features remain the same within participants, they are used only on the population model. Refer to the demographic_features rule in rules/models.smk . 3. Create target labels. The two classes for our machine learning binary classification problem are high and low symptom burden. Target values are already stored in the data/external/example_workflow/participant_target.csv file. A new rule/script can be created if further manipulation is necessary. Refer to the parse_targets rule in rules/models.smk . 4. Feature merging. These daily features are stored on a CSV file per sensor, a CSV file per participant, and a CSV file including all features from all participants (in every case each column represents a feature and each row represents a day). Refer to the merge_sensor_features_for_individual_participants and merge_sensor_features_for_all_participants rules in rules/features.smk . 5. Data visualization. At this point the user can use the five plots RAPIDS provides (or implement new ones) to explore and understand the quality of the raw data and extracted features and decide what sensors, days, or participants to include and exclude. Refer to rules/reports.smk to find the rules that generate these plots. 6. Feature cleaning. In this stage we perform four steps to clean our sensor feature file. First, we discard days with a data yield hour ratio less than or equal to 0.75, i.e. we include days with at least 18 hours of data. Second, we drop columns (features) with more than 30% of missing rows. Third, we drop columns with zero variance. Fourth, we drop rows (days) with more than 30% of missing columns (features). In this cleaning stage several parameters are created and exposed in example_profile/example_config.yaml . After this step, we kept 158 features over 11 days for the individual model of p01, 101 features over 12 days for the individual model of p02 and 106 features over 20 days for the population model. Note that the difference in the number of features between p01 and p02 is mostly due to iOS restrictions that stops researchers from collecting the same number of sensors than in Android phones. Feature cleaning for the individual models is done in the clean_sensor_features_for_individual_participants rule and for the population model in the clean_sensor_features_for_all_participants rule in rules/models.smk . 7. Merge features and targets. In this step we merge the cleaned features and target labels for our individual models in the merge_features_and_targets_for_individual_model rule in rules/models.smk . Additionally, we merge the cleaned features, target labels, and demographic features of our two participants for the population model in the merge_features_and_targets_for_population_model rule in rules/models.smk . These two merged files are the input for our individual and population models. 8. Modelling. This stage has three phases: model building, training and evaluation. In the building phase we impute, normalize and oversample our dataset. Missing numeric values in each column are imputed with their mean and we impute missing categorical values with their mode. We normalize each numeric column with one of three strategies (min-max, z-score, and scikit-learn package\u2019s robust scaler) and we one-hot encode each categorial feature as a numerical array. We oversample our imbalanced dataset using SMOTE (Synthetic Minority Over-sampling Technique) or a Random Over sampler from scikit-learn. All these parameters are exposed in example_profile/example_config.yaml . In the training phase, we create eight models: logistic regression, k-nearest neighbors, support vector machine, decision tree, random forest, gradient boosting classifier, extreme gradient boosting classifier and a light gradient boosting machine. We cross-validate each model with an inner cycle to tune hyper-parameters based on the Macro F1 score and an outer cycle to predict the test set on a model with the best hyper-parameters. Both cross-validation cycles use a leave-one-out strategy. Parameters for each model like weights and learning rates are exposed in example_profile/example_config.yaml . Finally, in the evaluation phase we compute the accuracy, Macro F1, kappa, area under the curve and per class precision, recall and F1 score of all folds of the outer cross-validation cycle. Refer to the modelling_for_individual_participants rule for the individual modeling and to the modelling_for_all_participants rule for the population modeling, both in rules/models.smk . 9. Compute model baselines. We create three baselines to evaluate our classification models. First, a majority classifier that labels each test sample with the majority class of our training data. Second, a random weighted classifier that predicts each test observation sampling at random from a binomial distribution based on the ratio of our target labels. Third, a decision tree classifier based solely on the demographic features of each participant. As we do not have demographic features for individual model, this baseline is only available for population model. Our baseline metrics (e.g. accuracy, precision, etc.) are saved into a CSV file, ready to be compared to our modeling results. Refer to the baselines_for_individual_model rule for the individual model baselines and to the baselines_for_population_model rule for population model baselines, both in rules/models.smk .","title":"Modules of our analysis workflow example"},{"location":"workflow-examples/minimal/","text":"Minimal Working Example \u00b6 This is a quick guide for creating and running a simple pipeline to extract missing, outgoing, and incoming call features for 24 hr ( 00:00:00 to 23:59:59 ) and night ( 00:00:00 to 05:59:59 ) time segments of every day of data of one participant that was monitored on the US East coast with an Android smartphone. Install RAPIDS and make sure your conda environment is active (see Installation ) Download this CSV file and save it as data/external/aware_csv/calls.csv Make the changes listed below for the corresponding Configuration step (we provide an example of what the relevant sections in your config.yml will look like after you are done) Required configuration changes ( click to expand ) Supported data streams . Based on the docs, we decided to use the aware_csv data stream because we are processing aware data saved in a CSV file. We will use this label in a later step; there\u2019s no need to type it or save it anywhere yet. Create your participants file . Since we are processing data from a single participant, you only need to create a single participant file called p01.yaml in data/external/participant_files . This participant file only has a PHONE section because this hypothetical participant was only monitored with a smartphone. Note that for a real analysis, you can do this automatically with a CSV file Add p01 to [PIDS] in config.yaml Create a file in data/external/participant_files/p01.yaml with the following content: PHONE : DEVICE_IDS : [ a748ee1a-1d0b-4ae9-9074-279a2b6ba524 ] # the participant's AWARE device id PLATFORMS : [ android ] # or ios LABEL : MyTestP01 # any string START_DATE : 2020-01-01 # this can also be empty END_DATE : 2021-01-01 # this can also be empty Select what time segments you want to extract features on. Set [TIME_SEGMENTS][FILE] to data/external/timesegments_periodic.csv Create a file in data/external/timesegments_periodic.csv with the following content label,start_time,length,repeats_on,repeats_value daily,00:00:00,23H 59M 59S,every_day,0 night,00:00:00,5H 59M 59S,every_day,0 Choose the timezone of your study . We will use the default time zone settings since this example is processing data collected on the US East Coast ( America/New_York ) TIMEZONE : TYPE : SINGLE SINGLE : TZCODE : America/New_York Modify your device data stream configuration Set [PHONE_DATA_STREAMS][USE] to aware_csv . We will use the default value for [PHONE_DATA_STREAMS][aware_csv][FOLDER] since we already stored the test calls CSV file there. Select what sensors and features you want to process. Set [PHONE_CALLS][CONTAINER] to calls.csv in the config.yaml file. Set [PHONE_CALLS][PROVIDERS][RAPIDS][COMPUTE] to True in the config.yaml file. Example of the config.yaml sections after the changes outlined above This will be your config.yaml after following the instructions above. Click on the numbered markers to know more. PIDS : [ p01 ] # (1) TIMEZONE : TYPE : SINGLE # (2) SINGLE : TZCODE : America/New_York # ... other irrelevant sections TIME_SEGMENTS : &time_segments TYPE : PERIODIC # (3) FILE : \"data/external/timesegments_periodic.csv\" # (4) INCLUDE_PAST_PERIODIC_SEGMENTS : FALSE PHONE_DATA_STREAMS : USE : aware_csv # (5) aware_csv : FOLDER : data/external/aware_csv # (6) # ... other irrelevant sections ############## PHONE ########################################################### ################################################################################ # ... other irrelevant sections # Communication call features config, TYPES and FEATURES keys need to match PHONE_CALLS : CONTAINER : calls.csv # (7) PROVIDERS : RAPIDS : COMPUTE : True # (8) CALL_TYPES : ... We added p01 to PIDS after creating the participant file: data/external/participant_files/p01.yaml With the following content: PHONE : DEVICE_IDS : [ a748ee1a-1d0b-4ae9-9074-279a2b6ba524 ] # the participant's AWARE device id PLATFORMS : [ android ] # or ios LABEL : MyTestP01 # any string START_DATE : 2020-01-01 # this can also be empty END_DATE : 2021-01-01 # this can also be empty We use the default SINGLE time zone. We use the default PERIODIC time segment [TYPE] We created this time segments file with these lines: label,start_time,length,repeats_on,repeats_value daily,00:00:00,23H 59M 59S,every_day,0 night,001:00:00,5H 59M 59S,every_day,0 We set [USE] to aware_device to tell RAPIDS to process sensor data collected with the AWARE Framework stored in CSV files. We used the default [FOLDER] for awre_csv since we already stored our test calls.csv file there We changed [CONTAINER] to calls.csv to process our test call data. We flipped [COMPUTE] to True to extract call behavioral features using the RAPIDS feature provider. Run RAPIDS ./rapids -j1 The call features for daily and morning time segments will be in data/processed/features/all_participants/all_sensor_features.csv","title":"Minimal Example"},{"location":"workflow-examples/minimal/#minimal-working-example","text":"This is a quick guide for creating and running a simple pipeline to extract missing, outgoing, and incoming call features for 24 hr ( 00:00:00 to 23:59:59 ) and night ( 00:00:00 to 05:59:59 ) time segments of every day of data of one participant that was monitored on the US East coast with an Android smartphone. Install RAPIDS and make sure your conda environment is active (see Installation ) Download this CSV file and save it as data/external/aware_csv/calls.csv Make the changes listed below for the corresponding Configuration step (we provide an example of what the relevant sections in your config.yml will look like after you are done) Required configuration changes ( click to expand ) Supported data streams . Based on the docs, we decided to use the aware_csv data stream because we are processing aware data saved in a CSV file. We will use this label in a later step; there\u2019s no need to type it or save it anywhere yet. Create your participants file . Since we are processing data from a single participant, you only need to create a single participant file called p01.yaml in data/external/participant_files . This participant file only has a PHONE section because this hypothetical participant was only monitored with a smartphone. Note that for a real analysis, you can do this automatically with a CSV file Add p01 to [PIDS] in config.yaml Create a file in data/external/participant_files/p01.yaml with the following content: PHONE : DEVICE_IDS : [ a748ee1a-1d0b-4ae9-9074-279a2b6ba524 ] # the participant's AWARE device id PLATFORMS : [ android ] # or ios LABEL : MyTestP01 # any string START_DATE : 2020-01-01 # this can also be empty END_DATE : 2021-01-01 # this can also be empty Select what time segments you want to extract features on. Set [TIME_SEGMENTS][FILE] to data/external/timesegments_periodic.csv Create a file in data/external/timesegments_periodic.csv with the following content label,start_time,length,repeats_on,repeats_value daily,00:00:00,23H 59M 59S,every_day,0 night,00:00:00,5H 59M 59S,every_day,0 Choose the timezone of your study . We will use the default time zone settings since this example is processing data collected on the US East Coast ( America/New_York ) TIMEZONE : TYPE : SINGLE SINGLE : TZCODE : America/New_York Modify your device data stream configuration Set [PHONE_DATA_STREAMS][USE] to aware_csv . We will use the default value for [PHONE_DATA_STREAMS][aware_csv][FOLDER] since we already stored the test calls CSV file there. Select what sensors and features you want to process. Set [PHONE_CALLS][CONTAINER] to calls.csv in the config.yaml file. Set [PHONE_CALLS][PROVIDERS][RAPIDS][COMPUTE] to True in the config.yaml file. Example of the config.yaml sections after the changes outlined above This will be your config.yaml after following the instructions above. Click on the numbered markers to know more. PIDS : [ p01 ] # (1) TIMEZONE : TYPE : SINGLE # (2) SINGLE : TZCODE : America/New_York # ... other irrelevant sections TIME_SEGMENTS : &time_segments TYPE : PERIODIC # (3) FILE : \"data/external/timesegments_periodic.csv\" # (4) INCLUDE_PAST_PERIODIC_SEGMENTS : FALSE PHONE_DATA_STREAMS : USE : aware_csv # (5) aware_csv : FOLDER : data/external/aware_csv # (6) # ... other irrelevant sections ############## PHONE ########################################################### ################################################################################ # ... other irrelevant sections # Communication call features config, TYPES and FEATURES keys need to match PHONE_CALLS : CONTAINER : calls.csv # (7) PROVIDERS : RAPIDS : COMPUTE : True # (8) CALL_TYPES : ... We added p01 to PIDS after creating the participant file: data/external/participant_files/p01.yaml With the following content: PHONE : DEVICE_IDS : [ a748ee1a-1d0b-4ae9-9074-279a2b6ba524 ] # the participant's AWARE device id PLATFORMS : [ android ] # or ios LABEL : MyTestP01 # any string START_DATE : 2020-01-01 # this can also be empty END_DATE : 2021-01-01 # this can also be empty We use the default SINGLE time zone. We use the default PERIODIC time segment [TYPE] We created this time segments file with these lines: label,start_time,length,repeats_on,repeats_value daily,00:00:00,23H 59M 59S,every_day,0 night,001:00:00,5H 59M 59S,every_day,0 We set [USE] to aware_device to tell RAPIDS to process sensor data collected with the AWARE Framework stored in CSV files. We used the default [FOLDER] for awre_csv since we already stored our test calls.csv file there We changed [CONTAINER] to calls.csv to process our test call data. We flipped [COMPUTE] to True to extract call behavioral features using the RAPIDS feature provider. Run RAPIDS ./rapids -j1 The call features for daily and morning time segments will be in data/processed/features/all_participants/all_sensor_features.csv","title":"Minimal Working Example"}]} \ No newline at end of file diff --git a/1.3/setup/configuration/index.html b/1.3/setup/configuration/index.html new file mode 100644 index 00000000..ac25b43d --- /dev/null +++ b/1.3/setup/configuration/index.html @@ -0,0 +1,3063 @@ + + + + + + + + + + + + + + + + + + + + + + Configuration - RAPIDS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + +
      +
      +
      + + + + + + +
      +
      + + + + + + + + +

      Configuration

      +

      You need to follow these steps to configure your RAPIDS deployment before you can extract behavioral features.

      +
        +
      1. Verify RAPIDS can process your data streams
      2. +
      3. Create your participants files
      4. +
      5. Select what time segments you want to extract features on
      6. +
      7. Select the timezone of your study
      8. +
      9. Configure your data streams
      10. +
      11. Select what sensors and features you want to process
      12. +
      +

      When you are done with this configuration, go to executing RAPIDS.

      +
      +

      Hint

      +

      Every time you see config["KEY"] or [KEY] in these docs, we are referring to the corresponding key in the config.yaml file.

      +
      +
      +

      Supported data streams

      +

      A data stream refers to sensor data collected using a specific device with a specific format and stored in a specific container. For example, the aware_mysql data stream handles smartphone data (device) collected with the AWARE Framework (format) stored in a MySQL database (container).

      +

      Check the table in introduction to data streams to know what data streams we support. If your data stream is supported, continue to the next configuration section, you will use its label later in this guide (e.g. aware_mysql). If your steam is not supported, but you want to implement it, follow the tutorial to add support for new data streams and open a new discussion in Github with any questions.

      +
      +

      Participant files

      +

      Participant files link together multiple devices (smartphones and wearables) to specific participants and identify them throughout RAPIDS. You can create these files manually or automatically. Participant files are stored in data/external/participant_files/pxx.yaml and follow a unified structure.

      +
      Remember to modify the config.yaml file with your PIDS

      The list PIDS in config.yaml needs to have the participant file names of the people you want to process. For example, if you created p01.yaml, p02.yaml and p03.yaml files in /data/external/participant_files/, then PIDS should be: +

      PIDS: [p01, p02, p03] 
      +

      +
      +
      Optional: Migrating participants files with the old format

      If you were using the pre-release version of RAPIDS with participant files in plain text (as opposed to yaml), you could run the following command, and your old files will be converted into yaml files stored in data/external/participant_files/

      +
      python tools/update_format_participant_files.py
      +
      +
      +

      Structure of participants files

      +
      Example of the structure of a participant file

      In this example, the participant used an android phone, an ios phone, a Fitbit device, and an Empatica device throughout the study between April 23rd, 2020, and October 28th, 2020

      +

      If your participants didn’t use a [PHONE], [FITBIT] or [EMPATICA] device, it is not necessary to include that section in their participant file. In other words, you can analyze data from 1 or more devices per participant.

      +
      PHONE:
      +  DEVICE_IDS: [a748ee1a-1d0b-4ae9-9074-279a2b6ba524, dsadas-2324-fgsf-sdwr-gdfgs4rfsdf43]
      +  PLATFORMS: [android,ios]
      +  LABEL: test01
      +  START_DATE: 2020-04-23
      +  END_DATE: 2020-10-28
      +FITBIT:
      +  DEVICE_IDS: [fitbit1]
      +  LABEL: test01
      +  START_DATE: 2020-04-23
      +  END_DATE: 2020-10-28
      +EMPATICA:
      +  DEVICE_IDS: [empatica1]
      +  LABEL: test01
      +  START_DATE: 2020-04-23
      +  END_DATE: 2020-10-28
      +
      +
      +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Key                     Description
      [DEVICE_IDS]An array of the strings that uniquely identify each smartphone, you can have more than one for when participants changed phones in the middle of the study.
      [PLATFORMS]An array that specifies the OS of each smartphone in [DEVICE_IDS] , use a combination of android or ios (we support participants that changed platforms in the middle of your study!). You can set [PLATFORMS]: [infer], and RAPIDS will infer them automatically (each phone data stream infer this differently, e.g., aware_mysql uses the aware_device table).
      [LABEL]A string that is used in reports and visualizations.
      [START_DATE]A string with format YYYY-MM-DD or YYYY-MM-DD HH:MM:SS. Only data collected after this date-time will be included in the analysis. By default, YYYY-MM-DD is interpreted as YYYY-MM-DD 00:00:00.
      [END_DATE]A string with format YYYY-MM-DD or YYYY-MM-DD HH:MM:SS. Only data collected before this date-time will be included in the analysis. By default, YYYY-MM-DD is interpreted as YYYY-MM-DD 00:00:00.
      +
      +
      + + + + + + + + + + + + + + + + + + + + + + + + + +
      Key                     Description
      [DEVICE_IDS]An array of the strings that uniquely identify each Fitbit, you can have more than one in case the participant changed devices in the middle of the study.
      [LABEL]A string that is used in reports and visualizations.
      [START_DATE]A string with format YYYY-MM-DD or YYYY-MM-DD HH:MM:SS. Only data collected after this date-time will be included in the analysis. By default, YYYY-MM-DD is interpreted as YYYY-MM-DD 00:00:00.
      [END_DATE]A string with format YYYY-MM-DD or YYYY-MM-DD HH:MM:SS. Only data collected before this date-time will be included in the analysis. By default, YYYY-MM-DD is interpreted as YYYY-MM-DD 00:00:00.
      +
      +
      + + + + + + + + + + + + + + + + + + + + + + + + + +
      Key                     Description
      [DEVICE_IDS]An array of the strings that uniquely identify each Empatica device used by this participant. Since the most common use case involves having multiple zip files from a single device for each person, set this device id to an arbitrary string (we usually use their pid)
      [LABEL]A string that is used in reports and visualizations.
      [START_DATE]A string with format YYYY-MM-DD or YYYY-MM-DD HH:MM:SS. Only data collected after this date-time will be included in the analysis. By default, YYYY-MM-DD is interpreted as YYYY-MM-DD 00:00:00.
      [END_DATE]A string with format YYYY-MM-DD or YYYY-MM-DD HH:MM:SS. Only data collected before this date-time will be included in the analysis. By default, YYYY-MM-DD is interpreted as YYYY-MM-DD 00:00:00.
      +
      +
      +

      Automatic creation of participant files

      +

      You can use a CSV file with a row per participant to automatically create participant files.

      +
      AWARE_DEVICE_TABLE was deprecated

      In previous versions of RAPIDS, you could create participant files automatically using the aware_device table. We deprecated this option, but you can still achieve the same results if you export the output of the following SQL query as a CSV file and follow the instructions below:

      +
      SELECT device_id, device_id as fitbit_id, CONCAT("p", _id) as empatica_id, CONCAT("p", _id) as pid, if(brand = "iPhone", "ios", "android") as platform, CONCAT("p", _id)  as label, DATE_FORMAT(FROM_UNIXTIME((timestamp/1000)- 86400), "%Y-%m-%d") as start_date, CURRENT_DATE as end_date from aware_device order by _id;
      +
      +
      +

      In your config.yaml:

      +
        +
      1. Set CSV_FILE_PATH to a CSV file path that complies with the specs described below
      2. +
      3. Set the devices (PHONE, FITBIT, EMPATICA) [ADD] flag to TRUE depending on what devices you used in your study.
      4. +
      +
      CREATE_PARTICIPANT_FILES:
      +  CSV_FILE_PATH: "your_path/to_your.csv"
      +  PHONE_SECTION:
      +    ADD: TRUE # or FALSE
      +    IGNORED_DEVICE_IDS: []
      +  FITBIT_SECTION:
      +    ADD: TRUE # or FALSE
      +    IGNORED_DEVICE_IDS: []
      +  EMPATICA_SECTION:
      +    ADD: TRUE # or FALSE
      +    IGNORED_DEVICE_IDS: []
      +
      +

      Your CSV file ([CSV_FILE_PATH]) should have the following columns (headers), but the values within each column can be empty:

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ColumnDescription
      device_idPhone device id. Separate multiple ids with ;
      fitbit_idFitbit device id. Separate multiple ids with ;
      empatica_idEmpatica device id. Since the most common use case involves having various zip files from a single device for each person, set this device id to an arbitrary string (we usually use their pid)
      pidUnique identifiers with the format pXXX (your participant files will be named with this string)
      platformUse android, ios or infer as explained above, separate values with ;
      labelA human-readable string that is used in reports and visualizations.
      start_dateA string with format YYY-MM-DD or YYYY-MM-DD HH:MM:SS. By default, YYYY-MM-DD is interpreted as YYYY-MM-DD 00:00:00.
      end_dateA string with format YYY-MM-DD or YYYY-MM-DD HH:MM:SS. By default, YYYY-MM-DD is interpreted as YYYY-MM-DD 00:00:00.
      +
      +

      Example

      +

      We added white spaces to this example to make it easy to read, but you don’t have to.

      +
      device_id                                                                ,fitbit_id, empatica_id ,pid ,label ,platform    ,start_date ,end_date
      +a748ee1a-1d0b-4ae9-9074-279a2b6ba524;dsadas-2324-fgsf-sdwr-gdfgs4rfsdf43 ,fitbit1  , p01         ,p01 ,julio ,android;ios ,2020-01-01 ,2021-01-01
      +4c4cf7a1-0340-44bc-be0f-d5053bf7390c                                     ,fitbit2  , p02         ,p02 ,meng  ,ios         ,2021-01-01 ,2022-01-01
      +
      +
      +

      Then run

      +
      snakemake -j1 create_participants_files
      +
      +
      +

      Time Segments

      +

      Time segments (or epochs) are the time windows on which you want to extract behavioral features. For example, you might want to process data every day, every morning, or only during weekends. RAPIDS offers three categories of time segments that are flexible enough to cover most use cases: frequency (short time windows every day), periodic (arbitrary time windows on any day), and event (arbitrary time windows around events of interest). See also our examples.

      +
      +

      These segments are computed every day, and all have the same duration (for example, 30 minutes). Set the following keys in your config.yaml

      +
      TIME_SEGMENTS: &time_segments
      +  TYPE: FREQUENCY
      +  FILE: "data/external/your_frequency_segments.csv"
      +  INCLUDE_PAST_PERIODIC_SEGMENTS: FALSE
      +
      +

      The file pointed by [TIME_SEGMENTS][FILE] should have the following format and only have 1 row.

      + + + + + + + + + + + + + + + + + +
      ColumnDescription
      labelA string that is used as a prefix in the name of your time segments
      lengthAn integer representing the duration of your time segments in minutes
      +
      +

      Example

      +
      label,length
      +thirtyminutes,30
      +
      +

      This configuration will compute 48 time segments for every day when any data from any participant was sensed. For example:

      +
      start_time,length,label
      +00:00,30,thirtyminutes0000
      +00:30,30,thirtyminutes0001
      +01:00,30,thirtyminutes0002
      +01:30,30,thirtyminutes0003
      +...
      +
      +
      +
      +
      +

      These segments can be computed every day or on specific days of the week, month, quarter, and year. Their minimum duration is 1 minute, but they can be as long as you want. Set the following keys in your config.yaml.

      +
      TIME_SEGMENTS: &time_segments
      +  TYPE: PERIODIC
      +  FILE: "data/external/your_periodic_segments.csv"
      +  INCLUDE_PAST_PERIODIC_SEGMENTS: FALSE # or TRUE
      +
      +

      If [INCLUDE_PAST_PERIODIC_SEGMENTS] is set to TRUE, RAPIDS will consider instances of your segments back enough in the past to include the first row of data of each participant. For example, if the first row of data from a participant happened on Saturday, March 7th, 2020, and the requested segment duration is 7 days starting on every Sunday, the first segment to be considered would begin on Sunday, March 1st if [INCLUDE_PAST_PERIODIC_SEGMENTS] is TRUE or on Sunday, March 8th if FALSE.

      +

      The file pointed by [TIME_SEGMENTS][FILE] should have the following format and can have multiple rows.

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ColumnDescription
      labelA string that is used as a prefix in the name of your time segments. It has to be unique between rows
      start_timeA string with format HH:MM:SS representing the starting time of this segment on any day
      lengthA string representing the length of this segment. It can have one or more of the following strings XXD XXH XXM XXS to represent days, hours, minutes, and seconds. For example, 7D 23H 59M 59S
      repeats_onOne of the following options every_day, wday, qday, mday, and yday. The last four represent a week, quarter, month, and year day
      repeats_valueAn integer complementing repeats_on. If you set repeats_on to every_day, set this to 0, otherwise 1-7 represent a wday starting from Mondays, 1-31 represent a mday, 1-91 represent a qday, and 1-366 represent a yday
      +
      +

      Example

      +
      label,start_time,length,repeats_on,repeats_value
      +daily,00:00:00,23H 59M 59S,every_day,0
      +morning,06:00:00,5H 59M 59S,every_day,0
      +afternoon,12:00:00,5H 59M 59S,every_day,0
      +evening,18:00:00,5H 59M 59S,every_day,0
      +night,00:00:00,5H 59M 59S,every_day,0
      +
      +

      This configuration will create five segment instances (daily, morning, afternoon, evening, night) on any given day (every_day set to 0). The daily segment will start at midnight and last 23:59:59; the other four segments will begin at 6am, 12pm, 6pm, and 12am, respectively, and last for 05:59:59.

      +
      +
      +
      +

      These segments can be computed before or after an event of interest (defined as any UNIX timestamp). Their minimum duration is 1 minute, but they can be as long as you want. The start of each segment can be shifted backward or forwards from the specified timestamp. Set the following keys in your config.yaml.

      +
      TIME_SEGMENTS: &time_segments
      +  TYPE: EVENT
      +  FILE: "data/external/your_event_segments.csv"
      +  INCLUDE_PAST_PERIODIC_SEGMENTS: FALSE # or TRUE
      +
      +

      The file pointed by [TIME_SEGMENTS][FILE] should have the following format and can have multiple rows.

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ColumnDescription
      labelA string that is used as a prefix in the name of your time segments. If labels are unique, every segment is independent; if two or more segments have the same label, their data will be grouped when computing auxiliary data for features like the most frequent contact for calls (the most frequent contact will be calculated across all these segments). There cannot be two overlapping event segments with the same label (RAPIDS will throw an error)
      event_timestampA UNIX timestamp that represents the moment an event of interest happened (clinical relapse, survey, readmission, etc.). The corresponding time segment will be computed around this moment using length, shift, and shift_direction
      lengthA string representing the length of this segment. It can have one or more of the following keys XXD XXH XXM XXS to represent days, hours, minutes, and seconds. For example, 7D 23H 59M 59S
      shiftA string representing the time shift from event_timestamp. It can have one or more of the following keys XXD XXH XXM XXS to represent days, hours, minutes, and seconds. For example, 7D 23H 59M 59S. Use this value to change the start of a segment with respect to its event_timestamp. For example, set this variable to 1H to create a segment that starts 1 hour from an event of interest (shift_direction determines if it’s before or after).
      shift_directionAn integer representing whether the shift is before (-1) or after (1) an event_timestamp
      device_idThe device id (smartphone or Fitbit) to whom this segment belongs to. You have to create a line in this event segment file for each event of a participant that you want to analyze. If you have participants with multiple device ids, you can choose any of them
      +
      +

      Example

      +
      label,event_timestamp,length,shift,shift_direction,device_id
      +stress1,1587661220000,1H,5M,1,a748ee1a-1d0b-4ae9-9074-279a2b6ba524
      +stress2,1587747620000,4H,4H,-1,a748ee1a-1d0b-4ae9-9074-279a2b6ba524
      +stress3,1587906020000,3H,5M,1,a748ee1a-1d0b-4ae9-9074-279a2b6ba524
      +stress4,1584291600000,7H,4H,-1,a748ee1a-1d0b-4ae9-9074-279a2b6ba524
      +stress5,1588172420000,9H,5M,-1,a748ee1a-1d0b-4ae9-9074-279a2b6ba524
      +mood,1587661220000,1H,0,0,a748ee1a-1d0b-4ae9-9074-279a2b6ba524
      +mood,1587747620000,1D,0,0,a748ee1a-1d0b-4ae9-9074-279a2b6ba524
      +mood,1587906020000,7D,0,0,a748ee1a-1d0b-4ae9-9074-279a2b6ba524
      +
      +

      This example will create eight segments for a single participant (a748ee1a...), five independent stressX segments with various lengths (1,4,3,7, and 9 hours). Segments stress1, stress3, and stress5 are shifted forwards by 5 minutes, and stress2 and stress4 are shifted backward by 4 hours (that is, if the stress4 event happened on March 15th at 1pm EST (1584291600000), the time segment will start on that day at 9am and end at 4pm).

      +

      The three mood segments are 1 hour, 1 day, and 7 days long and have no shift. In addition, these mood segments are grouped together, meaning that although RAPIDS will compute features on each one of them, some information for such computation will be extracted from all three segments, for example, the phone contact that called a participant the most, or the location clusters visited by a participant.

      +
      +
      Date time labels of event segments

      In the final feature file, you will find a row per event segment. The local_segment column of each row has a label, a start date-time string, and an end date-time string.

      +
      weeklysurvey2060#2020-09-12 01:00:00,2020-09-18 23:59:59
      +
      +

      All sensor data is always segmented based on timestamps, and the date-time strings are attached for informative purposes. For example, you can plot your features based on these strings.

      +

      When you configure RAPIDS to work with a single time zone, such time zone code will be used to convert start/end timestamps (the ones you typed in the event segments file) into start/end date-time strings. However, when you configure RAPIDS to work with multiple time zones, RAPIDS will use the most common time zone across all devices of every participant to do the conversion. The most common time zone is the one in which a participant spent the most time.

      +

      In practical terms, this means that the date-time strings of event segments that happened in uncommon time zones will have shifted start/end date-time labels. However, the data within each segment was correctly filtered based on timestamps.

      +
      +
      +
      +

      Segment Examples

      +
      +

      Use the following Frequency segment file to create 288 (12 * 60 * 24) 5-minute segments starting from midnight of every day in your study +

      label,length
      +fiveminutes,5
      +

      +
      +
      +

      Use the following Periodic segment file to create daily segments starting from midnight of every day in your study +

      label,start_time,length,repeats_on,repeats_value
      +daily,00:00:00,23H 59M 59S,every_day,0
      +

      +
      +
      +

      Use the following Periodic segment file to create morning segments starting at 06:00:00 and ending at 11:59:59 of every day in your study +

      label,start_time,length,repeats_on,repeats_value
      +morning,06:00:00,5H 59M 59S,every_day,0
      +

      +
      +
      +

      Use the following Periodic segment file to create overnight segments starting at 20:00:00 and ending at 07:59:59 (next day) of every day in your study +

      label,start_time,length,repeats_on,repeats_value
      +morning,20:00:00,11H 59M 59S,every_day,0
      +

      +
      +
      +

      Use the following Periodic segment file to create non-overlapping weekly segments starting at midnight of every Monday in your study +

      label,start_time,length,repeats_on,repeats_value
      +weekly,00:00:00,6D 23H 59M 59S,wday,1
      +
      +Use the following Periodic segment file to create overlapping weekly segments starting at midnight of every day in your study +
      label,start_time,length,repeats_on,repeats_value
      +weekly,00:00:00,6D 23H 59M 59S,every_day,0
      +

      +
      +
      +

      Use the following Periodic segment file to create week-end segments starting at midnight of every Saturday in your study +

      label,start_time,length,repeats_on,repeats_value
      +weekend,00:00:00,1D 23H 59M 59S,wday,6
      +

      +
      +
      +

      Use the following Event segment file to create two 2-hour segments that start 1 hour before surveys answered by 3 participants +

      label,event_timestamp,length,shift,shift_direction,device_id
      +survey1,1587661220000,2H,1H,-1,a748ee1a-1d0b-4ae9-9074-279a2b6ba524
      +survey2,1587747620000,2H,1H,-1,a748ee1a-1d0b-4ae9-9074-279a2b6ba524
      +survey1,1587906020000,2H,1H,-1,rqtertsd-43ff-34fr-3eeg-efe4fergregr
      +survey2,1584291600000,2H,1H,-1,rqtertsd-43ff-34fr-3eeg-efe4fergregr
      +survey1,1588172420000,2H,1H,-1,klj34oi2-8frk-2343-21kk-324ljklewlr3
      +survey2,1584291600000,2H,1H,-1,klj34oi2-8frk-2343-21kk-324ljklewlr3
      +

      +
      +
      +
      +

      Timezone of your study

      +

      Single timezone

      +

      If your study only happened in a single time zone or you want to ignore short trips of your participants to different time zones, select the appropriate code from this list and change the following config key. Double-check your timezone code pick; for example, US Eastern Time is America/New_York, not EST.

      +
      TIMEZONE: 
      +    TYPE: SINGLE
      +    TZCODE: America/New_York
      +
      +

      Multiple timezones

      +

      If your participants lived in different time zones or they traveled across time zones, and you know when participants’ devices were in a specific time zone, RAPIDS can use this data to process your data streams with the correct date-time. You need to provide RAPIDS with the time zone data in a CSV file ([TZCODES_FILE]) in the format described below.

      +
      TIMEZONE: 
      +    TYPE: MULTIPLE
      +    SINGLE:
      +      TZCODE: America/New_York
      +    MULTIPLE:
      +      TZCODES_FILE: path_to/time_zones_csv.file
      +      IF_MISSING_TZCODE: STOP
      +      DEFAULT_TZCODE: America/New_York
      +      FITBIT: 
      +        ALLOW_MULTIPLE_TZ_PER_DEVICE: False
      +        INFER_FROM_SMARTPHONE_TZ: False
      +
      +

      Parameters for [TIMEZONE]

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Parameter                                                           Description
      [TYPE]Either SINGLE or MULTIPLE as explained above
      [SINGLE][TZCODE]The time zone code from this list to be used across all devices
      [MULTIPLE][TZCODES_FILE]A CSV file containing the time zones in which participants’ devices sensed data (see the required format below). Multiple devices can be linked to the same person. Read more in Participants Files
      [MULTIPLE][IF_MISSING_TZCODE]When a device is missing from [TZCODES_FILE] Set this flag to STOP to stop RAPIDS execution and show an error, or to USE_DEFAULT to assign the time zone specified in [DEFAULT_TZCODE] to any such devices
      [MULTIPLE][FITBIT][ALLOW_MULTIPLE_TZ_PER_DEVICE]You only need to care about this flag if one or more Fitbit devices sensed data in one or more time zones, and you want RAPIDS to take into account this in its feature computation. Read more in “How does RAPIDS handle Fitbit devices?” below.
      [MULTIPLE][FITBIT][INFER_FROM_SMARTPHONE_TZ]You only need to care about this flag if one or more Fitbit devices sensed data in one or more time zones, and you want RAPIDS to take into account this in its feature computation. Read more in “How does RAPIDS handle Fitbit devices?” below.
      +
      Format of TZCODES_FILE

      TZCODES_FILE has three columns and a row for each time zone a device visited (a device can be a smartphone or wearable (Fitbit/Empatica)):

      + + + + + + + + + + + + + + + + + + + + + +
      ColumnDescription
      device_idA string that uniquely identifies a smartphone or wearable
      tzcodeA string with the appropriate code from this list that represents the time zone where the device sensed data
      timestampA UNIX timestamp indicating when was the first time this device_id sensed data in tzcode
      +
      device_id,                            tzcode,              timestamp
      +13dbc8a3-dae3-4834-823a-4bc96a7d459d, America/New_York,     1587500000000
      +13dbc8a3-dae3-4834-823a-4bc96a7d459d, America/Mexico_City,  1587600000000
      +13dbc8a3-dae3-4834-823a-4bc96a7d459d, America/Los_Angeles,  1587700000000
      +65sa66a5-2d2d-4524-946v-44ascbv4sad7, Europe/Amsterdam,     1587100000000
      +65sa66a5-2d2d-4524-946v-44ascbv4sad7, Europe/Berlin,        1587200000000
      +65sa66a5-2d2d-4524-946v-44ascbv4sad7, Europe/Amsterdam,     1587300000000
      +
      +

      Using this file, RAPDIS will create time zone intervals per device, for example for 13dbc8a3-dae3-4834-823a-4bc96a7d459d:

      +
        +
      • Interval 1 [1587500000000, 1587599999999] for America/New_York
      • +
      • Interval 2 [1587600000000, 1587699999999] for America/Mexico_City
      • +
      • Interval 3 [1587700000000, now] for America/Los_Angeles
      • +
      +

      Any sensor data row from a device will be assigned a timezone if it falls within that interval, for example:

      +
        +
      • A screen row sensed at 1587533333333 will be assigned to America/New_York because it falls within Interval 1
      • +
      • A screen row sensed at 1587400000000 will be discarded because it was logged outside any interval.
      • +
      +
      +
      Can I get the TZCODES_FILE from the time zone table collected automatically by the AWARE app?

      Sure. You can put your timezone table (timezone.csv) collected by the AWARE app under data/external folder and run: +

      python tools/create_multi_timezones_file.py
      +
      +The TZCODES_FILE will be saved as data/external/multiple_timezones.csv.

      +
      +
      What happens if participant X lives in Los Angeles but participant Y lives in Amsterdam and they both stayed there during my study?

      Add a row per participant and set timestamp to 0: +

      device_id,                            tzcode,              timestamp
      +13dbc8a3-dae3-4834-823a-4bc96a7d459d, America/Los_Angeles,  0
      +65sa66a5-2d2d-4524-946v-44ascbv4sad7, Europe/Amsterdam,     0
      +

      +
      +
      What happens if I forget to add a timezone for one or more devices?

      It depends on [IF_MISSING_TZCODE].

      +

      If [IF_MISSING_TZCODE] is set to STOP, RAPIDS will stop its execution and show you an error message.

      +

      If [IF_MISSING_TZCODE] is set to USE_DEFAULT, it will assign the time zone specified in [DEFAULT_TZCODE] to any devices with missing time zone information in [TZCODES_FILE]. This is helpful if only a few of your participants had multiple timezones, and you don’t want to specify the same time zone for the rest.

      +
      +
      How does RAPIDS handle Fitbit devices?

      Fitbit devices are not time zone aware, and they always log data with a local date-time string.

      +
        +
      • +

        When none of the Fitbit devices in your study changed time zones (e.g., p01 was always in New York and p02 was always in Amsterdam), you can set a single time zone per Fitbit device id along with a timestamp of 0 (you can still assign multiple time zones to smartphone device ids) +

        device_id, tzcode,              timestamp
        +fitbit123, America/New_York,     0
        +fitbit999, Europe/Amsterdam,     0
        +

        +
      • +
      • +

        On the other hand, when at least one of your Fitbit devices changed time zones AND you want RAPIDS to take into account these changes, you need to set [ALLOW_MULTIPLE_TZ_PER_DEVICE] to True. You have to manually allow this option because you need to be aware it can produce inaccurate features around the times when time zones changed. This is because we cannot know precisely when the Fitbit device detected and processed the time zone change.

        +

        If you want to ALLOW_MULTIPLE_TZ_PER_DEVICE, you will need to add any time zone changes per device in the TZCODES_FILE as explained above. You could obtain this data by hand, but if your participants also used a smartphone during your study, you can use their time zone logs. Recall that in RAPIDS, every participant is represented with a participant file pXX.yaml, this file links together multiple devices, and we will use it to know what smartphone time zone data should be applied to Fitbit devices. Thus set INFER_FROM_SMARTPHONE_TZ to TRUE, if you have included smartphone time zone data in your TZCODE_FILE and want to make a participant’s Fitbit data time zone aware with their respective smartphone data.

        +
      • +
      +
      +
      +

      Data Stream Configuration

      +

      Modify the following keys in your config.yaml depending on the data stream you want to process.

      +
      +

      Set [PHONE_DATA_STREAMS][TYPE] to the smartphone data stream you want to process (e.g. aware_mysql) and configure its parameters (e.g. [DATABASE_GROUP]). Ignore the parameters of streams you are not using (e.g. [FOLDER] of aware_csv).

      +
      PHONE_DATA_STREAMS:
      +  USE: aware_mysql
      +
      +  # AVAILABLE:
      +  aware_mysql:
      +    DATABASE_GROUP: MY_GROUP
      +
      +  aware_csv:
      +    FOLDER: data/external/aware_csv
      +
      +
      + + + + + + + + + + + + + +
      KeyDescription
      [DATABASE_GROUP]A database credentials group. Read the instructions below to set it up
      +
      Setting up a DATABASE_GROUP and its connection credentials.
        +
      1. +

        If you haven’t done so, create an empty file called credentials.yaml in your RAPIDS root directory:

        +
      2. +
      3. +

        Add the following lines to credentials.yaml and replace your database-specific credentials (user, password, host, and database):

        +
        MY_GROUP:
        +  database: MY_DATABASE
        +  host: MY_HOST
        +  password: MY_PASSWORD
        +  port: 3306
        +  user: MY_USER
        +
        +
      4. +
      5. +

        Notes

        +
          +
        1. +

          The label [MY_GROUP] is arbitrary but it has to match the [DATABASE_GROUP] attribute of the data stream you choose to use.

          +
        2. +
        3. +

          Indentation matters

          +
        4. +
        5. +

          You can have more than one credentials group in credentials.yaml

          +
        6. +
        +
      6. +
      +
      Upgrading from ./.env from RAPIDS 0.x

      In RAPIDS versions 0.x, database credentials were stored in a ./.env file. If you are migrating from that type of file, you have two options:

      +
        +
      1. +

        Migrate your credentials by hand:

        +
        +
        [MY_GROUP]
        +user=MY_USER
        +password=MY_PASSWORD
        +host=MY_HOST
        +port=3306
        +database=MY_DATABASE
        +
        +
        +
        +
        MY_GROUP:
        +  user: MY_USER
        +  password: MY_PASSWORD
        +  host: MY_HOST
        +  port: 3306
        +  database: MY_DATABASE
        +
        +
        +
        +
      2. +
      3. +

        Use the migration script we provide (make sure your conda environment is active):

        +
        python tools/update_format_env.py
        +
        +
      4. +
      +
      +
      Connecting to localhost (host machine) from inside our docker container.

      If you are using RAPIDS’ docker container and Docker-for-mac or Docker-for-Windows 18.03+, you can connect to a MySQL database in your host machine using host.docker.internal instead of 127.0.0.1 or localhost. In a Linux host, you need to run our docker container using docker run --network="host" -d moshiresearch/rapids:latest and then 127.0.0.1 will point to your host machine.

      +
      +
      +
      +
      + + + + + + + + + + + + + +
      KeyDescription
      [FOLDER]Folder where you have to place a CSV file per phone sensor. Each file has to contain all the data from every participant you want to process.
      +
      +
      +
      +
      +

      Set [FITBIT_DATA_STREAMS][TYPE] to the Fitbit data stream you want to process (e.g. fitbitjson_mysql) and configure its parameters (e.g. [DATABASE_GROUP]). Ignore the parameters of the other streams you are not using (e.g. [FOLDER] of aware_csv).

      +
      +

      Warning

      +

      You will probably have to tell RAPIDS the name of the columns where you stored your Fitbit data. To do this, modify your chosen stream’s format.yaml column mappings to match your raw data column names.

      +
      +
      FITBIT_DATA_STREAMS:
      +  USE: fitbitjson_mysql
      +
      +  # AVAILABLE:
      +  fitbitjson_mysql:
      +    DATABASE_GROUP: MY_GROUP
      +    SLEEP_SUMMARY_LAST_NIGHT_END: 660
      +
      +  fitbitjson_csv:
      +    FOLDER: data/external/fitbit_csv
      +    SLEEP_SUMMARY_LAST_NIGHT_END: 660
      +
      +  fitbitparsed_mysql:
      +    DATABASE_GROUP: MY_GROUP
      +    SLEEP_SUMMARY_LAST_NIGHT_END: 660
      +
      +  fitbitparsed_csv:
      +    FOLDER: data/external/fitbit_csv
      +    SLEEP_SUMMARY_LAST_NIGHT_END: 660
      +
      +
      +

      This data stream processes Fitbit data inside a JSON column obtained from the Fitbit API and stored in a MySQL database. Read more about its column mappings and mutations in fitbitjson_mysql.

      + + + + + + + + + + + + + + + + + +
      KeyDescription
      [DATABASE_GROUP]A database credentials group. Read the instructions below to set it up
      [SLEEP_SUMMARY_LAST_NIGHT_END]Segments are assigned based on this parameter. Any sleep episodes that start between today’s SLEEP_SUMMARY_LAST_NIGHT_END (LNE) and tomorrow’s LNE are regarded as today’s sleep episodes. While today’s bedtime is based on today’s sleep episodes, today’s wake time is based on yesterday’s sleep episodes.
      +
      Setting up a DATABASE_GROUP and its connection credentials.
        +
      1. +

        If you haven’t done so, create an empty file called credentials.yaml in your RAPIDS root directory:

        +
      2. +
      3. +

        Add the following lines to credentials.yaml and replace your database-specific credentials (user, password, host, and database):

        +
        MY_GROUP:
        +  database: MY_DATABASE
        +  host: MY_HOST
        +  password: MY_PASSWORD
        +  port: 3306
        +  user: MY_USER
        +
        +
      4. +
      5. +

        Notes

        +
          +
        1. +

          The label [MY_GROUP] is arbitrary but it has to match the [DATABASE_GROUP] attribute of the data stream you choose to use.

          +
        2. +
        3. +

          Indentation matters

          +
        4. +
        5. +

          You can have more than one credentials group in credentials.yaml

          +
        6. +
        +
      6. +
      +
      Upgrading from ./.env from RAPIDS 0.x

      In RAPIDS versions 0.x, database credentials were stored in a ./.env file. If you are migrating from that type of file, you have two options:

      +
        +
      1. +

        Migrate your credentials by hand:

        +
        +
        [MY_GROUP]
        +user=MY_USER
        +password=MY_PASSWORD
        +host=MY_HOST
        +port=3306
        +database=MY_DATABASE
        +
        +
        +
        +
        MY_GROUP:
        +  user: MY_USER
        +  password: MY_PASSWORD
        +  host: MY_HOST
        +  port: 3306
        +  database: MY_DATABASE
        +
        +
        +
        +
      2. +
      3. +

        Use the migration script we provide (make sure your conda environment is active):

        +
        python tools/update_format_env.py
        +
        +
      4. +
      +
      +
      Connecting to localhost (host machine) from inside our docker container.

      If you are using RAPIDS’ docker container and Docker-for-mac or Docker-for-Windows 18.03+, you can connect to a MySQL database in your host machine using host.docker.internal instead of 127.0.0.1 or localhost. In a Linux host, you need to run our docker container using docker run --network="host" -d moshiresearch/rapids:latest and then 127.0.0.1 will point to your host machine.

      +
      +
      +
      +
      +

      This data stream processes Fitbit data inside a JSON column obtained from the Fitbit API and stored in a CSV file. Read more about its column mappings and mutations in fitbitjson_csv.

      + + + + + + + + + + + + + + + + + +
      KeyDescription
      [FOLDER]Folder where you have to place a CSV file per Fitbit sensor. Each file has to contain all the data from every participant you want to process.
      [SLEEP_SUMMARY_LAST_NIGHT_END]Segments are assigned based on this parameter. Any sleep episodes that start between today’s SLEEP_SUMMARY_LAST_NIGHT_END (LNE) and tomorrow’s LNE are regarded as today’s sleep episodes. While today’s bedtime is based on today’s sleep episodes, today’s wake time is based on yesterday’s sleep episodes.
      +
      +
      +

      This data stream process Fitbit data stored in multiple columns after being parsed from the JSON column returned by Fitbit API and stored in a MySQL database. Read more about its column mappings and mutations in fitbitparsed_mysql.

      + + + + + + + + + + + + + + + + + +
      KeyDescription
      [DATABASE_GROUP]A database credentials group. Read the instructions below to set it up
      [SLEEP_SUMMARY_LAST_NIGHT_END]Segments are assigned based on this parameter. Any sleep episodes that start between today’s SLEEP_SUMMARY_LAST_NIGHT_END (LNE) and tomorrow’s LNE are regarded as today’s sleep episodes. While today’s bedtime is based on today’s sleep episodes, today’s wake time is based on yesterday’s sleep episodes.
      +
      Setting up a DATABASE_GROUP and its connection credentials.
        +
      1. +

        If you haven’t done so, create an empty file called credentials.yaml in your RAPIDS root directory:

        +
      2. +
      3. +

        Add the following lines to credentials.yaml and replace your database-specific credentials (user, password, host, and database):

        +
        MY_GROUP:
        +  database: MY_DATABASE
        +  host: MY_HOST
        +  password: MY_PASSWORD
        +  port: 3306
        +  user: MY_USER
        +
        +
      4. +
      5. +

        Notes

        +
          +
        1. +

          The label [MY_GROUP] is arbitrary but it has to match the [DATABASE_GROUP] attribute of the data stream you choose to use.

          +
        2. +
        3. +

          Indentation matters

          +
        4. +
        5. +

          You can have more than one credentials group in credentials.yaml

          +
        6. +
        +
      6. +
      +
      Upgrading from ./.env from RAPIDS 0.x

      In RAPIDS versions 0.x, database credentials were stored in a ./.env file. If you are migrating from that type of file, you have two options:

      +
        +
      1. +

        Migrate your credentials by hand:

        +
        +
        [MY_GROUP]
        +user=MY_USER
        +password=MY_PASSWORD
        +host=MY_HOST
        +port=3306
        +database=MY_DATABASE
        +
        +
        +
        +
        MY_GROUP:
        +  user: MY_USER
        +  password: MY_PASSWORD
        +  host: MY_HOST
        +  port: 3306
        +  database: MY_DATABASE
        +
        +
        +
        +
      2. +
      3. +

        Use the migration script we provide (make sure your conda environment is active):

        +
        python tools/update_format_env.py
        +
        +
      4. +
      +
      +
      Connecting to localhost (host machine) from inside our docker container.

      If you are using RAPIDS’ docker container and Docker-for-mac or Docker-for-Windows 18.03+, you can connect to a MySQL database in your host machine using host.docker.internal instead of 127.0.0.1 or localhost. In a Linux host, you need to run our docker container using docker run --network="host" -d moshiresearch/rapids:latest and then 127.0.0.1 will point to your host machine.

      +
      +
      +
      +
      +

      This data stream process Fitbit data stored in multiple columns (plain text) after being parsed from the JSON column returned by Fitbit API and stored in a CSV file. Read more about its column mappings and mutations in fitbitparsed_csv.

      + + + + + + + + + + + + + + + + + +
      KeyDescription
      [FOLDER]Folder where you have to place a CSV file per Fitbit sensor. Each file has to contain all the data from every participant you want to process.
      [SLEEP_SUMMARY_LAST_NIGHT_END]Segments are assigned based on this parameter. Any sleep episodes that start between today’s SLEEP_SUMMARY_LAST_NIGHT_END (LNE) and tomorrow’s LNE are regarded as today’s sleep episodes. While today’s bedtime is based on today’s sleep episodes, today’s wake time is based on yesterday’s sleep episodes.
      +
      +
      +
      +
      +

      Set [USE] to the Empatica data stream you want to use; see the table in introduction to data streams. Configure any parameters as indicated below.

      +
      EMPATICA_DATA_STREAMS:
      +  USE: empatica_zip
      +
      +  # AVAILABLE:
      +  empatica_zip: 
      +    FOLDER: data/external/empatica
      +
      +
      + + + + + + + + + + + + + +
      KeyDescription
      [FOLDER]The relative path to a folder containing one subfolder per participant. The name of a participant folder should match their device_id assigned in their participant file. Each participant folder can have one or more zip files with any name; in other words, the sensor data in those zip files belong to a single participant. The zip files are automatically generated by Empatica and have a CSV file per sensor (ACC, HR, TEMP, EDA, BVP, TAGS). All CSV files of the same type contained in one or more zip files are uncompressed, parsed, sorted by timestamp, and joined together.
      +
      Example of an EMPATICA FOLDER

      In the file tree below, we want to process three participants’ data: p01, p02, and p03. p01 has two zip files, p02 has only one zip file, and p03 has three zip files. Each zip has a CSV file per sensor that is joined together and processed by RAPIDS.

      +
      data/ # this folder exists in the root RAPIDS folder
      +  external/
      +    empatica/
      +      p01/
      +        file1.zip
      +        file2.zip
      +      p02/
      +        aaaa.zip
      +      p03/
      +        t1.zip
      +        t2.zip
      +        t3.zip
      +
      +
      +
      +
      +
      +
      +
      +

      Sensor and Features to Process

      +

      Finally, you need to modify the config.yaml section of the sensors you want to extract behavioral features from. All sensors follow the same naming nomenclature (DEVICE_SENSOR) and parameter structure which we explain in the Behavioral Features Introduction.

      +
      +

      Done

      +

      Head over to Execution to learn how to execute RAPIDS.

      +
      + + + + + + +

      Comments

      + + + + + + +
      + +
      +
      + +
      + + + + +
      +
      +
      +
      + + + + + + + + + + + + \ No newline at end of file diff --git a/1.3/setup/execution/index.html b/1.3/setup/execution/index.html new file mode 100644 index 00000000..9f4b50d5 --- /dev/null +++ b/1.3/setup/execution/index.html @@ -0,0 +1,1915 @@ + + + + + + + + + + + + + + + + + + + + + + Execution - RAPIDS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + +
      +
      +
      + + + +
      +
      +
      + + +
      +
      +
      + + +
      +
      + + + + + + + + +

      Execution

      +

      After you have installed and configured RAPIDS, use the following command to execute it.

      +
      ./rapids -j1
      +
      +
      +

      Ready to extract behavioral features

      +

      If you are ready to extract features head over to the Behavioral Features Introduction

      +
      +
      +

      We wrap Snakemake

      +

      The script ./rapids is a wrapper around Snakemake so you can pass any parameters that Snakemake accepts (e.g. -j1).

      +
      +
      +

      Updating RAPIDS output after modifying config.yaml

      +

      Any changes to the config.yaml file will be applied automatically and only the relevant files will be updated. This means that after modifying the features list for PHONE_MESSAGE for example, RAPIDS will execute the script that computes MESSAGES features and update its output file.

      +
      +
      +

      Multi-core

      +

      You can run RAPIDS over multiple cores by modifying the -j argument (e.g. use -j8 to use 8 cores). However, take into account that this means multiple sensor datasets for different participants will be loaded in memory at the same time. If RAPIDS crashes because it ran out of memory, reduce the number of cores and try again.

      +

      As reference, we have run RAPIDS over 12 cores and 32 Gb of RAM without problems for a study with 200 participants with 14 days of low-frequency smartphone data (no accelerometer, gyroscope, or magnetometer).

      +
      +
      +

      Deleting RAPIDS output

      +

      If you want to delete all the output files RAPIDS produces, you can execute the following command:

      +
      ./rapids -j1 --delete-all-output
      +
      +
      +
      +

      Forcing a complete rerun or updating your raw data in RAPIDS

      +

      If you want to update your raw data or rerun the whole pipeline from scratch, run the following commands:

      +
      ./rapids -j1 --delete-all-output
      +./rapids -j1
      +
      +
      + + + + + + +

      Comments

      + + + + + + +
      + +
      +
      + +
      + + + + +
      +
      +
      +
      + + + + + + + + + + + + \ No newline at end of file diff --git a/1.3/setup/installation/index.html b/1.3/setup/installation/index.html new file mode 100644 index 00000000..d978c046 --- /dev/null +++ b/1.3/setup/installation/index.html @@ -0,0 +1,2115 @@ + + + + + + + + + + + + + + + + + + + + + + Installation - RAPIDS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + +
      +
      +
      + + + +
      +
      +
      + + +
      +
      +
      + + +
      +
      + + + + + + + + +

      Installation

      +

      You can install RAPIDS using Docker (the fastest), or native instructions for MacOS and Linux (Ubuntu). Windows is supported through Docker or WSL.

      +
      +
        +
      1. +

        Install Docker

        +
      2. +
      3. +

        Pull our RAPIDS container +

        docker pull moshiresearch/rapids:latest
        +

        +
      4. +
      5. +

        Run RAPIDS' container (after this step is done you should see a + prompt in the main RAPIDS folder with its python environment active)

        +
        docker run -it moshiresearch/rapids:latest
        +
        +
      6. +
      7. +

        Pull the latest version of RAPIDS

        +
        git pull
        +
        +
      8. +
      9. +

        Make RAPIDS script executable +

        chmod +x rapids
        +

        +
      10. +
      11. +

        Check that RAPIDS is working +

        ./rapids -j1
        +

        +
      12. +
      13. +

        Optional. You can edit RAPIDS files with vim but we recommend using Visual Studio Code and its Remote Containers extension

        +
        How to configure Remote Containers extension
          +
        • Make sure RAPIDS container is running
        • +
        • Install the Remote - Containers extension
        • +
        • Go to the Remote Explorer panel on the left hand sidebar
        • +
        • On the top right dropdown menu choose Containers
        • +
        • Double click on the moshiresearch/rapids container in theCONTAINERS tree
        • +
        • A new VS Code session should open on RAPIDS main folder inside the container.
        • +
        +
        +
      14. +
      +
      +

      Warning

      +

      If you installed RAPIDS using Docker for Windows on Windows 10, the container will have limits on the amount of RAM it can use. If you find that RAPIDS crashes due to running out of memory, increase this limit.

      +
      +
      +
      +

      We tested these instructions in Catalina and Big Sur

      +
      M1 Macs

      RAPIDS can run on M1 Macs, the only changes as of Feb 21, 2021 are:

      +
        +
      • R needs to be installed via brew under Rosetta (x86 arch) due to incompatibility issues with some R libraries. To do this, run your terminal via Rosetta, then proceed with the usual brew installation command. Use x86 brew to install R and restore RAPIDS’ packages (snakemake -j1 renv_install & snakemake -j1 renv_restore).
      • +
      • There is a bug related to timezone codes. We set the correct TZ_DIR in renv/activate.R (line #19) Sys.setenv("TZDIR" = file.path(R.home(), "share", "zoneinfo")) (RAPIDS does this automatically).
      • +
      +
      +
        +
      1. +

        Install brew

        +
      2. +
      3. +

        Install MySQL

        +
        brew install mysql
        +brew services start mysql
        +
        +
      4. +
      5. +

        Install R 4.0, pandoc and rmarkdown. If you have other instances of R, we recommend uninstalling them

        +
        brew install r
        +brew install pandoc
        +Rscript --vanilla -e 'install.packages("rmarkdown", repos="http://cran.us.r-project.org")'
        +
        +
      6. +
      7. +

        Install miniconda (restart your terminal afterwards)

        +
        brew cask install miniconda
        +conda init zsh # (or conda init bash)
        +
        +
      8. +
      9. +

        Clone our repo

        +
        git clone https://github.com/carissalow/rapids
        +
        +
      10. +
      11. +

        Create a python virtual environment

        +
        cd rapids
        +conda env create -f environment.yml -n rapids
        +conda activate rapids
        +
        +
      12. +
      13. +

        Install R packages and virtual environment:

        +
        snakemake -j1 renv_install
        +snakemake -j1 renv_restore
        +
        +
        +

        Note

        +

        This step could take several minutes to complete, especially if you have less than 3Gb of RAM or packages need to be compiled from source. Please be patient and let it run until completion.

        +
        +
      14. +
      15. +

        Make RAPIDS script executable +

        chmod +x rapids
        +

        +
      16. +
      17. +

        Check that RAPIDS is working +

        ./rapids -j1
        +

        +
      18. +
      +
      +
      +

      We tested RAPIDS on Ubuntu 18.04 & 20.04. Note that the necessary Python and R packages are available in other Linux distributions, so if you decide to give it a try, let us know and we can update these docs.

      +
        +
      1. +

        Install dependencies

        +
        sudo apt install libcurl4-openssl-dev
        +sudo apt install libssl-dev
        +sudo apt install libxml2-dev
        +sudo apt install libglpk40
        +
        +
      2. +
      3. +

        Install MySQL

        +
        sudo apt install libmysqlclient-dev
        +sudo apt install mysql-server
        +
        +
      4. +
      5. +

        Add key for R’s repository.

        +
        sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9
        +
        +
      6. +
      7. +

        Add R’s repository

        +
        +
        sudo add-apt-repository 'deb https://cloud.r-project.org/bin/linux/ubuntu bionic-cran40/'
        +
        +
        +
        +
        sudo add-apt-repository 'deb https://cloud.r-project.org/bin/linux/ubuntu focal-cran40/'
        +
        +
        +
        +
      8. +
      9. +

        Install R 4.0. If you have other instances of R, we recommend uninstalling them

        +
        sudo apt update
        +sudo apt install r-base
        +
        +
      10. +
      11. +

        Install Pandoc and rmarkdown

        +
        sudo apt install pandoc
        +Rscript --vanilla -e 'install.packages("rmarkdown", repos="http://cran.us.r-project.org")'
        +
        +
      12. +
      13. +

        Install git

        +
        sudo apt install git
        +
        +
      14. +
      15. +

        Install miniconda

        +
      16. +
      17. +

        Restart your current shell

        +
      18. +
      19. +

        Clone our repo:

        +
        git clone https://github.com/carissalow/rapids
        +
        +
      20. +
      21. +

        Create a python virtual environment:

        +
        cd rapids
        +conda env create -f environment.yml -n MY_ENV_NAME
        +conda activate MY_ENV_NAME
        +
        +
      22. +
      23. +

        Install the R virtual environment management package (renv)

        +
        snakemake -j1 renv_install
        +
        +
      24. +
      25. +

        Restore the R virtual environment

        +
        +

        Run the following command to restore the R virtual environment using RSPM binaries +

        R -e 'renv::restore(repos = c(CRAN = "https://packagemanager.rstudio.com/all/__linux__/bionic/latest"))'
        +

        +
        +
        +

        Run the following command to restore the R virtual environment using RSPM binaries +

        R -e 'renv::restore(repos = c(CRAN = "https://packagemanager.rstudio.com/all/__linux__/focal/latest"))'
        +

        +
        +
        +

        If the fast installation command failed for some reason, you can restore the R virtual environment from source: +

        R -e 'renv::restore()'
        +

        +
        +
        +
        +

        Note

        +

        This step could take several minutes to complete, especially if you have less than 3Gb of RAM or packages need to be compiled from source. Please be patient and let it run until completion.

        +
        +
      26. +
      27. +

        Make RAPIDS script executable +

        chmod +x rapids
        +

        +
      28. +
      29. +

        Check that RAPIDS is working +

        ./rapids -j1
        +

        +
      30. +
      +
      +
      +

      There are several options varying in complexity:

      +
        +
      • You can use our Docker instructions (tested)
      • +
      • You can use our Ubuntu 20.04 instructions on WSL2 (not tested but it will likely work)
      • +
      • Native installation (experimental). If you would like to contribute to RAPIDS you could try to install MySQL, miniconda, Python, and R 4.0+ in Windows and restore the Python and R virtual environments using steps 6 and 7 of the instructions for Mac. You can get in touch if you would like to discuss this with the team.
      • +
      +
      +
      + + + + + + +

      Comments

      + + + + + + +
      + +
      +
      + +
      + + + + +
      +
      +
      +
      + + + + + + + + + + + + \ No newline at end of file diff --git a/1.3/setup/overview/index.html b/1.3/setup/overview/index.html new file mode 100644 index 00000000..0d06da05 --- /dev/null +++ b/1.3/setup/overview/index.html @@ -0,0 +1,2135 @@ + + + + + + + + + + + + + + + + + + + + + + Overview - RAPIDS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + +
      +
      +
      + + + +
      +
      +
      + + +
      +
      +
      + + +
      +
      + + + + + + + + +

      Overview

      +

      Let’s review some key concepts we use throughout these docs:

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Definition                Description
      DeviceA mobile or wearable device, like smartphones, Fitbit wrist bands, Oura Rings, etc.
      SensorA physical or digital module builtin in a device that produces a data stream. For example, a smartphone’s accelerometer or screen.
      Data StreamSet of sensor data collected using a specific device with a particular ** format** and stored in a specific container. For example, smartphone (device) data collected with the AWARE Framework (format) and stored in a MySQL database (container).
      Data Stream FormatSensor data produced by a data stream have columns with specific names and types. RAPIDS can process a data stream using a format.yaml file that describes the raw data columns and any necessary transformations.
      Data Stream ContainerSensor data produced by a data stream can be stored in a database, electronic files, or arbitrary electronic containers. RAPIDS can pull (download) the data from a stream using a container script implemented in R or Python.
      ParticipantA person that took part in a monitoring study
      Behavioral featureA metric computed from raw sensor data quantifying the behavior of a participant. For example, time spent at home calculated from location data. These are also known as digital biomarkers
      Time segmentTime segments (or epochs) are the time windows on which RAPIDS extracts behavioral features. For example, you might want to compute participants’ time at home every morning or only during weekends. You define time segments in a CSV file that RAPIDS processes.
      Time zoneA string like America/New_York that represents a time zone where a device logged data. You can process data collected in single or multiple time zones for every participant.
      Feature ProviderA script that creates behavioral features for a specific sensor. Providers are created by the core RAPIDS team or by the community, which are named after its first author like [PHONE_LOCATIONS][DORYAB].
      config.yamlA YAML file where you can modify parameters to process data streams and behavioral features. This is the heart of RAPIDS and the file that you will change the most.
      credentials.yamlA YAML file where you can define credential groups (user, password, host, etc.) if your data stream needs to connect to a database or Web API
      Participant file(s)A YAML file that links one or more smartphone or wearable devices used by a single participant. RAPIDS needs one file per participant.
      +
      +

      What can I do with RAPIDS?

      + +
      +
      +

      Hint

      + +
      +

      Frequently Asked Questions

      +

      General

      +
      What exactly is RAPIDS?

      RAPIDS is a group of configuration files and R and Python scripts executed by Snakemake. You can get a copy of RAPIDS by cloning our Github repository.

      +

      RAPIDS is not a web application or server; all the processing is done in your laptop, server, or computer cluster.

      +
      +
      How does RAPIDS work?

      You will most of the time only have to modify configuration files in YAML format (config.yaml, credentials.yaml, and participant files pxx.yaml), and in CSV format (time zones and time segments).

      +

      RAPIDS pulls data from different data containers and processes it in steps. The input/output of each stage is saved as a CSV file for inspection; you can check the files created for each sensor on its documentation page.

      +

      All data is stored in data/, and all processing Python and R scripts are stored in src/.

      +
      User and File interactions in RAPIDS

      In the figure below, we represent the interactions between users and files. After a user modifies the configuration files mentioned above, the Snakefile file will search for and execute the Snakemake rules that contain the Python or R scripts necessary to generate or update the required output files (behavioral features, plots, etc.).

      +

      + +
      Interaction diagram between the user, and important files in RAPIDS
      +

      +
      +
      Data flow in RAPIDS

      In the figure below, we represent the flow of data in RAPIDS. In broad terms, smartphone and wearable devices log data streams with a certain format to a data container (database, file, etc.).

      +

      RAPIDS can connect to these containers if it has a format.yaml and a container.[R|py] script used to pull the correct data and mutate it to comply with RAPIDS’ internal data representation. Once the data stream is in RAPIDS, it goes through some basic transformations (scripts), one that assigns a time segment and a time zone to each data row, and another one that creates “episodes” of data for some sensors that need it (like screen, battery, activity recognition, and sleep intraday data).

      +

      After this, RAPIDS executes the requested PROVIDER script that computes behavioral features per time segment instance. After every feature is computed, they are joined per sensor, per participant, and study. Visualizations are built based on raw data or based on calculated features.

      +

      + +
      Data stream flow in RAPIDS
      +

      +
      +
      +
      Is my data private?

      Absolutely, you are processing your data with your own copy of RAPIDS in your laptop, server, or computer cluster, so neither we nor anyone else can access your datasets.

      +
      +
      Do I need to have coding skills to use RAPIDS?

      If you want to extract the behavioral features or visualizations that RAPIDS offers out of the box, the answer is no. However, you need to be comfortable running commands in your terminal and familiar with editing YAML files and CSV files.

      +

      If you want to add support for new data streams or behavioral features, you need to be familiar with R or Python.

      +
      +
      Is RAPIDS open-source or free?

      Yes, RAPIDS is both open-source and free.

      +
      +
      How do I cite RAPIDS?

      Please refer to our Citation guide; depending on what parts of RAPIDS you used, we also ask you to cite the work of other authors that shared their work.

      +
      +
      I have a lot of data, can RAPIDS handle it/ is RAPIDS fast enough?

      Yes, we use Snakemake under the hood, so you can automatically distribute RAPIDS execution over multiple cores or clusters. RAPIDS processes data per sensor and participant, so it can take advantage of this parallel processing.

      +
      +
      What are the advantages of using RAPIDS over implementing my own analysis code?

      We believe RAPIDS can benefit your analysis in several ways:

      +
        +
      • RAPIDS has more than 250 behavioral features available, many of them tested and used by other researchers.
      • +
      • RAPIDS can extract features in dynamic time segments (for example, every x minutes, x hours, x days, x weeks, x months, etc.). This is handy because you don’t have to deal with time zones, daylight saving changes, or date arithmetic.
      • +
      • Your analysis is less prone to errors. Every participant sensor dataset is analyzed in the same way and isolated from each other.
      • +
      • If you have lots of data, out-of-the-box parallel execution will speed up your analysis, and if your computer crashes, RAPIDS will start from where it left off.
      • +
      • You can publish your analysis code along with your papers and be sure it will run exactly as it does on your computer.
      • +
      • You can still add your own behavioral features and data streams if you need to, and the community will be able to reuse your work.
      • +
      +
      +

      Data Streams

      +
      Can I process smartphone data collected with Beiwe, PurpleRobot, or app X?

      Yes, but you need to add a new data stream to RAPIDS (a new format.yaml and container script in R or Python). Follow this tutorial. Open a new discussion in Github if you have any questions.

      +

      If you do so, let us know so we can integrate your work into RAPIDS.

      +
      +
      Can I process data from Oura Rings, Actigraphs, or wearable X?

      The only wearables we support at the moment are Empatica and Fitbit. However, get in touch if you need to process data from a different wearable. We have limited resources, so we add support for additional devices on an as-needed basis, but we would be happy to collaborate. Open a new discussion in Github if you have any questions.

      +
      +
      Can I process smartphone or wearable data stored in PostgreSQL, Oracle, SQLite, CSV files, or data container X?

      Yes, but you need to add a new data stream to RAPIDS (a new format.yaml and container script in R or Python). Follow this tutorial. If you are processing data streams we already support like AWARE, Fitbit, or Empatica and are just connecting to a different container, you can reuse their format.yaml and only implement a new container script. Open a new discussion in Github if you have any questions.

      +

      If you do so, let us know so we can integrate your work into RAPIDS.

      +
      +
      I have participants that live in different time zones and some that travel; can RAPIDS handle this?

      Yes, RAPIDS can handle single or multiple timezones per participant. You can use time zone data collected by smartphones or collected by hand.

      +
      +
      Some of my participants used more than one device during my study; can RAPIDS handle this?

      Yes, you can link more than one smartphone or wearable device to a single participant. RAPIDS will merge them and sort them automatically.

      +
      +
      Some of my participants switched from Android to iOS or vice-versa during my study; can RAPIDS handle this?

      Yes, data from multiple smartphones can be linked to a single participant. All iOS data is converted to Android data before merging it.

      +
      +

      Extending RAPIDS

      +
      Can I add my own behavioral features/digital biomarkers?

      Yes, you can implement your own features in R or Python following this tutorial

      +
      +
      Can I extract behavioral features based on two or more sensors?

      Yes, we do this for PHONE_DATA_YIELD (combines all phone sensors), PHONE_LOCATIONS (combines location and data yield data), PHONE_APPLICATIONS_BACKGROUND (combines screen and app usage data), and FITBIT_INTRADAY_STEPS (combines Fitbit and sleep and step data).

      +

      However, we haven’t come up with a user-friendly way to configure this, and currently, we join sensors on a case-by-case basis. This is mainly because not enough users have needed this functionality so far. Get in touch, and we can set it up together; the more use cases we are aware of, the easier it will be to integrate this into RAPIDS.

      +
      +
      I know how to program in Python or R but not both. Can I still use or extend RAPIDS?

      Yes, you don’t need to write any code to use RAPIDS out of the box. If you need to add support for new data streams or behavioral features you can use scripts in either language.

      +
      +
      I have scripts that clean raw data from X sensor, can I use them with RAPIDS?

      Yes, you can add them as a [MUTATION][SCRIPT] in the format.yaml of the data stream you are using. You will add a main function that will receive a data frame with the raw data for that sensor that, in turn, will be used to compute behavioral features.

      +
      + + + + + + +

      Comments

      + + + + + + +
      + +
      +
      + +
      + + + + +
      +
      +
      +
      + + + + + + + + + + + + \ No newline at end of file diff --git a/1.3/sitemap.xml b/1.3/sitemap.xml new file mode 100644 index 00000000..29c99370 --- /dev/null +++ b/1.3/sitemap.xml @@ -0,0 +1,287 @@ + + + https://www.rapids.science/1.3/ + 2021-06-01 + daily + + https://www.rapids.science/1.3/setup/overview/ + 2021-06-01 + daily + + https://www.rapids.science/1.3/workflow-examples/minimal/ + 2021-06-01 + daily + + https://www.rapids.science/1.3/citation/ + 2021-06-01 + daily + + https://www.rapids.science/1.3/contributing/ + 2021-06-01 + daily + + https://www.rapids.science/1.3/setup/installation/ + 2021-06-01 + daily + + https://www.rapids.science/1.3/setup/configuration/ + 2021-06-01 + daily + + https://www.rapids.science/1.3/setup/execution/ + 2021-06-01 + daily + + https://www.rapids.science/1.3/datastreams/data-streams-introduction/ + 2021-06-01 + daily + + https://www.rapids.science/1.3/datastreams/aware-mysql/ + 2021-06-01 + daily + + https://www.rapids.science/1.3/datastreams/aware-csv/ + 2021-06-01 + daily + + https://www.rapids.science/1.3/datastreams/aware-influxdb/ + 2021-06-01 + daily + + https://www.rapids.science/1.3/datastreams/mandatory-phone-format/ + 2021-06-01 + daily + + https://www.rapids.science/1.3/datastreams/fitbitjson-mysql/ + 2021-06-01 + daily + + https://www.rapids.science/1.3/datastreams/fitbitjson-csv/ + 2021-06-01 + daily + + https://www.rapids.science/1.3/datastreams/fitbitparsed-mysql/ + 2021-06-01 + daily + + https://www.rapids.science/1.3/datastreams/fitbitparsed-csv/ + 2021-06-01 + daily + + https://www.rapids.science/1.3/datastreams/mandatory-fitbit-format/ + 2021-06-01 + daily + + https://www.rapids.science/1.3/datastreams/empatica-zip/ + 2021-06-01 + daily + + https://www.rapids.science/1.3/datastreams/mandatory-empatica-format/ + 2021-06-01 + daily + + https://www.rapids.science/1.3/datastreams/add-new-data-streams/ + 2021-06-01 + daily + + https://www.rapids.science/1.3/features/feature-introduction/ + 2021-06-01 + daily + + https://www.rapids.science/1.3/features/phone-accelerometer/ + 2021-06-01 + daily + + https://www.rapids.science/1.3/features/phone-activity-recognition/ + 2021-06-01 + daily + + https://www.rapids.science/1.3/features/phone-applications-crashes/ + 2021-06-01 + daily + + https://www.rapids.science/1.3/features/phone-applications-foreground/ + 2021-06-01 + daily + + https://www.rapids.science/1.3/features/phone-applications-notifications/ + 2021-06-01 + daily + + https://www.rapids.science/1.3/features/phone-battery/ + 2021-06-01 + daily + + https://www.rapids.science/1.3/features/phone-bluetooth/ + 2021-06-01 + daily + + https://www.rapids.science/1.3/features/phone-calls/ + 2021-06-01 + daily + + https://www.rapids.science/1.3/features/phone-conversation/ + 2021-06-01 + daily + + https://www.rapids.science/1.3/features/phone-data-yield/ + 2021-06-01 + daily + + https://www.rapids.science/1.3/features/phone-keyboard/ + 2021-06-01 + daily + + https://www.rapids.science/1.3/features/phone-light/ + 2021-06-01 + daily + + https://www.rapids.science/1.3/features/phone-locations/ + 2021-06-01 + daily + + https://www.rapids.science/1.3/features/phone-log/ + 2021-06-01 + daily + + https://www.rapids.science/1.3/features/phone-messages/ + 2021-06-01 + daily + + https://www.rapids.science/1.3/features/phone-screen/ + 2021-06-01 + daily + + https://www.rapids.science/1.3/features/phone-wifi-connected/ + 2021-06-01 + daily + + https://www.rapids.science/1.3/features/phone-wifi-visible/ + 2021-06-01 + daily + + https://www.rapids.science/1.3/features/fitbit-calories-intraday/ + 2021-06-01 + daily + + https://www.rapids.science/1.3/features/fitbit-data-yield/ + 2021-06-01 + daily + + https://www.rapids.science/1.3/features/fitbit-heartrate-summary/ + 2021-06-01 + daily + + https://www.rapids.science/1.3/features/fitbit-heartrate-intraday/ + 2021-06-01 + daily + + https://www.rapids.science/1.3/features/fitbit-sleep-summary/ + 2021-06-01 + daily + + https://www.rapids.science/1.3/features/fitbit-sleep-intraday/ + 2021-06-01 + daily + + https://www.rapids.science/1.3/features/fitbit-steps-summary/ + 2021-06-01 + daily + + https://www.rapids.science/1.3/features/fitbit-steps-intraday/ + 2021-06-01 + daily + + https://www.rapids.science/1.3/features/empatica-accelerometer/ + 2021-06-01 + daily + + https://www.rapids.science/1.3/features/empatica-heartrate/ + 2021-06-01 + daily + + https://www.rapids.science/1.3/features/empatica-temperature/ + 2021-06-01 + daily + + https://www.rapids.science/1.3/features/empatica-electrodermal-activity/ + 2021-06-01 + daily + + https://www.rapids.science/1.3/features/empatica-blood-volume-pulse/ + 2021-06-01 + daily + + https://www.rapids.science/1.3/features/empatica-inter-beat-interval/ + 2021-06-01 + daily + + https://www.rapids.science/1.3/features/empatica-tags/ + 2021-06-01 + daily + + https://www.rapids.science/1.3/features/add-new-features/ + 2021-06-01 + daily + + https://www.rapids.science/1.3/visualizations/data-quality-visualizations/ + 2021-06-01 + daily + + https://www.rapids.science/1.3/visualizations/feature-visualizations/ + 2021-06-01 + daily + + https://www.rapids.science/1.3/workflow-examples/analysis/ + 2021-06-01 + daily + + https://www.rapids.science/1.3/developers/git-flow/ + 2021-06-01 + daily + + https://www.rapids.science/1.3/developers/remote-support/ + 2021-06-01 + daily + + https://www.rapids.science/1.3/developers/virtual-environments/ + 2021-06-01 + daily + + https://www.rapids.science/1.3/developers/documentation/ + 2021-06-01 + daily + + https://www.rapids.science/1.3/developers/testing/ + 2021-06-01 + daily + + https://www.rapids.science/1.3/developers/test-cases/ + 2021-06-01 + daily + + https://www.rapids.science/1.3/developers/validation-schema-config/ + 2021-06-01 + daily + + https://www.rapids.science/1.3/migrating-from-old-versions/ + 2021-06-01 + daily + + https://www.rapids.science/1.3/code_of_conduct/ + 2021-06-01 + daily + + https://www.rapids.science/1.3/common-errors/ + 2021-06-01 + daily + + https://www.rapids.science/1.3/team/ + 2021-06-01 + daily + + https://www.rapids.science/1.3/change-log/ + 2021-06-01 + daily + + \ No newline at end of file diff --git a/1.3/sitemap.xml.gz b/1.3/sitemap.xml.gz new file mode 100644 index 0000000000000000000000000000000000000000..a6dbbef094f18f2415249065873d631644ee244a GIT binary patch literal 853 zcmV-b1FHNViwFoPk+xt0|8r?{Wo=<_E_iKh0M(k!lG`>6$M5?TJHFHMCNrJ3<8^L* zg65ooNl0cw5?TV1R(bkDAM5Urv3WXvY|hQn>8(GoWD1uLrw>o=^ou(^>E*p` z@8WMzI&3SxTmr;2pPP3rYoBwo5d23B{kKEkkSa4qoUBkyRKK-}CWo((`-I%&SYn1` z1<*$U(WzvHhlxd&Nba zcN7M16&5C_=<>`j$u6Gf(JovpZ5m#~)gobrqE)K1>u*%hwNx{RMbb9PHOg0}Vs|pW zV>CJ=H^Lq&W3aB{PH9xhzb$8@HEcSVdv(zs-1peqmhw(&S4;@O6`b6ACvJtaMUbIt zu)h~f1{Zh8&EtUgn6Oet!D^OK;uvLi6+Lw&T9&i#lN!)M$j(>b8}iS9ss@i;rJ;nM zfwqvu_N`_V_zI#HHCv@i0}7GcjPiNia$6l)-FGjEI54~nt=@5tn5>%fH=M5o)hb?! z-A$~rk?n;qQD>AaBQtbn9WwihXmv%I)Zs2GUqLSzEJKcw<29kZO~JNLRnJB>;+A=Y z0JBw4!#-puydhN8P}FpWoT1M4L9GuuC&b>moExNhDFu5rFXakpR?2%q%66LKj(In9 zyNIGCtZS=XNF8gxq|UHrNca4YUEXUV3T~t{WOV(I*s!*0>{#7Z+qdFq=TySK%vR{^ zh3juQ=zD_^K#hC{Nb&o=JzN90m!(B!_ro=t#BX_Xo3Q^p)B^?5%+U;Cz!4Ma^3F}S zyb@DbgJ=~qtucGwQx$`NW2~a{&tcILm5fC!4sjqqENrF{k?;5f+0t>YAINkg&S-I1 z)gQ;Oj;Y(uX}ay8mlf0;yXDAP>0GPvxTB + + + + + + + + + + + + + + + + + + + + Aware format - RAPIDS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      +
      + +
      + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + +
      +
      +
      + + + +
      +
      + + + + + + + + +

      Aware format

      + +

      If you collected sensor data with the vanilla (original) AWARE mobile clients, you shouldn’t need to modify this format (described below).

      +

      Remember that a format maps and transforms columns in your raw data stream to the mandatory columns RAPIDS needs.

      +

      The yaml file that describes the format of this data stream is at: +

      src/data/streams/aware_csv/format.yaml
      +

      +

      For some sensors, we need to transform iOS data into Android format; you can refer to OS complex mapping for learn how this works.

      +
      +

      Hint

      +

      The mappings in this stream (RAPIDS/Stream) are the same names because AWARE data was the first stream RAPIDS supported, meaning that it considers AWARE column names the default.

      +
      +
      PHONE_ACCELEROMETER
      +

      RAPIDS_COLUMN_MAPPINGS

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      RAPIDS columnStream column
      TIMESTAMPtimestamp
      DEVICE_IDdevice_id
      DOUBLE_VALUES_0double_values_0
      DOUBLE_VALUES_1double_values_1
      DOUBLE_VALUES_2double_values_2
      +

      MUTATION

      +
        +
      • COLUMN_MAPPINGS (None)
      • +
      • SCRIPTS (None)
      • +
      +
      +
      +

      Same as ANDROID

      +
      +
      +
      +
      PHONE_ACTIVITY_RECOGNITION
      +

      RAPIDS_COLUMN_MAPPINGS

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      RAPIDS columnStream column
      TIMESTAMPtimestamp
      DEVICE_IDdevice_id
      ACTIVITY_NAMEactivity_name
      ACTIVITY_TYPEactivity_type
      CONFIDENCEconfidence
      +

      MUTATION

      +
        +
      • COLUMN_MAPPINGS (None)
      • +
      • SCRIPTS (None)
      • +
      +
      +
      +

      RAPIDS_COLUMN_MAPPINGS

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      RAPIDS columnStream column
      TIMESTAMPtimestamp
      DEVICE_IDdevice_id
      ACTIVITY_NAMEFLAG_TO_MUTATE
      ACTIVITY_TYPEFLAG_TO_MUTATE
      CONFIDENCEFLAG_TO_MUTATE
      +

      MUTATION

      +
        +
      • COLUMN_MAPPINGS
      • +
      + + + + + + + + + + + + + + + + + +
      Script columnStream column
      ACTIVITIESactivities
      CONFIDENCEconfidence
      +
        +
      • SCRIPTS
      • +
      +
      src/data/streams/mutations/phone/aware/activity_recogniton_ios_unification.R
      +
      +
      +

      Note

      +

      For RAPIDS columns of ACTIVITY_NAME and ACTIVITY_TYPE:

      +
        +
      • if stream’s activities field is automotive, set ACTIVITY_NAME = in_vehicle and ACTIVITY_TYPE = 0
      • +
      • if stream’s activities field is cycling, set ACTIVITY_NAME = on_bicycle and ACTIVITY_TYPE = 1
      • +
      • if stream’s activities field is walking, set ACTIVITY_NAME = walking and ACTIVITY_TYPE = 7
      • +
      • if stream’s activities field is running, set ACTIVITY_NAME = running and ACTIVITY_TYPE = 8
      • +
      • if stream’s activities field is stationary, set ACTIVITY_NAME = still and ACTIVITY_TYPE = 3
      • +
      • if stream’s activities field is unknown, set ACTIVITY_NAME = unknown and ACTIVITY_TYPE = 4
      • +
      +

      For RAPIDS CONFIDENCE column:

      +
        +
      • if stream’s confidence field is 0, set CONFIDENCE = 0
      • +
      • if stream’s confidence field is 1, set CONFIDENCE = 50
      • +
      • if stream’s confidence field is 2, set CONFIDENCE = 100
      • +
      +
      +
      +
      +
      +
      PHONE_APPLICATIONS_CRASHES
      +

      RAPIDS_COLUMN_MAPPINGS

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      RAPIDS columnStream column
      TIMESTAMPtimestamp
      DEVICE_IDdevice_id
      PACKAGE_NAMEpackage_name
      APPLICATION_NAMEapplication_name
      APPLICATION_VERSIONapplication_version
      ERROR_SHORTerror_short
      ERROR_LONGerror_long
      ERROR_CONDITIONerror_condition
      IS_SYSTEM_APPis_system_app
      +

      MUTATION

      +
        +
      • COLUMN_MAPPINGS (None)
      • +
      • SCRIPTS (None)
      • +
      +
      +
      +

      This sensor is not supported by iOS devices.

      +
      +
      +
      +
      PHONE_APPLICATIONS_FOREGROUND
      +

      RAPIDS_COLUMN_MAPPINGS

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      RAPIDS columnStream column
      TIMESTAMPtimestamp
      DEVICE_IDdevice_id
      PACKAGE_NAMEpackage_name
      APPLICATION_NAMEapplication_name
      IS_SYSTEM_APPis_system_app
      +

      MUTATION

      +
        +
      • COLUMN_MAPPINGS (None)
      • +
      • SCRIPTS (None)
      • +
      +
      +
      +

      This sensor is not supported by iOS devices.

      +
      +
      +
      +
      PHONE_APPLICATIONS_NOTIFICATIONS
      +

      RAPIDS_COLUMN_MAPPINGS

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      RAPIDS columnStream column
      TIMESTAMPtimestamp
      DEVICE_IDdevice_id
      PACKAGE_NAMEpackage_name
      APPLICATION_NAMEapplication_name
      TEXTtext
      SOUNDsound
      VIBRATEvibrate
      DEFAULTSdefaults
      FLAGSflags
      +

      MUTATION

      +
        +
      • COLUMN_MAPPINGS (None)
      • +
      • SCRIPTS (None)
      • +
      +
      +
      +

      This sensor is not supported by iOS devices.

      +
      +
      +
      +
      PHONE_BATTERY
      +

      RAPIDS_COLUMN_MAPPINGS

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      RAPIDS columnStream column
      TIMESTAMPtimestamp
      DEVICE_IDdevice_id
      BATTERY_STATUSbattery_status
      BATTERY_LEVELbattery_level
      BATTERY_SCALEbattery_scale
      +

      MUTATION

      +
        +
      • COLUMN_MAPPINGS (None)
      • +
      • SCRIPTS (None)
      • +
      +
      +
      +

      RAPIDS_COLUMN_MAPPINGS

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      RAPIDS columnStream column
      TIMESTAMPtimestamp
      DEVICE_IDdevice_id
      BATTERY_STATUSFLAG_TO_MUTATE
      BATTERY_LEVELbattery_level
      BATTERY_SCALEbattery_scale
      +

      MUTATION

      +
        +
      • COLUMN_MAPPINGS
      • +
      + + + + + + + + + + + + + +
      Script columnStream column
      BATTERY_STATUSbattery_status
      +
        +
      • SCRIPTS
      • +
      +
      src/data/streams/mutations/phone/aware/battery_ios_unification.R
      +
      +
      +

      Note

      +

      For RAPIDS BATTERY_STATUS column:

      +
        +
      • if stream’s battery_status field is 3, set BATTERY_STATUS = 5 (full status)
      • +
      • if stream’s battery_status field is 1, set BATTERY_STATUS = 3 (discharge)
      • +
      +
      +
      +
      +

      Same as ANDROID

      +
      +
      +
      +
      PHONE_BLUETOOTH
      +

      RAPIDS_COLUMN_MAPPINGS

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      RAPIDS columnStream column
      TIMESTAMPtimestamp
      DEVICE_IDdevice_id
      BT_ADDRESSbt_address
      BT_NAMEbt_name
      BT_RSSIbt_rssi
      +

      MUTATION

      +
        +
      • COLUMN_MAPPINGS (None)
      • +
      • SCRIPTS (None)
      • +
      +
      +
      +

      Only old iOS versions supported this sensor (same mapping as Android).

      +
      +
      +
      +
      PHONE_CALLS
      +

      RAPIDS_COLUMN_MAPPINGS

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      RAPIDS columnStream column
      TIMESTAMPtimestamp
      DEVICE_IDdevice_id
      CALL_TYPEcall_type
      CALL_DURATIONcall_duration
      TRACEtrace
      +

      MUTATION

      +
        +
      • COLUMN_MAPPINGS (None)
      • +
      • SCRIPTS (None)
      • +
      +
      +
      +

      RAPIDS_COLUMN_MAPPINGS

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      RAPIDS columnStream column
      TIMESTAMPtimestamp
      DEVICE_IDdevice_id
      CALL_TYPEFLAG_TO_MUTATE
      CALL_DURATIONcall_duration
      TRACEtrace
      +

      MUTATION

      +
        +
      • COLUMN_MAPPINGS
      • +
      + + + + + + + + + + + + + +
      Script columnStream column
      CALL_TYPEcall_type
      +
        +
      • SCRIPTS
      • +
      +
      src/data/streams/mutations/phone/aware/calls_ios_unification.R
      +
      +
      +

      Note

      +

      We transform iOS call logs into Android’s format. iOS stores call status: 1=incoming, 2=connected, 3=dialing, 4=disconnected, as opposed to Android’s events: 1=incoming, 2=outgoing, 3=missed.

      +

      We follow this algorithm to convert iOS call data (there are some inaccuracies in the way we handle sequences, see new rules below):

      +
        +
      • Search for the disconnected (4) status as it is common to all calls
      • +
      • Group all events that preceded every status 4
      • +
      • We convert every 1,2,4 (or 2,1,4) sequence to an incoming call
      • +
      • We convert every 3,2,4 (or 2,3,4) sequence to an outgoing call
      • +
      • We convert every 1,4 or 3,4 sequence to a missed call (either incoming or outgoing)
      • +
      • We set the duration of the call to be the sum of every status (dialing/ringing to hangup) as opposed to the duration of the last status (pick up to hang up)
      • +
      +

      Tested with an Android (OnePlus 7T) and an iPhone XR

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Call typeAndroid (duration)iOS (duration)New Rule
      Outgoing missed ended by me2 (0)3,4 (0,X)3,4 is converted to 2 with duration 0
      Outgoing missed ended by them2(0)3,2,4 (0,X,X2)3,2,4 is converted to 2 with duration X2*
      Incoming missed ended by meNA**1,4 (0,X)1,4 is converted to 3 with duration 0
      Incoming missed ended by them3(0)1,4 (0,X)1,4 is converted to 3 with duration 0
      Outgoing answered2(X excluding dialing time)3,2,4 (0,X,X2)3,2,4 is converted to 2 with duration X2
      Incoming answered1(X excluding dialing time)1,2,4 (0,X,X2)1,2,4 is converted to 1 with duration X2
      +

      .* There is no way to differentiate an outgoing missed call ended by them from an outgoing answered call because the phone goes directly to voice mail and it counts as call time (essentially the voice mail answered).

      +

      .** Android does not record incoming missed calls ended by the participant, just those ended by the person calling or ignored by the participant.

      +
      +
      +
      +
      +
      PHONE_CONVERSATION
      +

      RAPIDS_COLUMN_MAPPINGS

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      RAPIDS columnStream column
      TIMESTAMPtimestamp
      DEVICE_IDdevice_id
      DOUBLE_ENERGYdouble_energy
      INFERENCEinference
      DOUBLE_CONVO_STARTdouble_convo_start
      DOUBLE_CONVO_ENDdouble_convo_end
      +

      MUTATION

      +
        +
      • COLUMN_MAPPINGS (None)
      • +
      • SCRIPTS (None)
      • +
      +
      +
      +

      RAPIDS_COLUMN_MAPPINGS

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      RAPIDS columnStream column
      TIMESTAMPtimestamp
      DEVICE_IDdevice_id
      DOUBLE_ENERGYdouble_energy
      INFERENCEinference
      DOUBLE_CONVO_STARTFLAG_TO_MUTATE
      DOUBLE_CONVO_ENDFLAG_TO_MUTATE
      +

      MUTATION

      +
        +
      • COLUMN_MAPPINGS
      • +
      + + + + + + + + + + + + + + + + + +
      Script columnStream column
      DOUBLE_CONVO_STARTdouble_convo_start
      DOUBLE_CONVO_ENDdouble_convo_end
      +
        +
      • SCRIPTS
      • +
      +
      src/data/streams/mutations/phone/aware/conversation_ios_timestamp.R
      +
      +
      +

      Note

      +

      For RAPIDS columns of DOUBLE_CONVO_START and DOUBLE_CONVO_END:

      +
        +
      • if stream’s double_convo_start field is smaller than 9999999999, it is in seconds instead of milliseconds. Set DOUBLE_CONVO_START = 1000 * double_convo_start.
      • +
      • if stream’s double_convo_end field is smaller than 9999999999, it is in seconds instead of milliseconds. Set DOUBLE_CONVO_END = 1000 * double_convo_end.
      • +
      +
      +
      +
      +
      +
      PHONE_KEYBOARD
      +

      RAPIDS_COLUMN_MAPPINGS

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      RAPIDS columnStream column
      TIMESTAMPtimestamp
      DEVICE_IDdevice_id
      PACKAGE_NAMEpackage_name
      BEFORE_TEXTbefore_text
      CURRENT_TEXTcurrent_text
      IS_PASSWORDis_password
      +

      MUTATION

      +
        +
      • COLUMN_MAPPINGS (None)
      • +
      • SCRIPTS (None)
      • +
      +
      +
      +

      This sensor is not supported by iOS devices.

      +
      +
      +
      +
      PHONE_LIGHT
      +

      RAPIDS_COLUMN_MAPPINGS

      + + + + + + + + + + + + + + + + + + + + + + + + + +
      RAPIDS columnStream column
      TIMESTAMPtimestamp
      DEVICE_IDdevice_id
      DOUBLE_LIGHT_LUXdouble_light_lux
      ACCURACYaccuracy
      +

      MUTATION

      +
        +
      • COLUMN_MAPPINGS (None)
      • +
      • SCRIPTS (None)
      • +
      +
      +
      +

      This sensor is not supported by iOS devices.

      +
      +
      +
      +
      PHONE_LOCATIONS
      +

      RAPIDS_COLUMN_MAPPINGS

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      RAPIDS columnStream column
      TIMESTAMPtimestamp
      DEVICE_IDdevice_id
      DOUBLE_LATITUDEdouble_latitude
      DOUBLE_LONGITUDEdouble_longitude
      DOUBLE_BEARINGdouble_bearing
      DOUBLE_SPEEDdouble_speed
      DOUBLE_ALTITUDEdouble_altitude
      PROVIDERprovider
      ACCURACYaccuracy
      +

      MUTATION

      +
        +
      • COLUMN_MAPPINGS (None)
      • +
      • SCRIPTS (None)
      • +
      +
      +
      +

      Same as ANDROID

      +
      +
      +
      +
      PHONE_LOG
      +

      RAPIDS_COLUMN_MAPPINGS

      + + + + + + + + + + + + + + + + + + + + + +
      RAPIDS columnStream column
      TIMESTAMPtimestamp
      DEVICE_IDdevice_id
      LOG_MESSAGElog_message
      +

      MUTATION

      +
        +
      • COLUMN_MAPPINGS (None)
      • +
      • SCRIPTS (None)
      • +
      +
      +
      +

      Same as ANDROID

      +
      +
      +
      +
      PHONE_MESSAGES
      +

      RAPIDS_COLUMN_MAPPINGS

      + + + + + + + + + + + + + + + + + + + + + + + + + +
      RAPIDS columnStream column
      TIMESTAMPtimestamp
      DEVICE_IDdevice_id
      MESSAGE_TYPEmessage_type
      TRACEtrace
      +

      MUTATION

      +
        +
      • COLUMN_MAPPINGS (None)
      • +
      • SCRIPTS (None)
      • +
      +
      +
      +

      This sensor is not supported by iOS devices.

      +
      +
      +
      +
      PHONE_SCREEN
      +

      RAPIDS_COLUMN_MAPPINGS

      + + + + + + + + + + + + + + + + + + + + + +
      RAPIDS columnStream column
      TIMESTAMPtimestamp
      DEVICE_IDdevice_id
      SCREEN_STATUSscreen_status
      +

      MUTATION

      +
        +
      • COLUMN_MAPPINGS (None)
      • +
      • SCRIPTS (None)
      • +
      +
      +
      +

      RAPIDS_COLUMN_MAPPINGS

      + + + + + + + + + + + + + + + + + + + + + +
      RAPIDS columnStream column
      TIMESTAMPtimestamp
      DEVICE_IDdevice_id
      SCREEN_STATUSFLAG_TO_MUTATE
      +

      MUTATION

      +
        +
      • COLUMN_MAPPINGS
      • +
      + + + + + + + + + + + + + +
      Script columnStream column
      SCREEN_STATUSscreen_status
      +
        +
      • SCRIPTS
      • +
      +
      src/data/streams/mutations/phone/aware/screen_ios_unification.R
      +
      +
      +

      Note

      +

      For SCREEN_STATUS RAPIDS column:

      +
        +
      • if stream’s screen_status field is 2 (lock episode), set SCREEN_STATUS = 0 (off episode).
      • +
      +
      +
      +
      +
      +
      PHONE_WIFI_CONNECTED
      +

      RAPIDS_COLUMN_MAPPINGS

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      RAPIDS columnStream column
      TIMESTAMPtimestamp
      DEVICE_IDdevice_id
      MAC_ADDRESSmac_address
      SSIDssid
      BSSIDbssid
      +

      MUTATION

      +
        +
      • COLUMN_MAPPINGS (None)
      • +
      • SCRIPTS (None)
      • +
      +
      +
      +

      Same as ANDROID

      +
      +
      +
      +
      PHONE_WIFI_VISIBLE
      +

      RAPIDS_COLUMN_MAPPINGS

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      RAPIDS columnStream column
      TIMESTAMPtimestamp
      DEVICE_IDdevice_id
      SSIDssid
      BSSIDbssid
      SECURITYsecurity
      FREQUENCYfrequency
      RSSIrssi
      +

      MUTATION

      +
        +
      • COLUMN_MAPPINGS (None)
      • +
      • SCRIPTS (None)
      • +
      +
      +
      +

      Only old iOS versions supported this sensor (same mapping as Android).

      +
      +
      +
      + + + + + + +

      Comments

      + + + + + + +
      + +
      +
      + +
      + + + + +
      +
      +
      +
      + + + + + + + + + + + + \ No newline at end of file diff --git a/1.3/snippets/database/index.html b/1.3/snippets/database/index.html new file mode 100644 index 00000000..5e268d1b --- /dev/null +++ b/1.3/snippets/database/index.html @@ -0,0 +1,1879 @@ + + + + + + + + + + + + + + + + + + + + + + Database - RAPIDS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      +
      + +
      + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + +
      +
      +
      + + + +
      +
      + + + + + + + + +

      Database

      + +
      Setting up a DATABASE_GROUP and its connection credentials.
        +
      1. +

        If you haven’t done so, create an empty file called credentials.yaml in your RAPIDS root directory:

        +
      2. +
      3. +

        Add the following lines to credentials.yaml and replace your database-specific credentials (user, password, host, and database):

        +
        MY_GROUP:
        +  database: MY_DATABASE
        +  host: MY_HOST
        +  password: MY_PASSWORD
        +  port: 3306
        +  user: MY_USER
        +
        +
      4. +
      5. +

        Notes

        +
          +
        1. +

          The label [MY_GROUP] is arbitrary but it has to match the [DATABASE_GROUP] attribute of the data stream you choose to use.

          +
        2. +
        3. +

          Indentation matters

          +
        4. +
        5. +

          You can have more than one credentials group in credentials.yaml

          +
        6. +
        +
      6. +
      +
      Upgrading from ./.env from RAPIDS 0.x

      In RAPIDS versions 0.x, database credentials were stored in a ./.env file. If you are migrating from that type of file, you have two options:

      +
        +
      1. +

        Migrate your credentials by hand:

        +
        +
        [MY_GROUP]
        +user=MY_USER
        +password=MY_PASSWORD
        +host=MY_HOST
        +port=3306
        +database=MY_DATABASE
        +
        +
        +
        +
        MY_GROUP:
        +  user: MY_USER
        +  password: MY_PASSWORD
        +  host: MY_HOST
        +  port: 3306
        +  database: MY_DATABASE
        +
        +
        +
        +
      2. +
      3. +

        Use the migration script we provide (make sure your conda environment is active):

        +
        python tools/update_format_env.py
        +
        +
      4. +
      +
      +
      Connecting to localhost (host machine) from inside our docker container.

      If you are using RAPIDS’ docker container and Docker-for-mac or Docker-for-Windows 18.03+, you can connect to a MySQL database in your host machine using host.docker.internal instead of 127.0.0.1 or localhost. In a Linux host, you need to run our docker container using docker run --network="host" -d moshiresearch/rapids:latest and then 127.0.0.1 will point to your host machine.

      +
      +
      + + + + + + +

      Comments

      + + + + + + +
      + +
      +
      + +
      + + + + +
      +
      +
      +
      + + + + + + + + + + + + \ No newline at end of file diff --git a/1.3/snippets/feature_introduction_example/index.html b/1.3/snippets/feature_introduction_example/index.html new file mode 100644 index 00000000..0f713775 --- /dev/null +++ b/1.3/snippets/feature_introduction_example/index.html @@ -0,0 +1,1852 @@ + + + + + + + + + + + + + + + + + + + + + + Feature introduction example - RAPIDS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      +
      + +
      + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + +
      +
      +
      + + + +
      +
      + + + + + + + + +

      Feature introduction example

      + +
        +
      1. +

        Sensor section

        +

        Each sensor (accelerometer, screen, etc.) of every supported device (smartphone, Fitbit, etc.) has a section in the config.yaml with parameters and feature PROVIDERS.

        +
      2. +
      3. +

        Sensor Parameters.

        +

        Each sensor section has one or more parameters. These are parameters that affect different aspects of how the raw data is pulled, and processed.

        +

        The CONTAINER parameter exists for every sensor, but some sensors will have extra parameters like [PHONE_LOCATIONS].

        +

        We explain these parameters in a table at the top of each sensor documentation page.

        +
      4. +
      5. +

        Sensor Providers

        +

        Each object in this list represents a feature PROVIDER. Each sensor can have zero, one, or more providers.

        +

        A PROVIDER is a script that creates behavioral features for a specific sensor. Providers are created by the core RAPIDS team or by the community, which are named after its first author like [PHONE_LOCATIONS][DORYAB].

        +

        In this example, there are two accelerometer feature providers RAPIDS and PANDA.

        +
      6. +
      7. +

        PROVIDER Parameters

        +

        Each PROVIDER has parameters that affect the computation of the behavioral features it offers.

        +

        These parameters include at least a [COMPUTE] flag that you switch to True to extract a provider’s behavioral features.

        +

        We explain every provider’s parameter in a table under the Parameters description heading on each provider documentation page.

        +
      8. +
      9. +

        PROVIDER Features

        +

        Each PROVIDER offers a set of behavioral features.

        +

        These features are grouped in an array for some providers, like those for RAPIDS provider. For others, they are grouped in a collection of arrays, like those for PANDAS provider.

        +

        In either case, you can delete the features you are not interested in, and they will not be included in the sensor’s output feature file.

        +

        We explain each behavioral feature in a table under the Features description heading on each provider documentation page.

        +
      10. +
      11. +

        PROVIDER script

        +

        Each PROVIDER has a SRC_SCRIPT that points to the script implementing its behavioral features.

        +

        It has to be a relative path from RAPIDS’ root folder and the script’s parent folder should be named after the provider, e.g. panda.

        +
      12. +
      + + + + + + +

      Comments

      + + + + + + +
      + +
      +
      + +
      + + + + +
      +
      +
      +
      + + + + + + + + + + + + \ No newline at end of file diff --git a/1.3/snippets/jsonfitbit_format/index.html b/1.3/snippets/jsonfitbit_format/index.html new file mode 100644 index 00000000..750824f8 --- /dev/null +++ b/1.3/snippets/jsonfitbit_format/index.html @@ -0,0 +1,2373 @@ + + + + + + + + + + + + + + + + + + + + + + Jsonfitbit format - RAPIDS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      +
      + +
      + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + +
      +
      +
      + + + +
      +
      + + + + + + + + +

      Jsonfitbit format

      + +

      The format.yaml maps and transforms columns in your raw data stream to the mandatory columns RAPIDS needs for Fitbit sensors. This file is at:

      +
      src/data/streams/fitbitjson_csv/format.yaml
      +
      +

      If you want RAPIDS to process Fitbit sensor data using this stream, you will need to map DEVICE_ID and JSON_FITBIT_COLUMN to your own raw data columns inside each sensor section in format.yaml.

      +
      FITBIT_HEARTRATE_SUMMARY

      RAPIDS_COLUMN_MAPPINGS

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      RAPIDS columnStream column
      LOCAL_DATE_TIMEFLAG_TO_MUTATE
      DEVICE_IDdevice_id
      HEARTRATE_DAILY_RESTINGHRFLAG_TO_MUTATE
      HEARTRATE_DAILY_CALORIESOUTOFRANGEFLAG_TO_MUTATE
      HEARTRATE_DAILY_CALORIESFATBURNFLAG_TO_MUTATE
      HEARTRATE_DAILY_CALORIESCARDIOFLAG_TO_MUTATE
      HEARTRATE_DAILY_CALORIESPEAKFLAG_TO_MUTATE
      +

      MUTATION

      +
        +
      • +

        COLUMN_MAPPINGS

        + + + + + + + + + + + + + +
        Script columnStream column
        JSON_FITBIT_COLUMNfitbit_data
        +
      • +
      • +

        SCRIPTS

        +
        - src/data/streams/mutations/fitbit/parse_heartrate_summary_json.py
        +- src/data/streams/mutations/fitbit/add_zero_timestamp.py
        +
        +
        +

        Note

        +

        All columns except DEVICE_ID are parsed from JSON_FITBIT_COLUMN. JSON_FITBIT_COLUMN is a string column containing the JSON objects returned by Fitbit’s API. See an example of the raw data RAPIDS expects for this data stream:

        +
        Example of the raw data RAPIDS expects for this data stream + + + + + + + + + + + + + + + + + + + + +
        device_idfitbit_data
        a748ee1a-1d0b-4ae9-9074-279a2b6ba524{“activities-heart”:[{“dateTime”:”2020-10-07”,”value”:{“customHeartRateZones”:[],”heartRateZones”:[{“caloriesOut”:1200.6102,”max”:88,”min”:31,”minutes”:1058,”name”:”Out of Range”},{“caloriesOut”:760.3020,”max”:120,”min”:86,”minutes”:366,”name”:”Fat Burn”},{“caloriesOut”:15.2048,”max”:146,”min”:120,”minutes”:2,”name”:”Cardio”},{“caloriesOut”:0,”max”:221,”min”:148,”minutes”:0,”name”:”Peak”}],”restingHeartRate”:72}}],”activities-heart-intraday”:{“dataset”:[{“time”:”00:00:00”,”value”:68},{“time”:”00:01:00”,”value”:67},{“time”:”00:02:00”,”value”:67},…],”datasetInterval”:1,”datasetType”:”minute”}}
        a748ee1a-1d0b-4ae9-9074-279a2b6ba524{“activities-heart”:[{“dateTime”:”2020-10-08”,”value”:{“customHeartRateZones”:[],”heartRateZones”:[{“caloriesOut”:1100.1120,”max”:89,”min”:30,”minutes”:921,”name”:”Out of Range”},{“caloriesOut”:660.0012,”max”:118,”min”:82,”minutes”:361,”name”:”Fat Burn”},{“caloriesOut”:23.7088,”max”:142,”min”:108,”minutes”:3,”name”:”Cardio”},{“caloriesOut”:0,”max”:221,”min”:148,”minutes”:0,”name”:”Peak”}],”restingHeartRate”:70}}],”activities-heart-intraday”:{“dataset”:[{“time”:”00:00:00”,”value”:77},{“time”:”00:01:00”,”value”:75},{“time”:”00:02:00”,”value”:73},…],”datasetInterval”:1,”datasetType”:”minute”}}
        a748ee1a-1d0b-4ae9-9074-279a2b6ba524{“activities-heart”:[{“dateTime”:”2020-10-09”,”value”:{“customHeartRateZones”:[],”heartRateZones”:[{“caloriesOut”:750.3615,”max”:77,”min”:30,”minutes”:851,”name”:”Out of Range”},{“caloriesOut”:734.1516,”max”:107,”min”:77,”minutes”:550,”name”:”Fat Burn”},{“caloriesOut”:131.8579,”max”:130,”min”:107,”minutes”:29,”name”:”Cardio”},{“caloriesOut”:0,”max”:220,”min”:130,”minutes”:0,”name”:”Peak”}],”restingHeartRate”:69}}],”activities-heart-intraday”:{“dataset”:[{“time”:”00:00:00”,”value”:90},{“time”:”00:01:00”,”value”:89},{“time”:”00:02:00”,”value”:88},…],”datasetInterval”:1,”datasetType”:”minute”}}
        +
        +
        +
      • +
      +
      +
      FITBIT_HEARTRATE_INTRADAY

      RAPIDS_COLUMN_MAPPINGS

      + + + + + + + + + + + + + + + + + + + + + + + + + +
      RAPIDS columnStream column
      LOCAL_DATE_TIMEFLAG_TO_MUTATE
      DEVICE_IDdevice_id
      HEARTRATEFLAG_TO_MUTATE
      HEARTRATE_ZONEFLAG_TO_MUTATE
      +

      MUTATION

      +
        +
      • +

        COLUMN_MAPPINGS

        + + + + + + + + + + + + + +
        Script columnStream column
        JSON_FITBIT_COLUMNfitbit_data
        +
      • +
      • +

        SCRIPTS

        +
        - src/data/streams/mutations/fitbit/parse_heartrate_intraday_json.py
        +- src/data/streams/mutations/fitbit/add_zero_timestamp.py
        +
        +
        +

        Note

        +

        All columns except DEVICE_ID are parsed from JSON_FITBIT_COLUMN. JSON_FITBIT_COLUMN is a string column containing the JSON objects returned by Fitbit’s API. See an example of the raw data RAPIDS expects for this data stream:

        +
        Example of the raw data RAPIDS expects for this data stream + + + + + + + + + + + + + + + + + + + + +
        device_idfitbit_data
        a748ee1a-1d0b-4ae9-9074-279a2b6ba524{“activities-heart”:[{“dateTime”:”2020-10-07”,”value”:{“customHeartRateZones”:[],”heartRateZones”:[{“caloriesOut”:1200.6102,”max”:88,”min”:31,”minutes”:1058,”name”:”Out of Range”},{“caloriesOut”:760.3020,”max”:120,”min”:86,”minutes”:366,”name”:”Fat Burn”},{“caloriesOut”:15.2048,”max”:146,”min”:120,”minutes”:2,”name”:”Cardio”},{“caloriesOut”:0,”max”:221,”min”:148,”minutes”:0,”name”:”Peak”}],”restingHeartRate”:72}}],”activities-heart-intraday”:{“dataset”:[{“time”:”00:00:00”,”value”:68},{“time”:”00:01:00”,”value”:67},{“time”:”00:02:00”,”value”:67},…],”datasetInterval”:1,”datasetType”:”minute”}}
        a748ee1a-1d0b-4ae9-9074-279a2b6ba524{“activities-heart”:[{“dateTime”:”2020-10-08”,”value”:{“customHeartRateZones”:[],”heartRateZones”:[{“caloriesOut”:1100.1120,”max”:89,”min”:30,”minutes”:921,”name”:”Out of Range”},{“caloriesOut”:660.0012,”max”:118,”min”:82,”minutes”:361,”name”:”Fat Burn”},{“caloriesOut”:23.7088,”max”:142,”min”:108,”minutes”:3,”name”:”Cardio”},{“caloriesOut”:0,”max”:221,”min”:148,”minutes”:0,”name”:”Peak”}],”restingHeartRate”:70}}],”activities-heart-intraday”:{“dataset”:[{“time”:”00:00:00”,”value”:77},{“time”:”00:01:00”,”value”:75},{“time”:”00:02:00”,”value”:73},…],”datasetInterval”:1,”datasetType”:”minute”}}
        a748ee1a-1d0b-4ae9-9074-279a2b6ba524{“activities-heart”:[{“dateTime”:”2020-10-09”,”value”:{“customHeartRateZones”:[],”heartRateZones”:[{“caloriesOut”:750.3615,”max”:77,”min”:30,”minutes”:851,”name”:”Out of Range”},{“caloriesOut”:734.1516,”max”:107,”min”:77,”minutes”:550,”name”:”Fat Burn”},{“caloriesOut”:131.8579,”max”:130,”min”:107,”minutes”:29,”name”:”Cardio”},{“caloriesOut”:0,”max”:220,”min”:130,”minutes”:0,”name”:”Peak”}],”restingHeartRate”:69}}],”activities-heart-intraday”:{“dataset”:[{“time”:”00:00:00”,”value”:90},{“time”:”00:01:00”,”value”:89},{“time”:”00:02:00”,”value”:88},…],”datasetInterval”:1,”datasetType”:”minute”}}
        +
        +
        +
      • +
      +
      +
      FITBIT_SLEEP_SUMMARY

      RAPIDS_COLUMN_MAPPINGS

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      RAPIDS columnStream column
      TIMESTAMPFLAG_TO_MUTATE
      LOCAL_DATE_TIMEFLAG_TO_MUTATE
      LOCAL_START_DATE_TIMEFLAG_TO_MUTATE
      LOCAL_END_DATE_TIMEFLAG_TO_MUTATE
      DEVICE_IDdevice_id
      EFFICIENCYFLAG_TO_MUTATE
      MINUTES_AFTER_WAKEUPFLAG_TO_MUTATE
      MINUTES_ASLEEPFLAG_TO_MUTATE
      MINUTES_AWAKEFLAG_TO_MUTATE
      MINUTES_TO_FALL_ASLEEPFLAG_TO_MUTATE
      MINUTES_IN_BEDFLAG_TO_MUTATE
      IS_MAIN_SLEEPFLAG_TO_MUTATE
      TYPEFLAG_TO_MUTATE
      +

      MUTATION

      +
        +
      • +

        COLUMN_MAPPINGS

        + + + + + + + + + + + + + +
        Script columnStream column
        JSON_FITBIT_COLUMNfitbit_data
        +
      • +
      • +

        SCRIPTS

        +
        - src/data/streams/mutations/fitbit/parse_sleep_summary_json.py
        +- src/data/streams/mutations/fitbit/add_local_date_time.py
        +- src/data/streams/mutations/fitbit/add_zero_timestamp.py
        +
        +
        +

        Note

        +

        Fitbit API has two versions for sleep data, v1 and v1.2. We support both but ignore v1’s count_awake, duration_awake, and count_awakenings, count_restless, duration_restless columns.

        +

        All columns except DEVICE_ID are parsed from JSON_FITBIT_COLUMN. JSON_FITBIT_COLUMN is a string column containing the JSON objects returned by Fitbit’s API. See an example of the raw data RAPIDS expects for this data stream:

        +
        Example of the expected raw data + + + + + + + + + + + + + + + + + + + + +
        device_idfitbit_data
        a748ee1a-1d0b-4ae9-9074-279a2b6ba524{“sleep”:[{“dateOfSleep”:”2020-10-10”,”duration”:3600000,”efficiency”:92,”endTime”:”2020-10-10T16:37:00.000”,”infoCode”:2,”isMainSleep”:false,”levels”:{“data”:[{“dateTime”:”2020-10-10T15:36:30.000”,”level”:”restless”,”seconds”:60},{“dateTime”:”2020-10-10T15:37:30.000”,”level”:”asleep”,”seconds”:660},{“dateTime”:”2020-10-10T15:48:30.000”,”level”:”restless”,”seconds”:60},…], “summary”:{“asleep”:{“count”:0,”minutes”:56},”awake”:{“count”:0,”minutes”:0},”restless”:{“count”:3,”minutes”:4}}},”logId”:26315914306,”minutesAfterWakeup”:0,”minutesAsleep”:55,”minutesAwake”:5,”minutesToFallAsleep”:0,”startTime”:”2020-10-10T15:36:30.000”,”timeInBed”:60,”type”:”classic”},{“dateOfSleep”:”2020-10-10”,”duration”:22980000,”efficiency”:88,”endTime”:”2020-10-10T08:10:00.000”,”infoCode”:0,”isMainSleep”:true,”levels”:{“data”:[{“dateTime”:”2020-10-10T01:46:30.000”,”level”:”light”,”seconds”:420},{“dateTime”:”2020-10-10T01:53:30.000”,”level”:”deep”,”seconds”:1230},{“dateTime”:”2020-10-10T02:14:00.000”,”level”:”light”,”seconds”:360},…], “summary”:{“deep”:{“count”:3,”minutes”:92,”thirtyDayAvgMinutes”:0},”light”:{“count”:29,”minutes”:193,”thirtyDayAvgMinutes”:0},”rem”:{“count”:4,”minutes”:33,”thirtyDayAvgMinutes”:0},”wake”:{“count”:28,”minutes”:65,”thirtyDayAvgMinutes”:0}}},”logId”:26311786557,”minutesAfterWakeup”:0,”minutesAsleep”:318,”minutesAwake”:65,”minutesToFallAsleep”:0,”startTime”:”2020-10-10T01:46:30.000”,”timeInBed”:383,”type”:”stages”}],”summary”:{“stages”:{“deep”:92,”light”:193,”rem”:33,”wake”:65},”totalMinutesAsleep”:373,”totalSleepRecords”:2,”totalTimeInBed”:443}}
        a748ee1a-1d0b-4ae9-9074-279a2b6ba524{“sleep”:[{“dateOfSleep”:”2020-10-11”,”duration”:41640000,”efficiency”:89,”endTime”:”2020-10-11T11:47:00.000”,”infoCode”:0,”isMainSleep”:true,”levels”:{“data”:[{“dateTime”:”2020-10-11T00:12:30.000”,”level”:”wake”,”seconds”:450},{“dateTime”:”2020-10-11T00:20:00.000”,”level”:”light”,”seconds”:870},{“dateTime”:”2020-10-11T00:34:30.000”,”level”:”wake”,”seconds”:780},…], “summary”:{“deep”:{“count”:4,”minutes”:52,”thirtyDayAvgMinutes”:62},”light”:{“count”:32,”minutes”:442,”thirtyDayAvgMinutes”:364},”rem”:{“count”:6,”minutes”:68,”thirtyDayAvgMinutes”:58},”wake”:{“count”:29,”minutes”:132,”thirtyDayAvgMinutes”:94}}},”logId”:26589710670,”minutesAfterWakeup”:1,”minutesAsleep”:562,”minutesAwake”:132,”minutesToFallAsleep”:0,”startTime”:”2020-10-11T00:12:30.000”,”timeInBed”:694,”type”:”stages”}],”summary”:{“stages”:{“deep”:52,”light”:442,”rem”:68,”wake”:132},”totalMinutesAsleep”:562,”totalSleepRecords”:1,”totalTimeInBed”:694}}
        a748ee1a-1d0b-4ae9-9074-279a2b6ba524{“sleep”:[{“dateOfSleep”:”2020-10-12”,”duration”:28980000,”efficiency”:93,”endTime”:”2020-10-12T09:34:30.000”,”infoCode”:0,”isMainSleep”:true,”levels”:{“data”:[{“dateTime”:”2020-10-12T01:31:00.000”,”level”:”wake”,”seconds”:600},{“dateTime”:”2020-10-12T01:41:00.000”,”level”:”light”,”seconds”:60},{“dateTime”:”2020-10-12T01:42:00.000”,”level”:”deep”,”seconds”:2340},…], “summary”:{“deep”:{“count”:4,”minutes”:63,”thirtyDayAvgMinutes”:59},”light”:{“count”:27,”minutes”:257,”thirtyDayAvgMinutes”:364},”rem”:{“count”:5,”minutes”:94,”thirtyDayAvgMinutes”:58},”wake”:{“count”:24,”minutes”:69,”thirtyDayAvgMinutes”:95}}},”logId”:26589710673,”minutesAfterWakeup”:0,”minutesAsleep”:415,”minutesAwake”:68,”minutesToFallAsleep”:0,”startTime”:”2020-10-12T01:31:00.000”,”timeInBed”:483,”type”:”stages”}],”summary”:{“stages”:{“deep”:63,”light”:257,”rem”:94,”wake”:69},”totalMinutesAsleep”:415,”totalSleepRecords”:1,”totalTimeInBed”:483}}
        +
        +
        +
      • +
      +
      +
      FITBIT_SLEEP_INTRADAY

      RAPIDS_COLUMN_MAPPINGS

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      RAPIDS columnStream column
      TIMESTAMPFLAG_TO_MUTATE
      LOCAL_DATE_TIMEFLAG_TO_MUTATE
      DEVICE_IDdevice_id
      TYPE_EPISODE_IDFLAG_TO_MUTATE
      DURATIONFLAG_TO_MUTATE
      IS_MAIN_SLEEPFLAG_TO_MUTATE
      TYPEFLAG_TO_MUTATE
      LEVELFLAG_TO_MUTATE
      +

      MUTATION

      +
        +
      • +

        COLUMN_MAPPINGS

        + + + + + + + + + + + + + +
        Script columnStream column
        JSON_FITBIT_COLUMNfitbit_data
        +
      • +
      • +

        SCRIPTS

        +
        - src/data/streams/mutations/fitbit/parse_sleep_intraday_json.py
        +- src/data/streams/mutations/fitbit/add_zero_timestamp.py
        +
        +
        +

        Note

        +

        Fitbit API has two versions for sleep data, v1 and v1.2, we support both.

        +

        All columns except DEVICE_ID are parsed from JSON_FITBIT_COLUMN. JSON_FITBIT_COLUMN is a string column containing the JSON objects returned by Fitbit’s API. See an example of the raw data RAPIDS expects for this data stream:

        +
        Example of the expected raw data + + + + + + + + + + + + + + + + + + + + +
        device_idfitbit_data
        a748ee1a-1d0b-4ae9-9074-279a2b6ba524{“sleep”:[{“dateOfSleep”:”2020-10-10”,”duration”:3600000,”efficiency”:92,”endTime”:”2020-10-10T16:37:00.000”,”infoCode”:2,”isMainSleep”:false,”levels”:{“data”:[{“dateTime”:”2020-10-10T15:36:30.000”,”level”:”restless”,”seconds”:60},{“dateTime”:”2020-10-10T15:37:30.000”,”level”:”asleep”,”seconds”:660},{“dateTime”:”2020-10-10T15:48:30.000”,”level”:”restless”,”seconds”:60},…], “summary”:{“asleep”:{“count”:0,”minutes”:56},”awake”:{“count”:0,”minutes”:0},”restless”:{“count”:3,”minutes”:4}}},”logId”:26315914306,”minutesAfterWakeup”:0,”minutesAsleep”:55,”minutesAwake”:5,”minutesToFallAsleep”:0,”startTime”:”2020-10-10T15:36:30.000”,”timeInBed”:60,”type”:”classic”},{“dateOfSleep”:”2020-10-10”,”duration”:22980000,”efficiency”:88,”endTime”:”2020-10-10T08:10:00.000”,”infoCode”:0,”isMainSleep”:true,”levels”:{“data”:[{“dateTime”:”2020-10-10T01:46:30.000”,”level”:”light”,”seconds”:420},{“dateTime”:”2020-10-10T01:53:30.000”,”level”:”deep”,”seconds”:1230},{“dateTime”:”2020-10-10T02:14:00.000”,”level”:”light”,”seconds”:360},…], “summary”:{“deep”:{“count”:3,”minutes”:92,”thirtyDayAvgMinutes”:0},”light”:{“count”:29,”minutes”:193,”thirtyDayAvgMinutes”:0},”rem”:{“count”:4,”minutes”:33,”thirtyDayAvgMinutes”:0},”wake”:{“count”:28,”minutes”:65,”thirtyDayAvgMinutes”:0}}},”logId”:26311786557,”minutesAfterWakeup”:0,”minutesAsleep”:318,”minutesAwake”:65,”minutesToFallAsleep”:0,”startTime”:”2020-10-10T01:46:30.000”,”timeInBed”:383,”type”:”stages”}],”summary”:{“stages”:{“deep”:92,”light”:193,”rem”:33,”wake”:65},”totalMinutesAsleep”:373,”totalSleepRecords”:2,”totalTimeInBed”:443}}
        a748ee1a-1d0b-4ae9-9074-279a2b6ba524{“sleep”:[{“dateOfSleep”:”2020-10-11”,”duration”:41640000,”efficiency”:89,”endTime”:”2020-10-11T11:47:00.000”,”infoCode”:0,”isMainSleep”:true,”levels”:{“data”:[{“dateTime”:”2020-10-11T00:12:30.000”,”level”:”wake”,”seconds”:450},{“dateTime”:”2020-10-11T00:20:00.000”,”level”:”light”,”seconds”:870},{“dateTime”:”2020-10-11T00:34:30.000”,”level”:”wake”,”seconds”:780},…], “summary”:{“deep”:{“count”:4,”minutes”:52,”thirtyDayAvgMinutes”:62},”light”:{“count”:32,”minutes”:442,”thirtyDayAvgMinutes”:364},”rem”:{“count”:6,”minutes”:68,”thirtyDayAvgMinutes”:58},”wake”:{“count”:29,”minutes”:132,”thirtyDayAvgMinutes”:94}}},”logId”:26589710670,”minutesAfterWakeup”:1,”minutesAsleep”:562,”minutesAwake”:132,”minutesToFallAsleep”:0,”startTime”:”2020-10-11T00:12:30.000”,”timeInBed”:694,”type”:”stages”}],”summary”:{“stages”:{“deep”:52,”light”:442,”rem”:68,”wake”:132},”totalMinutesAsleep”:562,”totalSleepRecords”:1,”totalTimeInBed”:694}}
        a748ee1a-1d0b-4ae9-9074-279a2b6ba524{“sleep”:[{“dateOfSleep”:”2020-10-12”,”duration”:28980000,”efficiency”:93,”endTime”:”2020-10-12T09:34:30.000”,”infoCode”:0,”isMainSleep”:true,”levels”:{“data”:[{“dateTime”:”2020-10-12T01:31:00.000”,”level”:”wake”,”seconds”:600},{“dateTime”:”2020-10-12T01:41:00.000”,”level”:”light”,”seconds”:60},{“dateTime”:”2020-10-12T01:42:00.000”,”level”:”deep”,”seconds”:2340},…], “summary”:{“deep”:{“count”:4,”minutes”:63,”thirtyDayAvgMinutes”:59},”light”:{“count”:27,”minutes”:257,”thirtyDayAvgMinutes”:364},”rem”:{“count”:5,”minutes”:94,”thirtyDayAvgMinutes”:58},”wake”:{“count”:24,”minutes”:69,”thirtyDayAvgMinutes”:95}}},”logId”:26589710673,”minutesAfterWakeup”:0,”minutesAsleep”:415,”minutesAwake”:68,”minutesToFallAsleep”:0,”startTime”:”2020-10-12T01:31:00.000”,”timeInBed”:483,”type”:”stages”}],”summary”:{“stages”:{“deep”:63,”light”:257,”rem”:94,”wake”:69},”totalMinutesAsleep”:415,”totalSleepRecords”:1,”totalTimeInBed”:483}}
        +
        +
        +
      • +
      +
      +
      FITBIT_STEPS_SUMMARY

      RAPIDS_COLUMN_MAPPINGS

      + + + + + + + + + + + + + + + + + + + + + + + + + +
      RAPIDS columnStream column
      TIMESTAMPFLAG_TO_MUTATE
      DEVICE_IDdevice_id
      LOCAL_DATE_TIMEFLAG_TO_MUTATE
      STEPSFLAG_TO_MUTATE
      +

      MUTATION

      +
        +
      • +

        COLUMN_MAPPINGS

        + + + + + + + + + + + + + +
        Script columnStream column
        JSON_FITBIT_COLUMNfitbit_data
        +
      • +
      • +

        SCRIPTS

        +
        - src/data/streams/mutations/fitbit/parse_steps_summary_json.py
        +- src/data/streams/mutations/fitbit/add_zero_timestamp.py
        +
        +
        +

        Note

        +

        TIMESTAMP, LOCAL_DATE_TIME, and STEPS are parsed from JSON_FITBIT_COLUMN. JSON_FITBIT_COLUMN is a string column containing the JSON objects returned by Fitbit’s API. See an example of the raw data RAPIDS expects for this data stream:

        +
        Example of the expected raw data + + + + + + + + + + + + + + + + + + + + +
        device_idfitbit_data
        a748ee1a-1d0b-4ae9-9074-279a2b6ba524“activities-steps”:[{“dateTime”:”2020-10-07”,”value”:”1775”}],”activities-steps-intraday”:{“dataset”:[{“time”:”00:00:00”,”value”:5},{“time”:”00:01:00”,”value”:3},{“time”:”00:02:00”,”value”:0},…],”datasetInterval”:1,”datasetType”:”minute”}}
        a748ee1a-1d0b-4ae9-9074-279a2b6ba524“activities-steps”:[{“dateTime”:”2020-10-08”,”value”:”3201”}],”activities-steps-intraday”:{“dataset”:[{“time”:”00:00:00”,”value”:14},{“time”:”00:01:00”,”value”:11},{“time”:”00:02:00”,”value”:10},…],”datasetInterval”:1,”datasetType”:”minute”}}
        a748ee1a-1d0b-4ae9-9074-279a2b6ba524“activities-steps”:[{“dateTime”:”2020-10-09”,”value”:”998”}],”activities-steps-intraday”:{“dataset”:[{“time”:”00:00:00”,”value”:0},{“time”:”00:01:00”,”value”:0},{“time”:”00:02:00”,”value”:0},…],”datasetInterval”:1,”datasetType”:”minute”}}
        +
        +
        +
      • +
      +
      +
      FITBIT_STEPS_INTRADAY

      RAPIDS_COLUMN_MAPPINGS

      + + + + + + + + + + + + + + + + + + + + + + + + + +
      RAPIDS columnStream column
      TIMESTAMPFLAG_TO_MUTATE
      DEVICE_IDdevice_id
      LOCAL_DATE_TIMEFLAG_TO_MUTATE
      STEPSFLAG_TO_MUTATE
      +

      MUTATION

      +
        +
      • +

        COLUMN_MAPPINGS

        + + + + + + + + + + + + + +
        Script columnStream column
        JSON_FITBIT_COLUMNfitbit_data
        +
      • +
      • +

        SCRIPTS

        +
        - src/data/streams/mutations/fitbit/parse_steps_intraday_json.py
        +- src/data/streams/mutations/fitbit/add_zero_timestamp.py
        +
        +
        +

        Note

        +

        TIMESTAMP, LOCAL_DATE_TIME, and STEPS are parsed from JSON_FITBIT_COLUMN. JSON_FITBIT_COLUMN is a string column containing the JSON objects returned by Fitbit’s API. See an example of the raw data RAPIDS expects for this data stream:

        +
        Example of the expected raw data + + + + + + + + + + + + + + + + + + + + +
        device_idfitbit_data
        a748ee1a-1d0b-4ae9-9074-279a2b6ba524“activities-steps”:[{“dateTime”:”2020-10-07”,”value”:”1775”}],”activities-steps-intraday”:{“dataset”:[{“time”:”00:00:00”,”value”:5},{“time”:”00:01:00”,”value”:3},{“time”:”00:02:00”,”value”:0},…],”datasetInterval”:1,”datasetType”:”minute”}}
        a748ee1a-1d0b-4ae9-9074-279a2b6ba524“activities-steps”:[{“dateTime”:”2020-10-08”,”value”:”3201”}],”activities-steps-intraday”:{“dataset”:[{“time”:”00:00:00”,”value”:14},{“time”:”00:01:00”,”value”:11},{“time”:”00:02:00”,”value”:10},…],”datasetInterval”:1,”datasetType”:”minute”}}
        a748ee1a-1d0b-4ae9-9074-279a2b6ba524“activities-steps”:[{“dateTime”:”2020-10-09”,”value”:”998”}],”activities-steps-intraday”:{“dataset”:[{“time”:”00:00:00”,”value”:0},{“time”:”00:01:00”,”value”:0},{“time”:”00:02:00”,”value”:0},…],”datasetInterval”:1,”datasetType”:”minute”}}
        +
        +
        +
      • +
      +
      + + + + + + +

      Comments

      + + + + + + +
      + +
      +
      + +
      + + + + +
      +
      +
      +
      + + + + + + + + + + + + \ No newline at end of file diff --git a/1.3/snippets/parsedfitbit_format/index.html b/1.3/snippets/parsedfitbit_format/index.html new file mode 100644 index 00000000..5b75f307 --- /dev/null +++ b/1.3/snippets/parsedfitbit_format/index.html @@ -0,0 +1,2424 @@ + + + + + + + + + + + + + + + + + + + + + + Parsedfitbit format - RAPIDS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      +
      + +
      + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + +
      +
      +
      + + + +
      +
      + + + + + + + + +

      Parsedfitbit format

      + +

      The format.yaml maps and transforms columns in your raw data stream to the mandatory columns RAPIDS needs for Fitbit sensors. This file is at:

      +
      src/data/streams/fitbitparsed_mysql/format.yaml
      +
      +

      If you want to use this stream with your data, modify every sensor in format.yaml to map all columns except TIMESTAMP in [RAPIDS_COLUMN_MAPPINGS] to your raw data column names.

      +

      All columns are mandatory; however, all except device_id and local_date_time can be empty if you don’t have that data. Just have in mind that some features will be empty if some of these columns are empty.

      +
      FITBIT_HEARTRATE_SUMMARY

      RAPIDS_COLUMN_MAPPINGS

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      RAPIDS columnStream column
      TIMESTAMPFLAG_TO_MUTATE
      LOCAL_DATE_TIMElocal_date_time
      DEVICE_IDdevice_id
      HEARTRATE_DAILY_RESTINGHRheartrate_daily_restinghr
      HEARTRATE_DAILY_CALORIESOUTOFRANGEheartrate_daily_caloriesoutofrange
      HEARTRATE_DAILY_CALORIESFATBURNheartrate_daily_caloriesfatburn
      HEARTRATE_DAILY_CALORIESCARDIOheartrate_daily_caloriescardio
      HEARTRATE_DAILY_CALORIESPEAKheartrate_daily_caloriespeak
      +

      MUTATION

      +
        +
      • +

        COLUMN_MAPPINGS (None)

        +
      • +
      • +

        SCRIPTS

        +
        src/data/streams/mutations/fitbit/add_zero_timestamp.py
        +
        +
      • +
      +
      +

      Note

      +

      add_zero_timestamp adds an all-zero column called timestamp that will be filled in later in the pipeline by readable_time.R converting LOCAL_DATE_TIME to a unix timestamp taking into account single or multiple time zones.

      +
      Example of the raw data RAPIDS expects for this data stream + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      device_idlocal_date_timeheartrate_daily_restinghrheartrate_daily_caloriesoutofrangeheartrate_daily_caloriesfatburnheartrate_daily_caloriescardioheartrate_daily_caloriespeak
      a748ee1a-1d0b-4ae9-9074-279a2b6ba5242020-10-07721200.6102760.302015.20480
      a748ee1a-1d0b-4ae9-9074-279a2b6ba5242020-10-08701100.1120660.001223.70880
      a748ee1a-1d0b-4ae9-9074-279a2b6ba5242020-10-0969750.3615734.1516131.85790
      +
      +
      +
      +
      FITBIT_HEARTRATE_INTRADAY

      RAPIDS_COLUMN_MAPPINGS

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      RAPIDS columnStream column
      TIMESTAMPFLAG_TO_MUTATE
      LOCAL_DATE_TIMElocal_date_time
      DEVICE_IDdevice_id
      HEARTRATEheartrate
      HEARTRATE_ZONEheartrate_zone
      +

      MUTATION

      +
        +
      • +

        COLUMN_MAPPINGS (None)

        +
      • +
      • +

        SCRIPTS

        +
        src/data/streams/mutations/fitbit/add_zero_timestamp.py
        +
        +
      • +
      +
      +

      Note

      +

      add_zero_timestamp adds an all-zero column called timestamp that will be filled in later in the pipeline by readable_time.R converting LOCAL_DATE_TIME to a unix timestamp taking into account single or multiple time zones.

      +
      Example of the raw data RAPIDS expects for this data stream + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      device_idlocal_date_timeheartrateheartrate_zone
      a748ee1a-1d0b-4ae9-9074-279a2b6ba5242020-10-07 00:00:0068outofrange
      a748ee1a-1d0b-4ae9-9074-279a2b6ba5242020-10-07 00:01:0067outofrange
      a748ee1a-1d0b-4ae9-9074-279a2b6ba5242020-10-07 00:02:0067outofrange
      +
      +
      +
      +
      FITBIT_SLEEP_SUMMARY

      RAPIDS_COLUMN_MAPPINGS

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      RAPIDS columnStream column
      TIMESTAMPFLAG_TO_MUTATE
      LOCAL_DATE_TIMEFLAG_TO_MUTATE
      LOCAL_START_DATE_TIMElocal_start_date_time
      LOCAL_END_DATE_TIMElocal_end_date_time
      DEVICE_IDdevice_id
      EFFICIENCYefficiency
      MINUTES_AFTER_WAKEUPminutes_after_wakeup
      MINUTES_ASLEEPminutes_asleep
      MINUTES_AWAKEminutes_awake
      MINUTES_TO_FALL_ASLEEPminutes_to_fall_asleep
      MINUTES_IN_BEDminutes_in_bed
      IS_MAIN_SLEEPis_main_sleep
      TYPEtype
      +

      MUTATION

      +
        +
      • +

        COLUMN_MAPPINGS (None)

        +
      • +
      • +

        SCRIPTS

        +
        - src/data/streams/mutations/fitbit/add_local_date_time.py
        +- src/data/streams/mutations/fitbit/add_zero_timestamp.py
        +
        +
      • +
      +
      +

      Note

      +

      add_zero_timestamp adds an all-zero column called timestamp that will be filled in later in the pipeline by readable_time.R converting LOCAL_DATE_TIME to a unix timestamp taking into account single or multiple time zones.

      +

      Fitbit API has two versions for sleep data, v1 and v1.2. We support both but ignore v1’s count_awake, duration_awake, and count_awakenings, count_restless, duration_restless columns.

      +
      Example of the expected raw data + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      device_idlocal_start_date_timelocal_end_date_timeefficiencyminutes_after_wakeupminutes_asleepminutes_awakeminutes_to_fall_asleepminutes_in_bedis_main_sleeptype
      a748ee1a-1d0b-4ae9-9074-279a2b6ba5242020-10-10 15:36:302020-10-10 16:37:009205550600classic
      a748ee1a-1d0b-4ae9-9074-279a2b6ba5242020-10-10 01:46:302020-10-10 08:10:008803186503831stages
      a748ee1a-1d0b-4ae9-9074-279a2b6ba5242020-10-11 00:12:302020-10-11 11:47:0089156213206941stages
      a748ee1a-1d0b-4ae9-9074-279a2b6ba5242020-10-12 01:31:002020-10-12 09:34:309304156804831stages
      +
      +
      +
      +
      FITBIT_SLEEP_INTRADAY

      RAPIDS_COLUMN_MAPPINGS

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      RAPIDS columnStream column
      TIMESTAMPFLAG_TO_MUTATE
      LOCAL_DATE_TIMElocal_date_time
      DEVICE_IDdevice_id
      TYPE_EPISODE_IDtype_episode_id
      DURATIONduration
      IS_MAIN_SLEEPis_main_sleep
      TYPEtype
      LEVELlevel
      +

      MUTATION

      +
        +
      • +

        COLUMN_MAPPINGS (None)

        +
      • +
      • +

        SCRIPTS

        +
        src/data/streams/mutations/fitbit/add_zero_timestamp.py
        +
        +
      • +
      +
      +

      Note

      +

      add_zero_timestamp adds an all-zero column called timestamp that will be filled in later in the pipeline by readable_time.R converting LOCAL_DATE_TIME to a unix timestamp taking into account single or multiple time zones.

      +

      Fitbit API has two versions for sleep data, v1 and v1.2, we support both.

      +
      Example of the expected raw data + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      device_idtype_episode_idlocal_date_timedurationlevelis_main_sleeptype
      a748ee1a-1d0b-4ae9-9074-279a2b6ba52402020-10-10 15:36:3060restless0classic
      a748ee1a-1d0b-4ae9-9074-279a2b6ba52402020-10-10 15:37:30660asleep0classic
      a748ee1a-1d0b-4ae9-9074-279a2b6ba52402020-10-10 15:48:3060restless0classic
      a748ee1a-1d0b-4ae9-9074-279a2b6ba524
      a748ee1a-1d0b-4ae9-9074-279a2b6ba52412020-10-10 01:46:30420light1stages
      a748ee1a-1d0b-4ae9-9074-279a2b6ba52412020-10-10 01:53:301230deep1stages
      +
      +
      +
      +
      FITBIT_STEPS_SUMMARY

      RAPIDS_COLUMN_MAPPINGS

      + + + + + + + + + + + + + + + + + + + + + + + + + +
      RAPIDS columnStream column
      TIMESTAMPFLAG_TO_MUTATE
      DEVICE_IDdevice_id
      LOCAL_DATE_TIMElocal_date_time
      STEPSsteps
      +

      MUTATION

      +
        +
      • +

        COLUMN_MAPPINGS (None)

        +
      • +
      • +

        SCRIPTS

        +
        src/data/streams/mutations/fitbit/add_zero_timestamp.py
        +
        +
      • +
      +
      +

      Note

      +

      add_zero_timestamp adds an all-zero column called timestamp that will be filled in later in the pipeline by readable_time.R converting LOCAL_DATE_TIME to a unix timestamp taking into account single or multiple time zones.

      +
      Example of the expected raw data + + + + + + + + + + + + + + + + + + + + + + + + +
      device_idlocal_date_timesteps
      a748ee1a-1d0b-4ae9-9074-279a2b6ba5242020-10-071775
      a748ee1a-1d0b-4ae9-9074-279a2b6ba5242020-10-083201
      a748ee1a-1d0b-4ae9-9074-279a2b6ba5242020-10-09998
      +
      +
      +
      +
      FITBIT_STEPS_INTRADAY

      RAPIDS_COLUMN_MAPPINGS

      + + + + + + + + + + + + + + + + + + + + + + + + + +
      RAPIDS columnStream column
      TIMESTAMPFLAG_TO_MUTATE
      DEVICE_IDdevice_id
      LOCAL_DATE_TIMElocal_date_time
      STEPSsteps
      +

      MUTATION

      +
        +
      • +

        COLUMN_MAPPINGS (None)

        +
      • +
      • +

        SCRIPTS

        +
        src/data/streams/mutations/fitbit/add_zero_timestamp.py
        +
        +
      • +
      +
      +

      Note

      +

      add_zero_timestamp adds an all-zero column called timestamp that will be filled in later in the pipeline by readable_time.R converting LOCAL_DATE_TIME to a unix timestamp taking into account single or multiple time zones.

      +
      Example of the expected raw data + + + + + + + + + + + + + + + + + + + + + + + + +
      device_idlocal_date_timesteps
      a748ee1a-1d0b-4ae9-9074-279a2b6ba5242020-10-07 00:00:005
      a748ee1a-1d0b-4ae9-9074-279a2b6ba5242020-10-07 00:01:003
      a748ee1a-1d0b-4ae9-9074-279a2b6ba5242020-10-07 00:02:000
      +
      +
      +
      + + + + + + +

      Comments

      + + + + + + +
      + +
      +
      + +
      + + + + +
      +
      +
      +
      + + + + + + + + + + + + \ No newline at end of file diff --git a/1.3/stylesheets/extra.css b/1.3/stylesheets/extra.css new file mode 100644 index 00000000..5638aeaf --- /dev/null +++ b/1.3/stylesheets/extra.css @@ -0,0 +1,51 @@ +@media screen and (min-width: 76.25em) { + .md-nav__item--section { + display: block; + margin: 1.75em 0; + } + + .md-nav :not(.md-nav--primary) > .md-nav__list { + padding-left: 7px; + } +} +.md-nav__item .md-nav__link--active { + color: var(--md-typeset-a-color); + background-color: var(--md-code-bg-color); +} + +div[data-md-component=announce] { + background-color: rgba(255,145,0,.1); +} +div[data-md-component=announce]>div#announce-msg{ + color: var(--md-admonition-fg-color); + font-size: .8rem; + text-align: center; + margin: 15px; +} +div[data-md-component=announce]>div#announce-msg>a{ + color: var(--md-typeset-a-color); + text-decoration: underline; +} + +.md-typeset table:not([class]) th { + min-width: 0rem; +} + +/* Users and contributors grid */ +.users { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); + grid-template-rows: auto; + grid-gap: 15px; +} + +.users > div { + display: flex; + justify-content: center; + align-items: center; +} + +.users > div > img { + max-height: 100px; + object-fit: contain; +} \ No newline at end of file diff --git a/1.3/team/index.html b/1.3/team/index.html new file mode 100644 index 00000000..7b012c11 --- /dev/null +++ b/1.3/team/index.html @@ -0,0 +1,2282 @@ + + + + + + + + + + + + + + + + + + + + + + Team - RAPIDS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + +
      +
      +
      + + + +
      +
      +
      + + +
      +
      +
      + + +
      +
      + + + + + + + + +

      RAPIDS Team

      +

      If you are interested in contributing feel free to submit a pull request or contact us.

      +

      Core Team

      +

      Julio Vega (Designer and Lead Developer)

      +
      About

      Julio Vega is a postdoctoral associate at the Mobile Sensing + Health Institute. He is interested in personalized methodologies to monitor chronic conditions that affect daily human behavior using mobile and wearable data.

      + +
      +

      Meng Li

      +
      About

      Meng Li received her Master of Science degree in Information Science from the University of Pittsburgh. She is interested in applying machine learning algorithms to the medical field.

      + +
      +

      Abhineeth Reddy Kunta

      +
      About

      Abhineeth Reddy Kunta is a Senior Software Engineer with the Mobile Sensing + Health Institute. He is experienced in software development and specializes in building solutions using machine learning. Abhineeth likes exploring ways to leverage technology in advancing medicine and education. Previously he worked as a Computer Programmer at Georgia Department of Public Health. He has a master’s degree in Computer Science from George Mason University.

      +
      +

      Kwesi Aguillera

      +
      About

      Kwesi Aguillera is currently in his first year at the University of Pittsburgh pursuing a Master of Sciences in Information Science specializing in Big Data Analytics. He received his Bachelor of Science degree in Computer Science and Management from the University of the West Indies. Kwesi considers himself a full stack developer and looks forward to applying this knowledge to big data analysis.

      + +
      +

      Echhit Joshi

      +
      About

      Echhit Joshi is a Masters student at the School of Computing and Information at University of Pittsburgh. His areas of interest are Machine/Deep Learning, Data Mining, and Analytics.

      + +
      +

      Nicolas Leo

      +
      About

      Nicolas is a rising senior studying computer science at the University of Pittsburgh. His academic interests include databases, machine learning, and application development. After completing his undergraduate degree, he plans to attend graduate school for a MS in Computer Science with a focus on Intelligent Systems.

      +
      +

      Nikunj Goel

      +
      About

      Nik is a graduate student at the University of Pittsburgh pursuing Master of Science in Information Science. He earned his Bachelor of Technology degree in Information Technology from India. He is a Data Enthusiasts and passionate about finding the meaning out of raw data. In a long term, his goal is to create a breakthrough in Data Science and Deep Learning.

      + +
      +

      Community Contributors

      +

      Agam Kumar

      +
      About

      Agam is a junior at Carnegie Mellon University studying Statistics and Machine Learning and pursuing an additional major in Computer Science. He is a member of the Data Science team in the Health and Human Performance Lab at CMU and has keen interests in software development and data science. His research interests include ML applications in medicine.

      + +
      +

      Yasaman S. Sefidgar

      +
      About +
      +

      Joe Kim

      +
      About +
      +

      Brinnae Bent

      +
      About +
      +

      Stephen Price

      +
      About

      Carnegie Mellon University

      +
      +

      Neil Singh

      +
      About

      University of Virginia

      +
      +

      Advisors

      +

      Afsaneh Doryab

      +
      About +
      +

      Carissa Low

      +
      About +
      + + + + + + +

      Comments

      + + + + + + +
      + +
      +
      + +
      + + + + +
      +
      +
      +
      + + + + + + + + + + + + \ No newline at end of file diff --git a/1.3/visualizations/data-quality-visualizations/index.html b/1.3/visualizations/data-quality-visualizations/index.html new file mode 100644 index 00000000..ae074538 --- /dev/null +++ b/1.3/visualizations/data-quality-visualizations/index.html @@ -0,0 +1,2036 @@ + + + + + + + + + + + + + + + + + + + + + + Data Quality - RAPIDS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + +
      +
      +
      + + + + + + +
      +
      + + + + + + + + +

      Data Quality Visualizations

      +

      We showcase these visualizations with a test study that collected 14 days of smartphone and Fitbit data from two participants (example01 and example02) and extracted behavioral features within five time segments (daily, morning, afternoon, evening, and night).

      +
      +

      Note

      +

      Time segments (e.g. daily, morning, etc.) can have multiple instances (day 1, day 2, or morning 1, morning 2, etc.)

      +
      +

      1. Histograms of phone data yield

      +

      RAPIDS provides two histograms that show the number of time segment instances that had a certain ratio of valid yielded minutes and hours, respectively. A valid yielded minute has at least 1 row of data from any smartphone sensor and a valid yielded hour contains at least M valid minutes.

      +

      These plots can be used as a rough indication of the smartphone monitoring coverage during a study aggregated across all participants. For example, the figure below shows a valid yielded minutes histogram for daily segments and we can infer that the monitoring coverage was very good since almost all segments contain at least 90 to 100% of the expected sensed minutes.

      +
      +

      Example

      +

      Click here to see an example of these interactive visualizations in HTML format

      +
      +
      + +
      Histogram of the data yielded minute ratio for a single participant during five time segments (daily, morning, afternoon, evening, and night)
      +
      + +

      2. Heatmaps of overall data yield

      +

      These heatmaps are a break down per time segment and per participant of Visualization 1. Heatmap’s rows represent participants, columns represent time segment instances and the cells’ color represent the valid yielded minute or hour ratio for a participant during a time segment instance.

      +

      As different participants might join a study on different dates and time segments can be of any length and start on any day, the x-axis can be labelled with the absolute time of the start of each time segment instance or the time delta between the start of each time segment instance minus the start of the first instance. These plots provide a quick study overview of the monitoring coverage per person and per time segment.

      +

      The figure below shows the heatmap of the valid yielded minute ratio for participants example01 and example02 on daily segments and, as we inferred from the previous histogram, the lighter (yellow) color on most time segment instances (cells) indicate both phones sensed data without interruptions for most days (except for the first and last ones).

      +
      +
      +

      Example

      +

      Click here to see an example of these interactive visualizations in HTML format

      +
      +

      + +
      Overall compliance heatmap for all participants
      +

      +
      +
      +
      +

      Example

      +

      Click here to see an example of these interactive visualizations in HTML format

      +
      +

      + +
      Overall compliance heatmap for all participants
      +

      +
      +
      +

      3. Heatmap of recorded phone sensors

      +

      In these heatmaps rows represent time segment instances, columns represent minutes since the start of a time segment instance, and cells’ color shows the number of phone sensors that logged at least one row of data during those 1-minute windows.

      +

      RAPIDS creates a plot per participant and per time segment and can be used as a rough indication of whether time-based sensors were following their sensing schedule (e.g. if location was being sensed every 2 minutes).

      +

      The figure below shows this heatmap for phone sensors collected by participant example01 in daily time segments from Apr 23rd 2020 to May 4th 2020. We can infer that for most of the monitoring time, the participant’s phone logged data from at least 7 sensors each minute.

      +
      +

      Example

      +

      Click here to see an example of these interactive visualizations in HTML format

      +
      +
      + +
      Heatmap of the recorded phone sensors per minute and per time segment of a single participant
      +
      + +

      4. Heatmap of sensor row count

      +

      These heatmaps are a per-sensor breakdown of Visualization 1 and Visualization 2. Note that the second row (ratio of valid yielded minutes) of this heatmap matches the respective participant (bottom) row the screenshot in Visualization 2.

      +

      In these heatmaps rows represent phone or Fitbit sensors, columns represent time segment instances and cell’s color shows the normalized (0 to 1) row count of each sensor within a time segment instance. RAPIDS creates one heatmap per participant and they can be used to judge missing data on a per participant and per sensor basis.

      +

      The figure below shows data for 14 phone sensors (including data yield) of example01’s daily segments. From the top two rows, we can see that the phone was sensing data for most of the monitoring period (as suggested by Figure 3 and Figure 4). We can also infer how phone usage influenced the different sensor streams; there are peaks of screen events during the first day (Apr 23rd), peaks of location coordinates on Apr 26th and Apr 30th, and no sent or received SMS except for Apr 23rd, Apr 29th and Apr 30th (unlabeled row between screen and locations).

      +
      +

      Example

      +

      Click here to see an example of these interactive visualizations in HTML format

      +
      +
      + +
      Heatmap of the sensor row count per time segment of a single participant
      +
      + + + + + + +

      Comments

      + + + + + + +
      + +
      +
      + +
      + + + + +
      +
      +
      +
      + + + + + + + + + + + + \ No newline at end of file diff --git a/1.3/visualizations/feature-visualizations/index.html b/1.3/visualizations/feature-visualizations/index.html new file mode 100644 index 00000000..a9eb3a42 --- /dev/null +++ b/1.3/visualizations/feature-visualizations/index.html @@ -0,0 +1,1938 @@ + + + + + + + + + + + + + + + + + + + + + + Features - RAPIDS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + +
      +
      +
      + + + +
      +
      +
      + + +
      +
      +
      + + +
      +
      + + + + + + + + +

      Feature Visualizations

      +

      1. Heatmap Correlation Matrix

      +

      Columns and rows are the behavioral features computed in RAPIDS, cells’ color represents the correlation coefficient between all days of data for every pair of features of all participants.

      +

      The user can specify a minimum number of observations (time segment instances) required to compute the correlation between two features using the MIN_ROWS_RATIO parameter (0.5 by default) and the correlation method (Pearson, Spearman or Kendall) with the CORR_METHOD parameter. In addition, this plot can be configured to only display correlation coefficients above a threshold using the CORR_THRESHOLD parameter (0.1 by default).

      +
      +

      Example

      +

      Click here to see an example of these interactive visualizations in HTML format

      +
      +
      + +
      Correlation matrix heatmap for all the features of all participants
      +
      + + + + + + +

      Comments

      + + + + + + +
      + +
      +
      + +
      + + + + +
      +
      +
      +
      + + + + + + + + + + + + \ No newline at end of file diff --git a/1.3/workflow-examples/analysis/index.html b/1.3/workflow-examples/analysis/index.html new file mode 100644 index 00000000..704ad36e --- /dev/null +++ b/1.3/workflow-examples/analysis/index.html @@ -0,0 +1,2052 @@ + + + + + + + + + + + + + + + + + + + + + + Complete Example - RAPIDS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + +
      +
      +
      + + + + + + +
      +
      + + + + + + + + +

      Analysis Workflow Example

      +
      +

      TL;DR

      +
        +
      • In addition to using RAPIDS to extract behavioral features and create plots, you can structure your data analysis within RAPIDS (i.e. cleaning your features and creating ML/statistical models)
      • +
      • We include an analysis example in RAPIDS that covers raw data processing, cleaning, feature extraction, machine learning modeling, and evaluation
      • +
      • Use this example as a guide to structure your own analysis within RAPIDS
      • +
      • RAPIDS analysis workflows are compatible with your favorite data science tools and libraries
      • +
      • RAPIDS analysis workflows are reproducible and we encourage you to publish them along with your research papers
      • +
      +
      +

      Why should I integrate my analysis in RAPIDS?

      +

      Even though the bulk of RAPIDS current functionality is related to the computation of behavioral features, we recommend RAPIDS as a complementary tool to create a mobile data analysis workflow. This is because the cookiecutter data science file organization guidelines, the use of Snakemake, the provided behavioral features, and the reproducible R and Python development environments allow researchers to divide an analysis workflow into small parts that can be audited, shared in an online repository, reproduced in other computers, and understood by other people as they follow a familiar and consistent structure. We believe these advantages outweigh the time needed to learn how to create these workflows in RAPIDS.

      +

      We clarify that to create analysis workflows in RAPIDS, researchers can still use any data manipulation tools, editors, libraries or languages they are already familiar with. RAPIDS is meant to be the final destination of analysis code that was developed in interactive notebooks or stand-alone scripts. For example, a user can compute call and location features using RAPIDS, then, they can use Jupyter notebooks to explore feature cleaning approaches and once the cleaning code is final, it can be moved to RAPIDS as a new step in the pipeline. In turn, the output of this cleaning step can be used to explore machine learning models and once a model is finished, it can also be transferred to RAPIDS as a step of its own. The idea is that when it is time to publish a piece of research, a RAPIDS workflow can be shared in a public repository as is.

      +

      In the following sections we share an example of how we structured an analysis workflow in RAPIDS.

      +

      Analysis workflow structure

      +

      To accurately reflect the complexity of a real-world modeling scenario, we decided not to oversimplify this example. Importantly, every step in this example follows a basic structure: an input file and parameters are manipulated by an R or Python script that saves the results to an output file. Input files, parameters, output files and scripts are grouped into Snakemake rules that are described on smk files in the rules folder (we point the reader to the relevant rule(s) of each step).

      +

      Researchers can use these rules and scripts as a guide to create their own as it is expected every modeling project will have different requirements, data and goals but ultimately most follow a similar chainned pattern.

      +
      +

      Hint

      +

      The example’s config file is example_profile/example_config.yaml and its Snakefile is in example_profile/Snakefile. The config file is already configured to process the sensor data as explained in Analysis workflow modules.

      +
      +

      Description of the study modeled in our analysis workflow example

      +

      Our example is based on a hypothetical study that recruited 2 participants that underwent surgery and collected mobile data for at least one week before and one week after the procedure. Participants wore a Fitbit device and installed the AWARE client in their personal Android and iOS smartphones to collect mobile data 24/7. In addition, participants completed daily severity ratings of 12 common symptoms on a scale from 0 to 10 that we summed up into a daily symptom burden score.

      +

      The goal of this workflow is to find out if we can predict the daily symptom burden score of a participant. Thus, we framed this question as a binary classification problem with two classes, high and low symptom burden based on the scores above and below average of each participant. We also want to compare the performance of individual (personalized) models vs a population model.

      +

      In total, our example workflow has nine steps that are in charge of sensor data preprocessing, feature extraction, feature cleaning, machine learning model training and model evaluation (see figure below). We ship this workflow with RAPIDS and share files with test data in an Open Science Framework repository.

      +
      + +
      Modules of RAPIDS example workflow, from raw data to model evaluation
      +
      + +

      Configure and run the analysis workflow example

      +
        +
      1. Install RAPIDS
      2. +
      3. Unzip the CSV files inside rapids_example_csv.zip in data/external/example_workflow/*.csv.
      4. +
      5. Create the participant files for this example by running: +
        ./rapids -j1 create_example_participant_files
        +
      6. +
      7. Run the example pipeline with: +
        ./rapids -j1 --profile example_profile
        +
      8. +
      +

      Note you will see a lot of warning messages, you can ignore them since they happen because we ran ML algorithms with a small fake dataset.

      +

      Modules of our analysis workflow example

      +
      1. Feature extraction

      We extract daily behavioral features for data yield, received and sent messages, missed, incoming and outgoing calls, resample fused location data using Doryab provider, activity recognition, battery, Bluetooth, screen, light, applications foreground, conversations, Wi-Fi connected, Wi-Fi visible, Fitbit heart rate summary and intraday data, Fitbit sleep summary data, and Fitbit step summary and intraday data without excluding sleep periods with an active bout threshold of 10 steps. In total, we obtained 237 daily sensor features over 12 days per participant.

      +
      +
      2. Extract demographic data.

      It is common to have demographic data in addition to mobile and target (ground truth) data. In this example we include participants’ age, gender and the number of days they spent in hospital after their surgery as features in our model. We extract these three columns from the data/external/example_workflow/participant_info.csv file. As these three features remain the same within participants, they are used only on the population model. Refer to the demographic_features rule in rules/models.smk.

      +
      +
      3. Create target labels.

      The two classes for our machine learning binary classification problem are high and low symptom burden. Target values are already stored in the data/external/example_workflow/participant_target.csv file. A new rule/script can be created if further manipulation is necessary. Refer to the parse_targets rule in rules/models.smk.

      +
      +
      4. Feature merging.

      These daily features are stored on a CSV file per sensor, a CSV file per participant, and a CSV file including all features from all participants (in every case each column represents a feature and each row represents a day). Refer to the merge_sensor_features_for_individual_participants and merge_sensor_features_for_all_participants rules in rules/features.smk.

      +
      +
      5. Data visualization.

      At this point the user can use the five plots RAPIDS provides (or implement new ones) to explore and understand the quality of the raw data and extracted features and decide what sensors, days, or participants to include and exclude. Refer to rules/reports.smk to find the rules that generate these plots.

      +
      +
      6. Feature cleaning.

      In this stage we perform four steps to clean our sensor feature file. First, we discard days with a data yield hour ratio less than or equal to 0.75, i.e. we include days with at least 18 hours of data. Second, we drop columns (features) with more than 30% of missing rows. Third, we drop columns with zero variance. Fourth, we drop rows (days) with more than 30% of missing columns (features). In this cleaning stage several parameters are created and exposed in example_profile/example_config.yaml.

      +

      After this step, we kept 158 features over 11 days for the individual model of p01, 101 features over 12 days for the individual model of p02 and 106 features over 20 days for the population model. Note that the difference in the number of features between p01 and p02 is mostly due to iOS restrictions that stops researchers from collecting the same number of sensors than in Android phones.

      +

      Feature cleaning for the individual models is done in the clean_sensor_features_for_individual_participants rule and for the population model in the clean_sensor_features_for_all_participants rule in rules/models.smk.

      +
      +
      7. Merge features and targets.

      In this step we merge the cleaned features and target labels for our individual models in the merge_features_and_targets_for_individual_model rule in rules/models.smk. Additionally, we merge the cleaned features, target labels, and demographic features of our two participants for the population model in the merge_features_and_targets_for_population_model rule in rules/models.smk. These two merged files are the input for our individual and population models.

      +
      +
      8. Modelling.

      This stage has three phases: model building, training and evaluation.

      +

      In the building phase we impute, normalize and oversample our dataset. Missing numeric values in each column are imputed with their mean and we impute missing categorical values with their mode. We normalize each numeric column with one of three strategies (min-max, z-score, and scikit-learn package’s robust scaler) and we one-hot encode each categorial feature as a numerical array. We oversample our imbalanced dataset using SMOTE (Synthetic Minority Over-sampling Technique) or a Random Over sampler from scikit-learn. All these parameters are exposed in example_profile/example_config.yaml.

      +

      In the training phase, we create eight models: logistic regression, k-nearest neighbors, support vector machine, decision tree, random forest, gradient boosting classifier, extreme gradient boosting classifier and a light gradient boosting machine. We cross-validate each model with an inner cycle to tune hyper-parameters based on the Macro F1 score and an outer cycle to predict the test set on a model with the best hyper-parameters. Both cross-validation cycles use a leave-one-out strategy. Parameters for each model like weights and learning rates are exposed in example_profile/example_config.yaml.

      +

      Finally, in the evaluation phase we compute the accuracy, Macro F1, kappa, area under the curve and per class precision, recall and F1 score of all folds of the outer cross-validation cycle.

      +

      Refer to the modelling_for_individual_participants rule for the individual modeling and to the modelling_for_all_participants rule for the population modeling, both in rules/models.smk.

      +
      +
      9. Compute model baselines.

      We create three baselines to evaluate our classification models.

      +

      First, a majority classifier that labels each test sample with the majority class of our training data. Second, a random weighted classifier that predicts each test observation sampling at random from a binomial distribution based on the ratio of our target labels. Third, a decision tree classifier based solely on the demographic features of each participant. As we do not have demographic features for individual model, this baseline is only available for population model.

      +

      Our baseline metrics (e.g. accuracy, precision, etc.) are saved into a CSV file, ready to be compared to our modeling results. Refer to the baselines_for_individual_model rule for the individual model baselines and to the baselines_for_population_model rule for population model baselines, both in rules/models.smk.

      +
      + + + + + + +

      Comments

      + + + + + + +
      + +
      +
      + +
      + + + + +
      +
      +
      +
      + + + + + + + + + + + + \ No newline at end of file diff --git a/1.3/workflow-examples/minimal/index.html b/1.3/workflow-examples/minimal/index.html new file mode 100644 index 00000000..383742a5 --- /dev/null +++ b/1.3/workflow-examples/minimal/index.html @@ -0,0 +1,2047 @@ + + + + + + + + + + + + + + + + + + + + + + Minimal Example - RAPIDS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + + + + + + +
      + + +
      + +
      + + + + + + +
      +
      + + + +
      +
      +
      + + + + +
      +
      +
      + + + +
      +
      +
      + + +
      +
      +
      + + +
      +
      + + + + + + + + +

      Minimal Working Example

      +

      This is a quick guide for creating and running a simple pipeline to extract missing, outgoing, and incoming call features for 24 hr (00:00:00 to 23:59:59) and night (00:00:00 to 05:59:59) time segments of every day of data of one participant that was monitored on the US East coast with an Android smartphone.

      +
        +
      1. Install RAPIDS and make sure your conda environment is active (see Installation)
      2. +
      3. Download this CSV file and save it as data/external/aware_csv/calls.csv
      4. +
      5. +

        Make the changes listed below for the corresponding Configuration step (we provide an example of what the relevant sections in your config.yml will look like after you are done)

        +
        Required configuration changes (click to expand)
          +
        1. +

          Supported data streams.

          +

          Based on the docs, we decided to use the aware_csv data stream because we are processing aware data saved in a CSV file. We will use this label in a later step; there’s no need to type it or save it anywhere yet.

          +
        2. +
        3. +

          Create your participants file.

          +

          Since we are processing data from a single participant, you only need to create a single participant file called p01.yaml in data/external/participant_files. This participant file only has a PHONE section because this hypothetical participant was only monitored with a smartphone. Note that for a real analysis, you can do this automatically with a CSV file

          +
            +
          1. +

            Add p01 to [PIDS] in config.yaml

            +
          2. +
          3. +

            Create a file in data/external/participant_files/p01.yaml with the following content:

            +
            PHONE:
            +    DEVICE_IDS: [a748ee1a-1d0b-4ae9-9074-279a2b6ba524] # the participant's AWARE device id
            +    PLATFORMS: [android] # or ios
            +    LABEL: MyTestP01 # any string
            +    START_DATE: 2020-01-01 # this can also be empty
            +    END_DATE: 2021-01-01 # this can also be empty
            +
            +
          4. +
          +
        4. +
        5. +

          Select what time segments you want to extract features on.

          +
            +
          1. +

            Set [TIME_SEGMENTS][FILE] to data/external/timesegments_periodic.csv

            +
          2. +
          3. +

            Create a file in data/external/timesegments_periodic.csv with the following content

            +
            label,start_time,length,repeats_on,repeats_value
            +daily,00:00:00,23H 59M 59S,every_day,0
            +night,00:00:00,5H 59M 59S,every_day,0
            +
            +
          4. +
          +
        6. +
        7. +

          Choose the timezone of your study.

          +

          We will use the default time zone settings since this example is processing data collected on the US East Coast (America/New_York)

          +
          TIMEZONE: 
          +    TYPE: SINGLE
          +    SINGLE:
          +        TZCODE: America/New_York
          +
          +
        8. +
        9. +

          Modify your device data stream configuration

          +
            +
          1. +

            Set [PHONE_DATA_STREAMS][USE] to aware_csv.

            +
          2. +
          3. +

            We will use the default value for [PHONE_DATA_STREAMS][aware_csv][FOLDER] since we already stored the test calls CSV file there.

            +
          4. +
          +
        10. +
        11. +

          Select what sensors and features you want to process.

          +
            +
          1. +

            Set [PHONE_CALLS][CONTAINER] to calls.csv in the config.yaml file.

            +
          2. +
          3. +

            Set [PHONE_CALLS][PROVIDERS][RAPIDS][COMPUTE] to True in the config.yaml file.

            +
          4. +
          +
        12. +
        +
        +
        +

        Example of the config.yaml sections after the changes outlined above

        +

        This will be your config.yaml after following the instructions above. Click on the numbered markers to know more.

        +
        PIDS: [p01] # (1)
        +
        +TIMEZONE:
        +    TYPE: SINGLE # (2)
        +    SINGLE:
        +        TZCODE: America/New_York
        +
        +# ... other irrelevant sections
        +
        +TIME_SEGMENTS: &time_segments
        +    TYPE: PERIODIC # (3)
        +    FILE: "data/external/timesegments_periodic.csv" # (4)
        +    INCLUDE_PAST_PERIODIC_SEGMENTS: FALSE
        +
        +PHONE_DATA_STREAMS:
        +    USE: aware_csv # (5)
        +
        +    aware_csv:
        +        FOLDER: data/external/aware_csv # (6)
        +
        +# ... other irrelevant sections
        +
        +############## PHONE ###########################################################
        +################################################################################
        +
        +# ... other irrelevant sections
        +
        +# Communication call features config, TYPES and FEATURES keys need to match
        +PHONE_CALLS:
        +    CONTAINER: calls.csv  # (7) 
        +    PROVIDERS:
        +        RAPIDS:
        +            COMPUTE: True # (8)
        +            CALL_TYPES: ...
        +
        +
          +
        1. +

          We added p01 to PIDS after creating the participant file: +

          data/external/participant_files/p01.yaml
          +

          +

          With the following content: +

          PHONE:
          +    DEVICE_IDS: [a748ee1a-1d0b-4ae9-9074-279a2b6ba524] # the participant's AWARE device id
          +    PLATFORMS: [android] # or ios
          +    LABEL: MyTestP01 # any string
          +    START_DATE: 2020-01-01 # this can also be empty
          +    END_DATE: 2021-01-01 # this can also be empty
          +

          +
        2. +
        3. +

          We use the default SINGLE time zone.

          +
        4. +
        5. +

          We use the default PERIODIC time segment [TYPE]

          +
        6. +
        7. +

          We created this time segments file with these lines:

          +
          label,start_time,length,repeats_on,repeats_value
          +daily,00:00:00,23H 59M 59S,every_day,0
          +night,001:00:00,5H 59M 59S,every_day,0
          +
          +
        8. +
        9. +

          We set [USE] to aware_device to tell RAPIDS to process sensor data collected with the AWARE Framework stored in CSV files.

          +
        10. +
        11. +

          We used the default [FOLDER] for awre_csv since we already stored our test calls.csv file there

          +
        12. +
        13. +

          We changed [CONTAINER] to calls.csv to process our test call data.

          +
        14. +
        15. +

          We flipped [COMPUTE] to True to extract call behavioral features using the RAPIDS feature provider.

          +
        16. +
        +
        +
      6. +
      7. +

        Run RAPIDS +

        ./rapids -j1
        +

        +
      8. +
      9. The call features for daily and morning time segments will be in +
        data/processed/features/all_participants/all_sensor_features.csv
        +
      10. +
      + + + + + + +

      Comments

      + + + + + + +
      + +
      +
      + +
      + + + + +
      +
      +
      +
      + + + + + + + + + + + + \ No newline at end of file diff --git a/latest/404.html b/latest/404.html index 8b58fa6d..8aa2a4aa 100644 --- a/latest/404.html +++ b/latest/404.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../1.2/404.html... + Redirecting to ../1.3/404.html... \ No newline at end of file diff --git a/latest/change-log/index.html b/latest/change-log/index.html index 3891acbf..3f7c3f73 100644 --- a/latest/change-log/index.html +++ b/latest/change-log/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../1.2/change-log/... + Redirecting to ../../1.3/change-log/... \ No newline at end of file diff --git a/latest/citation/index.html b/latest/citation/index.html index ca81f88a..30f47858 100644 --- a/latest/citation/index.html +++ b/latest/citation/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../1.2/citation/... + Redirecting to ../../1.3/citation/... \ No newline at end of file diff --git a/latest/code_of_conduct/index.html b/latest/code_of_conduct/index.html index 8e47f44f..c0d64ae3 100644 --- a/latest/code_of_conduct/index.html +++ b/latest/code_of_conduct/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../1.2/code_of_conduct/... + Redirecting to ../../1.3/code_of_conduct/... \ No newline at end of file diff --git a/latest/common-errors/index.html b/latest/common-errors/index.html index 367a8a8b..f2000549 100644 --- a/latest/common-errors/index.html +++ b/latest/common-errors/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../1.2/common-errors/... + Redirecting to ../../1.3/common-errors/... \ No newline at end of file diff --git a/latest/contributing/index.html b/latest/contributing/index.html index aaf44eb4..b6995ca6 100644 --- a/latest/contributing/index.html +++ b/latest/contributing/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../1.2/contributing/... + Redirecting to ../../1.3/contributing/... \ No newline at end of file diff --git a/latest/datastreams/add-new-data-streams/index.html b/latest/datastreams/add-new-data-streams/index.html index 4f849693..794e4776 100644 --- a/latest/datastreams/add-new-data-streams/index.html +++ b/latest/datastreams/add-new-data-streams/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../1.2/datastreams/add-new-data-streams/... + Redirecting to ../../../1.3/datastreams/add-new-data-streams/... \ No newline at end of file diff --git a/latest/datastreams/aware-csv/index.html b/latest/datastreams/aware-csv/index.html index 1a918cd7..3243aaea 100644 --- a/latest/datastreams/aware-csv/index.html +++ b/latest/datastreams/aware-csv/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../1.2/datastreams/aware-csv/... + Redirecting to ../../../1.3/datastreams/aware-csv/... \ No newline at end of file diff --git a/latest/datastreams/aware-influxdb/index.html b/latest/datastreams/aware-influxdb/index.html index 2ce9f0a6..d2e99246 100644 --- a/latest/datastreams/aware-influxdb/index.html +++ b/latest/datastreams/aware-influxdb/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../1.2/datastreams/aware-influxdb/... + Redirecting to ../../../1.3/datastreams/aware-influxdb/... \ No newline at end of file diff --git a/latest/datastreams/aware-mysql/index.html b/latest/datastreams/aware-mysql/index.html index 7d58f72f..3c4877a7 100644 --- a/latest/datastreams/aware-mysql/index.html +++ b/latest/datastreams/aware-mysql/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../1.2/datastreams/aware-mysql/... + Redirecting to ../../../1.3/datastreams/aware-mysql/... \ No newline at end of file diff --git a/latest/datastreams/data-streams-introduction/index.html b/latest/datastreams/data-streams-introduction/index.html index 8bbe603d..72e0a871 100644 --- a/latest/datastreams/data-streams-introduction/index.html +++ b/latest/datastreams/data-streams-introduction/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../1.2/datastreams/data-streams-introduction/... + Redirecting to ../../../1.3/datastreams/data-streams-introduction/... \ No newline at end of file diff --git a/latest/datastreams/empatica-zip/index.html b/latest/datastreams/empatica-zip/index.html index 06ca994c..d4a81355 100644 --- a/latest/datastreams/empatica-zip/index.html +++ b/latest/datastreams/empatica-zip/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../1.2/datastreams/empatica-zip/... + Redirecting to ../../../1.3/datastreams/empatica-zip/... \ No newline at end of file diff --git a/latest/datastreams/fitbitjson-csv/index.html b/latest/datastreams/fitbitjson-csv/index.html index 2fa26d26..99526c1b 100644 --- a/latest/datastreams/fitbitjson-csv/index.html +++ b/latest/datastreams/fitbitjson-csv/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../1.2/datastreams/fitbitjson-csv/... + Redirecting to ../../../1.3/datastreams/fitbitjson-csv/... \ No newline at end of file diff --git a/latest/datastreams/fitbitjson-mysql/index.html b/latest/datastreams/fitbitjson-mysql/index.html index c5442398..34a72c85 100644 --- a/latest/datastreams/fitbitjson-mysql/index.html +++ b/latest/datastreams/fitbitjson-mysql/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../1.2/datastreams/fitbitjson-mysql/... + Redirecting to ../../../1.3/datastreams/fitbitjson-mysql/... \ No newline at end of file diff --git a/latest/datastreams/fitbitparsed-csv/index.html b/latest/datastreams/fitbitparsed-csv/index.html index 9d052dda..2418b93c 100644 --- a/latest/datastreams/fitbitparsed-csv/index.html +++ b/latest/datastreams/fitbitparsed-csv/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../1.2/datastreams/fitbitparsed-csv/... + Redirecting to ../../../1.3/datastreams/fitbitparsed-csv/... \ No newline at end of file diff --git a/latest/datastreams/fitbitparsed-mysql/index.html b/latest/datastreams/fitbitparsed-mysql/index.html index 01a84c46..acf26682 100644 --- a/latest/datastreams/fitbitparsed-mysql/index.html +++ b/latest/datastreams/fitbitparsed-mysql/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../1.2/datastreams/fitbitparsed-mysql/... + Redirecting to ../../../1.3/datastreams/fitbitparsed-mysql/... \ No newline at end of file diff --git a/latest/datastreams/mandatory-empatica-format/index.html b/latest/datastreams/mandatory-empatica-format/index.html index 32f85251..a38f9543 100644 --- a/latest/datastreams/mandatory-empatica-format/index.html +++ b/latest/datastreams/mandatory-empatica-format/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../1.2/datastreams/mandatory-empatica-format/... + Redirecting to ../../../1.3/datastreams/mandatory-empatica-format/... \ No newline at end of file diff --git a/latest/datastreams/mandatory-fitbit-format/index.html b/latest/datastreams/mandatory-fitbit-format/index.html index 0f930605..fd20b4a7 100644 --- a/latest/datastreams/mandatory-fitbit-format/index.html +++ b/latest/datastreams/mandatory-fitbit-format/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../1.2/datastreams/mandatory-fitbit-format/... + Redirecting to ../../../1.3/datastreams/mandatory-fitbit-format/... \ No newline at end of file diff --git a/latest/datastreams/mandatory-phone-format/index.html b/latest/datastreams/mandatory-phone-format/index.html index c5c3a668..2bbb4b65 100644 --- a/latest/datastreams/mandatory-phone-format/index.html +++ b/latest/datastreams/mandatory-phone-format/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../1.2/datastreams/mandatory-phone-format/... + Redirecting to ../../../1.3/datastreams/mandatory-phone-format/... \ No newline at end of file diff --git a/latest/developers/documentation/index.html b/latest/developers/documentation/index.html index ecf1e12b..c6dd937b 100644 --- a/latest/developers/documentation/index.html +++ b/latest/developers/documentation/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../1.2/developers/documentation/... + Redirecting to ../../../1.3/developers/documentation/... \ No newline at end of file diff --git a/latest/developers/git-flow/index.html b/latest/developers/git-flow/index.html index 2069c9c3..cf3369ce 100644 --- a/latest/developers/git-flow/index.html +++ b/latest/developers/git-flow/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../1.2/developers/git-flow/... + Redirecting to ../../../1.3/developers/git-flow/... \ No newline at end of file diff --git a/latest/developers/remote-support/index.html b/latest/developers/remote-support/index.html index 3b619dbd..ba7b2e38 100644 --- a/latest/developers/remote-support/index.html +++ b/latest/developers/remote-support/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../1.2/developers/remote-support/... + Redirecting to ../../../1.3/developers/remote-support/... \ No newline at end of file diff --git a/latest/developers/test-cases/index.html b/latest/developers/test-cases/index.html index d9406dcb..95b3cc8f 100644 --- a/latest/developers/test-cases/index.html +++ b/latest/developers/test-cases/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../1.2/developers/test-cases/... + Redirecting to ../../../1.3/developers/test-cases/... \ No newline at end of file diff --git a/latest/developers/testing/index.html b/latest/developers/testing/index.html index 2f557817..bf8aea94 100644 --- a/latest/developers/testing/index.html +++ b/latest/developers/testing/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../1.2/developers/testing/... + Redirecting to ../../../1.3/developers/testing/... \ No newline at end of file diff --git a/latest/developers/validation-schema-config/index.html b/latest/developers/validation-schema-config/index.html index 06443d9a..9ea79a90 100644 --- a/latest/developers/validation-schema-config/index.html +++ b/latest/developers/validation-schema-config/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../1.2/developers/validation-schema-config/... + Redirecting to ../../../1.3/developers/validation-schema-config/... \ No newline at end of file diff --git a/latest/developers/virtual-environments/index.html b/latest/developers/virtual-environments/index.html index 90dd9b12..cc2c7e34 100644 --- a/latest/developers/virtual-environments/index.html +++ b/latest/developers/virtual-environments/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../1.2/developers/virtual-environments/... + Redirecting to ../../../1.3/developers/virtual-environments/... \ No newline at end of file diff --git a/latest/features/add-new-features/index.html b/latest/features/add-new-features/index.html index da44f60d..d34617af 100644 --- a/latest/features/add-new-features/index.html +++ b/latest/features/add-new-features/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../1.2/features/add-new-features/... + Redirecting to ../../../1.3/features/add-new-features/... \ No newline at end of file diff --git a/latest/features/empatica-accelerometer/index.html b/latest/features/empatica-accelerometer/index.html index a9e6222e..4fe7e374 100644 --- a/latest/features/empatica-accelerometer/index.html +++ b/latest/features/empatica-accelerometer/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../1.2/features/empatica-accelerometer/... + Redirecting to ../../../1.3/features/empatica-accelerometer/... \ No newline at end of file diff --git a/latest/features/empatica-blood-volume-pulse/index.html b/latest/features/empatica-blood-volume-pulse/index.html index 9e279db2..af12560b 100644 --- a/latest/features/empatica-blood-volume-pulse/index.html +++ b/latest/features/empatica-blood-volume-pulse/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../1.2/features/empatica-blood-volume-pulse/... + Redirecting to ../../../1.3/features/empatica-blood-volume-pulse/... \ No newline at end of file diff --git a/latest/features/empatica-electrodermal-activity/index.html b/latest/features/empatica-electrodermal-activity/index.html index 686c99bf..6d0fb331 100644 --- a/latest/features/empatica-electrodermal-activity/index.html +++ b/latest/features/empatica-electrodermal-activity/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../1.2/features/empatica-electrodermal-activity/... + Redirecting to ../../../1.3/features/empatica-electrodermal-activity/... \ No newline at end of file diff --git a/latest/features/empatica-heartrate/index.html b/latest/features/empatica-heartrate/index.html index 0685c230..02d0d255 100644 --- a/latest/features/empatica-heartrate/index.html +++ b/latest/features/empatica-heartrate/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../1.2/features/empatica-heartrate/... + Redirecting to ../../../1.3/features/empatica-heartrate/... \ No newline at end of file diff --git a/latest/features/empatica-inter-beat-interval/index.html b/latest/features/empatica-inter-beat-interval/index.html index 340973d9..0294cc55 100644 --- a/latest/features/empatica-inter-beat-interval/index.html +++ b/latest/features/empatica-inter-beat-interval/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../1.2/features/empatica-inter-beat-interval/... + Redirecting to ../../../1.3/features/empatica-inter-beat-interval/... \ No newline at end of file diff --git a/latest/features/empatica-tags/index.html b/latest/features/empatica-tags/index.html index a10ac0e6..0698356d 100644 --- a/latest/features/empatica-tags/index.html +++ b/latest/features/empatica-tags/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../1.2/features/empatica-tags/... + Redirecting to ../../../1.3/features/empatica-tags/... \ No newline at end of file diff --git a/latest/features/empatica-temperature/index.html b/latest/features/empatica-temperature/index.html index fd6ed0a9..bb8c7126 100644 --- a/latest/features/empatica-temperature/index.html +++ b/latest/features/empatica-temperature/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../1.2/features/empatica-temperature/... + Redirecting to ../../../1.3/features/empatica-temperature/... \ No newline at end of file diff --git a/latest/features/feature-introduction/index.html b/latest/features/feature-introduction/index.html index 2652e9e4..077093be 100644 --- a/latest/features/feature-introduction/index.html +++ b/latest/features/feature-introduction/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../1.2/features/feature-introduction/... + Redirecting to ../../../1.3/features/feature-introduction/... \ No newline at end of file diff --git a/latest/features/fitbit-calories-intraday/index.html b/latest/features/fitbit-calories-intraday/index.html index 180c0875..1b4e85bb 100644 --- a/latest/features/fitbit-calories-intraday/index.html +++ b/latest/features/fitbit-calories-intraday/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../1.2/features/fitbit-calories-intraday/... + Redirecting to ../../../1.3/features/fitbit-calories-intraday/... \ No newline at end of file diff --git a/latest/features/fitbit-data-yield/index.html b/latest/features/fitbit-data-yield/index.html index c669689b..4b49c514 100644 --- a/latest/features/fitbit-data-yield/index.html +++ b/latest/features/fitbit-data-yield/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../1.2/features/fitbit-data-yield/... + Redirecting to ../../../1.3/features/fitbit-data-yield/... \ No newline at end of file diff --git a/latest/features/fitbit-heartrate-intraday/index.html b/latest/features/fitbit-heartrate-intraday/index.html index fb762352..1c7c17e8 100644 --- a/latest/features/fitbit-heartrate-intraday/index.html +++ b/latest/features/fitbit-heartrate-intraday/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../1.2/features/fitbit-heartrate-intraday/... + Redirecting to ../../../1.3/features/fitbit-heartrate-intraday/... \ No newline at end of file diff --git a/latest/features/fitbit-heartrate-summary/index.html b/latest/features/fitbit-heartrate-summary/index.html index 9c246c09..3eea638c 100644 --- a/latest/features/fitbit-heartrate-summary/index.html +++ b/latest/features/fitbit-heartrate-summary/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../1.2/features/fitbit-heartrate-summary/... + Redirecting to ../../../1.3/features/fitbit-heartrate-summary/... \ No newline at end of file diff --git a/latest/features/fitbit-sleep-intraday/index.html b/latest/features/fitbit-sleep-intraday/index.html index 990ec45a..fae035da 100644 --- a/latest/features/fitbit-sleep-intraday/index.html +++ b/latest/features/fitbit-sleep-intraday/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../1.2/features/fitbit-sleep-intraday/... + Redirecting to ../../../1.3/features/fitbit-sleep-intraday/... \ No newline at end of file diff --git a/latest/features/fitbit-sleep-summary/index.html b/latest/features/fitbit-sleep-summary/index.html index 4e5d698e..51d298d8 100644 --- a/latest/features/fitbit-sleep-summary/index.html +++ b/latest/features/fitbit-sleep-summary/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../1.2/features/fitbit-sleep-summary/... + Redirecting to ../../../1.3/features/fitbit-sleep-summary/... \ No newline at end of file diff --git a/latest/features/fitbit-steps-intraday/index.html b/latest/features/fitbit-steps-intraday/index.html index fbac9a80..ecc86c50 100644 --- a/latest/features/fitbit-steps-intraday/index.html +++ b/latest/features/fitbit-steps-intraday/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../1.2/features/fitbit-steps-intraday/... + Redirecting to ../../../1.3/features/fitbit-steps-intraday/... \ No newline at end of file diff --git a/latest/features/fitbit-steps-summary/index.html b/latest/features/fitbit-steps-summary/index.html index 09b00ee9..7ba01152 100644 --- a/latest/features/fitbit-steps-summary/index.html +++ b/latest/features/fitbit-steps-summary/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../1.2/features/fitbit-steps-summary/... + Redirecting to ../../../1.3/features/fitbit-steps-summary/... \ No newline at end of file diff --git a/latest/features/phone-accelerometer/index.html b/latest/features/phone-accelerometer/index.html index 76ea4859..aca6de2a 100644 --- a/latest/features/phone-accelerometer/index.html +++ b/latest/features/phone-accelerometer/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../1.2/features/phone-accelerometer/... + Redirecting to ../../../1.3/features/phone-accelerometer/... \ No newline at end of file diff --git a/latest/features/phone-activity-recognition/index.html b/latest/features/phone-activity-recognition/index.html index 14a09a2c..6699c0ae 100644 --- a/latest/features/phone-activity-recognition/index.html +++ b/latest/features/phone-activity-recognition/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../1.2/features/phone-activity-recognition/... + Redirecting to ../../../1.3/features/phone-activity-recognition/... \ No newline at end of file diff --git a/latest/features/phone-applications-crashes/index.html b/latest/features/phone-applications-crashes/index.html index 4918ce7f..2fb58dec 100644 --- a/latest/features/phone-applications-crashes/index.html +++ b/latest/features/phone-applications-crashes/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../1.2/features/phone-applications-crashes/... + Redirecting to ../../../1.3/features/phone-applications-crashes/... \ No newline at end of file diff --git a/latest/features/phone-applications-foreground/index.html b/latest/features/phone-applications-foreground/index.html index 0c7eb7f2..19e81af9 100644 --- a/latest/features/phone-applications-foreground/index.html +++ b/latest/features/phone-applications-foreground/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../1.2/features/phone-applications-foreground/... + Redirecting to ../../../1.3/features/phone-applications-foreground/... \ No newline at end of file diff --git a/latest/features/phone-applications-notifications/index.html b/latest/features/phone-applications-notifications/index.html index afe09dcd..36b09161 100644 --- a/latest/features/phone-applications-notifications/index.html +++ b/latest/features/phone-applications-notifications/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../1.2/features/phone-applications-notifications/... + Redirecting to ../../../1.3/features/phone-applications-notifications/... \ No newline at end of file diff --git a/latest/features/phone-battery/index.html b/latest/features/phone-battery/index.html index 47f7851e..f8dd42ef 100644 --- a/latest/features/phone-battery/index.html +++ b/latest/features/phone-battery/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../1.2/features/phone-battery/... + Redirecting to ../../../1.3/features/phone-battery/... \ No newline at end of file diff --git a/latest/features/phone-bluetooth/index.html b/latest/features/phone-bluetooth/index.html index 18869307..8b82314d 100644 --- a/latest/features/phone-bluetooth/index.html +++ b/latest/features/phone-bluetooth/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../1.2/features/phone-bluetooth/... + Redirecting to ../../../1.3/features/phone-bluetooth/... \ No newline at end of file diff --git a/latest/features/phone-calls/index.html b/latest/features/phone-calls/index.html index a52fb429..cc90fe56 100644 --- a/latest/features/phone-calls/index.html +++ b/latest/features/phone-calls/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../1.2/features/phone-calls/... + Redirecting to ../../../1.3/features/phone-calls/... \ No newline at end of file diff --git a/latest/features/phone-conversation/index.html b/latest/features/phone-conversation/index.html index 270d415e..5e3aba6a 100644 --- a/latest/features/phone-conversation/index.html +++ b/latest/features/phone-conversation/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../1.2/features/phone-conversation/... + Redirecting to ../../../1.3/features/phone-conversation/... \ No newline at end of file diff --git a/latest/features/phone-data-yield/index.html b/latest/features/phone-data-yield/index.html index c9c5d138..0e78655f 100644 --- a/latest/features/phone-data-yield/index.html +++ b/latest/features/phone-data-yield/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../1.2/features/phone-data-yield/... + Redirecting to ../../../1.3/features/phone-data-yield/... \ No newline at end of file diff --git a/latest/features/phone-keyboard/index.html b/latest/features/phone-keyboard/index.html index 4372e1e2..112478e2 100644 --- a/latest/features/phone-keyboard/index.html +++ b/latest/features/phone-keyboard/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../1.2/features/phone-keyboard/... + Redirecting to ../../../1.3/features/phone-keyboard/... \ No newline at end of file diff --git a/latest/features/phone-light/index.html b/latest/features/phone-light/index.html index 3d60d181..87474c4b 100644 --- a/latest/features/phone-light/index.html +++ b/latest/features/phone-light/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../1.2/features/phone-light/... + Redirecting to ../../../1.3/features/phone-light/... \ No newline at end of file diff --git a/latest/features/phone-locations/index.html b/latest/features/phone-locations/index.html index 47587c53..64b2dff2 100644 --- a/latest/features/phone-locations/index.html +++ b/latest/features/phone-locations/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../1.2/features/phone-locations/... + Redirecting to ../../../1.3/features/phone-locations/... \ No newline at end of file diff --git a/latest/features/phone-log/index.html b/latest/features/phone-log/index.html index ba492971..e9b63ce8 100644 --- a/latest/features/phone-log/index.html +++ b/latest/features/phone-log/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../1.2/features/phone-log/... + Redirecting to ../../../1.3/features/phone-log/... \ No newline at end of file diff --git a/latest/features/phone-messages/index.html b/latest/features/phone-messages/index.html index 42a00ed7..8dfd1791 100644 --- a/latest/features/phone-messages/index.html +++ b/latest/features/phone-messages/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../1.2/features/phone-messages/... + Redirecting to ../../../1.3/features/phone-messages/... \ No newline at end of file diff --git a/latest/features/phone-screen/index.html b/latest/features/phone-screen/index.html index d94b00ae..101d1220 100644 --- a/latest/features/phone-screen/index.html +++ b/latest/features/phone-screen/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../1.2/features/phone-screen/... + Redirecting to ../../../1.3/features/phone-screen/... \ No newline at end of file diff --git a/latest/features/phone-wifi-connected/index.html b/latest/features/phone-wifi-connected/index.html index 914548ba..b4f3e3c9 100644 --- a/latest/features/phone-wifi-connected/index.html +++ b/latest/features/phone-wifi-connected/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../1.2/features/phone-wifi-connected/... + Redirecting to ../../../1.3/features/phone-wifi-connected/... \ No newline at end of file diff --git a/latest/features/phone-wifi-visible/index.html b/latest/features/phone-wifi-visible/index.html index 378eef8a..d394a4f7 100644 --- a/latest/features/phone-wifi-visible/index.html +++ b/latest/features/phone-wifi-visible/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../1.2/features/phone-wifi-visible/... + Redirecting to ../../../1.3/features/phone-wifi-visible/... \ No newline at end of file diff --git a/latest/img/h-data-yield.html b/latest/img/h-data-yield.html index 0adc32cc..8e6831d0 100644 --- a/latest/img/h-data-yield.html +++ b/latest/img/h-data-yield.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../1.2/img/h-data-yield.html... + Redirecting to ../../1.3/img/h-data-yield.html... \ No newline at end of file diff --git a/latest/img/hm-data-yield-participants-absolute-time.html b/latest/img/hm-data-yield-participants-absolute-time.html index dd1e4e1a..724b7382 100644 --- a/latest/img/hm-data-yield-participants-absolute-time.html +++ b/latest/img/hm-data-yield-participants-absolute-time.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../1.2/img/hm-data-yield-participants-absolute-time.html... + Redirecting to ../../1.3/img/hm-data-yield-participants-absolute-time.html... \ No newline at end of file diff --git a/latest/img/hm-data-yield-participants-relative-time.html b/latest/img/hm-data-yield-participants-relative-time.html index f1658e0b..ed2341b5 100644 --- a/latest/img/hm-data-yield-participants-relative-time.html +++ b/latest/img/hm-data-yield-participants-relative-time.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../1.2/img/hm-data-yield-participants-relative-time.html... + Redirecting to ../../1.3/img/hm-data-yield-participants-relative-time.html... \ No newline at end of file diff --git a/latest/img/hm-data-yield-participants.html b/latest/img/hm-data-yield-participants.html index 9138d95b..51ba29e4 100644 --- a/latest/img/hm-data-yield-participants.html +++ b/latest/img/hm-data-yield-participants.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../1.2/img/hm-data-yield-participants.html... + Redirecting to ../../1.3/img/hm-data-yield-participants.html... \ No newline at end of file diff --git a/latest/img/hm-feature-correlations.html b/latest/img/hm-feature-correlations.html index 3c5cef19..490a60fc 100644 --- a/latest/img/hm-feature-correlations.html +++ b/latest/img/hm-feature-correlations.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../1.2/img/hm-feature-correlations.html... + Redirecting to ../../1.3/img/hm-feature-correlations.html... \ No newline at end of file diff --git a/latest/img/hm-phone-sensors.html b/latest/img/hm-phone-sensors.html index 198f6f80..383fefa1 100644 --- a/latest/img/hm-phone-sensors.html +++ b/latest/img/hm-phone-sensors.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../1.2/img/hm-phone-sensors.html... + Redirecting to ../../1.3/img/hm-phone-sensors.html... \ No newline at end of file diff --git a/latest/img/hm-sensor-rows.html b/latest/img/hm-sensor-rows.html index 42b40eb5..c1909c19 100644 --- a/latest/img/hm-sensor-rows.html +++ b/latest/img/hm-sensor-rows.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../1.2/img/hm-sensor-rows.html... + Redirecting to ../../1.3/img/hm-sensor-rows.html... \ No newline at end of file diff --git a/latest/index.html b/latest/index.html index bbdf1e9a..249ba3d8 100644 --- a/latest/index.html +++ b/latest/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../1.2/... + Redirecting to ../1.3/... \ No newline at end of file diff --git a/latest/migrating-from-old-versions/index.html b/latest/migrating-from-old-versions/index.html index 86c77968..edf538b0 100644 --- a/latest/migrating-from-old-versions/index.html +++ b/latest/migrating-from-old-versions/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../1.2/migrating-from-old-versions/... + Redirecting to ../../1.3/migrating-from-old-versions/... \ No newline at end of file diff --git a/latest/overrides/main.html b/latest/overrides/main.html index 9b02e188..ff390e26 100644 --- a/latest/overrides/main.html +++ b/latest/overrides/main.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../1.2/overrides/main.html... + Redirecting to ../../1.3/overrides/main.html... \ No newline at end of file diff --git a/latest/overrides/partials/integrations/utterances.html b/latest/overrides/partials/integrations/utterances.html index 8f8f1a0a..0ac06fda 100644 --- a/latest/overrides/partials/integrations/utterances.html +++ b/latest/overrides/partials/integrations/utterances.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../../1.2/overrides/partials/integrations/utterances.html... + Redirecting to ../../../../1.3/overrides/partials/integrations/utterances.html... \ No newline at end of file diff --git a/latest/setup/configuration/index.html b/latest/setup/configuration/index.html index 66a52d94..80ef3d43 100644 --- a/latest/setup/configuration/index.html +++ b/latest/setup/configuration/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../1.2/setup/configuration/... + Redirecting to ../../../1.3/setup/configuration/... \ No newline at end of file diff --git a/latest/setup/execution/index.html b/latest/setup/execution/index.html index 8d4b2d40..d975cd70 100644 --- a/latest/setup/execution/index.html +++ b/latest/setup/execution/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../1.2/setup/execution/... + Redirecting to ../../../1.3/setup/execution/... \ No newline at end of file diff --git a/latest/setup/installation/index.html b/latest/setup/installation/index.html index e0fe0553..fa407e49 100644 --- a/latest/setup/installation/index.html +++ b/latest/setup/installation/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../1.2/setup/installation/... + Redirecting to ../../../1.3/setup/installation/... \ No newline at end of file diff --git a/latest/setup/overview/index.html b/latest/setup/overview/index.html index c49dd29f..c1fed0a9 100644 --- a/latest/setup/overview/index.html +++ b/latest/setup/overview/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../1.2/setup/overview/... + Redirecting to ../../../1.3/setup/overview/... \ No newline at end of file diff --git a/latest/snippets/aware_format/index.html b/latest/snippets/aware_format/index.html index 5a341fb5..6f78308d 100644 --- a/latest/snippets/aware_format/index.html +++ b/latest/snippets/aware_format/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../1.2/snippets/aware_format/... + Redirecting to ../../../1.3/snippets/aware_format/... \ No newline at end of file diff --git a/latest/snippets/database/index.html b/latest/snippets/database/index.html index a426498d..15c1fe8a 100644 --- a/latest/snippets/database/index.html +++ b/latest/snippets/database/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../1.2/snippets/database/... + Redirecting to ../../../1.3/snippets/database/... \ No newline at end of file diff --git a/latest/snippets/feature_introduction_example/index.html b/latest/snippets/feature_introduction_example/index.html index a8cb6f47..6b6f09bc 100644 --- a/latest/snippets/feature_introduction_example/index.html +++ b/latest/snippets/feature_introduction_example/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../1.2/snippets/feature_introduction_example/... + Redirecting to ../../../1.3/snippets/feature_introduction_example/... \ No newline at end of file diff --git a/latest/snippets/jsonfitbit_format/index.html b/latest/snippets/jsonfitbit_format/index.html index 4ef0f995..4e281b31 100644 --- a/latest/snippets/jsonfitbit_format/index.html +++ b/latest/snippets/jsonfitbit_format/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../1.2/snippets/jsonfitbit_format/... + Redirecting to ../../../1.3/snippets/jsonfitbit_format/... \ No newline at end of file diff --git a/latest/snippets/parsedfitbit_format/index.html b/latest/snippets/parsedfitbit_format/index.html index 7f80c686..fffe7bf0 100644 --- a/latest/snippets/parsedfitbit_format/index.html +++ b/latest/snippets/parsedfitbit_format/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../1.2/snippets/parsedfitbit_format/... + Redirecting to ../../../1.3/snippets/parsedfitbit_format/... \ No newline at end of file diff --git a/latest/team/index.html b/latest/team/index.html index b8dd1fbe..4c71fa97 100644 --- a/latest/team/index.html +++ b/latest/team/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../1.2/team/... + Redirecting to ../../1.3/team/... \ No newline at end of file diff --git a/latest/visualizations/data-quality-visualizations/index.html b/latest/visualizations/data-quality-visualizations/index.html index 1a25f2c3..9be3e583 100644 --- a/latest/visualizations/data-quality-visualizations/index.html +++ b/latest/visualizations/data-quality-visualizations/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../1.2/visualizations/data-quality-visualizations/... + Redirecting to ../../../1.3/visualizations/data-quality-visualizations/... \ No newline at end of file diff --git a/latest/visualizations/feature-visualizations/index.html b/latest/visualizations/feature-visualizations/index.html index bf93f7a0..49185b83 100644 --- a/latest/visualizations/feature-visualizations/index.html +++ b/latest/visualizations/feature-visualizations/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../1.2/visualizations/feature-visualizations/... + Redirecting to ../../../1.3/visualizations/feature-visualizations/... \ No newline at end of file diff --git a/latest/workflow-examples/analysis/index.html b/latest/workflow-examples/analysis/index.html index 984b0908..d5121d5f 100644 --- a/latest/workflow-examples/analysis/index.html +++ b/latest/workflow-examples/analysis/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../1.2/workflow-examples/analysis/... + Redirecting to ../../../1.3/workflow-examples/analysis/... \ No newline at end of file diff --git a/latest/workflow-examples/minimal/index.html b/latest/workflow-examples/minimal/index.html index 3213bcb7..8c15e825 100644 --- a/latest/workflow-examples/minimal/index.html +++ b/latest/workflow-examples/minimal/index.html @@ -4,13 +4,13 @@ Redirecting - Redirecting to ../../../1.2/workflow-examples/minimal/... + Redirecting to ../../../1.3/workflow-examples/minimal/... \ No newline at end of file diff --git a/versions.json b/versions.json index 26bc0006..8f230024 100644 --- a/versions.json +++ b/versions.json @@ -1 +1 @@ -[{"version": "1.2", "title": "1.2", "aliases": ["latest"]}, {"version": "1.1", "title": "1.1", "aliases": []}, {"version": "1.0", "title": "1.0", "aliases": []}, {"version": "0.4", "title": "0.4", "aliases": []}, {"version": "0.3", "title": "0.3", "aliases": []}, {"version": "0.2", "title": "0.2", "aliases": []}, {"version": "0.1", "title": "0.1", "aliases": []}, {"version": "dev", "title": "dev", "aliases": []}] \ No newline at end of file +[{"version": "1.3", "title": "1.3", "aliases": ["latest"]}, {"version": "1.2", "title": "1.2", "aliases": []}, {"version": "1.1", "title": "1.1", "aliases": []}, {"version": "1.0", "title": "1.0", "aliases": []}, {"version": "0.4", "title": "0.4", "aliases": []}, {"version": "0.3", "title": "0.3", "aliases": []}, {"version": "0.2", "title": "0.2", "aliases": []}, {"version": "0.1", "title": "0.1", "aliases": []}, {"version": "dev", "title": "dev", "aliases": []}] \ No newline at end of file

      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 z zm4rPaG8Z2&B_A$rJ&5z+B<{Q@#Omg)Sw>Zymst7fUdckk9a=&g%gD;JL5oOcnnUFy z54N()y~V+eok^*^VD4=a@ZY$E7wSg8V^MnT|?x7TZ2w+G(fe*rTGdimVq$%fdWQf zR!vue3zv!FMxCbgaer!sTnke8Pa8#tG-+yV)xepY!;;ZF7FnQs?&PUjkDg`b0c=+eGk z-X7I3>Nm8FcvJ4?weJ_49?3kbPF(M;V$BTtqCOhu&*oSeG23RXUK^D;ts{)6gW0rx zG(C8OIoO8UMrB;N!Tfu}*_I515vTi3_eOAV9jThNYcOYms|-^=zTYXc^rzTD_uEFX z!Sxy6o?-Q*U2mnoeXBW%QC*v>>9zSpN0M)M^H$FNIU~&)mNt$txt(UGLy^wBEcW8P zEBbS=6%z=_Pb}SUdM16R5iyk|w8jMb(4Wo>GKg3q5(-sN5>3Si&Z*fTf>!VUDVDdk z=4`^7JuRRacM*nM%FwV%CcMDC50!~k#Ol(j!%#YdPjh@o3*RG!t&`s^PA8yp=${ve z#K3t8smw2%TKqNp=axq&54C9=Z7oSD63>UyPm_wS_vWt?vfSImq?qx(PYQkbcYb0q zrV^@d<(fW_d~)Gkm8%8w#o@7&#&`a}qn0UZQw;;2^=G^eXNH-KieV>s%~*8gI(LhE zcwgLbMVQg(BLWzfCht1;+5Vu~0swDzZ|_JWBj)RP69(;y&>V16_o)Ynnn^tuy4HR5 zN9wN#d!I%9UC6fDdJj(s0f)!Xt_nA;tQ#;2X?yKPIo@&mP4wLGsCxG{RA;)!u=9~~ zK}jb5L_(hj72V@wV(ETmISv(+v20SLv6$HA#VEU{GxJ#mtsfzVo)9qVQgr?();?k4 z(CL7lZO~xNF9?_*fqorL?^fZOF{){`Ua7J$D6Ectr3YpPUAZzP*8lwCl7%|$SiN=? zt@BC#Y=X6M_!$91)pIY5Dae%ZN!-9UHNTOu6t$%{#ah7^#&b8;F8TIArKNNEYee93 zsLiIkZQ0gZAda>gPpg(HU;3(*>7Q;m8yU+&-t^V{tXiQ&L*X7bqnf%`ot7O?bV_P*Pe z?n!QiSd(K9owH55wft%N$I2c}+mHFXE&ukgpBLQ!#U$V3weUMNvaCgEkg^ulBE{;N zXRjY<0@~vr*Xn-HMJ-840sX!Qorg05K`vQ&BhyX4Vz!cLj6x5g1XNxZ#hFBil@qkY zeJrOsl=3pUnWs0>qt*GHP|`Le!_^GhT&d0X@trK^<%%q8GqDa-vL&MTWG`p%+pq)W z?qr2tFG-b#VA~TW%MF#Qx0jo9-K4mC@5WcHg*uiY1L!6=L;|>>cBU{H)od?06S($g zk8#!3bT^Cj0Z08qc#mHrAi6#XN34{OR`&{p1LNuq%i3Gb1@>hKql1MO=1-Oo$ktHVV2#*d z&I_SsN#g6tzpvUmL#`DzoMelx0Pf%gf}B zs5|?!V}9u@pNqa2kk-T-)H+f*izX0s*1tw((KC>t9npyS)VC>=!4DAVp(i_5qr3md*?LQDXFF!RxuB!>66g*^O2Fx zwD(-#6U~(~(ZtCF8HO#Ok92syE`|wrR;r6Tr?;Y)Wk<5of{97z?omlrq*f~lb^U_D z$z=Tzf$S;m^&-!AXzQtfHc8^(3w4vngG%UpR0RAVIYc#x0WU8H!AG!&D9!g+=#tjh zio1{N*#dcU@KkRUS1~;p{P{=vHj~Q*^&-=K`iBOeQ~4sATQ1O~<522mLUj^KR$i|8 zs`>aU@szh1bIa>fmgQ#?^yhVQbyhuK9i{ zN6t@qRv~dUxD9phWy*lv2CLD;7#2rnItKS9t9!Ihb~6e#7H*x;G31Yfc?W%`3+FFX zvbx<&n4#U0(h|%|LvY6@JPw(z;Pq)_TY}fbg1E=evZRn1UEl;bq zxb{l*pUs`BJX+CxtWn>z-JR?H+FQ+M!g;H*Yd*^EHNv^@EN=!whcxM!Z>dtCX$_kf zJ}!Z9Z6_~gQkYG~l}qJkKH1?+5g!)vs>~A#wxxJ-4V;Bjw)sjJQfU-Po6>llmewX+ z;L8yx&z>h>XR!L|jIQn_;xeo_U%mJ3QfWP2o`u$TTV-@Z2{~4Do>0a?uAn7!1oZDE z(*2dK6w|I~xH(1#dTuwvV=0NRwq)!)zO1wU8?^qI*S`9vS}Vb^1tC^XHNSqwR$x-< zMS>W&s_@E70VMY@#1qZSkz-Ce0q~vyi+EJA9!?_T<2v2iNZo3AGGtgD?KANyx~yyX zsjYvqzTfWGgm9S8|(Uyy3X*M)WhBg(c-?J*+0C$Bhoh)4-cAtlMJNIT0YHmi1Y(!f| zz+jX>pdgEf!Uj5=BQBT*E(M>Jqz@Qd#Ydag$+vCkU7cWBWGs&2Dd>XmlHo&=Bh=G& zhbB>V2Z{&et%slopIp%`DJDRA_pvLfnu8#E4W$?cJgWY@=ibFP+%2@U^`s~LeMD9V zu>(DDmMk=9A{cxf{~q2QRmp8D8QEQlP_N4PR-NO0J+f0zq793ilmeHc9do2~{H9AR zC?4>#(@z@U*6ot2dS}l?4T*yx+RbU15ggi;dT8x+X-U~d`!f}c+#>JRAhR1;bZ)ch za;^&FAOX*HEYqkv?7XC2Ov|p)|m18!}6yucU7D84C{Q9w( zbBem{p%yZ3j>OW@bDEc`J3tL0p&k&>8KJ*34h#2uqd7)2eUm}g6kM;Ei5NLO8ynoM zosad0FnvZ@^sk?@V6fbUF1wmDRhWAnp=!nZSFar2fV^(X3YA}K$!e+;Bx)NM0f$@~@eyJwN+d1Qo4^Z-FX{zbrNTWw~ zA>Go-*j6B4az#%PD*UmyFxR&guATajkOlNLRXmdlF|7}=uCSOkN3v{-e%|m(#ZZL{ zsjohO+qA^oqL*^vn{!&hm|AWSx@xS1u~rFhIMaDpVAhQv#W%uxw*mrBHoXD~8v#+` zHi)%aV_!kGXmRMCVDn1y_lcGwl$It(MK?0|{vgfN$OaHrD(ij(aeyeQ5k|T2a?vM?qmXry=Ds&l) zHzSk-kXd{$0U-dqK!oPIgGLNH6IS1;%#oI^S;*myi^lwIi(@$mWmFC+YmuA&Zk9W3 zuz+iP5c(2q|Z&)Y#>lw_Sr|G~;#z)eM{# zeN+GG)sGo>bJvr$FKA=cF!a}-fp>+Yw@_A;iHnM{ z$Topl=ZZ$@Pb-9nO;2jAr;l=)F&SY-ocm9JOWk9)Po}@UrAKF%02aSr+bM_61eVbE zTm1sltMq#JRAuOChM1#i;&U_#i$XjvIt#h`AYq@pjyID#>d^EV$)cjl6>3N5xKnyY zk1|BbLAcYw#)N1xsGYHRFtLM`W90+5gXYFb)(!ctV-ZUdk~P*A7oG=LEUb8-^A|0h zvSy>(vZhXBSDZB|-9pxB zavX0KZ}abDdh$hPtSly5?_?ebF{olPhOAsvk_NH>!F!ko+Thz!b;z*xSch`6S`mGm zqHv_q4c4)I@wCvprOFDH=5|5+1(W2_+X1r~aExj&($xZK=ow=f6c~%LpQnwkt+~V9 zMv{z?K`I_pUHmCTBQ9u3N2Ri_l8`z^v0#Q?l^+r%j-CWzzvIkEgpwwhZb)}xpP$)rz&!)G$i_$vw7783qwa1 zCmY5}eWfK?o~~6X>OHor3Yhuv60eN;=(soD$}?wDpf)B+^~*OYjG2)JAz^0aWek(? z948FS9Tq4sQd|hfvtL)pV;sTkP^4u*qE|gfQA0~=&jO`0>?z(1p(T6sfI(}!LzzWF zHS^?*-I)2=U?qyx*T23tVvuG*B2h-D%SPKDwv) z%A9_|K{f5)9ts|u+qSR2v->deV4ugwJnmUW{Jj!{{RF{utaGwau;)R~WDn;`-`j^_ z8Q+uzN6mzo&&-^;&Phi9Azo6Kko&N){ba|^I5_ni(Pk%w)~Pgi>w-F>QJ1o2x22}o zHBGF@YEsK);F?g{RZ@m#&gAuwb2kQ;d5rllPXyWk-LO)smY!MMy*y0s0;*5YqHfLHTs_zy8gUs{DE06cSyEX&e;WSkM)TjrqY20X~(28*~ zyJ+Z6Zb6*nw1>&wf7K4?1qQ&qzoz}sWzoC+m=9Y`WxrR+h1O->++vt9~oIo62EOyD_e)^6!k>C*IpA;Ko(RnpZZ`J&88up|x z>{m^T-C;g!w7zaesRXx=Qi`q05*9&PmJf?E(#ucnoB#SUg-}!as)|+5CyYw4Ms@{M zT*foKhy(TK;Vz^LcHA^MOzM~Ao2`-&8rqb>qsX%XR+;eYxMB<_Ai_t`1(FdJFV{`m zwwU>wC$xr}4+DbOtXl38v|i$I6uRMw(R+q5zT_hZYF8?(`FQ%QQH=k!5F7tweuqMn`?Rf$Gk z1N%&QDfZ~zTOA6o)lzE;?^=&7TTtJ9aO3n!$b2bY~wpe)nOUT5> z;x)~>YY-nd!|a5n>5)`7?t2M>u?AAZB`|0jg|D3IH5UZu9_|coledsd_ULCUXn)0UQnsHa33yF*i#zL{zc`qNJ`yq+)TEnFpipK64=DR&RZ8-o(+ zf06d(@ldaQ|DEdOv}%zSp;Ah=NR(|VBzq;>SVknv7*m8SGgGHil8|H+p=3#niHylM z(}qxFFvAR{FjAs))_dL(*`QvyUuX#1T-|KT-pX;-{-|vqu*msjF z6thkq4pAf3gtVK3LG~B4m)`#ztlfN|#`N>&rIf1{xNBnNL-I1S)y5e?f5NTkYkEAT zXFX{&28{%b3aH=s^psF%=(Lfbg*jFzpIe*Xw0c|3^+wuG=~369#qaLCo>N9WFZaXo zp4pIA)16%BOmz0;%PuXOsr*59GDBNBir3pH;^O&-rb8lLgDDLft<4 zblx9QhDXNcCFZ@Tq>M6osZ_$Dcci-QQ2A=R!ittcHfL+^KvMvvGz2W_amB!IuoF2i zvtSf$Q3*ZlBRj6GRmK0X4>v_nbBv*?{c!ph4lTy3_LT$6FI!Y&_gC;O8icjVpo-M%1qgP7fV7+XPaf9oYuCSCX`pUqGRDKgsS__%yl zH*h`P^G_@0gRh%Gfgt&aD7GCnvKj#>!W)$Ctl1hMpV+(9yv+r*Rc+Q{8x|&PKQ5oB zhP4|drO%#l@!x9m>eFgeaR$kQVLQ!$BQw(H+_?Y47F-oUxs&SNqaqFqc3yhUAE5Z7y9~UkFNwtUb#v%0x{L`UCy0Y6M_c^@3Ee(Thk0kpV#rC#=C$D&?VC^MpGDOVvw`>46 zyoE|-v#tvi-{vRq(}!0<$VtW>lnFQxu;wD9LtjKgg;T5t8pElG8BPV8^KfsS-q*X> z3GX#1?%Kjb;;1Bpmh*!x{xE$jd}yTYTnUy9s%`2eD+nFLv&olh`7Lw7xS}j^A5C56 z8bwepz3+-O*mp;cd%iIEV10FLK@4uKU(L~YiJ51O_uYStRO3V-T$##i!8CFX)SMy& znSVg)pZiE-@52fVSIh4DK4+^fTH^GYT<{sMd0uu4N$ql=Qj3|F}B5lu}}e zQ-&Nr*-Ke(GdR8B+M%>)uQ2pBvj3`M&E9o8isEw#$SO!Z+MtGK>C?dzYP%9qT`1a% z6geA38(&tQY&p5CIM*&w$SVs>9mxtHD?I$ho}R2A>5GIWvrnWwpIX;w&JF0-8aVW} zTSX>hb7v3b3ZBKB2z)?k$=XDyDKFz`rWsQbPNbEIS_N&<6*PMz&Lb&ZiiHNA%wu2zsVJjIop3EdMJf{QAV>dAOA^Mhu0bv}Jh|3O#)$|BXiN4;Xl>(QXcW=CklSbS zdA!wJku9sZ2+y01w;AEGI(c%)>Q>ZTzv2V{JRqv{36hz+L&j4{iI+f~zxJ8BIyTiK z(w|SU(o}D9TeYgH){d(|L~SX+x4hU~78-YSK)Z!N^I$Ys$7#YVyeG*jg3lSa%-SR2 z9c$QD4CHViTNp6Rc5bS?w3^!Z4fT}J(RgbhHm78&%vL^N;`IrEPP{a@fTg!9%`yOlku_Y0xgAdZ0zmPyY7sO0#X9!rdR!-|B z$FNc1bF8ruNmJ{OT7eAXh0o+#i~P}N{HHQyB6S2A6 z)MC7f$TCzAHp`}p0h^q@&I06qY(L33_tDYuh&)gff6-(DsUB_|zcxYIn;Q6uG-1RI z2%lckf}83UcG>rY=J!@a;^O0wMz<{BLL?-@C49QRxA0>;HW4*lF#f=axy`MPHBtFA zYV50O;cQFw)Omg@(uiOk&h?oXQmCGs3Q$=86q1ec6J(9; zli?@BMRvG}w@?9RhV)M1gHmN?a1opFh-?vOq1Iy}ZB*8cYS^862{W|^Q+nHVC}OXA z*6asg$Ckk12<6)Sb#9ap%c7mUF%M47W}Cs5VdcShsV~^h*Xi2ltKXz@Q=Ldv!mk*C zA}ZXxN7+$p-=6C`u3XvVJZI9hP+!h?<@K4UYe1%6t!36YM6%S?TQB9#fhi^YXC}<^ zLrraZ%kIf$72{F4bHnKQCiQ@NuTNNImztmw4ohR%wLJA`Y5J?171UXi4Yipm~VV&BY}422s&F=?87 zfqi(E2P*j~$>GumGjeAi`JfIzKA+H!V@H4zEIjl$c?-8((U6R_W3|i9s}}{I`$3<( z`gWaP4fB@dcHmm9kGgy@zCJPeQg4}QCg!BRm-OjF82=xpHCr$({bC`1Efq%{neH?e zxUv`*nJ9j|tyPg%hEC)fQN*dt1>b4T_&hyOPLwY^nGV|hl4>NJ#X^749o&CTvE87GlqRO@B=I)4Y7Bdd55L6g#S%hGvwLFh9NJkEl)gd(f6WTqKWzd#yFsH||{CDD3>|7`7ba3ufDX|q|>wW;wJy#$tpM7`A^u9^pM~Idwqf}WnvTAY$_U;&A$X(Nf0xw^KH_ak{D9qxy};m zs1A6*W@yj%=j*)oz?5bmPk6#r%|Ko=YH7aNM&n7oFK% zu82e`ftb6aZ%aj3Dz8AAWQc00I}=A#a@0!EX6?M7{ktUWZZW7i?m6-MPb-~z#aZG& zFd*J`!5atiSpHW!h-FX#Ebr8O^rHNBNYfL7EX-G<tm_(GH$x~m5H*0^>%h1B7N(GQwf$#t0( z%H}e81G4a}`Kd=Fek>>rp&+BkC$PM!X`1~ej&oKQs5eOk&A0BuHx{UionU#FKj%3@>VM|M z`d6t!+>nvGj(eH!JB5Utz}p*9;-eKHyg;aJs!$d*Bh$!8YgSWN-ApG9A4dD`05t#c z0=j`#2*oH&z^N*dtM^6%FOQoK3p>@s41VZbTjDr^jy{KKB1_-PFEeeMoom&dF|1%q zN~?LGMQr@_QE7~?5qP8`xnC4Oo~yw@*f)C9_N z#=}wXJ2o_Iu;_0JGBR)FFv_?hZ@GU)Q{eyhODsq+uXmDc*K_hJ2kt7LPNkI5$Glc~ zJwvxYj*NRYK4=4j&umCuzylI;HiSqUj$rkE}MFMzLyeK zY0aVq+qUPGA^i>7z^$4TW=dHl(VL87V=8uO7brO$_s^QAo;0d{yj*iw`|A>=;lI+T z%Ma-F%y-k5s8#R;JYjrX8J7s}y@^bZ?V z@K|LdKzx=}Z6a@qbr_gm)9{RIRA@Ln`-!xpsoZ;G!1Vpe6)E}4)kz;9mF$v`L?eu2 z%yIXd4!0XE&i=9eGe~#)_IH{tx+((x`FntDmP^UnrjD|@GXL3`k*-!?Q()VXl;eQ*q=>!sbB%3*IUl%_7jIha@aefCGZD6@lzE~SmRMS653()CV0 zbb9|v{wt1`GDpeAY38C;QM=+b^^D9VadH|u&^2SzO4+^l9~fj+@Jhc+BmA`OFJ?t# zB;;Fq5AW!2Jl!LC9+q9(vw4C~!e-NAgg56&7<$3T)X`ij(qORl64tl|9f4yWPOf3|OEg%j>H%a3Q{SBNusb^pB<3PQ$h}PdX<`01#&tOKyu{W| z)yO&J;?6sWdG%~bNbI#P^3^VZ)owAvk-Mlqf801jod)S{)!(sOeZTf&<&XWaeCc!! z!Q7S_He2#Dh&j9bXAqN}Hhk!r4w~n^5`iqu(aqI&Fi&$7;nm+MG$XjPQW;s)(cO{m z=51XE?|MK$bf1u8$2>r|h$zrtKzzqukK8WK-wfw>;O@s5t@IjBp;eb zj!!0W)eRufQItJ2dpKJB9;Ch#jNbD_$JnJ>WGZU%D#Oqcf<~H z@&USakxJ!Lb&}#UJ<%Oke+p9TxgjC4UDj%pEXqNy?VG-we0t#|Q!CF97ke3J2<}hY zi3W;3J89soL)V|;ATr+0!w^Zr3 zrPhyp44)XHi_UDlM#y;q=AIl9|4uiiQ8)h;oqyBB6f{8-kG{`4xMtlju`xc+9;yyv z2S0&M&~uCEJ?ikr&3_fU5IVLIGU^_3==J0Gj?V_i_39a)&kwdrHVK~1?@lGzwKtdH z12B=zLQ+X+AcV_ozD`A9o_yGcz_T@RPZpvd3&uKd^qnHX(a%9Hjx)OXIL5jxLzs8U zX8j~<`08quYJqb7fNazwZ_o*wBi>shI=Ge4L2q}uk@ZSxrKAfjd8tEcKizePzeK&t zllDQm-@7U^8))2*o<_A`KWvF|MmmT(WW3pBj$L~_l59car4W@n7)lA&McEYfo!Box zri$EKp%Io=IvFjBh-)qObY98z3UJJmYnRpCbeb_1pk3r|nfZ~u_6=*k3!vQU(@gv0 z$ssf5IXSP59%%q%u-O&#z`PeAj~{k^ioCY9W_d!M{hostriKr`qFu3=pOsEjk6(5u z*G#byTG_2H`c!@gUdTLr;FaUXHuLAEqWOgd`6 z^@s{;duHB?sgLwxDF!|iR&&0Cs1S@Z9ZAfYWCzp)LE932(yJU%kj}rS#J?>KSd8m` zFf_9-&6cgStQA))Q>V zpX%Rp-&|Vc$u|nmX1Z&9EgP`Xr=2UYq0DQ0)mb_IA`|(@Meh{(^|$03x1CVbu~1Yi zQ41~=SSE+7ss99scS8PQ)^`%o&du=XZo!&epsD@vls>70dHs?_+mI2-s;Sc(;VviM zvS(iJBXY1PFARWzgNlv~!rvc8i1;riDm%X)+4(!6>dKG%O&T3CNt*rJ9b3cAF0KN) z7aKcqRS#{VOweE_X)VU-J#9_@?5BTpaM^idG6KFnmO{mLUz2e>z6%3ItIT-%jF@=- zUcfnvXSY@I?%W))5FLC}q(1!FmP^By2tNzE^j@V{2(}+lsS)Icj5Uoj6#AFUQ{lD5 z{Px5XTQMXG{1u3qhL)m1u+yKyGY5j)+!`tvtMhhau7$iHcm4dzJy=qixVpJPB3(zP|J(oa8j z9XNuIMm=v&mNfdi-!$3=!|+HS;|ZXXRH1|8dFLyJ6!mO+anjJVr272o(5v!9HWX%e3zwNpa%wT|O` zip9?~z17uemN^nX%buE!m@DZHgGZ`*+q<%eQui(?SPp&~@%}Z7%mHU`3&e3mF6wxj zOVrJy+fZxiz5$LVAQpx=Zp&uPjYon^vh|Q@8MF1$Ggm86WH?we(n$jl1e|!^_}OCF zbZhS`Bfga!BQ-Bp2lZK0LT#2(T=+9Y+DzU|%bk}kd1xvUDKl%(5gC7cp~T=VDwWig z6S*n8i(2D{IkgSGl=)Uvh9qu#r`5)R_i3@~nIK2yc%*jv3N$z2^mt6p#qDv;TXASaOeaYX0W6 zkvnZxlpSQc0{rR*c2>IF>BYY^e|}OEer$ZnuR4Di&WzzJ=jWtbG(w_>y(ictUPIH? z;H=v@Fwx+q$|{AZh_0?ENYt~c@pc2d`0`tSFRmJVFh04dStCUBEl;&dnk3AwTfatc_JLFHn6UttkCmU}czHGPWjDC} z`x<&e!3+Dqz<+WHpy>B&TS@hGV;?W~L_|j%P-2KjzlIfK{wWeQV6({48ew_zF++r2t)Q2Pg&AE297%YU^*x zFRlA63;wpMKla{_EdPJ-!BOxXOCO*3wRii!`pA7jjFY`&i&g5|HX;^Ps`dS zLBel!vi!fO7X7he|Lfgw6RnG-l6(~%!~bHx*e{PB$A=xdv7EaMM;V-Sz6=o6vvR9s6%A>TlALk*-=*ob=Y1Eb(h!H(Um| z_R7)m!!2K3WulBrpeEe41c z#oeY8=LT3?4{sTK-~k909KbLbse89`-M1D55Xp1bB>Sw1+GnC5ORg-fXG_bd2-t&6+n>jxnOnFxLuv!;QK` za|Gt4iHd8*)l=bRd)^9Y(_(u0Y$N@1w`<}` zVzNX;V&$e562b5b#O2+NcKoGNb4TO6lv2g7CqkVxsjaXE`M!J97D<-jX%DW9zE-=-(w- z+%SF`t)g|;UB&sC`W`?nD+_$891l8N8=IEzy0r;W`Lr7|n~E70vzcOqOABE4Q8SED zl?LJCZY6#;UKL!bYbsE96OND9$syfxQGl({JG?^%b*c&QG3f5mleLB3>T)LZ6f7hL z1|5{a^Cyj-HS8d&qj9E9HCaX-Ai~KoOOwhHIq)%JNQ>{DI|JG&jdD?cHr<&LhfS&; z)YC-c@{p}>b@U+Ly0tBKp@4Zsu zB_b0Yl}}JdUHr|ejo4de?In$>>{n#e^M@?rjXJyLIXkISWKj#od2Z)gtNeo{f8by1 zf*{5OoG!-6d|R-%&Yn!E3EtV!-KlOAcZ`TD7j^R0>|!B0-Z>FkybGeQyf;30Npl1hvVIiXZpzZY87srWT2;#vo4t^e-5N;a6{LS9}b@p^4Lbt zkjsohg&UfX+iK?AH-#qlMEfMwK|D`c-`jS%zj;n`$?6Apva_wopYLLQnb?4jDxzm` zf;maFGoe?IS=k@U`bz=D7y(hvGd)~K{m;G1GxucHr>OTghz_e(bx=^`LAqZ6(x66t7#YS&WJ5PlG*ztW^2@^Ew=q&1jWosUqYis+R)U;(RuHK zii?7!)1)b$u5tUb2)I5#6OAkf&f|Q6go)fMD2q zJrH#-CBX#fxR&)a5&HH*1e7eEZSW4+lH+wNfrVTo7P@9H4=ki4u@EXqc*qx-d3w$3 z2vFs?0tBw->c>SB7zlZdPD}1_^}oj=7d|gGsXJeFth5Ee-1zo{!NR`*1I>#QhTDc- zuSR`|ZH|!z)UI%{u!r#Sj`E*FR$+7aDhWfe=OAqW)8Xavi9D~#M?6e3oUYYGmk8gR z8?WE@HZ@<@nIsqV^09Dk5CR#pg4PAl+R>zm5adK#6lZ~wII5oZd}`kCCJhwH@7F` z_Zznx!gBM4-8^@#+hzT0AI5ObX4M@`nts{hKbCr`NcxtFTX4hf9uc33tg55}YSz7i zIsib+xZ9w|8#WrLZ{M?<_gVAGf(Iir=exDVUP2}E-qD_$X7{%NcYR;tP(t?FOM%tZ z*njS`L8Q_$*_SN{#ZDIPoWasTlcBecw#F&H#zaah#-=+1vlzyGDi5olE>P*L(b?f; ze_qOtL7SP8^X_Vh<*Y-&czeIQR?NFtT*Cq8Or2gOKrNJLGU!?Ie^Q>ov zqQ=|wBAy7G3lDMMhZZ#NMaQoDgg0W*br#Xvgzgj3R$9k-q3_IJX-ZywhTJ$M>B8?T z`aw5T-*9@LnYuI)J18t(JnlY6`2ZUGE=42%AR8tow$6K*ZToT0Tg*xy19iDc8<0?2+=YHwDSg4#p~2tj>p5hKSIU2O#};BysNME26=lb;s; z$oWGZXRiJdXj|`l-s1fNZ04Ljp#yKEU(c=;?4R=QiR+_Ss1kc4;oE2C^R3xyo7ogYBH>-96={k(ta94chk@US;T?P0l_7coY5D*lR#6{G3y-Fz4{dLL)y2 zFZs?9HulyFHFC4q#t3$oE&o2wV&R|{4C#lhu zKP#EvE$Rsa1`PxTW#*5v);^SeEG@kB@iyQw9lg5=7G2Ut%;c#fF+zq@vK7ZlEgZDv zBO2Ob6$OM;DTT|AB7);ql*6qyxNuf#NPsh?#_+@HA5 zKE2z1R^8y${F}uSvm^aYG5a(~-w-`5m)QE5L(ik0oD;&$SB}+flP( zPLn?5%yx47VCNrecH%0)@19@h-0l2a65&Sec|NlwqFL;^^l~I)UNDN!a*aM26*PI3 zT~X_KKE-Z!lj5UH*XS2tDr#fMH9j-f;*h(Xv4olDmmRR>c(PdFV`Pj&xVkFA3I6X( z{UJ5+`sCI-MqDzc__P_%OjU<658maOAjYZ`isJQ|y&sBmC0s$h zClL%{Re460V|1n)xkE3jPVeNz25wVxGBpwhHzxXFtORab%8>z1g)u*AHQy7!Py0UC zpRBlu)oiKL^{(B1CJesq4Ut%$A?G9z-z(Q+=PTN6xOTbZUG;53r*lvGx@$w&k~q?R zvvr{tUlqexS#JpV@sh-0=yQGqM^uD%RjAboiR;V79-rLtV6}U2M2BOXfqzC^K5Htz zOM~mXg6w{)rt5IKK7Yaq<{C238xmy)-$NF$B#43vCYkkxg~_TEUP6{&<_A;@%NnOe z2gqYKiiiC|;V2p=Lgj9*o(()gGYbXB*@1RsIWb!PUUJ6<3z+(yr9ZBk=NlFiqV$+2 z;6zU2& zq%~yq^t7y$2gRtv1a>!}Z~C5q-S!ks=#ZM3yU1|N3Op6*J{YD(1Dmw&f@F# zw)M8`i|c$FxvjPNRxw^HQ#d(+h!~X3I$kd#uoGtyV6aoe6BMo_=ClP-^m*37`j`)| z*7>H{JsAnG+Fo+YST3loG%TI7K@2Z*NfE+aPARMw=K(~9U2lO<`v^)TopOx=@FeOV>Q$EUND-M8D(N-p_ z`i7Qxc&&X4ER9O(l`~$gb+a3m@I^>*_86A)YuieRc}|HoCS{Z5%7>f`E?H0R7s_SR zP?I`MaCog8JMB5_w-T~Lq+dRAOO?C*Y=QIwBd|vp_Fj`XqoWR{qeJHoIl(GhAl3_X z!1%|JGsgfKNOiwSYKg*%5`k;uv~b-xM z2Hi<TON8KLt}W+zHs~EMX`TwtC%BI`!P_Nbe^+_BZ~rrMnLnk z05rdOPg{-6I*y7(t5MCvS1b@tS(b5%iwe8DXPtWAhn{|>L?q*-D>(E`4gGDMj~te5 zy-(*B#;m$z8x74ZLD3yC@L~4l;u`NNC@eZXg!?Z@2fuaSyl+!3pJc@!E{?ygsdVwC zAH&tKZX~}hg=(DQ0=;>3K+!VMO=)*qH`-tmlU_U?=Mxl`Aeyc#bl)99%x$oGzKaKMffbQB6_=m*vkw9hz=YCA#@ ztFm?1M;$U=>5Z|)xCPHs@4$E8toPvlu%o9z@S^ zT>#l5zho3TaVmEY?~}N=pjIJ!_sAyKY@c;;H=o@FRjxWvK5e?6CYc)jV);xuld`&W z>xS7Y>Z1JzoIDW0$F1t0Ado5{MQDL^p-4|B4{_>Sz2FP6P5PaB7TtH4(3~q*DD9Y! z*EGr}WdT50{E~oF>F8V^7gRa*VxjBoPEl#~Fuk$0(h<*!2Q-{AT!{MupDz_%mESRe zm&(=bvi*`)9y&yP?+p9t;C=)!>%VzFCY8AOyRkMZfw3`)s%zFEs*v7@DDXHXhqZ1h zaaHOX3Df@dF>b0!hQ{&bu}AOEd>z$ULphxd(Hv$HIQN?$FrDa*+lr8PX)@`D$6e3f>LB)D(dafEt=3Qkr;Ntl4C@WSs^ ziZPH@6KO|NS(|eWHo>hXTLfmCY_`W@S&9RGT^crZ{wgN^kPE`ZH=x6+EB;M}oBB8N zGQCsAd)nJ5qEaU?G@$6{*q6>X<)DiSY5BqoH=Or$I>CrcE(tBjvuWf+#2Rf|8I`Jq zkLvi`WN%ban-8YK$HdT-vG=@|Cv}=MZ8|^D9FMQUt9h+EY{Ua`YWrfuDPe)DiDY#B zk&~~ObJ(Ce*UZ$DXQj+_Tn*jpijW^lDPdF(8W^OZb&72*741kuT`3~W%dYtSW^kOQ z(~=Y$EL5>*>~4tug+kOHqiuu5s|#E39p;6YaDtw&Pd`77vRvW@7HW*FBK`V(^LC{PCARtgy=*_B3P%%z($;9l!adjfpz;os{jUfh3C+b*dWt1X@Th#X#4 z@q6R^$X`JtZMDjmo_ZkosFUemZD5H#ys|kGjevdzBcUp!u?PKMQHGZIXPN6()M5@a z<|#%}LHpiSj!+KYwc3*<@SR1lr6LySZ*r?wxcr^|Cc`OI*Y$rl)uEg)6C-EILbeg8 zuwOKN7A^L8Rd)=^n4u^ldlGKL>u;Id?%`ocRKalnauBb50MiXMY*+QAIXoQ6sol=u zzbDs^IyGHfk<~KqJ`FqP?XM;de;9>of?aFuZ*sLeJl7!!fLbE`!hrmPl~o~ErbI7g zlyOR5)7T~lw@+`q(7y70>G0cilF0UOYc3~FLvZ~*2^KQRB?hJ{=gw&BG#uv&=gV61 zOAt1fhT*;e{hvbQQxKp-eMGmv!e(cV;ncEpVOv4ha?#a` zk_@nTPcArF){Dhoi3eXjk=m;x=XPxas{Pl<*r+jxOdRc z+>notm{ne0xg{VehO4SKd-lDj2Wt)c+7vXZ%rU(~gSm!XsBU~eH`tP?oQ~~}w@gM; z3@d2c*aFR%8SXD%3k%%(ojL+l*}2{Chv=gX$;!8&fzr{bHN? zvnKs()607JPs)wTvH%v>hiK#|K@b6c%{JAd`CIW*RBZCLYbWMy+l%HVDG?S;w~a4- zR=jOLhZys@6_)E$URE*S>(id#s_#lH&kgHwt&rgPoFmE;sK{X<)!TU6V_0B=&GrgG z@t(M3^Ju_wJS-4^fS%>QGmic&R?`>-Gr&c=3Zu&tf96?Z#8-EO+M|=7v?3xEEyo_a z8k_8N%EUY`9Q9-4H)diEK^#li_nQS>Y5WwjE+;(jw$CkXCAQ_Lypr-=>=yr++yYV6 zNrNC(XC*Y9`!;f-ampi8bkt6idJTfxn{=WZR5 zmIVW*B5)XCI07cQzqcG2m8}2%mw_YGD`ujE?>hr;U&PfFq2~|?zjza8W1JEKnI!)t z3q1$82PA^?4M?~;Lw)d5J~z}9pCW<9GuL2j_977lxsZX)rnm`ISnf1f715tr9H-e8*e*#*BDxV@@x^?#-cD`*T^!01Hk2TUF1$9^!vNxB)leo z+&cF%0zvWMZ1#M_9HCGo4q5Vp^Syn`u)?7(5bpU?0b@@StWC`cW&RJ z$5*b|DRwmwZ?jlc^;Bbx}yXSnNIUw$ z@MJgq;~OXA6!x?L$$QV5_P0W`fVM??b{6SF?Eu!HL%b=l9Yfxm!Tl)6McyevK}SP_ zCb{vU#nCl%>a3F}E>;hYpy(;z13+rCf}$Nll;VdnM_Y--@%bH(v81qW+DFjW{9YPd zh+Ur}uD;(KaO)z1KC$EC%@d5aNTB`IY6k;TfBP>xF(dBxbxP7NaGv=22hX1bqpj9b!jZb&cgS@#aaDbjmwhpHQ86)m8u4-Lw(R&^cy4$qA4QD0yhL4Z_P2l2Ww zZ?4Pj?rS0E;}bE%EQI{&v_UU)_R|z}s-c0>l=#mS0+{D(eTz3LFLMOUL6rS68{-{U zQofTG0d9fZJ!Fbw=jsOw z^GEU(mDXQ7l==DCs=oI-!_@_-Jx0qOUrw)SQCAp51vA7e11X!c66XutYK1$k1pFOo zny1St)*Zzqq9RC`ZCS!QP5`YW1^&YXMIPTn3Al}ZNyAo2)fHtSCI6z7V0>@6Mz0zz z|LDncKc-w=#jR`~Z=ytv(@|gZ_<`>f03!01o*7%erDMx?mJJHiP7!uu>DuAe^?bxQ zJMH5gp7p8oIr8rms43ZlJEp{OIWBlq_i_#NHq>2j>E2E|!Kn`etQW}Hw}Xf%6R&lH zlh1)5hVpuliJLx`0TD#oiuNEh7cOrczicPUic?p8=D5|72BH-=sMNa4ZoWxpBrEIH z=>Q_D6&e?=&U)}n8r4j42if-`KMLi@Wc1eM+2>0A_{?gw@n{J<}; z>d=GV=)~cAyLhsag!ZnU=n2}>V|V3 z>*C%&dJaY+DsS35KYAddVXOL>vU=m-62TFJ!dsovH5{w zWuo8OAcQ9B1bceORb`I29Xn;+Aq6j_R!o0kI9fgl`7F$Na6T9xe|%@CC5k9|K7Y2ZM3J%n9oJ;=u6E8IbI&3l{u z!+lf4S0k3p`ietN;9B#AEBdzaWSSPL(J18MJ(gKK8zB(k`3@E@Hw9pEmWQxG-igUQ zr_t~kHM~Tw0;xoZ-3dj)|7;o@H+qrwJUgr!=oLl@)%L){i|uM29KQJ@$v031)_~VY zDe*3d3wYipUefOr=Ay>u3Vl#^1EN7Z-XzYb2wp_K)mb$7l$@6RArfbPuP)g1eH1Ftd zI2}bPPaQcU)!ozmQKM`Ti*LXR?$keb;xc=>-mutKl~eN%}FOP!sS z{o%CxFdFdkcD7EhjhHv1Y@!x!#u;-6wj_qnbrj~ulp#%`9@?$ikkwadWPO!Tq%&9e_SwfrUKo1 zMWym~j~xt8KdUU3^U%4uSKT;KZ@B4zgJKaInmXcin@kBW>UP7nRS}1V<&ngMOgDv)42_B&Bb7P^?st17o0Vn4|BO>ub;{u2a2-u?mU;$q z(R|r2X4dW@3Un&-nFF&@4Ip9=Y)mFag(>1c&q{$zobNfTX(y=uvo}B8(CIFg7}o+Z ztePYM>?=C zBR8=~sL*+HKr^?&=H{gT!FA@z&T|;CoHq(;6V#dmbiBw2f{uT_$g61TR<`fn}V#9w^n zh0>+j-cL*F2;TKOp!F$)7Y2@ywn&PWyw)FHYa=H*u$;<;+Q(nwu=YO3TUQCu6}CCn z8GBG?KWs~O9hjO5p1saTT#rbq^{)V* z{uA^QR5)`6ok0_XLBTd$jp^m>c^%$yVr99!#9lP|uHr={p!7Vg|;XU$0 z%^SBCX8F4h>k*%35zN+*>{gsNOVw&l>0mKV!o%ry8BT0)hh#NpG)GAYPN8c$e7QbF zxh!Zb#{k&J9c`Ql?zA8qyms9Mhb^*u+ava7ymd?eRZO|g@d`2G{{xNDq;CtB09>}|6rHd24}TIYT8^jN?#V` z`4-Tanh9+r6~Y;;a-OqXhctIjL)Ps@!ypnYHigAgKheb=h3^-Y}3Ifv7cYPaf?H=0X?b;_Tc3T_wZ7Wc$c-6gl z)6+M#kexq0??M9kU;cPCwm5(Ma<*_5P99zW?f`gcKt*QFIs@pJ|ANV6?rQnsZzZYk zeF=8}be{|{QQH}0W(lwt|5G~2(xnQ~Jf|LvIL0?sh0H18hrxscK3CoLC^h^8${xn+ zZOI%dHsCfVw_c0{n)SZ~H?M920DIs4cRTwWa{%}Ke@aw1a`N*($`{<9<%<~(A*CUCq{<)x<7@AoR ze_r78{)oj-Er7Q@wVOz|J@sc5@4n5#3|?9gxR=iqH9G8}_doxC?7ewdlIi|GJ}om% zrzT6Mv{bCj%5urdHIX`6R%TW<<<1nDnOjQaf=HcaTvA~&1fJ``J8j+obUC!uHWx>bzS}OB+qj{_x;}A@B4kf9;R8;!tCPyldM=Bz;#@N06E%MlBKYZ58@vjF> zbpjemC9ckDpNsClqrhiN-mg@t_1|Cnd=vAtTmJ2MP1^uxJM-Ch;QxbFyj$Z&861W|XI^2&Sh0H@v+7jFEKUocjNThAvkI#hz zNEp6EADW%yV*~Q9lflu## zRp1LaHODU&S!jq9o1cOpe*N*7vRtHD^g5PkkKNW$VDbAMc(Ob?`Pu#P1L# zEXKfm#t;Ep-!Hjr+amrLMQ8|Dp-9ipO25{E7X}p`dP|inW{XtH(hKON_^)o@7aNfS z_pLtmCSS5J!$e2LEh_@fKxQzMy-W<1s5dteUpF9rSVT|D3&~6PK-HR8OFh(j$PP^h z@@3{Kq`vXi5GxGW4SQMTJ>6@vmRtDH0%xE4FpoohSP!tNCAA-yeiJ=Qp zD1JePT%}~&@6o-695zkn2VZ;etKF2c$#uyK!Rm?FL=9qe3bXCbg6XJyOK0IN5 zGRL@IFhLk{Q90=SkrSOxHI}ncWJA3)oQYwmyT;onO}9(xlh(1Grs299K-XMkBCX9jMn zR4ab%e$qTRWD33h_!d~mcr(XFE7%Ulrj8j-Tz8l&O%HqHEgTFh1`Zp4lzHr?fqMgF zg$vY)FymH^ShYDK|607P#a~_6U$he3d8*NUa05z1vVKDES86sN`qee9wDu{>_ssk1 z2Ip@8_X^Oc@2ZBaMC98tVsDQvx}BtoZ(3uw9yswnujpSuwTJ2)HNaRN{QcfLLU%d< zA6Z5=>;S~dc12ldd4Mc+Ae_4Zpn`~0@2nz4Di7YO8+%pufaJz)3Ms%!$&&RtQPZ!u z>a^*)6Q@MY-_}BZZ-6e1GmfkcGMLGu$@3Tsz?(ehC6EOP75d=u^c)sFH#8atqNm+m zHDU5`!pqdJI9}nbGFvv$h;Gob8{VbT>eCZF)U!mt02+BK<^ph-ettYW@Uh+mT>V$S7VvNuQRJJ z8$1A;Vcb6}T9_A^^HvY4M@CI``4G9TlHW~y67N~RGblBxfQA{gCgHxi5wqqB3Bf7c z`XTtCZ=Tr6xg>4CuUA6&j-NVBI6GQ->zw^H_fM%qO=lZ2mxp z{XeDvg!sX~clTXn*g@(=t$WB$vz0@O@Y8yk3zJR@lOdRmpeqdyO^~@~z&}5g^10Eo zw1^qDM@V@#$4?&NtKFvd&ieA#0k)Dl3l%I+KT}i33aIE?%G`+_dQ(2MtNQhXI(kB# zdB=QWTNq4y(LZ;gjd2!=l8TAcglruo6oPFCBYae1%eP8QXg*LWHeVIAXBA^Q-Z*uR zL7QVRjDJa%9kp`+mET%+5wHeT3_xBWPV?DaO865Z*sfU0*jev1V(9l#Md;sOX^G-Q zb%kVva-Pq!0=1^3{`!Vdzt#0X0}2+}9I&*(2SoP>`wj0N`7!?bG7s|W20&YT|E3gf z_FX`@gS5Otwd#Y8B^v)D*?as(%3Rt>U1qoO&DZ?Rfq$quU?>LC7Z)xMSX<7VX>e$Bb=_m9kb42B!ru&fd{#NV|F+iuU^aA$_G zbK*o3VPTH{^4ogmWvlheKiEBwgTQ=#NVVTdWg+@5eYI?+#=`or{mP$OkqM)MMHc|~ z_I5I;uQM~Bmnw-6_;qH~l0kEbV#J9CxR}uDa4W0oIdzT`E#*yG4voC4yD-U&rGuJm zy;MH;Tf5@`-uqCO6M9fWt*1 zf2`i%^7vi)^-kt52(!A~S`Mjrrl1V&Vd>}xY38oq6W{p&vm5u|JLxI8LA}SdL@S0x ztT+d!)!%bX+xB?>=o*qz{fuRIdWY==_2z|AT2%gAK( z(Uq)^u?BA`D-+9u53t~Z5Ji{Ys?FWx(k7B*W_v~Fuplj@5JV7??5wfY%hp`XX0lpr zhe_rXPv!wTg{70AQ;6{F-ra|>QCSmh>)>*cbAKs0%2T^vJ)nF+MhFUwF!mq!xVAkyq}g};++qGpB=_F7ejoHh z5yWmM!(x|g*BmOX(zsq4=%Ge0E2HS~UNi=8?j|Ahz3aNIf6Eg+`T3x$8-Mv`MfXrt zF5{gKuzpfQfw=0F{@i`=dX4ShYU}oA+C5iy3g2h+dkijpE7bqH>_pih@A9$J!;!X} z;FB7pWihed2aTw5d1g&@YYF^Gzim%K)@S$g>Yd}=1JR;tOi|2W3u0A(@)Zvfa0=sk zw}jU8&`Zd%RLJ*vvX6>b@;865PBXudd+*05~WA|i4TjjV5kNY`VPUFt6X$sVIiewN#jF}sB< zSazj;ld`B%~V>j{dZm5uI#7C}y=_4OEPt0^^*?FRg;jx$O1JBlm39~Wh zh;qrC?c{Gby|jaK)Umm)7gIew^``aAj_GD2%XyNurQ@*nhJI<;llEcME)mmqHWZHQ*KnbVu2XhAUAPp8r8tyRDn0X)x={WAUS>M+}lTQ7(YzId_J zv1cQ8#pANCwB2}Oymj!omq}#3N85`-!%tqs5Iw%CJLp?`ngWSp95~`EerfKJ)uiXp zJC(Y0efh>j+34~l)n_g!uEa$}DmhV&vqsz#TMfoX3_?-1mesG%+qCa=Vo%SM%4@7-hi6-D#C9AN7FBz3 z(}(Eh>7ifgGp~DQ{NwU$XgXH1#1caj;SU!B9qvN6v(2T5JC?C$tA1$?=}+`rl2R=I ztDK~t9KGvC8P25#B*e(A_Kmt&En5>FqVOL7HGxtpS)HBkajgT+M7w9oYw0A*nqWI{O7K z(L8@vZ8GO#<^YE_-d?`Iy?V~FBq(jC%bwj_<;ri^t9FXU8+7%3R{-&(>h?Pt!AZ0! zo_}@chVm1!-_X_f4E|pFP}||`74g@Hhx2HitreB0g5rqzS>t6d*1K=U_-o9tylU(5 z%a2x(Fd>3#e2eH&OeD;~2-!kQZcW;jqmQzlOgrjumy~(=?2)q&YZG-i24)n{(VAp4 zXb^B~(iTRlb!UZ-9m))Q?R}|1iZ9BkcT>D+>a@rcV1rBes=*hs+He+`wX~iVs!6Y^ zj}fus<+A{0HRc+(%)Q>nFViD%Bqmp3tV3jhB<}Jfe*|Vq8Ma*vZn2kGzUibQP*D(E zVQnfgtG;k{YWp6F9yx0~SCAIFN%K%9$?sVknIyf-+xYv&F&<7&vYIO5)t}7`HF5&i z*VmudH&)JX1_ob!+l;Nlfe#gUgB}z@>iMO3t7z~jk$$MMuV}1Qovj6_s*lvT7_V_> zqPwyl*Q#gyUPJd+2YMlm4G1}yj0F~d05)P?B#OM+|L#>aDN7^JJ8^yGVT0nrcYWru}>_FwXerVHbDKS-d-B*PkxHU4^rgvK?p2qh5Q2V|P0wcn7Q+l=i=Hk#8l& z|KQ5>T*9q1o3P1NDK9lLa7)mE)Cqx>aA3qnCFg^e5X*}R-J>9C81Ope9 zX#UUvfBHNqSmrTm717j{?wz?&zG?RE&exW^Qw}QS5xeCnv-gg@Y8$|iRohO?S9+(v zprms-OY~jA^3_{6HFKZ|EL#dP-1{eJ{)* z&|PrQ(;+i`E16w_GT=qFYTGzFV6w7Nh9m5$BZ`666V}vuma+YCbzt)zZfz6A}FNPxb5|&^y z-1(AO5a9jDN^xDD#;Vh*rKtSgI46RB5)YB--NDJ>l~wY=dqX+wRFypcH5~ZtRV+c*5VhsI_o`B(_}iq# zJ7-3l(dy}W_9m?1kV7F{Qq}u9o|K(U7_C$~@6ODM8!% zVD%H&xG-%A+^-sH`h9>A?d6Xx0m6C8#Z2EZ3s;IM1#SQY8XO=7#|}kl=ds^%cc67C zkm>3aWOv(MuX*-uhx)}}Qpx0@fa)5J@^5pEue%xTUu;3g(Ov`Aujek+(1i4&{3q9z zijJo({bF}_2mdbp^BV3Uk+zDx$wXx!qu%O=FPm10xrD4$Ul1RhIn8;{qGj(e%WGo~ z`5z(JS(A)YtfD;{eMo_E=8a8vJa3Cw4wJ5dKDFPgS)Nlzt)Jk<-I=!bq8t~mDm8B0 zz7Rnb_Oe?ss_=aGp}>Ya?JE?0CyE=Bf;LHecq>-}oQ^ znY^B>3|Yc@VUL6SigA9wKHo$3zZ>%$WxmeOQ*=5rB0-vYGuGwNC=q5z#G0v`9BdTG z%aS0Ra&1Kt-xL?Q$?wT{A1b(GqP?vp{gF4|r#O}M9fu|B|6m!A$AVkdOTtHAm_kvj z0>@u9lX$Z##AASuvNRhF9X~g|X=-K~W9vcT4cRuWuk~@qd+=VE_&lD|r^q!B$>EQ1 z*LZskB}>n>50ybKjDg>otHX;a3y(&0eJ=y9>FgQ}`9C5&cGWijR`zWylaGtMVRDtU zR^7p}xm&1e57;a!sfF}isa{Sq=T(VWP_ml(GfT8!i_36A2uz8=26n~bwI^o<^j zlRd}?e&q?-a+}e_fpKeREj^Wt2^zT*yKUi6Z))dbJXJ23oG33P#)zk)h&I>kbXGa` z*_B(3Uz$D9jnj}_;ZzW_JpBd(8`_h$Rh=^#Ov-LtmRE` z<4OvZoX{0L)LnU!2e3dc4>YJZohTjlJ+fz=b7j9D=)9wrb2xeONQqzIs?ESzFCBu4 zVSxgiEOQeH*TTkpkcw|!yk`P#Z@7VU+A@hz{60|F_$Exr1AdFMEOlFFR@3WV;B|># z0YO33$l!~f_EgvK{+?&ME2;_w4(LfQx@p+Fw?;4lB`CTG$q3okZhfFrW-%Tlw4Hft zXlq)(wjKzX1gYvQT6}YHaFGt}#xCgI6k*w}w2Di{zA$hyx%z422;Lt*fW)6|OhjOO z9vfN)R8{E(^*$;e%VigYvuoK&IeL!T=me_V{OE8N+p`z-}%P)ZUHvRElG^T?a{wbZ^nMyhf;IGr8 z8m{5`vzoR;=xPW9SMqQHr}$wXtI}`K50H$DkHI_;E0MyQ2koZ4L`s)znTTK%U2Jls zI-*#rJ`VGyCKM(6JE9Bdiu=2(?B7P+pd$kXmzvsD+yJ3pI(}+E!i3P~#CTd|BmiC- zRJ(B1StgEw%)Js{wUs3@`yvDdd|9T^RU@E&8WyFkse_&aK1suP!xSC7XX>C&2@SWz zQOUz4(kWaeA`LfZ;oDrX6$rfzeT!bQp+Hgnl?pm+M$9lK^kXKZcL;OC;_(WRm$FvI z4`y|fw_ozrf{)-k6g|I`nBdWc^QSu`JdeA~<)MACHgheZ)e;Xz`%lf>5lWp64a9jo zgqDXq*ONyz6ven}vy&9Y=Ytw(TgR0ztdC@aB=km!&3i-t)eXJHeoT9Q%MF1pA%%3`56{t^XfeYEl z+G*h1p3p&!A8@R2Y*JKUZ-p^=L&-2y4epSM+Y8I|Lt_$B_^9_)z8iEk7i5b?Xr>#% zHVqjDAL}^81L4ri&If8$=h}eTCD~373UPCO=L7Xa9~V%fjH@}PswLt{2H4n%_6CkP zT-8gyM}9xN^9w)hth2ZL-9Cu*Pc`k!sXqhWKGb+MdbiY9l~)SMo4NYS{KYY2qgo#> zbT|(mMvMdr3LHe@5Npep`v8B!_cev|Wz+884|JZpc7v7OvJYoWXTLL9A;+Z9`P8Dz z0q)7Py%_2wqSrybWiUKqV94?jfK0iqFCyS>-a={Z!a}^&qx*Z=VZ?d0t^zY@RGZZ* zc-qvJJWqFy^WZ&!;4tMKCyu7W1ljaCQb^^yOix+E_%X4jP0~t*56I`D9FHL~0ajS? zx=+zhda>DOoY^n+oV?gV*O2c{^P9Omp=p3p!ne}baF9*5`EjrvPQvnsP7e~1o_JR9 zK~H=42zshv785rPHMDVtoikWCy-&cz?2dBl?n=7Y^stgP$v@oS^FgVufNo^-6X5(@ zsb!c-1MuoHUia>G71Wrs{Ws!(W1oN{IpwyeZ)(G=p@OXE$Sgxvyd-4=0O1v4BpA(b z`33*B8r*ZUW-2J4-*#u+;p;WNO9waeM~FKs%|<3B)z$khE%el}+Jkn46(odJd5?H{ zVY~|glhs#9dqXQpbniY5P3M(~uLZgvds<>(>C~~Oq~xLg%xK(G(ryPii+oV77hLj? zIJ-q2)}X3Vnw)AgJ#f>!2**4R=AYPYJh44|$|Wcc=2!vOWDOJI0V{%;hWAjq7m9{n zToag}w-Y}p75T5dq%0M&Y}u!zGpNeG^0AW_Yxe>l<|%7FP=ao_08|D{QRXQ*AXpWD zBMYOf2$4)8nq|oPu*4Ymsn_v-SRKg*w$`iB54HK%`ah1Jn+8D5NYrI;6=_-O?7Zzm z!oAtYjGaWJ7aPBuNE%-s8e}e6+K;);8k(nA`oFEj-k^UE6yjl1d1uyGl%W%2XiIuD9N!;tx1C-$+);Gl)JFWib$*3;dZ^>==g%|}x2=pGZ17e=c{Mf)^gxzS zk^#~P@R3y zX5R=Pqn<KSJ%$*=!^M202c9Q(hheT-LIas6$;es_$%gPi z^%SPz*O3$BKP@uIewT;1x zNJ@E&(*u&up#witv#T|3b+QbCPr8m`k33kHCEt|%96}ymF?QJeY*a?nV^LNi5a-d` zl2ZpI>D84GatrP2En-JQY7f=oK{{?SJpG^?H?i8AU!4$X%QBSOyN0`t;w4i(g*pSi ziZ**iT2%D><_?c^Bo&DBTOUQBH*8R&3K4RWNmacrdrwJ~{assW81}8sD5+ZWOHB_@ z_~4%eJ|z`YRSmkON2AySVJ@jRq4;da;3BP;f|Qwrq`&12M~;zbQl~!ISt> zu^Yb)OJYr|MhpX!fw2K_JN87qAUn#|drZ;C(uj$=<0G)9caw#!>Oj>pBJ;d|`r12I ziq5E_`Uf2*GO665Bgvd1k-c_-@+@+(&MRfHJK{ogAzZz|e67(n0TY}8mbxC>^-{avI)hfUa9gM;fsph`&)^dT7J7%%{ri z%hHB<2eD@8p0_atJZshMD(f|zqOB9jJFQBw$(;cT{{$@od2 zKn2Xych&is=GSsJ|IrOO$2C#A$p#rWV?#pF_MXxr8Dhjkfv}z^H_L7J@LTnu(43YT zZ<13$iJ8i+(g}>y04z!s-AU;0l?8JA7-IFr??<5^S2H?8TDk2l8t0@EbqZAloq-v+sO=Z_%(~Z~bA$DQvbC zHvAt!2S;Io4jXxZ(YqFl0TPgSS?T0uxB-dRlI67rgCiHAFP++aTr4>VkBmcI@~!H; z6%o?C-FU0%;6JWjid*r#Y`bQK#+av9?Jq++ITP7)_tQ9~P7igEsplS}Y(*){)Q`uHF=w=-@ueyhie*JEOfsYRKjT9a0_}Zo&g% zg~Ils)MU?S-a<&G7l+z{3)Yg7ONx)fykKEQ6=xwkV&1FvK^*%^E`8eXLL$n{8e&g@NXwaF^F&o z%h`L%$e69^9djf+sAXGQkY{vYp}nG2r*0el`@q{dwHkul?CR^yGo!+?TtYimYTIIt z+e$y}wBK&NZ2|a7=fQn&#l(Dvs>;daN?U>aRebtIqw)K}X6B%y{RwrI59d!Einp&? zumd9vZH-LM3@Ktw*+7c$52xi5Etj1f%?DV-8X1yyb}~_WDcS+hieaFj`FA5)X$CTp z5SxwJM9JziBi=@SQoS!-3IsU%8O)c>;4z6J=7hQI&E+xf1Pkyx8vtJ(8u&mv+-U3h z=aOsL8HN&*pz)NTYUjpygfZn5Lzk&$r-{^-#p6xivFh{E$u{bqS}0?%mRz|9koIJ_W{TwC|z#WNdAPk%~DMQQQSVEF6J zRfT)n?7GWUc%$p@c{F(2_y6Q;&{`<&a?xb)NgxMj`rfN+G8oGxPl?-9qvzXB7$Kho zNHtodrM22K?(~4#lk%-}JO$6v35TQY=I>`8-$PkgnL-+_y5ieqzqv0~PmW*|;oUL0 zp-?_Rpi3nIOoefGilUyZ8-3XCqvE`9e#;(g02L>&^f_T2k>W}Ls!ujRx)21!p2s}< zzw>l{sqn0Ce_Eaja%7A$nZQckfuBE};q^N|ec zw2RgRIC;A{9YWC#ZbogpkY6oVc$@{?PKS|mIIzofs^1XU0gd*eE80NsdJEn>Ui_?o zFRFueS$)xBl})SFF9*L;Q}>&x5BH}N+We{8-QhqvBVyv`U&KB(@bwekGqKx@ei}Ug z(0k+uFN`kK0_ReEGA?-hemrhErmePlYI^aZsIZMuOYADmrR>9QMh{{dF;g81ZDRb9 zN&1UZHdut2=FznN`0B)Y<3}Wn#_v{?O?W6}AO0*^7oB`ZQYWwqnvXov<83e;r4J)d z?KA-}vpRq+a5olO zo_G{PL8P0|0U_lx3448v4zyFuT6b^;dB8Wo}4Ub38~T=8SLIsNNqackx7){ zJs9@=LKBr%V8=v?m4-%|k&{VJ0n6A3bzbPPt}WngEMj{kSO#=q1mZE$#eGu^r4EHe zgci})hdFVFbJ4`-hkOm<{xxocX;0*v-F@^=;~arSW$cH9LT* z<#m42F!bgG(9jqDc)UYn@zR#dqQ$2yUcm^YrSNJUyisxSZL!|gTW zz|6WbT)qZo(|NXLDYLrz=(Z1Ue|O=vJoV--)sJjc#>!va0Ds*C9?Q-1|40+rCSYQ- zueY59X7=N0V65$lDt~?o1FX{O{Ek~6Ch+be%oZ>;np^tbv0O=+D^|)b%tD4~>Yr}? zc*~!r`RS{!7ywUeAjz8j*>NWRp4oo+;;E({ORBSG z3SIRq{O#Z0`#))M1Ezf1MX~9V4cEUuPR+A&#(TN82!%) z{?oqm)wjsJ@F zeo^(muA?8cHwya2lm8Vn_NRNkc=G>1FFyo!Ujp?Hr1%dmz69!j zQog?uf_@3q{|c4pCu9?Wn7jRyLTO#d@yP;a)pJL&~Pqd2IE9Th9S_4>))iIcoy1LlD`HX2-+=0#Y9u`#i@vk7afmYgNus|~o z0^lSWPYk@+C#r3vq|=O6Yk74hC!$uUoA|S?JfUt_!)mLf zQ?$>^lY-VJ6bh4$E@ z>oqr)itQAvBMVDR1(wO~eTU~h05fShSPzFZr;RYza?0-37}BA=ukHKUf+>(tdb|Gj zR{#3J;Fa2U!sle##6k`oV7XE1oy3Ptp)=3+1;dFUj=8S|tbx zzJFm}h8IQ2D)1^c(?9P0rF{Ib#gwM1{fdd-JXdtU25^dn*R%50WsShX3JSDrgL;?H ziTx9!<*4E5tDYjTU*7EQ(Q+=8o(XiCv4v3`W|aB4m1)R*7$aZz@mW8A9ZNEGsvkB6 zmhq7sm80lB7%io=tywURHJta6Nek=bRW+D&`SV1GcXdJ@UHdw56)J6 zYwdX$=1?v-n+5DbR?}<|B!9z}msD->rS0fXZKA|0an*FsUCOu_!MI zK#toYy6iCpn9?W|ktFLOh#NF3k*Cn6}!70cPc6$w$g>Xe6kNat|%*VbRI{pc}`FB(?KIa&q7?iIV73a zq5Bpe)?TPLU|eSHY3TBaTk5pmxUls}PFkQ6aca!DHSwrWktW7P)CIkqZ4Qcp&%B3V zs?F-o_&NehGkj&F4J@wiIq$Hkq4qZWTM7^?II^7XrHP$M zpf~SHc$H1B%O0WIcgz#CELpmAGxi?Y1|(B41Nv^%3iDK?JqO@2w>7Eu*LM>j&>bXfmZ3_np_8o2CPZb-=kbDPhb zb3!V17%)vl@U4z_C*%NbUNHt*FsS%U)omZLpd0(Xf37CQhQXQ=Yxij-t9%~<$n4L& zR+-e$jQt$>kaQ(+3iI-u7N#K#vO;5VB6&E)QhVl_894N zl4D*(jb7w9Y2g!wi4=SRaNI3}@%GqUD>mxt%vdqA(B^w2z_y)H!ORL#HBxz!4oV&o zQu?dslu%%LEa&)T9*?e0&F0IZlIg$ewhW2bYDcRd)fi%FVA*XC986?t|4aD?2^~KI z7%5qY`}t3dl+PbLquvhlSt9=JcOiJ5{08tQ)pfiL;edxLZ0#diB|I}(FY;M5w8d|X zCY&yzkv2@NwRooC72)A=FRCAO&q(o{1hORizMPFL)9vnnqpRuj6`wK83#nE6OlM;C zVS@>G8Cu>>@Y?rNp-LB*^gXnwQ0GkC)WLl@I4fo+w5$aI9<-iFZUqsfeb`ARsOn); z=3>eRAq3mU0T5Gv1c{)d10xr@KK3dC4RoGMGmSE<^%pV&J#5$$F9BpP$twWFNpe$X zZeT`|)BnwM^D>>tH_h#i?fk0+n&^260m_S?qc-LAKb$VgG_Ib0Q2H1@ay0Tbt(Gtp zFFzk=mcoQpU2K@)lXWvIhbOztbK=OuS7(Z!t}4Fd{!l+4QZBq>*(JGFN!y};*WXC& zLz$hZlelLW=A?;r*>=Rid=`IOTzWV#v+9R-qvifO;w0`Qu zz6Xx**^3|;3`Q!*wE~j!5AtF6}MBs@N?jA(fx@@1dL(Tmy zzRkyds`)*blvSYaxRcGyFn2yv*1CPC7rmMz-s96`*r?O3!Uj1#sLai_*GVYN_FkFX zc~q+kvn;#kzSM<=R~U+hxctE+_?bGj2Sb4 zQ?58Xd)_6PRGf{ipQ3N4C1hLIGh8k!EOE0%+%nfu1IUWa=v;Wiw6K+Z?iW0meg#|I zM4Ad|^5#{ia{?7JuE!)A@xtjY4MM3=U63&NY9V+=QXWuXa;V%?ktE3EfNllkIr>5; z?F(s@I$Uf9jXMeF*pm2GjfhL2owswO)=!duV0n)nT(3v2LT^opIG=%y(ZltSwH)HY z8_FkV?-5iiTd2aGAj|pAO!q;H3pEK|@G=;*&3(gZ6AAI$RVveKIJpdWj! zE=xcDZQ~X7#oTE7d`2RptTm%wryHZW#n9Y(@utA!VND%dZXNPuki%W>p#~SriKw3M zCcl}h<}1wOu0>Ite^%s(-V54l?Wiii9;|{LM|3+DBQ_CE`;bg zGRiTV_`VadX~W$3Z!ASGt}()%&-`8>o7mEr?iL|E&~cLTR>&j9Y1vJ=2u$fDk_f+( z`N$p1==zls?66NZ?fOIa%jYeh`O zSjz~XEa-Ho0?V+cF2*xJkUK>OYF9fDC2?(JmmpI{a7zF`DvzT&6m>bb9V;YcCs?f$LA?>e6*YLQ+4amLuW21-AE0m11^UVg@~!CfvOwZAeU`s-g`JLSlz5VjzQ= z`&8oh`ibqTT_Q^F&xb=09q7}yfw;qKUT z)ci}K2H2}(+G5EkJ?hzjlXcy(75u@+E?V3SxFVaa3PG9!_mN$7mxs94k)PT@a2tGd z_=t|+xf;UGGk8h1k$GUWqah+PyGhk289Ev-lrvU1dt*^&8ViGJ?8at_J6p^J4=Pn1 z@^b>83||c{_8EWl;}K|MK5Qp}Euf~IUIQ1|#P80*-8VVm0Y~G=O{MoA#!FQhhoSw+ zc|+B8(>qN%V4JbDvAw)Io{eSt-fTf1?AOq6s$uZTCjpJqx%4x`@g;EcP(SQ_HZt+& z9x^p*M{ubUBn}#|ju7MSb(!|u*M^UqPpy@^#1;Om#@vfn15MC?1hU9$(hV z6BA`j(y74woG46(;_1aXmeEO{&ScUV_DLJUs6fLOiFswkD?qtYf)imS;g|F=q!z_J z!FFF>RMe`wyxqXz&zUP7g!Y&Nak|zLACfjtda8}+>+Z>VAuv=F>5)NZRB+esJ|br= z!M@VFOBI>iid=}@9aHaRb9~rDjRQt+^``al)mq6e5vc`2iUp2mX4D&+74!(VYbV#f zf2AR~o4^nPr&u8@wiO=AA=KSBi|v%y?76B1z;Q&856vKjSTF_^UU@K$UoSa<#Ch=9 zm>D0xFdRuuLAs{zT^li)o}WGEab_k7F&s}=m?@S=Zp3?{^}%Qy1rWob7Vhx?nTBol zoYn$pR^c^!G7fzSRXfz^#^3$ufg?46B*dYv5CJ*YmuK4q*7931mH7>7Gf48QZ~4o* zwgj=GF;)Ge!zAaaJ3)}rw}3lu6ZL^IWy5Y@f9xkf#l0(r8zdpNCV{+qy9gBAA~2d| zzIjyBa{ZRT!+bG)D}P8~I47IhkTatt3qiTe$%-33n@W(za({hhjDK zdVY|X{XMZ)ZxC$6A>6X12r#rqsm_8}NVjzd{>*m(-$)H=QQ{Z9oPu*%MfT?MgPQkJygB=6i&r>YPlar#4Qcz)peZ9gsK>L)jYiaWMB~`NKSZar+05?_oh)8!$h$#o3L~AV>H9me^ zD5K7YRBnd_FebK~_jQe!IuPj4iDx^*e!ZqGDE9D5-iIs9Zod7fcAX&Bm{nJ0Q*YQy zN8TlugpZeL1qcH?=r1MH-%qp{B9NeS(0tBbvueLt($#aR^e_=WB3F3=9?b7!4zWq1P+|v5Wu2eR^#-sz)3P)qae4PIY(K2`Dwg=#X5Rl(zg2k zPF4DYq{4h%QOBt$n}hQEG3O#Ew9xQYavRH~e-H>M``ZYm2Z)4%b0q$J=TN6QB(3PI zM{%=Z_?${&D`~E@?nM9O^h^e4&uO|#q^*cwG$_w82sU7>x^0B^YOAyAV{(U?;%mo? zO~*aPJFa0(PB$_qWPKt52`(h~wbu7k6oW z6>J;G_Sy4QEzz&`?v2t$LKT}6Hl=m9e}XYp1d+(&LsiG%C_gNtDp6)*<0y5FJVVLx)*230L!nAgq(En);zy=QCIb{7Dwru3sfi^6FHSON*f&vzIUTF6^7G z^r2m#<2t8G;%pMacrE?6T9Z0uosg*>f`cZX)wPk#pSpSF`Or3Tg6E#GbL)f+CX@uK z#WElWT?H6?_~P(=)u;EB*v$f{LWS*800vZiG%ZB)JTh>lf#o`!)gu;lo;siZ-DXx; z(B-(@aBUd>BvOQh2OrXOi!$n%cjmI7-xBGsff5;$ok@2}f!Z)od)Nzl%uXx(4@||& zb*%!#S4EeW`PB2G3Iy-=5gn{$VIY`D{+Ec6`+hIYMgq^dauTnOpg&AWr^f>OADj4Zg zoMhD-!u}e!Q)wli2wnQoUo&?RDlFGo*qTc(mu$~T)}}QScH>j?g!g+^xVt9 zR@XCMf`64oh{kyYdf2{n5KYO9h_z_}=V!a=zk4irpvR@frUsa&kV9HP*kjyJh_P6Upv$YxT3J z9-Ud&G`dGeu!^J&2|A0j5Se1Dd}gET+d4a+4^gk(WfY&)6f-AcN8A9v`Jk`G%$EMx zO3}>*3mUw?({^YH8S~_*i$4}lZGoBu|FuuSmJd79SJae+)8R)~P%z`bGh99N?Z`1o zCU26I!N{jY0%gPs%Vb7D(B5Gt%io8HOEXcLsIqhWC_f!&*%Jyg-ItI;NJLI{d1&II zGK1vbp&A|~<2~!U-P&-{bSE+ui146?Z;|V+Rnbze9V;kibapli$4tIa;^N^sKq_l` z?Is0)XlV)Ph8YZ#6Q$1DXa4}it16^a2KJikqCNuRtsYha;(5{U46@+8ZOZ^)3$Xb& zMSj?!-;$#x@vJ#cm^71|3J|5uk8-t7;Gi;opQSF%)Df z+V+uE7nCA%iC_!>^68O8B=qoZyw*0iDSmkYj97diA)ckjbg)}*%U7eKsxbO%pctw* zI<_+;^S+CiWZsRFBv3Ehygx7Ko$uqORJWK>EY|VleEA;Dm3Q%GF9kicll>>aevEM{ zL~ZO!5)P0YlqfF#Wn zS7x*ubb)T|#B*R3-YdDOIrS$n+ptoSbysME%{>ODlWasq+0G)3&;d<`^b{?6sw+mX zDI_x@l2<~?=&f(;FGj7g#h8=bTb|)~U3uTl_@HV5Xuz9SG~Kn3im&k`(yNd7OS9`b zqq33xLiJCRi+z6^)-;~bi)LldH{Y5$bP=VS&;8~^ho(92sC96AmVwl<6W1T&Ddz3Y z8Y^&!GiJffRkI3NlLaG3=NvdGL5l&bi?#~ps2E?3(F|@CwX$1T)A*pkRi*bkNFBSy zjx$>4=3Xka%|j(NXS;1mGvOmZVvEOfaGauHh5-U7XxVF=vq=3bwO%>g8sA%# z0TUtucmE*T&|aXFDz=4<<9e1b{3oS2m^}_-|e02W{=GdDCvaN4@{-B~9V=CF{%*8W95(JY_y6NtJKek6avja{mg{Kh%+yfPZI!m1nOU0RVUyGp zkrYpW=vwzWD$Me%!OAI_BAEgnKx(CwC-MX;icLgPL;?f^1izQH?QZw|`8|H$$LHVQ z@4p@)*Tr?cp6}P|`8qqO)Tc**xqmi?K|x-=TXT}3IZw6=u8jzlEirvnnyoJ)B9kV= zAt_@Ft79;w4~VyQ?dzd#J0K!yq&~KwWpxl21Q^40#qsSTV2E*+>V(&|G=TR+WJ@I0 z*n7X)1A%*cc;p6{gJVUQGRb8E9lii(#6*?o%u28%8hyw{WStx}KjAw{NvoLgY?x3W z>#FAMg&CA~!HI?Ot%6!d`T;K1L(>XC!OU;aR{&y%XD1@SxFQAjahPHq8KdqV8^L`y zXs)-`vk7|TaU!0{OE@mZ8_T=eE`?tC{;uG9b)*>UwsQOD>kd)AoyPTkeH(etQ8fS- z6b1X4{K+=PhPXO9+Q(?`2Qxs_rI!(No(X=VsEVf3iwD%h`Y5oML`}<{_0&K)#EmWE z=r-z#Bnt={ghEZ454AH`zJwPm_lHd43pA3ndb`dCF2&Z+v;NCSsG&>`3`vLSX^$

      -aWHSAt@m$G+5k1QPyI2}%<1 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­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%0DWnY|?j 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