Each data source will provide unique points of granular data based on their data structure and the method of data capture. ROOK will standardize Granular Data into one of three types of granular data.
Instantaneous
Aggregated
Annotated Aggregated
1. Instantaneous Granular Data:
This type of granular data captures measurements or events at specific points in time, typically coinciding with the recorded timestamps. As an example, the code snippet below illustrates two instances where heart rate (HR) in beats per minute (bpm) was recorded by a smartwatch. HR is typically calculated by measuring the R-R interval, rather than counting all beats within a full minute.
"hr_granular_data_array": [
{
"hr_bpm_int": 0,
"datetime_string": "2022-10-28T19:35:03.308Z"
},
{
"hr_bpm_int": 0,
"datetime_string": "2022-10-28T19:35:03.308Z"
}
]
2. Aggregated Granular Data:
This type of granular data encapsulates measurements or events that occurred within a specified time interval. As an example, the code snippet below illustrates two instances where smartwatch step counts were aggregated over five-minute intervals.
"steps_granular_data_array": [
{
"steps_int": 156,
"datetime_string": "2023-10-28T15:26:00.000Z",
"interval_duration_seconds_float": 300
},
{
"steps_int": 124,
"datetime_string": "2023-10-28T15:31:02.000Z",
"interval_duration_seconds_float": 300
}
]
Each object in the steps_granular_data_array represents a five-minute interval. The steps_int attribute indicates the total number of steps taken during that interval, the datetime_string attribute represents the start time of the interval, and the interval_duration_seconds_float attribute specifies the length of the interval in seconds.
3. Annotated Aggregated Granular Data: This type of granular data summarizes measurements or events that occurred within a specified time interval and includes additional context or labels to facilitate interpretation. For instance, the code snippet below illustrates two instances where exercise intensity levels were recorded over varying intervals, along with labels to clarify the intensity levels (Light, Moderate, Vigorous) and the body region where the measurement originated (e.g., Arm, Leg).
"activity_level_granular_data_array": [
{
"datetime_string": "2022-10-28T19:35:03.307Z",
"activity_level_float": 2,
"activity_level_label_string": "Light",
"interval_duration_seconds_float": 436
},
{
"datetime_string": "2022-10-28T19:35:03.307Z",
"activity_level_float": 3,
"activity_level_label_string": "Moderate",
"interval_duration_seconds_float": 65
}
]
Each object in the activity_level_granular_data_array represents a time interval with associated activity information. The datetime_string attribute indicates the start time of the interval, the activity_level_float attribute represents the numerical activity intensity level, the activity_level_label_string attribute provides a textual description of the intensity (e.g., Light, Moderate, Vigorous), the body_region_string attribute specifies the body part where the activity was measured, and the interval_duration_seconds_float attribute indicates the length of the interval in seconds.