Merge branch 'feature/fitbit_sleep' into develop
commit
73090e4bee
24
config.yaml
24
config.yaml
|
@ -321,19 +321,19 @@ FITBIT_DATA_STREAMS:
|
|||
# AVAILABLE:
|
||||
fitbitjson_mysql:
|
||||
DATABASE_GROUP: MY_GROUP
|
||||
SLEEP_SUMMARY_EPISODE_DAY_ANCHOR: end # summary sleep episodes are considered as events based on either the start timestamp or end timestamp.
|
||||
SLEEP_SUMMARY_LAST_NIGHT_END: 660 # a number ranged from 0 (midnight) to 1439 (23:59) which denotes number of minutes after midnight. By default, 660 (11:00).
|
||||
|
||||
fitbitparsed_mysql:
|
||||
DATABASE_GROUP: MY_GROUP
|
||||
SLEEP_SUMMARY_EPISODE_DAY_ANCHOR: end # summary sleep episodes are considered as events based on either the start timestamp or end timestamp.
|
||||
SLEEP_SUMMARY_LAST_NIGHT_END: 660 # a number ranged from 0 (midnight) to 1439 (23:59) which denotes number of minutes after midnight. By default, 660 (11:00).
|
||||
|
||||
fitbitjson_csv:
|
||||
FOLDER: data/external/fitbit_csv
|
||||
SLEEP_SUMMARY_EPISODE_DAY_ANCHOR: end # summary sleep episodes are considered as events based on either the start timestamp or end timestamp.
|
||||
SLEEP_SUMMARY_LAST_NIGHT_END: 660 # a number ranged from 0 (midnight) to 1439 (23:59) which denotes number of minutes after midnight. By default, 660 (11:00).
|
||||
|
||||
fitbitparsed_csv:
|
||||
FOLDER: data/external/fitbit_csv
|
||||
SLEEP_SUMMARY_EPISODE_DAY_ANCHOR: end # summary sleep episodes are considered as events based on either the start timestamp or end timestamp.
|
||||
SLEEP_SUMMARY_LAST_NIGHT_END: 660 # a number ranged from 0 (midnight) to 1439 (23:59) which denotes number of minutes after midnight. By default, 660 (11:00).
|
||||
|
||||
# Sensors ------
|
||||
|
||||
|
@ -386,7 +386,7 @@ FITBIT_SLEEP_SUMMARY:
|
|||
PROVIDERS:
|
||||
RAPIDS:
|
||||
COMPUTE: False
|
||||
FEATURES: ["countepisode", "avgefficiency", "sumdurationafterwakeup", "sumdurationasleep", "sumdurationawake", "sumdurationtofallasleep", "sumdurationinbed", "avgdurationafterwakeup", "avgdurationasleep", "avgdurationawake", "avgdurationtofallasleep", "avgdurationinbed"]
|
||||
FEATURES: ["firstwaketime", "lastwaketime", "firstbedtime", "lastbedtime", "countepisode", "avgefficiency", "sumdurationafterwakeup", "sumdurationasleep", "sumdurationawake", "sumdurationtofallasleep", "sumdurationinbed", "avgdurationafterwakeup", "avgdurationasleep", "avgdurationawake", "avgdurationtofallasleep", "avgdurationinbed"]
|
||||
SLEEP_TYPES: ["main", "nap", "all"]
|
||||
SRC_SCRIPT: src/features/fitbit_sleep_summary/rapids/main.py
|
||||
|
||||
|
@ -397,31 +397,27 @@ FITBIT_SLEEP_INTRADAY:
|
|||
RAPIDS:
|
||||
COMPUTE: False
|
||||
FEATURES:
|
||||
LEVELS_AND_TYPES_COMBINING_ALL: True
|
||||
LEVELS_AND_TYPES: [countepisode, sumduration, maxduration, minduration, avgduration, medianduration, stdduration]
|
||||
RATIOS_TYPE: [count, duration]
|
||||
RATIOS_SCOPE: [ACROSS_LEVELS, ACROSS_TYPES, WITHIN_LEVELS, WITHIN_TYPES]
|
||||
ROUTINE: [starttimefirstmainsleep, endtimelastmainsleep, starttimefirstnap, endtimelastnap]
|
||||
SLEEP_LEVELS:
|
||||
INCLUDE_ALL_GROUPS: True
|
||||
CLASSIC: [awake, restless, asleep]
|
||||
STAGES: [wake, deep, light, rem]
|
||||
UNIFIED: [awake, asleep]
|
||||
SLEEP_TYPES: [main, nap]
|
||||
INCLUDE_SLEEP_LATER_THAN: 0 # a number ranged from 0 (midnight) to 1439 (23:59)
|
||||
REFERENCE_TIME: MIDNIGHT # chosen from "MIDNIGHT" and "START_OF_THE_SEGMENT"
|
||||
SLEEP_TYPES: [main, nap, all]
|
||||
SRC_SCRIPT: src/features/fitbit_sleep_intraday/rapids/main.py
|
||||
|
||||
PRICE:
|
||||
COMPUTE: False
|
||||
FEATURES: [avgduration, avgratioduration, avgstarttimeofepisodemain, avgendtimeofepisodemain, avgmidpointofepisodemain, "stdstarttimeofepisodemain", "stdendtimeofepisodemain", "stdmidpointofepisodemain", socialjetlag, meanssdstarttimeofepisodemain, meanssdendtimeofepisodemain, meanssdmidpointofepisodemain, medianssdstarttimeofepisodemain, medianssdendtimeofepisodemain, medianssdmidpointofepisodemain]
|
||||
FEATURES: [avgduration, avgratioduration, avgstarttimeofepisodemain, avgendtimeofepisodemain, avgmidpointofepisodemain, stdstarttimeofepisodemain, stdendtimeofepisodemain, stdmidpointofepisodemain, socialjetlag, rmssdmeanstarttimeofepisodemain, rmssdmeanendtimeofepisodemain, rmssdmeanmidpointofepisodemain, rmssdmedianstarttimeofepisodemain, rmssdmedianendtimeofepisodemain, rmssdmedianmidpointofepisodemain]
|
||||
SLEEP_LEVELS:
|
||||
INCLUDE_ALL_GROUPS: True
|
||||
CLASSIC: [awake, restless, asleep]
|
||||
STAGES: [wake, deep, light, rem]
|
||||
UNIFIED: [awake, asleep]
|
||||
DAY_TYPES: [WEEKEND, WEEK, ALL]
|
||||
GROUP_EPISODES_WITHIN: # by default: today's 6pm to tomorrow's noon
|
||||
START_TIME: 1080 # number of minutes after the midnight (18:00) 18*60
|
||||
LENGTH: 1080 # in minutes (18 hours) 18*60
|
||||
LAST_NIGHT_END: 660 # number of minutes after midnight (11:00) 11*60
|
||||
SRC_SCRIPT: src/features/fitbit_sleep_intraday/price/main.py
|
||||
|
||||
# See https://www.rapids.science/latest/features/fitbit-steps-summary/
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
# Change Log
|
||||
|
||||
## 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.
|
||||
## v1.1.1
|
||||
- Fix length of periodic segments on days with DLS
|
||||
- Fix crash when scraping data for an app that does not exist
|
||||
|
|
|
@ -30,7 +30,7 @@ This is a description of the format RAPIDS needs to process data for the followi
|
|||
| 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|
|
||||
| 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 |
|
||||
|
|
|
@ -24,10 +24,13 @@ The following is a list of the sensors that testing is currently available.
|
|||
| 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 |
|
||||
|
||||
|
@ -242,3 +245,51 @@ Checklist
|
|||
|weekend|OK|OK|fitbit|
|
||||
|beforeMarchEvent|OK|OK|fitbit|
|
||||
|beforeNovemberEvent|OK|OK|fitbit|
|
||||
|
||||
## 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 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
|
||||
|
||||
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|
|
||||
|
|
|
@ -8,6 +8,10 @@ Sensor parameters description for `[FITBIT_SLEEP_INTRADAY]`:
|
|||
|
||||
## RAPIDS provider
|
||||
|
||||
!!! hint "Understanding RAPIDS features"
|
||||
[This diagram](../../img/sleep_intraday_rapids.png) will help you understand how sleep episodes are chunked and grouped within time segments for the RAPIDS provider.
|
||||
|
||||
|
||||
!!! info "Available time segments"
|
||||
- Available for all time segments
|
||||
|
||||
|
@ -29,23 +33,21 @@ Parameters description for `[FITBIT_SLEEP_INTRADAY][PROVIDERS][RAPIDS]`:
|
|||
|----------------|-----------------------------------------------------------------------------------------------------------------------------------
|
||||
|`[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 grouped them into 2 `UNIFIED` sleep levels: `awake` (`CLASSIC`: `awake` and `restless`; `STAGES`: `wake`) and `asleep` (`CLASSIC`: `asleep`; `STAGES`: `deep`, `light`, and `rem`).
|
||||
|`[SLEEP_TYPES]` | Types of sleep to be included in the feature extraction computation. Fitbit provides 2 types of sleep: `main`, `nap`.
|
||||
|`[INCLUDE_SLEEP_LATER_THAN]`| All resampled sleep rows (bin interval: one minute) that started after this time will be included in the feature computation. It is a number ranging from 0 (midnight) to 1439 (23:59) which denotes the number of minutes after midnight. If a segment is longer than one day, this value is for every day.
|
||||
|`[REFERENCE_TIME]`| The reference point from which the `[ROUTINE]` features are to be computed. Chosen from `MIDNIGHT` and `START_OF_THE_SEGMENT`, default is `MIDNIGHT`. If you have multiple time segments per day it might be more informative to set this flag to `START_OF_THE_SEGMENT`.
|
||||
|`[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 |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). Both `[LEVEL]`and `[TYPE]` can also be `all` when ``LEVELS_AND_TYPES_COMBINING_ALL`` 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). Both `[LEVEL]` and `[TYPE]`can also be `all` when `LEVELS_AND_TYPES_COMBINING_ALL` 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). Both `[LEVEL]` and `[TYPE]`can also be `all` when `LEVELS_AND_TYPES_COMBINING_ALL` 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). Both `[LEVEL]` and `[TYPE]`can also be `all` when `LEVELS_AND_TYPES_COMBINING_ALL` 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). Both `[LEVEL]` and `[TYPE]`can also be `all` when `LEVELS_AND_TYPES_COMBINING_ALL` 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). Both `[LEVEL]` and `[TYPE]`can also be `all` when `LEVELS_AND_TYPES_COMBINING_ALL` 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). Both `[LEVEL]` and `[TYPE]`can also be `all` when `LEVELS_AND_TYPES_COMBINING_ALL` is True, which ignores the levels and groups by sleep types.
|
||||
|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]`:
|
||||
|
@ -68,8 +70,8 @@ Features description for `[FITBIT_SLEEP_INTRADAY][PROVIDERS][RAPIDS]` RATIOS `[W
|
|||
|
||||
|Feature |Units |Description |
|
||||
|--------------------------------- |-------------- |-------------------------------------------------------------|
|
||||
|ratiocount`[TYPE]`within`[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]$)
|
||||
|ratioduration`[TYPE]`within`[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]$)
|
||||
|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]`:
|
||||
|
@ -80,26 +82,21 @@ Features description for `[FITBIT_SLEEP_INTRADAY][PROVIDERS][RAPIDS]` RATIOS `[W
|
|||
|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]$)
|
||||
|
||||
|
||||
Features description for `[FITBIT_SLEEP_INTRADAY][PROVIDERS][RAPIDS][ROUTINE]`:
|
||||
|
||||
|Feature |Units |Description |
|
||||
|--------------------------------- |-------------- |-------------------------------------------------------------|
|
||||
|starttimefirstmainsleep |minutes |Start time (in minutes since `REFERENCE_TIME`) of the first main sleep episode after `INCLUDE_EPISODES_LATER_THAN`.
|
||||
|endtimelastmainsleep |minutes |End time (in minutes since `REFERENCE_TIME`) of the last main sleep episode after `INCLUDE_EPISODES_LATER_THAN`.
|
||||
|starttimefirstnap |minutes |Start time (in minutes since `REFERENCE_TIME`) of the first nap episode after `INCLUDE_EPISODES_LATER_THAN`.
|
||||
|endtimelastnap |minutes |End time (in minutes since `REFERENCE_TIME`) of the last nap episode after `INCLUDE_EPISODES_LATER_THAN`.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
!!! note "Assumptions/Observations"
|
||||
1. Deleting values from `[SLEEP_LEVELS]` or `[SLEEP_TYPES]` will only change the features you receive from `[LEVELS_AND_TYPES]`. For example if `STAGES` only contains `[rem, light]` you will not receive `countepisode[wake|deep][TYPE]` or sum, max, min, avg, median, or std `duration`. These values will not influence `RATIOS` or `ROUTINE` features.
|
||||
2. 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 when `LEVELS_AND_TYPES_COMBINING_ALL` is True or when computing `RATIOS`.
|
||||
1. [This diagram](../../img/sleep_intraday_rapids.png) will help you understand how sleep episodes are chunked and grouped within time segments for the RAPIDS provider.
|
||||
1. 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.
|
||||
2. 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.
|
||||
3. 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.
|
||||
3. 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
|
||||
|
||||
!!! hint "Understanding PRICE features"
|
||||
[This diagram](../../img/sleep_intraday_price.png) will help you understand how sleep episodes are chunked and grouped within time segments and `LNE-LNE` intervals for the PRICE provider.
|
||||
|
||||
!!! info "Available time segments"
|
||||
- Available for any time segments larger or equal to one day
|
||||
|
||||
|
@ -120,94 +117,40 @@ Parameters description for `[FITBIT_SLEEP_INTRADAY][PROVIDERS][PRICE]`:
|
|||
|----------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
|`[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 grouped them into 2 `UNIFIED` sleep levels: `awake` (`CLASSIC`: `awake` and `restless`; `STAGES`: `wake`) and `asleep` (`CLASSIC`: `asleep`; `STAGES`: `deep`, `light`, and `rem`).
|
||||
|`[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|
|
||||
|`[GROUP_EPISODES_WITHIN]` | This parameter contains 2 values: `[START_TIME]` and `[LENGTH]`. Only `main` sleep episodes that intersect or contain the period between [`START_TIME`, `START_TIME` + `LENGTH`] are taken into account to compute the features described below. Both `[START_TIME]` and `[LENGTH]` are in minutes. `[START_TIME]` is a number ranging from 0 (midnight) to 1439 (23:59) which denotes the number of minutes after midnight. `[LENGTH]` is a number smaller than 1440 (24 hours). |
|
||||
|`[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 `LEVEL` sleep episodes. You can include daily average that were computed on weekend days, week days or both depending on the value of the `DAY_TYPE` flag.
|
||||
|avgratioduration`[LEVEL]`withinmain`[DAY_TYPE]` |- | Average ratio between daily `LEVEL` time and in-bed time inferred from `main` sleep episodes. `LEVEL` is one of `SLEEP_LEVELS` (e.g. awake-classic or rem-stages). In-bed time is the total duration of all `main` sleep episodes for each day. You can include daily ratios that were computed on weekend days, week days or both depending on the value of the `DAY_TYPE` flag.
|
||||
|avgstarttimeofepisodemain`[DAY_TYPE]` |minutes | Average start time of the first `main` sleep episode of each day in a time segment. You can include daily start times from episodes detected on weekend days, week days or both depending on the value of the `DAY_TYPE` flag.
|
||||
|avgendtimeofepisodemain`[DAY_TYPE]` |minutes | Average end time of the last `main` sleep episode of each day in a time segment. You can include daily end times from episodes detected on weekend days, week days or both depending on the value of the `DAY_TYPE` flag.
|
||||
|avgmidpointofepisodemain`[DAY_TYPE]` |minutes | Average mid time between the start of the first `main` sleep episode and the end of the last `main` sleep episode of each day in a time segment. You can include episodes detected on weekend days, week days or both depending on the value of the `DAY_TYPE` flag.
|
||||
|stdstarttimeofepisodemain`[DAY_TYPE]` |minutes | Standard deviation of start time of the first `main` sleep episode of each day in a time segment. You can include daily start times from episodes detected on weekend days, week days or both depending on the value of the `DAY_TYPE` flag.
|
||||
|stdendtimeofepisodemain`[DAY_TYPE]` |minutes | Standard deviation of end time of the last `main` sleep episode of each day in a time segment. You can include daily end times from episodes detected on weekend days, week days or both depending on the value of the `DAY_TYPE` flag.
|
||||
|stdmidpointofepisodemain`[DAY_TYPE]` |minutes | Standard deviation of mid time between the start of the first `main` sleep episode and the end of the last `main` sleep episode of each day in a time segment. You can include episodes detected on weekend days, week days or both depending on the value of the `DAY_TYPE` flag.
|
||||
|socialjetlag |minutes | Difference in minutes between the avgmidpointofepisodemain (average mid time between bedtime and wake time) of weekends and weekdays.
|
||||
|meanssdstarttimeofepisodemain |minutes squared | Same as `avgstarttimeofepisodemain[DAY_TYPE]` but the average is computed over the squared differences of each pair of consecutive start times.
|
||||
|meanssdendtimeofepisodemain |minutes squared | Same as `avgendtimeofepisodemain[DAY_TYPE]` but the average is computed over the squared differences of each pair of consecutive end times.
|
||||
|meanssdmidpointofepisodemain |minutes squared | Same as `avgmidpointofepisodemain[DAY_TYPE]` but the average is computed over the squared differences of each pair of consecutive mid times.
|
||||
|medianssdstarttimeofepisodemain |minutes squared | Same as `avgstarttimeofepisodemain[DAY_TYPE]` but the median is computed over the squared differences of each pair of consecutive start times.
|
||||
|medianssdendtimeofepisodemain |minutes squared | Same as `avgendtimeofepisodemain[DAY_TYPE]` but the median is computed over the squared differences of each pair of consecutive end times.
|
||||
|medianssdmidpointofepisodemain |minutes squared | Same as `avgmidpointofepisodemain[DAY_TYPE]` but the median is computed over the squared differences of each pair of consecutive mid times.
|
||||
|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'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.
|
||||
|rmssdmeanendtimeofepisodemain |minutes | Square 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.
|
||||
|rmssdmeanmidpointofepisodemain |minutes | Square 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.
|
||||
|rmssdmedianstarttimeofepisodemain |minutes | Square 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.
|
||||
|rmssdmedianendtimeofepisodemain |minutes | Square 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.
|
||||
|rmssdmedianmidpointofepisodemain |minutes | Square 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.
|
||||
|
||||
|
||||
|
||||
!!! note "Assumptions/Observations"
|
||||
1. These features are based on descriptive statistics computed across daily values (start/end/mid times of sleep episodes). This is the reason why they are only available on time segments that are longer than 24 hours (we need at least 1 day to get the average).
|
||||
1. [This diagram](../../img/sleep_intraday_price.png) will help you understand how sleep episodes are chunked and grouped within time segments and `LNE-LNE` intervals for the PRICE provider.
|
||||
1. 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.
|
||||
5. `avgstarttime...` and `avgendtime...` are roughly equivalent to an average bed and awake time only if you are using shifted segments.
|
||||
1. 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.
|
||||
2. Even though Fitbit provides 2 types of sleep episodes (`main` and `nap`), only `main` sleep episodes are considered.
|
||||
3. How do we assign sleep episodes to specific dates?
|
||||
|
||||
`START_TIME` and `LENGTH` control the dates that sleep episodes belong to. For a pair of `[START_TIME]` and `[LENGTH]`, sleep episodes (blue boxes) can only be placed at the following places:
|
||||
|
||||
<figure>
|
||||
<img src="../../img/features_fitbit_sleep_intraday.png" max-width="100%" />
|
||||
<figcaption>Relationship between sleep episodes and the given times`([START_TIME], [LENGTH])`</figcaption>
|
||||
</figure>
|
||||
|
||||
- If the end time of a sleep episode is before `[START_TIME]`, it will belong to the day before its start date (e.g. sleep episode #1).
|
||||
|
||||
- if (1) the start time or the end time of a sleep episode are between (overlap) `[START_TIME]` and `[START_TIME] + [LENGTH]` or (2) the start time is before `[START_TIME]` and the end time is after `[START_TIME] + [LENGTH]`, it will belong to its start date (e.g. sleep episode #2, #3, #4, #5).
|
||||
|
||||
- If the start time of a sleep episode is after `START_TIME] + [LENGTH]`, it will belong to the day after its start date (e.g. sleep episode #6).
|
||||
|
||||
Only `main` sleep episodes that intersect or contain the period between `[START_TIME]` and `[START_TIME] + [LENGTH]` will be included in the feature computation. If we process the following `main` sleep episodes:
|
||||
|
||||
| episode |start|end|
|
||||
|-|-|-|
|
||||
|1|2021-02-01 12:00|2021-02-01 15:00|
|
||||
|2|2021-02-01 21:00|2021-02-02 03:00|02-01
|
||||
|3|2021-02-02 05:00|2021-02-02 08:00|02-01
|
||||
|4|2021-02-02 11:00|2021-02-02 14:00|
|
||||
|5|2021-02-02 19:00|2021-02-03 06:00|02-02
|
||||
|
||||
And our parameters:
|
||||
|
||||
- `[INCLUDE_EPISODES_INTERSECTING][START_TIME]` = 1320 (today's 22:00)
|
||||
|
||||
- `[INCLUDE_EPISODES_INTERSECTING][LENGTH]` = 720 (tomorrow's 10:00, or 22:00 + 12 hours)
|
||||
|
||||
Only sleep episodes 2, 3,and 5 would be considered.
|
||||
|
||||
4. Time related features represent the number of minutes between the start/end/midpoint of sleep episodes and the assigned day's midnight.
|
||||
|
||||
5. All `main` sleep episodes are chunked within the requested [time segments](../../setup/configuration/#time-segments) which need to be at least 24 hours or more long (1, 2, 3, 7 days, etc.). Then, daily features will be extracted and averaged across the length of the time segment, for example:
|
||||
|
||||
The daily features extracted on 2021-02-01 will be:
|
||||
|
||||
- starttimeofepisodemain (bedtime) is `21 * 60` (episode 2 start time 2021-02-01 21:00)
|
||||
|
||||
- endtimeofepisodemain (wake time) is `32 * 60 `(episode 3 end time 2021-02-02 08:00 + 24)
|
||||
|
||||
- midpointofepisodemain (midpoint sleep) is `[(21 * 60) + (32 * 60)] / 2`
|
||||
|
||||
|
||||
The daily features extracted on 2021-02-02 will be:
|
||||
|
||||
- starttimeofepisodemain (bedtime) is `19 * 60` (episode 5 start time 2021-02-01 19:00)
|
||||
|
||||
- endtimeofepisodemain (wake time) is `30 * 60 `(episode 5 end time 2021-02-03 06:00 + 24)
|
||||
|
||||
- midpointofepisodemain (midpoint sleep) is `[(19 * 60) + (30 * 60)] / 2`
|
||||
|
||||
And `avgstarttimeofepisodemain[DAY_TYPE]` will be `([21 * 60] + [19 * 60]) / 2`
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
4. The reference point for all times is 00:00 of the first day in the LNE-LNE interval.
|
||||
5. 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).
|
||||
5. 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.
|
||||
5. `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.
|
||||
|
|
|
@ -9,6 +9,9 @@ Sensor parameters description for `[FITBIT_SLEEP_SUMMARY]`:
|
|||
|
||||
## RAPIDS provider
|
||||
|
||||
!!! hint "Understanding RAPIDS features"
|
||||
[This diagram](../../img/sleep_summary_rapids.png) will help you understand how sleep episodes are chunked and grouped within time segments using `SLEEP_SUMMARY_LAST_NIGHT_END` for the RAPIDS provider.
|
||||
|
||||
!!! info "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)
|
||||
|
||||
|
@ -26,14 +29,19 @@ 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. Fitbit provides 3 types of sleep: `main`, `nap`, `all`. |
|
||||
|`[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's 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's 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's 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's 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.
|
||||
|
@ -50,10 +58,13 @@ Features description for `[FITBIT_SLEEP_SUMMARY][PROVIDERS][RAPIDS]`:
|
|||
|
||||
|
||||
!!! note "Assumptions/Observations"
|
||||
|
||||
1. There are three sleep types (TYPE): `main`, `nap`, `all`. The `all` type contains both main sleep and naps.
|
||||
|
||||
1. [This diagram](../../img/sleep_summary_rapids.png) will help you understand how sleep episodes are chunked and grouped within time segments using `LNE` for the RAPIDS provider.
|
||||
1. 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.
|
||||
2. There are two versions of Fitbit’s sleep API ([version 1](https://dev.fitbit.com/build/reference/web-api/sleep-v1/) and [version 1.2](https://dev.fitbit.com/build/reference/web-api/sleep/)), 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.
|
||||
|
||||
3. _API columns_. 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`.
|
||||
3. _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`.
|
||||
4. 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
|
||||
5. 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
|
||||
6. These features are only available for time segments that span midnight to midnight of the same or different day.
|
||||
7. 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.
|
||||
5. Set the value for `SLEEP_SUMMARY_LAST_NIGHT_END` int the config parameter [FITBIT_DATA_STREAMS][data stream][SLEEP_SUMMARY_LAST_NIGHT_END].
|
Binary file not shown.
After Width: | Height: | Size: 840 KiB |
Binary file not shown.
After Width: | Height: | Size: 230 KiB |
Binary file not shown.
After Width: | Height: | Size: 294 KiB |
|
@ -500,19 +500,19 @@ Modify the following keys in your `config.yaml` depending on the [data stream](.
|
|||
# AVAILABLE:
|
||||
fitbitjson_mysql:
|
||||
DATABASE_GROUP: MY_GROUP
|
||||
SLEEP_SUMMARY_EPISODE_DAY_ANCHOR: False
|
||||
SLEEP_SUMMARY_LAST_NIGHT_END: 660
|
||||
|
||||
fitbitjson_csv:
|
||||
FOLDER: data/external/fitbit_csv
|
||||
SLEEP_SUMMARY_EPISODE_DAY_ANCHOR: False
|
||||
SLEEP_SUMMARY_LAST_NIGHT_END: 660
|
||||
|
||||
fitbitparsed_mysql:
|
||||
DATABASE_GROUP: MY_GROUP
|
||||
SLEEP_SUMMARY_EPISODE_DAY_ANCHOR: False
|
||||
SLEEP_SUMMARY_LAST_NIGHT_END: 660
|
||||
|
||||
fitbitparsed_csv:
|
||||
FOLDER: data/external/fitbit_csv
|
||||
SLEEP_SUMMARY_EPISODE_DAY_ANCHOR: False
|
||||
SLEEP_SUMMARY_LAST_NIGHT_END: 660
|
||||
|
||||
```
|
||||
|
||||
|
@ -524,7 +524,7 @@ Modify the following keys in your `config.yaml` depending on the [data stream](.
|
|||
| Key | Description |
|
||||
|---------------------|----------------------------------------------------------------------------------------------------------------------------|
|
||||
| `[DATABASE_GROUP]` | A database credentials group. Read the instructions below to set it up |
|
||||
| `[SLEEP_SUMMARY_EPISODE_DAY_ANCHOR]` | One of `start` or `end`. Summary sleep episodes are considered as events based on either the start timestamp or end timestamp (they will belong to the day where they start or end). |
|
||||
| `[SLEEP_SUMMARY_LAST_NIGHT_END]` | Segments are assigned based on this parameter. Any sleep episodes starts between today's SLEEP_SUMMARY_LAST_NIGHT_END (LNE) and tomorrow's LNE is regarded as today's sleep episode. While today's bedtime is based on today's sleep episodes, today's wake time is based on yesterday's sleep episodes. |
|
||||
|
||||
--8<---- "docs/snippets/database.md"
|
||||
|
||||
|
@ -535,7 +535,7 @@ Modify the following keys in your `config.yaml` depending on the [data stream](.
|
|||
| 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_EPISODE_DAY_ANCHOR]` | One of `start` or `end`. Summary sleep episodes are considered as events based on either the start timestamp or end timestamp (they will belong to the day where they start or end). |
|
||||
| `[SLEEP_SUMMARY_LAST_NIGHT_END]` | Segments are assigned based on this parameter. Any sleep episodes starts between today's SLEEP_SUMMARY_LAST_NIGHT_END (LNE) and tomorrow's LNE is regarded as today's sleep episode. While today's bedtime is based on today's sleep episodes, today's wake time is based on yesterday's sleep episodes. |
|
||||
|
||||
|
||||
=== "fitbitparsed_mysql"
|
||||
|
@ -546,7 +546,7 @@ Modify the following keys in your `config.yaml` depending on the [data stream](.
|
|||
| Key | Description |
|
||||
|---------------------|----------------------------------------------------------------------------------------------------------------------------|
|
||||
| `[DATABASE_GROUP]` | A database credentials group. Read the instructions below to set it up |
|
||||
| `[SLEEP_SUMMARY_EPISODE_DAY_ANCHOR]` | One of `start` or `end`. Summary sleep episodes are considered as events based on either the start timestamp or end timestamp (they will belong to the day where they start or end). |
|
||||
| `[SLEEP_SUMMARY_LAST_NIGHT_END]` | Segments are assigned based on this parameter. Any sleep episodes starts between today's SLEEP_SUMMARY_LAST_NIGHT_END (LNE) and tomorrow's LNE is regarded as today's sleep episode. While today's bedtime is based on today's sleep episodes, today's wake time is based on yesterday's sleep episodes. |
|
||||
|
||||
--8<---- "docs/snippets/database.md"
|
||||
|
||||
|
@ -557,7 +557,7 @@ Modify the following keys in your `config.yaml` depending on the [data stream](.
|
|||
| 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_EPISODE_DAY_ANCHOR]` | One of `start` or `end`. Summary sleep episodes are considered as events based on either the start timestamp or end timestamp (they will belong to the day where they start or end). |
|
||||
| `[SLEEP_SUMMARY_LAST_NIGHT_END]` | Segments are assigned based on this parameter. Any sleep episodes starts between today's SLEEP_SUMMARY_LAST_NIGHT_END (LNE) and tomorrow's LNE is regarded as today's sleep episode. While today's bedtime is based on today's sleep episodes, today's wake time is based on yesterday's sleep episodes. |
|
||||
|
||||
=== "Empatica"
|
||||
|
||||
|
|
|
@ -33,7 +33,8 @@ If you want RAPIDS to process Fitbit sensor data using this stream, you will nee
|
|||
- **SCRIPTS**
|
||||
|
||||
```bash
|
||||
src/data/streams/mutations/fitbit/parse_heartrate_summary_json.py
|
||||
- src/data/streams/mutations/fitbit/parse_heartrate_summary_json.py
|
||||
- src/data/streams/mutations/fitbit/add_zero_timestamp.py
|
||||
```
|
||||
|
||||
!!! note
|
||||
|
@ -71,7 +72,8 @@ If you want RAPIDS to process Fitbit sensor data using this stream, you will nee
|
|||
- **SCRIPTS**
|
||||
|
||||
```bash
|
||||
src/data/streams/mutations/fitbit/parse_heartrate_intraday_json.py
|
||||
- src/data/streams/mutations/fitbit/parse_heartrate_intraday_json.py
|
||||
- src/data/streams/mutations/fitbit/add_zero_timestamp.py
|
||||
```
|
||||
|
||||
!!! note
|
||||
|
@ -117,7 +119,9 @@ If you want RAPIDS to process Fitbit sensor data using this stream, you will nee
|
|||
- **SCRIPTS**
|
||||
|
||||
```bash
|
||||
src/data/streams/mutations/fitbit/parse_sleep_summary_json.py
|
||||
- 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
|
||||
|
@ -160,7 +164,8 @@ If you want RAPIDS to process Fitbit sensor data using this stream, you will nee
|
|||
- **SCRIPTS**
|
||||
|
||||
```bash
|
||||
src/data/streams/mutations/fitbit/parse_sleep_intraday_json.py
|
||||
- src/data/streams/mutations/fitbit/parse_sleep_intraday_json.py
|
||||
- src/data/streams/mutations/fitbit/add_zero_timestamp.py
|
||||
```
|
||||
|
||||
!!! note
|
||||
|
@ -199,7 +204,8 @@ If you want RAPIDS to process Fitbit sensor data using this stream, you will nee
|
|||
- **SCRIPTS**
|
||||
|
||||
```bash
|
||||
src/data/streams/mutations/fitbit/parse_steps_summary_json.py
|
||||
- src/data/streams/mutations/fitbit/parse_steps_summary_json.py
|
||||
- src/data/streams/mutations/fitbit/add_zero_timestamp.py
|
||||
```
|
||||
|
||||
!!! note
|
||||
|
@ -235,7 +241,8 @@ If you want RAPIDS to process Fitbit sensor data using this stream, you will nee
|
|||
- **SCRIPTS**
|
||||
|
||||
```bash
|
||||
src/data/streams/mutations/fitbit/parse_steps_intraday_json.py
|
||||
- src/data/streams/mutations/fitbit/parse_steps_intraday_json.py
|
||||
- src/data/streams/mutations/fitbit/add_zero_timestamp.py
|
||||
```
|
||||
|
||||
!!! note
|
||||
|
|
|
@ -88,7 +88,7 @@ All columns are mandatory; however, all except `device_id` and `local_date_time`
|
|||
| RAPIDS column | Stream column |
|
||||
|-----------------|-----------------|
|
||||
| TIMESTAMP| FLAG_TO_MUTATE |
|
||||
| LOCAL_DATE_TIME| local_date_time |
|
||||
| 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 |
|
||||
|
@ -108,7 +108,8 @@ All columns are mandatory; however, all except `device_id` and `local_date_time`
|
|||
- **SCRIPTS**
|
||||
|
||||
```bash
|
||||
src/data/streams/mutations/fitbit/add_zero_timestamp.py
|
||||
- src/data/streams/mutations/fitbit/add_local_date_time.py
|
||||
- src/data/streams/mutations/fitbit/add_zero_timestamp.py
|
||||
```
|
||||
|
||||
!!! note
|
||||
|
|
|
@ -69,7 +69,7 @@ Note you will see a lot of warning messages, you can ignore them since they happ
|
|||
??? info "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 161 features over 11 days for the individual model of p01, 101 features over 12 days for the individual model of p02 and 107 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.
|
||||
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`.
|
||||
|
||||
|
|
|
@ -308,19 +308,19 @@ FITBIT_DATA_STREAMS:
|
|||
# AVAILABLE:
|
||||
fitbitjson_mysql:
|
||||
DATABASE_GROUP: MY_GROUP
|
||||
SLEEP_SUMMARY_EPISODE_DAY_ANCHOR: end # summary sleep episodes are considered as events based on either the start timestamp or end timestamp.
|
||||
SLEEP_SUMMARY_LAST_NIGHT_END: 660 # a number ranged from 0 (midnight) to 1439 (23:59) which denotes number of minutes after midnight. By default, 660 (11:00).
|
||||
|
||||
fitbitparsed_mysql:
|
||||
DATABASE_GROUP: MY_GROUP
|
||||
SLEEP_SUMMARY_EPISODE_DAY_ANCHOR: end # summary sleep episodes are considered as events based on either the start timestamp or end timestamp.
|
||||
SLEEP_SUMMARY_LAST_NIGHT_END: 660 # a number ranged from 0 (midnight) to 1439 (23:59) which denotes number of minutes after midnight. By default, 660 (11:00).
|
||||
|
||||
fitbitjson_csv:
|
||||
FOLDER: data/external/example_workflow
|
||||
SLEEP_SUMMARY_EPISODE_DAY_ANCHOR: end # summary sleep episodes are considered as events based on either the start timestamp or end timestamp.
|
||||
SLEEP_SUMMARY_LAST_NIGHT_END: 660 # a number ranged from 0 (midnight) to 1439 (23:59) which denotes number of minutes after midnight. By default, 660 (11:00).
|
||||
|
||||
fitbitparsed_csv:
|
||||
FOLDER: data/external/fitbit_csv
|
||||
SLEEP_SUMMARY_EPISODE_DAY_ANCHOR: end # summary sleep episodes are considered as events based on either the start timestamp or end timestamp.
|
||||
SLEEP_SUMMARY_LAST_NIGHT_END: 660 # a number ranged from 0 (midnight) to 1439 (23:59) which denotes number of minutes after midnight. By default, 660 (11:00).
|
||||
|
||||
# Sensors ------
|
||||
|
||||
|
@ -356,7 +356,6 @@ FITBIT_HEARTRATE_INTRADAY:
|
|||
# See https://www.rapids.science/latest/features/fitbit-sleep-summary/
|
||||
FITBIT_SLEEP_SUMMARY:
|
||||
CONTAINER: fitbit_data.csv
|
||||
SLEEP_EPISODE_TIMESTAMP: end # summary sleep episodes are considered as events based on either the start timestamp or end timestamp.
|
||||
PROVIDERS:
|
||||
RAPIDS:
|
||||
COMPUTE: True
|
||||
|
@ -371,31 +370,27 @@ FITBIT_SLEEP_INTRADAY:
|
|||
RAPIDS:
|
||||
COMPUTE: False
|
||||
FEATURES:
|
||||
LEVELS_AND_TYPES_COMBINING_ALL: True
|
||||
LEVELS_AND_TYPES: [countepisode, sumduration, maxduration, minduration, avgduration, medianduration, stdduration]
|
||||
RATIOS_TYPE: [count, duration]
|
||||
RATIOS_SCOPE: [ACROSS_LEVELS, ACROSS_TYPES, WITHIN_LEVELS, WITHIN_TYPES]
|
||||
ROUTINE: [starttimefirstmainsleep, endtimelastmainsleep, starttimefirstnap, endtimelastnap]
|
||||
SLEEP_LEVELS:
|
||||
INCLUDE_ALL_GROUPS: True
|
||||
CLASSIC: [awake, restless, asleep]
|
||||
STAGES: [wake, deep, light, rem]
|
||||
UNIFIED: [awake, asleep]
|
||||
SLEEP_TYPES: [main, nap]
|
||||
INCLUDE_SLEEP_LATER_THAN: 0 # a number ranged from 0 (midnight) to 1439 (23:59)
|
||||
REFERENCE_TIME: MIDNIGHT # chosen from "MIDNIGHT" and "START_OF_THE_SEGMENT"
|
||||
SLEEP_TYPES: [main, nap, all]
|
||||
SRC_SCRIPT: src/features/fitbit_sleep_intraday/rapids/main.py
|
||||
|
||||
PRICE:
|
||||
COMPUTE: False
|
||||
FEATURES: [avgduration, avgratioduration, avgstarttimeofepisodemain, avgendtimeofepisodemain, avgmidpointofepisodemain, "stdstarttimeofepisodemain", "stdendtimeofepisodemain", "stdmidpointofepisodemain", socialjetlag, meanssdstarttimeofepisodemain, meanssdendtimeofepisodemain, meanssdmidpointofepisodemain, medianssdstarttimeofepisodemain, medianssdendtimeofepisodemain, medianssdmidpointofepisodemain]
|
||||
FEATURES: [avgduration, avgratioduration, avgstarttimeofepisodemain, avgendtimeofepisodemain, avgmidpointofepisodemain, stdstarttimeofepisodemain, stdendtimeofepisodemain, stdmidpointofepisodemain, socialjetlag, rmssdmeanstarttimeofepisodemain, rmssdmeanendtimeofepisodemain, rmssdmeanmidpointofepisodemain, rmssdmedianstarttimeofepisodemain, rmssdmedianendtimeofepisodemain, rmssdmedianmidpointofepisodemain]
|
||||
SLEEP_LEVELS:
|
||||
INCLUDE_ALL_GROUPS: True
|
||||
CLASSIC: [awake, restless, asleep]
|
||||
STAGES: [wake, deep, light, rem]
|
||||
UNIFIED: [awake, asleep]
|
||||
DAY_TYPES: [WEEKEND, WEEK, ALL]
|
||||
GROUP_EPISODES_WITHIN: # by default: today's 6pm to tomorrow's noon
|
||||
START_TIME: 1080 # number of minutes after the midnight (18:00) 18*60
|
||||
LENGTH: 1080 # in minutes (18 hours) 18*60
|
||||
LAST_NIGHT_END: 660 # number of minutes after midnight (11:00) 11*60
|
||||
SRC_SCRIPT: src/features/fitbit_sleep_intraday/price/main.py
|
||||
|
||||
# See https://www.rapids.science/latest/features/fitbit-steps-summary/
|
||||
|
|
|
@ -13,6 +13,7 @@ FITBIT_HEARTRATE_SUMMARY:
|
|||
JSON_FITBIT_COLUMN: fitbit_data # string columnwith JSON objects
|
||||
SCRIPTS: # List any python or r scripts that mutate your raw data
|
||||
- src/data/streams/mutations/fitbit/parse_heartrate_summary_json.py
|
||||
- src/data/streams/mutations/fitbit/add_zero_timestamp.py
|
||||
|
||||
FITBIT_HEARTRATE_INTRADAY:
|
||||
RAPIDS_COLUMN_MAPPINGS:
|
||||
|
@ -26,6 +27,7 @@ FITBIT_HEARTRATE_INTRADAY:
|
|||
JSON_FITBIT_COLUMN: fitbit_data # string columnwith JSON objects
|
||||
SCRIPTS: # List any python or r scripts that mutate your raw data
|
||||
- src/data/streams/mutations/fitbit/parse_heartrate_intraday_json.py
|
||||
- src/data/streams/mutations/fitbit/add_zero_timestamp.py
|
||||
|
||||
FITBIT_SLEEP_SUMMARY:
|
||||
RAPIDS_COLUMN_MAPPINGS:
|
||||
|
@ -47,6 +49,8 @@ FITBIT_SLEEP_SUMMARY:
|
|||
JSON_FITBIT_COLUMN: fitbit_data # string columnwith JSON objects
|
||||
SCRIPTS: # List any python or r scripts that mutate your raw data
|
||||
- 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
|
||||
|
||||
FITBIT_SLEEP_INTRADAY:
|
||||
RAPIDS_COLUMN_MAPPINGS:
|
||||
|
@ -63,6 +67,7 @@ FITBIT_SLEEP_INTRADAY:
|
|||
JSON_FITBIT_COLUMN: fitbit_data # string columnwith JSON objects
|
||||
SCRIPTS: # List any python or r scripts that mutate your raw data
|
||||
- src/data/streams/mutations/fitbit/parse_sleep_intraday_json.py
|
||||
- src/data/streams/mutations/fitbit/add_zero_timestamp.py
|
||||
|
||||
FITBIT_STEPS_SUMMARY:
|
||||
RAPIDS_COLUMN_MAPPINGS:
|
||||
|
@ -75,6 +80,7 @@ FITBIT_STEPS_SUMMARY:
|
|||
JSON_FITBIT_COLUMN: fitbit_data # string columnwith JSON objects
|
||||
SCRIPTS: # List any python or r scripts that mutate your raw data
|
||||
- src/data/streams/mutations/fitbit/parse_steps_summary_json.py
|
||||
- src/data/streams/mutations/fitbit/add_zero_timestamp.py
|
||||
|
||||
FITBIT_STEPS_INTRADAY:
|
||||
RAPIDS_COLUMN_MAPPINGS:
|
||||
|
@ -87,6 +93,7 @@ FITBIT_STEPS_INTRADAY:
|
|||
JSON_FITBIT_COLUMN: fitbit_data # string columnwith JSON objects
|
||||
SCRIPTS: # List any python or r scripts that mutate your raw data
|
||||
- src/data/streams/mutations/fitbit/parse_steps_intraday_json.py
|
||||
- src/data/streams/mutations/fitbit/add_zero_timestamp.py
|
||||
|
||||
FITBIT_CALORIES_INTRADAY:
|
||||
RAPIDS_COLUMN_MAPPINGS:
|
||||
|
@ -101,3 +108,4 @@ FITBIT_CALORIES_INTRADAY:
|
|||
JSON_FITBIT_COLUMN: fitbit_data # string columnwith JSON objects
|
||||
SCRIPTS: # List any python or r scripts that mutate your raw data
|
||||
- src/data/streams/mutations/fitbit/parse_calories_intraday_json.py
|
||||
- src/data/streams/mutations/fitbit/add_zero_timestamp.py
|
||||
|
|
|
@ -13,6 +13,7 @@ FITBIT_HEARTRATE_SUMMARY:
|
|||
JSON_FITBIT_COLUMN: fitbit_data # string columnwith JSON objects
|
||||
SCRIPTS: # List any python or r scripts that mutate your raw data
|
||||
- src/data/streams/mutations/fitbit/parse_heartrate_summary_json.py
|
||||
- src/data/streams/mutations/fitbit/add_zero_timestamp.py
|
||||
|
||||
FITBIT_HEARTRATE_INTRADAY:
|
||||
RAPIDS_COLUMN_MAPPINGS:
|
||||
|
@ -26,6 +27,7 @@ FITBIT_HEARTRATE_INTRADAY:
|
|||
JSON_FITBIT_COLUMN: fitbit_data # string columnwith JSON objects
|
||||
SCRIPTS: # List any python or r scripts that mutate your raw data
|
||||
- src/data/streams/mutations/fitbit/parse_heartrate_intraday_json.py
|
||||
- src/data/streams/mutations/fitbit/add_zero_timestamp.py
|
||||
|
||||
FITBIT_SLEEP_SUMMARY:
|
||||
RAPIDS_COLUMN_MAPPINGS:
|
||||
|
@ -47,6 +49,8 @@ FITBIT_SLEEP_SUMMARY:
|
|||
JSON_FITBIT_COLUMN: fitbit_data # string columnwith JSON objects
|
||||
SCRIPTS: # List any python or r scripts that mutate your raw data
|
||||
- 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
|
||||
|
||||
FITBIT_SLEEP_INTRADAY:
|
||||
RAPIDS_COLUMN_MAPPINGS:
|
||||
|
@ -63,6 +67,7 @@ FITBIT_SLEEP_INTRADAY:
|
|||
JSON_FITBIT_COLUMN: fitbit_data # string columnwith JSON objects
|
||||
SCRIPTS: # List any python or r scripts that mutate your raw data
|
||||
- src/data/streams/mutations/fitbit/parse_sleep_intraday_json.py
|
||||
- src/data/streams/mutations/fitbit/add_zero_timestamp.py
|
||||
|
||||
FITBIT_STEPS_SUMMARY:
|
||||
RAPIDS_COLUMN_MAPPINGS:
|
||||
|
@ -75,6 +80,7 @@ FITBIT_STEPS_SUMMARY:
|
|||
JSON_FITBIT_COLUMN: fitbit_data # string columnwith JSON objects
|
||||
SCRIPTS: # List any python or r scripts that mutate your raw data
|
||||
- src/data/streams/mutations/fitbit/parse_steps_summary_json.py
|
||||
- src/data/streams/mutations/fitbit/add_zero_timestamp.py
|
||||
|
||||
FITBIT_STEPS_INTRADAY:
|
||||
RAPIDS_COLUMN_MAPPINGS:
|
||||
|
@ -87,6 +93,7 @@ FITBIT_STEPS_INTRADAY:
|
|||
JSON_FITBIT_COLUMN: fitbit_data # string columnwith JSON objects
|
||||
SCRIPTS: # List any python or r scripts that mutate your raw data
|
||||
- src/data/streams/mutations/fitbit/parse_steps_intraday_json.py
|
||||
- src/data/streams/mutations/fitbit/add_zero_timestamp.py
|
||||
|
||||
FITBIT_CALORIES_INTRADAY:
|
||||
RAPIDS_COLUMN_MAPPINGS:
|
||||
|
@ -101,3 +108,4 @@ FITBIT_CALORIES_INTRADAY:
|
|||
JSON_FITBIT_COLUMN: fitbit_data # string columnwith JSON objects
|
||||
SCRIPTS: # List any python or r scripts that mutate your raw data
|
||||
- src/data/streams/mutations/fitbit/parse_calories_intraday_json.py
|
||||
- src/data/streams/mutations/fitbit/add_zero_timestamp.py
|
||||
|
|
|
@ -29,7 +29,7 @@ FITBIT_SLEEP_SUMMARY:
|
|||
RAPIDS_COLUMN_MAPPINGS:
|
||||
TIMESTAMP: FLAG_TO_MUTATE
|
||||
DEVICE_ID: device_id
|
||||
LOCAL_DATE_TIME: local_date_time
|
||||
LOCAL_DATE_TIME: FLAG_TO_MUTATE
|
||||
LOCAL_START_DATE_TIME: local_start_date_time
|
||||
LOCAL_END_DATE_TIME: local_end_date_time
|
||||
EFFICIENCY: efficiency
|
||||
|
@ -43,6 +43,7 @@ FITBIT_SLEEP_SUMMARY:
|
|||
MUTATION:
|
||||
COLUMN_MAPPINGS:
|
||||
SCRIPTS: # List any python or r scripts that mutate your raw data
|
||||
- src/data/streams/mutations/fitbit/add_local_date_time.py
|
||||
- src/data/streams/mutations/fitbit/add_zero_timestamp.py
|
||||
|
||||
FITBIT_SLEEP_INTRADAY:
|
||||
|
|
|
@ -29,7 +29,7 @@ FITBIT_SLEEP_SUMMARY:
|
|||
RAPIDS_COLUMN_MAPPINGS:
|
||||
TIMESTAMP: FLAG_TO_MUTATE
|
||||
DEVICE_ID: device_id
|
||||
LOCAL_DATE_TIME: local_date_time
|
||||
LOCAL_DATE_TIME: FLAG_TO_MUTATE
|
||||
LOCAL_START_DATE_TIME: local_start_date_time
|
||||
LOCAL_END_DATE_TIME: local_end_date_time
|
||||
EFFICIENCY: efficiency
|
||||
|
@ -43,6 +43,7 @@ FITBIT_SLEEP_SUMMARY:
|
|||
MUTATION:
|
||||
COLUMN_MAPPINGS:
|
||||
SCRIPTS: # List any python or r scripts that mutate your raw data
|
||||
- src/data/streams/mutations/fitbit/add_local_date_time.py
|
||||
- src/data/streams/mutations/fitbit/add_zero_timestamp.py
|
||||
|
||||
FITBIT_SLEEP_INTRADAY:
|
||||
|
|
|
@ -0,0 +1,23 @@
|
|||
import pandas as pd
|
||||
|
||||
def main(parsed_data, stream_parameters):
|
||||
|
||||
if parsed_data.empty:
|
||||
return pd.DataFrame(columns=parsed_data.columns.tolist() + ["local_date_time"])
|
||||
|
||||
parsed_data["local_date_time"] = (pd.to_datetime(parsed_data["local_start_date_time"]) - pd.Timedelta(minutes=stream_parameters["SLEEP_SUMMARY_LAST_NIGHT_END"]))
|
||||
start_date, end_date = parsed_data["local_date_time"].min().strftime('%Y-%m-%d 00:00:00'), (parsed_data["local_date_time"].max() + pd.Timedelta(days=1)).strftime('%Y-%m-%d 00:00:00')
|
||||
parsed_data["local_date_time"] = parsed_data["local_date_time"].dt.strftime('%Y-%m-%d 00:00:00')
|
||||
|
||||
# complete missing dates
|
||||
missed_dates = list(set([x.strftime('%Y-%m-%d 00:00:00') for x in pd.date_range(start_date, end_date).to_pydatetime()]) - set(parsed_data["local_date_time"]))
|
||||
parsed_data = pd.concat([parsed_data, pd.DataFrame({"local_date_time": missed_dates})], axis=0)
|
||||
parsed_data.sort_values(by=["local_date_time", "local_start_date_time"], inplace=True)
|
||||
parsed_data["device_id"] = parsed_data["device_id"].interpolate(method="pad")
|
||||
|
||||
if pd.api.types.is_datetime64_any_dtype(parsed_data['local_start_date_time']):
|
||||
parsed_data['local_start_date_time'] = parsed_data['local_start_date_time'].dt.strftime('%Y-%m-%d %H:%M:%S')
|
||||
if pd.api.types.is_datetime64_any_dtype(parsed_data['local_end_date_time']):
|
||||
parsed_data['local_end_date_time'] = parsed_data['local_end_date_time'].dt.strftime('%Y-%m-%d %H:%M:%S')
|
||||
|
||||
return parsed_data
|
|
@ -4,4 +4,4 @@ def main(parsed_data, stream_parameters):
|
|||
parsed_data["timestamp"] = 0 # this column is added at readable_datetime.R because we neeed to take into account multiple timezones
|
||||
if pd.api.types.is_datetime64_any_dtype(parsed_data['local_date_time']):
|
||||
parsed_data['local_date_time'] = parsed_data['local_date_time'].dt.strftime('%Y-%m-%d %H:%M:%S')
|
||||
return(parsed_data)
|
||||
return parsed_data
|
||||
|
|
|
@ -26,8 +26,5 @@ def parseCaloriesData(calories_data):
|
|||
|
||||
def main(json_raw, stream_parameters):
|
||||
parsed_data = parseCaloriesData(json_raw)
|
||||
parsed_data["timestamp"] = 0 # this column is added at readable_datetime.R because we neeed to take into account multiple timezones
|
||||
parsed_data["mets"] = parsed_data["mets"] / 10
|
||||
if pd.api.types.is_datetime64_any_dtype( parsed_data['local_date_time']):
|
||||
parsed_data['local_date_time'] = parsed_data['local_date_time'].dt.strftime('%Y-%m-%d %H:%M:%S')
|
||||
return(parsed_data)
|
||||
return parsed_data
|
||||
|
|
|
@ -78,7 +78,4 @@ def parseHeartrateData(heartrate_data):
|
|||
|
||||
def main(json_raw, stream_parameters):
|
||||
parsed_data = parseHeartrateData(json_raw)
|
||||
parsed_data["timestamp"] = 0 # this column is added at readable_datetime.R because we neeed to take into account multiple timezones
|
||||
if pd.api.types.is_datetime64_any_dtype( parsed_data['local_date_time']):
|
||||
parsed_data['local_date_time'] = parsed_data['local_date_time'].dt.strftime('%Y-%m-%d %H:%M:%S')
|
||||
return(parsed_data)
|
||||
return parsed_data
|
||||
|
|
|
@ -67,7 +67,4 @@ def parseHeartrateData(heartrate_data):
|
|||
|
||||
def main(json_raw, stream_parameters):
|
||||
parsed_data = parseHeartrateData(json_raw)
|
||||
parsed_data["timestamp"] = 0 # this column is added at readable_datetime.R because we neeed to take into account multiple timezones
|
||||
if pd.api.types.is_datetime64_any_dtype( parsed_data['local_date_time']):
|
||||
parsed_data['local_date_time'] = parsed_data['local_date_time'].dt.strftime('%Y-%m-%d %H:%M:%S')
|
||||
return(parsed_data)
|
||||
return parsed_data
|
||||
|
|
|
@ -136,8 +136,4 @@ def parseSleepData(sleep_data):
|
|||
|
||||
def main(json_raw, stream_parameters):
|
||||
parsed_data = parseSleepData(json_raw)
|
||||
parsed_data["timestamp"] = 0 # this column is added at readable_datetime.R because we neeed to take into account multiple timezones
|
||||
if pd.api.types.is_datetime64_any_dtype( parsed_data['local_date_time']):
|
||||
parsed_data['local_date_time'] = parsed_data['local_date_time'].dt.strftime('%Y-%m-%d %H:%M:%S')
|
||||
|
||||
return(parsed_data)
|
||||
return parsed_data
|
||||
|
|
|
@ -56,17 +56,7 @@ def parseSleepData(sleep_data):
|
|||
|
||||
return parsed_data
|
||||
|
||||
|
||||
def main(json_raw, stream_parameters):
|
||||
parsed_data = parseSleepData(json_raw)
|
||||
parsed_data["timestamp"] = 0 # this column is added at readable_datetime.R because we neeed to take into account multiple timezones
|
||||
if pd.api.types.is_datetime64_any_dtype( parsed_data['local_start_date_time']):
|
||||
parsed_data['local_start_date_time'] = parsed_data['local_start_date_time'].dt.strftime('%Y-%m-%d %H:%M:%S')
|
||||
if pd.api.types.is_datetime64_any_dtype( parsed_data['local_end_date_time']):
|
||||
parsed_data['local_end_date_time'] = parsed_data['local_end_date_time'].dt.strftime('%Y-%m-%d %H:%M:%S')
|
||||
|
||||
if stream_parameters["SLEEP_SUMMARY_EPISODE_DAY_ANCHOR"] == "start":
|
||||
parsed_data["local_date_time"] = parsed_data['local_start_date_time']
|
||||
else:
|
||||
parsed_data["local_date_time"] = parsed_data['local_end_date_time']
|
||||
|
||||
return(parsed_data)
|
||||
return parsed_data
|
||||
|
|
|
@ -39,7 +39,4 @@ def parseStepsData(steps_data):
|
|||
|
||||
def main(json_raw, stream_parameters):
|
||||
parsed_data = parseStepsData(json_raw)
|
||||
parsed_data["timestamp"] = 0 # this column is added at readable_datetime.R because we neeed to take into account multiple timezones
|
||||
if pd.api.types.is_datetime64_any_dtype( parsed_data['local_date_time']):
|
||||
parsed_data['local_date_time'] = parsed_data['local_date_time'].dt.strftime('%Y-%m-%d %H:%M:%S')
|
||||
return(parsed_data)
|
||||
return parsed_data
|
||||
|
|
|
@ -32,7 +32,4 @@ def parseStepsData(steps_data):
|
|||
|
||||
def main(json_raw, stream_parameters):
|
||||
parsed_data = parseStepsData(json_raw)
|
||||
parsed_data["timestamp"] = 0 # this column is added at readable_datetime.R because we neeed to take into account multiple timezones
|
||||
if pd.api.types.is_datetime64_any_dtype( parsed_data['local_date_time']):
|
||||
parsed_data['local_date_time'] = parsed_data['local_date_time'].dt.strftime('%Y-%m-%d %H:%M:%S')
|
||||
return(parsed_data)
|
||||
return parsed_data
|
||||
|
|
|
@ -3,6 +3,15 @@ source("renv/activate.R")
|
|||
library(yaml)
|
||||
library(dplyr)
|
||||
library(readr)
|
||||
|
||||
fix_pandas_nan_in_string_columns <- function(column){
|
||||
return(vapply(column, function(value) {
|
||||
if(!is.character(value) && !is.nan(value))
|
||||
stop("The reticulate conversion from the python mutation script to r failed. One or more returned columns are a list with unsupported mixed types. We only handle string columns with np.nan values. Open a GitHub issue or fix the mutation script")
|
||||
return(ifelse(is.nan(value), NA_character_, value))
|
||||
}, FUN.VALUE = character(1)))
|
||||
}
|
||||
|
||||
# we use reticulate but only load it if we are going to use it to minimize the case when old RAPIDS deployments need to update ther renv
|
||||
mutate_data <- function(scripts, data, data_configuration){
|
||||
for(script in scripts){
|
||||
|
@ -25,6 +34,7 @@ mutate_data <- function(scripts, data, data_configuration){
|
|||
if(py_has_attr(script_functions, "main")){
|
||||
message(paste("Applying mutation script", script))
|
||||
data <- script_functions$main(data, data_configuration)
|
||||
data <- data %>% mutate(across(where(is.list), fix_pandas_nan_in_string_columns))
|
||||
} else{
|
||||
stop(paste0("The following mutation script does not have a main function: ", script))
|
||||
}
|
||||
|
|
|
@ -5,7 +5,7 @@ import numpy as np
|
|||
def mergeSleepEpisodes(sleep_data, cols_for_groupby):
|
||||
sleep_episodes = pd.DataFrame(columns=["device_id", "type_episode_id", "level_episode_id", "level", "unified_level", "is_main_sleep", "type", "timestamp", "duration"])
|
||||
if not sleep_data.empty:
|
||||
sleep_data = sleep_data.groupby(by=cols_for_groupby)
|
||||
sleep_data = sleep_data.groupby(by=cols_for_groupby, sort=False)
|
||||
sleep_episodes = sleep_data[["timestamp"]].first()
|
||||
sleep_episodes["duration"] = sleep_data["duration"].sum()
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@ import itertools
|
|||
|
||||
|
||||
|
||||
def featuresFullNames(intraday_features_to_compute, sleep_levels_to_compute, day_types_to_compute):
|
||||
def featuresFullNames(intraday_features_to_compute, sleep_levels_to_compute, day_types_to_compute, levels_include_all_groups):
|
||||
|
||||
features_fullnames = ["local_segment"]
|
||||
|
||||
|
@ -14,7 +14,7 @@ def featuresFullNames(intraday_features_to_compute, sleep_levels_to_compute, day
|
|||
|
||||
for feature in intraday_features_to_compute:
|
||||
if feature == "avgduration":
|
||||
features_fullnames.extend(["avgduration" + x[0] + "main" + x[1].lower() for x in itertools.product(sleep_level_with_group, day_types_to_compute)])
|
||||
features_fullnames.extend(["avgduration" + x[0] + "main" + x[1].lower() for x in itertools.product(sleep_level_with_group + (["all"] if levels_include_all_groups else []), day_types_to_compute)])
|
||||
elif feature == "avgratioduration":
|
||||
features_fullnames.extend(["avgratioduration" + x[0] + "withinmain" + x[1].lower() for x in itertools.product(sleep_level_with_group, day_types_to_compute)])
|
||||
elif feature in ["avgstarttimeofepisodemain", "avgendtimeofepisodemain", "avgmidpointofepisodemain", "stdstarttimeofepisodemain", "stdendtimeofepisodemain", "stdmidpointofepisodemain"]:
|
||||
|
@ -34,7 +34,7 @@ def mergeSleepEpisodes(sleep_data, cols_for_groupby, base_sleep_levels):
|
|||
sleep_episodes = pd.DataFrame(columns=["local_segment", "durationinbed", "start_timestamp", "end_timestamp", "local_start_date_time", "local_end_date_time"] + ["duration" + x for x in sleep_level_with_group])
|
||||
|
||||
if cols_for_groupby and (not sleep_data.empty):
|
||||
sleep_data = sleep_data.groupby(by=cols_for_groupby)
|
||||
sleep_data = sleep_data.groupby(by=cols_for_groupby, sort=False)
|
||||
sleep_episodes = sleep_data[["duration"]].sum().rename(columns={"duration": "durationinbed"})
|
||||
|
||||
sleep_episodes["start_timestamp"] = sleep_data["start_timestamp"].first()
|
||||
|
@ -64,16 +64,19 @@ def extractDailyFeatures(sleep_data):
|
|||
daily_features["ratio" + col + "withinmain"] = daily_features[col + "main"] / daily_features["durationinbedmain"]
|
||||
daily_features.reset_index(inplace=True)
|
||||
|
||||
# Only keep one row per fake_date
|
||||
daily_features.drop_duplicates(subset=["fake_date"], keep="first", inplace=True)
|
||||
|
||||
# The day of the week with Monday=0, Sunday=6. Set Friday and Saturday as Weekend, others as Weekday.
|
||||
daily_features["is_weekend"] = pd.to_datetime(daily_features["fake_date"]).dt.dayofweek.apply(lambda x: 1 if (x == 4 or x == 5) else 0)
|
||||
|
||||
return daily_features
|
||||
|
||||
def statsOfDailyFeatures(daily_features, day_type, sleep_levels, intraday_features_to_compute, sleep_intraday_features):
|
||||
def statsOfDailyFeatures(daily_features, day_type, sleep_levels, intraday_features_to_compute, sleep_intraday_features, levels_include_all_groups):
|
||||
if day_type == "WEEKEND":
|
||||
daily_features = daily_features[daily_features["is_weekend"] == 0]
|
||||
elif day_type == "WEEK":
|
||||
daily_features = daily_features[daily_features["is_weekend"] == 1]
|
||||
elif day_type == "WEEK":
|
||||
daily_features = daily_features[daily_features["is_weekend"] == 0]
|
||||
elif day_type == "ALL":
|
||||
pass
|
||||
else:
|
||||
|
@ -110,6 +113,8 @@ def statsOfDailyFeatures(daily_features, day_type, sleep_levels, intraday_featur
|
|||
if "avgratioduration" in intraday_features_to_compute:
|
||||
col = "ratioduration" + sleep_level + sleep_level_group.lower() + "withinmain"
|
||||
sleep_intraday_features = pd.concat([sleep_intraday_features, daily_features[["local_segment", col]].groupby("local_segment")[col].mean().to_frame().rename(columns={col: "avg" + col + day_type.lower()})], axis=1)
|
||||
if levels_include_all_groups and ("avgduration" in intraday_features_to_compute):
|
||||
sleep_intraday_features = pd.concat([sleep_intraday_features, daily_features[["local_segment", "durationinbedmain"]].groupby("local_segment")["durationinbedmain"].mean().to_frame().rename(columns={"durationinbedmain": "avgdurationallmain" + day_type.lower()})], axis=1)
|
||||
|
||||
return sleep_intraday_features
|
||||
|
||||
|
@ -127,28 +132,28 @@ def socialJetLagFeature(daily_features, sleep_intraday_features):
|
|||
|
||||
return sleep_intraday_features
|
||||
|
||||
def MSSDFeatures(daily_features, intraday_features_to_compute, sleep_intraday_features):
|
||||
def RMSSDFeatures(daily_features, intraday_features_to_compute, sleep_intraday_features):
|
||||
|
||||
date_idx = pd.DataFrame(pd.date_range(start=daily_features["fake_date"].min(), end=daily_features["fake_date"].max(), freq="D"), columns=["fake_date"])
|
||||
date_idx["fake_date"] = date_idx["fake_date"].dt.date
|
||||
daily_features = daily_features.merge(date_idx, on="fake_date", how="right")
|
||||
|
||||
for col in ["starttimeofepisodemain", "endtimeofepisodemain", "midpointofepisodemain"]:
|
||||
daily_features[col + "_diff"] = daily_features[col].diff()
|
||||
daily_features[col + "_diff"] = daily_features[col].diff().pow(2)
|
||||
|
||||
if "meanssdstarttimeofepisodemain" in intraday_features_to_compute:
|
||||
sleep_intraday_features = pd.concat([sleep_intraday_features, daily_features[["local_segment","starttimeofepisodemain_diff"]].groupby("local_segment")["starttimeofepisodemain_diff"].mean().to_frame().rename(columns={"starttimeofepisodemain_diff": "meanssdstarttimeofepisodemain"})], axis=1)
|
||||
if "meanssdendtimeofepisodemain" in intraday_features_to_compute:
|
||||
sleep_intraday_features = pd.concat([sleep_intraday_features, daily_features[["local_segment","endtimeofepisodemain_diff"]].groupby("local_segment")["endtimeofepisodemain_diff"].mean().to_frame().rename(columns={"endtimeofepisodemain_diff": "meanssdendtimeofepisodemain"})], axis=1)
|
||||
if "meanssdmidpointofepisodemain" in intraday_features_to_compute:
|
||||
sleep_intraday_features = pd.concat([sleep_intraday_features, daily_features[["local_segment","midpointofepisodemain_diff"]].groupby("local_segment")["midpointofepisodemain_diff"].mean().to_frame().rename(columns={"midpointofepisodemain_diff": "meanssdmidpointofepisodemain"})], axis=1)
|
||||
if "rmssdmeanstarttimeofepisodemain" in intraday_features_to_compute:
|
||||
sleep_intraday_features = pd.concat([sleep_intraday_features, daily_features[["local_segment","starttimeofepisodemain_diff"]].groupby("local_segment")["starttimeofepisodemain_diff"].mean().pow(0.5).to_frame().rename(columns={"starttimeofepisodemain_diff": "rmssdmeanstarttimeofepisodemain"})], axis=1)
|
||||
if "rmssdmeanendtimeofepisodemain" in intraday_features_to_compute:
|
||||
sleep_intraday_features = pd.concat([sleep_intraday_features, daily_features[["local_segment","endtimeofepisodemain_diff"]].groupby("local_segment")["endtimeofepisodemain_diff"].mean().pow(0.5).to_frame().rename(columns={"endtimeofepisodemain_diff": "rmssdmeanendtimeofepisodemain"})], axis=1)
|
||||
if "rmssdmeanmidpointofepisodemain" in intraday_features_to_compute:
|
||||
sleep_intraday_features = pd.concat([sleep_intraday_features, daily_features[["local_segment","midpointofepisodemain_diff"]].groupby("local_segment")["midpointofepisodemain_diff"].mean().pow(0.5).to_frame().rename(columns={"midpointofepisodemain_diff": "rmssdmeanmidpointofepisodemain"})], axis=1)
|
||||
|
||||
if "medianssdstarttimeofepisodemain" in intraday_features_to_compute:
|
||||
sleep_intraday_features = pd.concat([sleep_intraday_features, daily_features[["local_segment","starttimeofepisodemain_diff"]].groupby("local_segment")["starttimeofepisodemain_diff"].median().to_frame().rename(columns={"starttimeofepisodemain_diff": "medianssdstarttimeofepisodemain"})], axis=1)
|
||||
if "medianssdendtimeofepisodemain" in intraday_features_to_compute:
|
||||
sleep_intraday_features = pd.concat([sleep_intraday_features, daily_features[["local_segment","endtimeofepisodemain_diff"]].groupby("local_segment")["endtimeofepisodemain_diff"].median().to_frame().rename(columns={"endtimeofepisodemain_diff": "medianssdendtimeofepisodemain"})], axis=1)
|
||||
if "medianssdmidpointofepisodemain" in intraday_features_to_compute:
|
||||
sleep_intraday_features = pd.concat([sleep_intraday_features, daily_features[["local_segment","midpointofepisodemain_diff"]].groupby("local_segment")["midpointofepisodemain_diff"].median().to_frame().rename(columns={"midpointofepisodemain_diff": "medianssdmidpointofepisodemain"})], axis=1)
|
||||
if "rmssdmedianstarttimeofepisodemain" in intraday_features_to_compute:
|
||||
sleep_intraday_features = pd.concat([sleep_intraday_features, daily_features[["local_segment","starttimeofepisodemain_diff"]].groupby("local_segment")["starttimeofepisodemain_diff"].median().pow(0.5).to_frame().rename(columns={"starttimeofepisodemain_diff": "rmssdmedianstarttimeofepisodemain"})], axis=1)
|
||||
if "rmssdmedianendtimeofepisodemain" in intraday_features_to_compute:
|
||||
sleep_intraday_features = pd.concat([sleep_intraday_features, daily_features[["local_segment","endtimeofepisodemain_diff"]].groupby("local_segment")["endtimeofepisodemain_diff"].median().pow(0.5).to_frame().rename(columns={"endtimeofepisodemain_diff": "rmssdmedianendtimeofepisodemain"})], axis=1)
|
||||
if "rmssdmedianmidpointofepisodemain" in intraday_features_to_compute:
|
||||
sleep_intraday_features = pd.concat([sleep_intraday_features, daily_features[["local_segment","midpointofepisodemain_diff"]].groupby("local_segment")["midpointofepisodemain_diff"].median().pow(0.5).to_frame().rename(columns={"midpointofepisodemain_diff": "rmssdmedianmidpointofepisodemain"})], axis=1)
|
||||
|
||||
return sleep_intraday_features
|
||||
|
||||
|
@ -157,16 +162,16 @@ def MSSDFeatures(daily_features, intraday_features_to_compute, sleep_intraday_fe
|
|||
|
||||
def price_features(sensor_data_files, time_segment, provider, filter_data_by_segment, *args, **kwargs):
|
||||
|
||||
daily_start_time = provider["GROUP_EPISODES_WITHIN"]["START_TIME"]
|
||||
daily_end_time = daily_start_time + provider["GROUP_EPISODES_WITHIN"]["LENGTH"]
|
||||
last_night_end = provider["LAST_NIGHT_END"]
|
||||
|
||||
sleep_intraday_data = pd.read_csv(sensor_data_files["sensor_data"])
|
||||
requested_intraday_features = provider["FEATURES"]
|
||||
levels_include_all_groups = provider["SLEEP_LEVELS"]["INCLUDE_ALL_GROUPS"]
|
||||
requested_sleep_levels = provider["SLEEP_LEVELS"]
|
||||
requested_day_types = provider["DAY_TYPES"]
|
||||
|
||||
# Name of the features this function can compute
|
||||
base_intraday_features = ["avgduration", "avgratioduration", "avgstarttimeofepisodemain", "avgendtimeofepisodemain", "avgmidpointofepisodemain", "stdstarttimeofepisodemain", "stdendtimeofepisodemain", "stdmidpointofepisodemain", "socialjetlag", "meanssdstarttimeofepisodemain", "meanssdendtimeofepisodemain", "meanssdmidpointofepisodemain", "medianssdstarttimeofepisodemain", "medianssdendtimeofepisodemain", "medianssdmidpointofepisodemain"]
|
||||
base_intraday_features = ["avgduration", "avgratioduration", "avgstarttimeofepisodemain", "avgendtimeofepisodemain", "avgmidpointofepisodemain", "stdstarttimeofepisodemain", "stdendtimeofepisodemain", "stdmidpointofepisodemain", "socialjetlag", "rmssdmeanstarttimeofepisodemain", "rmssdmeanendtimeofepisodemain", "rmssdmeanmidpointofepisodemain", "rmssdmedianstarttimeofepisodemain", "rmssdmedianendtimeofepisodemain", "rmssdmedianmidpointofepisodemain"]
|
||||
base_sleep_levels = {"CLASSIC": ["awake", "restless", "asleep"],
|
||||
"STAGES": ["wake", "deep", "light", "rem"],
|
||||
"UNIFIED": ["awake", "asleep"]}
|
||||
|
@ -178,7 +183,7 @@ def price_features(sensor_data_files, time_segment, provider, filter_data_by_seg
|
|||
day_types_to_compute = list(set(requested_day_types) & set(base_day_types))
|
||||
|
||||
# Full names
|
||||
features_fullnames = featuresFullNames(intraday_features_to_compute, sleep_levels_to_compute, day_types_to_compute)
|
||||
features_fullnames = featuresFullNames(intraday_features_to_compute, sleep_levels_to_compute, day_types_to_compute, levels_include_all_groups)
|
||||
sleep_intraday_features = pd.DataFrame(columns=features_fullnames)
|
||||
|
||||
# Filter by segemnts and chunk episodes
|
||||
|
@ -188,10 +193,11 @@ def price_features(sensor_data_files, time_segment, provider, filter_data_by_seg
|
|||
return sleep_intraday_features
|
||||
|
||||
# Discard segments shorter than one day
|
||||
sleep_intraday_data["segment_length"] = (sleep_intraday_data["segment_end_timestamp"] - sleep_intraday_data["segment_start_timestamp"]) / 1000 # in seconds
|
||||
sleep_intraday_data[["segment_start_datetime", "segment_end_datetime"]] = sleep_intraday_data["local_segment"].str.split("#", expand=True)[1].str.split(",", expand=True).astype("datetime64[ns]")
|
||||
sleep_intraday_data["segment_length"] = (sleep_intraday_data["segment_end_datetime"] - sleep_intraday_data["segment_start_datetime"]).dt.total_seconds()
|
||||
sleep_intraday_data = sleep_intraday_data[sleep_intraday_data["segment_length"] >= 24 * 60 * 60 - 1]
|
||||
del sleep_intraday_data["segment_length"]
|
||||
|
||||
for col in ["segment_start_datetime", "segment_end_datetime", "segment_length"]:
|
||||
del sleep_intraday_data[col]
|
||||
# Select main sleep records
|
||||
sleep_intraday_data = sleep_intraday_data[sleep_intraday_data["is_main_sleep"] == 1]
|
||||
|
||||
|
@ -206,26 +212,18 @@ def price_features(sensor_data_files, time_segment, provider, filter_data_by_seg
|
|||
main_sleep_episodes["end_minutes"] = main_sleep_episodes["start_minutes"] + main_sleep_episodes["durationinbed"]
|
||||
# Extract fake date
|
||||
""" The rule used for fake date extraction
|
||||
set DS = daily_start_time, DE = daily_end_time
|
||||
set start = start_minutes, end = end_minutes
|
||||
|
||||
if (DS <= start < DE) or (DS < end <= DE) or (start <= DS and end >= DE):
|
||||
if start_minutes >= last_night_end
|
||||
assign today
|
||||
elif if end <= DS:
|
||||
else:
|
||||
assign yesterday
|
||||
else: (same as start >=DE)
|
||||
assign tomorrow
|
||||
"""
|
||||
main_sleep_episodes["fake_date_delta"] = main_sleep_episodes[["start_minutes", "end_minutes"]].apply(lambda row: 0 if ((row["start_minutes"] >= daily_start_time and row["start_minutes"] < daily_end_time) or (row["end_minutes"] > daily_start_time and row["end_minutes"] <= daily_end_time) or (row["start_minutes"] <= daily_start_time and row["end_minutes"] >= daily_end_time)) else -1 if (row["end_minutes"] <= daily_start_time) else 1, axis=1)
|
||||
main_sleep_episodes["fake_date_delta"] = main_sleep_episodes[["start_minutes"]].apply(lambda row: 0 if row["start_minutes"] >= last_night_end else -1, axis=1)
|
||||
main_sleep_episodes["fake_date"] = (main_sleep_episodes["local_start_date_time"] + pd.to_timedelta(main_sleep_episodes["fake_date_delta"], unit="d")).dt.date
|
||||
|
||||
# Update "start_minutes" column based on START_TIME
|
||||
main_sleep_episodes["start_minutes"] = main_sleep_episodes[["start_minutes", "fake_date_delta"]].apply(lambda row: row["start_minutes"] - 24 * 60 * row["fake_date_delta"], axis=1)
|
||||
main_sleep_episodes["end_minutes"] = main_sleep_episodes["start_minutes"] + main_sleep_episodes["durationinbed"]
|
||||
|
||||
# We keep a sleep episode that intersects or contains the period between [START_TIME, START_TIME + LENGTH], aka [daily_start_time, daily_end_time].
|
||||
main_sleep_episodes = main_sleep_episodes.query("(start_minutes >= @daily_start_time and start_minutes < @daily_end_time) or (end_minutes > @daily_start_time and end_minutes <= @daily_end_time) or (start_minutes <= @daily_start_time and end_minutes >= @daily_end_time)")
|
||||
|
||||
# Sort main sleep episodes based on fake_date and start_minutes
|
||||
main_sleep_episodes = main_sleep_episodes.sort_values(["fake_date", "start_minutes"])
|
||||
# Extract daily features
|
||||
|
@ -233,10 +231,10 @@ def price_features(sensor_data_files, time_segment, provider, filter_data_by_seg
|
|||
|
||||
# Extract features per segment based on daily features
|
||||
for day_type in day_types_to_compute:
|
||||
sleep_intraday_features = statsOfDailyFeatures(daily_features, day_type, sleep_levels_to_compute, intraday_features_to_compute, sleep_intraday_features)
|
||||
sleep_intraday_features = statsOfDailyFeatures(daily_features, day_type, sleep_levels_to_compute, intraday_features_to_compute, sleep_intraday_features, levels_include_all_groups)
|
||||
if "socialjetlag" in intraday_features_to_compute:
|
||||
sleep_intraday_features = socialJetLagFeature(daily_features, sleep_intraday_features)
|
||||
sleep_intraday_features = MSSDFeatures(daily_features, intraday_features_to_compute, sleep_intraday_features)
|
||||
sleep_intraday_features = RMSSDFeatures(daily_features, intraday_features_to_compute, sleep_intraday_features)
|
||||
|
||||
sleep_intraday_features.index.name = "local_segment"
|
||||
sleep_intraday_features.reset_index(inplace=True)
|
||||
|
|
|
@ -2,7 +2,7 @@ import pandas as pd
|
|||
from datetime import datetime
|
||||
import itertools
|
||||
|
||||
def featuresFullNames(intraday_features_to_compute, sleep_levels_to_compute, sleep_types_to_compute, consider_all):
|
||||
def featuresFullNames(intraday_features_to_compute, sleep_levels_to_compute, sleep_types_to_compute, levels_include_all_groups):
|
||||
|
||||
features_fullname = ["local_segment"]
|
||||
|
||||
|
@ -11,19 +11,19 @@ def featuresFullNames(intraday_features_to_compute, sleep_levels_to_compute, sle
|
|||
for sleep_level in sleep_levels_to_compute[sleep_level_group]:
|
||||
sleep_level_with_group.append(sleep_level + sleep_level_group.lower())
|
||||
|
||||
if consider_all:
|
||||
features_fullname.extend([x[0] + x[1] + x[2] for x in itertools.product(intraday_features_to_compute["LEVELS_AND_TYPES"], sleep_level_with_group + ["all"], sleep_types_to_compute + ["all"])])
|
||||
if levels_include_all_groups:
|
||||
features_fullname.extend([x[0] + x[1] + x[2] for x in itertools.product(intraday_features_to_compute["LEVELS_AND_TYPES"], sleep_level_with_group + ["all"], sleep_types_to_compute)])
|
||||
else:
|
||||
features_fullname.extend([x[0] + x[1] + x[2] for x in itertools.product(intraday_features_to_compute["LEVELS_AND_TYPES"], sleep_level_with_group, sleep_types_to_compute)])
|
||||
if "ACROSS_LEVELS" in intraday_features_to_compute["RATIOS_SCOPE"]:
|
||||
features_fullname.extend(["ratio" + x[0] + x[1] for x in itertools.product(intraday_features_to_compute["RATIOS_TYPE"], sleep_level_with_group)])
|
||||
if "ACROSS_TYPES" in intraday_features_to_compute["RATIOS_SCOPE"] and "main" in sleep_types_to_compute:
|
||||
features_fullname.extend(["ratio" + x + "main" for x in intraday_features_to_compute["RATIOS_TYPE"]])
|
||||
if "WITHIN_LEVELS" in intraday_features_to_compute["RATIOS_SCOPE"]:
|
||||
features_fullname.extend(["ratio" + x[0] + x[1] + "within" + x[2] for x in itertools.product(intraday_features_to_compute["RATIOS_TYPE"], sleep_types_to_compute, sleep_level_with_group)])
|
||||
if "WITHIN_LEVELS" in intraday_features_to_compute["RATIOS_SCOPE"] and "main" in sleep_types_to_compute:
|
||||
features_fullname.extend(["ratio" + x[0] + "mainwithin" + x[1] for x in itertools.product(intraday_features_to_compute["RATIOS_TYPE"], sleep_level_with_group)])
|
||||
if "WITHIN_TYPES" in intraday_features_to_compute["RATIOS_SCOPE"]:
|
||||
features_fullname.extend(["ratio" + x[0] + x[1] + "within" + x[2] for x in itertools.product(intraday_features_to_compute["RATIOS_TYPE"], sleep_level_with_group, sleep_types_to_compute)])
|
||||
features_fullname.extend(intraday_features_to_compute["ROUTINE"])
|
||||
features_fullname.extend(["ratio" + x[0] + x[1] + "within" + x[2] for x in itertools.product(intraday_features_to_compute["RATIOS_TYPE"], sleep_level_with_group, set(sleep_types_to_compute) & set(["main", "nap"]))])
|
||||
|
||||
return features_fullname
|
||||
|
||||
def mergeSleepEpisodes(sleep_data, cols_for_groupby):
|
||||
|
@ -31,7 +31,7 @@ def mergeSleepEpisodes(sleep_data, cols_for_groupby):
|
|||
sleep_episodes = pd.DataFrame(columns=["local_segment", "duration", "start_timestamp", "end_timestamp", "local_start_date_time", "local_end_date_time"])
|
||||
|
||||
if cols_for_groupby and (not sleep_data.empty):
|
||||
sleep_data = sleep_data.groupby(by=cols_for_groupby)
|
||||
sleep_data = sleep_data.groupby(by=cols_for_groupby, sort=False)
|
||||
sleep_episodes = sleep_data[["duration"]].sum()
|
||||
sleep_episodes["start_timestamp"] = sleep_data["start_timestamp"].first()
|
||||
sleep_episodes["end_timestamp"] = sleep_data["end_timestamp"].last()
|
||||
|
@ -68,30 +68,34 @@ def statsFeatures(sleep_episodes, features, episode_type):
|
|||
def allStatsFeatures(sleep_data, base_sleep_levels, base_sleep_types, features, sleep_intraday_features):
|
||||
|
||||
# For CLASSIC
|
||||
for sleep_level, sleep_type in itertools.product(base_sleep_levels["CLASSIC"] + ["all"], base_sleep_types + ["all"]):
|
||||
sleep_episodes_classic = sleep_data[sleep_data["is_main_sleep"] == (1 if sleep_type == "main" else 0)] if sleep_type != "all" else sleep_data
|
||||
for sleep_level, sleep_type in itertools.product(base_sleep_levels["CLASSIC"] + ["all"], base_sleep_types):
|
||||
sleep_episodes_classic = sleep_data[sleep_data["type"] == "classic"]
|
||||
sleep_episodes_classic = sleep_episodes_classic[sleep_episodes_classic["is_main_sleep"] == (1 if sleep_type == "main" else 0)] if sleep_type != "all" else sleep_episodes_classic
|
||||
sleep_episodes_classic = sleep_episodes_classic[sleep_episodes_classic["level"] == sleep_level] if sleep_level != "all" else sleep_episodes_classic
|
||||
sleep_intraday_features = pd.concat([sleep_intraday_features, statsFeatures(sleep_episodes_classic, features, sleep_level + "classic" + sleep_type)], axis=1)
|
||||
|
||||
# For STAGES
|
||||
for sleep_level, sleep_type in itertools.product(base_sleep_levels["STAGES"] + ["all"], base_sleep_types + ["all"]):
|
||||
sleep_episodes_stages = sleep_data[sleep_data["is_main_sleep"] == (1 if sleep_type == "main" else 0)] if sleep_type != "all" else sleep_data
|
||||
for sleep_level, sleep_type in itertools.product(base_sleep_levels["STAGES"] + ["all"], base_sleep_types):
|
||||
sleep_episodes_stages = sleep_data[sleep_data["type"] == "stages"]
|
||||
sleep_episodes_stages = sleep_episodes_stages[sleep_episodes_stages["is_main_sleep"] == (1 if sleep_type == "main" else 0)] if sleep_type != "all" else sleep_episodes_stages
|
||||
sleep_episodes_stages = sleep_episodes_stages[sleep_episodes_stages["level"] == sleep_level] if sleep_level != "all" else sleep_episodes_stages
|
||||
sleep_intraday_features = pd.concat([sleep_intraday_features, statsFeatures(sleep_episodes_stages, features, sleep_level + "stages" + sleep_type)], axis=1)
|
||||
|
||||
# For UNIFIED
|
||||
for sleep_level, sleep_type in itertools.product(base_sleep_levels["UNIFIED"] + ["all"], base_sleep_types + ["all"]):
|
||||
for sleep_level, sleep_type in itertools.product(base_sleep_levels["UNIFIED"] + ["all"], base_sleep_types):
|
||||
sleep_episodes_unified = sleep_data[sleep_data["is_main_sleep"] == (1 if sleep_type == "main" else 0)] if sleep_type != "all" else sleep_data
|
||||
sleep_episodes_unified = sleep_episodes_unified[sleep_episodes_unified["unified_level"] == (0 if sleep_level == "awake" else 1)] if sleep_level != "all" else sleep_episodes_unified
|
||||
sleep_episodes_unified = mergeSleepEpisodes(sleep_episodes_unified, ["local_segment", "unified_level_episode_id"])
|
||||
sleep_intraday_features = pd.concat([sleep_intraday_features, statsFeatures(sleep_episodes_unified, features, sleep_level + "unified" + sleep_type)], axis=1)
|
||||
|
||||
# Ignore the levels (e.g. countepisode[all][main])
|
||||
for sleep_type in base_sleep_types + ["all"]:
|
||||
for sleep_type in base_sleep_types:
|
||||
sleep_episodes_none = sleep_data[sleep_data["is_main_sleep"] == (1 if sleep_type == "main" else 0)] if sleep_type != "all" else sleep_data
|
||||
sleep_episodes_none = mergeSleepEpisodes(sleep_episodes_none, ["local_segment", "type_episode_id"])
|
||||
sleep_intraday_features = pd.concat([sleep_intraday_features, statsFeatures(sleep_episodes_none, features, "all" + sleep_type)], axis=1)
|
||||
|
||||
sleep_intraday_features.fillna(0, inplace=True)
|
||||
|
||||
return sleep_intraday_features
|
||||
|
||||
|
||||
|
@ -132,6 +136,7 @@ def ratiosFeatures(sleep_intraday_features, ratios_types, ratios_scopes, sleep_l
|
|||
if "ACROSS_TYPES" in ratios_scopes:
|
||||
for ratios_type in ratios_types:
|
||||
agg_func = "countepisode" if ratios_type == "count" else "sumduration"
|
||||
# We do not provide the ratio for nap because is complementary.
|
||||
across_types = (sleep_intraday_features[agg_func + "allmain"] / sleep_intraday_features[agg_func + "allall"]).to_frame().rename(columns={0: "ratio" + ratios_type + "main"})
|
||||
sleep_intraday_features = pd.concat([sleep_intraday_features, across_types], axis=1)
|
||||
|
||||
|
@ -151,11 +156,16 @@ def ratiosFeatures(sleep_intraday_features, ratios_types, ratios_scopes, sleep_l
|
|||
# 7) ratios_type: "duration", sleep_levels_combined: ("unified", "asleep"), sleep_type: "main"
|
||||
# 8) ratios_type: "duration", sleep_levels_combined: ("unified", "asleep"), sleep_type: "nap"
|
||||
for ratios_type, sleep_levels_combined, sleep_type in itertools.product(ratios_types, sleep_level_with_group, sleep_types):
|
||||
|
||||
# "all" sleep type will not be cosidered for any ratios features since it will be 1 all the time
|
||||
if sleep_type == "all":
|
||||
continue
|
||||
|
||||
sleep_level_group, sleep_level = sleep_levels_combined[0], sleep_levels_combined[1]
|
||||
agg_func = "countepisode" if ratios_type == "count" else "sumduration"
|
||||
|
||||
# WITHIN LEVELS
|
||||
if "WITHIN_LEVELS" in ratios_scopes:
|
||||
if ("WITHIN_LEVELS" in ratios_scopes) and (sleep_type == "main"): # We do not provide the ratio for nap because is complementary.
|
||||
within_levels = (sleep_intraday_features[agg_func + sleep_level + sleep_level_group + sleep_type] / sleep_intraday_features[agg_func + sleep_level + sleep_level_group + "all"]).to_frame().rename(columns={0: "ratio" + ratios_type + sleep_type + "within" + sleep_level + sleep_level_group})
|
||||
sleep_intraday_features = pd.concat([sleep_intraday_features, within_levels], axis=1)
|
||||
|
||||
|
@ -167,61 +177,24 @@ def ratiosFeatures(sleep_intraday_features, ratios_types, ratios_scopes, sleep_l
|
|||
return sleep_intraday_features
|
||||
|
||||
|
||||
def singleSleepTypeRoutineFeatures(sleep_intraday_data, routine, reference_time, sleep_type, sleep_intraday_features):
|
||||
|
||||
sleep_intraday_data = sleep_intraday_data[sleep_intraday_data["is_main_sleep"] == (1 if sleep_type == "mainsleep" else 0)]
|
||||
if "starttimefirst" + sleep_type in routine:
|
||||
grouped_first = sleep_intraday_data.groupby(["local_segment"]).first()
|
||||
if reference_time == "MIDNIGHT":
|
||||
sleep_intraday_features["starttimefirst" + sleep_type] = grouped_first["local_start_date_time"].apply(lambda x: x.hour * 60 + x.minute + x.second / 60)
|
||||
elif reference_time == "START_OF_THE_SEGMENT":
|
||||
sleep_intraday_features["starttimefirst" + sleep_type] = (grouped_first["start_timestamp"] - grouped_first["segment_start_timestamp"]) / (60 * 1000)
|
||||
else:
|
||||
raise ValueError("Please check FITBIT_SLEEP_INTRADAY section of config.yaml: REFERENCE_TIME can only be MIDNIGHT or START_OF_THE_SEGMENT.")
|
||||
|
||||
if "endtimelast" + sleep_type in routine:
|
||||
grouped_last = sleep_intraday_data.groupby(["local_segment"]).last()
|
||||
if reference_time == "MIDNIGHT":
|
||||
sleep_intraday_features["endtimelast" + sleep_type] = grouped_last["local_end_date_time"].apply(lambda x: x.hour * 60 + x.minute + x.second / 60)
|
||||
elif reference_time == "START_OF_THE_SEGMENT":
|
||||
sleep_intraday_features["endtimelast" + sleep_type] = (grouped_last["end_timestamp"] - grouped_last["segment_start_timestamp"]) / (60 * 1000)
|
||||
else:
|
||||
raise ValueError("Please check FITBIT_SLEEP_INTRADAY section of config.yaml: REFERENCE_TIME can only be MIDNIGHT or START_OF_THE_SEGMENT.")
|
||||
|
||||
return sleep_intraday_features
|
||||
|
||||
def routineFeatures(sleep_intraday_data, routine, reference_time, sleep_type, sleep_intraday_features):
|
||||
|
||||
if "starttimefirstmainsleep" in routine or "endtimelastmainsleep" in routine:
|
||||
sleep_intraday_features = singleSleepTypeRoutineFeatures(sleep_intraday_data, routine, reference_time, "mainsleep", sleep_intraday_features)
|
||||
|
||||
if "starttimefirstnap" in routine or "endtimelastnap" in routine:
|
||||
sleep_intraday_features = singleSleepTypeRoutineFeatures(sleep_intraday_data, routine, reference_time, "nap", sleep_intraday_features)
|
||||
|
||||
return sleep_intraday_features
|
||||
|
||||
|
||||
def rapids_features(sensor_data_files, time_segment, provider, filter_data_by_segment, *args, **kwargs):
|
||||
|
||||
sleep_intraday_data = pd.read_csv(sensor_data_files["sensor_data"])
|
||||
|
||||
consider_all = provider["FEATURES"]["LEVELS_AND_TYPES_COMBINING_ALL"]
|
||||
include_sleep_later_than = provider["INCLUDE_SLEEP_LATER_THAN"]
|
||||
reference_time = provider["REFERENCE_TIME"]
|
||||
|
||||
requested_intraday_features = provider["FEATURES"]
|
||||
levels_include_all_groups = provider["SLEEP_LEVELS"]["INCLUDE_ALL_GROUPS"]
|
||||
requested_sleep_levels = provider["SLEEP_LEVELS"]
|
||||
requested_sleep_types = provider["SLEEP_TYPES"]
|
||||
|
||||
# Name of the features this function can compute
|
||||
base_intraday_features = {"LEVELS_AND_TYPES": ["countepisode", "sumduration", "maxduration", "minduration", "avgduration", "medianduration", "stdduration"],
|
||||
"RATIOS_TYPE": ["count", "duration"],
|
||||
"RATIOS_SCOPE": ["ACROSS_LEVELS", "ACROSS_TYPES", "WITHIN_LEVELS", "WITHIN_TYPES"],
|
||||
"ROUTINE": ["starttimefirstmainsleep", "endtimelastmainsleep", "starttimefirstnap", "endtimelastnap"]}
|
||||
"RATIOS_SCOPE": ["ACROSS_LEVELS", "ACROSS_TYPES", "WITHIN_LEVELS", "WITHIN_TYPES"]}
|
||||
base_sleep_levels = {"CLASSIC": ["awake", "restless", "asleep"],
|
||||
"STAGES": ["wake", "deep", "light", "rem"],
|
||||
"UNIFIED": ["awake", "asleep"]}
|
||||
base_sleep_types = ["main", "nap"]
|
||||
base_sleep_types = ["main", "nap", "all"]
|
||||
|
||||
# The subset of requested features this function can compute
|
||||
intraday_features_to_compute = {key: list(set(requested_intraday_features[key]) & set(base_intraday_features[key])) for key in requested_intraday_features if key in base_intraday_features}
|
||||
|
@ -229,15 +202,9 @@ def rapids_features(sensor_data_files, time_segment, provider, filter_data_by_se
|
|||
sleep_types_to_compute = list(set(requested_sleep_types) & set(base_sleep_types))
|
||||
|
||||
# Full names
|
||||
features_fullnames = featuresFullNames(intraday_features_to_compute, sleep_levels_to_compute, sleep_types_to_compute, consider_all)
|
||||
features_fullnames = featuresFullNames(intraday_features_to_compute, sleep_levels_to_compute, sleep_types_to_compute, levels_include_all_groups)
|
||||
sleep_intraday_features = pd.DataFrame(columns=features_fullnames)
|
||||
|
||||
# Include sleep later than
|
||||
start_minutes = sleep_intraday_data.groupby("start_timestamp").first()["local_time"].apply(lambda x: int(x.split(":")[0]) * 60 + int(x.split(":")[1]) + int(x.split(":")[2]) / 60).to_frame().rename(columns={"local_time": "start_minutes"}).reset_index()
|
||||
sleep_intraday_data = sleep_intraday_data.merge(start_minutes, on="start_timestamp", how="left")
|
||||
sleep_intraday_data = sleep_intraday_data[sleep_intraday_data["start_minutes"] >= include_sleep_later_than]
|
||||
del sleep_intraday_data["start_minutes"]
|
||||
|
||||
sleep_intraday_data = filter_data_by_segment(sleep_intraday_data, time_segment)
|
||||
|
||||
# While level_episode_id is based on levels provided by Fitbit (classic & stages), unified_level_episode_id is based on unified_level.
|
||||
|
@ -253,9 +220,6 @@ def rapids_features(sensor_data_files, time_segment, provider, filter_data_by_se
|
|||
# RATIOS: only compute requested features
|
||||
sleep_intraday_features = ratiosFeatures(sleep_intraday_features, intraday_features_to_compute["RATIOS_TYPE"], intraday_features_to_compute["RATIOS_SCOPE"], sleep_levels_to_compute, sleep_types_to_compute)
|
||||
|
||||
# ROUTINE: only compute requested features
|
||||
sleep_intraday_features = routineFeatures(sleep_intraday_data, intraday_features_to_compute["ROUTINE"], reference_time, sleep_types_to_compute, sleep_intraday_features)
|
||||
|
||||
# Reset index and discard features which are not requested by user
|
||||
sleep_intraday_features.index.name = "local_segment"
|
||||
sleep_intraday_features.reset_index(inplace=True)
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
import pandas as pd
|
||||
import numpy as np
|
||||
import itertools
|
||||
|
||||
def extractSleepFeaturesFromSummaryData(sleep_summary_data, summary_features, sleep_type, sleep_summary_features):
|
||||
def extractSleepFeaturesFromSummaryData(sleep_summary_data, summary_features, sleep_type, waketime_features, sleep_summary_features):
|
||||
if sleep_type == "main":
|
||||
sleep_summary_data = sleep_summary_data[sleep_summary_data["is_main_sleep"] == 1]
|
||||
elif sleep_type == "nap":
|
||||
|
@ -11,7 +12,7 @@ def extractSleepFeaturesFromSummaryData(sleep_summary_data, summary_features, sl
|
|||
else:
|
||||
raise ValueError("sleep_type can only be one of ['main', 'nap', 'all'].")
|
||||
|
||||
features_sum = sleep_summary_data[["local_segment", "minutes_after_wakeup", "minutes_asleep", "minutes_awake", "minutes_to_fall_asleep", "minutes_in_bed"]].groupby(["local_segment"]).sum()
|
||||
features_sum = sleep_summary_data[["local_segment", "minutes_after_wakeup", "minutes_asleep", "minutes_awake", "minutes_to_fall_asleep", "minutes_in_bed"]].groupby(["local_segment"]).sum(min_count=1)
|
||||
|
||||
if "sumdurationafterwakeup" in summary_features:
|
||||
sleep_summary_features = sleep_summary_features.join(features_sum[["minutes_after_wakeup"]], how="outer").rename(columns={"minutes_after_wakeup": "sumdurationafterwakeup" + sleep_type})
|
||||
|
@ -39,11 +40,25 @@ def extractSleepFeaturesFromSummaryData(sleep_summary_data, summary_features, sl
|
|||
if "avgdurationinbed" in summary_features:
|
||||
sleep_summary_features = sleep_summary_features.join(features_avg[["minutes_in_bed"]], how="outer").rename(columns={"minutes_in_bed": "avgdurationinbed" + sleep_type})
|
||||
|
||||
features_count = sleep_summary_data[["local_segment", "timestamp"]].groupby(["local_segment"]).count()
|
||||
|
||||
if "countepisode" in summary_features:
|
||||
features_count = sleep_summary_data[["local_segment", "timestamp"]].groupby(["local_segment"]).count()
|
||||
sleep_summary_features = sleep_summary_features.join(features_count[["timestamp"]], how="outer").rename(columns={"timestamp": "countepisode" + sleep_type})
|
||||
|
||||
|
||||
if "firstbedtime" in summary_features:
|
||||
features_first = sleep_summary_data[["local_segment", "minutes_start_episode"]].groupby(["local_segment"]).min()
|
||||
sleep_summary_features = sleep_summary_features.join(features_first[["minutes_start_episode"]], how="outer").rename(columns={"minutes_start_episode": "firstbedtime" + sleep_type})
|
||||
if "lastbedtime" in summary_features:
|
||||
features_last = sleep_summary_data[["local_segment", "minutes_start_episode"]].groupby(["local_segment"]).max()
|
||||
sleep_summary_features = sleep_summary_features.join(features_last[["minutes_start_episode"]], how="outer").rename(columns={"minutes_start_episode": "lastbedtime" + sleep_type})
|
||||
|
||||
if "firstwaketime" in summary_features:
|
||||
sleep_summary_features = sleep_summary_features.join(waketime_features[["firstwaketime" + sleep_type]], how="outer")
|
||||
if "lastwaketime" in summary_features:
|
||||
sleep_summary_features = sleep_summary_features.join(waketime_features[["lastwaketime" + sleep_type]], how="outer")
|
||||
|
||||
|
||||
return sleep_summary_features
|
||||
|
||||
|
||||
|
@ -55,7 +70,7 @@ def rapids_features(sensor_data_files, time_segment, provider, filter_data_by_se
|
|||
requested_sleep_types = provider["SLEEP_TYPES"]
|
||||
|
||||
# name of the features this function can compute
|
||||
base_summary_features = ["countepisode", "avgefficiency", "sumdurationafterwakeup", "sumdurationasleep", "sumdurationawake", "sumdurationtofallasleep", "sumdurationinbed", "avgdurationafterwakeup", "avgdurationasleep", "avgdurationawake", "avgdurationtofallasleep", "avgdurationinbed"]
|
||||
base_summary_features = ["firstwaketime", "lastwaketime", "firstbedtime", "lastbedtime", "countepisode", "avgefficiency", "sumdurationafterwakeup", "sumdurationasleep", "sumdurationawake", "sumdurationtofallasleep", "sumdurationinbed", "avgdurationafterwakeup", "avgdurationasleep", "avgdurationawake", "avgdurationtofallasleep", "avgdurationinbed"]
|
||||
base_sleep_types = ["main", "nap", "all"]
|
||||
# the subset of requested features this function can compute
|
||||
summary_features_to_compute = list(set(requested_summary_features) & set(base_summary_features))
|
||||
|
@ -63,13 +78,37 @@ def rapids_features(sensor_data_files, time_segment, provider, filter_data_by_se
|
|||
# full names
|
||||
features_fullnames_to_compute = ["".join(feature) for feature in itertools.product(summary_features_to_compute, sleep_types_to_compute)]
|
||||
|
||||
colnames_can_be_zero = [col for col in features_fullnames_to_compute if "avgefficiency" not in col]
|
||||
colnames_can_be_zero = ["".join(feature) for feature in itertools.product(set(summary_features_to_compute) - set(["firstwaketime", "lastwaketime", "firstbedtime", "lastbedtime", "avgefficiency"]), sleep_types_to_compute)]
|
||||
|
||||
# extract features from summary data
|
||||
sleep_summary_features = pd.DataFrame(columns=["local_segment"] + features_fullnames_to_compute)
|
||||
if not sleep_summary_data.empty:
|
||||
|
||||
# calculate number of minutes after segment's start date time
|
||||
dt_cols = ["local_start_date_time", "local_end_date_time", "local_date_time"]
|
||||
sleep_summary_data[dt_cols] = sleep_summary_data[dt_cols].apply(pd.to_datetime)
|
||||
sleep_summary_data["minutes_start_episode"] = (sleep_summary_data["local_start_date_time"] - sleep_summary_data["local_date_time"]) / pd.Timedelta(minutes=1)
|
||||
sleep_summary_data["minutes_end_episode"] = (sleep_summary_data["local_end_date_time"] - (sleep_summary_data["local_date_time"] + pd.Timedelta(days=1))) / pd.Timedelta(minutes=1)
|
||||
|
||||
# get minutes_end_episode for different sleep types
|
||||
sleep_summary_data["minutes_end_episode_main"] = sleep_summary_data.apply(lambda row: row["minutes_end_episode"] if row["is_main_sleep"] == 1 else np.nan, axis=1)
|
||||
sleep_summary_data["minutes_end_episode_nap"] = sleep_summary_data.apply(lambda row: row["minutes_end_episode"] if row["is_main_sleep"] == 0 else np.nan, axis=1)
|
||||
|
||||
# extract daily wake time
|
||||
sleep_summary_data = sleep_summary_data.merge(sleep_summary_data.groupby("local_date_time")[["minutes_end_episode", "minutes_end_episode_main", "minutes_end_episode_nap"]].agg(
|
||||
firstwaketimeall=("minutes_end_episode", "min"),
|
||||
lastwaketimeall=("minutes_end_episode", "max"),
|
||||
firstwaketimemain=("minutes_end_episode_main", "min"),
|
||||
lastwaketimemain=("minutes_end_episode_main", "max"),
|
||||
firstwaketimenap=("minutes_end_episode_nap", "min"),
|
||||
lastwaketimenap=("minutes_end_episode_nap", "max"),
|
||||
).shift(), right_index=True, left_on="local_date_time")
|
||||
|
||||
# filter by segment
|
||||
sleep_summary_data = filter_data_by_segment(sleep_summary_data, time_segment)
|
||||
|
||||
notna_segments = sleep_summary_data[sleep_summary_data["type"].notna()]["local_segment"].unique()
|
||||
|
||||
if not sleep_summary_data.empty:
|
||||
# only keep the segments start at 00:00:00 and end at 23:59:59
|
||||
datetime_start_regex = "[0-9]{4}[\\-|\\/][0-9]{2}[\\-|\\/][0-9]{2} 00:00:00"
|
||||
|
@ -81,10 +120,21 @@ def rapids_features(sensor_data_files, time_segment, provider, filter_data_by_se
|
|||
if not sleep_summary_data.empty:
|
||||
sleep_summary_features = pd.DataFrame()
|
||||
|
||||
for sleep_type in sleep_types_to_compute:
|
||||
sleep_summary_features = extractSleepFeaturesFromSummaryData(sleep_summary_data, summary_features_to_compute, sleep_type, sleep_summary_features)
|
||||
waketime_features = sleep_summary_data.drop_duplicates(subset=["local_date_time"]).groupby(["local_segment"]).agg(
|
||||
firstwaketimeall=("firstwaketimeall", "mean"),
|
||||
lastwaketimeall=("lastwaketimeall", "mean"),
|
||||
firstwaketimemain=("firstwaketimemain", "mean"),
|
||||
lastwaketimemain=("lastwaketimemain", "mean"),
|
||||
firstwaketimenap=("firstwaketimenap", "mean"),
|
||||
lastwaketimenap=("lastwaketimenap", "mean"),
|
||||
)
|
||||
sleep_summary_data.dropna(subset=["is_main_sleep"], inplace=True)
|
||||
|
||||
sleep_summary_features[colnames_can_be_zero] = sleep_summary_features[colnames_can_be_zero].fillna(0)
|
||||
for sleep_type in sleep_types_to_compute:
|
||||
sleep_summary_features = extractSleepFeaturesFromSummaryData(sleep_summary_data, summary_features_to_compute, sleep_type, waketime_features, sleep_summary_features)
|
||||
|
||||
sleep_summary_features.dropna(how="all", inplace=True)
|
||||
sleep_summary_features.loc[notna_segments, colnames_can_be_zero] = sleep_summary_features.loc[notna_segments, colnames_can_be_zero].fillna(0)
|
||||
|
||||
sleep_summary_features = sleep_summary_features.reset_index()
|
||||
|
||||
|
|
|
@ -71,7 +71,7 @@ def chunk_episodes(sensor_episodes):
|
|||
# Merge episodes
|
||||
cols_for_groupby = [col for col in sensor_episodes.columns if col not in ["timestamps_segment", "timestamp", "assigned_segments", "start_datetime", "end_datetime", "start_timestamp", "end_timestamp", "duration", "chunked_start_timestamp", "chunked_end_timestamp"]]
|
||||
|
||||
sensor_episodes_grouped = sensor_episodes.groupby(by=cols_for_groupby)
|
||||
sensor_episodes_grouped = sensor_episodes.groupby(by=cols_for_groupby, sort=False)
|
||||
merged_sensor_episodes = sensor_episodes_grouped[["duration"]].sum()
|
||||
|
||||
merged_sensor_episodes["start_timestamp"] = sensor_episodes_grouped["chunked_start_timestamp"].first()
|
||||
|
|
|
@ -0,0 +1,23 @@
|
|||
timestamp,device_id,type_episode_id,duration,level,is_main_sleep,type,local_date_time
|
||||
0,fitbit,0,300,asleep,1,classic,2020-03-06 11:00:00
|
||||
0,fitbit,1,14400,deep,1,stages,2020-03-06 17:00:00
|
||||
0,fitbit,1,7200,wake,1,stages,2020-03-06 21:00:00
|
||||
0,fitbit,1,7200,light,1,stages,2020-03-06 23:00:00
|
||||
0,fitbit,2,3600,restless,0,classic,2020-03-07 01:00:00
|
||||
0,fitbit,2,3600,asleep,0,classic,2020-03-07 02:00:00
|
||||
0,fitbit,3,3600,restless,0,classic,2020-03-07 13:00:00
|
||||
0,fitbit,4,3600,rem,1,stages,2020-03-07 22:00:00
|
||||
0,fitbit,4,28800,deep,1,stages,2020-03-07 23:00:00
|
||||
0,fitbit,5,32400,deep,1,stages,2020-03-08 11:00:00
|
||||
0,fitbit,6,25200,deep,1,stages,2020-03-09 06:00:00
|
||||
0,fitbit,0,300,asleep,1,classic,2020-10-30 11:00:00
|
||||
0,fitbit,1,14400,deep,1,stages,2020-10-30 17:00:00
|
||||
0,fitbit,1,7200,wake,1,stages,2020-10-30 21:00:00
|
||||
0,fitbit,1,7200,light,1,stages,2020-10-30 23:00:00
|
||||
0,fitbit,2,3600,restless,0,classic,2020-10-31 01:00:00
|
||||
0,fitbit,2,3600,asleep,0,classic,2020-10-31 02:00:00
|
||||
0,fitbit,3,3600,restless,0,classic,2020-10-31 13:00:00
|
||||
0,fitbit,4,3600,rem,1,stages,2020-10-31 22:00:00
|
||||
0,fitbit,4,28800,deep,1,stages,2020-10-31 23:00:00
|
||||
0,fitbit,5,32400,deep,1,stages,2020-11-01 11:00:00
|
||||
0,fitbit,6,25200,deep,1,stages,2020-11-02 06:00:00
|
|
|
@ -0,0 +1,11 @@
|
|||
timestamp,device_id,efficiency,minutes_after_wakeup,minutes_asleep,minutes_awake,minutes_to_fall_asleep,minutes_in_bed,is_main_sleep,type,local_start_date_time,local_end_date_time
|
||||
0,fitbit,90,0,309,51,0,360,1,stages,2020-03-06 20:00:00,2020-03-07 02:00:00
|
||||
0,fitbit,86,2,90,20,10,120,0,classic,2020-03-07 04:00:00,2020-03-07 06:00:00
|
||||
0,fitbit,88,0,88,30,2,120,0,classic,2020-03-07 13:00:00,2020-03-07 15:00:00
|
||||
0,fitbit,96,1,608,52,0,660,1,stages,2020-03-08 01:00:00,2020-03-08 12:00:00
|
||||
0,fitbit,94,1,430,50,0,480,1,stages,2020-03-08 23:00:00,2020-03-09 07:00:00
|
||||
0,fitbit,90,0,309,51,0,360,1,stages,2020-10-30 20:00:00,2020-10-31 02:00:00
|
||||
0,fitbit,86,2,90,20,10,120,0,classic,2020-10-31 04:00:00,2020-10-31 06:00:00
|
||||
0,fitbit,88,0,88,30,2,120,0,classic,2020-10-31 13:00:00,2020-10-31 15:00:00
|
||||
0,fitbit,96,1,608,52,0,660,1,stages,2020-11-01 01:00:00,2020-11-01 12:00:00
|
||||
0,fitbit,94,1,430,50,0,480,1,stages,2020-11-01 23:00:00,2020-11-02 07:00:00
|
|
|
@ -0,0 +1,12 @@
|
|||
test_time,device_id,type_episode_id,duration,level,is_main_sleep,type
|
||||
Fri 11:00:00,fitbit,0,300,asleep,1,classic
|
||||
Fri 17:00:00,fitbit,1,14400,deep,1,stages
|
||||
Fri 21:00:00,fitbit,1,7200,wake,1,stages
|
||||
Fri 23:00:00,fitbit,1,7200,light,1,stages
|
||||
Sat 01:00:00,fitbit,2,3600,restless,0,classic
|
||||
Sat 02:00:00,fitbit,2,3600,asleep,0,classic
|
||||
Sat 13:00:00,fitbit,3,3600,restless,0,classic
|
||||
Sat 22:00:00,fitbit,4,3600,rem,1,stages
|
||||
Sat 23:00:00,fitbit,4,28800,deep,1,stages
|
||||
Sun 11:00:00,fitbit,5,32400,deep,1,stages
|
||||
Mon 06:00:00,fitbit,6,25200,deep,1,stages
|
|
|
@ -0,0 +1,6 @@
|
|||
device_id,efficiency,minutes_after_wakeup,minutes_asleep,minutes_awake,minutes_to_fall_asleep,minutes_in_bed,is_main_sleep,type,start_test_time,end_test_time
|
||||
fitbit,90,0,309,51,0,360,1,stages,Fri 20:00:00,Sat 02:00:00
|
||||
fitbit,86,2,90,20,10,120,0,classic,Sat 04:00:00,Sat 06:00:00
|
||||
fitbit,88,0,88,30,2,120,0,classic,Sat 13:00:00,Sat 15:00:00
|
||||
fitbit,96,1,608,52,0,660,1,stages,Sun 01:00:00,Sun 12:00:00
|
||||
fitbit,94,1,430,50,0,480,1,stages,Sun 23:00:00,Mon 07:00:00
|
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1 @@
|
|||
"local_segment","local_segment_label","local_segment_start_datetime","local_segment_end_datetime","fitbit_sleep_summary_rapids_avgdurationasleepall","fitbit_sleep_summary_rapids_avgdurationasleepmain","fitbit_sleep_summary_rapids_avgdurationasleepnap","fitbit_sleep_summary_rapids_sumdurationtofallasleepall","fitbit_sleep_summary_rapids_sumdurationtofallasleepmain","fitbit_sleep_summary_rapids_sumdurationtofallasleepnap","fitbit_sleep_summary_rapids_avgdurationinbedall","fitbit_sleep_summary_rapids_avgdurationinbedmain","fitbit_sleep_summary_rapids_avgdurationinbednap","fitbit_sleep_summary_rapids_firstwaketimeall","fitbit_sleep_summary_rapids_firstwaketimemain","fitbit_sleep_summary_rapids_firstwaketimenap","fitbit_sleep_summary_rapids_avgdurationafterwakeupall","fitbit_sleep_summary_rapids_avgdurationafterwakeupmain","fitbit_sleep_summary_rapids_avgdurationafterwakeupnap","fitbit_sleep_summary_rapids_sumdurationinbedall","fitbit_sleep_summary_rapids_sumdurationinbedmain","fitbit_sleep_summary_rapids_sumdurationinbednap","fitbit_sleep_summary_rapids_avgefficiencyall","fitbit_sleep_summary_rapids_avgefficiencymain","fitbit_sleep_summary_rapids_avgefficiencynap","fitbit_sleep_summary_rapids_sumdurationawakeall","fitbit_sleep_summary_rapids_sumdurationawakemain","fitbit_sleep_summary_rapids_sumdurationawakenap","fitbit_sleep_summary_rapids_lastbedtimeall","fitbit_sleep_summary_rapids_lastbedtimemain","fitbit_sleep_summary_rapids_lastbedtimenap","fitbit_sleep_summary_rapids_avgdurationtofallasleepall","fitbit_sleep_summary_rapids_avgdurationtofallasleepmain","fitbit_sleep_summary_rapids_avgdurationtofallasleepnap","fitbit_sleep_summary_rapids_firstbedtimeall","fitbit_sleep_summary_rapids_firstbedtimemain","fitbit_sleep_summary_rapids_firstbedtimenap","fitbit_sleep_summary_rapids_lastwaketimeall","fitbit_sleep_summary_rapids_lastwaketimemain","fitbit_sleep_summary_rapids_lastwaketimenap","fitbit_sleep_summary_rapids_avgdurationawakeall","fitbit_sleep_summary_rapids_avgdurationawakemain","fitbit_sleep_summary_rapids_avgdurationawakenap","fitbit_sleep_summary_rapids_sumdurationasleepall","fitbit_sleep_summary_rapids_sumdurationasleepmain","fitbit_sleep_summary_rapids_sumdurationasleepnap","fitbit_sleep_summary_rapids_sumdurationafterwakeupall","fitbit_sleep_summary_rapids_sumdurationafterwakeupmain","fitbit_sleep_summary_rapids_sumdurationafterwakeupnap","fitbit_sleep_summary_rapids_countepisodeall","fitbit_sleep_summary_rapids_countepisodemain","fitbit_sleep_summary_rapids_countepisodenap"
|
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1 @@
|
|||
"local_segment","local_segment_label","local_segment_start_datetime","local_segment_end_datetime","fitbit_sleep_summary_rapids_avgdurationasleepall","fitbit_sleep_summary_rapids_avgdurationasleepmain","fitbit_sleep_summary_rapids_avgdurationasleepnap","fitbit_sleep_summary_rapids_sumdurationtofallasleepall","fitbit_sleep_summary_rapids_sumdurationtofallasleepmain","fitbit_sleep_summary_rapids_sumdurationtofallasleepnap","fitbit_sleep_summary_rapids_avgdurationinbedall","fitbit_sleep_summary_rapids_avgdurationinbedmain","fitbit_sleep_summary_rapids_avgdurationinbednap","fitbit_sleep_summary_rapids_firstwaketimeall","fitbit_sleep_summary_rapids_firstwaketimemain","fitbit_sleep_summary_rapids_firstwaketimenap","fitbit_sleep_summary_rapids_avgdurationafterwakeupall","fitbit_sleep_summary_rapids_avgdurationafterwakeupmain","fitbit_sleep_summary_rapids_avgdurationafterwakeupnap","fitbit_sleep_summary_rapids_sumdurationinbedall","fitbit_sleep_summary_rapids_sumdurationinbedmain","fitbit_sleep_summary_rapids_sumdurationinbednap","fitbit_sleep_summary_rapids_avgefficiencyall","fitbit_sleep_summary_rapids_avgefficiencymain","fitbit_sleep_summary_rapids_avgefficiencynap","fitbit_sleep_summary_rapids_sumdurationawakeall","fitbit_sleep_summary_rapids_sumdurationawakemain","fitbit_sleep_summary_rapids_sumdurationawakenap","fitbit_sleep_summary_rapids_lastbedtimeall","fitbit_sleep_summary_rapids_lastbedtimemain","fitbit_sleep_summary_rapids_lastbedtimenap","fitbit_sleep_summary_rapids_avgdurationtofallasleepall","fitbit_sleep_summary_rapids_avgdurationtofallasleepmain","fitbit_sleep_summary_rapids_avgdurationtofallasleepnap","fitbit_sleep_summary_rapids_firstbedtimeall","fitbit_sleep_summary_rapids_firstbedtimemain","fitbit_sleep_summary_rapids_firstbedtimenap","fitbit_sleep_summary_rapids_lastwaketimeall","fitbit_sleep_summary_rapids_lastwaketimemain","fitbit_sleep_summary_rapids_lastwaketimenap","fitbit_sleep_summary_rapids_avgdurationawakeall","fitbit_sleep_summary_rapids_avgdurationawakemain","fitbit_sleep_summary_rapids_avgdurationawakenap","fitbit_sleep_summary_rapids_sumdurationasleepall","fitbit_sleep_summary_rapids_sumdurationasleepmain","fitbit_sleep_summary_rapids_sumdurationasleepnap","fitbit_sleep_summary_rapids_sumdurationafterwakeupall","fitbit_sleep_summary_rapids_sumdurationafterwakeupmain","fitbit_sleep_summary_rapids_sumdurationafterwakeupnap","fitbit_sleep_summary_rapids_countepisodeall","fitbit_sleep_summary_rapids_countepisodemain","fitbit_sleep_summary_rapids_countepisodenap"
|
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1 @@
|
|||
"local_segment","local_segment_label","local_segment_start_datetime","local_segment_end_datetime","fitbit_sleep_summary_rapids_avgdurationasleepall","fitbit_sleep_summary_rapids_avgdurationasleepmain","fitbit_sleep_summary_rapids_avgdurationasleepnap","fitbit_sleep_summary_rapids_sumdurationtofallasleepall","fitbit_sleep_summary_rapids_sumdurationtofallasleepmain","fitbit_sleep_summary_rapids_sumdurationtofallasleepnap","fitbit_sleep_summary_rapids_avgdurationinbedall","fitbit_sleep_summary_rapids_avgdurationinbedmain","fitbit_sleep_summary_rapids_avgdurationinbednap","fitbit_sleep_summary_rapids_firstwaketimeall","fitbit_sleep_summary_rapids_firstwaketimemain","fitbit_sleep_summary_rapids_firstwaketimenap","fitbit_sleep_summary_rapids_avgdurationafterwakeupall","fitbit_sleep_summary_rapids_avgdurationafterwakeupmain","fitbit_sleep_summary_rapids_avgdurationafterwakeupnap","fitbit_sleep_summary_rapids_sumdurationinbedall","fitbit_sleep_summary_rapids_sumdurationinbedmain","fitbit_sleep_summary_rapids_sumdurationinbednap","fitbit_sleep_summary_rapids_avgefficiencyall","fitbit_sleep_summary_rapids_avgefficiencymain","fitbit_sleep_summary_rapids_avgefficiencynap","fitbit_sleep_summary_rapids_sumdurationawakeall","fitbit_sleep_summary_rapids_sumdurationawakemain","fitbit_sleep_summary_rapids_sumdurationawakenap","fitbit_sleep_summary_rapids_lastbedtimeall","fitbit_sleep_summary_rapids_lastbedtimemain","fitbit_sleep_summary_rapids_lastbedtimenap","fitbit_sleep_summary_rapids_avgdurationtofallasleepall","fitbit_sleep_summary_rapids_avgdurationtofallasleepmain","fitbit_sleep_summary_rapids_avgdurationtofallasleepnap","fitbit_sleep_summary_rapids_firstbedtimeall","fitbit_sleep_summary_rapids_firstbedtimemain","fitbit_sleep_summary_rapids_firstbedtimenap","fitbit_sleep_summary_rapids_lastwaketimeall","fitbit_sleep_summary_rapids_lastwaketimemain","fitbit_sleep_summary_rapids_lastwaketimenap","fitbit_sleep_summary_rapids_avgdurationawakeall","fitbit_sleep_summary_rapids_avgdurationawakemain","fitbit_sleep_summary_rapids_avgdurationawakenap","fitbit_sleep_summary_rapids_sumdurationasleepall","fitbit_sleep_summary_rapids_sumdurationasleepmain","fitbit_sleep_summary_rapids_sumdurationasleepnap","fitbit_sleep_summary_rapids_sumdurationafterwakeupall","fitbit_sleep_summary_rapids_sumdurationafterwakeupmain","fitbit_sleep_summary_rapids_sumdurationafterwakeupnap","fitbit_sleep_summary_rapids_countepisodeall","fitbit_sleep_summary_rapids_countepisodemain","fitbit_sleep_summary_rapids_countepisodenap"
|
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1 @@
|
|||
"local_segment","local_segment_label","local_segment_start_datetime","local_segment_end_datetime","fitbit_sleep_summary_rapids_avgdurationasleepall","fitbit_sleep_summary_rapids_avgdurationasleepmain","fitbit_sleep_summary_rapids_avgdurationasleepnap","fitbit_sleep_summary_rapids_sumdurationtofallasleepall","fitbit_sleep_summary_rapids_sumdurationtofallasleepmain","fitbit_sleep_summary_rapids_sumdurationtofallasleepnap","fitbit_sleep_summary_rapids_avgdurationinbedall","fitbit_sleep_summary_rapids_avgdurationinbedmain","fitbit_sleep_summary_rapids_avgdurationinbednap","fitbit_sleep_summary_rapids_firstwaketimeall","fitbit_sleep_summary_rapids_firstwaketimemain","fitbit_sleep_summary_rapids_firstwaketimenap","fitbit_sleep_summary_rapids_avgdurationafterwakeupall","fitbit_sleep_summary_rapids_avgdurationafterwakeupmain","fitbit_sleep_summary_rapids_avgdurationafterwakeupnap","fitbit_sleep_summary_rapids_sumdurationinbedall","fitbit_sleep_summary_rapids_sumdurationinbedmain","fitbit_sleep_summary_rapids_sumdurationinbednap","fitbit_sleep_summary_rapids_avgefficiencyall","fitbit_sleep_summary_rapids_avgefficiencymain","fitbit_sleep_summary_rapids_avgefficiencynap","fitbit_sleep_summary_rapids_sumdurationawakeall","fitbit_sleep_summary_rapids_sumdurationawakemain","fitbit_sleep_summary_rapids_sumdurationawakenap","fitbit_sleep_summary_rapids_lastbedtimeall","fitbit_sleep_summary_rapids_lastbedtimemain","fitbit_sleep_summary_rapids_lastbedtimenap","fitbit_sleep_summary_rapids_avgdurationtofallasleepall","fitbit_sleep_summary_rapids_avgdurationtofallasleepmain","fitbit_sleep_summary_rapids_avgdurationtofallasleepnap","fitbit_sleep_summary_rapids_firstbedtimeall","fitbit_sleep_summary_rapids_firstbedtimemain","fitbit_sleep_summary_rapids_firstbedtimenap","fitbit_sleep_summary_rapids_lastwaketimeall","fitbit_sleep_summary_rapids_lastwaketimemain","fitbit_sleep_summary_rapids_lastwaketimenap","fitbit_sleep_summary_rapids_avgdurationawakeall","fitbit_sleep_summary_rapids_avgdurationawakemain","fitbit_sleep_summary_rapids_avgdurationawakenap","fitbit_sleep_summary_rapids_sumdurationasleepall","fitbit_sleep_summary_rapids_sumdurationasleepmain","fitbit_sleep_summary_rapids_sumdurationasleepnap","fitbit_sleep_summary_rapids_sumdurationafterwakeupall","fitbit_sleep_summary_rapids_sumdurationafterwakeupmain","fitbit_sleep_summary_rapids_sumdurationafterwakeupnap","fitbit_sleep_summary_rapids_countepisodeall","fitbit_sleep_summary_rapids_countepisodemain","fitbit_sleep_summary_rapids_countepisodenap"
|
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1 @@
|
|||
"local_segment","local_segment_label","local_segment_start_datetime","local_segment_end_datetime","fitbit_sleep_summary_rapids_avgdurationasleepall","fitbit_sleep_summary_rapids_avgdurationasleepmain","fitbit_sleep_summary_rapids_avgdurationasleepnap","fitbit_sleep_summary_rapids_sumdurationtofallasleepall","fitbit_sleep_summary_rapids_sumdurationtofallasleepmain","fitbit_sleep_summary_rapids_sumdurationtofallasleepnap","fitbit_sleep_summary_rapids_avgdurationinbedall","fitbit_sleep_summary_rapids_avgdurationinbedmain","fitbit_sleep_summary_rapids_avgdurationinbednap","fitbit_sleep_summary_rapids_firstwaketimeall","fitbit_sleep_summary_rapids_firstwaketimemain","fitbit_sleep_summary_rapids_firstwaketimenap","fitbit_sleep_summary_rapids_avgdurationafterwakeupall","fitbit_sleep_summary_rapids_avgdurationafterwakeupmain","fitbit_sleep_summary_rapids_avgdurationafterwakeupnap","fitbit_sleep_summary_rapids_sumdurationinbedall","fitbit_sleep_summary_rapids_sumdurationinbedmain","fitbit_sleep_summary_rapids_sumdurationinbednap","fitbit_sleep_summary_rapids_avgefficiencyall","fitbit_sleep_summary_rapids_avgefficiencymain","fitbit_sleep_summary_rapids_avgefficiencynap","fitbit_sleep_summary_rapids_sumdurationawakeall","fitbit_sleep_summary_rapids_sumdurationawakemain","fitbit_sleep_summary_rapids_sumdurationawakenap","fitbit_sleep_summary_rapids_lastbedtimeall","fitbit_sleep_summary_rapids_lastbedtimemain","fitbit_sleep_summary_rapids_lastbedtimenap","fitbit_sleep_summary_rapids_avgdurationtofallasleepall","fitbit_sleep_summary_rapids_avgdurationtofallasleepmain","fitbit_sleep_summary_rapids_avgdurationtofallasleepnap","fitbit_sleep_summary_rapids_firstbedtimeall","fitbit_sleep_summary_rapids_firstbedtimemain","fitbit_sleep_summary_rapids_firstbedtimenap","fitbit_sleep_summary_rapids_lastwaketimeall","fitbit_sleep_summary_rapids_lastwaketimemain","fitbit_sleep_summary_rapids_lastwaketimenap","fitbit_sleep_summary_rapids_avgdurationawakeall","fitbit_sleep_summary_rapids_avgdurationawakemain","fitbit_sleep_summary_rapids_avgdurationawakenap","fitbit_sleep_summary_rapids_sumdurationasleepall","fitbit_sleep_summary_rapids_sumdurationasleepmain","fitbit_sleep_summary_rapids_sumdurationasleepnap","fitbit_sleep_summary_rapids_sumdurationafterwakeupall","fitbit_sleep_summary_rapids_sumdurationafterwakeupmain","fitbit_sleep_summary_rapids_sumdurationafterwakeupnap","fitbit_sleep_summary_rapids_countepisodeall","fitbit_sleep_summary_rapids_countepisodemain","fitbit_sleep_summary_rapids_countepisodenap"
|
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1 @@
|
|||
"local_segment","local_segment_label","local_segment_start_datetime","local_segment_end_datetime","fitbit_sleep_summary_rapids_avgdurationasleepall","fitbit_sleep_summary_rapids_avgdurationasleepmain","fitbit_sleep_summary_rapids_avgdurationasleepnap","fitbit_sleep_summary_rapids_sumdurationtofallasleepall","fitbit_sleep_summary_rapids_sumdurationtofallasleepmain","fitbit_sleep_summary_rapids_sumdurationtofallasleepnap","fitbit_sleep_summary_rapids_avgdurationinbedall","fitbit_sleep_summary_rapids_avgdurationinbedmain","fitbit_sleep_summary_rapids_avgdurationinbednap","fitbit_sleep_summary_rapids_firstwaketimeall","fitbit_sleep_summary_rapids_firstwaketimemain","fitbit_sleep_summary_rapids_firstwaketimenap","fitbit_sleep_summary_rapids_avgdurationafterwakeupall","fitbit_sleep_summary_rapids_avgdurationafterwakeupmain","fitbit_sleep_summary_rapids_avgdurationafterwakeupnap","fitbit_sleep_summary_rapids_sumdurationinbedall","fitbit_sleep_summary_rapids_sumdurationinbedmain","fitbit_sleep_summary_rapids_sumdurationinbednap","fitbit_sleep_summary_rapids_avgefficiencyall","fitbit_sleep_summary_rapids_avgefficiencymain","fitbit_sleep_summary_rapids_avgefficiencynap","fitbit_sleep_summary_rapids_sumdurationawakeall","fitbit_sleep_summary_rapids_sumdurationawakemain","fitbit_sleep_summary_rapids_sumdurationawakenap","fitbit_sleep_summary_rapids_lastbedtimeall","fitbit_sleep_summary_rapids_lastbedtimemain","fitbit_sleep_summary_rapids_lastbedtimenap","fitbit_sleep_summary_rapids_avgdurationtofallasleepall","fitbit_sleep_summary_rapids_avgdurationtofallasleepmain","fitbit_sleep_summary_rapids_avgdurationtofallasleepnap","fitbit_sleep_summary_rapids_firstbedtimeall","fitbit_sleep_summary_rapids_firstbedtimemain","fitbit_sleep_summary_rapids_firstbedtimenap","fitbit_sleep_summary_rapids_lastwaketimeall","fitbit_sleep_summary_rapids_lastwaketimemain","fitbit_sleep_summary_rapids_lastwaketimenap","fitbit_sleep_summary_rapids_avgdurationawakeall","fitbit_sleep_summary_rapids_avgdurationawakemain","fitbit_sleep_summary_rapids_avgdurationawakenap","fitbit_sleep_summary_rapids_sumdurationasleepall","fitbit_sleep_summary_rapids_sumdurationasleepmain","fitbit_sleep_summary_rapids_sumdurationasleepnap","fitbit_sleep_summary_rapids_sumdurationafterwakeupall","fitbit_sleep_summary_rapids_sumdurationafterwakeupmain","fitbit_sleep_summary_rapids_sumdurationafterwakeupnap","fitbit_sleep_summary_rapids_countepisodeall","fitbit_sleep_summary_rapids_countepisodemain","fitbit_sleep_summary_rapids_countepisodenap"
|
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1 @@
|
|||
"local_segment","local_segment_label","local_segment_start_datetime","local_segment_end_datetime","fitbit_sleep_summary_rapids_avgdurationasleepall","fitbit_sleep_summary_rapids_avgdurationasleepmain","fitbit_sleep_summary_rapids_avgdurationasleepnap","fitbit_sleep_summary_rapids_sumdurationtofallasleepall","fitbit_sleep_summary_rapids_sumdurationtofallasleepmain","fitbit_sleep_summary_rapids_sumdurationtofallasleepnap","fitbit_sleep_summary_rapids_avgdurationinbedall","fitbit_sleep_summary_rapids_avgdurationinbedmain","fitbit_sleep_summary_rapids_avgdurationinbednap","fitbit_sleep_summary_rapids_firstwaketimeall","fitbit_sleep_summary_rapids_firstwaketimemain","fitbit_sleep_summary_rapids_firstwaketimenap","fitbit_sleep_summary_rapids_avgdurationafterwakeupall","fitbit_sleep_summary_rapids_avgdurationafterwakeupmain","fitbit_sleep_summary_rapids_avgdurationafterwakeupnap","fitbit_sleep_summary_rapids_sumdurationinbedall","fitbit_sleep_summary_rapids_sumdurationinbedmain","fitbit_sleep_summary_rapids_sumdurationinbednap","fitbit_sleep_summary_rapids_avgefficiencyall","fitbit_sleep_summary_rapids_avgefficiencymain","fitbit_sleep_summary_rapids_avgefficiencynap","fitbit_sleep_summary_rapids_sumdurationawakeall","fitbit_sleep_summary_rapids_sumdurationawakemain","fitbit_sleep_summary_rapids_sumdurationawakenap","fitbit_sleep_summary_rapids_lastbedtimeall","fitbit_sleep_summary_rapids_lastbedtimemain","fitbit_sleep_summary_rapids_lastbedtimenap","fitbit_sleep_summary_rapids_avgdurationtofallasleepall","fitbit_sleep_summary_rapids_avgdurationtofallasleepmain","fitbit_sleep_summary_rapids_avgdurationtofallasleepnap","fitbit_sleep_summary_rapids_firstbedtimeall","fitbit_sleep_summary_rapids_firstbedtimemain","fitbit_sleep_summary_rapids_firstbedtimenap","fitbit_sleep_summary_rapids_lastwaketimeall","fitbit_sleep_summary_rapids_lastwaketimemain","fitbit_sleep_summary_rapids_lastwaketimenap","fitbit_sleep_summary_rapids_avgdurationawakeall","fitbit_sleep_summary_rapids_avgdurationawakemain","fitbit_sleep_summary_rapids_avgdurationawakenap","fitbit_sleep_summary_rapids_sumdurationasleepall","fitbit_sleep_summary_rapids_sumdurationasleepmain","fitbit_sleep_summary_rapids_sumdurationasleepnap","fitbit_sleep_summary_rapids_sumdurationafterwakeupall","fitbit_sleep_summary_rapids_sumdurationafterwakeupmain","fitbit_sleep_summary_rapids_sumdurationafterwakeupnap","fitbit_sleep_summary_rapids_countepisodeall","fitbit_sleep_summary_rapids_countepisodemain","fitbit_sleep_summary_rapids_countepisodenap"
|
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1 @@
|
|||
"local_segment","local_segment_label","local_segment_start_datetime","local_segment_end_datetime","fitbit_sleep_summary_rapids_avgdurationasleepall","fitbit_sleep_summary_rapids_avgdurationasleepmain","fitbit_sleep_summary_rapids_avgdurationasleepnap","fitbit_sleep_summary_rapids_sumdurationtofallasleepall","fitbit_sleep_summary_rapids_sumdurationtofallasleepmain","fitbit_sleep_summary_rapids_sumdurationtofallasleepnap","fitbit_sleep_summary_rapids_avgdurationinbedall","fitbit_sleep_summary_rapids_avgdurationinbedmain","fitbit_sleep_summary_rapids_avgdurationinbednap","fitbit_sleep_summary_rapids_firstwaketimeall","fitbit_sleep_summary_rapids_firstwaketimemain","fitbit_sleep_summary_rapids_firstwaketimenap","fitbit_sleep_summary_rapids_avgdurationafterwakeupall","fitbit_sleep_summary_rapids_avgdurationafterwakeupmain","fitbit_sleep_summary_rapids_avgdurationafterwakeupnap","fitbit_sleep_summary_rapids_sumdurationinbedall","fitbit_sleep_summary_rapids_sumdurationinbedmain","fitbit_sleep_summary_rapids_sumdurationinbednap","fitbit_sleep_summary_rapids_avgefficiencyall","fitbit_sleep_summary_rapids_avgefficiencymain","fitbit_sleep_summary_rapids_avgefficiencynap","fitbit_sleep_summary_rapids_sumdurationawakeall","fitbit_sleep_summary_rapids_sumdurationawakemain","fitbit_sleep_summary_rapids_sumdurationawakenap","fitbit_sleep_summary_rapids_lastbedtimeall","fitbit_sleep_summary_rapids_lastbedtimemain","fitbit_sleep_summary_rapids_lastbedtimenap","fitbit_sleep_summary_rapids_avgdurationtofallasleepall","fitbit_sleep_summary_rapids_avgdurationtofallasleepmain","fitbit_sleep_summary_rapids_avgdurationtofallasleepnap","fitbit_sleep_summary_rapids_firstbedtimeall","fitbit_sleep_summary_rapids_firstbedtimemain","fitbit_sleep_summary_rapids_firstbedtimenap","fitbit_sleep_summary_rapids_lastwaketimeall","fitbit_sleep_summary_rapids_lastwaketimemain","fitbit_sleep_summary_rapids_lastwaketimenap","fitbit_sleep_summary_rapids_avgdurationawakeall","fitbit_sleep_summary_rapids_avgdurationawakemain","fitbit_sleep_summary_rapids_avgdurationawakenap","fitbit_sleep_summary_rapids_sumdurationasleepall","fitbit_sleep_summary_rapids_sumdurationasleepmain","fitbit_sleep_summary_rapids_sumdurationasleepnap","fitbit_sleep_summary_rapids_sumdurationafterwakeupall","fitbit_sleep_summary_rapids_sumdurationafterwakeupmain","fitbit_sleep_summary_rapids_sumdurationafterwakeupnap","fitbit_sleep_summary_rapids_countepisodeall","fitbit_sleep_summary_rapids_countepisodemain","fitbit_sleep_summary_rapids_countepisodenap"
|
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1 @@
|
|||
"local_segment","local_segment_label","local_segment_start_datetime","local_segment_end_datetime","fitbit_sleep_summary_rapids_avgdurationasleepall","fitbit_sleep_summary_rapids_avgdurationasleepmain","fitbit_sleep_summary_rapids_avgdurationasleepnap","fitbit_sleep_summary_rapids_sumdurationtofallasleepall","fitbit_sleep_summary_rapids_sumdurationtofallasleepmain","fitbit_sleep_summary_rapids_sumdurationtofallasleepnap","fitbit_sleep_summary_rapids_avgdurationinbedall","fitbit_sleep_summary_rapids_avgdurationinbedmain","fitbit_sleep_summary_rapids_avgdurationinbednap","fitbit_sleep_summary_rapids_firstwaketimeall","fitbit_sleep_summary_rapids_firstwaketimemain","fitbit_sleep_summary_rapids_firstwaketimenap","fitbit_sleep_summary_rapids_avgdurationafterwakeupall","fitbit_sleep_summary_rapids_avgdurationafterwakeupmain","fitbit_sleep_summary_rapids_avgdurationafterwakeupnap","fitbit_sleep_summary_rapids_sumdurationinbedall","fitbit_sleep_summary_rapids_sumdurationinbedmain","fitbit_sleep_summary_rapids_sumdurationinbednap","fitbit_sleep_summary_rapids_avgefficiencyall","fitbit_sleep_summary_rapids_avgefficiencymain","fitbit_sleep_summary_rapids_avgefficiencynap","fitbit_sleep_summary_rapids_sumdurationawakeall","fitbit_sleep_summary_rapids_sumdurationawakemain","fitbit_sleep_summary_rapids_sumdurationawakenap","fitbit_sleep_summary_rapids_lastbedtimeall","fitbit_sleep_summary_rapids_lastbedtimemain","fitbit_sleep_summary_rapids_lastbedtimenap","fitbit_sleep_summary_rapids_avgdurationtofallasleepall","fitbit_sleep_summary_rapids_avgdurationtofallasleepmain","fitbit_sleep_summary_rapids_avgdurationtofallasleepnap","fitbit_sleep_summary_rapids_firstbedtimeall","fitbit_sleep_summary_rapids_firstbedtimemain","fitbit_sleep_summary_rapids_firstbedtimenap","fitbit_sleep_summary_rapids_lastwaketimeall","fitbit_sleep_summary_rapids_lastwaketimemain","fitbit_sleep_summary_rapids_lastwaketimenap","fitbit_sleep_summary_rapids_avgdurationawakeall","fitbit_sleep_summary_rapids_avgdurationawakemain","fitbit_sleep_summary_rapids_avgdurationawakenap","fitbit_sleep_summary_rapids_sumdurationasleepall","fitbit_sleep_summary_rapids_sumdurationasleepmain","fitbit_sleep_summary_rapids_sumdurationasleepnap","fitbit_sleep_summary_rapids_sumdurationafterwakeupall","fitbit_sleep_summary_rapids_sumdurationafterwakeupmain","fitbit_sleep_summary_rapids_sumdurationafterwakeupnap","fitbit_sleep_summary_rapids_countepisodeall","fitbit_sleep_summary_rapids_countepisodemain","fitbit_sleep_summary_rapids_countepisodenap"
|
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1 @@
|
|||
"local_segment","local_segment_label","local_segment_start_datetime","local_segment_end_datetime","fitbit_sleep_summary_rapids_avgdurationasleepall","fitbit_sleep_summary_rapids_avgdurationasleepmain","fitbit_sleep_summary_rapids_avgdurationasleepnap","fitbit_sleep_summary_rapids_sumdurationtofallasleepall","fitbit_sleep_summary_rapids_sumdurationtofallasleepmain","fitbit_sleep_summary_rapids_sumdurationtofallasleepnap","fitbit_sleep_summary_rapids_avgdurationinbedall","fitbit_sleep_summary_rapids_avgdurationinbedmain","fitbit_sleep_summary_rapids_avgdurationinbednap","fitbit_sleep_summary_rapids_firstwaketimeall","fitbit_sleep_summary_rapids_firstwaketimemain","fitbit_sleep_summary_rapids_firstwaketimenap","fitbit_sleep_summary_rapids_avgdurationafterwakeupall","fitbit_sleep_summary_rapids_avgdurationafterwakeupmain","fitbit_sleep_summary_rapids_avgdurationafterwakeupnap","fitbit_sleep_summary_rapids_sumdurationinbedall","fitbit_sleep_summary_rapids_sumdurationinbedmain","fitbit_sleep_summary_rapids_sumdurationinbednap","fitbit_sleep_summary_rapids_avgefficiencyall","fitbit_sleep_summary_rapids_avgefficiencymain","fitbit_sleep_summary_rapids_avgefficiencynap","fitbit_sleep_summary_rapids_sumdurationawakeall","fitbit_sleep_summary_rapids_sumdurationawakemain","fitbit_sleep_summary_rapids_sumdurationawakenap","fitbit_sleep_summary_rapids_lastbedtimeall","fitbit_sleep_summary_rapids_lastbedtimemain","fitbit_sleep_summary_rapids_lastbedtimenap","fitbit_sleep_summary_rapids_avgdurationtofallasleepall","fitbit_sleep_summary_rapids_avgdurationtofallasleepmain","fitbit_sleep_summary_rapids_avgdurationtofallasleepnap","fitbit_sleep_summary_rapids_firstbedtimeall","fitbit_sleep_summary_rapids_firstbedtimemain","fitbit_sleep_summary_rapids_firstbedtimenap","fitbit_sleep_summary_rapids_lastwaketimeall","fitbit_sleep_summary_rapids_lastwaketimemain","fitbit_sleep_summary_rapids_lastwaketimenap","fitbit_sleep_summary_rapids_avgdurationawakeall","fitbit_sleep_summary_rapids_avgdurationawakemain","fitbit_sleep_summary_rapids_avgdurationawakenap","fitbit_sleep_summary_rapids_sumdurationasleepall","fitbit_sleep_summary_rapids_sumdurationasleepmain","fitbit_sleep_summary_rapids_sumdurationasleepnap","fitbit_sleep_summary_rapids_sumdurationafterwakeupall","fitbit_sleep_summary_rapids_sumdurationafterwakeupmain","fitbit_sleep_summary_rapids_sumdurationafterwakeupnap","fitbit_sleep_summary_rapids_countepisodeall","fitbit_sleep_summary_rapids_countepisodemain","fitbit_sleep_summary_rapids_countepisodenap"
|
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1 @@
|
|||
"local_segment","local_segment_label","local_segment_start_datetime","local_segment_end_datetime","fitbit_sleep_summary_rapids_avgdurationasleepall","fitbit_sleep_summary_rapids_avgdurationasleepmain","fitbit_sleep_summary_rapids_avgdurationasleepnap","fitbit_sleep_summary_rapids_sumdurationtofallasleepall","fitbit_sleep_summary_rapids_sumdurationtofallasleepmain","fitbit_sleep_summary_rapids_sumdurationtofallasleepnap","fitbit_sleep_summary_rapids_avgdurationinbedall","fitbit_sleep_summary_rapids_avgdurationinbedmain","fitbit_sleep_summary_rapids_avgdurationinbednap","fitbit_sleep_summary_rapids_firstwaketimeall","fitbit_sleep_summary_rapids_firstwaketimemain","fitbit_sleep_summary_rapids_firstwaketimenap","fitbit_sleep_summary_rapids_avgdurationafterwakeupall","fitbit_sleep_summary_rapids_avgdurationafterwakeupmain","fitbit_sleep_summary_rapids_avgdurationafterwakeupnap","fitbit_sleep_summary_rapids_sumdurationinbedall","fitbit_sleep_summary_rapids_sumdurationinbedmain","fitbit_sleep_summary_rapids_sumdurationinbednap","fitbit_sleep_summary_rapids_avgefficiencyall","fitbit_sleep_summary_rapids_avgefficiencymain","fitbit_sleep_summary_rapids_avgefficiencynap","fitbit_sleep_summary_rapids_sumdurationawakeall","fitbit_sleep_summary_rapids_sumdurationawakemain","fitbit_sleep_summary_rapids_sumdurationawakenap","fitbit_sleep_summary_rapids_lastbedtimeall","fitbit_sleep_summary_rapids_lastbedtimemain","fitbit_sleep_summary_rapids_lastbedtimenap","fitbit_sleep_summary_rapids_avgdurationtofallasleepall","fitbit_sleep_summary_rapids_avgdurationtofallasleepmain","fitbit_sleep_summary_rapids_avgdurationtofallasleepnap","fitbit_sleep_summary_rapids_firstbedtimeall","fitbit_sleep_summary_rapids_firstbedtimemain","fitbit_sleep_summary_rapids_firstbedtimenap","fitbit_sleep_summary_rapids_lastwaketimeall","fitbit_sleep_summary_rapids_lastwaketimemain","fitbit_sleep_summary_rapids_lastwaketimenap","fitbit_sleep_summary_rapids_avgdurationawakeall","fitbit_sleep_summary_rapids_avgdurationawakemain","fitbit_sleep_summary_rapids_avgdurationawakenap","fitbit_sleep_summary_rapids_sumdurationasleepall","fitbit_sleep_summary_rapids_sumdurationasleepmain","fitbit_sleep_summary_rapids_sumdurationasleepnap","fitbit_sleep_summary_rapids_sumdurationafterwakeupall","fitbit_sleep_summary_rapids_sumdurationafterwakeupmain","fitbit_sleep_summary_rapids_sumdurationafterwakeupnap","fitbit_sleep_summary_rapids_countepisodeall","fitbit_sleep_summary_rapids_countepisodemain","fitbit_sleep_summary_rapids_countepisodenap"
|
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1 @@
|
|||
"local_segment","local_segment_label","local_segment_start_datetime","local_segment_end_datetime","fitbit_sleep_summary_rapids_avgdurationasleepall","fitbit_sleep_summary_rapids_avgdurationasleepmain","fitbit_sleep_summary_rapids_avgdurationasleepnap","fitbit_sleep_summary_rapids_sumdurationtofallasleepall","fitbit_sleep_summary_rapids_sumdurationtofallasleepmain","fitbit_sleep_summary_rapids_sumdurationtofallasleepnap","fitbit_sleep_summary_rapids_avgdurationinbedall","fitbit_sleep_summary_rapids_avgdurationinbedmain","fitbit_sleep_summary_rapids_avgdurationinbednap","fitbit_sleep_summary_rapids_firstwaketimeall","fitbit_sleep_summary_rapids_firstwaketimemain","fitbit_sleep_summary_rapids_firstwaketimenap","fitbit_sleep_summary_rapids_avgdurationafterwakeupall","fitbit_sleep_summary_rapids_avgdurationafterwakeupmain","fitbit_sleep_summary_rapids_avgdurationafterwakeupnap","fitbit_sleep_summary_rapids_sumdurationinbedall","fitbit_sleep_summary_rapids_sumdurationinbedmain","fitbit_sleep_summary_rapids_sumdurationinbednap","fitbit_sleep_summary_rapids_avgefficiencyall","fitbit_sleep_summary_rapids_avgefficiencymain","fitbit_sleep_summary_rapids_avgefficiencynap","fitbit_sleep_summary_rapids_sumdurationawakeall","fitbit_sleep_summary_rapids_sumdurationawakemain","fitbit_sleep_summary_rapids_sumdurationawakenap","fitbit_sleep_summary_rapids_lastbedtimeall","fitbit_sleep_summary_rapids_lastbedtimemain","fitbit_sleep_summary_rapids_lastbedtimenap","fitbit_sleep_summary_rapids_avgdurationtofallasleepall","fitbit_sleep_summary_rapids_avgdurationtofallasleepmain","fitbit_sleep_summary_rapids_avgdurationtofallasleepnap","fitbit_sleep_summary_rapids_firstbedtimeall","fitbit_sleep_summary_rapids_firstbedtimemain","fitbit_sleep_summary_rapids_firstbedtimenap","fitbit_sleep_summary_rapids_lastwaketimeall","fitbit_sleep_summary_rapids_lastwaketimemain","fitbit_sleep_summary_rapids_lastwaketimenap","fitbit_sleep_summary_rapids_avgdurationawakeall","fitbit_sleep_summary_rapids_avgdurationawakemain","fitbit_sleep_summary_rapids_avgdurationawakenap","fitbit_sleep_summary_rapids_sumdurationasleepall","fitbit_sleep_summary_rapids_sumdurationasleepmain","fitbit_sleep_summary_rapids_sumdurationasleepnap","fitbit_sleep_summary_rapids_sumdurationafterwakeupall","fitbit_sleep_summary_rapids_sumdurationafterwakeupmain","fitbit_sleep_summary_rapids_sumdurationafterwakeupnap","fitbit_sleep_summary_rapids_countepisodeall","fitbit_sleep_summary_rapids_countepisodemain","fitbit_sleep_summary_rapids_countepisodenap"
|
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1 @@
|
|||
"local_segment","local_segment_label","local_segment_start_datetime","local_segment_end_datetime","fitbit_sleep_summary_rapids_avgdurationasleepall","fitbit_sleep_summary_rapids_avgdurationasleepmain","fitbit_sleep_summary_rapids_avgdurationasleepnap","fitbit_sleep_summary_rapids_sumdurationtofallasleepall","fitbit_sleep_summary_rapids_sumdurationtofallasleepmain","fitbit_sleep_summary_rapids_sumdurationtofallasleepnap","fitbit_sleep_summary_rapids_avgdurationinbedall","fitbit_sleep_summary_rapids_avgdurationinbedmain","fitbit_sleep_summary_rapids_avgdurationinbednap","fitbit_sleep_summary_rapids_firstwaketimeall","fitbit_sleep_summary_rapids_firstwaketimemain","fitbit_sleep_summary_rapids_firstwaketimenap","fitbit_sleep_summary_rapids_avgdurationafterwakeupall","fitbit_sleep_summary_rapids_avgdurationafterwakeupmain","fitbit_sleep_summary_rapids_avgdurationafterwakeupnap","fitbit_sleep_summary_rapids_sumdurationinbedall","fitbit_sleep_summary_rapids_sumdurationinbedmain","fitbit_sleep_summary_rapids_sumdurationinbednap","fitbit_sleep_summary_rapids_avgefficiencyall","fitbit_sleep_summary_rapids_avgefficiencymain","fitbit_sleep_summary_rapids_avgefficiencynap","fitbit_sleep_summary_rapids_sumdurationawakeall","fitbit_sleep_summary_rapids_sumdurationawakemain","fitbit_sleep_summary_rapids_sumdurationawakenap","fitbit_sleep_summary_rapids_lastbedtimeall","fitbit_sleep_summary_rapids_lastbedtimemain","fitbit_sleep_summary_rapids_lastbedtimenap","fitbit_sleep_summary_rapids_avgdurationtofallasleepall","fitbit_sleep_summary_rapids_avgdurationtofallasleepmain","fitbit_sleep_summary_rapids_avgdurationtofallasleepnap","fitbit_sleep_summary_rapids_firstbedtimeall","fitbit_sleep_summary_rapids_firstbedtimemain","fitbit_sleep_summary_rapids_firstbedtimenap","fitbit_sleep_summary_rapids_lastwaketimeall","fitbit_sleep_summary_rapids_lastwaketimemain","fitbit_sleep_summary_rapids_lastwaketimenap","fitbit_sleep_summary_rapids_avgdurationawakeall","fitbit_sleep_summary_rapids_avgdurationawakemain","fitbit_sleep_summary_rapids_avgdurationawakenap","fitbit_sleep_summary_rapids_sumdurationasleepall","fitbit_sleep_summary_rapids_sumdurationasleepmain","fitbit_sleep_summary_rapids_sumdurationasleepnap","fitbit_sleep_summary_rapids_sumdurationafterwakeupall","fitbit_sleep_summary_rapids_sumdurationafterwakeupmain","fitbit_sleep_summary_rapids_sumdurationafterwakeupnap","fitbit_sleep_summary_rapids_countepisodeall","fitbit_sleep_summary_rapids_countepisodemain","fitbit_sleep_summary_rapids_countepisodenap"
|
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,21 @@
|
|||
"local_segment","local_segment_label","local_segment_start_datetime","local_segment_end_datetime","fitbit_sleep_summary_rapids_lastbedtimenap","fitbit_sleep_summary_rapids_lastbedtimemain","fitbit_sleep_summary_rapids_lastbedtimeall","fitbit_sleep_summary_rapids_avgdurationafterwakeupnap","fitbit_sleep_summary_rapids_avgdurationafterwakeupmain","fitbit_sleep_summary_rapids_avgdurationafterwakeupall","fitbit_sleep_summary_rapids_firstbedtimenap","fitbit_sleep_summary_rapids_firstbedtimemain","fitbit_sleep_summary_rapids_firstbedtimeall","fitbit_sleep_summary_rapids_avgdurationtofallasleepnap","fitbit_sleep_summary_rapids_avgdurationtofallasleepmain","fitbit_sleep_summary_rapids_avgdurationtofallasleepall","fitbit_sleep_summary_rapids_lastwaketimenap","fitbit_sleep_summary_rapids_lastwaketimemain","fitbit_sleep_summary_rapids_lastwaketimeall","fitbit_sleep_summary_rapids_avgefficiencynap","fitbit_sleep_summary_rapids_avgefficiencymain","fitbit_sleep_summary_rapids_avgefficiencyall","fitbit_sleep_summary_rapids_avgdurationawakenap","fitbit_sleep_summary_rapids_avgdurationawakemain","fitbit_sleep_summary_rapids_avgdurationawakeall","fitbit_sleep_summary_rapids_sumdurationasleepnap","fitbit_sleep_summary_rapids_sumdurationasleepmain","fitbit_sleep_summary_rapids_sumdurationasleepall","fitbit_sleep_summary_rapids_sumdurationawakenap","fitbit_sleep_summary_rapids_sumdurationawakemain","fitbit_sleep_summary_rapids_sumdurationawakeall","fitbit_sleep_summary_rapids_firstwaketimenap","fitbit_sleep_summary_rapids_firstwaketimemain","fitbit_sleep_summary_rapids_firstwaketimeall","fitbit_sleep_summary_rapids_countepisodenap","fitbit_sleep_summary_rapids_countepisodemain","fitbit_sleep_summary_rapids_countepisodeall","fitbit_sleep_summary_rapids_sumdurationtofallasleepnap","fitbit_sleep_summary_rapids_sumdurationtofallasleepmain","fitbit_sleep_summary_rapids_sumdurationtofallasleepall","fitbit_sleep_summary_rapids_sumdurationinbednap","fitbit_sleep_summary_rapids_sumdurationinbedmain","fitbit_sleep_summary_rapids_sumdurationinbedall","fitbit_sleep_summary_rapids_avgdurationasleepnap","fitbit_sleep_summary_rapids_avgdurationasleepmain","fitbit_sleep_summary_rapids_avgdurationasleepall","fitbit_sleep_summary_rapids_sumdurationafterwakeupnap","fitbit_sleep_summary_rapids_sumdurationafterwakeupmain","fitbit_sleep_summary_rapids_sumdurationafterwakeupall","fitbit_sleep_summary_rapids_avgdurationinbednap","fitbit_sleep_summary_rapids_avgdurationinbedmain","fitbit_sleep_summary_rapids_avgdurationinbedall"
|
||||
"daily#2020-03-06 00:00:00,2020-03-06 23:59:59","daily","2020-03-06 00:00:00","2020-03-06 23:59:59",1680,1200,1680,2,0,1,1680,1200,1200,10,0,5,NA,NA,NA,86,90,88,20,51,35.5,90,309,399,20,51,71,NA,NA,NA,1,1,2,10,0,10,120,360,480,90,309,199.5,2,0,2,120,360,240
|
||||
"daily#2020-03-07 00:00:00,2020-03-07 23:59:59","daily","2020-03-07 00:00:00","2020-03-07 23:59:59",780,1500,1500,0,1,0.5,780,1500,780,2,0,1,360,120,360,88,96,92,30,52,41,88,608,696,30,52,82,360,120,120,1,1,2,2,0,2,120,660,780,88,608,348,0,1,1,120,660,390
|
||||
"daily#2020-03-08 00:00:00,2020-03-08 23:59:59","daily","2020-03-08 00:00:00","2020-03-08 23:59:59",NA,1380,1380,0,1,1,NA,1380,1380,0,0,0,-540,720,720,NA,94,94,0,50,50,0,430,430,0,50,50,-540,720,-540,0,1,1,0,0,0,0,480,480,0,430,430,0,1,1,0,480,480
|
||||
"daily#2020-03-09 00:00:00,2020-03-09 23:59:59","daily","2020-03-09 00:00:00","2020-03-09 23:59:59",NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,420,420,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,420,420,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA
|
||||
"daily#2020-10-30 00:00:00,2020-10-30 23:59:59","daily","2020-10-30 00:00:00","2020-10-30 23:59:59",1680,1200,1680,2,0,1,1680,1200,1200,10,0,5,NA,NA,NA,86,90,88,20,51,35.5,90,309,399,20,51,71,NA,NA,NA,1,1,2,10,0,10,120,360,480,90,309,199.5,2,0,2,120,360,240
|
||||
"daily#2020-10-31 00:00:00,2020-10-31 23:59:59","daily","2020-10-31 00:00:00","2020-10-31 23:59:59",780,1500,1500,0,1,0.5,780,1500,780,2,0,1,360,120,360,88,96,92,30,52,41,88,608,696,30,52,82,360,120,120,1,1,2,2,0,2,120,660,780,88,608,348,0,1,1,120,660,390
|
||||
"daily#2020-11-01 00:00:00,2020-11-01 23:59:59","daily","2020-11-01 00:00:00","2020-11-01 23:59:59",NA,1380,1380,0,1,1,NA,1380,1380,0,0,0,-540,720,720,NA,94,94,0,50,50,0,430,430,0,50,50,-540,720,-540,0,1,1,0,0,0,0,480,480,0,430,430,0,1,1,0,480,480
|
||||
"daily#2020-11-02 00:00:00,2020-11-02 23:59:59","daily","2020-11-02 00:00:00","2020-11-02 23:59:59",NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,420,420,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,420,420,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA
|
||||
"threeday#2020-03-06 00:00:00,2020-03-08 23:59:59","threeday","2020-03-06 00:00:00","2020-03-08 23:59:59",1680,1500,1680,1,0.666666666666667,0.8,780,1200,780,6,0,2.4,-90,420,540,87,93.3333333333333,90.8,25,51,40.6,178,1347,1525,50,153,203,-90,420,-210,2,3,5,12,0,12,240,1500,1740,89,449,305,2,2,4,120,500,348
|
||||
"threeday#2020-03-07 00:00:00,2020-03-09 23:59:59","threeday","2020-03-07 00:00:00","2020-03-09 23:59:59",780,1500,1500,0,1,0.666666666666667,780,1380,780,2,0,0.666666666666667,-90,420,500,88,95,92.6666666666667,30,51,44,88,1038,1126,30,102,132,-90,420,0,1,2,3,2,0,2,120,1140,1260,88,519,375.333333333333,0,2,2,120,570,420
|
||||
"threeday#2020-03-08 00:00:00,2020-03-10 23:59:59","threeday","2020-03-08 00:00:00","2020-03-10 23:59:59",NA,1380,1380,0,1,1,NA,1380,1380,0,0,0,-540,570,570,NA,94,94,0,50,50,0,430,430,0,50,50,-540,570,-60,0,1,1,0,0,0,0,480,480,0,430,430,0,1,1,0,480,480
|
||||
"threeday#2020-03-09 00:00:00,2020-03-11 23:59:59","threeday","2020-03-09 00:00:00","2020-03-11 23:59:59",NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,420,420,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,420,420,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA
|
||||
"threeday#2020-10-28 00:00:00,2020-10-30 23:59:59","threeday","2020-10-28 00:00:00","2020-10-30 23:59:59",1680,1200,1680,2,0,1,1680,1200,1200,10,0,5,NA,NA,NA,86,90,88,20,51,35.5,90,309,399,20,51,71,NA,NA,NA,1,1,2,10,0,10,120,360,480,90,309,199.5,2,0,2,120,360,240
|
||||
"threeday#2020-10-29 00:00:00,2020-10-31 23:59:59","threeday","2020-10-29 00:00:00","2020-10-31 23:59:59",1680,1500,1680,1,0.5,0.75,780,1200,780,6,0,3,360,120,360,87,93,90,25,51.5,38.25,178,917,1095,50,103,153,360,120,120,2,2,4,12,0,12,240,1020,1260,89,458.5,273.75,2,1,3,120,510,315
|
||||
"threeday#2020-10-30 00:00:00,2020-11-01 23:59:59","threeday","2020-10-30 00:00:00","2020-11-01 23:59:59",1680,1500,1680,1,0.666666666666667,0.8,780,1200,780,6,0,2.4,-90,420,540,87,93.3333333333333,90.8,25,51,40.6,178,1347,1525,50,153,203,-90,420,-210,2,3,5,12,0,12,240,1500,1740,89,449,305,2,2,4,120,500,348
|
||||
"threeday#2020-10-31 00:00:00,2020-11-02 23:59:59","threeday","2020-10-31 00:00:00","2020-11-02 23:59:59",780,1500,1500,0,1,0.666666666666667,780,1380,780,2,0,0.666666666666667,-90,420,500,88,95,92.6666666666667,30,51,44,88,1038,1126,30,102,132,-90,420,0,1,2,3,2,0,2,120,1140,1260,88,519,375.333333333333,0,2,2,120,570,420
|
||||
"threeday#2020-11-01 00:00:00,2020-11-03 23:59:59","threeday","2020-11-01 00:00:00","2020-11-03 23:59:59",NA,1380,1380,0,1,1,NA,1380,1380,0,0,0,-540,570,570,NA,94,94,0,50,50,0,430,430,0,50,50,-540,570,-60,0,1,1,0,0,0,0,480,480,0,430,430,0,1,1,0,480,480
|
||||
"threeday#2020-11-02 00:00:00,2020-11-04 23:59:59","threeday","2020-11-02 00:00:00","2020-11-04 23:59:59",NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,420,420,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,420,420,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA
|
||||
"weekend#2020-03-06 00:00:00,2020-03-08 23:59:59","weekend","2020-03-06 00:00:00","2020-03-08 23:59:59",1680,1500,1680,1,0.666666666666667,0.8,780,1200,780,6,0,2.4,-90,420,540,87,93.3333333333333,90.8,25,51,40.6,178,1347,1525,50,153,203,-90,420,-210,2,3,5,12,0,12,240,1500,1740,89,449,305,2,2,4,120,500,348
|
||||
"weekend#2020-10-30 00:00:00,2020-11-01 23:59:59","weekend","2020-10-30 00:00:00","2020-11-01 23:59:59",1680,1500,1680,1,0.666666666666667,0.8,780,1200,780,6,0,2.4,-90,420,540,87,93.3333333333333,90.8,25,51,40.6,178,1347,1525,50,153,203,-90,420,-210,2,3,5,12,0,12,240,1500,1740,89,449,305,2,2,4,120,500,348
|
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1 @@
|
|||
"local_segment","local_segment_label","local_segment_start_datetime","local_segment_end_datetime","fitbit_sleep_summary_rapids_avgdurationasleepall","fitbit_sleep_summary_rapids_avgdurationasleepmain","fitbit_sleep_summary_rapids_avgdurationasleepnap","fitbit_sleep_summary_rapids_sumdurationtofallasleepall","fitbit_sleep_summary_rapids_sumdurationtofallasleepmain","fitbit_sleep_summary_rapids_sumdurationtofallasleepnap","fitbit_sleep_summary_rapids_avgdurationinbedall","fitbit_sleep_summary_rapids_avgdurationinbedmain","fitbit_sleep_summary_rapids_avgdurationinbednap","fitbit_sleep_summary_rapids_firstwaketimeall","fitbit_sleep_summary_rapids_firstwaketimemain","fitbit_sleep_summary_rapids_firstwaketimenap","fitbit_sleep_summary_rapids_avgdurationafterwakeupall","fitbit_sleep_summary_rapids_avgdurationafterwakeupmain","fitbit_sleep_summary_rapids_avgdurationafterwakeupnap","fitbit_sleep_summary_rapids_sumdurationinbedall","fitbit_sleep_summary_rapids_sumdurationinbedmain","fitbit_sleep_summary_rapids_sumdurationinbednap","fitbit_sleep_summary_rapids_avgefficiencyall","fitbit_sleep_summary_rapids_avgefficiencymain","fitbit_sleep_summary_rapids_avgefficiencynap","fitbit_sleep_summary_rapids_sumdurationawakeall","fitbit_sleep_summary_rapids_sumdurationawakemain","fitbit_sleep_summary_rapids_sumdurationawakenap","fitbit_sleep_summary_rapids_lastbedtimeall","fitbit_sleep_summary_rapids_lastbedtimemain","fitbit_sleep_summary_rapids_lastbedtimenap","fitbit_sleep_summary_rapids_avgdurationtofallasleepall","fitbit_sleep_summary_rapids_avgdurationtofallasleepmain","fitbit_sleep_summary_rapids_avgdurationtofallasleepnap","fitbit_sleep_summary_rapids_firstbedtimeall","fitbit_sleep_summary_rapids_firstbedtimemain","fitbit_sleep_summary_rapids_firstbedtimenap","fitbit_sleep_summary_rapids_lastwaketimeall","fitbit_sleep_summary_rapids_lastwaketimemain","fitbit_sleep_summary_rapids_lastwaketimenap","fitbit_sleep_summary_rapids_avgdurationawakeall","fitbit_sleep_summary_rapids_avgdurationawakemain","fitbit_sleep_summary_rapids_avgdurationawakenap","fitbit_sleep_summary_rapids_sumdurationasleepall","fitbit_sleep_summary_rapids_sumdurationasleepmain","fitbit_sleep_summary_rapids_sumdurationasleepnap","fitbit_sleep_summary_rapids_sumdurationafterwakeupall","fitbit_sleep_summary_rapids_sumdurationafterwakeupmain","fitbit_sleep_summary_rapids_sumdurationafterwakeupnap","fitbit_sleep_summary_rapids_countepisodeall","fitbit_sleep_summary_rapids_countepisodemain","fitbit_sleep_summary_rapids_countepisodenap"
|
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1 @@
|
|||
"local_segment","local_segment_label","local_segment_start_datetime","local_segment_end_datetime","fitbit_sleep_summary_rapids_avgdurationasleepall","fitbit_sleep_summary_rapids_avgdurationasleepmain","fitbit_sleep_summary_rapids_avgdurationasleepnap","fitbit_sleep_summary_rapids_sumdurationtofallasleepall","fitbit_sleep_summary_rapids_sumdurationtofallasleepmain","fitbit_sleep_summary_rapids_sumdurationtofallasleepnap","fitbit_sleep_summary_rapids_avgdurationinbedall","fitbit_sleep_summary_rapids_avgdurationinbedmain","fitbit_sleep_summary_rapids_avgdurationinbednap","fitbit_sleep_summary_rapids_firstwaketimeall","fitbit_sleep_summary_rapids_firstwaketimemain","fitbit_sleep_summary_rapids_firstwaketimenap","fitbit_sleep_summary_rapids_avgdurationafterwakeupall","fitbit_sleep_summary_rapids_avgdurationafterwakeupmain","fitbit_sleep_summary_rapids_avgdurationafterwakeupnap","fitbit_sleep_summary_rapids_sumdurationinbedall","fitbit_sleep_summary_rapids_sumdurationinbedmain","fitbit_sleep_summary_rapids_sumdurationinbednap","fitbit_sleep_summary_rapids_avgefficiencyall","fitbit_sleep_summary_rapids_avgefficiencymain","fitbit_sleep_summary_rapids_avgefficiencynap","fitbit_sleep_summary_rapids_sumdurationawakeall","fitbit_sleep_summary_rapids_sumdurationawakemain","fitbit_sleep_summary_rapids_sumdurationawakenap","fitbit_sleep_summary_rapids_lastbedtimeall","fitbit_sleep_summary_rapids_lastbedtimemain","fitbit_sleep_summary_rapids_lastbedtimenap","fitbit_sleep_summary_rapids_avgdurationtofallasleepall","fitbit_sleep_summary_rapids_avgdurationtofallasleepmain","fitbit_sleep_summary_rapids_avgdurationtofallasleepnap","fitbit_sleep_summary_rapids_firstbedtimeall","fitbit_sleep_summary_rapids_firstbedtimemain","fitbit_sleep_summary_rapids_firstbedtimenap","fitbit_sleep_summary_rapids_lastwaketimeall","fitbit_sleep_summary_rapids_lastwaketimemain","fitbit_sleep_summary_rapids_lastwaketimenap","fitbit_sleep_summary_rapids_avgdurationawakeall","fitbit_sleep_summary_rapids_avgdurationawakemain","fitbit_sleep_summary_rapids_avgdurationawakenap","fitbit_sleep_summary_rapids_sumdurationasleepall","fitbit_sleep_summary_rapids_sumdurationasleepmain","fitbit_sleep_summary_rapids_sumdurationasleepnap","fitbit_sleep_summary_rapids_sumdurationafterwakeupall","fitbit_sleep_summary_rapids_sumdurationafterwakeupmain","fitbit_sleep_summary_rapids_sumdurationafterwakeupnap","fitbit_sleep_summary_rapids_countepisodeall","fitbit_sleep_summary_rapids_countepisodemain","fitbit_sleep_summary_rapids_countepisodenap"
|
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1 @@
|
|||
"local_segment","local_segment_label","local_segment_start_datetime","local_segment_end_datetime","fitbit_sleep_summary_rapids_avgdurationasleepall","fitbit_sleep_summary_rapids_avgdurationasleepmain","fitbit_sleep_summary_rapids_avgdurationasleepnap","fitbit_sleep_summary_rapids_sumdurationtofallasleepall","fitbit_sleep_summary_rapids_sumdurationtofallasleepmain","fitbit_sleep_summary_rapids_sumdurationtofallasleepnap","fitbit_sleep_summary_rapids_avgdurationinbedall","fitbit_sleep_summary_rapids_avgdurationinbedmain","fitbit_sleep_summary_rapids_avgdurationinbednap","fitbit_sleep_summary_rapids_firstwaketimeall","fitbit_sleep_summary_rapids_firstwaketimemain","fitbit_sleep_summary_rapids_firstwaketimenap","fitbit_sleep_summary_rapids_avgdurationafterwakeupall","fitbit_sleep_summary_rapids_avgdurationafterwakeupmain","fitbit_sleep_summary_rapids_avgdurationafterwakeupnap","fitbit_sleep_summary_rapids_sumdurationinbedall","fitbit_sleep_summary_rapids_sumdurationinbedmain","fitbit_sleep_summary_rapids_sumdurationinbednap","fitbit_sleep_summary_rapids_avgefficiencyall","fitbit_sleep_summary_rapids_avgefficiencymain","fitbit_sleep_summary_rapids_avgefficiencynap","fitbit_sleep_summary_rapids_sumdurationawakeall","fitbit_sleep_summary_rapids_sumdurationawakemain","fitbit_sleep_summary_rapids_sumdurationawakenap","fitbit_sleep_summary_rapids_lastbedtimeall","fitbit_sleep_summary_rapids_lastbedtimemain","fitbit_sleep_summary_rapids_lastbedtimenap","fitbit_sleep_summary_rapids_avgdurationtofallasleepall","fitbit_sleep_summary_rapids_avgdurationtofallasleepmain","fitbit_sleep_summary_rapids_avgdurationtofallasleepnap","fitbit_sleep_summary_rapids_firstbedtimeall","fitbit_sleep_summary_rapids_firstbedtimemain","fitbit_sleep_summary_rapids_firstbedtimenap","fitbit_sleep_summary_rapids_lastwaketimeall","fitbit_sleep_summary_rapids_lastwaketimemain","fitbit_sleep_summary_rapids_lastwaketimenap","fitbit_sleep_summary_rapids_avgdurationawakeall","fitbit_sleep_summary_rapids_avgdurationawakemain","fitbit_sleep_summary_rapids_avgdurationawakenap","fitbit_sleep_summary_rapids_sumdurationasleepall","fitbit_sleep_summary_rapids_sumdurationasleepmain","fitbit_sleep_summary_rapids_sumdurationasleepnap","fitbit_sleep_summary_rapids_sumdurationafterwakeupall","fitbit_sleep_summary_rapids_sumdurationafterwakeupmain","fitbit_sleep_summary_rapids_sumdurationafterwakeupnap","fitbit_sleep_summary_rapids_countepisodeall","fitbit_sleep_summary_rapids_countepisodemain","fitbit_sleep_summary_rapids_countepisodenap"
|
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1 @@
|
|||
"local_segment","local_segment_label","local_segment_start_datetime","local_segment_end_datetime","fitbit_sleep_summary_rapids_avgdurationasleepall","fitbit_sleep_summary_rapids_avgdurationasleepmain","fitbit_sleep_summary_rapids_avgdurationasleepnap","fitbit_sleep_summary_rapids_sumdurationtofallasleepall","fitbit_sleep_summary_rapids_sumdurationtofallasleepmain","fitbit_sleep_summary_rapids_sumdurationtofallasleepnap","fitbit_sleep_summary_rapids_avgdurationinbedall","fitbit_sleep_summary_rapids_avgdurationinbedmain","fitbit_sleep_summary_rapids_avgdurationinbednap","fitbit_sleep_summary_rapids_firstwaketimeall","fitbit_sleep_summary_rapids_firstwaketimemain","fitbit_sleep_summary_rapids_firstwaketimenap","fitbit_sleep_summary_rapids_avgdurationafterwakeupall","fitbit_sleep_summary_rapids_avgdurationafterwakeupmain","fitbit_sleep_summary_rapids_avgdurationafterwakeupnap","fitbit_sleep_summary_rapids_sumdurationinbedall","fitbit_sleep_summary_rapids_sumdurationinbedmain","fitbit_sleep_summary_rapids_sumdurationinbednap","fitbit_sleep_summary_rapids_avgefficiencyall","fitbit_sleep_summary_rapids_avgefficiencymain","fitbit_sleep_summary_rapids_avgefficiencynap","fitbit_sleep_summary_rapids_sumdurationawakeall","fitbit_sleep_summary_rapids_sumdurationawakemain","fitbit_sleep_summary_rapids_sumdurationawakenap","fitbit_sleep_summary_rapids_lastbedtimeall","fitbit_sleep_summary_rapids_lastbedtimemain","fitbit_sleep_summary_rapids_lastbedtimenap","fitbit_sleep_summary_rapids_avgdurationtofallasleepall","fitbit_sleep_summary_rapids_avgdurationtofallasleepmain","fitbit_sleep_summary_rapids_avgdurationtofallasleepnap","fitbit_sleep_summary_rapids_firstbedtimeall","fitbit_sleep_summary_rapids_firstbedtimemain","fitbit_sleep_summary_rapids_firstbedtimenap","fitbit_sleep_summary_rapids_lastwaketimeall","fitbit_sleep_summary_rapids_lastwaketimemain","fitbit_sleep_summary_rapids_lastwaketimenap","fitbit_sleep_summary_rapids_avgdurationawakeall","fitbit_sleep_summary_rapids_avgdurationawakemain","fitbit_sleep_summary_rapids_avgdurationawakenap","fitbit_sleep_summary_rapids_sumdurationasleepall","fitbit_sleep_summary_rapids_sumdurationasleepmain","fitbit_sleep_summary_rapids_sumdurationasleepnap","fitbit_sleep_summary_rapids_sumdurationafterwakeupall","fitbit_sleep_summary_rapids_sumdurationafterwakeupmain","fitbit_sleep_summary_rapids_sumdurationafterwakeupnap","fitbit_sleep_summary_rapids_countepisodeall","fitbit_sleep_summary_rapids_countepisodemain","fitbit_sleep_summary_rapids_countepisodenap"
|
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1 @@
|
|||
"local_segment","local_segment_label","local_segment_start_datetime","local_segment_end_datetime","fitbit_sleep_summary_rapids_avgdurationasleepall","fitbit_sleep_summary_rapids_avgdurationasleepmain","fitbit_sleep_summary_rapids_avgdurationasleepnap","fitbit_sleep_summary_rapids_sumdurationtofallasleepall","fitbit_sleep_summary_rapids_sumdurationtofallasleepmain","fitbit_sleep_summary_rapids_sumdurationtofallasleepnap","fitbit_sleep_summary_rapids_avgdurationinbedall","fitbit_sleep_summary_rapids_avgdurationinbedmain","fitbit_sleep_summary_rapids_avgdurationinbednap","fitbit_sleep_summary_rapids_firstwaketimeall","fitbit_sleep_summary_rapids_firstwaketimemain","fitbit_sleep_summary_rapids_firstwaketimenap","fitbit_sleep_summary_rapids_avgdurationafterwakeupall","fitbit_sleep_summary_rapids_avgdurationafterwakeupmain","fitbit_sleep_summary_rapids_avgdurationafterwakeupnap","fitbit_sleep_summary_rapids_sumdurationinbedall","fitbit_sleep_summary_rapids_sumdurationinbedmain","fitbit_sleep_summary_rapids_sumdurationinbednap","fitbit_sleep_summary_rapids_avgefficiencyall","fitbit_sleep_summary_rapids_avgefficiencymain","fitbit_sleep_summary_rapids_avgefficiencynap","fitbit_sleep_summary_rapids_sumdurationawakeall","fitbit_sleep_summary_rapids_sumdurationawakemain","fitbit_sleep_summary_rapids_sumdurationawakenap","fitbit_sleep_summary_rapids_lastbedtimeall","fitbit_sleep_summary_rapids_lastbedtimemain","fitbit_sleep_summary_rapids_lastbedtimenap","fitbit_sleep_summary_rapids_avgdurationtofallasleepall","fitbit_sleep_summary_rapids_avgdurationtofallasleepmain","fitbit_sleep_summary_rapids_avgdurationtofallasleepnap","fitbit_sleep_summary_rapids_firstbedtimeall","fitbit_sleep_summary_rapids_firstbedtimemain","fitbit_sleep_summary_rapids_firstbedtimenap","fitbit_sleep_summary_rapids_lastwaketimeall","fitbit_sleep_summary_rapids_lastwaketimemain","fitbit_sleep_summary_rapids_lastwaketimenap","fitbit_sleep_summary_rapids_avgdurationawakeall","fitbit_sleep_summary_rapids_avgdurationawakemain","fitbit_sleep_summary_rapids_avgdurationawakenap","fitbit_sleep_summary_rapids_sumdurationasleepall","fitbit_sleep_summary_rapids_sumdurationasleepmain","fitbit_sleep_summary_rapids_sumdurationasleepnap","fitbit_sleep_summary_rapids_sumdurationafterwakeupall","fitbit_sleep_summary_rapids_sumdurationafterwakeupmain","fitbit_sleep_summary_rapids_sumdurationafterwakeupnap","fitbit_sleep_summary_rapids_countepisodeall","fitbit_sleep_summary_rapids_countepisodemain","fitbit_sleep_summary_rapids_countepisodenap"
|
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1 @@
|
|||
"local_segment","local_segment_label","local_segment_start_datetime","local_segment_end_datetime","fitbit_sleep_summary_rapids_avgdurationasleepall","fitbit_sleep_summary_rapids_avgdurationasleepmain","fitbit_sleep_summary_rapids_avgdurationasleepnap","fitbit_sleep_summary_rapids_sumdurationtofallasleepall","fitbit_sleep_summary_rapids_sumdurationtofallasleepmain","fitbit_sleep_summary_rapids_sumdurationtofallasleepnap","fitbit_sleep_summary_rapids_avgdurationinbedall","fitbit_sleep_summary_rapids_avgdurationinbedmain","fitbit_sleep_summary_rapids_avgdurationinbednap","fitbit_sleep_summary_rapids_firstwaketimeall","fitbit_sleep_summary_rapids_firstwaketimemain","fitbit_sleep_summary_rapids_firstwaketimenap","fitbit_sleep_summary_rapids_avgdurationafterwakeupall","fitbit_sleep_summary_rapids_avgdurationafterwakeupmain","fitbit_sleep_summary_rapids_avgdurationafterwakeupnap","fitbit_sleep_summary_rapids_sumdurationinbedall","fitbit_sleep_summary_rapids_sumdurationinbedmain","fitbit_sleep_summary_rapids_sumdurationinbednap","fitbit_sleep_summary_rapids_avgefficiencyall","fitbit_sleep_summary_rapids_avgefficiencymain","fitbit_sleep_summary_rapids_avgefficiencynap","fitbit_sleep_summary_rapids_sumdurationawakeall","fitbit_sleep_summary_rapids_sumdurationawakemain","fitbit_sleep_summary_rapids_sumdurationawakenap","fitbit_sleep_summary_rapids_lastbedtimeall","fitbit_sleep_summary_rapids_lastbedtimemain","fitbit_sleep_summary_rapids_lastbedtimenap","fitbit_sleep_summary_rapids_avgdurationtofallasleepall","fitbit_sleep_summary_rapids_avgdurationtofallasleepmain","fitbit_sleep_summary_rapids_avgdurationtofallasleepnap","fitbit_sleep_summary_rapids_firstbedtimeall","fitbit_sleep_summary_rapids_firstbedtimemain","fitbit_sleep_summary_rapids_firstbedtimenap","fitbit_sleep_summary_rapids_lastwaketimeall","fitbit_sleep_summary_rapids_lastwaketimemain","fitbit_sleep_summary_rapids_lastwaketimenap","fitbit_sleep_summary_rapids_avgdurationawakeall","fitbit_sleep_summary_rapids_avgdurationawakemain","fitbit_sleep_summary_rapids_avgdurationawakenap","fitbit_sleep_summary_rapids_sumdurationasleepall","fitbit_sleep_summary_rapids_sumdurationasleepmain","fitbit_sleep_summary_rapids_sumdurationasleepnap","fitbit_sleep_summary_rapids_sumdurationafterwakeupall","fitbit_sleep_summary_rapids_sumdurationafterwakeupmain","fitbit_sleep_summary_rapids_sumdurationafterwakeupnap","fitbit_sleep_summary_rapids_countepisodeall","fitbit_sleep_summary_rapids_countepisodemain","fitbit_sleep_summary_rapids_countepisodenap"
|
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1 @@
|
|||
"local_segment","local_segment_label","local_segment_start_datetime","local_segment_end_datetime","fitbit_sleep_summary_rapids_avgdurationasleepall","fitbit_sleep_summary_rapids_avgdurationasleepmain","fitbit_sleep_summary_rapids_avgdurationasleepnap","fitbit_sleep_summary_rapids_sumdurationtofallasleepall","fitbit_sleep_summary_rapids_sumdurationtofallasleepmain","fitbit_sleep_summary_rapids_sumdurationtofallasleepnap","fitbit_sleep_summary_rapids_avgdurationinbedall","fitbit_sleep_summary_rapids_avgdurationinbedmain","fitbit_sleep_summary_rapids_avgdurationinbednap","fitbit_sleep_summary_rapids_firstwaketimeall","fitbit_sleep_summary_rapids_firstwaketimemain","fitbit_sleep_summary_rapids_firstwaketimenap","fitbit_sleep_summary_rapids_avgdurationafterwakeupall","fitbit_sleep_summary_rapids_avgdurationafterwakeupmain","fitbit_sleep_summary_rapids_avgdurationafterwakeupnap","fitbit_sleep_summary_rapids_sumdurationinbedall","fitbit_sleep_summary_rapids_sumdurationinbedmain","fitbit_sleep_summary_rapids_sumdurationinbednap","fitbit_sleep_summary_rapids_avgefficiencyall","fitbit_sleep_summary_rapids_avgefficiencymain","fitbit_sleep_summary_rapids_avgefficiencynap","fitbit_sleep_summary_rapids_sumdurationawakeall","fitbit_sleep_summary_rapids_sumdurationawakemain","fitbit_sleep_summary_rapids_sumdurationawakenap","fitbit_sleep_summary_rapids_lastbedtimeall","fitbit_sleep_summary_rapids_lastbedtimemain","fitbit_sleep_summary_rapids_lastbedtimenap","fitbit_sleep_summary_rapids_avgdurationtofallasleepall","fitbit_sleep_summary_rapids_avgdurationtofallasleepmain","fitbit_sleep_summary_rapids_avgdurationtofallasleepnap","fitbit_sleep_summary_rapids_firstbedtimeall","fitbit_sleep_summary_rapids_firstbedtimemain","fitbit_sleep_summary_rapids_firstbedtimenap","fitbit_sleep_summary_rapids_lastwaketimeall","fitbit_sleep_summary_rapids_lastwaketimemain","fitbit_sleep_summary_rapids_lastwaketimenap","fitbit_sleep_summary_rapids_avgdurationawakeall","fitbit_sleep_summary_rapids_avgdurationawakemain","fitbit_sleep_summary_rapids_avgdurationawakenap","fitbit_sleep_summary_rapids_sumdurationasleepall","fitbit_sleep_summary_rapids_sumdurationasleepmain","fitbit_sleep_summary_rapids_sumdurationasleepnap","fitbit_sleep_summary_rapids_sumdurationafterwakeupall","fitbit_sleep_summary_rapids_sumdurationafterwakeupmain","fitbit_sleep_summary_rapids_sumdurationafterwakeupnap","fitbit_sleep_summary_rapids_countepisodeall","fitbit_sleep_summary_rapids_countepisodemain","fitbit_sleep_summary_rapids_countepisodenap"
|
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1 @@
|
|||
"local_segment","local_segment_label","local_segment_start_datetime","local_segment_end_datetime","fitbit_sleep_summary_rapids_avgdurationasleepall","fitbit_sleep_summary_rapids_avgdurationasleepmain","fitbit_sleep_summary_rapids_avgdurationasleepnap","fitbit_sleep_summary_rapids_sumdurationtofallasleepall","fitbit_sleep_summary_rapids_sumdurationtofallasleepmain","fitbit_sleep_summary_rapids_sumdurationtofallasleepnap","fitbit_sleep_summary_rapids_avgdurationinbedall","fitbit_sleep_summary_rapids_avgdurationinbedmain","fitbit_sleep_summary_rapids_avgdurationinbednap","fitbit_sleep_summary_rapids_firstwaketimeall","fitbit_sleep_summary_rapids_firstwaketimemain","fitbit_sleep_summary_rapids_firstwaketimenap","fitbit_sleep_summary_rapids_avgdurationafterwakeupall","fitbit_sleep_summary_rapids_avgdurationafterwakeupmain","fitbit_sleep_summary_rapids_avgdurationafterwakeupnap","fitbit_sleep_summary_rapids_sumdurationinbedall","fitbit_sleep_summary_rapids_sumdurationinbedmain","fitbit_sleep_summary_rapids_sumdurationinbednap","fitbit_sleep_summary_rapids_avgefficiencyall","fitbit_sleep_summary_rapids_avgefficiencymain","fitbit_sleep_summary_rapids_avgefficiencynap","fitbit_sleep_summary_rapids_sumdurationawakeall","fitbit_sleep_summary_rapids_sumdurationawakemain","fitbit_sleep_summary_rapids_sumdurationawakenap","fitbit_sleep_summary_rapids_lastbedtimeall","fitbit_sleep_summary_rapids_lastbedtimemain","fitbit_sleep_summary_rapids_lastbedtimenap","fitbit_sleep_summary_rapids_avgdurationtofallasleepall","fitbit_sleep_summary_rapids_avgdurationtofallasleepmain","fitbit_sleep_summary_rapids_avgdurationtofallasleepnap","fitbit_sleep_summary_rapids_firstbedtimeall","fitbit_sleep_summary_rapids_firstbedtimemain","fitbit_sleep_summary_rapids_firstbedtimenap","fitbit_sleep_summary_rapids_lastwaketimeall","fitbit_sleep_summary_rapids_lastwaketimemain","fitbit_sleep_summary_rapids_lastwaketimenap","fitbit_sleep_summary_rapids_avgdurationawakeall","fitbit_sleep_summary_rapids_avgdurationawakemain","fitbit_sleep_summary_rapids_avgdurationawakenap","fitbit_sleep_summary_rapids_sumdurationasleepall","fitbit_sleep_summary_rapids_sumdurationasleepmain","fitbit_sleep_summary_rapids_sumdurationasleepnap","fitbit_sleep_summary_rapids_sumdurationafterwakeupall","fitbit_sleep_summary_rapids_sumdurationafterwakeupmain","fitbit_sleep_summary_rapids_sumdurationafterwakeupnap","fitbit_sleep_summary_rapids_countepisodeall","fitbit_sleep_summary_rapids_countepisodemain","fitbit_sleep_summary_rapids_countepisodenap"
|
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1 @@
|
|||
"local_segment","local_segment_label","local_segment_start_datetime","local_segment_end_datetime","fitbit_sleep_summary_rapids_avgdurationasleepall","fitbit_sleep_summary_rapids_avgdurationasleepmain","fitbit_sleep_summary_rapids_avgdurationasleepnap","fitbit_sleep_summary_rapids_sumdurationtofallasleepall","fitbit_sleep_summary_rapids_sumdurationtofallasleepmain","fitbit_sleep_summary_rapids_sumdurationtofallasleepnap","fitbit_sleep_summary_rapids_avgdurationinbedall","fitbit_sleep_summary_rapids_avgdurationinbedmain","fitbit_sleep_summary_rapids_avgdurationinbednap","fitbit_sleep_summary_rapids_firstwaketimeall","fitbit_sleep_summary_rapids_firstwaketimemain","fitbit_sleep_summary_rapids_firstwaketimenap","fitbit_sleep_summary_rapids_avgdurationafterwakeupall","fitbit_sleep_summary_rapids_avgdurationafterwakeupmain","fitbit_sleep_summary_rapids_avgdurationafterwakeupnap","fitbit_sleep_summary_rapids_sumdurationinbedall","fitbit_sleep_summary_rapids_sumdurationinbedmain","fitbit_sleep_summary_rapids_sumdurationinbednap","fitbit_sleep_summary_rapids_avgefficiencyall","fitbit_sleep_summary_rapids_avgefficiencymain","fitbit_sleep_summary_rapids_avgefficiencynap","fitbit_sleep_summary_rapids_sumdurationawakeall","fitbit_sleep_summary_rapids_sumdurationawakemain","fitbit_sleep_summary_rapids_sumdurationawakenap","fitbit_sleep_summary_rapids_lastbedtimeall","fitbit_sleep_summary_rapids_lastbedtimemain","fitbit_sleep_summary_rapids_lastbedtimenap","fitbit_sleep_summary_rapids_avgdurationtofallasleepall","fitbit_sleep_summary_rapids_avgdurationtofallasleepmain","fitbit_sleep_summary_rapids_avgdurationtofallasleepnap","fitbit_sleep_summary_rapids_firstbedtimeall","fitbit_sleep_summary_rapids_firstbedtimemain","fitbit_sleep_summary_rapids_firstbedtimenap","fitbit_sleep_summary_rapids_lastwaketimeall","fitbit_sleep_summary_rapids_lastwaketimemain","fitbit_sleep_summary_rapids_lastwaketimenap","fitbit_sleep_summary_rapids_avgdurationawakeall","fitbit_sleep_summary_rapids_avgdurationawakemain","fitbit_sleep_summary_rapids_avgdurationawakenap","fitbit_sleep_summary_rapids_sumdurationasleepall","fitbit_sleep_summary_rapids_sumdurationasleepmain","fitbit_sleep_summary_rapids_sumdurationasleepnap","fitbit_sleep_summary_rapids_sumdurationafterwakeupall","fitbit_sleep_summary_rapids_sumdurationafterwakeupmain","fitbit_sleep_summary_rapids_sumdurationafterwakeupnap","fitbit_sleep_summary_rapids_countepisodeall","fitbit_sleep_summary_rapids_countepisodemain","fitbit_sleep_summary_rapids_countepisodenap"
|
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1 @@
|
|||
"local_segment","local_segment_label","local_segment_start_datetime","local_segment_end_datetime","fitbit_sleep_summary_rapids_avgdurationasleepall","fitbit_sleep_summary_rapids_avgdurationasleepmain","fitbit_sleep_summary_rapids_avgdurationasleepnap","fitbit_sleep_summary_rapids_sumdurationtofallasleepall","fitbit_sleep_summary_rapids_sumdurationtofallasleepmain","fitbit_sleep_summary_rapids_sumdurationtofallasleepnap","fitbit_sleep_summary_rapids_avgdurationinbedall","fitbit_sleep_summary_rapids_avgdurationinbedmain","fitbit_sleep_summary_rapids_avgdurationinbednap","fitbit_sleep_summary_rapids_firstwaketimeall","fitbit_sleep_summary_rapids_firstwaketimemain","fitbit_sleep_summary_rapids_firstwaketimenap","fitbit_sleep_summary_rapids_avgdurationafterwakeupall","fitbit_sleep_summary_rapids_avgdurationafterwakeupmain","fitbit_sleep_summary_rapids_avgdurationafterwakeupnap","fitbit_sleep_summary_rapids_sumdurationinbedall","fitbit_sleep_summary_rapids_sumdurationinbedmain","fitbit_sleep_summary_rapids_sumdurationinbednap","fitbit_sleep_summary_rapids_avgefficiencyall","fitbit_sleep_summary_rapids_avgefficiencymain","fitbit_sleep_summary_rapids_avgefficiencynap","fitbit_sleep_summary_rapids_sumdurationawakeall","fitbit_sleep_summary_rapids_sumdurationawakemain","fitbit_sleep_summary_rapids_sumdurationawakenap","fitbit_sleep_summary_rapids_lastbedtimeall","fitbit_sleep_summary_rapids_lastbedtimemain","fitbit_sleep_summary_rapids_lastbedtimenap","fitbit_sleep_summary_rapids_avgdurationtofallasleepall","fitbit_sleep_summary_rapids_avgdurationtofallasleepmain","fitbit_sleep_summary_rapids_avgdurationtofallasleepnap","fitbit_sleep_summary_rapids_firstbedtimeall","fitbit_sleep_summary_rapids_firstbedtimemain","fitbit_sleep_summary_rapids_firstbedtimenap","fitbit_sleep_summary_rapids_lastwaketimeall","fitbit_sleep_summary_rapids_lastwaketimemain","fitbit_sleep_summary_rapids_lastwaketimenap","fitbit_sleep_summary_rapids_avgdurationawakeall","fitbit_sleep_summary_rapids_avgdurationawakemain","fitbit_sleep_summary_rapids_avgdurationawakenap","fitbit_sleep_summary_rapids_sumdurationasleepall","fitbit_sleep_summary_rapids_sumdurationasleepmain","fitbit_sleep_summary_rapids_sumdurationasleepnap","fitbit_sleep_summary_rapids_sumdurationafterwakeupall","fitbit_sleep_summary_rapids_sumdurationafterwakeupmain","fitbit_sleep_summary_rapids_sumdurationafterwakeupnap","fitbit_sleep_summary_rapids_countepisodeall","fitbit_sleep_summary_rapids_countepisodemain","fitbit_sleep_summary_rapids_countepisodenap"
|
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1 @@
|
|||
"local_segment","local_segment_label","local_segment_start_datetime","local_segment_end_datetime","fitbit_sleep_summary_rapids_avgdurationasleepall","fitbit_sleep_summary_rapids_avgdurationasleepmain","fitbit_sleep_summary_rapids_avgdurationasleepnap","fitbit_sleep_summary_rapids_sumdurationtofallasleepall","fitbit_sleep_summary_rapids_sumdurationtofallasleepmain","fitbit_sleep_summary_rapids_sumdurationtofallasleepnap","fitbit_sleep_summary_rapids_avgdurationinbedall","fitbit_sleep_summary_rapids_avgdurationinbedmain","fitbit_sleep_summary_rapids_avgdurationinbednap","fitbit_sleep_summary_rapids_firstwaketimeall","fitbit_sleep_summary_rapids_firstwaketimemain","fitbit_sleep_summary_rapids_firstwaketimenap","fitbit_sleep_summary_rapids_avgdurationafterwakeupall","fitbit_sleep_summary_rapids_avgdurationafterwakeupmain","fitbit_sleep_summary_rapids_avgdurationafterwakeupnap","fitbit_sleep_summary_rapids_sumdurationinbedall","fitbit_sleep_summary_rapids_sumdurationinbedmain","fitbit_sleep_summary_rapids_sumdurationinbednap","fitbit_sleep_summary_rapids_avgefficiencyall","fitbit_sleep_summary_rapids_avgefficiencymain","fitbit_sleep_summary_rapids_avgefficiencynap","fitbit_sleep_summary_rapids_sumdurationawakeall","fitbit_sleep_summary_rapids_sumdurationawakemain","fitbit_sleep_summary_rapids_sumdurationawakenap","fitbit_sleep_summary_rapids_lastbedtimeall","fitbit_sleep_summary_rapids_lastbedtimemain","fitbit_sleep_summary_rapids_lastbedtimenap","fitbit_sleep_summary_rapids_avgdurationtofallasleepall","fitbit_sleep_summary_rapids_avgdurationtofallasleepmain","fitbit_sleep_summary_rapids_avgdurationtofallasleepnap","fitbit_sleep_summary_rapids_firstbedtimeall","fitbit_sleep_summary_rapids_firstbedtimemain","fitbit_sleep_summary_rapids_firstbedtimenap","fitbit_sleep_summary_rapids_lastwaketimeall","fitbit_sleep_summary_rapids_lastwaketimemain","fitbit_sleep_summary_rapids_lastwaketimenap","fitbit_sleep_summary_rapids_avgdurationawakeall","fitbit_sleep_summary_rapids_avgdurationawakemain","fitbit_sleep_summary_rapids_avgdurationawakenap","fitbit_sleep_summary_rapids_sumdurationasleepall","fitbit_sleep_summary_rapids_sumdurationasleepmain","fitbit_sleep_summary_rapids_sumdurationasleepnap","fitbit_sleep_summary_rapids_sumdurationafterwakeupall","fitbit_sleep_summary_rapids_sumdurationafterwakeupmain","fitbit_sleep_summary_rapids_sumdurationafterwakeupnap","fitbit_sleep_summary_rapids_countepisodeall","fitbit_sleep_summary_rapids_countepisodemain","fitbit_sleep_summary_rapids_countepisodenap"
|
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1 @@
|
|||
"local_segment","local_segment_label","local_segment_start_datetime","local_segment_end_datetime","fitbit_sleep_summary_rapids_avgdurationasleepall","fitbit_sleep_summary_rapids_avgdurationasleepmain","fitbit_sleep_summary_rapids_avgdurationasleepnap","fitbit_sleep_summary_rapids_sumdurationtofallasleepall","fitbit_sleep_summary_rapids_sumdurationtofallasleepmain","fitbit_sleep_summary_rapids_sumdurationtofallasleepnap","fitbit_sleep_summary_rapids_avgdurationinbedall","fitbit_sleep_summary_rapids_avgdurationinbedmain","fitbit_sleep_summary_rapids_avgdurationinbednap","fitbit_sleep_summary_rapids_firstwaketimeall","fitbit_sleep_summary_rapids_firstwaketimemain","fitbit_sleep_summary_rapids_firstwaketimenap","fitbit_sleep_summary_rapids_avgdurationafterwakeupall","fitbit_sleep_summary_rapids_avgdurationafterwakeupmain","fitbit_sleep_summary_rapids_avgdurationafterwakeupnap","fitbit_sleep_summary_rapids_sumdurationinbedall","fitbit_sleep_summary_rapids_sumdurationinbedmain","fitbit_sleep_summary_rapids_sumdurationinbednap","fitbit_sleep_summary_rapids_avgefficiencyall","fitbit_sleep_summary_rapids_avgefficiencymain","fitbit_sleep_summary_rapids_avgefficiencynap","fitbit_sleep_summary_rapids_sumdurationawakeall","fitbit_sleep_summary_rapids_sumdurationawakemain","fitbit_sleep_summary_rapids_sumdurationawakenap","fitbit_sleep_summary_rapids_lastbedtimeall","fitbit_sleep_summary_rapids_lastbedtimemain","fitbit_sleep_summary_rapids_lastbedtimenap","fitbit_sleep_summary_rapids_avgdurationtofallasleepall","fitbit_sleep_summary_rapids_avgdurationtofallasleepmain","fitbit_sleep_summary_rapids_avgdurationtofallasleepnap","fitbit_sleep_summary_rapids_firstbedtimeall","fitbit_sleep_summary_rapids_firstbedtimemain","fitbit_sleep_summary_rapids_firstbedtimenap","fitbit_sleep_summary_rapids_lastwaketimeall","fitbit_sleep_summary_rapids_lastwaketimemain","fitbit_sleep_summary_rapids_lastwaketimenap","fitbit_sleep_summary_rapids_avgdurationawakeall","fitbit_sleep_summary_rapids_avgdurationawakemain","fitbit_sleep_summary_rapids_avgdurationawakenap","fitbit_sleep_summary_rapids_sumdurationasleepall","fitbit_sleep_summary_rapids_sumdurationasleepmain","fitbit_sleep_summary_rapids_sumdurationasleepnap","fitbit_sleep_summary_rapids_sumdurationafterwakeupall","fitbit_sleep_summary_rapids_sumdurationafterwakeupmain","fitbit_sleep_summary_rapids_sumdurationafterwakeupnap","fitbit_sleep_summary_rapids_countepisodeall","fitbit_sleep_summary_rapids_countepisodemain","fitbit_sleep_summary_rapids_countepisodenap"
|
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1 @@
|
|||
"local_segment","local_segment_label","local_segment_start_datetime","local_segment_end_datetime","fitbit_sleep_summary_rapids_avgdurationasleepall","fitbit_sleep_summary_rapids_avgdurationasleepmain","fitbit_sleep_summary_rapids_avgdurationasleepnap","fitbit_sleep_summary_rapids_sumdurationtofallasleepall","fitbit_sleep_summary_rapids_sumdurationtofallasleepmain","fitbit_sleep_summary_rapids_sumdurationtofallasleepnap","fitbit_sleep_summary_rapids_avgdurationinbedall","fitbit_sleep_summary_rapids_avgdurationinbedmain","fitbit_sleep_summary_rapids_avgdurationinbednap","fitbit_sleep_summary_rapids_firstwaketimeall","fitbit_sleep_summary_rapids_firstwaketimemain","fitbit_sleep_summary_rapids_firstwaketimenap","fitbit_sleep_summary_rapids_avgdurationafterwakeupall","fitbit_sleep_summary_rapids_avgdurationafterwakeupmain","fitbit_sleep_summary_rapids_avgdurationafterwakeupnap","fitbit_sleep_summary_rapids_sumdurationinbedall","fitbit_sleep_summary_rapids_sumdurationinbedmain","fitbit_sleep_summary_rapids_sumdurationinbednap","fitbit_sleep_summary_rapids_avgefficiencyall","fitbit_sleep_summary_rapids_avgefficiencymain","fitbit_sleep_summary_rapids_avgefficiencynap","fitbit_sleep_summary_rapids_sumdurationawakeall","fitbit_sleep_summary_rapids_sumdurationawakemain","fitbit_sleep_summary_rapids_sumdurationawakenap","fitbit_sleep_summary_rapids_lastbedtimeall","fitbit_sleep_summary_rapids_lastbedtimemain","fitbit_sleep_summary_rapids_lastbedtimenap","fitbit_sleep_summary_rapids_avgdurationtofallasleepall","fitbit_sleep_summary_rapids_avgdurationtofallasleepmain","fitbit_sleep_summary_rapids_avgdurationtofallasleepnap","fitbit_sleep_summary_rapids_firstbedtimeall","fitbit_sleep_summary_rapids_firstbedtimemain","fitbit_sleep_summary_rapids_firstbedtimenap","fitbit_sleep_summary_rapids_lastwaketimeall","fitbit_sleep_summary_rapids_lastwaketimemain","fitbit_sleep_summary_rapids_lastwaketimenap","fitbit_sleep_summary_rapids_avgdurationawakeall","fitbit_sleep_summary_rapids_avgdurationawakemain","fitbit_sleep_summary_rapids_avgdurationawakenap","fitbit_sleep_summary_rapids_sumdurationasleepall","fitbit_sleep_summary_rapids_sumdurationasleepmain","fitbit_sleep_summary_rapids_sumdurationasleepnap","fitbit_sleep_summary_rapids_sumdurationafterwakeupall","fitbit_sleep_summary_rapids_sumdurationafterwakeupmain","fitbit_sleep_summary_rapids_sumdurationafterwakeupnap","fitbit_sleep_summary_rapids_countepisodeall","fitbit_sleep_summary_rapids_countepisodemain","fitbit_sleep_summary_rapids_countepisodenap"
|
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1 @@
|
|||
"local_segment","local_segment_label","local_segment_start_datetime","local_segment_end_datetime","fitbit_sleep_summary_rapids_avgdurationasleepall","fitbit_sleep_summary_rapids_avgdurationasleepmain","fitbit_sleep_summary_rapids_avgdurationasleepnap","fitbit_sleep_summary_rapids_sumdurationtofallasleepall","fitbit_sleep_summary_rapids_sumdurationtofallasleepmain","fitbit_sleep_summary_rapids_sumdurationtofallasleepnap","fitbit_sleep_summary_rapids_avgdurationinbedall","fitbit_sleep_summary_rapids_avgdurationinbedmain","fitbit_sleep_summary_rapids_avgdurationinbednap","fitbit_sleep_summary_rapids_firstwaketimeall","fitbit_sleep_summary_rapids_firstwaketimemain","fitbit_sleep_summary_rapids_firstwaketimenap","fitbit_sleep_summary_rapids_avgdurationafterwakeupall","fitbit_sleep_summary_rapids_avgdurationafterwakeupmain","fitbit_sleep_summary_rapids_avgdurationafterwakeupnap","fitbit_sleep_summary_rapids_sumdurationinbedall","fitbit_sleep_summary_rapids_sumdurationinbedmain","fitbit_sleep_summary_rapids_sumdurationinbednap","fitbit_sleep_summary_rapids_avgefficiencyall","fitbit_sleep_summary_rapids_avgefficiencymain","fitbit_sleep_summary_rapids_avgefficiencynap","fitbit_sleep_summary_rapids_sumdurationawakeall","fitbit_sleep_summary_rapids_sumdurationawakemain","fitbit_sleep_summary_rapids_sumdurationawakenap","fitbit_sleep_summary_rapids_lastbedtimeall","fitbit_sleep_summary_rapids_lastbedtimemain","fitbit_sleep_summary_rapids_lastbedtimenap","fitbit_sleep_summary_rapids_avgdurationtofallasleepall","fitbit_sleep_summary_rapids_avgdurationtofallasleepmain","fitbit_sleep_summary_rapids_avgdurationtofallasleepnap","fitbit_sleep_summary_rapids_firstbedtimeall","fitbit_sleep_summary_rapids_firstbedtimemain","fitbit_sleep_summary_rapids_firstbedtimenap","fitbit_sleep_summary_rapids_lastwaketimeall","fitbit_sleep_summary_rapids_lastwaketimemain","fitbit_sleep_summary_rapids_lastwaketimenap","fitbit_sleep_summary_rapids_avgdurationawakeall","fitbit_sleep_summary_rapids_avgdurationawakemain","fitbit_sleep_summary_rapids_avgdurationawakenap","fitbit_sleep_summary_rapids_sumdurationasleepall","fitbit_sleep_summary_rapids_sumdurationasleepmain","fitbit_sleep_summary_rapids_sumdurationasleepnap","fitbit_sleep_summary_rapids_sumdurationafterwakeupall","fitbit_sleep_summary_rapids_sumdurationafterwakeupmain","fitbit_sleep_summary_rapids_sumdurationafterwakeupnap","fitbit_sleep_summary_rapids_countepisodeall","fitbit_sleep_summary_rapids_countepisodemain","fitbit_sleep_summary_rapids_countepisodenap"
|
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,21 @@
|
|||
"local_segment","local_segment_label","local_segment_start_datetime","local_segment_end_datetime","fitbit_sleep_summary_rapids_lastbedtimenap","fitbit_sleep_summary_rapids_lastbedtimemain","fitbit_sleep_summary_rapids_lastbedtimeall","fitbit_sleep_summary_rapids_avgdurationafterwakeupnap","fitbit_sleep_summary_rapids_avgdurationafterwakeupmain","fitbit_sleep_summary_rapids_avgdurationafterwakeupall","fitbit_sleep_summary_rapids_firstbedtimenap","fitbit_sleep_summary_rapids_firstbedtimemain","fitbit_sleep_summary_rapids_firstbedtimeall","fitbit_sleep_summary_rapids_avgdurationtofallasleepnap","fitbit_sleep_summary_rapids_avgdurationtofallasleepmain","fitbit_sleep_summary_rapids_avgdurationtofallasleepall","fitbit_sleep_summary_rapids_lastwaketimenap","fitbit_sleep_summary_rapids_lastwaketimemain","fitbit_sleep_summary_rapids_lastwaketimeall","fitbit_sleep_summary_rapids_avgefficiencynap","fitbit_sleep_summary_rapids_avgefficiencymain","fitbit_sleep_summary_rapids_avgefficiencyall","fitbit_sleep_summary_rapids_avgdurationawakenap","fitbit_sleep_summary_rapids_avgdurationawakemain","fitbit_sleep_summary_rapids_avgdurationawakeall","fitbit_sleep_summary_rapids_sumdurationasleepnap","fitbit_sleep_summary_rapids_sumdurationasleepmain","fitbit_sleep_summary_rapids_sumdurationasleepall","fitbit_sleep_summary_rapids_sumdurationawakenap","fitbit_sleep_summary_rapids_sumdurationawakemain","fitbit_sleep_summary_rapids_sumdurationawakeall","fitbit_sleep_summary_rapids_firstwaketimenap","fitbit_sleep_summary_rapids_firstwaketimemain","fitbit_sleep_summary_rapids_firstwaketimeall","fitbit_sleep_summary_rapids_countepisodenap","fitbit_sleep_summary_rapids_countepisodemain","fitbit_sleep_summary_rapids_countepisodeall","fitbit_sleep_summary_rapids_sumdurationtofallasleepnap","fitbit_sleep_summary_rapids_sumdurationtofallasleepmain","fitbit_sleep_summary_rapids_sumdurationtofallasleepall","fitbit_sleep_summary_rapids_sumdurationinbednap","fitbit_sleep_summary_rapids_sumdurationinbedmain","fitbit_sleep_summary_rapids_sumdurationinbedall","fitbit_sleep_summary_rapids_avgdurationasleepnap","fitbit_sleep_summary_rapids_avgdurationasleepmain","fitbit_sleep_summary_rapids_avgdurationasleepall","fitbit_sleep_summary_rapids_sumdurationafterwakeupnap","fitbit_sleep_summary_rapids_sumdurationafterwakeupmain","fitbit_sleep_summary_rapids_sumdurationafterwakeupall","fitbit_sleep_summary_rapids_avgdurationinbednap","fitbit_sleep_summary_rapids_avgdurationinbedmain","fitbit_sleep_summary_rapids_avgdurationinbedall"
|
||||
"daily#2020-03-06 00:00:00,2020-03-06 23:59:59","daily","2020-03-06 00:00:00","2020-03-06 23:59:59",1680,1200,1680,2,0,1,1680,1200,1200,10,0,5,NA,NA,NA,86,90,88,20,51,35.5,90,309,399,20,51,71,NA,NA,NA,1,1,2,10,0,10,120,360,480,90,309,199.5,2,0,2,120,360,240
|
||||
"daily#2020-03-07 00:00:00,2020-03-07 23:59:59","daily","2020-03-07 00:00:00","2020-03-07 23:59:59",780,1500,1500,0,1,0.5,780,1500,780,2,0,1,360,120,360,88,96,92,30,52,41,88,608,696,30,52,82,360,120,120,1,1,2,2,0,2,120,660,780,88,608,348,0,1,1,120,660,390
|
||||
"daily#2020-03-08 00:00:00,2020-03-08 23:59:59","daily","2020-03-08 00:00:00","2020-03-08 23:59:59",NA,1380,1380,0,1,1,NA,1380,1380,0,0,0,-540,720,720,NA,94,94,0,50,50,0,430,430,0,50,50,-540,720,-540,0,1,1,0,0,0,0,480,480,0,430,430,0,1,1,0,480,480
|
||||
"daily#2020-03-09 00:00:00,2020-03-09 23:59:59","daily","2020-03-09 00:00:00","2020-03-09 23:59:59",NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,420,420,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,420,420,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA
|
||||
"daily#2020-10-30 00:00:00,2020-10-30 23:59:59","daily","2020-10-30 00:00:00","2020-10-30 23:59:59",1680,1200,1680,2,0,1,1680,1200,1200,10,0,5,NA,NA,NA,86,90,88,20,51,35.5,90,309,399,20,51,71,NA,NA,NA,1,1,2,10,0,10,120,360,480,90,309,199.5,2,0,2,120,360,240
|
||||
"daily#2020-10-31 00:00:00,2020-10-31 23:59:59","daily","2020-10-31 00:00:00","2020-10-31 23:59:59",780,1500,1500,0,1,0.5,780,1500,780,2,0,1,360,120,360,88,96,92,30,52,41,88,608,696,30,52,82,360,120,120,1,1,2,2,0,2,120,660,780,88,608,348,0,1,1,120,660,390
|
||||
"daily#2020-11-01 00:00:00,2020-11-01 23:59:59","daily","2020-11-01 00:00:00","2020-11-01 23:59:59",NA,1380,1380,0,1,1,NA,1380,1380,0,0,0,-540,720,720,NA,94,94,0,50,50,0,430,430,0,50,50,-540,720,-540,0,1,1,0,0,0,0,480,480,0,430,430,0,1,1,0,480,480
|
||||
"daily#2020-11-02 00:00:00,2020-11-02 23:59:59","daily","2020-11-02 00:00:00","2020-11-02 23:59:59",NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,420,420,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,420,420,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA
|
||||
"threeday#2020-03-06 00:00:00,2020-03-08 23:59:59","threeday","2020-03-06 00:00:00","2020-03-08 23:59:59",1680,1500,1680,1,0.666666666666667,0.8,780,1200,780,6,0,2.4,-90,420,540,87,93.3333333333333,90.8,25,51,40.6,178,1347,1525,50,153,203,-90,420,-210,2,3,5,12,0,12,240,1500,1740,89,449,305,2,2,4,120,500,348
|
||||
"threeday#2020-03-07 00:00:00,2020-03-09 23:59:59","threeday","2020-03-07 00:00:00","2020-03-09 23:59:59",780,1500,1500,0,1,0.666666666666667,780,1380,780,2,0,0.666666666666667,-90,420,500,88,95,92.6666666666667,30,51,44,88,1038,1126,30,102,132,-90,420,0,1,2,3,2,0,2,120,1140,1260,88,519,375.333333333333,0,2,2,120,570,420
|
||||
"threeday#2020-03-08 00:00:00,2020-03-10 23:59:59","threeday","2020-03-08 00:00:00","2020-03-10 23:59:59",NA,1380,1380,0,1,1,NA,1380,1380,0,0,0,-540,570,570,NA,94,94,0,50,50,0,430,430,0,50,50,-540,570,-60,0,1,1,0,0,0,0,480,480,0,430,430,0,1,1,0,480,480
|
||||
"threeday#2020-03-09 00:00:00,2020-03-11 23:59:59","threeday","2020-03-09 00:00:00","2020-03-11 23:59:59",NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,420,420,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,420,420,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA
|
||||
"threeday#2020-10-28 00:00:00,2020-10-30 23:59:59","threeday","2020-10-28 00:00:00","2020-10-30 23:59:59",1680,1200,1680,2,0,1,1680,1200,1200,10,0,5,NA,NA,NA,86,90,88,20,51,35.5,90,309,399,20,51,71,NA,NA,NA,1,1,2,10,0,10,120,360,480,90,309,199.5,2,0,2,120,360,240
|
||||
"threeday#2020-10-29 00:00:00,2020-10-31 23:59:59","threeday","2020-10-29 00:00:00","2020-10-31 23:59:59",1680,1500,1680,1,0.5,0.75,780,1200,780,6,0,3,360,120,360,87,93,90,25,51.5,38.25,178,917,1095,50,103,153,360,120,120,2,2,4,12,0,12,240,1020,1260,89,458.5,273.75,2,1,3,120,510,315
|
||||
"threeday#2020-10-30 00:00:00,2020-11-01 23:59:59","threeday","2020-10-30 00:00:00","2020-11-01 23:59:59",1680,1500,1680,1,0.666666666666667,0.8,780,1200,780,6,0,2.4,-90,420,540,87,93.3333333333333,90.8,25,51,40.6,178,1347,1525,50,153,203,-90,420,-210,2,3,5,12,0,12,240,1500,1740,89,449,305,2,2,4,120,500,348
|
||||
"threeday#2020-10-31 00:00:00,2020-11-02 23:59:59","threeday","2020-10-31 00:00:00","2020-11-02 23:59:59",780,1500,1500,0,1,0.666666666666667,780,1380,780,2,0,0.666666666666667,-90,420,500,88,95,92.6666666666667,30,51,44,88,1038,1126,30,102,132,-90,420,0,1,2,3,2,0,2,120,1140,1260,88,519,375.333333333333,0,2,2,120,570,420
|
||||
"threeday#2020-11-01 00:00:00,2020-11-03 23:59:59","threeday","2020-11-01 00:00:00","2020-11-03 23:59:59",NA,1380,1380,0,1,1,NA,1380,1380,0,0,0,-540,570,570,NA,94,94,0,50,50,0,430,430,0,50,50,-540,570,-60,0,1,1,0,0,0,0,480,480,0,430,430,0,1,1,0,480,480
|
||||
"threeday#2020-11-02 00:00:00,2020-11-04 23:59:59","threeday","2020-11-02 00:00:00","2020-11-04 23:59:59",NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,420,420,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,420,420,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA
|
||||
"weekend#2020-03-06 00:00:00,2020-03-08 23:59:59","weekend","2020-03-06 00:00:00","2020-03-08 23:59:59",1680,1500,1680,1,0.666666666666667,0.8,780,1200,780,6,0,2.4,-90,420,540,87,93.3333333333333,90.8,25,51,40.6,178,1347,1525,50,153,203,-90,420,-210,2,3,5,12,0,12,240,1500,1740,89,449,305,2,2,4,120,500,348
|
||||
"weekend#2020-10-30 00:00:00,2020-11-01 23:59:59","weekend","2020-10-30 00:00:00","2020-11-01 23:59:59",1680,1500,1680,1,0.666666666666667,0.8,780,1200,780,6,0,2.4,-90,420,540,87,93.3333333333333,90.8,25,51,40.6,178,1347,1525,50,153,203,-90,420,-210,2,3,5,12,0,12,240,1500,1740,89,449,305,2,2,4,120,500,348
|
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1 @@
|
|||
"local_segment","local_segment_label","local_segment_start_datetime","local_segment_end_datetime","fitbit_sleep_summary_rapids_avgdurationasleepall","fitbit_sleep_summary_rapids_avgdurationasleepmain","fitbit_sleep_summary_rapids_avgdurationasleepnap","fitbit_sleep_summary_rapids_sumdurationtofallasleepall","fitbit_sleep_summary_rapids_sumdurationtofallasleepmain","fitbit_sleep_summary_rapids_sumdurationtofallasleepnap","fitbit_sleep_summary_rapids_avgdurationinbedall","fitbit_sleep_summary_rapids_avgdurationinbedmain","fitbit_sleep_summary_rapids_avgdurationinbednap","fitbit_sleep_summary_rapids_firstwaketimeall","fitbit_sleep_summary_rapids_firstwaketimemain","fitbit_sleep_summary_rapids_firstwaketimenap","fitbit_sleep_summary_rapids_avgdurationafterwakeupall","fitbit_sleep_summary_rapids_avgdurationafterwakeupmain","fitbit_sleep_summary_rapids_avgdurationafterwakeupnap","fitbit_sleep_summary_rapids_sumdurationinbedall","fitbit_sleep_summary_rapids_sumdurationinbedmain","fitbit_sleep_summary_rapids_sumdurationinbednap","fitbit_sleep_summary_rapids_avgefficiencyall","fitbit_sleep_summary_rapids_avgefficiencymain","fitbit_sleep_summary_rapids_avgefficiencynap","fitbit_sleep_summary_rapids_sumdurationawakeall","fitbit_sleep_summary_rapids_sumdurationawakemain","fitbit_sleep_summary_rapids_sumdurationawakenap","fitbit_sleep_summary_rapids_lastbedtimeall","fitbit_sleep_summary_rapids_lastbedtimemain","fitbit_sleep_summary_rapids_lastbedtimenap","fitbit_sleep_summary_rapids_avgdurationtofallasleepall","fitbit_sleep_summary_rapids_avgdurationtofallasleepmain","fitbit_sleep_summary_rapids_avgdurationtofallasleepnap","fitbit_sleep_summary_rapids_firstbedtimeall","fitbit_sleep_summary_rapids_firstbedtimemain","fitbit_sleep_summary_rapids_firstbedtimenap","fitbit_sleep_summary_rapids_lastwaketimeall","fitbit_sleep_summary_rapids_lastwaketimemain","fitbit_sleep_summary_rapids_lastwaketimenap","fitbit_sleep_summary_rapids_avgdurationawakeall","fitbit_sleep_summary_rapids_avgdurationawakemain","fitbit_sleep_summary_rapids_avgdurationawakenap","fitbit_sleep_summary_rapids_sumdurationasleepall","fitbit_sleep_summary_rapids_sumdurationasleepmain","fitbit_sleep_summary_rapids_sumdurationasleepnap","fitbit_sleep_summary_rapids_sumdurationafterwakeupall","fitbit_sleep_summary_rapids_sumdurationafterwakeupmain","fitbit_sleep_summary_rapids_sumdurationafterwakeupnap","fitbit_sleep_summary_rapids_countepisodeall","fitbit_sleep_summary_rapids_countepisodemain","fitbit_sleep_summary_rapids_countepisodenap"
|
|
|
@ -324,19 +324,19 @@ FITBIT_DATA_STREAMS:
|
|||
# AVAILABLE:
|
||||
fitbitjson_mysql:
|
||||
DATABASE_GROUP: MY_GROUP
|
||||
SLEEP_SUMMARY_EPISODE_DAY_ANCHOR: end # summary sleep episodes are considered as events based on either the start timestamp or end timestamp.
|
||||
SLEEP_SUMMARY_LAST_NIGHT_END: 660 # a number ranged from 0 (midnight) to 1439 (23:59) which denotes number of minutes after midnight. By default, 660 (11:00).
|
||||
|
||||
fitbitparsed_mysql:
|
||||
DATABASE_GROUP: MY_GROUP
|
||||
SLEEP_SUMMARY_EPISODE_DAY_ANCHOR: end # summary sleep episodes are considered as events based on either the start timestamp or end timestamp.
|
||||
SLEEP_SUMMARY_LAST_NIGHT_END: 660 # a number ranged from 0 (midnight) to 1439 (23:59) which denotes number of minutes after midnight. By default, 660 (11:00).
|
||||
|
||||
fitbitjson_csv:
|
||||
FOLDER: data/external/fitbit_csv
|
||||
SLEEP_SUMMARY_EPISODE_DAY_ANCHOR: end # summary sleep episodes are considered as events based on either the start timestamp or end timestamp.
|
||||
SLEEP_SUMMARY_LAST_NIGHT_END: 660 # a number ranged from 0 (midnight) to 1439 (23:59) which denotes number of minutes after midnight. By default, 660 (11:00).
|
||||
|
||||
fitbitparsed_csv:
|
||||
FOLDER: tests/data/external/aware_csv
|
||||
SLEEP_SUMMARY_EPISODE_DAY_ANCHOR: end # summary sleep episodes are considered as events based on either the start timestamp or end timestamp.
|
||||
SLEEP_SUMMARY_LAST_NIGHT_END: 660 # a number ranged from 0 (midnight) to 1439 (23:59) which denotes number of minutes after midnight. By default, 660 (11:00).
|
||||
|
||||
# Sensors ------
|
||||
FITBIT_CALORIES_INTRADAY:
|
||||
|
@ -383,46 +383,42 @@ FITBIT_HEARTRATE_INTRADAY:
|
|||
|
||||
# See https://www.rapids.science/latest/features/fitbit-sleep-summary/
|
||||
FITBIT_SLEEP_SUMMARY:
|
||||
CONTAINER: sleep_summary
|
||||
CONTAINER: fitbit_sleep_summary_raw.csv
|
||||
PROVIDERS:
|
||||
RAPIDS:
|
||||
COMPUTE: False
|
||||
FEATURES: ["countepisode", "avgefficiency", "sumdurationafterwakeup", "sumdurationasleep", "sumdurationawake", "sumdurationtofallasleep", "sumdurationinbed", "avgdurationafterwakeup", "avgdurationasleep", "avgdurationawake", "avgdurationtofallasleep", "avgdurationinbed"]
|
||||
COMPUTE: True
|
||||
FEATURES: ["firstwaketime", "lastwaketime", "firstbedtime", "lastbedtime", "countepisode", "avgefficiency", "sumdurationafterwakeup", "sumdurationasleep", "sumdurationawake", "sumdurationtofallasleep", "sumdurationinbed", "avgdurationafterwakeup", "avgdurationasleep", "avgdurationawake", "avgdurationtofallasleep", "avgdurationinbed"]
|
||||
SLEEP_TYPES: ["main", "nap", "all"]
|
||||
SRC_SCRIPT: src/features/fitbit_sleep_summary/rapids/main.py
|
||||
|
||||
# See https://www.rapids.science/latest/features/fitbit-sleep-intraday/
|
||||
FITBIT_SLEEP_INTRADAY:
|
||||
CONTAINER: sleep_intraday
|
||||
CONTAINER: fitbit_sleep_intraday_raw.csv
|
||||
PROVIDERS:
|
||||
RAPIDS:
|
||||
COMPUTE: False
|
||||
COMPUTE: True
|
||||
FEATURES:
|
||||
LEVELS_AND_TYPES_COMBINING_ALL: True
|
||||
LEVELS_AND_TYPES: [countepisode, sumduration, maxduration, minduration, avgduration, medianduration, stdduration]
|
||||
RATIOS_TYPE: [count, duration]
|
||||
RATIOS_SCOPE: [ACROSS_LEVELS, ACROSS_TYPES, WITHIN_LEVELS, WITHIN_TYPES]
|
||||
ROUTINE: [starttimefirstmainsleep, endtimelastmainsleep, starttimefirstnap, endtimelastnap]
|
||||
SLEEP_LEVELS:
|
||||
INCLUDE_ALL_GROUPS: True
|
||||
CLASSIC: [awake, restless, asleep]
|
||||
STAGES: [wake, deep, light, rem]
|
||||
UNIFIED: [awake, asleep]
|
||||
SLEEP_TYPES: [main, nap]
|
||||
INCLUDE_SLEEP_LATER_THAN: 0 # a number ranged from 0 (midnight) to 1439 (23:59)
|
||||
REFERENCE_TIME: MIDNIGHT # chosen from "MIDNIGHT" and "START_OF_THE_SEGMENT"
|
||||
SLEEP_TYPES: [main, nap, all]
|
||||
SRC_SCRIPT: src/features/fitbit_sleep_intraday/rapids/main.py
|
||||
|
||||
PRICE:
|
||||
COMPUTE: False
|
||||
FEATURES: [avgduration, avgratioduration, avgstarttimeofepisodemain, avgendtimeofepisodemain, avgmidpointofepisodemain, "stdstarttimeofepisodemain", "stdendtimeofepisodemain", "stdmidpointofepisodemain", socialjetlag, meanssdstarttimeofepisodemain, meanssdendtimeofepisodemain, meanssdmidpointofepisodemain, medianssdstarttimeofepisodemain, medianssdendtimeofepisodemain, medianssdmidpointofepisodemain]
|
||||
COMPUTE: True
|
||||
FEATURES: [avgduration, avgratioduration, avgstarttimeofepisodemain, avgendtimeofepisodemain, avgmidpointofepisodemain, stdstarttimeofepisodemain, stdendtimeofepisodemain, stdmidpointofepisodemain, socialjetlag, rmssdmeanstarttimeofepisodemain, rmssdmeanendtimeofepisodemain, rmssdmeanmidpointofepisodemain, rmssdmedianstarttimeofepisodemain, rmssdmedianendtimeofepisodemain, rmssdmedianmidpointofepisodemain]
|
||||
SLEEP_LEVELS:
|
||||
INCLUDE_ALL_GROUPS: True
|
||||
CLASSIC: [awake, restless, asleep]
|
||||
STAGES: [wake, deep, light, rem]
|
||||
UNIFIED: [awake, asleep]
|
||||
DAY_TYPES: [WEEKEND, WEEK, ALL]
|
||||
GROUP_EPISODES_WITHIN: # by default: today's 6pm to tomorrow's noon
|
||||
START_TIME: 1080 # number of minutes after the midnight (18:00) 18*60
|
||||
LENGTH: 1080 # in minutes (18 hours) 18*60
|
||||
LAST_NIGHT_END: 660 # number of minutes after midnight (11:00) 11*60
|
||||
SRC_SCRIPT: src/features/fitbit_sleep_intraday/price/main.py
|
||||
|
||||
# See https://www.rapids.science/latest/features/fitbit-steps-summary/
|
||||
|
|
|
@ -324,19 +324,19 @@ FITBIT_DATA_STREAMS:
|
|||
# AVAILABLE:
|
||||
fitbitjson_mysql:
|
||||
DATABASE_GROUP: MY_GROUP
|
||||
SLEEP_SUMMARY_EPISODE_DAY_ANCHOR: end # summary sleep episodes are considered as events based on either the start timestamp or end timestamp.
|
||||
SLEEP_SUMMARY_LAST_NIGHT_END: 660 # a number ranged from 0 (midnight) to 1439 (23:59) which denotes number of minutes after midnight. By default, 660 (11:00).
|
||||
|
||||
fitbitparsed_mysql:
|
||||
DATABASE_GROUP: MY_GROUP
|
||||
SLEEP_SUMMARY_EPISODE_DAY_ANCHOR: end # summary sleep episodes are considered as events based on either the start timestamp or end timestamp.
|
||||
SLEEP_SUMMARY_LAST_NIGHT_END: 660 # a number ranged from 0 (midnight) to 1439 (23:59) which denotes number of minutes after midnight. By default, 660 (11:00).
|
||||
|
||||
fitbitjson_csv:
|
||||
FOLDER: data/external/fitbit_csv
|
||||
SLEEP_SUMMARY_EPISODE_DAY_ANCHOR: end # summary sleep episodes are considered as events based on either the start timestamp or end timestamp.
|
||||
SLEEP_SUMMARY_LAST_NIGHT_END: 660 # a number ranged from 0 (midnight) to 1439 (23:59) which denotes number of minutes after midnight. By default, 660 (11:00).
|
||||
|
||||
fitbitparsed_csv:
|
||||
FOLDER: tests/data/external/aware_csv
|
||||
SLEEP_SUMMARY_EPISODE_DAY_ANCHOR: end # summary sleep episodes are considered as events based on either the start timestamp or end timestamp.
|
||||
SLEEP_SUMMARY_LAST_NIGHT_END: 660 # a number ranged from 0 (midnight) to 1439 (23:59) which denotes number of minutes after midnight. By default, 660 (11:00).
|
||||
|
||||
# Sensors ------
|
||||
|
||||
|
@ -384,46 +384,42 @@ FITBIT_HEARTRATE_INTRADAY:
|
|||
|
||||
# See https://www.rapids.science/latest/features/fitbit-sleep-summary/
|
||||
FITBIT_SLEEP_SUMMARY:
|
||||
CONTAINER: sleep_summary
|
||||
CONTAINER: fitbit_sleep_summary_raw.csv
|
||||
PROVIDERS:
|
||||
RAPIDS:
|
||||
COMPUTE: False
|
||||
FEATURES: ["countepisode", "avgefficiency", "sumdurationafterwakeup", "sumdurationasleep", "sumdurationawake", "sumdurationtofallasleep", "sumdurationinbed", "avgdurationafterwakeup", "avgdurationasleep", "avgdurationawake", "avgdurationtofallasleep", "avgdurationinbed"]
|
||||
COMPUTE: True
|
||||
FEATURES: ["firstwaketime", "lastwaketime", "firstbedtime", "lastbedtime", "countepisode", "avgefficiency", "sumdurationafterwakeup", "sumdurationasleep", "sumdurationawake", "sumdurationtofallasleep", "sumdurationinbed", "avgdurationafterwakeup", "avgdurationasleep", "avgdurationawake", "avgdurationtofallasleep", "avgdurationinbed"]
|
||||
SLEEP_TYPES: ["main", "nap", "all"]
|
||||
SRC_SCRIPT: src/features/fitbit_sleep_summary/rapids/main.py
|
||||
|
||||
# See https://www.rapids.science/latest/features/fitbit-sleep-intraday/
|
||||
FITBIT_SLEEP_INTRADAY:
|
||||
CONTAINER: sleep_intraday
|
||||
CONTAINER: fitbit_sleep_intraday_raw.csv
|
||||
PROVIDERS:
|
||||
RAPIDS:
|
||||
COMPUTE: False
|
||||
COMPUTE: True
|
||||
FEATURES:
|
||||
LEVELS_AND_TYPES_COMBINING_ALL: True
|
||||
LEVELS_AND_TYPES: [countepisode, sumduration, maxduration, minduration, avgduration, medianduration, stdduration]
|
||||
RATIOS_TYPE: [count, duration]
|
||||
RATIOS_SCOPE: [ACROSS_LEVELS, ACROSS_TYPES, WITHIN_LEVELS, WITHIN_TYPES]
|
||||
ROUTINE: [starttimefirstmainsleep, endtimelastmainsleep, starttimefirstnap, endtimelastnap]
|
||||
SLEEP_LEVELS:
|
||||
INCLUDE_ALL_GROUPS: True
|
||||
CLASSIC: [awake, restless, asleep]
|
||||
STAGES: [wake, deep, light, rem]
|
||||
UNIFIED: [awake, asleep]
|
||||
SLEEP_TYPES: [main, nap]
|
||||
INCLUDE_SLEEP_LATER_THAN: 0 # a number ranged from 0 (midnight) to 1439 (23:59)
|
||||
REFERENCE_TIME: MIDNIGHT # chosen from "MIDNIGHT" and "START_OF_THE_SEGMENT"
|
||||
SLEEP_TYPES: [main, nap, all]
|
||||
SRC_SCRIPT: src/features/fitbit_sleep_intraday/rapids/main.py
|
||||
|
||||
PRICE:
|
||||
COMPUTE: False
|
||||
FEATURES: [avgduration, avgratioduration, avgstarttimeofepisodemain, avgendtimeofepisodemain, avgmidpointofepisodemain, "stdstarttimeofepisodemain", "stdendtimeofepisodemain", "stdmidpointofepisodemain", socialjetlag, meanssdstarttimeofepisodemain, meanssdendtimeofepisodemain, meanssdmidpointofepisodemain, medianssdstarttimeofepisodemain, medianssdendtimeofepisodemain, medianssdmidpointofepisodemain]
|
||||
COMPUTE: True
|
||||
FEATURES: [avgduration, avgratioduration, avgstarttimeofepisodemain, avgendtimeofepisodemain, avgmidpointofepisodemain, stdstarttimeofepisodemain, stdendtimeofepisodemain, stdmidpointofepisodemain, socialjetlag, rmssdmeanstarttimeofepisodemain, rmssdmeanendtimeofepisodemain, rmssdmeanmidpointofepisodemain, rmssdmedianstarttimeofepisodemain, rmssdmedianendtimeofepisodemain, rmssdmedianmidpointofepisodemain]
|
||||
SLEEP_LEVELS:
|
||||
INCLUDE_ALL_GROUPS: True
|
||||
CLASSIC: [awake, restless, asleep]
|
||||
STAGES: [wake, deep, light, rem]
|
||||
UNIFIED: [awake, asleep]
|
||||
DAY_TYPES: [WEEKEND, WEEK, ALL]
|
||||
GROUP_EPISODES_WITHIN: # by default: today's 6pm to tomorrow's noon
|
||||
START_TIME: 1080 # number of minutes after the midnight (18:00) 18*60
|
||||
LENGTH: 1080 # in minutes (18 hours) 18*60
|
||||
LAST_NIGHT_END: 660 # number of minutes after midnight (11:00) 11*60
|
||||
SRC_SCRIPT: src/features/fitbit_sleep_intraday/price/main.py
|
||||
|
||||
# See https://www.rapids.science/latest/features/fitbit-steps-summary/
|
||||
|
|
|
@ -324,19 +324,19 @@ FITBIT_DATA_STREAMS:
|
|||
# AVAILABLE:
|
||||
fitbitjson_mysql:
|
||||
DATABASE_GROUP: MY_GROUP
|
||||
SLEEP_SUMMARY_EPISODE_DAY_ANCHOR: end # summary sleep episodes are considered as events based on either the start timestamp or end timestamp.
|
||||
SLEEP_SUMMARY_LAST_NIGHT_END: 660 # a number ranged from 0 (midnight) to 1439 (23:59) which denotes number of minutes after midnight. By default, 660 (11:00).
|
||||
|
||||
fitbitparsed_mysql:
|
||||
DATABASE_GROUP: MY_GROUP
|
||||
SLEEP_SUMMARY_EPISODE_DAY_ANCHOR: end # summary sleep episodes are considered as events based on either the start timestamp or end timestamp.
|
||||
SLEEP_SUMMARY_LAST_NIGHT_END: 660 # a number ranged from 0 (midnight) to 1439 (23:59) which denotes number of minutes after midnight. By default, 660 (11:00).
|
||||
|
||||
fitbitjson_csv:
|
||||
FOLDER: data/external/fitbit_csv
|
||||
SLEEP_SUMMARY_EPISODE_DAY_ANCHOR: end # summary sleep episodes are considered as events based on either the start timestamp or end timestamp.
|
||||
SLEEP_SUMMARY_LAST_NIGHT_END: 660 # a number ranged from 0 (midnight) to 1439 (23:59) which denotes number of minutes after midnight. By default, 660 (11:00).
|
||||
|
||||
fitbitparsed_csv:
|
||||
FOLDER: tests/data/external/aware_csv
|
||||
SLEEP_SUMMARY_EPISODE_DAY_ANCHOR: end # summary sleep episodes are considered as events based on either the start timestamp or end timestamp.
|
||||
SLEEP_SUMMARY_LAST_NIGHT_END: 660 # a number ranged from 0 (midnight) to 1439 (23:59) which denotes number of minutes after midnight. By default, 660 (11:00).
|
||||
|
||||
# Sensors ------
|
||||
FITBIT_CALORIES_INTRADAY:
|
||||
|
@ -383,46 +383,42 @@ FITBIT_HEARTRATE_INTRADAY:
|
|||
|
||||
# See https://www.rapids.science/latest/features/fitbit-sleep-summary/
|
||||
FITBIT_SLEEP_SUMMARY:
|
||||
CONTAINER: sleep_summary
|
||||
CONTAINER: fitbit_sleep_summary_raw.csv
|
||||
PROVIDERS:
|
||||
RAPIDS:
|
||||
COMPUTE: False
|
||||
FEATURES: ["countepisode", "avgefficiency", "sumdurationafterwakeup", "sumdurationasleep", "sumdurationawake", "sumdurationtofallasleep", "sumdurationinbed", "avgdurationafterwakeup", "avgdurationasleep", "avgdurationawake", "avgdurationtofallasleep", "avgdurationinbed"]
|
||||
COMPUTE: True
|
||||
FEATURES: ["firstwaketime", "lastwaketime", "firstbedtime", "lastbedtime", "countepisode", "avgefficiency", "sumdurationafterwakeup", "sumdurationasleep", "sumdurationawake", "sumdurationtofallasleep", "sumdurationinbed", "avgdurationafterwakeup", "avgdurationasleep", "avgdurationawake", "avgdurationtofallasleep", "avgdurationinbed"]
|
||||
SLEEP_TYPES: ["main", "nap", "all"]
|
||||
SRC_SCRIPT: src/features/fitbit_sleep_summary/rapids/main.py
|
||||
|
||||
# See https://www.rapids.science/latest/features/fitbit-sleep-intraday/
|
||||
FITBIT_SLEEP_INTRADAY:
|
||||
CONTAINER: sleep_intraday
|
||||
CONTAINER: fitbit_sleep_intraday_raw.csv
|
||||
PROVIDERS:
|
||||
RAPIDS:
|
||||
COMPUTE: False
|
||||
COMPUTE: True
|
||||
FEATURES:
|
||||
LEVELS_AND_TYPES_COMBINING_ALL: True
|
||||
LEVELS_AND_TYPES: [countepisode, sumduration, maxduration, minduration, avgduration, medianduration, stdduration]
|
||||
RATIOS_TYPE: [count, duration]
|
||||
RATIOS_SCOPE: [ACROSS_LEVELS, ACROSS_TYPES, WITHIN_LEVELS, WITHIN_TYPES]
|
||||
ROUTINE: [starttimefirstmainsleep, endtimelastmainsleep, starttimefirstnap, endtimelastnap]
|
||||
SLEEP_LEVELS:
|
||||
INCLUDE_ALL_GROUPS: True
|
||||
CLASSIC: [awake, restless, asleep]
|
||||
STAGES: [wake, deep, light, rem]
|
||||
UNIFIED: [awake, asleep]
|
||||
SLEEP_TYPES: [main, nap]
|
||||
INCLUDE_SLEEP_LATER_THAN: 0 # a number ranged from 0 (midnight) to 1439 (23:59)
|
||||
REFERENCE_TIME: MIDNIGHT # chosen from "MIDNIGHT" and "START_OF_THE_SEGMENT"
|
||||
SLEEP_TYPES: [main, nap, all]
|
||||
SRC_SCRIPT: src/features/fitbit_sleep_intraday/rapids/main.py
|
||||
|
||||
PRICE:
|
||||
COMPUTE: False
|
||||
FEATURES: [avgduration, avgratioduration, avgstarttimeofepisodemain, avgendtimeofepisodemain, avgmidpointofepisodemain, "stdstarttimeofepisodemain", "stdendtimeofepisodemain", "stdmidpointofepisodemain", socialjetlag, meanssdstarttimeofepisodemain, meanssdendtimeofepisodemain, meanssdmidpointofepisodemain, medianssdstarttimeofepisodemain, medianssdendtimeofepisodemain, medianssdmidpointofepisodemain]
|
||||
COMPUTE: True
|
||||
FEATURES: [avgduration, avgratioduration, avgstarttimeofepisodemain, avgendtimeofepisodemain, avgmidpointofepisodemain, stdstarttimeofepisodemain, stdendtimeofepisodemain, stdmidpointofepisodemain, socialjetlag, rmssdmeanstarttimeofepisodemain, rmssdmeanendtimeofepisodemain, rmssdmeanmidpointofepisodemain, rmssdmedianstarttimeofepisodemain, rmssdmedianendtimeofepisodemain, rmssdmedianmidpointofepisodemain]
|
||||
SLEEP_LEVELS:
|
||||
INCLUDE_ALL_GROUPS: True
|
||||
CLASSIC: [awake, restless, asleep]
|
||||
STAGES: [wake, deep, light, rem]
|
||||
UNIFIED: [awake, asleep]
|
||||
DAY_TYPES: [WEEKEND, WEEK, ALL]
|
||||
GROUP_EPISODES_WITHIN: # by default: today's 6pm to tomorrow's noon
|
||||
START_TIME: 1080 # number of minutes after the midnight (18:00) 18*60
|
||||
LENGTH: 1080 # in minutes (18 hours) 18*60
|
||||
LAST_NIGHT_END: 660 # number of minutes after midnight (11:00) 11*60
|
||||
SRC_SCRIPT: src/features/fitbit_sleep_intraday/price/main.py
|
||||
|
||||
# See https://www.rapids.science/latest/features/fitbit-steps-summary/
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue