Browse Source

Data cleaning (#166)

* Refactor data cleaning module: move it from example workflow to main directory

* Replace NAs with 0 in selected event-based features

* Add one step to drop highly correlated features

Co-authored-by: Weiyu <weiyuhuang7@gmail.com>
master^2
Meng Li 6 months ago
committed by GitHub
parent
commit
5bad3eb8b5
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 7
      Snakefile
  2. 40
      config.yaml
  3. 8
      docs/analysis/complete-workflow-example.md
  4. 92
      docs/analysis/data-cleaning.md
  5. 0
      docs/analysis/minimal.md
  6. 1
      docs/change-log.md
  7. 6
      docs/features/phone-keyboard.md
  8. 4
      docs/index.md
  9. 4
      docs/setup/overview.md
  10. 10
      example_profile/Snakefile
  11. 46
      example_profile/example_config.yaml
  12. 7
      mkdocs.yml
  13. 14
      renv.lock
  14. 59
      rules/features.smk
  15. 30
      rules/models.smk
  16. 87
      src/features/all_cleaning_individual/rapids/main.R
  17. 87
      src/features/all_cleaning_overall/rapids/main.R
  18. 12
      src/features/entry.R
  19. 13
      src/features/entry.py
  20. 5
      src/features/phone_activity_recognition/rapids/main.py
  21. 31
      src/features/phone_applications_foreground/rapids/main.py
  22. 2
      src/features/phone_calls/rapids/main.R
  23. 2
      src/features/phone_conversation/rapids/main.py
  24. 1
      src/features/phone_keyboard/rapids/main.py
  25. 1
      src/features/phone_screen/rapids/main.py
  26. 12
      src/features/utils/utils.R
  27. 10
      src/features/utils/utils.py
  28. 29
      src/models/workflow_example/clean_sensor_features.R
  29. 6
      tests/data/processed/features/mtz_event/android/phone_applications_foreground.csv
  30. 4
      tests/data/processed/features/mtz_event/android/phone_keyboard.csv
  31. 2
      tests/data/processed/features/mtz_event/ios/phone_applications_foreground.csv
  32. 2
      tests/data/processed/features/mtz_event/ios/phone_keyboard.csv
  33. 28
      tests/data/processed/features/mtz_frequency/android/phone_activity_recognition.csv
  34. 130
      tests/data/processed/features/mtz_frequency/android/phone_applications_foreground.csv
  35. 220
      tests/data/processed/features/mtz_frequency/android/phone_calls.csv
  36. 110
      tests/data/processed/features/mtz_frequency/android/phone_conversation.csv
  37. 30
      tests/data/processed/features/mtz_frequency/android/phone_keyboard.csv
  38. 52
      tests/data/processed/features/mtz_frequency/android/phone_screen.csv
  39. 28
      tests/data/processed/features/mtz_frequency/ios/phone_activity_recognition.csv
  40. 2
      tests/data/processed/features/mtz_frequency/ios/phone_applications_foreground.csv
  41. 204
      tests/data/processed/features/mtz_frequency/ios/phone_calls.csv
  42. 2
      tests/data/processed/features/mtz_frequency/ios/phone_conversation.csv
  43. 2
      tests/data/processed/features/mtz_frequency/ios/phone_keyboard.csv
  44. 68
      tests/data/processed/features/mtz_frequency/ios/phone_screen.csv
  45. 12
      tests/data/processed/features/mtz_periodic/android/phone_activity_recognition.csv
  46. 46
      tests/data/processed/features/mtz_periodic/android/phone_applications_foreground.csv
  47. 4
      tests/data/processed/features/mtz_periodic/android/phone_calls.csv
  48. 48
      tests/data/processed/features/mtz_periodic/android/phone_keyboard.csv
  49. 12
      tests/data/processed/features/mtz_periodic/ios/phone_activity_recognition.csv
  50. 2
      tests/data/processed/features/mtz_periodic/ios/phone_applications_foreground.csv
  51. 4
      tests/data/processed/features/mtz_periodic/ios/phone_calls.csv
  52. 2
      tests/data/processed/features/mtz_periodic/ios/phone_keyboard.csv
  53. 6
      tests/data/processed/features/stz_event/android/phone_applications_foreground.csv
  54. 4
      tests/data/processed/features/stz_event/android/phone_keyboard.csv
  55. 2
      tests/data/processed/features/stz_event/ios/phone_applications_foreground.csv
  56. 2
      tests/data/processed/features/stz_event/ios/phone_keyboard.csv
  57. 52
      tests/data/processed/features/stz_frequency/android/phone_activity_recognition.csv
  58. 130
      tests/data/processed/features/stz_frequency/android/phone_applications_foreground.csv
  59. 220
      tests/data/processed/features/stz_frequency/android/phone_calls.csv
  60. 48
      tests/data/processed/features/stz_frequency/android/phone_conversation.csv
  61. 30
      tests/data/processed/features/stz_frequency/android/phone_keyboard.csv
  62. 52
      tests/data/processed/features/stz_frequency/android/phone_screen.csv
  63. 52
      tests/data/processed/features/stz_frequency/ios/phone_activity_recognition.csv
  64. 2
      tests/data/processed/features/stz_frequency/ios/phone_applications_foreground.csv
  65. 204
      tests/data/processed/features/stz_frequency/ios/phone_calls.csv
  66. 2
      tests/data/processed/features/stz_frequency/ios/phone_conversation.csv
  67. 2
      tests/data/processed/features/stz_frequency/ios/phone_keyboard.csv
  68. 68
      tests/data/processed/features/stz_frequency/ios/phone_screen.csv
  69. 8
      tests/data/processed/features/stz_periodic/android/phone_activity_recognition.csv
  70. 46
      tests/data/processed/features/stz_periodic/android/phone_applications_foreground.csv
  71. 26
      tests/data/processed/features/stz_periodic/android/phone_calls.csv
  72. 44
      tests/data/processed/features/stz_periodic/android/phone_keyboard.csv
  73. 8
      tests/data/processed/features/stz_periodic/ios/phone_activity_recognition.csv
  74. 2
      tests/data/processed/features/stz_periodic/ios/phone_applications_foreground.csv
  75. 4
      tests/data/processed/features/stz_periodic/ios/phone_calls.csv
  76. 2
      tests/data/processed/features/stz_periodic/ios/phone_keyboard.csv
  77. 214
      tools/config.schema.yaml

7
Snakefile

@ -394,6 +394,13 @@ if config["HEATMAP_PHONE_DATA_YIELD_PER_PARTICIPANT_PER_TIME_SEGMENT"]["PLOT"]:
if config["HEATMAP_FEATURE_CORRELATION_MATRIX"]["PLOT"]:
files_to_compute.append("reports/data_exploration/heatmap_feature_correlation_matrix.html")
# Data Cleaning
for provider in config["ALL_CLEANING_INDIVIDUAL"]["PROVIDERS"].keys():
if config["ALL_CLEANING_INDIVIDUAL"]["PROVIDERS"][provider]["COMPUTE"]:
files_to_compute.extend(expand("data/processed/features/{pid}/all_sensor_features_cleaned_" + provider.lower() +".csv", pid=config["PIDS"]))
for provider in config["ALL_CLEANING_OVERALL"]["PROVIDERS"].keys():
if config["ALL_CLEANING_OVERALL"]["PROVIDERS"][provider]["COMPUTE"]:
files_to_compute.extend(expand("data/processed/features/all_participants/all_sensor_features_cleaned_" + provider.lower() +".csv"))
rule all:
input:

40
config.yaml

@ -565,3 +565,43 @@ HEATMAP_FEATURE_CORRELATION_MATRIX:
CORR_THRESHOLD: 0.1
CORR_METHOD: "pearson" # choose from {"pearson", "kendall", "spearman"}
########################################################################################################################
# Data Cleaning #
########################################################################################################################
ALL_CLEANING_INDIVIDUAL:
PROVIDERS:
RAPIDS:
COMPUTE: False
IMPUTE_SELECTED_EVENT_FEATURES:
COMPUTE: True
MIN_DATA_YIELDED_MINUTES_TO_IMPUTE: 0.33
COLS_NAN_THRESHOLD: 0.3 # set to 1 to disable
COLS_VAR_THRESHOLD: True
ROWS_NAN_THRESHOLD: 0.3 # set to 1 to disable
DATA_YIELD_FEATURE: RATIO_VALID_YIELDED_HOURS # RATIO_VALID_YIELDED_HOURS or RATIO_VALID_YIELDED_MINUTES
DATA_YIELD_RATIO_THRESHOLD: 0.5 # set to 0 to disable
DROP_HIGHLY_CORRELATED_FEATURES:
COMPUTE: True
MIN_OVERLAP_FOR_CORR_THRESHOLD: 0.5
CORR_THRESHOLD: 0.95
SRC_SCRIPT: src/features/all_cleaning_individual/rapids/main.R
ALL_CLEANING_OVERALL:
PROVIDERS:
RAPIDS:
COMPUTE: False
IMPUTE_SELECTED_EVENT_FEATURES:
COMPUTE: True
MIN_DATA_YIELDED_MINUTES_TO_IMPUTE: 0.33
COLS_NAN_THRESHOLD: 0.3 # set to 1 to disable
COLS_VAR_THRESHOLD: True
ROWS_NAN_THRESHOLD: 0.3 # set to 1 to disable
DATA_YIELD_FEATURE: RATIO_VALID_YIELDED_HOURS # RATIO_VALID_YIELDED_HOURS or RATIO_VALID_YIELDED_MINUTES
DATA_YIELD_RATIO_THRESHOLD: 0.5 # set to 0 to disable
DROP_HIGHLY_CORRELATED_FEATURES:
COMPUTE: True
MIN_OVERLAP_FOR_CORR_THRESHOLD: 0.5
CORR_THRESHOLD: 0.95
SRC_SCRIPT: src/features/all_cleaning_overall/rapids/main.R

8
docs/workflow-examples/analysis.md → docs/analysis/complete-workflow-example.md

@ -1,8 +1,8 @@
# Analysis Workflow Example
!!! info "TL;DR"
- In addition to using RAPIDS to extract behavioral features and create plots, you can structure your data analysis within RAPIDS (i.e. cleaning your features and creating ML/statistical models)
- We include an analysis example in RAPIDS that covers raw data processing, cleaning, feature extraction, machine learning modeling, and evaluation
- In addition to using RAPIDS to extract behavioral features, create plots, and clean sensor features, you can structure your data analysis within RAPIDS (i.e. creating ML/statistical models and evaluating your models)
- We include an analysis example in RAPIDS that covers raw data processing, feature extraction, cleaning, machine learning modeling, and evaluation
- Use this example as a guide to structure your own analysis within RAPIDS
- RAPIDS analysis workflows are compatible with your favorite data science tools and libraries
- RAPIDS analysis workflows are reproducible and we encourage you to publish them along with your research papers
@ -69,12 +69,12 @@ 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 163 features over 11 days for the individual model of p01, 101 features over 12 days for the individual model of p02 and 109 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 173 features over 11 days for the individual model of p01, 101 features over 12 days for the individual model of p02 and 117 features over 22 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`.
??? info "7. Merge features and targets."
In this step we merge the cleaned features and target labels for our individual models in the `merge_features_and_targets_for_individual_model` rule in `rules/models.smk`. Additionally, we merge the cleaned features, target labels, and demographic features of our two participants for the population model in the `merge_features_and_targets_for_population_model` rule in `rules/models.smk`. These two merged files are the input for our individual and population models.
In this step we merge the cleaned features and target labels for our individual models in the `merge_features_and_targets_for_individual_model` rule in `rules/features.smk`. Additionally, we merge the cleaned features, target labels, and demographic features of our two participants for the population model in the `merge_features_and_targets_for_population_model` rule in `rules/features.smk`. These two merged files are the input for our individual and population models.
??? info "8. Modelling."
This stage has three phases: model building, training and evaluation.

92
docs/analysis/data-cleaning.md

@ -0,0 +1,92 @@
Data Cleaning
=============
The goal of this module is to perform basic clean tasks on the behavioral features that RAPIDS computes. You might need to do further processing depending on your analysis objectives. This module can clean features at the individual level and at the study level. If you are interested in creating individual models (using each participant's features independently of the others) use [`ALL_CLEANING_INDIVIDUAL`]. If you are interested in creating population models (using everyone's data in the same model) use [`ALL_CLEANING_OVERALL`]
## Clean sensor features for individual participants
!!! info "File Sequence"
```bash
- data/processed/features/{pid}/all_sensor_features.csv
- data/processed/features/{pid}/all_sensor_features_cleaned_{provider_key}.csv
```
### RAPIDS provider
Parameters description for `[ALL_CLEANING_INDIVIDUAL][PROVIDERS][RAPIDS]`:
|Key&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | Description |
|----------------|-----------------------------------------------------------------------------------------------------------------------------------
|`[COMPUTE]` | Set to `True` to execute the cleaning tasks described below. You can use the parameters of each task to tweak them or deactivate them|
|`[IMPUTE_SELECTED_EVENT_FEATURES]` | Fill NAs with 0 only for event-based features, see table below
|`[COLS_NAN_THRESHOLD]` | Discard columns with missing value ratios higher than `[COLS_NAN_THRESHOLD]`. Set to 1 to disable
|`[COLS_VAR_THRESHOLD]` | Set to `True` to discard columns with zero variance
|`[ROWS_NAN_THRESHOLD]` | Discard rows with missing value ratios higher than `[ROWS_NAN_THRESHOLD]`. Set to 1 to disable
|`[DATA_YIELD_FEATURE]` | `RATIO_VALID_YIELDED_HOURS` or `RATIO_VALID_YIELDED_MINUTES`
|`[DATA_YIELD_RATIO_THRESHOLD]` | Discard rows with `ratiovalidyieldedhours` or `ratiovalidyieldedminutes` feature less than `[DATA_YIELD_RATIO_THRESHOLD]`. The feature name is determined by `[DATA_YIELD_FEATURE]` parameter. Set to 0 to disable
|`DROP_HIGHLY_CORRELATED_FEATURES` | Discard highly correlated features, see table below
Parameters description for `[ALL_CLEANING_INDIVIDUAL][PROVIDERS][RAPIDS][IMPUTE_SELECTED_EVENT_FEATURES]`:
|Parameters | Description |
|-------------------------------------- |----------------------------------------------------------------|
|`[COMPUTE]` | Set to `True` to fill NAs with 0 for phone event-based features
|`[MIN_DATA_YIELDED_MINUTES_TO_IMPUTE]` | Any feature value in a time segment instance with phone data yield > `[MIN_DATA_YIELDED_MINUTES_TO_IMPUTE]` will be replaced with a zero. See below for an explanation. |
Parameters description for `[ALL_CLEANING_INDIVIDUAL][PROVIDERS][RAPIDS][DROP_HIGHLY_CORRELATED_FEATURES]`:
|Parameters | Description |
|-------------------------------------- |----------------------------------------------------------------|
|`[COMPUTE]` | Set to `True` to drop highly correlated features
|`[MIN_OVERLAP_FOR_CORR_THRESHOLD]` | Minimum ratio of observations required per pair of columns (features) to be considered as a valid correlation.
|`[CORR_THRESHOLD]` | The absolute values of pair-wise correlations are calculated. If two variables have a valid correlation higher than `[CORR_THRESHOLD]`, we looks at the mean absolute correlation of each variable and removes the variable with the largest mean absolute correlation.
Steps to clean sensor features for individual participants. It only considers the **phone sensors** currently.
??? info "1. Fill NA with 0 for the selected event features."
Some event features should be zero instead of NA. In this step, we fill those missing features with 0 when the `phone_data_yield_rapids_ratiovalidyieldedminutes` column is higher than the `[IMPUTE_SELECTED_EVENT_FEATURES][MIN_DATA_YIELDED_MINUTES_TO_IMPUTE]` parameter. Plugins such as Activity Recognition sensor are not considered. You can skip this step by setting `[IMPUTE_SELECTED_EVENT_FEATURES][COMPUTE]` to `False`.
Take phone calls sensor as an example. If there are no calls records during a time segment for a participant, then (1) the calls sensor was not working during that time segment; or (2) the calls sensor was working and the participant did not have any calls during that time segment. To differentiate these two situations, we assume the selected sensors are working when `phone_data_yield_rapids_ratiovalidyieldedminutes > [MIN_DATA_YIELDED_MINUTES_TO_IMPUTE]`.
The following phone event-based features are considered currently:
- Application foreground: countevent, countepisode, minduration, maxduration, meanduration, sumduration.
- Battery: all features.
- Calls: count, distinctcontacts, sumduration, minduration, maxduration, meanduration, modeduration.
- Keyboard: sessioncount, averagesessionlength, changeintextlengthlessthanminusone, changeintextlengthequaltominusone, changeintextlengthequaltoone, changeintextlengthmorethanone, maxtextlength, totalkeyboardtouches.
- Messages: count, distinctcontacts.
- Screen: sumduration, maxduration, minduration, avgduration, countepisode.
- WiFi: all connected and visible features.
??? info "2. Discard unreliable rows."
Extracted features might be not reliable if the sensor only works for a short period during a time segment. In this step, we discard rows when the `phone_data_yield_rapids_ratiovalidyieldedminutes` column or the `phone_data_yield_rapids_ratiovalidyieldedhours` column is less than the `[DATA_YIELD_RATIO_THRESHOLD]` parameter. We recommend using `phone_data_yield_rapids_ratiovalidyieldedminutes` column (set `[DATA_YIELD_FEATURE]` to `RATIO_VALID_YIELDED_MINUTES`) on time segments that are shorter than two or three hours and `phone_data_yield_rapids_ratiovalidyieldedhours` (set `[DATA_YIELD_FEATURE]` to `RATIO_VALID_YIELDED_HOURS`) for longer segments. We do not recommend you to skip this step, but you can do it by setting `[DATA_YIELD_RATIO_THRESHOLD]` to 0.
??? info "3. Discard columns (features) with too many missing values."
In this step, we discard columns with missing value ratios higher than `[COLS_NAN_THRESHOLD]`. We do not recommend you to skip this step, but you can do it by setting `[COLS_NAN_THRESHOLD]` to 1.
??? info "4. Discard columns (features) with zero variance."
In this step, we discard columns with zero variance. We do not recommend you to skip this step, but you can do it by setting `[COLS_VAR_THRESHOLD]` to `False`.
??? info "5. Drop highly correlated features."
As highly correlated features might not bring additional information and will increase the complexity of a model, we drop them in this step. The absolute values of pair-wise correlations are calculated. Each correlation vector between two variables is regarded as valid only if the ratio of valid value pairs (i.e. non NA pairs) is greater than or equal to `[DROP_HIGHLY_CORRELATED_FEATURES][MIN_OVERLAP_FOR_CORR_THRESHOLD]`. If two variables have a correlation coefficient higher than `[DROP_HIGHLY_CORRELATED_FEATURES][CORR_THRESHOLD]`, we look at the mean absolute correlation of each variable and remove the variable with the largest mean absolute correlation. This step can be skipped by setting `[DROP_HIGHLY_CORRELATED_FEATURES][COMPUTE]` to False.
??? info "6. Discard rows with too many missing values."
In this step, we discard rows with missing value ratios higher than `[ROWS_NAN_THRESHOLD]`. We do not recommend you to skip this step, but you can do it by setting `[ROWS_NAN_THRESHOLD]` to 1. In other words, we are discarding time segments (e.g. days) that did not have enough data to be considered reliable. This step is similar to step 2 except the ratio is computed based on NA values instead of a phone data yield threshold.
## Clean sensor features for all participants
!!! info "File Sequence"
```bash
- data/processed/features/all_participants/all_sensor_features.csv
- data/processed/features/all_participants/all_sensor_features_cleaned_{provider_key}.csv
```
### RAPIDS provider
Parameters description and the steps are the same as the above [RAPIDS provider](#rapids-provider) section for individual participants.

0
docs/workflow-examples/minimal.md → docs/analysis/minimal.md

1
docs/change-log.md

@ -3,6 +3,7 @@
- Add firststeptime and laststeptime features to FITBIT_STEPS_INTRADAY RAPIDS provider
- Update tests for Fitbit steps intraday features
- Add tests for phone battery features
- Add a data cleaning module to replace NAs with 0 in selected event-based features, discard unreliable rows and columns, discard columns with zero variance, and discard highly correlated columns
## v1.6.0
- Refactor PHONE_CALLS RAPIDS provider to compute features based on call episodes or events
- Refactor PHONE_LOCATIONS DORYAB provider to compute features based on location episodes

6
docs/features/phone-keyboard.md

@ -6,6 +6,12 @@ Sensor parameters description for `[PHONE_KEYBOARD]`:
|----------------|-----------------------------------------------------------------------------------------------------------------------------------
|`[CONTAINER]`| Data stream [container](../../datastreams/data-streams-introduction/) (database table, CSV file, etc.) where the keyboard data is stored
## RAPIDS provider
!!! info "Available time segments and platforms"
- Available for all time segments
- Available for Android only
!!! info "File Sequence"
```bash
- data/raw/{pid}/phone_keyboard_raw.csv

4
docs/index.md

@ -1,12 +1,12 @@
# Welcome to RAPIDS documentation
Reproducible Analysis Pipeline for Data Streams (RAPIDS) allows you to process smartphone and wearable data to [extract](features/feature-introduction.md) and [create](features/add-new-features.md) **behavioral features** (a.k.a. digital biomarkers), [visualize](visualizations/data-quality-visualizations.md) mobile sensor data, and [structure](workflow-examples/analysis.md) your analysis into reproducible workflows.
Reproducible Analysis Pipeline for Data Streams (RAPIDS) allows you to process smartphone and wearable data to [extract](features/feature-introduction.md) and [create](features/add-new-features.md) **behavioral features** (a.k.a. digital biomarkers), [visualize](visualizations/data-quality-visualizations.md) mobile sensor data, and [structure](analysis/complete-workflow-example.md) your analysis into reproducible workflows.
RAPIDS is open source, documented, multi-platform, modular, tested, and reproducible. At the moment, we support [data streams](datastreams/data-streams-introduction) logged by smartphones, Fitbit wearables, and Empatica wearables (the latter in collaboration with the [DBDP](https://dbdp.org/)).
!!! tip "Where do I start?"
:material-power-standby: New to RAPIDS? Check our [Overview + FAQ](setup/overview/) and [minimal example](workflow-examples/minimal)
:material-power-standby: New to RAPIDS? Check our [Overview + FAQ](setup/overview/) and [minimal example](analysis/minimal)
:material-play-speed: [Install](setup/installation), [configure](setup/configuration), and [execute](setup/execution) RAPIDS to [extract](features/feature-introduction.md) and [plot](visualizations/data-quality-visualizations.md) behavioral features

4
docs/setup/overview.md

@ -23,10 +23,10 @@ Let's review some key concepts we use throughout these docs:
- [Add your own behavioral features](../../features/add-new-features/) (we can include them in RAPIDS if you want to share them with the community)
- [Add support for new data streams](../../datastreams/add-new-data-streams/) if yours cannot be processed by RAPIDS yet
- Create visualizations for [data quality control](../../visualizations/data-quality-visualizations/) and [feature inspection](../../visualizations/feature-visualizations/)
- [Extending RAPIDS to organize your analysis](../../workflow-examples/analysis/) and publish a code repository along with your code
- [Extending RAPIDS to organize your analysis](../../analysis/complete-workflow-example/) and publish a code repository along with your code
!!! hint
- We recommend you follow the [Minimal Example](../../workflow-examples/minimal/) tutorial to get familiar with RAPIDS
- We recommend you follow the [Minimal Example](../../analysis/minimal/) tutorial to get familiar with RAPIDS
- In order to follow any of the previous tutorials, you will have to [Install](../installation/), [Configure](../configuration/), and learn how to [Execute](../execution/) RAPIDS.

10
example_profile/Snakefile

@ -384,6 +384,14 @@ if config["HEATMAP_PHONE_DATA_YIELD_PER_PARTICIPANT_PER_TIME_SEGMENT"]["PLOT"]:
if config["HEATMAP_FEATURE_CORRELATION_MATRIX"]["PLOT"]:
files_to_compute.append("reports/data_exploration/heatmap_feature_correlation_matrix.html")
# Data Cleaning
for provider in config["ALL_CLEANING_INDIVIDUAL"]["PROVIDERS"].keys():
if config["ALL_CLEANING_INDIVIDUAL"]["PROVIDERS"][provider]["COMPUTE"]:
files_to_compute.extend(expand("data/processed/features/{pid}/all_sensor_features_cleaned_" + provider.lower() +".csv", pid=config["PIDS"]))
for provider in config["ALL_CLEANING_OVERALL"]["PROVIDERS"].keys():
if config["ALL_CLEANING_OVERALL"]["PROVIDERS"][provider]["COMPUTE"]:
files_to_compute.extend(expand("data/processed/features/all_participants/all_sensor_features_cleaned_" + provider.lower() +".csv"))
# Analysis Workflow Example
models, scalers = [], []
for model_name in config["PARAMS_FOR_ANALYSIS"]["MODEL_NAMES"]:
@ -401,7 +409,6 @@ files_to_compute.extend(expand("data/raw/{pid}/participant_target_with_datetime.
files_to_compute.extend(expand("data/processed/targets/{pid}/parsed_targets.csv", pid=config["PIDS"]))
# Individual model
files_to_compute.extend(expand("data/processed/features/{pid}/all_sensor_features_cleaned.csv", pid=config["PIDS"]))
files_to_compute.extend(expand("data/processed/models/individual_model/{pid}/input.csv", pid=config["PIDS"]))
files_to_compute.extend(expand("data/processed/models/individual_model/{pid}/output_{cv_method}/baselines.csv", pid=config["PIDS"], cv_method=config["PARAMS_FOR_ANALYSIS"]["CV_METHODS"]))
files_to_compute.extend(expand(
@ -414,7 +421,6 @@ files_to_compute.extend(expand(
scaler=scalers))
# Population model
files_to_compute.append("data/processed/features/all_participants/all_sensor_features_cleaned.csv")
files_to_compute.append("data/processed/models/population_model/input.csv")
files_to_compute.extend(expand("data/processed/models/population_model/output_{cv_method}/baselines.csv", cv_method=config["PARAMS_FOR_ANALYSIS"]["CV_METHODS"]))
files_to_compute.extend(expand(

46
example_profile/example_config.yaml

@ -534,6 +534,46 @@ HEATMAP_FEATURE_CORRELATION_MATRIX:
CORR_METHOD: "pearson" # choose from {"pearson", "kendall", "spearman"}
########################################################################################################################
# Data Cleaning #
########################################################################################################################
ALL_CLEANING_INDIVIDUAL:
PROVIDERS:
RAPIDS:
COMPUTE: True
IMPUTE_SELECTED_EVENT_FEATURES:
COMPUTE: False
MIN_DATA_YIELDED_MINUTES_TO_IMPUTE: 0.33
COLS_NAN_THRESHOLD: 0.3 # set to 1 to disable
COLS_VAR_THRESHOLD: True
ROWS_NAN_THRESHOLD: 0.3 # set to 1 to disable
DATA_YIELD_FEATURE: RATIO_VALID_YIELDED_HOURS # RATIO_VALID_YIELDED_HOURS or RATIO_VALID_YIELDED_MINUTES
DATA_YIELD_RATIO_THRESHOLD: 0.75 # set to 0 to disable
DROP_HIGHLY_CORRELATED_FEATURES:
COMPUTE: False
MIN_OVERLAP_FOR_CORR_THRESHOLD: 0.5
CORR_THRESHOLD: 0.95
SRC_SCRIPT: src/features/all_cleaning_individual/rapids/main.R
ALL_CLEANING_OVERALL:
PROVIDERS:
RAPIDS:
COMPUTE: True
IMPUTE_SELECTED_EVENT_FEATURES:
COMPUTE: False
MIN_DATA_YIELDED_MINUTES_TO_IMPUTE: 0.33
COLS_NAN_THRESHOLD: 0.3 # set to 1 to disable
COLS_VAR_THRESHOLD: True
ROWS_NAN_THRESHOLD: 0.3 # set to 1 to disable
DATA_YIELD_FEATURE: RATIO_VALID_YIELDED_HOURS # RATIO_VALID_YIELDED_HOURS or RATIO_VALID_YIELDED_MINUTES
DATA_YIELD_RATIO_THRESHOLD: 0.75 # set to 0 to disable
DROP_HIGHLY_CORRELATED_FEATURES:
COMPUTE: False
MIN_OVERLAP_FOR_CORR_THRESHOLD: 0.5
CORR_THRESHOLD: 0.95
SRC_SCRIPT: src/features/all_cleaning_overall/rapids/main.R
########################################################################################################################
# Analysis Workflow Example #
@ -551,12 +591,6 @@ PARAMS_FOR_ANALYSIS:
TARGET:
FOLDER: data/external/example_workflow
CONTAINER: participant_target.csv
# Cleaning Parameters
COLS_NAN_THRESHOLD: 0.3
COLS_VAR_THRESHOLD: True
ROWS_NAN_THRESHOLD: 0.3
DATA_YIELDED_HOURS_RATIO_THRESHOLD: 0.75
MODEL_NAMES: [LogReg, kNN , SVM, DT, RF, GB, XGBoost, LightGBM]
CV_METHODS: [LeaveOneOut]

7
mkdocs.yml

@ -74,7 +74,7 @@ extra_css:
nav:
- Home: 'index.md'
- Overview: setup/overview.md
- Minimal Example: workflow-examples/minimal.md
- Minimal Example: analysis/minimal.md
- Citation: citation.md
- Contributing: contributing.md
- Setup:
@ -140,8 +140,9 @@ nav:
- Visualizations:
- Data Quality: visualizations/data-quality-visualizations.md
- Features: visualizations/feature-visualizations.md
- Analysis Workflows:
- Complete Example: workflow-examples/analysis.md
- Analysis:
- Data Cleaning: analysis/data-cleaning.md
- Complete Workflow Example: analysis/complete-workflow-example.md
- Developers:
- Git Flow: developers/git-flow.md
- Remote Support: developers/remote-support.md

14
renv.lock

@ -205,6 +205,13 @@
"Repository": "CRAN",
"Hash": "b7d7f1e926dfcd57c74ce93f5c048e80"
},
"caret": {
"Package": "caret",
"Version": "6.0-89",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "95cdd7da1e51ab0451c27666f15db891"
},
"cellranger": {
"Package": "cellranger",
"Version": "1.1.0",
@ -275,6 +282,13 @@
"Repository": "CRAN",
"Hash": "ae01381679f4511ca7a72d55fe175213"
},
"corrr": {
"Package": "corrr",
"Version": "0.4.3",
"Source": "Repository",
"Repository": "CRAN",
"Hash": "dbd1387c025b07f62da3334942176e14"
},
"cpp11": {
"Package": "cpp11",
"Version": "0.2.4",

59
rules/features.smk

@ -761,22 +761,6 @@ rule fitbit_sleep_intraday_r_features:
script:
"../src/features/entry.R"
rule merge_sensor_features_for_individual_participants:
input:
feature_files = input_merge_sensor_features_for_individual_participants
output:
"data/processed/features/{pid}/all_sensor_features.csv"
script:
"../src/features/utils/merge_sensor_features_for_individual_participants.R"
rule merge_sensor_features_for_all_participants:
input:
feature_files = expand("data/processed/features/{pid}/all_sensor_features.csv", pid=config["PIDS"])
output:
"data/processed/features/all_participants/all_sensor_features.csv"
script:
"../src/features/utils/merge_sensor_features_for_all_participants.R"
rule empatica_accelerometer_python_features:
input:
sensor_data = "data/raw/{pid}/empatica_accelerometer_with_datetime.csv",
@ -958,3 +942,46 @@ rule empatica_tags_r_features:
"data/interim/{pid}/empatica_tags_features/empatica_tags_r_{provider_key}.csv"
script:
"../src/features/entry.R"
rule merge_sensor_features_for_individual_participants:
input:
feature_files = input_merge_sensor_features_for_individual_participants
output:
"data/processed/features/{pid}/all_sensor_features.csv"
script:
"../src/features/utils/merge_sensor_features_for_individual_participants.R"
rule merge_sensor_features_for_all_participants:
input:
feature_files = expand("data/processed/features/{pid}/all_sensor_features.csv", pid=config["PIDS"])
output:
"data/processed/features/all_participants/all_sensor_features.csv"
script:
"../src/features/utils/merge_sensor_features_for_all_participants.R"
rule clean_sensor_features_for_individual_participants:
input:
sensor_data = rules.merge_sensor_features_for_individual_participants.output
wildcard_constraints:
pid = "("+"|".join(config["PIDS"])+")"
params:
provider = lambda wildcards: config["ALL_CLEANING_INDIVIDUAL"]["PROVIDERS"][wildcards.provider_key.upper()],
provider_key = "{provider_key}",
sensor_key = "all_cleaning_individual"
output:
"data/processed/features/{pid}/all_sensor_features_cleaned_{provider_key}.csv"
script:
"../src/features/entry.R"
rule clean_sensor_features_for_all_participants:
input:
sensor_data = rules.merge_sensor_features_for_all_participants.output
params:
provider = lambda wildcards: config["ALL_CLEANING_OVERALL"]["PROVIDERS"][wildcards.provider_key.upper()],
provider_key = "{provider_key}",
sensor_key = "all_cleaning_overall"
output:
"data/processed/features/all_participants/all_sensor_features_cleaned_{provider_key}.csv"
script:
"../src/features/entry.R"

30
rules/models.smk

@ -53,35 +53,9 @@ rule parse_targets:
script:
"../src/models/workflow_example/parse_targets.py"
rule clean_sensor_features_for_individual_participants:
input:
rules.merge_sensor_features_for_individual_participants.output
params:
cols_nan_threshold = config["PARAMS_FOR_ANALYSIS"]["COLS_NAN_THRESHOLD"],
cols_var_threshold = config["PARAMS_FOR_ANALYSIS"]["COLS_VAR_THRESHOLD"],
rows_nan_threshold = config["PARAMS_FOR_ANALYSIS"]["ROWS_NAN_THRESHOLD"],
data_yielded_hours_ratio_threshold = config["PARAMS_FOR_ANALYSIS"]["DATA_YIELDED_HOURS_RATIO_THRESHOLD"],
output:
"data/processed/features/{pid}/all_sensor_features_cleaned.csv"
script:
"../src/models/workflow_example/clean_sensor_features.R"
rule clean_sensor_features_for_all_participants:
input:
rules.merge_sensor_features_for_all_participants.output
params:
cols_nan_threshold = config["PARAMS_FOR_ANALYSIS"]["COLS_NAN_THRESHOLD"],
cols_var_threshold = config["PARAMS_FOR_ANALYSIS"]["COLS_VAR_THRESHOLD"],
rows_nan_threshold = config["PARAMS_FOR_ANALYSIS"]["ROWS_NAN_THRESHOLD"],
data_yielded_hours_ratio_threshold = config["PARAMS_FOR_ANALYSIS"]["DATA_YIELDED_HOURS_RATIO_THRESHOLD"],
output:
"data/processed/features/all_participants/all_sensor_features_cleaned.csv"
script:
"../src/models/workflow_example/clean_sensor_features.R"
rule merge_features_and_targets_for_individual_model:
input:
cleaned_sensor_features = "data/processed/features/{pid}/all_sensor_features_cleaned.csv",
cleaned_sensor_features = "data/processed/features/{pid}/all_sensor_features_cleaned_rapids.csv",
targets = "data/processed/targets/{pid}/parsed_targets.csv",
output:
"data/processed/models/individual_model/{pid}/input.csv"
@ -90,7 +64,7 @@ rule merge_features_and_targets_for_individual_model:
rule merge_features_and_targets_for_population_model:
input:
cleaned_sensor_features = "data/processed/features/all_participants/all_sensor_features_cleaned.csv",
cleaned_sensor_features = "data/processed/features/all_participants/all_sensor_features_cleaned_rapids.csv",
demographic_features = expand("data/processed/features/{pid}/demographic_features.csv", pid=config["PIDS"]),
targets = expand("data/processed/targets/{pid}/parsed_targets.csv", pid=config["PIDS"]),
output:

87
src/features/all_cleaning_individual/rapids/main.R

@ -0,0 +1,87 @@
source("renv/activate.R")
library(tidyr)
library("dplyr", warn.conflicts = F)
library(tidyverse)
library(caret)
library(corrr)
rapids_cleaning <- function(sensor_data_files, provider){
clean_features <- read.csv(sensor_data_files[["sensor_data"]], stringsAsFactors = FALSE)
impute_selected_event_features <- provider[["IMPUTE_SELECTED_EVENT_FEATURES"]]
cols_nan_threshold <- as.numeric(provider[["COLS_NAN_THRESHOLD"]])
drop_zero_variance_columns <- as.logical(provider[["COLS_VAR_THRESHOLD"]])
rows_nan_threshold <- as.numeric(provider[["ROWS_NAN_THRESHOLD"]])
data_yield_unit <- tolower(str_split_fixed(provider[["DATA_YIELD_FEATURE"]], "_", 4)[[4]])
data_yield_column <- paste0("phone_data_yield_rapids_ratiovalidyielded", data_yield_unit)
data_yield_ratio_threshold <- as.numeric(provider[["DATA_YIELD_RATIO_THRESHOLD"]])
drop_highly_correlated_features <- provider[["DROP_HIGHLY_CORRELATED_FEATURES"]]
# Impute selected event features
if(as.logical(impute_selected_event_features$COMPUTE)){
if(!"phone_data_yield_rapids_ratiovalidyieldedminutes" %in% colnames(clean_features)){
stop("Error: RAPIDS provider needs to impute the selected event features based on phone_data_yield_rapids_ratiovalidyieldedminutes column, please set config[PHONE_DATA_YIELD][PROVIDERS][RAPIDS][COMPUTE] to True and include 'ratiovalidyieldedminutes' in [FEATURES].")
}
column_names <- colnames(clean_features)
selected_apps_features <- column_names[grepl("^phone_applications_foreground_rapids_(countevent|countepisode|minduration|maxduration|meanduration|sumduration)", column_names)]
selected_battery_features <- column_names[grepl("^phone_battery_rapids_", column_names)]
selected_calls_features <- column_names[grepl("^phone_calls_rapids_.*_(count|distinctcontacts|sumduration|minduration|maxduration|meanduration|modeduration)", column_names)]
selected_keyboard_features <- column_names[grepl("^phone_keyboard_rapids_(sessioncount|averagesessionlength|changeintextlengthlessthanminusone|changeintextlengthequaltominusone|changeintextlengthequaltoone|changeintextlengthmorethanone|maxtextlength|totalkeyboardtouches)", column_names)]
selected_messages_features <- column_names[grepl("^phone_messages_rapids_.*_(count|distinctcontacts)", column_names)]
selected_screen_features <- column_names[grepl("^phone_screen_rapids_(sumduration|maxduration|minduration|avgduration|countepisode)", column_names)]
selected_wifi_features <- column_names[grepl("^phone_wifi_(connected|visible)_rapids_", column_names)]
selected_columns <- c(selected_apps_features, selected_battery_features, selected_calls_features, selected_keyboard_features, selected_messages_features, selected_screen_features, selected_wifi_features)
clean_features[selected_columns][is.na(clean_features[selected_columns]) & (clean_features$phone_data_yield_rapids_ratiovalidyieldedminutes > impute_selected_event_features$MIN_DATA_YIELDED_MINUTES_TO_IMPUTE)] <- 0
}
# Drop rows with the value of data_yield_column less than data_yield_ratio_threshold
if(!data_yield_column %in% colnames(clean_features)){
stop(paste0("Error: RAPIDS provider needs to clean data based on ", data_yield_column, " column, please set config[PHONE_DATA_YIELD][PROVIDERS][RAPIDS][COMPUTE] to True and include 'ratiovalidyielded", data_yield_unit, "' in [FEATURES]."))
}
clean_features <- clean_features %>%
filter(.[[data_yield_column]] >= data_yield_ratio_threshold)
# Drop columns with a percentage of NA values above cols_nan_threshold
if(nrow(clean_features))
clean_features <- clean_features %>% select_if(~ sum(is.na(.)) / length(.) <= cols_nan_threshold )
# Drop columns with zero variance
if(drop_zero_variance_columns)
clean_features <- clean_features %>% select_if(grepl("pid|local_segment|local_segment_label|local_segment_start_datetime|local_segment_end_datetime",names(.)) | sapply(., n_distinct, na.rm = T) > 1)
# Drop highly correlated features
if(as.logical(drop_highly_correlated_features$COMPUTE)){
min_overlap_for_corr_threshold <- as.numeric(drop_highly_correlated_features$MIN_OVERLAP_FOR_CORR_THRESHOLD)
corr_threshold <- as.numeric(drop_highly_correlated_features$CORR_THRESHOLD)
features_for_corr <- clean_features %>%
select_if(is.numeric) %>%
select_if(sapply(., n_distinct, na.rm = T) > 1)
valid_pairs <- crossprod(!is.na(features_for_corr)) >= min_overlap_for_corr_threshold * nrow(features_for_corr)
if((nrow(features_for_corr) != 0) & (ncol(features_for_corr) != 0)){
highly_correlated_features <- features_for_corr %>%
correlate(use = "pairwise.complete.obs", method = "spearman") %>%
column_to_rownames(., var = "term") %>%
as.matrix() %>%
replace(!valid_pairs | is.na(.), 0) %>%
findCorrelation(., cutoff = corr_threshold, verbose = F, names = T)
clean_features <- clean_features[, !names(clean_features) %in% highly_correlated_features]
}
}
# Drop rows with a percentage of NA values above rows_nan_threshold
clean_features <- clean_features %>%
mutate(percentage_na = rowSums(is.na(.)) / ncol(.)) %>%
filter(percentage_na <= rows_nan_threshold) %>%
select(-percentage_na)
return(clean_features)
}

87
src/features/all_cleaning_overall/rapids/main.R

@ -0,0 +1,87 @@
source("renv/activate.R")
library(tidyr)
library("dplyr", warn.conflicts = F)
library(tidyverse)
library(caret)
library(corrr)
rapids_cleaning <- function(sensor_data_files, provider){
clean_features <- read.csv(sensor_data_files[["sensor_data"]], stringsAsFactors = FALSE)
impute_selected_event_features <- provider[["IMPUTE_SELECTED_EVENT_FEATURES"]]
cols_nan_threshold <- as.numeric(provider[["COLS_NAN_THRESHOLD"]])
drop_zero_variance_columns <- as.logical(provider[["COLS_VAR_THRESHOLD"]])
rows_nan_threshold <- as.numeric(provider[["ROWS_NAN_THRESHOLD"]])
data_yield_unit <- tolower(str_split_fixed(provider[["DATA_YIELD_FEATURE"]], "_", 4)[[4]])
data_yield_column <- paste0("phone_data_yield_rapids_ratiovalidyielded", data_yield_unit)
data_yield_ratio_threshold <- as.numeric(provider[["DATA_YIELD_RATIO_THRESHOLD"]])
drop_highly_correlated_features <- provider[["DROP_HIGHLY_CORRELATED_FEATURES"]]
# Impute selected event features
if(as.logical(impute_selected_event_features$COMPUTE)){
if(!"phone_data_yield_rapids_ratiovalidyieldedminutes" %in% colnames(clean_features)){
stop("Error: RAPIDS provider needs to impute the selected event features based on phone_data_yield_rapids_ratiovalidyieldedminutes column, please set config[PHONE_DATA_YIELD][PROVIDERS][RAPIDS][COMPUTE] to True and include 'ratiovalidyieldedminutes' in [FEATURES].")
}
column_names <- colnames(clean_features)
selected_apps_features <- column_names[grepl("^phone_applications_foreground_rapids_(countevent|countepisode|minduration|maxduration|meanduration|sumduration)", column_names)]
selected_battery_features <- column_names[grepl("^phone_battery_rapids_", column_names)]
selected_calls_features <- column_names[grepl("^phone_calls_rapids_.*_(count|distinctcontacts|sumduration|minduration|maxduration|meanduration|modeduration)", column_names)]
selected_keyboard_features <- column_names[grepl("^phone_keyboard_rapids_(sessioncount|averagesessionlength|changeintextlengthlessthanminusone|changeintextlengthequaltominusone|changeintextlengthequaltoone|changeintextlengthmorethanone|maxtextlength|totalkeyboardtouches)", column_names)]
selected_messages_features <- column_names[grepl("^phone_messages_rapids_.*_(count|distinctcontacts)", column_names)]
selected_screen_features <- column_names[grepl("^phone_screen_rapids_(sumduration|maxduration|minduration|avgduration|countepisode)", column_names)]
selected_wifi_features <- column_names[grepl("^phone_wifi_(connected|visible)_rapids_", column_names)]
selected_columns <- c(selected_apps_features, selected_battery_features, selected_calls_features, selected_keyboard_features, selected_messages_features, selected_screen_features, selected_wifi_features)
clean_features[selected_columns][is.na(clean_features[selected_columns]) & (clean_features$phone_data_yield_rapids_ratiovalidyieldedminutes > impute_selected_event_features$MIN_DATA_YIELDED_MINUTES_TO_IMPUTE)] <- 0
}
# Drop rows with the value of data_yield_column less than data_yield_ratio_threshold
if(!data_yield_column %in% colnames(clean_features)){
stop(paste0("Error: RAPIDS provider needs to clean data based on ", data_yield_column, " column, please set config[PHONE_DATA_YIELD][PROVIDERS][RAPIDS][COMPUTE] to True and include 'ratiovalidyielded", data_yield_unit, "' in [FEATURES]."))
}
clean_features <- clean_features %>%
filter(.[[data_yield_column]] >= data_yield_ratio_threshold)
# Drop columns with a percentage of NA values above cols_nan_threshold
if(nrow(clean_features))
clean_features <- clean_features %>% select_if(~ sum(is.na(.)) / length(.) <= cols_nan_threshold )
# Drop columns with zero variance
if(drop_zero_variance_columns)
clean_features <- clean_features %>% select_if(grepl("pid|local_segment|local_segment_label|local_segment_start_datetime|local_segment_end_datetime",names(.)) | sapply(., n_distinct, na.rm = T) > 1)
# Drop highly correlated features
if(as.logical(drop_highly_correlated_features$COMPUTE)){
min_overlap_for_corr_threshold <- as.numeric(drop_highly_correlated_features$MIN_OVERLAP_FOR_CORR_THRESHOLD)
corr_threshold <- as.numeric(drop_highly_correlated_features$CORR_THRESHOLD)
features_for_corr <- clean_features %>%
select_if(is.numeric) %>%
select_if(sapply(., n_distinct, na.rm = T) > 1)
valid_pairs <- crossprod(!is.na(features_for_corr)) >= min_overlap_for_corr_threshold * nrow(features_for_corr)
if((nrow(features_for_corr) != 0) & (ncol(features_for_corr) != 0)){
highly_correlated_features <- features_for_corr %>%
correlate(use = "pairwise.complete.obs", method = "spearman") %>%
column_to_rownames(., var = "term") %>%
as.matrix() %>%
replace(!valid_pairs | is.na(.), 0) %>%
findCorrelation(., cutoff = corr_threshold, verbose = F, names = T)
clean_features <- clean_features[, !names(clean_features) %in% highly_correlated_features]
}
}
# Drop rows with a percentage of NA values above rows_nan_threshold
clean_features <- clean_features %>%
mutate(percentage_na = rowSums(is.na(.)) / ncol(.)) %>%
filter(percentage_na <= rows_nan_threshold) %>%
select(-percentage_na)
return(clean_features)
}

12
src/features/entry.R

@ -4,13 +4,19 @@ library("dplyr",warn.conflicts = F)
library("tidyr")
sensor_data_files <- snakemake@input
sensor_data_files$time_segments_labels <- NULL
time_segments_file <- snakemake@input[["time_segments_labels"]]
provider <- snakemake@params["provider"][["provider"]]
provider_key <- snakemake@params["provider_key"]
sensor_key <- snakemake@params["sensor_key"]
sensor_features <- fetch_provider_features(provider, provider_key, sensor_key, sensor_data_files, time_segments_file)
if(sensor_key == "all_cleaning_individual" | sensor_key == "all_cleaning_overall"){
# Data cleaning
sensor_features = run_provider_cleaning_script(provider, provider_key, sensor_key, sensor_data_files)
}else{
# Extract sensor features
sensor_data_files$time_segments_labels <- NULL
time_segments_file <- snakemake@input[["time_segments_labels"]]
sensor_features <- fetch_provider_features(provider, provider_key, sensor_key, sensor_data_files, time_segments_file)
}
write.csv(sensor_features, snakemake@output[[1]], row.names = FALSE)

13
src/features/entry.py

@ -1,14 +1,19 @@
import pandas as pd
from utils.utils import fetch_provider_features
from utils.utils import fetch_provider_features, run_provider_cleaning_script
sensor_data_files = dict(snakemake.input)
del sensor_data_files["time_segments_labels"]
time_segments_file = snakemake.input["time_segments_labels"]
provider = snakemake.params["provider"]
provider_key = snakemake.params["provider_key"]
sensor_key = snakemake.params["sensor_key"]
sensor_features = fetch_provider_features(provider, provider_key, sensor_key, sensor_data_files, time_segments_file)
if sensor_key == "all_cleaning_individual" or sensor_key == "all_cleaning_overall":
# Data cleaning
sensor_features = run_provider_cleaning_script(provider, provider_key, sensor_key, sensor_data_files)
else:
# Extract sensor features
del sensor_data_files["time_segments_labels"]
time_segments_file = snakemake.input["time_segments_labels"]
sensor_features = fetch_provider_features(provider, provider_key, sensor_key, sensor_data_files, time_segments_file)
sensor_features.to_csv(snakemake.output[0], index=False)

5
src/features/phone_activity_recognition/rapids/main.py

@ -1,5 +1,4 @@
import pandas as pd
import numpy as np
def rapids_features(sensor_data_files, time_segment, provider, filter_data_by_segment, *args, **kwargs):
@ -31,11 +30,13 @@ def rapids_features(sensor_data_files, time_segment, provider, filter_data_by_se
if "duration" + column.lower() in features_to_compute:
filtered_data = ar_episodes[ar_episodes["activity_name"].isin(pd.Series(activity_labels))]
if not filtered_data.empty:
ar_features["duration" + column.lower()] = ar_episodes[ar_episodes["activity_name"].isin(pd.Series(activity_labels))].groupby(["local_segment"])["duration"].sum().fillna(0)
ar_features["duration" + column.lower()] = ar_episodes[ar_episodes["activity_name"].isin(pd.Series(activity_labels))].groupby(["local_segment"])["duration"].sum()
else:
ar_features["duration" + column.lower()] = 0
ar_features.index.names = ["local_segment"]
ar_features = ar_features.reset_index()
ar_features.fillna(value={"count": 0, "countuniqueactivities": 0, "durationstationary": 0, "durationmobile": 0, "durationvehicle": 0}, inplace=True)
return ar_features

31
src/features/phone_applications_foreground/rapids/main.py

@ -26,40 +26,23 @@ def compute_features(filtered_data, apps_type, requested_features, apps_features
apps_features["frequencyentropy" + apps_type] = apps_with_count.groupby("local_segment")["timestamp"].agg(entropy)
if "countevent" in requested_features:
apps_features["countevent" + apps_type] = filtered_data.groupby(["local_segment"]).count()["timestamp"]
apps_features.fillna(value={"countevent" + apps_type: 0}, inplace=True)
if "countepisode" in requested_features:
apps_features["countepisode" + apps_type] = filtered_data.groupby(["local_segment"]).count()["start_timestamp"]
apps_features.fillna(value={"countepisode" + apps_type: 0}, inplace=True)
if "minduration" in requested_features:
grouped_data = filtered_data.groupby(by = ['local_segment'])['duration'].min()
if grouped_data.empty:
apps_features["minduration" + apps_type] = np.nan
else:
apps_features["minduration" + apps_type] = grouped_data
apps_features["minduration" + apps_type] = filtered_data.groupby(by = ["local_segment"])["duration"].min()
if "maxduration" in requested_features:
grouped_data = filtered_data.groupby(by = ['local_segment'])['duration'].max()
if grouped_data.empty:
apps_features["maxduration" + apps_type] = np.nan
else:
apps_features["maxduration" + apps_type] = grouped_data
apps_features["maxduration" + apps_type] = filtered_data.groupby(by = ["local_segment"])["duration"].max()
if "meanduration" in requested_features:
grouped_data = filtered_data.groupby(by = ['local_segment'])['duration'].mean()
if grouped_data.empty:
apps_features["meanduration" + apps_type] = np.nan
else:
apps_features["meanduration" + apps_type] = grouped_data
apps_features["meanduration" + apps_type] = filtered_data.groupby(by = ["local_segment"])["duration"].mean()
if "sumduration" in requested_features:
grouped_data = filtered_data.groupby(by = ['local_segment'])['duration'].sum()
if grouped_data.empty:
apps_features["sumduration" + apps_type] = np.nan
else:
apps_features["sumduration" + apps_type] = grouped_data
apps_features.index.names = ['local_segment']
apps_features["sumduration" + apps_type] = filtered_data.groupby(by = ["local_segment"])["duration"].sum()
apps_features.index.names = ["local_segment"]
return apps_features
def process_app_features(data, requested_features, time_segment, provider, filter_data_by_segment):
@ -145,4 +128,6 @@ def rapids_features(sensor_data_files, time_segment, provider, filter_data_by_se
features = pd.merge(episodes_features, features, how='outer', on='local_segment')
features.fillna(value={feature_name: 0 for feature_name in features.columns if feature_name.startswith(("countevent", "countepisode", "minduration", "maxduration", "meanduration", "sumduration"))}, inplace=True)
return features

2
src/features/phone_calls/rapids/main.R

@ -88,6 +88,6 @@ rapids_features <- function(sensor_data_files, time_segment, provider){
features <- call_features_of_type(calls_of_type, features_type, call_type, time_segment, requested_features)
call_features <- merge(call_features, features, all=TRUE)
}
call_features <- call_features %>% mutate_at(vars(contains("countmostfrequentcontact") | contains("distinctcontacts") | contains("count")), list( ~ replace_na(., 0)))
call_features <- call_features %>% mutate_at(vars(contains("countmostfrequentcontact") | contains("distinctcontacts") | contains("count") | contains("sumduration") | contains("minduration") | contains("maxduration") | contains("meanduration") | contains("modeduration")), list( ~ replace_na(., 0)))
return(call_features)
}

2
src/features/phone_conversation/rapids/main.py

@ -140,7 +140,7 @@ def rapids_features(sensor_data_files, time_segment, provider, filter_data_by_se
if "voicemaxenergy" in features_to_compute:
conversation_features["voicemaxenergy"] = conversation_data[conversation_data['inference']==2].groupby(["local_segment"])["double_energy"].max()
conversation_features.fillna(value={feature_name: 0 for feature_name in conversation_features.columns if feature_name not in ["timefirstconversation", "timelastconversation", "sdconversationduration", "noisesdenergy", "voicesdenergy"]}, inplace=True)
conversation_features = conversation_features.reset_index()
return conversation_features

1
src/features/phone_keyboard/rapids/main.py

@ -59,6 +59,7 @@ def rapids_features(sensor_data_files, time_segment, provider, filter_data_by_se
if "totalkeyboardtouches" in features_to_compute:
keyboard_features["totalkeyboardtouches"] = keyboard_data.groupby(['local_segment','sessionNumber'])['is_password'].count().reset_index().groupby(['local_segment'])['is_password'].mean()
keyboard_features.fillna(value={"sessioncount": 0, "averagesessionlength": 0, "changeintextlengthlessthanminusone": 0, "changeintextlengthequaltominusone": 0, "changeintextlengthequaltoone": 0, "changeintextlengthmorethanone": 0, "maxtextlength": 0, "totalkeyboardtouches": 0}, inplace=True)
keyboard_features = keyboard_features.reset_index()
return keyboard_features

1
src/features/phone_screen/rapids/main.py

@ -62,6 +62,7 @@ def rapids_features(sensor_data_files, time_segment, provider, filter_data_by_se
screen_features = pd.concat([screen_features, getEpisodeDurationFeatures(screen_data, time_segment, episode, features_episodes_to_compute, reference_hour_first_use)], axis=1)
if not screen_features.empty:
screen_features.fillna(value={feature_name: 0 for feature_name in screen_features.columns if not feature_name.startswith(("stdduration", "firstuseafter"))}, inplace=True)
screen_features = screen_features.reset_index()
return screen_features

12
src/features/utils/utils.R

@ -83,4 +83,14 @@ fetch_provider_features <- function(provider, provider_key, sensor_key, sensor_d
"(.*)#(.*),(.*)",
remove = FALSE)
return(sensor_features)
}
}
run_provider_cleaning_script <- function(provider, provider_key, sensor_key, sensor_data_files){
source(provider[["SRC_SCRIPT"]])
print(paste(rapids_log_tag, "Processing", sensor_key, provider_key))
cleaning_function <- match.fun(paste0(tolower(provider_key), "_cleaning"))
sensor_features <- cleaning_function(sensor_data_files, provider)
return(sensor_features)
}

10
src/features/utils/utils.py

@ -123,3 +123,13 @@ def fetch_provider_features(provider, provider_key, sensor_key, sensor_data_file
sensor_features.insert(1 + i, segment_colums.columns[i], segment_colums[segment_colums.columns[i]])
return sensor_features
def run_provider_cleaning_script(provider, provider_key, sensor_key, sensor_data_files):
from importlib import import_module, util
print("{} Processing {} {}".format(rapids_log_tag, sensor_key, provider_key))
cleaning_module = import_path(provider["SRC_SCRIPT"])
cleaning_function = getattr(cleaning_module, provider_key.lower() + "_cleaning")
sensor_features = cleaning_function(sensor_data_files, provider)
return sensor_features

29
src/models/workflow_example/clean_sensor_features.R

@ -1,29 +0,0 @@
source("renv/activate.R")
library(tidyr)
library("dplyr", warn.conflicts = F)
clean_features <- read.csv(snakemake@input[[1]])
cols_nan_threshold <- as.numeric(snakemake@params[["cols_nan_threshold"]])
drop_zero_variance_columns <- as.logical(snakemake@params[["cols_var_threshold"]])
rows_nan_threshold <- as.numeric(snakemake@params[["rows_nan_threshold"]])
data_yielded_hours_ratio_threshold <- as.numeric(snakemake@params[["data_yielded_hours_ratio_threshold"]])
# drop rows with the value of "phone_data_yield_rapids_ratiovalidyieldedhours" column less than data_yielded_hours_ratio_threshold
clean_features <- clean_features %>%
filter(phone_data_yield_rapids_ratiovalidyieldedhours > data_yielded_hours_ratio_threshold)
# drop columns with a percentage of NA values above cols_nan_threshold
if(nrow(clean_features))
clean_features <- clean_features %>% select_if(~ sum(is.na(.)) / length(.) <= cols_nan_threshold )
if(drop_zero_variance_columns)
clean_features <- clean_features %>% select_if(grepl("pid|local_segment|local_segment_label|local_segment_start_datetime|local_segment_end_datetime",names(.)) | sapply(., n_distinct, na.rm = T) > 1)
# drop rows with a percentage of NA values above rows_nan_threshold
clean_features <- clean_features %>%
mutate(percentage_na = rowSums(is.na(.)) / ncol(.)) %>%
filter(percentage_na < rows_nan_threshold) %>%
select(-percentage_na)
write.csv(clean_features, snakemake@output[[1]], row.names = FALSE)

6
tests/data/processed/features/mtz_event/android/phone_applications_foreground.csv
File diff suppressed because it is too large
View File

4
tests/data/processed/features/mtz_event/android/phone_keyboard.csv

@ -1,3 +1,3 @@
"local_segment","local_segment_label","local_segment_start_datetime","local_segment_end_datetime","phone_keyboard_rapids_sessioncount","phone_keyboard_rapids_averagesessionlength","phone_keyboard_rapids_averageinterkeydelay","phone_keyboard_rapids_changeintextlengthlessthanminusone","phone_keyboard_rapids_changeintextlengthequaltominusone","phone_keyboard_rapids_changeintextlengthequaltoone","phone_keyboard_rapids_changeintextlengthmorethanone","phone_keyboard_rapids_maxtextlength","phone_keyboard_rapids_lastmessagelength","phone_keyboard_rapids_totalkeyboardtouches"
"beforeMarchEvent#2020-03-07 16:00:00,2020-03-08 15:00:00","beforeMarchEvent","2020-03-07 16:00:00","2020-03-08 15:00:00",2,0,NA,NA,NA,1,NA,2,2,1.5
"beforeNovemberEvent#2020-10-31 16:00:00,2020-11-01 13:00:00","beforeNovemberEvent","2020-10-31 16:00:00","2020-11-01 13:00:00",2,0,NA,NA,NA,1,NA,2,2,1.5
"beforeMarchEvent#2020-03-07 16:00:00,2020-03-08 15:00:00","beforeMarchEvent","2020-03-07 16:00:00","2020-03-08 15:00:00",2,0,NA,0,0,1,0,2,2,1.5
"beforeNovemberEvent#2020-10-31 16:00:00,2020-11-01 13:00:00","beforeNovemberEvent","2020-10-31 16:00:00","2020-11-01 13:00:00",2,0,NA,0,0,1,0,2,2,1.5

2
tests/data/processed/features/mtz_event/ios/phone_applications_foreground.csv
File diff suppressed because it is too large
View File

2
tests/data/processed/features/mtz_event/ios/phone_keyboard.csv

@ -1 +1 @@
"local_segment","local_segment_label","local_segment_start_datetime","local_segment_end_datetime","phone_keyboard_rapids_averagesessionlength","phone_keyboard_rapids_sessioncount","phone_keyboard_rapids_changeintextlengthmorethanone","phone_keyboard_rapids_averageinterkeydelay","phone_keyboard_rapids_maxtextlength","phone_keyboard_rapids_changeintextlengthequaltominusone","phone_keyboard_rapids_changeintextlengthequaltoone","phone_keyboard_rapids_changeintextlengthlessthanminusone","phone_keyboard_rapids_totalkeyboardtouches","phone_keyboard_rapids_lastmessagelength"
"local_segment","local_segment_label","local_segment_start_datetime","local_segment_end_datetime","phone_keyboard_rapids_changeintextlengthequaltominusone","phone_keyboard_rapids_maxtextlength","phone_keyboard_rapids_sessioncount","phone_keyboard_rapids_changeintextlengthequaltoone","phone_keyboard_rapids_changeintextlengthlessthanminusone","phone_keyboard_rapids_averagesessionlength","phone_keyboard_rapids_changeintextlengthmorethanone","phone_keyboard_rapids_totalkeyboardtouches","phone_keyboard_rapids_lastmessagelength","phone_keyboard_rapids_averageinterkeydelay"

28
tests/data/processed/features/mtz_frequency/android/phone_activity_recognition.csv

@ -35,16 +35,16 @@
"thirtyminutes0018#2020-03-07 09:00:00,2020-03-07 09:29:59","thirtyminutes0018","2020-03-07 09:00:00","2020-03-07 09:29:59",1,7,1,0,4.99991666666667,0
"thirtyminutes0018#2020-10-30 09:00:00,2020-10-30 09:29:59","thirtyminutes0018","2020-10-30 09:00:00","2020-10-30 09:29:59",2,8,1,0,9.99983333333333,0
"thirtyminutes0018#2020-10-31 09:00:00,2020-10-31 09:29:59","thirtyminutes0018","2020-10-31 09:00:00","2020-10-31 09:29:59",1,7,1,0,4.99991666666667,0
"thirtyminutes0020#2020-03-06 10:00:00,2020-03-06 10:29:59","thirtyminutes0020","2020-03-06 10:00:00","2020-03-06 10:29:59",1,0,1,0,NA,10.15325
"thirtyminutes0020#2020-03-07 10:00:00,2020-03-07 10:29:59","thirtyminutes0020","2020-03-07 10:00:00","2020-03-07 10:29:59",1,7,1,0,4.99991666666667,NA
"thirtyminutes0020#2020-03-09 10:00:00,2020-03-09 10:29:59","thirtyminutes0020","2020-03-09 10:00:00","2020-03-09 10:29:59",1,7,1,0,4.99991666666667,NA
"thirtyminutes0020#2020-10-30 10:00:00,2020-10-30 10:29:59","thirtyminutes0020","2020-10-30 10:00:00","2020-10-30 10:29:59",1,0,1,0,NA,10.15325
"thirtyminutes0020#2020-10-31 10:00:00,2020-10-31 10:29:59","thirtyminutes0020","2020-10-31 10:00:00","2020-10-31 10:29:59",1,7,1,0,4.99991666666667,NA
"thirtyminutes0020#2020-11-02 10:00:00,2020-11-02 10:29:59","thirtyminutes0020","2020-11-02 10:00:00","2020-11-02 10:29:59",1,7,1,0,4.99991666666667,NA
"thirtyminutes0021#2020-03-06 10:30:00,2020-03-06 10:59:59","thirtyminutes0021","2020-03-06 10:30:00","2020-03-06 10:59:59",1,0,1,0,NA,4.99991666666667
"thirtyminutes0021#2020-03-09 10:30:00,2020-03-09 10:59:59","thirtyminutes0021","2020-03-09 10:30:00","2020-03-09 10:59:59",1,7,1,0,4.99991666666667,NA
"thirtyminutes0021#2020-10-30 10:30:00,2020-10-30 10:59:59","thirtyminutes0021","2020-10-30 10:30:00","2020-10-30 10:59:59",1,0,1,0,NA,4.99991666666667
"thirtyminutes0021#2020-11-02 10:30:00,2020-11-02 10:59:59","thirtyminutes0021","2020-11-02 10:30:00","2020-11-02 10:59:59",1,7,1,0,4.99991666666667,NA
"thirtyminutes0020#2020-03-06 10:00:00,2020-03-06 10:29:59","thirtyminutes0020","2020-03-06 10:00:00","2020-03-06 10:29:59",1,0,1,0,0,10.15325
"thirtyminutes0020#2020-03-07 10:00:00,2020-03-07 10:29:59","thirtyminutes0020","2020-03-07 10:00:00","2020-03-07 10:29:59",1,7,1,0,4.99991666666667,0
"thirtyminutes0020#2020-03-09 10:00:00,2020-03-09 10:29:59","thirtyminutes0020","2020-03-09 10:00:00","2020-03-09 10:29:59",1,7,1,0,4.99991666666667,0
"thirtyminutes0020#2020-10-30 10:00:00,2020-10-30 10:29:59","thirtyminutes0020","2020-10-30 10:00:00","2020-10-30 10:29:59",1,0,1,0,0,10.15325
"thirtyminutes0020#2020-10-31 10:00:00,2020-10-31 10:29:59","thirtyminutes0020","2020-10-31 10:00:00","2020-10-31 10:29:59",1,7,1,0,4.99991666666667,0
"thirtyminutes0020#2020-11-02 10:00:00,2020-11-02 10:29:59","thirtyminutes0020","2020-11-02 10:00:00","2020-11-02 10:29:59",1,7,1,0,4.99991666666667,0
"thirtyminutes0021#2020-03-06 10:30:00,2020-03-06 10:59:59","thirtyminutes0021","2020-03-06 10:30:00","2020-03-06 10:59:59",1,0,1,0,0,4.99991666666667
"thirtyminutes0021#2020-03-09 10:30:00,2020-03-09 10:59:59","thirtyminutes0021","2020-03-09 10:30:00","2020-03-09 10:59:59",1,7,1,0,4.99991666666667,0
"thirtyminutes0021#2020-10-30 10:30:00,2020-10-30 10:59:59","thirtyminutes0021","2020-10-30 10:30:00","2020-10-30 10:59:59",1,0,1,0,0,4.99991666666667
"thirtyminutes0021#2020-11-02 10:30:00,2020-11-02 10:59:59","thirtyminutes0021","2020-11-02 10:30:00","2020-11-02 10:59:59",1,7,1,0,4.99991666666667,0
"thirtyminutes0022#2020-03-06 11:00:00,2020-03-06 11:29:59","thirtyminutes0022","2020-03-06 11:00:00","2020-03-06 11:29:59",1,2,1,0,4.99991666666667,0
"thirtyminutes0022#2020-10-30 11:00:00,2020-10-30 11:29:59","thirtyminutes0022","2020-10-30 11:00:00","2020-10-30 11:29:59",1,2,1,0,4.99991666666667,0
"thirtyminutes0023#2020-03-06 11:30:00,2020-03-06 11:59:59","thirtyminutes0023","2020-03-06 11:30:00","2020-03-06 11:59:59",1,2,1,0,4.99991666666667,0
@ -81,10 +81,10 @@
"thirtyminutes0035#2020-11-02 17:30:00,2020-11-02 17:59:59","thirtyminutes0035","2020-11-02 17:30:00","2020-11-02 17:59:59",1,0,1,0,0,0.999983333333333
"thirtyminutes0036#2020-03-06 18:00:00,2020-03-06 18:29:59","thirtyminutes0036","2020-03-06 18:00:00","2020-03-06 18:29:59",2,0,1,0,0,9.99983333333333
"thirtyminutes0036#2020-10-30 18:00:00,2020-10-30 18:29:59","thirtyminutes0036","2020-10-30 18:00:00","2020-10-30 18:29:59",2,0,1,0,0,9.99983333333333
"thirtyminutes0037#2020-03-06 18:30:00,2020-03-06 18:59:59","thirtyminutes0037","2020-03-06 18:30:00","2020-03-06 18:59:59",1,7,1,0,5.69215,NA
"thirtyminutes0037#2020-03-09 18:30:00,2020-03-09 18:59:59","thirtyminutes0037","2020-03-09 18:30:00","2020-03-09 18:59:59",1,0,1,0,NA,4.99991666666667
"thirtyminutes0037#2020-10-30 18:30:00,2020-10-30 18:59:59","thirtyminutes0037","2020-10-30 18:30:00","2020-10-30 18:59:59",1,7,1,0,5.69215,NA
"thirtyminutes0037#2020-11-02 18:30:00,2020-11-02 18:59:59","thirtyminutes0037","2020-11-02 18:30:00","2020-11-02 18:59:59",1,0,1,0,NA,4.99991666666667
"thirtyminutes0037#2020-03-06 18:30:00,2020-03-06 18:59:59","thirtyminutes0037","2020-03-06 18:30:00","2020-03-06 18:59:59",1,7,1,0,5.69215,0
"thirtyminutes0037#2020-03-09 18:30:00,2020-03-09 18:59:59","thirtyminutes0037","2020-03-09 18:30:00","2020-03-09 18:59:59",1,0,1,0,0,4.99991666666667
"thirtyminutes0037#2020-10-30 18:30:00,2020-10-30 18:59:59","thirtyminutes0037","2020-10-30 18:30:00","2020-10-30 18:59:59",1,7,1,0,5.69215,0
"thirtyminutes0037#2020-11-02 18:30:00,2020-11-02 18:59:59","thirtyminutes0037","2020-11-02 18:30:00","2020-11-02 18:59:59",1,0,1,0,0,4.99991666666667
"thirtyminutes0038#2020-03-06 19:00:00,2020-03-06 19:29:59","thirtyminutes0038","2020-03-06 19:00:00","2020-03-06 19:29:59",4,7,2,0,15.7384333333333,0
"thirtyminutes0038#2020-10-30 19:00:00,2020-10-30 19:29:59","thirtyminutes0038","2020-10-30 19:00:00","2020-10-30 19:29:59",4,7,2,0,15.7384333333333,0
"thirtyminutes0039#2020-03-06 19:30:00,2020-03-06 19:59:59","thirtyminutes0039","2020-03-06 19:30:00","2020-03-06 19:59:59",2,1,1,0,6.71366666666667,0

130
tests/data/processed/features/mtz_frequency/android/phone_applications_foreground.csv
File diff suppressed because it is too large
View File

220
tests/data/processed/features/mtz_frequency/android/phone_calls.csv

@ -1,125 +1,125 @@
"local_segment","local_segment_label","local_segment_start_datetime","local_segment_end_datetime","phone_calls_rapids_missed_count","phone_calls_rapids_missed_distinctcontacts","phone_calls_rapids_missed_timefirstcall","phone_calls_rapids_missed_timelastcall","phone_calls_rapids_missed_countmostfrequentcontact","phone_calls_rapids_incoming_count","phone_calls_rapids_incoming_distinctcontacts","phone_calls_rapids_incoming_meanduration","phone_calls_rapids_incoming_sumduration","phone_calls_rapids_incoming_minduration","phone_calls_rapids_incoming_maxduration","phone_calls_rapids_incoming_stdduration","phone_calls_rapids_incoming_modeduration","phone_calls_rapids_incoming_entropyduration","phone_calls_rapids_incoming_timefirstcall","phone_calls_rapids_incoming_timelastcall","phone_calls_rapids_incoming_countmostfrequentcontact","phone_calls_rapids_outgoing_count","phone_calls_rapids_outgoing_distinctcontacts","phone_calls_rapids_outgoing_meanduration","phone_calls_rapids_outgoing_sumduration","phone_calls_rapids_outgoing_minduration","phone_calls_rapids_outgoing_maxduration","phone_calls_rapids_outgoing_stdduration","phone_calls_rapids_outgoing_modeduration","phone_calls_rapids_outgoing_entropyduration","phone_calls_rapids_outgoing_timefirstcall","phone_calls_rapids_outgoing_timelastcall","phone_calls_rapids_outgoing_countmostfrequentcontact"
"thirtyminutes0000#2020-03-06 00:00:00,2020-03-06 00:29:59","thirtyminutes0000","2020-03-06 00:00:00","2020-03-06 00:29:59",1,1,13,13,1,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0
"thirtyminutes0000#2020-10-30 00:00:00,2020-10-30 00:29:59","thirtyminutes0000","2020-10-30 00:00:00","2020-10-30 00:29:59",1,1,13,13,1,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0
"thirtyminutes0001#2020-03-06 00:30:00,2020-03-06 00:59:59","thirtyminutes0001","2020-03-06 00:30:00","2020-03-06 00:59:59",1,1,57,57,1,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0
"thirtyminutes0001#2020-10-30 00:30:00,2020-10-30 00:59:59","thirtyminutes0001","2020-10-30 00:30:00","2020-10-30 00:59:59",1,1,57,57,1,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0
"thirtyminutes0000#2020-03-06 00:00:00,2020-03-06 00:29:59","thirtyminutes0000","2020-03-06 00:00:00","2020-03-06 00:29:59",1,1,13,13,1,0,0,0,0,0,0,NA,0,NA,NA,NA,0,0,0,0,0,0,0,NA,0,NA,NA,NA,0
"thirtyminutes0000#2020-10-30 00:00:00,2020-10-30 00:29:59","thirtyminutes0000","2020-10-30 00:00:00","2020-10-30 00:29:59",1,1,13,13,1,0,0,0,0,0,0,NA,0,NA,NA,NA,0,0,0,0,0,0,0,NA,0,NA,NA,NA,0
"thirtyminutes0001#2020-03-06 00:30:00,2020-03-06 00:59:59","thirtyminutes0001","2020-03-06 00:30:00","2020-03-06 00:59:59",1,1,57,57,1,0,0,0,0,0,0,NA,0,NA,NA,NA,0,0,0,0,0,0,0,NA,0,NA,NA,NA,0
"thirtyminutes0001#2020-10-30 00:30:00,2020-10-30 00:59:59","thirtyminutes0001","2020-10-30 00:30:00","2020-10-30 00:59:59",1,1,57,57,1,0,0,0,0,0,0,NA,0,NA,NA,NA,0,0,0,0,0,0,0,NA,0,NA,NA,NA,0
"thirtyminutes0005#2020-03-06 02:30:00,2020-03-06 02:59:59","thirtyminutes0005","2020-03-06 02:30:00","2020-03-06 02:59:59",0,0,NA,NA,0,1,1,439,439,439,439,NA,439,0,163,163,1,1,1,462.999,462.999,462.999,462.999,NA,462.999,0,172,172,1
"thirtyminutes0005#2020-10-30 02:30:00,2020-10-30 02:59:59","thirtyminutes0005","2020-10-30 02:30:00","2020-10-30 02:59:59",0,0,NA,NA,0,1,1,439,439,439,439,NA,439,0,163,163,1,1,1,462.999,462.999,462.999,462.999,NA,462.999,0,172,172,1
"thirtyminutes0006#2020-03-06 03:00:00,2020-03-06 03:29:59","thirtyminutes0006","2020-03-06 03:00:00","2020-03-06 03:29:59",0,0,NA,NA,0,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0,1,1,507,507,507,507,NA,507,0,180,180,1
"thirtyminutes0006#2020-03-09 03:00:00,2020-03-09 03:29:59","thirtyminutes0006","2020-03-09 03:00:00","2020-03-09 03:29:59",1,1,198,198,1,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0
"thirtyminutes0006#2020-10-30 03:00:00,2020-10-30 03:29:59","thirtyminutes0006","2020-10-30 03:00:00","2020-10-30 03:29:59",0,0,NA,NA,0,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0,1,1,507,507,507,507,NA,507,0,180,180,1
"thirtyminutes0006#2020-11-02 03:00:00,2020-11-02 03:29:59","thirtyminutes0006","2020-11-02 03:00:00","2020-11-02 03:29:59",1,1,198,198,1,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0
"thirtyminutes0007#2020-03-08 03:30:00,2020-03-08 03:59:59","thirtyminutes0007","2020-03-08 03:30:00","2020-03-08 03:59:59",0,0,NA,NA,0,1,1,159.999,159.999,159.999,159.999,NA,159.999,0,237,237,1,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0
"thirtyminutes0007#2020-11-01 03:30:00,2020-11-01 03:59:59","thirtyminutes0007","2020-11-01 03:30:00","2020-11-01 03:59:59",0,0,NA,NA,0,1,1,159.999,159.999,159.999,159.999,NA,159.999,0,237,237,1,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0
"thirtyminutes0008#2020-03-06 04:00:00,2020-03-06 04:29:59","thirtyminutes0008","2020-03-06 04:00:00","2020-03-06 04:29:59",1,1,257,257,1,1,1,737.999,737.999,737.999,737.999,NA,737.999,0,257,257,1,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0
"thirtyminutes0008#2020-03-08 04:00:00,2020-03-08 04:29:59","thirtyminutes0008","2020-03-08 04:00:00","2020-03-08 04:29:59",0,0,NA,NA,0,1,1,815,815,815,815,NA,815,0,240,240,0,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0
"thirtyminutes0008#2020-03-09 04:00:00,2020-03-09 04:29:59","thirtyminutes0008","2020-03-09 04:00:00","2020-03-09 04:29:59",0,0,NA,NA,0,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0,1,1,109.999,109.999,109.999,109.999,NA,109.999,0,268,268,1
"thirtyminutes0008#2020-10-30 04:00:00,2020-10-30 04:29:59","thirtyminutes0008","2020-10-30 04:00:00","2020-10-30 04:29:59",1,1,257,257,1,1,1,737.999,737.999,737.999,737.999,NA,737.999,0,257,257,1,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0
"thirtyminutes0008#2020-11-01 04:00:00,2020-11-01 04:29:59","thirtyminutes0008","2020-11-01 04:00:00","2020-11-01 04:29:59",0,0,NA,NA,0,1,1,815,815,815,815,NA,815,0,240,240,0,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0
"thirtyminutes0008#2020-11-02 04:00:00,2020-11-02 04:29:59","thirtyminutes0008","2020-11-02 04:00:00","2020-11-02 04:29:59",0,0,NA,NA,0,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0,1,1,109.999,109.999,109.999,109.999,NA,109.999,0,268,268,1
"thirtyminutes0009#2020-03-06 04:30:00,2020-03-06 04:59:59","thirtyminutes0009","2020-03-06 04:30:00","2020-03-06 04:59:59",0,0,NA,NA,0,1,1,593,593,593,593,NA,593,0,270,270,1,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0
"thirtyminutes0006#2020-03-06 03:00:00,2020-03-06 03:29:59","thirtyminutes0006","2020-03-06 03:00:00","2020-03-06 03:29:59",0,0,NA,NA,0,0,0,0,0,0,0,NA,0,NA,NA,NA,0,1,1,507,507,507,507,NA,507,0,180,180,1
"thirtyminutes0006#2020-03-09 03:00:00,2020-03-09 03:29:59","thirtyminutes0006","2020-03-09 03:00:00","2020-03-09 03:29:59",1,1,198,198,1,0,0,0,0,0,0,NA,0,NA,NA,NA,0,0,0,0,0,0,0,NA,0,NA,NA,NA,0
"thirtyminutes0006#2020-10-30 03:00:00,2020-10-30 03:29:59","thirtyminutes0006","2020-10-30 03:00:00","2020-10-30 03:29:59",0,0,NA,NA,0,0,0,0,0,0,0,NA,0,NA,NA,NA,0,1,1,507,507,507,507,NA,507,0,180,180,1
"thirtyminutes0006#2020-11-02 03:00:00,2020-11-02 03:29:59","thirtyminutes0006","2020-11-02 03:00:00","2020-11-02 03:29:59",1,1,198,198,1,0,0,0,0,0,0,NA,0,NA,NA,NA,0,0,0,0,0,0,0,NA,0,NA,NA,NA,0
"thirtyminutes0007#2020-03-08 03:30:00,2020-03-08 03:59:59","thirtyminutes0007","2020-03-08 03:30:00","2020-03-08 03:59:59",0,0,NA,NA,0,1,1,159.999,159.999,159.999,159.999,NA,159.999,0,237,237,1,0,0,0,0,0,0,NA,0,NA,NA,NA,0
"thirtyminutes0007#2020-11-01 03:30:00,2020-11-01 03:59:59","thirtyminutes0007","2020-11-01 03:30:00","2020-11-01 03:59:59",0,0,NA,NA,0,1,1,159.999,159.999,159.999,159.999,NA,159.999,0,237,237,1,0,0,0,0,0,0,NA,0,NA,NA,NA,0
"thirtyminutes0008#2020-03-06 04:00:00,2020-03-06 04:29:59","thirtyminutes0008","2020-03-06 04:00:00","2020-03-06 04:29:59",1,1,257,257,1,1,1,737.999,737.999,737.999,737.999,NA,737.999,0,257,257,1,0,0,0,0,0,0,NA,0,NA,NA,NA,0
"thirtyminutes0008#2020-03-08 04:00:00,2020-03-08 04:29:59","thirtyminutes0008","2020-03-08 04:00:00","2020-03-08 04:29:59",0,0,NA,NA,0,1,1,815,815,815,815,NA,815,0,240,240,0,0,0,0,0,0,0,NA,0,NA,NA,NA,0
"thirtyminutes0008#2020-03-09 04:00:00,2020-03-09 04:29:59","thirtyminutes0008","2020-03-09 04:00:00","2020-03-09 04:29:59",0,0,NA,NA,0,0,0,0,0,0,0,NA,0,NA,NA,NA,0,1,1,109.999,109.999,109.999,109.999,NA,109.999,0,268,268,1
"thirtyminutes0008#2020-10-30 04:00:00,2020-10-30 04:29:59","thirtyminutes0008","2020-10-30 04:00:00","2020-10-30 04:29:59",1,1,257,257,1,1,1,737.999,737.999,737.999,737.999,NA,737.999,0,257,257,1,0,0,0,0,0,0,NA,0,NA,NA,NA,0
"thirtyminutes0008#2020-11-01 04:00:00,2020-11-01 04:29:59","thirtyminutes0008","2020-11-01 04:00:00","2020-11-01 04:29:59",0,0,NA,NA,0,1,1,815,815,815,815,NA,815,0,240,240,0,0,0,0,0,0,0,NA,0,NA,NA,NA,0
"thirtyminutes0008#2020-11-02 04:00:00,2020-11-02 04:29:59","thirtyminutes0008","2020-11-02 04:00:00","2020-11-02 04:29:59",0,0,NA,NA,0,0,0,0,0,0,0,NA,0,NA,NA,NA,0,1,1,109.999,109.999,109.999,109.999,NA,109.999,0,268,268,1
"thirtyminutes0009#2020-03-06 04:30:00,2020-03-06 04:59:59","thirtyminutes0009","2020-03-06 04:30:00","2020-03-06 04:59:59",0,0,NA,NA,0,1,1,593,593,593,593,NA,593,0,270,270,1,0,0,0,0,0,0,NA,0,NA,NA,NA,0
"thirtyminutes0009#2020-03-09 04:30:00,2020-03-09 04:59:59","thirtyminutes0009","2020-03-09 04:30:00","2020-03-09 04:59:59",0,0,NA,NA,0,1,1,427,427,427,427,NA,427,0,278,278,0,1,1,25,25,25,25,NA,25,0,270,270,1
"thirtyminutes0009#2020-10-30 04:30:00,2020-10-30 04:59:59","thirtyminutes0009","2020-10-30 04:30:00","2020-10-30 04:59:59",0,0,NA,NA,0,1,1,593,593,593,593,NA,593,0,270,270,1,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0
"thirtyminutes0009#2020-10-30 04:30:00,2020-10-30 04:59:59","thirtyminutes0009","2020-10-30 04:30:00","2020-10-30 04:59:59",0,0,NA,NA,0,1,1,593,593,593,593,NA,593,0,270,270,1,0,0,0,0,0,0,NA,0,NA,NA,NA,0
"thirtyminutes0009#2020-11-02 04:30:00,2020-11-02 04:59:59","thirtyminutes0009","2020-11-02 04:30:00","2020-11-02 04:59:59",0,0,NA,NA,0,1,1,427,427,427,427,NA,427,0,278,278,0,1,1,25,25,25,25,NA,25,0,270,270,1
"thirtyminutes0013#2020-03-06 06:30:00,2020-03-06 06:59:59","thirtyminutes0013","2020-03-06 06:30:00","2020-03-06 06:59:59",0,0,NA,NA,0,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0,1,1,74.999,74.999,74.999,74.999,NA,74.999,0,418,418,1
"thirtyminutes0013#2020-03-07 06:30:00,2020-03-07 06:59:59","thirtyminutes0013","2020-03-07 06:30:00","2020-03-07 06:59:59",0,0,NA,NA,0,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0,1,1,74.999,74.999,74.999,74.999,NA,74.999,0,418,418,1
"thirtyminutes0013#2020-10-30 06:30:00,2020-10-30 06:59:59","thirtyminutes0013","2020-10-30 06:30:00","2020-10-30 06:59:59",0,0,NA,NA,0,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0,1,1,74.999,74.999,74.999,74.999,NA,74.999,0,418,418,1
"thirtyminutes0013#2020-10-31 06:30:00,2020-10-31 06:59:59","thirtyminutes0013","2020-10-31 06:30:00","2020-10-31 06:59:59",0,0,NA,NA,0,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0,1,1,74.999,74.999,74.999,74.999,NA,74.999,0,418,418,1
"thirtyminutes0014#2020-03-06 07:00:00,2020-03-06 07:29:59","thirtyminutes0014","2020-03-06 07:00:00","2020-03-06 07:29:59",0,0,NA,NA,0,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0,1,1,1041,1041,1041,1041,NA,1041,0,420,420,1
"thirtyminutes0014#2020-03-07 07:00:00,2020-03-07 07:29:59","thirtyminutes0014","2020-03-07 07:00:00","2020-03-07 07:29:59",0,0,NA,NA,0,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0,1,1,1041,1041,1041,1041,NA,1041,0,420,420,1
"thirtyminutes0014#2020-10-30 07:00:00,2020-10-30 07:29:59","thirtyminutes0014","2020-10-30 07:00:00","2020-10-30 07:29:59",0,0,NA,NA,0,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0,1,1,1041,1041,1041,1041,NA,1041,0,420,420,1
"thirtyminutes0014#2020-10-31 07:00:00,2020-10-31 07:29:59","thirtyminutes0014","2020-10-31 07:00:00","2020-10-31 07:29:59",0,0,NA,NA,0,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0,1,1,1041,1041,1041,1041,NA,1041,0,420,420,1
"thirtyminutes0013#2020-03-06 06:30:00,2020-03-06 06:59:59","thirtyminutes0013","2020-03-06 06:30:00","2020-03-06 06:59:59",0,0,NA,NA,0,0,0,0,0,0,0,NA,0,NA,NA,NA,0,1,1,74.999,74.999,74.999,74.999,NA,74.999,0,418,418,1
"thirtyminutes0013#2020-03-07 06:30:00,2020-03-07 06:59:59","thirtyminutes0013","2020-03-07 06:30:00","2020-03-07 06:59:59",0,0,NA,NA,0,0,0,0,0,0,0,NA,0,NA,NA,NA,0,1,1,74.999,74.999,74.999,74.999,NA,74.999,0,418,418,1
"thirtyminutes0013#2020-10-30 06:30:00,2020-10-30 06:59:59","thirtyminutes0013","2020-10-30 06:30:00","2020-10-30 06:59:59",0,0,NA,NA,0,0,0,0,0,0,0,NA,0,NA,NA,NA,0,1,1,74.999,74.999,74.999,74.999,NA,74.999,0,418,418,1
"thirtyminutes0013#2020-10-31 06:30:00,2020-10-31 06:59:59","thirtyminutes0013","2020-10-31 06:30:00","2020-10-31 06:59:59",0,0,NA,NA,0,0,0,0,0,0,0,NA,0,NA,NA,NA,0,1,1,74.999,74.999,74.999,74.999,NA,74.999,0,418,418,1
"thirtyminutes0014#2020-03-06 07:00:00,2020-03-06 07:29:59","thirtyminutes0014","2020-03-06 07:00:00","2020-03-06 07:29:59",0,0,NA,NA,0,0,0,0,0,0,0,NA,0,NA,NA,NA,0,1,1,1041,1041,1041,1041,NA,1041,0,420,420,1
"thirtyminutes0014#2020-03-07 07:00:00,2020-03-07 07:29:59","thirtyminutes0014","2020-03-07 07:00:00","2020-03-07 07:29:59",0,0,NA,NA,0,0,0,0,0,0,0,NA,0,NA,NA,NA,0,1,1,1041,1041,1041,1041,NA,1041,0,420,420,1
"thirtyminutes0014#2020-10-30 07:00:00,2020-10-30 07:29:59","thirtyminutes0014","2020-10-30 07:00:00","2020-10-30 07:29:59",0,0,NA,NA,0,0,0,0,0,0,0,NA,0,NA,NA,NA,0,1,1,1041,1041,1041,1041,NA,1041,0,420,420,1
"thirtyminutes0014#2020-10-31 07:00:00,2020-10-31 07:29:59","thirtyminutes0014","2020-10-31 07:00:00","2020-10-31 07:29:59",0,0,NA,NA,0,0,0,0,0,0,0,NA,0,NA,NA,NA,0,1,1,1041,1041,1041,1041,NA,1041,0,420,420,1
"thirtyminutes0017#2020-03-06 08:30:00,2020-03-06 08:59:59","thirtyminutes0017","2020-03-06 08:30:00","2020-03-06 08:59:59",0,0,NA,NA,0,1,1,667,667,667,667,NA,667,0,519,519,1,1,1,1060,1060,1060,1060,NA,1060,0,512,512,1
"thirtyminutes0017#2020-03-07 08:30:00,2020-03-07 08:59:59","thirtyminutes0017","2020-03-07 08:30:00","2020-03-07 08:59:59",0,0,NA,NA,0,1,1,667,667,667,667,NA,667,0,519,519,1,1,1,179.999,179.999,179.999,179.999,NA,179.999,0,512,512,1
"thirtyminutes0017#2020-03-08 08:30:00,2020-03-08 08:59:59","thirtyminutes0017","2020-03-08 08:30:00","2020-03-08 08:59:59",1,1,528,528,1,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0
"thirtyminutes0017#2020-03-08 08:30:00,2020-03-08 08:59:59","thirtyminutes0017","2020-03-08 08:30:00","2020-03-08 08:59:59",1,1,528,528,1,0,0,0,0,0,0,NA,0,NA,NA,NA,0,0,0,0,0,0,0,NA,0,NA,NA,NA,0
"thirtyminutes0017#2020-10-30 08:30:00,2020-10-30 08:59:59","thirtyminutes0017","2020-10-30 08:30:00","2020-10-30 08:59:59",0,0,NA,NA,0,1,1,667,667,667,667,NA,667,0,519,519,1,1,1,1060,1060,1060,1060,NA,1060,0,512,512,1
"thirtyminutes0017#2020-10-31 08:30:00,2020-10-31 08:59:59","thirtyminutes0017","2020-10-31 08:30:00","2020-10-31 08:59:59",0,0,NA,NA,0,1,1,667,667,667,667,NA,667,0,519,519,1,1,1,179.999,179.999,179.999,179.999,NA,179.999,0,512,512,1
"thirtyminutes0017#2020-11-01 08:30:00,2020-11-01 08:59:59","thirtyminutes0017","2020-11-01 08:30:00","2020-11-01 08:59:59",1,1,528,528,1,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0
"thirtyminutes0018#2020-03-09 09:00:00,2020-03-09 09:29:59","thirtyminutes0018","2020-03-09 09:00:00","2020-03-09 09:29:59",1,1,541,541,1,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0,1,1,709.999,709.999,709.999,709.999,NA,709.999,0,558,558,1
"thirtyminutes0018#2020-11-02 09:00:00,2020-11-02 09:29:59","thirtyminutes0018","2020-11-02 09:00:00","2020-11-02 09:29:59",1,1,541,541,1,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0,1,1,709.999,709.999,709.999,709.999,NA,709.999,0,558,558,1
"thirtyminutes0019#2020-03-06 09:30:00,2020-03-06 09:59:59","thirtyminutes0019","2020-03-06 09:30:00","2020-03-06 09:59:59",1,1,589,589,1,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0
"thirtyminutes0019#2020-03-07 09:30:00,2020-03-07 09:59:59","thirtyminutes0019","2020-03-07 09:30:00","2020-03-07 09:59:59",1,1,589,589,1,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0
"thirtyminutes0019#2020-03-09 09:30:00,2020-03-09 09:59:59","thirtyminutes0019","2020-03-09 09:30:00","2020-03-09 09:59:59",0,0,NA,NA,0,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0,1,1,394,394,394,394,NA,394,0,570,570,1
"thirtyminutes0019#2020-10-30 09:30:00,2020-10-30 09:59:59","thirtyminutes0019","2020-10-30 09:30:00","2020-10-30 09:59:59",1,1,589,589,1,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0
"thirtyminutes0019#2020-10-31 09:30:00,2020-10-31 09:59:59","thirtyminutes0019","2020-10-31 09:30:00","2020-10-31 09:59:59",1,1,589,589,1,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0
"thirtyminutes0019#2020-11-02 09:30:00,2020-11-02 09:59:59","thirtyminutes0019","2020-11-02 09:30:00","2020-11-02 09:59:59",0,0,NA,NA,0,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0,1,1,394,394,394,394,NA,394,0,570,570,1
"thirtyminutes0020#2020-03-06 10:00:00,2020-03-06 10:29:59","thirtyminutes0020","2020-03-06 10:00:00","2020-03-06 10:29:59",0,0,NA,NA,0,1,1,1299,1299,1299,1299,NA,1299,0,600,600,1,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0
"thirtyminutes0020#2020-03-07 10:00:00,2020-03-07 10:29:59","thirtyminutes0020","2020-03-07 10:00:00","2020-03-07 10:29:59",0,0,NA,NA,0,1,1,1299,1299,1299,1299,NA,1299,0,600,600,1,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0
"thirtyminutes0020#2020-10-30 10:00:00,2020-10-30 10:29:59","thirtyminutes0020","2020-10-30 10:00:00","2020-10-30 10:29:59",0,0,NA,NA,0,1,1,1299,1299,1299,1299,NA,1299,0,600,600,1,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0
"thirtyminutes0020#2020-10-31 10:00:00,2020-10-31 10:29:59","thirtyminutes0020","2020-10-31 10:00:00","2020-10-31 10:29:59",0,0,NA,NA,0,1,1,1299,1299,1299,1299,NA,1299,0,600,600,1,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0
"thirtyminutes0022#2020-03-06 11:00:00,2020-03-06 11:29:59","thirtyminutes0022","2020-03-06 11:00:00","2020-03-06 11:29:59",0,0,NA,NA,0,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0,1,1,129.999,129.999,129.999,129.999,NA,129.999,0,687,687,1
"thirtyminutes0022#2020-03-07 11:00:00,2020-03-07 11:29:59","thirtyminutes0022","2020-03-07 11:00:00","2020-03-07 11:29:59",0,0,NA,NA,0,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0,1,1,129.999,129.999,129.999,129.999,NA,129.999,0,687,687,1
"thirtyminutes0022#2020-10-30 11:00:00,2020-10-30 11:29:59","thirtyminutes0022","2020-10-30 11:00:00","2020-10-30 11:29:59",0,0,NA,NA,0,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0,1,1,129.999,129.999,129.999,129.999,NA,129.999,0,687,687,1
"thirtyminutes0022#2020-10-31 11:00:00,2020-10-31 11:29:59","thirtyminutes0022","2020-10-31 11:00:00","2020-10-31 11:29:59",0,0,NA,NA,0,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0,1,1,129.999,129.999,129.999,129.999,NA,129.999,0,687,687,1
"thirtyminutes0023#2020-03-06 11:30:00,2020-03-06 11:59:59","thirtyminutes0023","2020-03-06 11:30:00","2020-03-06 11:59:59",0,0,NA,NA,0,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0,1,1,629,629,629,629,NA,629,0,690,690,1
"thirtyminutes0023#2020-03-07 11:30:00,2020-03-07 11:59:59","thirtyminutes0023","2020-03-07 11:30:00","2020-03-07 11:59:59",0,0,NA,NA,0,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0,1,1,629,629,629,629,NA,629,0,690,690,1
"thirtyminutes0023#2020-03-09 11:30:00,2020-03-09 11:59:59","thirtyminutes0023","2020-03-09 11:30:00","2020-03-09 11:59:59",0,0,NA,NA,0,1,1,623,623,623,623,NA,623,0,692,692,1,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0
"thirtyminutes0023#2020-10-30 11:30:00,2020-10-30 11:59:59","thirtyminutes0023","2020-10-30 11:30:00","2020-10-30 11:59:59",0,0,NA,NA,0,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0,1,1,629,629,629,629,NA,629,0,690,690,1
"thirtyminutes0023#2020-10-31 11:30:00,2020-10-31 11:59:59","thirtyminutes0023","2020-10-31 11:30:00","2020-10-31 11:59:59",0,0,NA,NA,0,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0,1,1,629,629,629,629,NA,629,0,690,690,1
"thirtyminutes0023#2020-11-02 11:30:00,2020-11-02 11:59:59","thirtyminutes0023","2020-11-02 11:30:00","2020-11-02 11:59:59",0,0,NA,NA,0,1,1,623,623,623,623,NA,623,0,692,692,1,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0
"thirtyminutes0024#2020-03-08 12:00:00,2020-03-08 12:29:59","thirtyminutes0024","2020-03-08 12:00:00","2020-03-08 12:29:59",0,0,NA,NA,0,1,1,1023,1023,1023,1023,NA,1023,0,724,724,1,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0
"thirtyminutes0024#2020-11-01 12:00:00,2020-11-01 12:29:59","thirtyminutes0024","2020-11-01 12:00:00","2020-11-01 12:29:59",0,0,NA,NA,0,1,1,1023,1023,1023,1023,NA,1023,0,724,724,1,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0
"thirtyminutes0025#2020-03-06 12:30:00,2020-03-06 12:59:59","thirtyminutes0025","2020-03-06 12:30:00","2020-03-06 12:59:59",0,0,NA,NA,0,2,2,550.9995,1101.999,48.999,1053,709.935915418075,1053,0.182333206933611,753,779,1,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0
"thirtyminutes0025#2020-03-08 12:30:00,2020-03-08 12:59:59","thirtyminutes0025","2020-03-08 12:30:00","2020-03-08 12:59:59",0,0,NA,NA,0,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0,1,1,32,32,32,32,NA,32,0,769,769,1
"thirtyminutes0025#2020-10-30 12:30:00,2020-10-30 12:59:59","thirtyminutes0025","2020-10-30 12:30:00","2020-10-30 12:59:59",0,0,NA,NA,0,2,2,550.9995,1101.999,48.999,1053,709.935915418075,1053,0.182333206933611,753,779,1,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0
"thirtyminutes0025#2020-11-01 12:30:00,2020-11-01 12:59:59","thirtyminutes0025","2020-11-01 12:30:00","2020-11-01 12:59:59",0,0,NA,NA,0,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0,1,1,32,32,32,32,NA,32,0,769,769,1
"thirtyminutes0026#2020-03-06 13:00:00,2020-03-06 13:29:59","thirtyminutes0026","2020-03-06 13:00:00","2020-03-06 13:29:59",0,0,NA,NA,0,1,1,613,613,613,613,NA,613,0,780,780,1,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0
"thirtyminutes0026#2020-10-30 13:00:00,2020-10-30 13:29:59","thirtyminutes0026","2020-10-30 13:00:00","2020-10-30 13:29:59",0,0,NA,NA,0,1,1,613,613,613,613,NA,613,0,780,780,1,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0
"thirtyminutes0028#2020-03-06 14:00:00,2020-03-06 14:29:59","thirtyminutes0028","2020-03-06 14:00:00","2020-03-06 14:29:59",0,0,NA,NA,0,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0,1,1,26.999,26.999,26.999,26.999,NA,26.999,0,869,869,1
"thirtyminutes0028#2020-10-30 14:00:00,2020-10-30 14:29:59","thirtyminutes0028","2020-10-30 14:00:00","2020-10-30 14:29:59",0,0,NA,NA,0,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0,1,1,26.999,26.999,26.999,26.999,NA,26.999,0,869,869,1
"thirtyminutes0029#2020-03-06 14:30:00,2020-03-06 14:59:59","thirtyminutes0029","2020-03-06 14:30:00","2020-03-06 14:59:59",1,1,874,874,1,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0,1,1,1262,1262,1262,1262,NA,1262,0,870,870,1
"thirtyminutes0029#2020-10-30 14:30:00,2020-10-30 14:59:59","thirtyminutes0029","2020-10-30 14:30:00","2020-10-30 14:59:59",1,1,874,874,1,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0,1,1,1262,1262,1262,1262,NA,1262,0,870,870,1
"thirtyminutes0030#2020-03-06 15:00:00,2020-03-06 15:29:59","thirtyminutes0030","2020-03-06 15:00:00","2020-03-06 15:29:59",0,0,NA,NA,0,1,1,213,213,213,213,NA,213,0,921,921,1,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0
"thirtyminutes0030#2020-10-30 15:00:00,2020-10-30 15:29:59","thirtyminutes0030","2020-10-30 15:00:00","2020-10-30 15:29:59",0,0,NA,NA,0,1,1,213,213,213,213,NA,213,0,921,921,1,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0
"thirtyminutes0017#2020-11-01 08:30:00,2020-11-01 08:59:59","thirtyminutes0017","2020-11-01 08:30:00","2020-11-01 08:59:59",1,1,528,528,1,0,0,0,0,0,0,NA,0,NA,NA,NA,0,0,0,0,0,0,0,NA,0,NA,NA,NA,0
"thirtyminutes0018#2020-03-09 09:00:00,2020-03-09 09:29:59","thirtyminutes0018","2020-03-09 09:00:00","2020-03-09 09:29:59",1,1,541,541,1,0,0,0,0,0,0,NA,0,NA,NA,NA,0,1,1,709.999,709.999,709.999,709.999,NA,709.999,0,558,558,1
"thirtyminutes0018#2020-11-02 09:00:00,2020-11-02 09:29:59","thirtyminutes0018","2020-11-02 09:00:00","2020-11-02 09:29:59",1,1,541,541,1,0,0,0,0,0,0,NA,0,NA,NA,NA,0,1,1,709.999,709.999,709.999,709.999,NA,709.999,0,558,558,1
"thirtyminutes0019#2020-03-06 09:30:00,2020-03-06 09:59:59","thirtyminutes0019","2020-03-06 09:30:00","2020-03-06 09:59:59",1,1,589,589,1,0,0,0,0,0,0,NA,0,NA,NA,NA,0,0,0,0,0,0,0,NA,0,NA,NA,NA,0
"thirtyminutes0019#2020-03-07 09:30:00,2020-03-07 09:59:59","thirtyminutes0019","2020-03-07 09:30:00","2020-03-07 09:59:59",1,1,589,589,1,0,0,0,0,0,0,NA,0,NA,NA,NA,0,0,0,0,0,0,0,NA,0,NA,NA,NA,0
"thirtyminutes0019#2020-03-09 09:30:00,2020-03-09 09:59:59","thirtyminutes0019","2020-03-09 09:30:00","2020-03-09 09:59:59",0,0,NA,NA,0,0,0,0,0,0,0,NA,0,NA,NA,NA,0,1,1,394,394,394,394,NA,394,0,570,570,1
"thirtyminutes0019#2020-10-30 09:30:00,2020-10-30 09:59:59","thirtyminutes0019","2020-10-30 09:30:00","2020-10-30 09:59:59",1,1,589,589,1,0,0,0,0,0,0,NA,0,NA,NA,NA,0,0,0,0,0,0,0,NA,0,NA,NA,NA,0
"thirtyminutes0019#2020-10-31 09:30:00,2020-10-31 09:59:59","thirtyminutes0019","2020-10-31 09:30:00","2020-10-31 09:59:59",1,1,589,589,1,0,0,0,0,0,0,NA,0,NA,NA,NA,0,0,0,0,0,0,0,NA,0,NA,NA,NA,0
"thirtyminutes0019#2020-11-02 09:30:00,2020-11-02 09:59:59","thirtyminutes0019","2020-11-02 09:30:00","2020-11-02 09:59:59",0,0,NA,NA,0,0,0,0,0,0,0,NA,0,NA,NA,NA,0,1,1,394,394,394,394,NA,394,0,570,570,1
"thirtyminutes0020#2020-03-06 10:00:00,2020-03-06 10:29:59","thirtyminutes0020","2020-03-06 10:00:00","2020-03-06 10:29:59",0,0,NA,NA,0,1,1,1299,1299,1299,1299,NA,1299,0,600,600,1,0,0,0,0,0,0,NA,0,NA,NA,NA,0
"thirtyminutes0020#2020-03-07 10:00:00,2020-03-07 10:29:59","thirtyminutes0020","2020-03-07 10:00:00","2020-03-07 10:29:59",0,0,NA,NA,0,1,1,1299,1299,1299,1299,NA,1299,0,600,600,1,0,0,0,0,0,0,NA,0,NA,NA,NA,0
"thirtyminutes0020#2020-10-30 10:00:00,2020-10-30 10:29:59","thirtyminutes0020","2020-10-30 10:00:00","2020-10-30 10:29:59",0,0,NA,NA,0,1,1,1299,1299,1299,1299,NA,1299,0,600,600,1,0,0,0,0,0,0,NA,0,NA,NA,NA,0
"thirtyminutes0020#2020-10-31 10:00:00,2020-10-31 10:29:59","thirtyminutes0020","2020-10-31 10:00:00","2020-10-31 10:29:59",0,0,NA,NA,0,1,1,1299,1299,1299,1299,NA,1299,0,600,600,1,0,0,0,0,0,0,NA,0,NA,NA,NA,0
"thirtyminutes0022#2020-03-06 11:00:00,2020-03-06 11:29:59","thirtyminutes0022","2020-03-06 11:00:00","2020-03-06 11:29:59",0,0,NA,NA,0,0,0,0,0,0,0,NA,0,NA,NA,NA,0,1,1,129.999,129.999,129.999,129.999,NA,129.999,0,687,687,1
"thirtyminutes0022#2020-03-07 11:00:00,2020-03-07 11:29:59","thirtyminutes0022","2020-03-07 11:00:00","2020-03-07 11:29:59",0,0,NA,NA,0,0,0,0,0,0,0,NA,0,NA,NA,NA,0,1,1,129.999,129.999,129.999,129.999,NA,129.999,0,687,687,1
"thirtyminutes0022#2020-10-30 11:00:00,2020-10-30 11:29:59","thirtyminutes0022","2020-10-30 11:00:00","2020-10-30 11:29:59",0,0,NA,NA,0,0,0,0,0,0,0,NA,0,NA,NA,NA,0,1,1,129.999,129.999,129.999,129.999,NA,129.999,0,687,687,1
"thirtyminutes0022#2020-10-31 11:00:00,2020-10-31 11:29:59","thirtyminutes0022","2020-10-31 11:00:00","2020-10-31 11:29:59",0,0,NA,NA,0,0,0,0,0,0,0,NA,0,NA,NA,NA,0,1,1,129.999,129.999,129.999,129.999,NA,129.999,0,687,687,1
"thirtyminutes0023#2020-03-06 11:30:00,2020-03-06 11:59:59","thirtyminutes0023","2020-03-06 11:30:00","2020-03-06 11:59:59",0,0,NA,NA,0,0,0,0,0,0,0,NA,0,NA,NA,NA,0,1,1,629,629,629,629,NA,629,0,690,690,1
"thirtyminutes0023#2020-03-07 11:30:00,2020-03-07 11:59:59","thirtyminutes0023","2020-03-07 11:30:00","2020-03-07 11:59:59",0,0,NA,NA,0,0,0,0,0,0,0,NA,0,NA,NA,NA,0,1,1,629,629,629,629,NA,629,0,690,690,1
"thirtyminutes0023#2020-03-09 11:30:00,2020-03-09 11:59:59","thirtyminutes0023","2020-03-09 11:30:00","2020-03-09 11:59:59",0,0,NA,NA,0,1,1,623,623,623,623,NA,623,0,692,692,1,0,0,0,0,0,0,NA,0,NA,NA,NA,0
"thirtyminutes0023#2020-10-30 11:30:00,2020-10-30 11:59:59","thirtyminutes0023","2020-10-30 11:30:00","2020-10-30 11:59:59",0,0,NA,NA,0,0,0,0,0,0,0,NA,0,NA,NA,NA,0,1,1,629,629,629,629,NA,629,0,690,690,1
"thirtyminutes0023#2020-10-31 11:30:00,2020-10-31 11:59:59","thirtyminutes0023","2020-10-31 11:30:00","2020-10-31 11:59:59",0,0,NA,NA,0,0,0,0,0,0,0,NA,0,NA,NA,NA,0,1,1,629,629,629,629,NA,629,0,690,690,1
"thirtyminutes0023#2020-11-02 11:30:00,2020-11-02 11:59:59","thirtyminutes0023","2020-11-02 11:30:00","2020-11-02 11:59:59",0,0,NA,NA,0,1,1,623,623,623,623,NA,623,0,692,692,1,0,0,0,0,0,0,NA,0,NA,NA,NA,0
"thirtyminutes0024#2020-03-08 12:00:00,2020-03-08 12:29:59","thirtyminutes0024","2020-03-08 12:00:00","2020-03-08 12:29:59",0,0,NA,NA,0,1,1,1023,1023,1023,1023,NA,1023,0,724,724,1,0,0,0,0,0,0,NA,0,NA,NA,NA,0
"thirtyminutes0024#2020-11-01 12:00:00,2020-11-01 12:29:59","thirtyminutes0024","2020-11-01 12:00:00","2020-11-01 12:29:59",0,0,NA,NA,0,1,1,1023,1023,1023,1023,NA,1023,0,724,724,1,0,0,0,0,0,0,NA,0,NA,NA,NA,0
"thirtyminutes0025#2020-03-06 12:30:00,2020-03-06 12:59:59","thirtyminutes0025","2020-03-06 12:30:00","2020-03-06 12:59:59",0,0,NA,NA,0,2,2,550.9995,1101.999,48.999,1053,709.935915418075,1053,0.182333206933611,753,779,1,0,0,0,0,0,0,NA,0,NA,NA,NA,0
"thirtyminutes0025#2020-03-08 12:30:00,2020-03-08 12:59:59","thirtyminutes0025","2020-03-08 12:30:00","2020-03-08 12:59:59",0,0,NA,NA,0,0,0,0,0,0,0,NA,0,NA,NA,NA,0,1,1,32,32,32,32,NA,32,0,769,769,1
"thirtyminutes0025#2020-10-30 12:30:00,2020-10-30 12:59:59","thirtyminutes0025","2020-10-30 12:30:00","2020-10-30 12:59:59",0,0,NA,NA,0,2,2,550.9995,1101.999,48.999,1053,709.935915418075,1053,0.182333206933611,753,779,1,0,0,0,0,0,0,NA,0,NA,NA,NA,0
"thirtyminutes0025#2020-11-01 12:30:00,2020-11-01 12:59:59","thirtyminutes0025","2020-11-01 12:30:00","2020-11-01 12:59:59",0,0,NA,NA,0,0,0,0,0,0,0,NA,0,NA,NA,NA,0,1,1,32,32,32,32,NA,32,0,769,769,1
"thirtyminutes0026#2020-03-06 13:00:00,2020-03-06 13:29:59","thirtyminutes0026","2020-03-06 13:00:00","2020-03-06 13:29:59",0,0,NA,NA,0,1,1,613,613,613,613,NA,613,0,780,780,1,0,0,0,0,0,0,NA,0,NA,NA,NA,0
"thirtyminutes0026#2020-10-30 13:00:00,2020-10-30 13:29:59","thirtyminutes0026","2020-10-30 13:00:00","2020-10-30 13:29:59",0,0,NA,NA,0,1,1,613,613,613,613,NA,613,0,780,780,1,0,0,0,0,0,0,NA,0,NA,NA,NA,0
"thirtyminutes0028#2020-03-06 14:00:00,2020-03-06 14:29:59","thirtyminutes0028","2020-03-06 14:00:00","2020-03-06 14:29:59",0,0,NA,NA,0,0,0,0,0,0,0,NA,0,NA,NA,NA,0,1,1,26.999,26.999,26.999,26.999,NA,26.999,0,869,869,1
"thirtyminutes0028#2020-10-30 14:00:00,2020-10-30 14:29:59","thirtyminutes0028","2020-10-30 14:00:00","2020-10-30 14:29:59",0,0,NA,NA,0,0,0,0,0,0,0,NA,0,NA,NA,NA,0,1,1,26.999,26.999,26.999,26.999,NA,26.999,0,869,869,1
"thirtyminutes0029#2020-03-06 14:30:00,2020-03-06 14:59:59","thirtyminutes0029","2020-03-06 14:30:00","2020-03-06 14:59:59",1,1,874,874,1,0,0,0,0,0,0,NA,0,NA,NA,NA,0,1,1,1262,1262,1262,1262,NA,1262,0,870,870,1
"thirtyminutes0029#2020-10-30 14:30:00,2020-10-30 14:59:59","thirtyminutes0029","2020-10-30 14:30:00","2020-10-30 14:59:59",1,1,874,874,1,0,0,0,0,0,0,NA,0,NA,NA,NA,0,1,1,1262,1262,1262,1262,NA,1262,0,870,870,1
"thirtyminutes0030#2020-03-06 15:00:00,2020-03-06 15:29:59","thirtyminutes0030","2020-03-06 15:00:00","2020-03-06 15:29:59",0,0,NA,NA,0,1,1,213,213,213,213,NA,213,0,921,921,1,0,0,0,0,0,0,NA,0,NA,NA,NA,0
"thirtyminutes0030#2020-10-30 15:00:00,2020-10-30 15:29:59","thirtyminutes0030","2020-10-30 15:00:00","2020-10-30 15:29:59",0,0,NA,NA,0,1,1,213,213,213,213,NA,213,0,921,921,1,0,0,0,0,0,0,NA,0,NA,NA,NA,0
"thirtyminutes0032#2020-03-07 16:00:00,2020-03-07 16:29:59","thirtyminutes0032","2020-03-07 16:00:00","2020-03-07 16:29:59",1,1,987,987,1,1,1,557,557,557,557,NA,557,0,964,964,1,1,1,801.999,801.999,801.999,801.999,NA,801.999,0,976,976,1
"thirtyminutes0032#2020-10-31 16:00:00,2020-10-31 16:29:59","thirtyminutes0032","2020-10-31 16:00:00","2020-10-31 16:29:59",1,1,987,987,1,1,1,557,557,557,557,NA,557,0,964,964,1,1,1,801.999,801.999,801.999,801.999,NA,801.999,0,976,976,1
"thirtyminutes0033#2020-03-07 16:30:00,2020-03-07 16:59:59","thirtyminutes0033","2020-03-07 16:30:00","2020-03-07 16:59:59",0,0,NA,NA,0,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0,1,1,619,619,619,619,NA,619,0,990,990,1
"thirtyminutes0033#2020-03-09 16:30:00,2020-03-09 16:59:59","thirtyminutes0033","2020-03-09 16:30:00","2020-03-09 16:59:59",1,1,1008,1008,1,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0
"thirtyminutes0033#2020-10-31 16:30:00,2020-10-31 16:59:59","thirtyminutes0033","2020-10-31 16:30:00","2020-10-31 16:59:59",0,0,NA,NA,0,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0,1,1,619,619,619,619,NA,619,0,990,990,1
"thirtyminutes0033#2020-11-02 16:30:00,2020-11-02 16:59:59","thirtyminutes0033","2020-11-02 16:30:00","2020-11-02 16:59:59",1,1,1008,1008,1,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0
"thirtyminutes0034#2020-03-07 17:00:00,2020-03-07 17:29:59","thirtyminutes0034","2020-03-07 17:00:00","2020-03-07 17:29:59",0,0,NA,NA,0,1,1,940.999,940.999,940.999,940.999,NA,940.999,0,1034,1034,1,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0
"thirtyminutes0034#2020-10-31 17:00:00,2020-10-31 17:29:59","thirtyminutes0034","2020-10-31 17:00:00","2020-10-31 17:29:59",0,0,NA,NA,0,1,1,940.999,940.999,940.999,940.999,NA,940.999,0,1034,1034,1,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0
"thirtyminutes0035#2020-03-06 17:30:00,2020-03-06 17:59:59","thirtyminutes0035","2020-03-06 17:30:00","2020-03-06 17:59:59",0,0,NA,NA,0,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0,1,1,1186,1186,1186,1186,NA,1186,0,1051,1051,1
"thirtyminutes0035#2020-03-07 17:30:00,2020-03-07 17:59:59","thirtyminutes0035","2020-03-07 17:30:00","2020-03-07 17:59:59",0,0,NA,NA,0,1,1,778,778,778,778,NA,778,0,1050,1050,1,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0
"thirtyminutes0035#2020-03-09 17:30:00,2020-03-09 17:59:59","thirtyminutes0035","2020-03-09 17:30:00","2020-03-09 17:59:59",0,0,NA,NA,0,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0,1,1,32,32,32,32,NA,32,0,1075,1075,0
"thirtyminutes0035#2020-10-30 17:30:00,2020-10-30 17:59:59","thirtyminutes0035","2020-10-30 17:30:00","2020-10-30 17:59:59",0,0,NA,NA,0,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0,1,1,1186,1186,1186,1186,NA,1186,0,1051,1051,1
"thirtyminutes0035#2020-10-31 17:30:00,2020-10-31 17:59:59","thirtyminutes0035","2020-10-31 17:30:00","2020-10-31 17:59:59",0,0,NA,NA,0,1,1,778,778,778,778,NA,778,0,1050,1050,1,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0
"thirtyminutes0035#2020-11-02 17:30:00,2020-11-02 17:59:59","thirtyminutes0035","2020-11-02 17:30:00","2020-11-02 17:59:59",0,0,NA,NA,0,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0,1,1,32,32,32,32,NA,32,0,1075,1075,0
"thirtyminutes0036#2020-03-07 18:00:00,2020-03-07 18:29:59","thirtyminutes0036","2020-03-07 18:00:00","2020-03-07 18:29:59",0,0,NA,NA,0,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0,1,1,762.999,762.999,762.999,762.999,NA,762.999,0,1097,1097,1
"thirtyminutes0036#2020-03-08 18:00:00,2020-03-08 18:29:59","thirtyminutes0036","2020-03-08 18:00:00","2020-03-08 18:29:59",1,1,1101,1101,1,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0
"thirtyminutes0036#2020-10-31 18:00:00,2020-10-31 18:29:59","thirtyminutes0036","2020-10-31 18:00:00","2020-10-31 18:29:59",0,0,NA,NA,0,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0,1,1,762.999,762.999,762.999,762.999,NA,762.999,0,1097,1097,1
"thirtyminutes0036#2020-11-01 18:00:00,2020-11-01 18:29:59","thirtyminutes0036","2020-11-01 18:00:00","2020-11-01 18:29:59",1,1,1101,1101,1,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0
"thirtyminutes0037#2020-03-07 18:30:00,2020-03-07 18:59:59","thirtyminutes0037","2020-03-07 18:30:00","2020-03-07 18:59:59",0,0,NA,NA,0,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0,1,1,780,780,780,780,NA,780,0,1110,1110,1
"thirtyminutes0037#2020-10-31 18:30:00,2020-10-31 18:59:59","thirtyminutes0037","2020-10-31 18:30:00","2020-10-31 18:59:59",0,0,NA,NA,0,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0,1,1,780,780,780,780,NA,780,0,1110,1110,1
"thirtyminutes0033#2020-03-07 16:30:00,2020-03-07 16:59:59","thirtyminutes0033","2020-03-07 16:30:00","2020-03-07 16:59:59",0,0,NA,NA,0,0,0,0,0,0,0,NA,0,NA,NA,NA,0,1,1,619,619,619,619,NA,619,0,990,990,1
"thirtyminutes0033#2020-03-09 16:30:00,2020-03-09 16:59:59","thirtyminutes0033","2020-03-09 16:30:00","2020-03-09 16:59:59",1,1,1008,1008,1,0,0,0,0,0,0,NA,0,NA,NA,NA,0,0,0,0,0,0,0,NA,0,NA,NA,NA,0
"thirtyminutes0033#2020-10-31 16:30:00,2020-10-31 16:59:59","thirtyminutes0033","2020-10-31 16:30:00","2020-10-31 16:59:59",0,0,NA,NA,0,0,0,0,0,0,0,NA,0,NA,NA,NA,0,1,1,619,619,619,619,NA,619,0,990,990,1
"thirtyminutes0033#2020-11-02 16:30:00,2020-11-02 16:59:59","thirtyminutes0033","2020-11-02 16:30:00","2020-11-02 16:59:59",1,1,1008,1008,1,0,0,0,0,0,0,NA,0,NA,NA,NA,0,0,0,0,0,0,0,NA,0,NA,NA,NA,0
"thirtyminutes0034#2020-03-07 17:00:00,2020-03-07 17:29:59","thirtyminutes0034","2020-03-07 17:00:00","2020-03-07 17:29:59",0,0,NA,NA,0,1,1,940.999,940.999,940.999,940.999,NA,940.999,0,1034,1034,1,0,0,0,0,0,0,NA,0,NA,NA,NA,0
"thirtyminutes0034#2020-10-31 17:00:00,2020-10-31 17:29:59","thirtyminutes0034","2020-10-31 17:00:00","2020-10-31 17:29:59",0,0,NA,NA,0,1,1,940.999,940.999,940.999,940.999,NA,940.999,0,1034,1034,1,0,0,0,0,0,0,NA,0,NA,NA,NA,0
"thirtyminutes0035#2020-03-06 17:30:00,2020-03-06 17:59:59","thirtyminutes0035","2020-03-06 17:30:00","2020-03-06 17:59:59",0,0,NA,NA,0,0,0,0,0,0,0,NA,0,NA,NA,NA,0,1,1,1186,1186,1186,1186,NA,1186,0,1051,1051,1
"thirtyminutes0035#2020-03-07 17:30:00,2020-03-07 17:59:59","thirtyminutes0035","2020-03-07 17:30:00","2020-03-07 17:59:59",0,0,NA,NA,0,1,1,778,778,778,778,NA,778,0,1050,1050,1,0,0,0,0,0,0,NA,0,NA,NA,NA,0
"thirtyminutes0035#2020-03-09 17:30:00,2020-03-09 17:59:59","thirtyminutes0035","2020-03-09 17:30:00","2020-03-09 17:59:59",0,0,NA,NA,0,0,0,0,0,0,0,NA,0,NA,NA,NA,0,1,1,32,32,32,32,NA,32,0,1075,1075,0
"thirtyminutes0035#2020-10-30 17:30:00,2020-10-30 17:59:59","thirtyminutes0035","2020-10-30 17:30:00","2020-10-30 17:59:59",0,0,NA,NA,0,0,0,0,0,0,0,NA,0,NA,NA,NA,0,1,1,1186,1186,1186,1186,NA,1186,0,1051,1051,1
"thirtyminutes0035#2020-10-31 17:30:00,2020-10-31 17:59:59","thirtyminutes0035","2020-10-31 17:30:00","2020-10-31 17:59:59",0,0,NA,NA,0,1,1,778,778,778,778,NA,778,0,1050,1050,1,0,0,0,0,0,0,NA,0,NA,NA,NA,0
"thirtyminutes0035#2020-11-02 17:30:00,2020-11-02 17:59:59","thirtyminutes0035","2020-11-02 17:30:00","2020-11-02 17:59:59",0,0,NA,NA,0,0,0,0,0,0,0,NA,0,NA,NA,NA,0,1,1,32,32,32,32,NA,32,0,1075,1075,0
"thirtyminutes0036#2020-03-07 18:00:00,2020-03-07 18:29:59","thirtyminutes0036","2020-03-07 18:00:00","2020-03-07 18:29:59",0,0,NA,NA,0,0,0,0,0,0,0,NA,0,NA,NA,NA,0,1,1,762.999,762.999,762.999,762.999,NA,762.999,0,1097,1097,1
"thirtyminutes0036#2020-03-08 18:00:00,2020-03-08 18:29:59","thirtyminutes0036","2020-03-08 18:00:00","2020-03-08 18:29:59",1,1,1101,1101,1,0,0,0,0,0,0,NA,0,NA,NA,NA,0,0,0,0,0,0,0,NA,0,NA,NA,NA,0
"thirtyminutes0036#2020-10-31 18:00:00,2020-10-31 18:29:59","thirtyminutes0036","2020-10-31 18:00:00","2020-10-31 18:29:59",0,0,NA,NA,0,0,0,0,0,0,0,NA,0,NA,NA,NA,0,1,1,762.999,762.999,762.999,762.999,NA,762.999,0,1097,1097,1
"thirtyminutes0036#2020-11-01 18:00:00,2020-11-01 18:29:59","thirtyminutes0036","2020-11-01 18:00:00","2020-11-01 18:29:59",1,1,1101,1101,1,0,0,0,0,0,0,NA,0,NA,NA,NA,0,0,0,0,0,0,0,NA,0,NA,NA,NA,0
"thirtyminutes0037#2020-03-07 18:30:00,2020-03-07 18:59:59","thirtyminutes0037","2020-03-07 18:30:00","2020-03-07 18:59:59",0,0,NA,NA,0,0,0,0,0,0,0,NA,0,NA,NA,NA,0,1,1,780,780,780,780,NA,780,0,1110,1110,1
"thirtyminutes0037#2020-10-31 18:30:00,2020-10-31 18:59:59","thirtyminutes0037","2020-10-31 18:30:00","2020-10-31 18:59:59",0,0,NA,NA,0,0,0,0,0,0,0,NA,0,NA,NA,NA,0,1,1,780,780,780,780,NA,780,0,1110,1110,1
"thirtyminutes0038#2020-03-06 19:00:00,2020-03-06 19:29:59","thirtyminutes0038","2020-03-06 19:00:00","2020-03-06 19:29:59",1,1,1167,1167,1,1,1,1157,1157,1157,1157,NA,1157,0,1144,1144,1,1,1,801.999,801.999,801.999,801.999,NA,801.999,0,1156,1156,1
"thirtyminutes0038#2020-03-07 19:00:00,2020-03-07 19:29:59","thirtyminutes0038","2020-03-07 19:00:00","2020-03-07 19:29:59",0,0,NA,NA,0,1,1,1093.999,1093.999,1093.999,1093.999,NA,1093.999,0,1151,1151,0,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0
"thirtyminutes0038#2020-03-09 19:00:00,2020-03-09 19:29:59","thirtyminutes0038","2020-03-09 19:00:00","2020-03-09 19:29:59",0,0,NA,NA,0,1,1,229.999,229.999,229.999,229.999,NA,229.999,0,1166,1166,0,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0
"thirtyminutes0038#2020-03-07 19:00:00,2020-03-07 19:29:59","thirtyminutes0038","2020-03-07 19:00:00","2020-03-07 19:29:59",0,0,NA,NA,0,1,1,1093.999,1093.999,1093.999,1093.999,NA,1093.999,0,1151,1151,0,0,0,0,0,0,0,NA,0,NA,NA,NA,0
"thirtyminutes0038#2020-03-09 19:00:00,2020-03-09 19:29:59","thirtyminutes0038","2020-03-09 19:00:00","2020-03-09 19:29:59",0,0,NA,NA,0,1,1,229.999,229.999,229.999,229.999,NA,229.999,0,1166,1166,0,0,0,0,0,0,0,NA,0,NA,NA,NA,0
"thirtyminutes0038#2020-10-30 19:00:00,2020-10-30 19:29:59","thirtyminutes0038","2020-10-30 19:00:00","2020-10-30 19:29:59",1,1,1167,1167,1,1,1,1157,1157,1157,1157,NA,1157,0,1144,1144,1,1,1,801.999,801.999,801.999,801.999,NA,801.999,0,1156,1156,1
"thirtyminutes0038#2020-10-31 19:00:00,2020-10-31 19:29:59","thirtyminutes0038","2020-10-31 19:00:00","2020-10-31 19:29:59",0,0,NA,NA,0,1,1,1093.999,1093.999,1093.999,1093.999,NA,1093.999,0,1151,1151,0,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0
"thirtyminutes0038#2020-11-02 19:00:00,2020-11-02 19:29:59","thirtyminutes0038","2020-11-02 19:00:00","2020-11-02 19:29:59",0,0,NA,NA,0,1,1,229.999,229.999,229.999,229.999,NA,229.999,0,1166,1166,0,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0
"thirtyminutes0039#2020-03-06 19:30:00,2020-03-06 19:59:59","thirtyminutes0039","2020-03-06 19:30:00","2020-03-06 19:59:59",0,0,NA,NA,0,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0,1,1,619,619,619,619,NA,619,0,1170,1170,1
"thirtyminutes0039#2020-03-07 19:30:00,2020-03-07 19:59:59","thirtyminutes0039","2020-03-07 19:30:00","2020-03-07 19:59:59",0,0,NA,NA,0,1,1,130,130,130,130,NA,130,0,1170,1170,0,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0
"thirtyminutes0039#2020-03-08 19:30:00,2020-03-08 19:59:59","thirtyminutes0039","2020-03-08 19:30:00","2020-03-08 19:59:59",0,0,NA,NA,0,1,1,128,128,128,128,NA,128,0,1177,1177,1,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0
"thirtyminutes0039#2020-03-09 19:30:00,2020-03-09 19:59:59","thirtyminutes0039","2020-03-09 19:30:00","2020-03-09 19:59:59",0,0,NA,NA,0,1,1,262,262,262,262,NA,262,0,1170,1170,0,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0
"thirtyminutes0039#2020-10-30 19:30:00,2020-10-30 19:59:59","thirtyminutes0039","2020-10-30 19:30:00","2020-10-30 19:59:59",0,0,NA,NA,0,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0,1,1,619,619,619,619,NA,619,0,1170,1170,1
"thirtyminutes0039#2020-10-31 19:30:00,2020-10-31 19:59:59","thirtyminutes0039","2020-10-31 19:30:00","2020-10-31 19:59:59",0,0,NA,NA,0,1,1,130,130,130,130,NA,130,0,1170,1170,0,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0
"thirtyminutes0039#2020-11-01 19:30:00,2020-11-01 19:59:59","thirtyminutes0039","2020-11-01 19:30:00","2020-11-01 19:59:59",0,0,NA,NA,0,1,1,128,128,128,128,NA,128,0,1177,1177,1,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0
"thirtyminutes0039#2020-11-02 19:30:00,2020-11-02 19:59:59","thirtyminutes0039","2020-11-02 19:30:00","2020-11-02 19:59:59",0,0,NA,NA,0,1,1,262,262,262,262,NA,262,0,1170,1170,0,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0
"thirtyminutes0040#2020-03-06 20:00:00,2020-03-06 20:29:59","thirtyminutes0040","2020-03-06 20:00:00","2020-03-06 20:29:59",0,0,NA,NA,0,1,1,940.999,940.999,940.999,940.999,NA,940.999,0,1214,1214,1,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0
"thirtyminutes0040#2020-10-30 20:00:00,2020-10-30 20:29:59","thirtyminutes0040","2020-10-30 20:00:00","2020-10-30 20:29:59",0,0,NA,NA,0,1,1,940.999,940.999,940.999,940.999,NA,940.999,0,1214,1214,1,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0
"thirtyminutes0041#2020-03-06 20:30:00,2020-03-06 20:59:59","thirtyminutes0041","2020-03-06 20:30:00","2020-03-06 20:59:59",0,0,NA,NA,0,1,1,778,778,778,778,NA,778,0,1230,1230,1,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0
"thirtyminutes0041#2020-10-30 20:30:00,2020-10-30 20:59:59","thirtyminutes0041","2020-10-30 20:30:00","2020-10-30 20:59:59",0,0,NA,NA,0,1,1,778,778,778,778,NA,778,0,1230,1230,1,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0
"thirtyminutes0042#2020-03-06 21:00:00,2020-03-06 21:29:59","thirtyminutes0042","2020-03-06 21:00:00","2020-03-06 21:29:59",0,0,NA,NA,0,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0,1,1,762.999,762.999,762.999,762.999,NA,762.999,0,1277,1277,1
"thirtyminutes0038#2020-10-31 19:00:00,2020-10-31 19:29:59","thirtyminutes0038","2020-10-31 19:00:00","2020-10-31 19:29:59",0,0,NA,NA,0,1,1,1093.999,1093.999,1093.999,1093.999,NA,1093.999,0,1151,1151,0,0,0,0,0,0,0,NA,0,NA,NA,NA,0
"thirtyminutes0038#2020-11-02 19:00:00,2020-11-02 19:29:59","thirtyminutes0038","2020-11-02 19:00:00","2020-11-02 19:29:59",0,0,NA,NA,0,1,1,229.999,229.999,229.999,229.999,NA,229.999,0,1166,1166,0,0,0,0,0,0,0,NA,0,NA,NA,NA,0
"thirtyminutes0039#2020-03-06 19:30:00,2020-03-06 19:59:59","thirtyminutes0039","2020-03-06 19:30:00","2020-03-06 19:59:59",0,0,NA,NA,0,0,0,0,0,0,0,NA,0,NA,NA,NA,0,1,1,619,619,619,619,NA,619,0,1170,1170,1
"thirtyminutes0039#2020-03-07 19:30:00,2020-03-07 19:59:59","thirtyminutes0039","2020-03-07 19:30:00","2020-03-07 19:59:59",0,0,NA,NA,0,1,1,130,130,130,130,NA,130,0,1170,1170,0,0,0,0,0,0,0,NA,0,NA,NA,NA,0
"thirtyminutes0039#2020-03-08 19:30:00,2020-03-08 19:59:59","thirtyminutes0039","2020-03-08 19:30:00","2020-03-08 19:59:59",0,0,NA,NA,0,1,1,128,128,128,128,NA,128,0,1177,1177,1,0,0,0,0,0,0,NA,0,NA,NA,NA,0
"thirtyminutes0039#2020-03-09 19:30:00,2020-03-09 19:59:59","thirtyminutes0039","2020-03-09 19:30:00","2020-03-09 19:59:59",0,0,NA,NA,0,1,1,262,262,262,262,NA,262,0,1170,1170,0,0,0,0,0,0,0,NA,0,NA,NA,NA,0
"thirtyminutes0039#2020-10-30 19:30:00,2020-10-30 19:59:59","thirtyminutes0039","2020-10-30 19:30:00","2020-10-30 19:59:59",0,0,NA,NA,0,0,0,0,0,0,0,NA,0,NA,NA,NA,0,1,1,619,619,619,619,NA,619,0,1170,1170,1
"thirtyminutes0039#2020-10-31 19:30:00,2020-10-31 19:59:59","thirtyminutes0039","2020-10-31 19:30:00","2020-10-31 19:59:59",0,0,NA,NA,0,1,1,130,130,130,130,NA,130,0,1170,1170,0,0,0,0,0,0,0,NA,0,NA,NA,NA,0
"thirtyminutes0039#2020-11-01 19:30:00,2020-11-01 19:59:59","thirtyminutes0039","2020-11-01 19:30:00","2020-11-01 19:59:59",0,0,NA,NA,0,1,1,128,128,128,128,NA,128,0,1177,1177,1,0,0,0,0,0,0,NA,0,NA,NA,NA,0
"thirtyminutes0039#2020-11-02 19:30:00,2020-11-02 19:59:59","thirtyminutes0039","2020-11-02 19:30:00","2020-11-02 19:59:59",0,0,NA,NA,0,1,1,262,262,262,262,NA,262,0,1170,1170,0,0,0,0,0,0,0,NA,0,NA,NA,NA,0
"thirtyminutes0040#2020-03-06 20:00:00,2020-03-06 20:29:59","thirtyminutes0040","2020-03-06 20:00:00","2020-03-06 20:29:59",0,0,NA,NA,0,1,1,940.999,940.999,940.999,940.999,NA,940.999,0,1214,1214,1,0,0,0,0,0,0,NA,0,NA,NA,NA,0
"thirtyminutes0040#2020-10-30 20:00:00,2020-10-30 20:29:59","thirtyminutes0040","2020-10-30 20:00:00","2020-10-30 20:29:59",0,0,NA,NA,0,1,1,940.999,940.999,940.999,940.999,NA,940.999,0,1214,1214,1,0,0,0,0,0,0,NA,0,NA,NA,NA,0
"thirtyminutes0041#2020-03-06 20:30:00,2020-03-06 20:59:59","thirtyminutes0041","2020-03-06 20:30:00","2020-03-06 20:59:59",0,0,NA,NA,0,1,1,778,778,778,778,NA,778,0,1230,1230,1,0,0,0,0,0,0,NA,0,NA,NA,NA,0
"thirtyminutes0041#2020-10-30 20:30:00,2020-10-30 20:59:59","thirtyminutes0041","2020-10-30 20:30:00","2020-10-30 20:59:59",0,0,NA,NA,0,1,1,778,778,778,778,NA,778,0,1230,1230,1,0,0,0,0,0,0,NA,0,NA,NA,NA,0
"thirtyminutes0042#2020-03-06 21:00:00,2020-03-06 21:29:59","thirtyminutes0042","2020-03-06 21:00:00","2020-03-06 21:29:59",0,0,NA,NA,0,0,0,0,0,0,0,NA,0,NA,NA,NA,0,1,1,762.999,762.999,762.999,762.999,NA,762.999,0,1277,1277,1
"thirtyminutes0042#2020-03-07 21:00:00,2020-03-07 21:29:59","thirtyminutes0042","2020-03-07 21:00:00","2020-03-07 21:29:59",1,1,1283,1283,1,1,1,315,315,315,315,NA,315,0,1275,1275,1,1,1,232,232,232,232,NA,232,0,1282,1282,0
"thirtyminutes0042#2020-03-08 21:00:00,2020-03-08 21:29:59","thirtyminutes0042","2020-03-08 21:00:00","2020-03-08 21:29:59",0,0,NA,NA,0,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0,1,1,469.999,469.999,469.999,469.999,NA,469.999,0,1282,1282,0
"thirtyminutes0042#2020-10-30 21:00:00,2020-10-30 21:29:59","thirtyminutes0042","2020-10-30 21:00:00","2020-10-30 21:29:59",0,0,NA,NA,0,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0,1,1,762.999,762.999,762.999,762.999,NA,762.999,0,1277,1277,1
"thirtyminutes0042#2020-03-08 21:00:00,2020-03-08 21:29:59","thirtyminutes0042","2020-03-08 21:00:00","2020-03-08 21:29:59",0,0,NA,NA,0,0,0,0,0,0,0,NA,0,NA,NA,NA,0,1,1,469.999,469.999,469.999,469.999,NA,469.999,0,1282,1282,0
"thirtyminutes0042#2020-10-30 21:00:00,2020-10-30 21:29:59","thirtyminutes0042","2020-10-30 21:00:00","2020-10-30 21:29:59",0,0,NA,NA,0,0,0,0,0,0,0,NA,0,NA,NA,NA,0,1,1,762.999,762.999,762.999,762.999,NA,762.999,0,1277,1277,1
"thirtyminutes0042#2020-10-31 21:00:00,2020-10-31 21:29:59","thirtyminutes0042","2020-10-31 21:00:00","2020-10-31 21:29:59",1,1,1283,1283,1,1,1,315,315,315,315,NA,315,0,1275,1275,1,1,1,232,232,232,232,NA,232,0,1282,1282,0
"thirtyminutes0042#2020-11-01 21:00:00,2020-11-01 21:29:59","thirtyminutes0042","2020-11-01 21:00:00","2020-11-01 21:29:59",0,0,NA,NA,0,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0,1,1,469.999,469.999,469.999,469.999,NA,469.999,0,1282,1282,0
"thirtyminutes0043#2020-03-06 21:30:00,2020-03-06 21:59:59","thirtyminutes0043","2020-03-06 21:30:00","2020-03-06 21:59:59",0,0,NA,NA,0,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0,1,1,780,780,780,780,NA,780,0,1290,1290,1
"thirtyminutes0043#2020-03-08 21:30:00,2020-03-08 21:59:59","thirtyminutes0043","2020-03-08 21:30:00","2020-03-08 21:59:59",0,0,NA,NA,0,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0,1,1,102,102,102,102,NA,102,0,1290,1290,0
"thirtyminutes0043#2020-10-30 21:30:00,2020-10-30 21:59:59","thirtyminutes0043","2020-10-30 21:30:00","2020-10-30 21:59:59",0,0,NA,NA,0,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0,1,1,780,780,780,780,NA,780,0,1290,1290,1
"thirtyminutes0043#2020-11-01 21:30:00,2020-11-01 21:59:59","thirtyminutes0043","2020-11-01 21:30:00","2020-11-01 21:59:59",0,0,NA,NA,0,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0,1,1,102,102,102,102,NA,102,0,1290,1290,0
"thirtyminutes0044#2020-03-06 22:00:00,2020-03-06 22:29:59","thirtyminutes0044","2020-03-06 22:00:00","2020-03-06 22:29:59",0,0,NA,NA,0,1,1,1093.999,1093.999,1093.999,1093.999,NA,1093.999,0,1331,1331,1,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0
"thirtyminutes0044#2020-10-30 22:00:00,2020-10-30 22:29:59","thirtyminutes0044","2020-10-30 22:00:00","2020-10-30 22:29:59",0,0,NA,NA,0,1,1,1093.999,1093.999,1093.999,1093.999,NA,1093.999,0,1331,1331,1,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0
"thirtyminutes0045#2020-03-06 22:30:00,2020-03-06 22:59:59","thirtyminutes0045","2020-03-06 22:30:00","2020-03-06 22:59:59",0,0,NA,NA,0,1,1,130,130,130,130,NA,130,0,1350,1350,1,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0
"thirtyminutes0045#2020-10-30 22:30:00,2020-10-30 22:59:59","thirtyminutes0045","2020-10-30 22:30:00","2020-10-30 22:59:59",0,0,NA,NA,0,1,1,130,130,130,130,NA,130,0,1350,1350,1,0,0,NA,NA,NA,NA,NA,NA,NA,NA,NA,0
"thirtyminutes0042#2020-11-01 21:00:00,2020-11-01 21:29:59","thirtyminutes0042","2020-11-01 21:00:00","2020-11-01 21:29:59",0,0,NA,NA,0,0,0,0,0,0,0,NA,0,NA,NA,NA,0,1,1,469.999,469.999,469.999,469.999,NA,469.999,0,1282,1282,0
"thirtyminutes0043#2020-03-06 21:30:00,2020-03-06 21:59:59","thirtyminutes0043","2020-03-06 21:30:00","2020-03-06 21:59:59",0,0,NA,NA,0,0,0,0,0,0,0,NA,0,NA,NA,NA,0,1,1,780,780,780,780,NA,780,0,1290,1290,1
"thirtyminutes0043#2020-03-08 21:30:00,2020-03-08 21:59:59","thirtyminutes0043","2020-03-08 21:30:00","2020-03-08 21:59:59",0,0,NA,NA,0,0,0,0,0,0,0,NA,0,NA,NA,NA,0,1,1,102,102,102,102,NA,102,0,1290,1290,0
"thirtyminutes0043#2020-10-30 21:30:00,2020-10-30 21:59:59","thirtyminutes0043","2020-10-30 21:30:00","2020-10-30 21:59:59",0,0,NA,NA,0,0,0,0,0,0,0,NA,0,NA,NA,NA,0,1,1,780,780,780,780,NA,780,0,1290,1290,1
"thirtyminutes0043#2020-11-01 21:30:00,2020-11-01 21:59:59","thirtyminutes0043","2020-11-01 21:30:00","2020-11-01 21:59:59",0,0,NA,NA,0,0,0,0,0,0,0,NA,0,NA,NA,NA,0,1,1,102,102,102,102,NA,102,0,1290,1290,0
"thirtyminutes0044#2020-03-06 22:00:00,2020-03-06 22:29:59","thirtyminutes0044","2020-03-06 22:00:00","2020-03-06 22:29:59",0,0,NA,NA,0,1,1,1093.999,1093.999,1093.999,1093.999,NA,1093.999,0,1331,1331,1,0,0,0,0,0,0,NA,0,NA,NA,NA,0
"thirtyminutes0044#2020-10-30 22:00:00,2020-10-30 22:29:59","thirtyminutes0044","2020-10-30 22:00:00","2020-10-30 22:29:59",0,0,NA,NA,0,1,1,1093.999,1093.999,1093.999,1093.999,NA,1093.999,0,1331,1331,1,0,0,0,0,0,0,NA,0,NA,NA,NA,0
"thirtyminutes0045#2020-03-06 22:30:00,2020-03-06 22:59:59","thirtyminutes0045","2020-03-06 22:30:00","2020-03-06 22:59:59",0,0,NA,NA,0,1,1,130,130,130,130,NA,130,0,1350,1350,1,0,0,0,0,0,0,NA,0,NA,NA,NA,0
"thirtyminutes0045#2020-10-30 22:30:00,2020-10-30 22:59:59","thirtyminutes0045","2020-10-30 22:30:00","2020-10-30 22:59:59",0,0,NA,NA,0,1,1,130,130,130,130,NA,130,0,1350,1350,1,0,0,0,0,0,0,NA,0,NA,NA,NA,0

110
tests/data/processed/features/mtz_frequency/android/phone_conversation.csv

@ -1,55 +1,55 @@
"local_segment","local_segment_label","local_segment_start_datetime","local_segment_end_datetime","phone_conversation_rapids_voicemaxenergy","phone_conversation_rapids_voiceexpectedfraction","phone_conversation_rapids_noisesdenergy","phone_conversation_rapids_silenceexpectedfraction","phone_conversation_rapids_noiseexpectedfraction","phone_conversation_rapids_unknownsensedfraction","phone_conversation_rapids_voiceminenergy","phone_conversation_rapids_noisesumenergy","phone_conversation_rapids_timefirstconversation","phone_conversation_rapids_minutessilence","phone_conversation_rapids_voicesumenergy","phone_conversation_rapids_voicesensedfraction","phone_conversation_rapids_minutesunknown","phone_conversation_rapids_noiseminenergy","phone_conversation_rapids_unknownexpectedfraction","phone_conversation_rapids_countconversation","phone_conversation_rapids_noisemaxenergy","phone_conversation_rapids_noiseavgenergy","phone_conversation_rapids_minutesvoice","phone_conversation_rapids_silencesensedfraction","phone_conversation_rapids_timelastconversation","phone_conversation_rapids_voiceavgenergy","phone_conversation_rapids_noisesensedfraction","phone_conversation_rapids_avgconversationduration","phone_conversation_rapids_minconversationduration","phone_conversation_rapids_voicesdenergy","phone_conversation_rapids_minutesnoise","phone_conversation_rapids_maxconversationduration","phone_conversation_rapids_sdconversationduration","phone_conversation_rapids_sumconversationduration"
"thirtyminutes0002#2020-03-06 01:00:00,2020-03-06 01:29:59","thirtyminutes0002","2020-03-06 01:00:00","2020-03-06 01:29:59",4981,0.0244444580246989,3611.99537094887,0.00666667037037243,0.0911111617284232,0.0677966101694915,61,254984,73,0.05,29248,0.186440677966102,0.0666666666666667,559,0.00888889382716324,1,11769,6219.12195121951,0.183333333333333,0.0508474576271186,73,2658.90909090909,0.694915254237288,0.718016664187113,0.718016664187113,1686.32716010538,0.683333333333333,0.718016664187113,NA,0.718016664187113
"thirtyminutes0002#2020-03-07 01:00:00,2020-03-07 01:29:59","thirtyminutes0002","2020-03-07 01:00:00","2020-03-07 01:29:59",4981,0.0244444580246989,3611.99537094887,0.00666667037037243,0.0911111617284232,0.0677966101694915,61,254984,73,0.05,29248,0.186440677966102,0.0666666666666667,559,0.00888889382716324,1,11769,6219.12195121951,0.183333333333333,0.0508474576271186,73,2658.90909090909,0.694915254237288,1666.66666666667,1666.66666666667,1686.32716010538,0.683333333333333,1666.66666666667,NA,1666.66666666667
"thirtyminutes0002#2020-03-09 01:00:00,2020-03-09 01:29:59","thirtyminutes0002","2020-03-09 01:00:00","2020-03-09 01:29:59",5859,0.0800000444444691,3538.5841001422,0.0177777876543265,0.27555570864206,0.0614525139664804,69,738382,77,0.133333333333333,116954,0.201117318435754,0.183333333333333,267,0.0244444580246989,1,11967,5954.6935483871,0.6,0.0446927374301676,77,3248.72222222222,0.692737430167598,2.28333333333333,2.28333333333333,1789.91462862835,2.06666666666667,2.28333333333333,NA,2.28333333333333
"thirtyminutes0002#2020-10-30 01:00:00,2020-10-30 01:29:59","thirtyminutes0002","2020-10-30 01:00:00","2020-10-30 01:29:59",4981,0.0244444580246989,3611.99537094887,0.00666667037037243,0.0911111617284232,0.0677966101694915,61,254984,73,0.05,29248,0.186440677966102,0.0666666666666667,559,0.00888889382716324,1,11769,6219.12195121951,0.183333333333333,0.0508474576271186,73,2658.90909090909,0.694915254237288,0.718016664187113,0.718016664187113,1686.32716010538,0.683333333333333,0.718016664187113,NA,0.718016664187113
"thirtyminutes0002#2020-10-31 01:00:00,2020-10-31 01:29:59","thirtyminutes0002","2020-10-31 01:00:00","2020-10-31 01:29:59",4981,0.0244444580246989,3611.99537094887,0.00666667037037243,0.0911111617284232,0.0677966101694915,61,254984,73,0.05,29248,0.186440677966102,0.0666666666666667,559,0.00888889382716324,1,11769,6219.12195121951,0.183333333333333,0.0508474576271186,73,2658.90909090909,0.694915254237288,1666.66666666667,1666.66666666667,1686.32716010538,0.683333333333333,1666.66666666667,NA,1666.66666666667
"thirtyminutes0002#2020-11-02 01:00:00,2020-11-02 01:29:59","thirtyminutes0002","2020-11-02 01:00:00","2020-11-02 01:29:59",5859,0.0800000444444691,3538.5841001422,0.0177777876543265,0.27555570864206,0.0614525139664804,69,738382,77,0.133333333333333,116954,0.201117318435754,0.183333333333333,267,0.0244444580246989,1,11967,5954.6935483871,0.6,0.0446927374301676,77,3248.72222222222,0.692737430167598,2.28333333333333,2.28333333333333,1789.91462862835,2.06666666666667,2.28333333333333,NA,2.28333333333333
"thirtyminutes0006#2020-03-08 03:00:00,2020-03-08 03:29:59","thirtyminutes0006","2020-03-08 03:00:00","2020-03-08 03:29:59",5755,0.0711111506173059,3780.64082011366,0.0244444580246989,0.277777932098851,0.0666666666666667,241,761172,NA,0.183333333333333,102083,0.177777777777778,0.2,32,0.0266666814814897,NA,11986,6089.376,0.533333333333333,0.0611111111111111,NA,3190.09375,0.694444444444445,NA,NA,1794.397668001,2.08333333333333,0,NA,0
"thirtyminutes0006#2020-11-01 03:00:00,2020-11-01 03:29:59","thirtyminutes0006","2020-11-01 03:00:00","2020-11-01 03:29:59",5755,0.0711111506173059,3780.64082011366,0.0244444580246989,0.277777932098851,0.0666666666666667,241,761172,NA,0.183333333333333,102083,0.177777777777778,0.2,32,0.0266666814814897,NA,11986,6089.376,0.533333333333333,0.0611111111111111,NA,3190.09375,0.694444444444445,NA,NA,1794.397668001,2.08333333333333,0,NA,0
"thirtyminutes0011#2020-03-06 05:30:00,2020-03-06 05:59:59","thirtyminutes0011","2020-03-06 05:30:00","2020-03-06 05:59:59",5914,0.122222290123495,3479.48376517021,0.0266666814814897,0.468889149382861,0.0702341137123746,159,1375453,359,0.2,158276,0.183946488294314,0.35,50,0.046666692592607,1,11958,6518.7345971564,0.916666666666667,0.040133779264214,359,2877.74545454545,0.705685618729097,10.0464333335559,10.0464333335559,1828.46456753952,3.51666666666667,10.0464333335559,NA,10.0464333335559
"thirtyminutes0011#2020-03-07 05:30:00,2020-03-07 05:59:59","thirtyminutes0011","2020-03-07 05:30:00","2020-03-07 05:59:59",5914,0.0733333740740967,3404.5491974115,0.0200000111111173,0.282222379012433,0.0558659217877095,267,843439,359,0.15,95430,0.184357541899441,0.166666666666667,79,0.0222222345679081,1,11931,6641.25196850394,0.55,0.0502793296089385,359,2891.81818181818,0.709497206703911,10.05,10.05,1835.10548836003,2.11666666666667,10.05,NA,10.05
"thirtyminutes0011#2020-10-30 05:30:00,2020-10-30 05:59:59","thirtyminutes0011","2020-10-30 05:30:00","2020-10-30 05:59:59",5914,0.122222290123495,3479.48376517021,0.0266666814814897,0.468889149382861,0.0702341137123746,159,1375453,359,0.2,158276,0.183946488294314,0.35,50,0.046666692592607,1,11958,6518.7345971564,0.916666666666667,0.040133779264214,359,2877.74545454545,0.705685618729097,10.0464333335559,10.0464333335559,1828.46456753952,3.51666666666667,10.0464333335559,NA,10.0464333335559
"thirtyminutes0011#2020-10-31 05:30:00,2020-10-31 05:59:59","thirtyminutes0011","2020-10-31 05:30:00","2020-10-31 05:59:59",5914,0.0733333740740967,3404.5491974115,0.0200000111111173,0.282222379012433,0.0558659217877095,267,843439,359,0.15,95430,0.184357541899441,0.166666666666667,79,0.0222222345679081,1,11931,6641.25196850394,0.55,0.0502793296089385,359,2891.81818181818,0.709497206703911,10.05,10.05,1835.10548836003,2.11666666666667,10.05,NA,10.05
"thirtyminutes0012#2020-03-06 06:00:00,2020-03-06 06:29:59","thirtyminutes0012","2020-03-06 06:00:00","2020-03-06 06:29:59",5494,0.0177777876543265,3486.62605971776,0.00222222345679081,0.0733333740740967,0.0454545454545455,18,205237,NA,0.0166666666666667,18261,0.181818181818182,0.0333333333333333,470,0.00444444691358162,NA,11468,6219.30303030303,0.133333333333333,0.0227272727272727,NA,2282.625,0.75,NA,NA,1954.05621629179,0.55,0,NA,0
"thirtyminutes0012#2020-03-07 06:00:00,2020-03-07 06:29:59","thirtyminutes0012","2020-03-07 06:00:00","2020-03-07 06:29:59",5494,0.0177777876543265,3486.62605971776,0.00222222345679081,0.0733333740740967,0.0454545454545455,18,205237,NA,0.0166666666666667,18261,0.181818181818182,0.0333333333333333,470,0.00444444691358162,NA,11468,6219.30303030303,0.133333333333333,0.0227272727272727,NA,2282.625,0.75,NA,NA,1954.05621629179,0.55,0,NA,0
"thirtyminutes0012#2020-03-09 06:00:00,2020-03-09 06:29:59","thirtyminutes0012","2020-03-09 06:00:00","2020-03-09 06:29:59",5858,0.128888960493867,3654.61971833146,0.046666692592607,0.475555819753233,0.0608974358974359,241,1329661,NA,0.35,193236,0.185897435897436,0.316666666666667,32,0.0422222456790254,NA,11986,6213.36915887851,0.966666666666667,0.0673076923076923,NA,3331.65517241379,0.685897435897436,NA,NA,1766.04139102042,3.56666666666667,0,NA,0
"thirtyminutes0012#2020-10-30 06:00:00,2020-10-30 06:29:59","thirtyminutes0012","2020-10-30 06:00:00","2020-10-30 06:29:59",5494,0.0177777876543265,3486.62605971776,0.00222222345679081,0.0733333740740967,0.0454545454545455,18,205237,NA,0.0166666666666667,18261,0.181818181818182,0.0333333333333333,470,0.00444444691358162,NA,11468,6219.30303030303,0.133333333333333,0.0227272727272727,NA,2282.625,0.75,NA,NA,1954.05621629179,0.55,0,NA,0
"thirtyminutes0012#2020-10-31 06:00:00,2020-10-31 06:29:59","thirtyminutes0012","2020-10-31 06:00:00","2020-10-31 06:29:59",5494,0.0177777876543265,3486.62605971776,0.00222222345679081,0.0733333740740967,0.0454545454545455,18,205237,NA,0.0166666666666667,18261,0.181818181818182,0.0333333333333333,470,0.00444444691358162,NA,11468,6219.30303030303,0.133333333333333,0.0227272727272727,NA,2282.625,0.75,NA,NA,1954.05621629179,0.55,0,NA,0
"thirtyminutes0012#2020-11-02 06:00:00,2020-11-02 06:29:59","thirtyminutes0012","2020-11-02 06:00:00","2020-11-02 06:29:59",5858,0.128888960493867,3654.61971833146,0.046666692592607,0.475555819753233,0.0608974358974359,241,1329661,NA,0.35,193236,0.185897435897436,0.316666666666667,32,0.0422222456790254,NA,11986,6213.36915887851,0.966666666666667,0.0673076923076923,NA,3331.65517241379,0.685897435897436,NA,NA,1766.04139102042,3.56666666666667,0,NA,0
"thirtyminutes0013#2020-03-07 06:30:00,2020-03-07 06:59:59","thirtyminutes0013","2020-03-07 06:30:00","2020-03-07 06:59:59",5974,0.0711111506173059,3609.22901886686,0.0177777876543265,0.166666759259311,0.0336134453781513,648,459919,392,0.133333333333333,98678,0.26890756302521,0.0666666666666667,222,0.00888889382716324,1,11920,6132.25333333333,0.533333333333333,0.0672268907563025,392,3083.6875,0.630252100840336,1.33333333333333,1.33333333333333,1557.76443284144,1.25,1.33333333333333,NA,1.33333333333333
"thirtyminutes0013#2020-10-31 06:30:00,2020-10-31 06:59:59","thirtyminutes0013","2020-10-31 06:30:00","2020-10-31 06:59:59",5974,0.0711111506173059,3609.22901886686,0.0177777876543265,0.166666759259311,0.0336134453781513,648,459919,392,0.133333333333333,98678,0.26890756302521,0.0666666666666667,222,0.00888889382716324,1,11920,6132.25333333333,0.533333333333333,0.0672268907563025,392,3083.6875,0.630252100840336,1.33333333333333,1.33333333333333,1557.76443284144,1.25,1.33333333333333,NA,1.33333333333333
"thirtyminutes0017#2020-03-08 08:30:00,2020-03-08 08:59:59","thirtyminutes0017","2020-03-08 08:30:00","2020-03-08 08:59:59",5305,0.0333333518518621,3485.30422491981,0.00444444691358162,0.0911111617284232,0.0169491525423729,39,282076,539,0.0333333333333333,49970,0.254237288135593,0.0166666666666667,352,0.00222222345679081,1,11807,6879.90243902439,0.25,0.0338983050847458,539,3331.33333333333,0.694915254237288,2.63854999939601,2.63854999939601,1835.82486974683,0.683333333333333,2.63854999939601,NA,2.63854999939601
"thirtyminutes0017#2020-11-01 08:30:00,2020-11-01 08:59:59","thirtyminutes0017","2020-11-01 08:30:00","2020-11-01 08:59:59",5305,0.0333333518518621,3485.30422491981,0.00444444691358162,0.0911111617284232,0.0169491525423729,39,282076,539,0.0333333333333333,49970,0.254237288135593,0.0166666666666667,352,0.00222222345679081,1,11807,6879.90243902439,0.25,0.0338983050847458,539,3331.33333333333,0.694915254237288,2.63854999939601,2.63854999939601,1835.82486974683,0.683333333333333,2.63854999939601,NA,2.63854999939601
"thirtyminutes0019#2020-03-07 09:30:00,2020-03-07 09:59:59","thirtyminutes0019","2020-03-07 09:30:00","2020-03-07 09:59:59",5839,0.104444502469168,3361.1700745905,0.0377777987654438,0.237777909876617,0.0446927374301676,113,651511,588,0.283333333333333,147681,0.262569832402235,0.133333333333333,117,0.0177777876543265,1,11613,6088.88785046729,0.783333333333333,0.0949720670391061,588,3142.14893617021,0.597765363128492,2.21666666666667,2.21666666666667,1650.99227052576,1.78333333333333,2.21666666666667,NA,2.21666666666667
"thirtyminutes0019#2020-10-31 09:30:00,2020-10-31 09:59:59","thirtyminutes0019","2020-10-31 09:30:00","2020-10-31 09:59:59",5839,0.104444502469168,3361.1700745905,0.0377777987654438,0.237777909876617,0.0446927374301676,113,651511,588,0.283333333333333,147681,0.262569832402235,0.133333333333333,117,0.0177777876543265,1,11613,6088.88785046729,0.783333333333333,0.0949720670391061,588,3142.14893617021,0.597765363128492,2.21666666666667,2.21666666666667,1650.99227052576,1.78333333333333,2.21666666666667,NA,2.21666666666667
"thirtyminutes0021#2020-03-06 10:30:00,2020-03-06 10:59:59","thirtyminutes0021","2020-03-06 10:30:00","2020-03-06 10:59:59",5031,0.0444444691358162,3158.11819251611,0.0155555641975357,0.180000100000056,0.092436974789916,381,474758,656,0.116666666666667,63061,0.168067226890756,0.183333333333333,13,0.0244444580246989,1,11825,5861.20987654321,0.333333333333333,0.0588235294117647,656,3153.05,0.680672268907563,1.66509999831518,1.66509999831518,1392.35402617672,1.35,1.66509999831518,NA,1.66509999831518
"thirtyminutes0021#2020-10-30 10:30:00,2020-10-30 10:59:59","thirtyminutes0021","2020-10-30 10:30:00","2020-10-30 10:59:59",5031,0.0444444691358162,3158.11819251611,0.0155555641975357,0.180000100000056,0.092436974789916,381,474758,656,0.116666666666667,63061,0.168067226890756,0.183333333333333,13,0.0244444580246989,1,11825,5861.20987654321,0.333333333333333,0.0588235294117647,656,3153.05,0.680672268907563,1.66509999831518,1.66509999831518,1392.35402617672,1.35,1.66509999831518,NA,1.66509999831518
"thirtyminutes0023#2020-03-09 11:30:00,2020-03-09 11:59:59","thirtyminutes0023","2020-03-09 11:30:00","2020-03-09 11:59:59",5698,0.0755555975308875,3171.49771105479,0.0222222345679081,0.286666825926014,0.0335195530726257,152,781135,697,0.166666666666667,105592,0.189944134078212,0.1,228,0.0133333407407449,1,11822,6055.31007751938,0.566666666666667,0.0558659217877095,697,3105.64705882353,0.720670391061452,2.51666666666667,2.51666666666667,1584.74442796332,2.15,2.51666666666667,NA,2.51666666666667
"thirtyminutes0023#2020-11-02 11:30:00,2020-11-02 11:59:59","thirtyminutes0023","2020-11-02 11:30:00","2020-11-02 11:59:59",5698,0.0755555975308875,3171.49771105479,0.0222222345679081,0.286666825926014,0.0335195530726257,152,781135,697,0.166666666666667,105592,0.189944134078212,0.1,228,0.0133333407407449,1,11822,6055.31007751938,0.566666666666667,0.0558659217877095,697,3105.64705882353,0.720670391061452,2.51666666666667,2.51666666666667,1584.74442796332,2.15,2.51666666666667,NA,2.51666666666667
"thirtyminutes0024#2020-03-06 12:00:00,2020-03-06 12:29:59","thirtyminutes0024","2020-03-06 12:00:00","2020-03-06 12:29:59",5769,0.0866667148148416,3542.32880412442,0.0133333407407449,0.288889049382805,0.0277777777777778,18,775191,NA,0.1,127829,0.216666666666667,0.0833333333333333,29,0.011111117283954,NA,11960,5963.00769230769,0.65,0.0333333333333333,NA,3277.66666666667,0.722222222222222,NA,NA,1878.36515329762,2.16666666666667,0,NA,0
"thirtyminutes0024#2020-03-08 12:00:00,2020-03-08 12:29:59","thirtyminutes0024","2020-03-08 12:00:00","2020-03-08 12:29:59",5725,0.0622222567901427,3360.43147023957,0.0266666814814897,0.30222239012355,0.0222222222222222,26,829461,NA,0.2,70564,0.155555555555556,0.0666666666666667,41,0.00888889382716324,NA,11740,6098.97794117647,0.466666666666667,0.0666666666666667,NA,2520.14285714286,0.755555555555556,NA,NA,1499.05198966709,2.26666666666667,0,NA,0
"thirtyminutes0024#2020-03-09 12:00:00,2020-03-09 12:29:59","thirtyminutes0024","2020-03-09 12:00:00","2020-03-09 12:29:59",5725,0.0444444691358162,3334.14120152182,0.0200000111111173,0.200000111111173,0.00833333333333333,52,569829,NA,0.15,57869,0.166666666666667,0.0166666666666667,538,0.00222222345679081,NA,11740,6331.43333333333,0.333333333333333,0.075,NA,2893.45,0.75,NA,NA,1474.51517366503,1.5,0,NA,0
"thirtyminutes0024#2020-10-30 12:00:00,2020-10-30 12:29:59","thirtyminutes0024","2020-10-30 12:00:00","2020-10-30 12:29:59",5769,0.0866667148148416,3542.32880412442,0.0133333407407449,0.288889049382805,0.0277777777777778,18,775191,NA,0.1,127829,0.216666666666667,0.0833333333333333,29,0.011111117283954,NA,11960,5963.00769230769,0.65,0.0333333333333333,NA,3277.66666666667,0.722222222222222,NA,NA,1878.36515329762,2.16666666666667,0,NA,0
"thirtyminutes0024#2020-11-01 12:00:00,2020-11-01 12:29:59","thirtyminutes0024","2020-11-01 12:00:00","2020-11-01 12:29:59",5725,0.0622222567901427,3360.43147023957,0.0266666814814897,0.30222239012355,0.0222222222222222,26,829461,NA,0.2,70564,0.155555555555556,0.0666666666666667,41,0.00888889382716324,NA,11740,6098.97794117647,0.466666666666667,0.0666666666666667,NA,2520.14285714286,0.755555555555556,NA,NA,1499.05198966709,2.26666666666667,0,NA,0
"thirtyminutes0024#2020-11-02 12:00:00,2020-11-02 12:29:59","thirtyminutes0024","2020-11-02 12:00:00","2020-11-02 12:29:59",5725,0.0444444691358162,3334.14120152182,0.0200000111111173,0.200000111111173,0.00833333333333333,52,569829,NA,0.15,57869,0.166666666666667,0.0166666666666667,538,0.00222222345679081,NA,11740,6331.43333333333,0.333333333333333,0.075,NA,2893.45,0.75,NA,NA,1474.51517366503,1.5,0,NA,0
"thirtyminutes0027#2020-03-07 13:30:00,2020-03-07 13:59:59","thirtyminutes0027","2020-03-07 13:30:00","2020-03-07 13:59:59",5973,0.0755555975308875,3582.47817995912,0.0200000111111173,0.235555686419826,0.0509554140127388,397,653815,830,0.15,107647,0.21656050955414,0.133333333333333,173,0.0177777876543265,1,11849,6168.06603773585,0.566666666666667,0.0573248407643312,830,3166.08823529412,0.67515923566879,1.96666666666667,1.96666666666667,1862.66987214178,1.76666666666667,1.96666666666667,NA,1.96666666666667
"thirtyminutes0027#2020-10-31 13:30:00,2020-10-31 13:59:59","thirtyminutes0027","2020-10-31 13:30:00","2020-10-31 13:59:59",5973,0.0755555975308875,3582.47817995912,0.0200000111111173,0.235555686419826,0.0509554140127388,397,653815,830,0.15,107647,0.21656050955414,0.133333333333333,173,0.0177777876543265,1,11849,6168.06603773585,0.566666666666667,0.0573248407643312,830,3166.08823529412,0.67515923566879,1.96666666666667,1.96666666666667,1862.66987214178,1.76666666666667,1.96666666666667,NA,1.96666666666667
"thirtyminutes0033#2020-03-08 16:30:00,2020-03-08 16:59:59","thirtyminutes0033","2020-03-08 16:30:00","2020-03-08 16:59:59",5896,0.0600000333333519,3393.60065937523,0.00888889382716324,0.162222312345729,0.0630630630630631,266,416257,NA,0.0666666666666667,78328,0.243243243243243,0.116666666666667,130,0.0155555641975357,NA,11994,5702.15068493151,0.45,0.036036036036036,NA,2901.03703703704,0.657657657657658,NA,NA,1602.42608089401,1.21666666666667,0,NA,0
"thirtyminutes0033#2020-11-01 16:30:00,2020-11-01 16:59:59","thirtyminutes0033","2020-11-01 16:30:00","2020-11-01 16:59:59",5896,0.0600000333333519,3393.60065937523,0.00888889382716324,0.162222312345729,0.0630630630630631,266,416257,NA,0.0666666666666667,78328,0.243243243243243,0.116666666666667,130,0.0155555641975357,NA,11994,5702.15068493151,0.45,0.036036036036036,NA,2901.03703703704,0.657657657657658,NA,NA,1602.42608089401,1.21666666666667,0,NA,0
"thirtyminutes0034#2020-03-06 17:00:00,2020-03-06 17:29:59","thirtyminutes0034","2020-03-06 17:00:00","2020-03-06 17:29:59",5880,0.0888889382716324,3842.84937829441,0.0222222345679081,0.266666814814897,0.0502793296089385,53,727058,1032,0.166666666666667,117111,0.223463687150838,0.15,15,0.0200000111111173,1,11869,6058.81666666667,0.666666666666667,0.0558659217877095,1032,2927.775,0.670391061452514,3.96938333511353,3.96938333511353,1645.55094799155,2,3.96938333511353,NA,3.96938333511353
"thirtyminutes0034#2020-03-07 17:00:00,2020-03-07 17:29:59","thirtyminutes0034","2020-03-07 17:00:00","2020-03-07 17:29:59",5801,0.0666667037037243,3468.7579061419,0.011111117283954,0.173333429629683,0.0504201680672269,116,505175,1024,0.0833333333333333,89106,0.252100840336134,0.1,255,0.0133333407407449,1,11958,6476.60256410256,0.5,0.0420168067226891,1024,2970.2,0.65546218487395,1.35,1.35,1714.36781149888,1.3,1.35,NA,1.35
"thirtyminutes0034#2020-03-09 17:00:00,2020-03-09 17:29:59","thirtyminutes0034","2020-03-09 17:00:00","2020-03-09 17:29:59",5965,0.0511111395061886,3728.39862851838,0.0155555641975357,0.160000088888938,0.0555555555555556,61,429521,1022,0.116666666666667,81896,0.212962962962963,0.1,155,0.0133333407407449,1,11984,5965.56944444444,0.383333333333333,0.0648148148148148,1022,3560.69565217391,0.666666666666667,5.23333333333333,5.23333333333333,1939.29432889161,1.2,5.23333333333333,NA,5.23333333333333
"thirtyminutes0034#2020-10-30 17:00:00,2020-10-30 17:29:59","thirtyminutes0034","2020-10-30 17:00:00","2020-10-30 17:29:59",5880,0.0888889382716324,3842.84937829441,0.0222222345679081,0.266666814814897,0.0502793296089385,53,727058,1032,0.166666666666667,117111,0.223463687150838,0.15,15,0.0200000111111173,1,11869,6058.81666666667,0.666666666666667,0.0558659217877095,1032,2927.775,0.670391061452514,3.96938333511353,3.96938333511353,1645.55094799155,2,3.96938333511353,NA,3.96938333511353
"thirtyminutes0034#2020-10-31 17:00:00,2020-10-31 17:29:59","thirtyminutes0034","2020-10-31 17:00:00","2020-10-31 17:29:59",5801,0.0666667037037243,3468.7579061419,0.011111117283954,0.173333429629683,0.0504201680672269,116,505175,1024,0.0833333333333333,89106,0.252100840336134,0.1,255,0.0133333407407449,1,11958,6476.60256410256,0.5,0.0420168067226891,1024,2970.2,0.65546218487395,1.35,1.35,1714.36781149888,1.3,1.35,NA,1.35
"thirtyminutes0034#2020-11-02 17:00:00,2020-11-02 17:29:59","thirtyminutes0034","2020-11-02 17:00:00","2020-11-02 17:29:59",5965,0.0511111395061886,3728.39862851838,0.0155555641975357,0.160000088888938,0.0555555555555556,61,429521,1022,0.116666666666667,81896,0.212962962962963,0.1,155,0.0133333407407449,1,11984,5965.56944444444,0.383333333333333,0.0648148148148148,1022,3560.69565217391,0.666666666666667,5.23333333333333,5.23333333333333,1939.29432889161,1.2,5.23333333333333,NA,5.23333333333333
"thirtyminutes0036#2020-03-06 18:00:00,2020-03-06 18:29:59","thirtyminutes0036","2020-03-06 18:00:00","2020-03-06 18:29:59",5414,0.00444444691358162,2425.13151447504,NA,0.0355555753086529,NA,4917,106737,NA,NA,10331,0.111111111111111,NA,795,NA,NA,9865,6671.0625,0.0333333333333333,NA,NA,5165.5,0.888888888888889,NA,NA,351.432070249714,0.266666666666667,0,NA,0
"thirtyminutes0036#2020-10-30 18:00:00,2020-10-30 18:29:59","thirtyminutes0036","2020-10-30 18:00:00","2020-10-30 18:29:59",5414,0.00444444691358162,2425.13151447504,NA,0.0355555753086529,NA,4917,106737,NA,NA,10331,0.111111111111111,NA,795,NA,NA,9865,6671.0625,0.0333333333333333,NA,NA,5165.5,0.888888888888889,NA,NA,351.432070249714,0.266666666666667,0,NA,0
"thirtyminutes0039#2020-03-08 19:30:00,2020-03-08 19:59:59","thirtyminutes0039","2020-03-08 19:30:00","2020-03-08 19:59:59",5791,0.0955556086420048,3586.7682415516,0.0133333407407449,0.280000155555642,0.0223463687150838,344,737899,NA,0.1,138265,0.240223463687151,0.0666666666666667,65,0.00888889382716324,NA,11872,5856.34126984127,0.716666666666667,0.0335195530726257,NA,3215.46511627907,0.70391061452514,NA,NA,1685.61227181609,2.1,0,NA,0
"thirtyminutes0039#2020-03-09 19:30:00,2020-03-09 19:59:59","thirtyminutes0039","2020-03-09 19:30:00","2020-03-09 19:59:59",5791,0.0955556086420048,3586.7682415516,0.0133333407407449,0.280000155555642,0.0223463687150838,344,737899,NA,0.1,138265,0.240223463687151,0.0666666666666667,65,0.00888889382716324,NA,11872,5856.34126984127,0.716666666666667,0.0335195530726257,NA,3215.46511627907,0.70391061452514,NA,NA,1685.61227181609,2.1,0,NA,0
"thirtyminutes0039#2020-11-01 19:30:00,2020-11-01 19:59:59","thirtyminutes0039","2020-11-01 19:30:00","2020-11-01 19:59:59",5791,0.0955556086420048,3586.7682415516,0.0133333407407449,0.280000155555642,0.0223463687150838,344,737899,NA,0.1,138265,0.240223463687151,0.0666666666666667,65,0.00888889382716324,NA,11872,5856.34126984127,0.716666666666667,0.0335195530726257,NA,3215.46511627907,0.70391061452514,NA,NA,1685.61227181609,2.1,0,NA,0
"thirtyminutes0039#2020-11-02 19:30:00,2020-11-02 19:59:59","thirtyminutes0039","2020-11-02 19:30:00","2020-11-02 19:59:59",5791,0.0955556086420048,3586.7682415516,0.0133333407407449,0.280000155555642,0.0223463687150838,344,737899,NA,0.1,138265,0.240223463687151,0.0666666666666667,65,0.00888889382716324,NA,11872,5856.34126984127,0.716666666666667,0.0335195530726257,NA,3215.46511627907,0.70391061452514,NA,NA,1685.61227181609,2.1,0,NA,0
"thirtyminutes0040#2020-03-06 20:00:00,2020-03-06 20:29:59","thirtyminutes0040","2020-03-06 20:00:00","2020-03-06 20:29:59",5801,0.057777809876561,3593.75383647217,0.011111117283954,0.135555630864239,0.0515463917525773,116,399842,1204,0.0833333333333333,77879,0.268041237113402,0.0833333333333333,255,0.011111117283954,1,11958,6554.7868852459,0.433333333333333,0.0515463917525773,1204,2995.34615384615,0.628865979381443,1.35104999939601,1.35104999939601,1709.76456723861,1.01666666666667,1.35104999939601,NA,1.35104999939601
"thirtyminutes0040#2020-10-30 20:00:00,2020-10-30 20:29:59","thirtyminutes0040","2020-10-30 20:00:00","2020-10-30 20:29:59",5801,0.057777809876561,3593.75383647217,0.011111117283954,0.135555630864239,0.0515463917525773,116,399842,1204,0.0833333333333333,77879,0.268041237113402,0.0833333333333333,255,0.011111117283954,1,11958,6554.7868852459,0.433333333333333,0.0515463917525773,1204,2995.34615384615,0.628865979381443,1.35104999939601,1.35104999939601,1709.76456723861,1.01666666666667,1.35104999939601,NA,1.35104999939601
"thirtyminutes0042#2020-03-07 21:00:00,2020-03-07 21:29:59","thirtyminutes0042","2020-03-07 21:00:00","2020-03-07 21:29:59",4987,0.0155555641975357,3169.33937289872,NA,0.0266666814814897,0.05,592,94436,NA,NA,21125,0.35,0.0166666666666667,1967,0.00222222345679081,NA,11957,7869.66666666667,0.116666666666667,NA,NA,3017.85714285714,0.6,NA,NA,1779.34242803078,0.2,0,NA,0
"thirtyminutes0042#2020-10-31 21:00:00,2020-10-31 21:29:59","thirtyminutes0042","2020-10-31 21:00:00","2020-10-31 21:29:59",4987,0.0155555641975357,3169.33937289872,NA,0.0266666814814897,0.05,592,94436,NA,NA,21125,0.35,0.0166666666666667,1967,0.00222222345679081,NA,11957,7869.66666666667,0.116666666666667,NA,NA,3017.85714285714,0.6,NA,NA,1779.34242803078,0.2,0,NA,0
"local_segment","local_segment_label","local_segment_start_datetime","local_segment_end_datetime","phone_conversation_rapids_minutesnoise","phone_conversation_rapids_noisemaxenergy","phone_conversation_rapids_voicemaxenergy","phone_conversation_rapids_sdconversationduration","phone_conversation_rapids_minutesunknown","phone_conversation_rapids_unknownexpectedfraction","phone_conversation_rapids_noisesumenergy","phone_conversation_rapids_sumconversationduration","phone_conversation_rapids_timelastconversation","phone_conversation_rapids_noiseexpectedfraction","phone_conversation_rapids_noiseavgenergy","phone_conversation_rapids_unknownsensedfraction","phone_conversation_rapids_minutesvoice","phone_conversation_rapids_voiceavgenergy","phone_conversation_rapids_voiceexpectedfraction","phone_conversation_rapids_noisesensedfraction","phone_conversation_rapids_voicesensedfraction","phone_conversation_rapids_voicesumenergy","phone_conversation_rapids_voiceminenergy","phone_conversation_rapids_minconversationduration","phone_conversation_rapids_avgconversationduration","phone_conversation_rapids_noiseminenergy","phone_conversation_rapids_maxconversationduration","phone_conversation_rapids_voicesdenergy","phone_conversation_rapids_timefirstconversation","phone_conversation_rapids_countconversation","phone_conversation_rapids_minutessilence","phone_conversation_rapids_silencesensedfraction","phone_conversation_rapids_noisesdenergy","phone_conversation_rapids_silenceexpectedfraction"
"thirtyminutes0002#2020-03-06 01:00:00,2020-03-06 01:29:59","thirtyminutes0002","2020-03-06 01:00:00","2020-03-06 01:29:59",0.683333333333333,11769,4981,NA,0.0666666666666667,0.00888889382716324,254984,0.718016664187113,73,0.0911111617284232,6219.12195121951,0.0677966101694915,0.183333333333333,2658.90909090909,0.0244444580246989,0.694915254237288,0.186440677966102,29248,61,0.718016664187113,0.718016664187113,559,0.718016664187113,1686.32716010538,73,1,0.05,0.0508474576271186,3611.99537094887,0.00666667037037243
"thirtyminutes0002#2020-03-07 01:00:00,2020-03-07 01:29:59","thirtyminutes0002","2020-03-07 01:00:00","2020-03-07 01:29:59",0.683333333333333,11769,4981,NA,0.0666666666666667,0.00888889382716324,254984,1666.66666666667,73,0.0911111617284232,6219.12195121951,0.0677966101694915,0.183333333333333,2658.90909090909,0.0244444580246989,0.694915254237288,0.186440677966102,29248,61,1666.66666666667,1666.66666666667,559,1666.66666666667,1686.32716010538,73,1,0.05,0.0508474576271186,3611.99537094887,0.00666667037037243
"thirtyminutes0002#2020-03-09 01:00:00,2020-03-09 01:29:59","thirtyminutes0002","2020-03-09 01:00:00","2020-03-09 01:29:59",2.06666666666667,11967,5859,NA,0.183333333333333,0.0244444580246989,738382,2.28333333333333,77,0.27555570864206,5954.6935483871,0.0614525139664804,0.6,3248.72222222222,0.0800000444444691,0.692737430167598,0.201117318435754,116954,69,2.28333333333333,2.28333333333333,267,2.28333333333333,1789.91462862835,77,1,0.133333333333333,0.0446927374301676,3538.5841001422,0.0177777876543265
"thirtyminutes0002#2020-10-30 01:00:00,2020-10-30 01:29:59","thirtyminutes0002","2020-10-30 01:00:00","2020-10-30 01:29:59",0.683333333333333,11769,4981,NA,0.0666666666666667,0.00888889382716324,254984,0.718016664187113,73,0.0911111617284232,6219.12195121951,0.0677966101694915,0.183333333333333,2658.90909090909,0.0244444580246989,0.694915254237288,0.186440677966102,29248,61,0.718016664187113,0.718016664187113,559,0.718016664187113,1686.32716010538,73,1,0.05,0.0508474576271186,3611.99537094887,0.00666667037037243
"thirtyminutes0002#2020-10-31 01:00:00,2020-10-31 01:29:59","thirtyminutes0002","2020-10-31 01:00:00","2020-10-31 01:29:59",0.683333333333333,11769,4981,NA,0.0666666666666667,0.00888889382716324,254984,1666.66666666667,73,0.0911111617284232,6219.12195121951,0.0677966101694915,0.183333333333333,2658.90909090909,0.0244444580246989,0.694915254237288,0.186440677966102,29248,61,1666.66666666667,1666.66666666667,559,1666.66666666667,1686.32716010538,73,1,0.05,0.0508474576271186,3611.99537094887,0.00666667037037243
"thirtyminutes0002#2020-11-02 01:00:00,2020-11-02 01:29:59","thirtyminutes0002","2020-11-02 01:00:00","2020-11-02 01:29:59",2.06666666666667,11967,5859,NA,0.183333333333333,0.0244444580246989,738382,2.28333333333333,77,0.27555570864206,5954.6935483871,0.0614525139664804,0.6,3248.72222222222,0.0800000444444691,0.692737430167598,0.201117318435754,116954,69,2.28333333333333,2.28333333333333,267,2.28333333333333,1789.91462862835,77,1,0.133333333333333,0.0446927374301676,3538.5841001422,0.0177777876543265
"thirtyminutes0006#2020-03-08 03:00:00,2020-03-08 03:29:59","thirtyminutes0006","2020-03-08 03:00:00","2020-03-08 03:29:59",2.08333333333333,11986,5755,NA,0.2,0.0266666814814897,761172,0,NA,0.277777932098851,6089.376,0.0666666666666667,0.533333333333333,3190.09375,0.0711111506173059,0.694444444444445,0.177777777777778,102083,241,0,0,32,0,1794.397668001,NA,0,0.183333333333333,0.0611111111111111,3780.64082011366,0.0244444580246989
"thirtyminutes0006#2020-11-01 03:00:00,2020-11-01 03:29:59","thirtyminutes0006","2020-11-01 03:00:00","2020-11-01 03:29:59",2.08333333333333,11986,5755,NA,0.2,0.0266666814814897,761172,0,NA,0.277777932098851,6089.376,0.0666666666666667,0.533333333333333,3190.09375,0.0711111506173059,0.694444444444445,0.177777777777778,102083,241,0,0,32,0,1794.397668001,NA,0,0.183333333333333,0.0611111111111111,3780.64082011366,0.0244444580246989
"thirtyminutes0011#2020-03-06 05:30:00,2020-03-06 05:59:59","thirtyminutes0011","2020-03-06 05:30:00","2020-03-06 05:59:59",3.51666666666667,11958,5914,NA,0.35,0.046666692592607,1375453,10.0464333335559,359,0.468889149382861,6518.7345971564,0.0702341137123746,0.916666666666667,2877.74545454545,0.122222290123495,0.705685618729097,0.183946488294314,158276,159,10.0464333335559,10.0464333335559,50,10.0464333335559,1828.46456753952,359,1,0.2,0.040133779264214,3479.48376517021,0.0266666814814897
"thirtyminutes0011#2020-03-07 05:30:00,2020-03-07 05:59:59","thirtyminutes0011","2020-03-07 05:30:00","2020-03-07 05:59:59",2.11666666666667,11931,5914,NA,0.166666666666667,0.0222222345679081,843439,10.05,359,0.282222379012433,6641.25196850394,0.0558659217877095,0.55,2891.81818181818,0.0733333740740967,0.709497206703911,0.184357541899441,95430,267,10.05,10.05,79,10.05,1835.10548836003,359,1,0.15,0.0502793296089385,3404.5491974115,0.0200000111111173
"thirtyminutes0011#2020-10-30 05:30:00,2020-10-30 05:59:59","thirtyminutes0011","2020-10-30 05:30:00","2020-10-30 05:59:59",3.51666666666667,11958,5914,NA,0.35,0.046666692592607,1375453,10.0464333335559,359,0.468889149382861,6518.7345971564,0.0702341137123746,0.916666666666667,2877.74545454545,0.122222290123495,0.705685618729097,0.183946488294314,158276,159,10.0464333335559,10.0464333335559,50,10.0464333335559,1828.46456753952,359,1,0.2,0.040133779264214,3479.48376517021,0.0266666814814897
"thirtyminutes0011#2020-10-31 05:30:00,2020-10-31 05:59:59","thirtyminutes0011","2020-10-31 05:30:00","2020-10-31 05:59:59",2.11666666666667,11931,5914,NA,0.166666666666667,0.0222222345679081,843439,10.05,359,0.282222379012433,6641.25196850394,0.0558659217877095,0.55,2891.81818181818,0.0733333740740967,0.709497206703911,0.184357541899441,95430,267,10.05,10.05,79,10.05,1835.10548836003,359,1,0.15,0.0502793296089385,3404.5491974115,0.0200000111111173
"thirtyminutes0012#2020-03-06 06:00:00,2020-03-06 06:29:59","thirtyminutes0012","2020-03-06 06:00:00","2020-03-06 06:29:59",0.55,11468,5494,NA,0.0333333333333333,0.00444444691358162,205237,0,NA,0.0733333740740967,6219.30303030303,0.0454545454545455,0.133333333333333,2282.625,0.0177777876543265,0.75,0.181818181818182,18261,18,0,0,470,0,1954.05621629179,NA,0,0.0166666666666667,0.0227272727272727,3486.62605971776,0.00222222345679081
"thirtyminutes0012#2020-03-07 06:00:00,2020-03-07 06:29:59","thirtyminutes0012","2020-03-07 06:00:00","2020-03-07 06:29:59",0.55,11468,5494,NA,0.0333333333333333,0.00444444691358162,205237,0,NA,0.0733333740740967,6219.30303030303,0.0454545454545455,0.133333333333333,2282.625,0.0177777876543265,0.75,0.181818181818182,18261,18,0,0,470,0,1954.05621629179,NA,0,0.0166666666666667,0.0227272727272727,3486.62605971776,0.00222222345679081
"thirtyminutes0012#2020-03-09 06:00:00,2020-03-09 06:29:59","thirtyminutes0012","2020-03-09 06:00:00","2020-03-09 06:29:59",3.56666666666667,11986,5858,NA,0.316666666666667,0.0422222456790254,1329661,0,NA,0.475555819753233,6213.36915887851,0.0608974358974359,0.966666666666667,3331.65517241379,0.128888960493867,0.685897435897436,0.185897435897436,193236,241,0,0,32,0,1766.04139102042,NA,0,0.35,0.0673076923076923,3654.61971833146,0.046666692592607
"thirtyminutes0012#2020-10-30 06:00:00,2020-10-30 06:29:59","thirtyminutes0012","2020-10-30 06:00:00","2020-10-30 06:29:59",0.55,11468,5494,NA,0.0333333333333333,0.00444444691358162,205237,0,NA,0.0733333740740967,6219.30303030303,0.0454545454545455,0.133333333333333,2282.625,0.0177777876543265,0.75,0.181818181818182,18261,18,0,0,470,0,1954.05621629179,NA,0,0.0166666666666667,0.0227272727272727,3486.62605971776,0.00222222345679081
"thirtyminutes0012#2020-10-31 06:00:00,2020-10-31 06:29:59","thirtyminutes0012","2020-10-31 06:00:00","2020-10-31 06:29:59",0.55,11468,5494,NA,0.0333333333333333,0.00444444691358162,205237,0,NA,0.0733333740740967,6219.30303030303,0.0454545454545455,0.133333333333333,2282.625,0.0177777876543265,0.75,0.181818181818182,18261,18,0,0,470,0,1954.05621629179,NA,0,0.0166666666666667,0.0227272727272727,3486.62605971776,0.00222222345679081
"thirtyminutes0012#2020-11-02 06:00:00,2020-11-02 06:29:59","thirtyminutes0012","2020-11-02 06:00:00","2020-11-02 06:29:59",3.56666666666667,11986,5858,NA,0.316666666666667,0.0422222456790254,1329661,0,NA,0.475555819753233,6213.36915887851,0.0608974358974359,0.966666666666667,3331.65517241379,0.128888960493867,0.685897435897436,0.185897435897436,193236,241,0,0,32,0,1766.04139102042,NA,0,0.35,0.0673076923076923,3654.61971833146,0.046666692592607
"thirtyminutes0013#2020-03-07 06:30:00,2020-03-07 06:59:59","thirtyminutes0013","2020-03-07 06:30:00","2020-03-07 06:59:59",1.25,11920,5974,NA,0.0666666666666667,0.00888889382716324,459919,1.33333333333333,392,0.166666759259311,6132.25333333333,0.0336134453781513,0.533333333333333,3083.6875,0.0711111506173059,0.630252100840336,0.26890756302521,98678,648,1.33333333333333,1.33333333333333,222,1.33333333333333,1557.76443284144,392,1,0.133333333333333,0.0672268907563025,3609.22901886686,0.0177777876543265
"thirtyminutes0013#2020-10-31 06:30:00,2020-10-31 06:59:59","thirtyminutes0013","2020-10-31 06:30:00","2020-10-31 06:59:59",1.25,11920,5974,NA,0.0666666666666667,0.00888889382716324,459919,1.33333333333333,392,0.166666759259311,6132.25333333333,0.0336134453781513,0.533333333333333,3083.6875,0.0711111506173059,0.630252100840336,0.26890756302521,98678,648,1.33333333333333,1.33333333333333,222,1.33333333333333,1557.76443284144,392,1,0.133333333333333,0.0672268907563025,3609.22901886686,0.0177777876543265
"thirtyminutes0017#2020-03-08 08:30:00,2020-03-08 08:59:59","thirtyminutes0017","2020-03-08 08:30:00","2020-03-08 08:59:59",0.683333333333333,11807,5305,NA,0.0166666666666667,0.00222222345679081,282076,2.63854999939601,539,0.0911111617284232,6879.90243902439,0.0169491525423729,0.25,3331.33333333333,0.0333333518518621,0.694915254237288,0.254237288135593,49970,39,2.63854999939601,2.63854999939601,352,2.63854999939601,1835.82486974683,539,1,0.0333333333333333,0.0338983050847458,3485.30422491981,0.00444444691358162
"thirtyminutes0017#2020-11-01 08:30:00,2020-11-01 08:59:59","thirtyminutes0017","2020-11-01 08:30:00","2020-11-01 08:59:59",0.683333333333333,11807,5305,NA,0.0166666666666667,0.00222222345679081,282076,2.63854999939601,539,0.0911111617284232,6879.90243902439,0.0169491525423729,0.25,3331.33333333333,0.0333333518518621,0.694915254237288,0.254237288135593,49970,39,2.63854999939601,2.63854999939601,352,2.63854999939601,1835.82486974683,539,1,0.0333333333333333,0.0338983050847458,3485.30422491981,0.00444444691358162
"thirtyminutes0019#2020-03-07 09:30:00,2020-03-07 09:59:59","thirtyminutes0019","2020-03-07 09:30:00","2020-03-07 09:59:59",1.78333333333333,11613,5839,NA,0.133333333333333,0.0177777876543265,651511,2.21666666666667,588,0.237777909876617,6088.88785046729,0.0446927374301676,0.783333333333333,3142.14893617021,0.104444502469168,0.597765363128492,0.262569832402235,147681,113,2.21666666666667,2.21666666666667,117,2.21666666666667,1650.99227052576,588,1,0.283333333333333,0.0949720670391061,3361.1700745905,0.0377777987654438
"thirtyminutes0019#2020-10-31 09:30:00,2020-10-31 09:59:59","thirtyminutes0019","2020-10-31 09:30:00","2020-10-31 09:59:59",1.78333333333333,11613,5839,NA,0.133333333333333,0.0177777876543265,651511,2.21666666666667,588,0.237777909876617,6088.88785046729,0.0446927374301676,0.783333333333333,3142.14893617021,0.104444502469168,0.597765363128492,0.262569832402235,147681,113,2.21666666666667,2.21666666666667,117,2.21666666666667,1650.99227052576,588,1,0.283333333333333,0.0949720670391061,3361.1700745905,0.0377777987654438
"thirtyminutes0021#2020-03-06 10:30:00,2020-03-06 10:59:59","thirtyminutes0021","2020-03-06 10:30:00","2020-03-06 10:59:59",1.35,11825,5031,NA,0.183333333333333,0.0244444580246989,474758,1.66509999831518,656,0.180000100000056,5861.20987654321,0.092436974789916,0.333333333333333,3153.05,0.0444444691358162,0.680672268907563,0.168067226890756,63061,381,1.66509999831518,1.66509999831518,13,1.66509999831518,1392.35402617672,656,1,0.116666666666667,0.0588235294117647,3158.11819251611,0.0155555641975357
"thirtyminutes0021#2020-10-30 10:30:00,2020-10-30 10:59:59","thirtyminutes0021","2020-10-30 10:30:00","2020-10-30 10:59:59",1.35,11825,5031,NA,0.183333333333333,0.0244444580246989,474758,1.66509999831518,656,0.180000100000056,5861.20987654321,0.092436974789916,0.333333333333333,3153.05,0.0444444691358162,0.680672268907563,0.168067226890756,63061,381,1.66509999831518,1.66509999831518,13,1.66509999831518,1392.35402617672,656,1,0.116666666666667,0.0588235294117647,3158.11819251611,0.0155555641975357
"thirtyminutes0023#2020-03-09 11:30:00,2020-03-09 11:59:59","thirtyminutes0023","2020-03-09 11:30:00","2020-03-09 11:59:59",2.15,11822,5698,NA,0.1,0.0133333407407449,781135,2.51666666666667,697,0.2866668