Spaces:
Sleeping
Sleeping
iaravagni
commited on
Commit
·
6e8eb41
0
Parent(s):
Initial commit
Browse files- .gitattributes +40 -0
- README.md +126 -0
- data/outputs/dl_predictions.csv +0 -0
- data/outputs/dl_predictions_raw.csv +0 -0
- data/outputs/ml_predictions.csv +0 -0
- data/outputs/ml_predictions_raw.csv +0 -0
- data/outputs/naive_predictions.csv +0 -0
- data/outputs/naive_predictions_raw.csv +0 -0
- data/processed/combined_dataset.csv +0 -0
- data/processed/dataset_by_patient/patient_001.csv +0 -0
- data/processed/dataset_by_patient/patient_002.csv +0 -0
- data/processed/dataset_by_patient/patient_003.csv +0 -0
- data/processed/dataset_by_patient/patient_004.csv +0 -0
- data/processed/dataset_by_patient/patient_005.csv +0 -0
- data/processed/dataset_by_patient/patient_006.csv +0 -0
- data/processed/dataset_by_patient/patient_007.csv +0 -0
- data/processed/dataset_by_patient/patient_008.csv +0 -0
- data/processed/dataset_by_patient/patient_009.csv +0 -0
- data/processed/dataset_by_patient/patient_010.csv +0 -0
- data/processed/dataset_by_patient/patient_011.csv +0 -0
- data/processed/dataset_by_patient/patient_012.csv +0 -0
- data/processed/dataset_by_patient/patient_013.csv +0 -0
- data/processed/dataset_by_patient/patient_014.csv +0 -0
- data/processed/dataset_by_patient/patient_015.csv +1674 -0
- data/processed/dataset_by_patient/patient_016.csv +0 -0
- data/processed/samples/sample_A.csv +201 -0
- data/processed/samples/sample_B.csv +202 -0
- data/processed/test_dataset.csv +0 -0
- data/processed/train_dataset.csv +0 -0
- data/processed/validation_dataset.csv +0 -0
- glucose_app.py +482 -0
- models/xgb_model.pkl +3 -0
- requirements.txt +0 -0
- scripts/dl_approach.py +354 -0
- scripts/finetuning.py +239 -0
- scripts/make_dataset.py +296 -0
- scripts/metrics.py +74 -0
- scripts/ml_approach.py +183 -0
- scripts/naive_approach.py +356 -0
- scripts/visualizations.py +25 -0
.gitattributes
ADDED
@@ -0,0 +1,40 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
*.7z filter=lfs diff=lfs merge=lfs -text
|
2 |
+
*.arrow filter=lfs diff=lfs merge=lfs -text
|
3 |
+
*.bin filter=lfs diff=lfs merge=lfs -text
|
4 |
+
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
5 |
+
*.ckpt filter=lfs diff=lfs merge=lfs -text
|
6 |
+
*.ftz filter=lfs diff=lfs merge=lfs -text
|
7 |
+
*.gz filter=lfs diff=lfs merge=lfs -text
|
8 |
+
*.h5 filter=lfs diff=lfs merge=lfs -text
|
9 |
+
*.joblib filter=lfs diff=lfs merge=lfs -text
|
10 |
+
*.lfs.* filter=lfs diff=lfs merge=lfs -text
|
11 |
+
*.mlmodel filter=lfs diff=lfs merge=lfs -text
|
12 |
+
*.model filter=lfs diff=lfs merge=lfs -text
|
13 |
+
*.msgpack filter=lfs diff=lfs merge=lfs -text
|
14 |
+
*.npy filter=lfs diff=lfs merge=lfs -text
|
15 |
+
*.npz filter=lfs diff=lfs merge=lfs -text
|
16 |
+
*.onnx filter=lfs diff=lfs merge=lfs -text
|
17 |
+
*.ot filter=lfs diff=lfs merge=lfs -text
|
18 |
+
*.parquet filter=lfs diff=lfs merge=lfs -text
|
19 |
+
*.pb filter=lfs diff=lfs merge=lfs -text
|
20 |
+
*.pickle filter=lfs diff=lfs merge=lfs -text
|
21 |
+
*.pkl filter=lfs diff=lfs merge=lfs -text
|
22 |
+
*.pt filter=lfs diff=lfs merge=lfs -text
|
23 |
+
*.pth filter=lfs diff=lfs merge=lfs -text
|
24 |
+
*.rar filter=lfs diff=lfs merge=lfs -text
|
25 |
+
*.safetensors filter=lfs diff=lfs merge=lfs -text
|
26 |
+
saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
27 |
+
*.tar.* filter=lfs diff=lfs merge=lfs -text
|
28 |
+
*.tar filter=lfs diff=lfs merge=lfs -text
|
29 |
+
*.tflite filter=lfs diff=lfs merge=lfs -text
|
30 |
+
*.tgz filter=lfs diff=lfs merge=lfs -text
|
31 |
+
*.wasm filter=lfs diff=lfs merge=lfs -text
|
32 |
+
*.xz filter=lfs diff=lfs merge=lfs -text
|
33 |
+
*.zip filter=lfs diff=lfs merge=lfs -text
|
34 |
+
*.zst filter=lfs diff=lfs merge=lfs -text
|
35 |
+
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
36 |
+
data/processed/data.json filter=lfs diff=lfs merge=lfs -text
|
37 |
+
data/processed/combined_dataset.json filter=lfs diff=lfs merge=lfs -text
|
38 |
+
data/processed/input_data.json filter=lfs diff=lfs merge=lfs -text
|
39 |
+
git filter=lfs diff=lfs merge=lfs -text
|
40 |
+
add filter=lfs diff=lfs merge=lfs -text
|
README.md
ADDED
@@ -0,0 +1,126 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# 🩸 Blood Glucose Level Prediction
|
2 |
+
|
3 |
+
This project explores multiple approaches for predicting blood glucose levels using multimodal data from the Big Ideas dataset. It includes data from wearables (accelerometer), nutritional inputs, and demographic/medical history features. Our goal is to evaluate and compare naive, machine learning, and deep learning methods to provide personalized and accurate glucose level forecasts.
|
4 |
+
|
5 |
+
---
|
6 |
+
|
7 |
+
## 🚀 Problem Statement
|
8 |
+
|
9 |
+
Blood glucose levels are influenced by numerous variables including physical activity, food intake, and individual physiology. Early prediction can empower individuals to manage and prevent health complications, especially for those with diabetes. This project seeks to build models that can forecast glucose levels based on a combination of behavioral and clinical data.
|
10 |
+
|
11 |
+
---
|
12 |
+
|
13 |
+
## 📊 Dataset Preparation
|
14 |
+
|
15 |
+
Data is structured from the **Big Ideas dataset** to include the following features:
|
16 |
+
|
17 |
+
- Glucose Level (target)
|
18 |
+
- Accelerometer
|
19 |
+
- Calories
|
20 |
+
- Carbs
|
21 |
+
- Sugar
|
22 |
+
- Gender
|
23 |
+
- HbA1c
|
24 |
+
- Age
|
25 |
+
|
26 |
+
The dataset is split as follows:
|
27 |
+
- **Train:** 13 patients (~80%)
|
28 |
+
- **Validation:** 2 patients from the training set (~15%)
|
29 |
+
- **Test:** 3 patients (~20%)
|
30 |
+
|
31 |
+
### Generated Files:
|
32 |
+
- Individual CSV for each patient
|
33 |
+
- Combined dataset CSV
|
34 |
+
- Train/Validation/Test CSVs
|
35 |
+
|
36 |
+
---
|
37 |
+
|
38 |
+
## 🧠 Modeling Approaches
|
39 |
+
|
40 |
+
We evaluated 3 approaches to predict glucose levels:
|
41 |
+
|
42 |
+
### 1. 🧮 Naive Approach
|
43 |
+
- Model: `ibm-granite/granite-timeseries-ttm-r2` (zero-shot)
|
44 |
+
- No fine-tuning
|
45 |
+
|
46 |
+
### 2. 🌲 Machine Learning
|
47 |
+
- **Model:** XGBoost Regressor
|
48 |
+
```python
|
49 |
+
xgb_model = xgb.XGBRegressor(
|
50 |
+
n_estimators=50,
|
51 |
+
learning_rate=0.2,
|
52 |
+
max_depth=5,
|
53 |
+
objective='reg:squarederror',
|
54 |
+
random_state=42
|
55 |
+
)
|
56 |
+
```
|
57 |
+
|
58 |
+
### 3. 🤖 Deep Learning
|
59 |
+
- **Model:** Fine-tuned `granite-timeseries-ttm-r2` on the structured dataset
|
60 |
+
|
61 |
+
---
|
62 |
+
|
63 |
+
## 📈 Results
|
64 |
+
|
65 |
+
| Approach | RMSE |
|
66 |
+
|----------|------|
|
67 |
+
| Naive | 3.7812 |
|
68 |
+
| ML | 3.9681 |
|
69 |
+
| DL | 3.8762 |
|
70 |
+
|
71 |
+
---
|
72 |
+
|
73 |
+
## 🌐 Streamlit Web App
|
74 |
+
|
75 |
+
The interactive app allows users to:
|
76 |
+
- Upload the 3 required CSVs
|
77 |
+
- Select preloaded patient samples
|
78 |
+
- View and compare predictions from:
|
79 |
+
- Naive model
|
80 |
+
- Machine Learning model
|
81 |
+
- Deep Learning model
|
82 |
+
|
83 |
+
> 📍 A working version is deployed and publicly accessible [**here**](#) *(add your link)*
|
84 |
+
|
85 |
+
---
|
86 |
+
|
87 |
+
## 📽️ Final Deliverables
|
88 |
+
|
89 |
+
- 🔗 [10-minute video presentation](#)
|
90 |
+
- 🔗 [Live Streamlit app](#)
|
91 |
+
|
92 |
+
---
|
93 |
+
|
94 |
+
## 🔍 Ethics Statement
|
95 |
+
|
96 |
+
While this project focuses on non-invasive glucose prediction, it is not intended for real-time clinical use. Any deployment of such tools must undergo rigorous validation and ethical review. We aim to respect user privacy, and datasets used in this project are anonymized and publicly available.
|
97 |
+
|
98 |
+
---
|
99 |
+
|
100 |
+
## ▶️ How to Run
|
101 |
+
|
102 |
+
Follow these steps to set up the environment and launch the Streamlit app:
|
103 |
+
|
104 |
+
1. **Clone the repository:**
|
105 |
+
```bash
|
106 |
+
git clone https://github.com/your-username/glucose-prediction.git
|
107 |
+
cd glucose-prediction
|
108 |
+
```
|
109 |
+
|
110 |
+
2. **Create and activate a virtual environment:**
|
111 |
+
```bash
|
112 |
+
python -m venv venv
|
113 |
+
source venv/bin/activate # On Windows use: venv\Scripts\activate
|
114 |
+
```
|
115 |
+
|
116 |
+
3. **Install dependencies:**
|
117 |
+
```bash
|
118 |
+
pip install -r requirements.txt
|
119 |
+
```
|
120 |
+
|
121 |
+
4. **Run the Streamlit app:**
|
122 |
+
```bash
|
123 |
+
streamlit run glucose_app.py --server.maxUploadSize=1000
|
124 |
+
```
|
125 |
+
|
126 |
+
This will launch the interactive app in your browser, allowing you to upload data and view predictions from the three modeling approaches.
|
data/outputs/dl_predictions.csv
ADDED
The diff for this file is too large to render.
See raw diff
|
|
data/outputs/dl_predictions_raw.csv
ADDED
The diff for this file is too large to render.
See raw diff
|
|
data/outputs/ml_predictions.csv
ADDED
The diff for this file is too large to render.
See raw diff
|
|
data/outputs/ml_predictions_raw.csv
ADDED
The diff for this file is too large to render.
See raw diff
|
|
data/outputs/naive_predictions.csv
ADDED
The diff for this file is too large to render.
See raw diff
|
|
data/outputs/naive_predictions_raw.csv
ADDED
The diff for this file is too large to render.
See raw diff
|
|
data/processed/combined_dataset.csv
ADDED
The diff for this file is too large to render.
See raw diff
|
|
data/processed/dataset_by_patient/patient_001.csv
ADDED
The diff for this file is too large to render.
See raw diff
|
|
data/processed/dataset_by_patient/patient_002.csv
ADDED
The diff for this file is too large to render.
See raw diff
|
|
data/processed/dataset_by_patient/patient_003.csv
ADDED
The diff for this file is too large to render.
See raw diff
|
|
data/processed/dataset_by_patient/patient_004.csv
ADDED
The diff for this file is too large to render.
See raw diff
|
|
data/processed/dataset_by_patient/patient_005.csv
ADDED
The diff for this file is too large to render.
See raw diff
|
|
data/processed/dataset_by_patient/patient_006.csv
ADDED
The diff for this file is too large to render.
See raw diff
|
|
data/processed/dataset_by_patient/patient_007.csv
ADDED
The diff for this file is too large to render.
See raw diff
|
|
data/processed/dataset_by_patient/patient_008.csv
ADDED
The diff for this file is too large to render.
See raw diff
|
|
data/processed/dataset_by_patient/patient_009.csv
ADDED
The diff for this file is too large to render.
See raw diff
|
|
data/processed/dataset_by_patient/patient_010.csv
ADDED
The diff for this file is too large to render.
See raw diff
|
|
data/processed/dataset_by_patient/patient_011.csv
ADDED
The diff for this file is too large to render.
See raw diff
|
|
data/processed/dataset_by_patient/patient_012.csv
ADDED
The diff for this file is too large to render.
See raw diff
|
|
data/processed/dataset_by_patient/patient_013.csv
ADDED
The diff for this file is too large to render.
See raw diff
|
|
data/processed/dataset_by_patient/patient_014.csv
ADDED
The diff for this file is too large to render.
See raw diff
|
|
data/processed/dataset_by_patient/patient_015.csv
ADDED
@@ -0,0 +1,1674 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
,Timestamp,Glucose,Accelerometer,Calories,Carbs,Sugar,Gender,HbA1c,Age
|
2 |
+
11,2020-07-19 17:33:52,99.0,65.76,0.0,0.0,0.0,1,5.5,49
|
3 |
+
12,2020-07-19 17:38:52,97.0,65.47,0.0,0.0,0.0,1,5.5,49
|
4 |
+
13,2020-07-19 17:43:52,100.0,65.76,0.0,0.0,0.0,1,5.5,49
|
5 |
+
14,2020-07-19 17:48:52,106.0,65.44,0.0,0.0,0.0,1,5.5,49
|
6 |
+
15,2020-07-19 17:53:52,110.0,65.8,0.0,0.0,0.0,1,5.5,49
|
7 |
+
16,2020-07-19 17:58:52,108.0,65.51,0.0,0.0,0.0,1,5.5,49
|
8 |
+
17,2020-07-19 18:03:52,103.0,65.32,0.0,0.0,0.0,1,5.5,49
|
9 |
+
18,2020-07-19 18:08:52,98.0,65.3,0.0,0.0,0.0,1,5.5,49
|
10 |
+
19,2020-07-19 18:13:52,97.0,64.9,0.0,0.0,0.0,1,5.5,49
|
11 |
+
20,2020-07-19 18:18:52,96.0,66.32,0.0,0.0,0.0,1,5.5,49
|
12 |
+
21,2020-07-19 18:23:52,97.0,66.07,0.0,0.0,0.0,1,5.5,49
|
13 |
+
22,2020-07-19 18:28:52,98.0,65.3,0.0,0.0,0.0,1,5.5,49
|
14 |
+
23,2020-07-19 18:33:52,98.0,67.47,0.0,0.0,0.0,1,5.5,49
|
15 |
+
24,2020-07-19 18:38:52,99.0,66.39,0.0,0.0,0.0,1,5.5,49
|
16 |
+
25,2020-07-19 18:43:52,96.0,66.88,0.0,0.0,0.0,1,5.5,49
|
17 |
+
26,2020-07-19 18:48:52,92.0,66.19,0.0,0.0,0.0,1,5.5,49
|
18 |
+
27,2020-07-19 18:53:52,87.0,67.04,0.0,0.0,0.0,1,5.5,49
|
19 |
+
28,2020-07-19 18:58:52,82.0,66.02,0.0,0.0,0.0,1,5.5,49
|
20 |
+
29,2020-07-19 19:03:52,81.0,67.01,0.0,0.0,0.0,1,5.5,49
|
21 |
+
30,2020-07-19 19:08:52,88.0,68.25,0.0,0.0,0.0,1,5.5,49
|
22 |
+
31,2020-07-19 19:13:52,98.0,66.93,0.0,0.0,0.0,1,5.5,49
|
23 |
+
32,2020-07-19 19:18:52,100.0,68.3,0.0,0.0,0.0,1,5.5,49
|
24 |
+
33,2020-07-19 19:23:52,91.0,66.83,0.0,0.0,0.0,1,5.5,49
|
25 |
+
34,2020-07-19 19:28:52,82.0,67.08,0.0,0.0,0.0,1,5.5,49
|
26 |
+
35,2020-07-19 19:33:52,85.0,66.35,0.0,0.0,0.0,1,5.5,49
|
27 |
+
36,2020-07-19 19:38:52,89.0,66.62,0.0,0.0,0.0,1,5.5,49
|
28 |
+
37,2020-07-19 19:43:52,87.0,66.6,0.0,0.0,0.0,1,5.5,49
|
29 |
+
38,2020-07-19 19:48:52,74.0,65.53,0.0,0.0,0.0,1,5.5,49
|
30 |
+
39,2020-07-19 19:53:52,60.0,65.53,0.0,0.0,0.0,1,5.5,49
|
31 |
+
40,2020-07-19 19:58:52,50.0,64.35,0.0,0.0,0.0,1,5.5,49
|
32 |
+
41,2020-07-19 20:03:52,42.0,64.65,0.0,0.0,0.0,1,5.5,49
|
33 |
+
42,2020-07-19 20:13:52,50.0,66.32,0.0,0.0,0.0,1,5.5,49
|
34 |
+
43,2020-07-19 20:18:52,61.0,66.05,0.0,0.0,0.0,1,5.5,49
|
35 |
+
44,2020-07-19 20:23:52,75.0,65.19,0.0,0.0,0.0,1,5.5,49
|
36 |
+
45,2020-07-19 20:28:52,87.0,64.01,0.0,0.0,0.0,1,5.5,49
|
37 |
+
46,2020-07-19 20:33:52,92.0,64.37,0.0,0.0,0.0,1,5.5,49
|
38 |
+
47,2020-07-19 20:38:52,84.0,63.53,0.0,0.0,0.0,1,5.5,49
|
39 |
+
48,2020-07-19 20:43:54,72.0,64.66,0.0,0.0,0.0,1,5.5,49
|
40 |
+
49,2020-07-19 20:48:54,61.0,64.33,0.0,0.0,0.0,1,5.5,49
|
41 |
+
50,2020-07-19 20:53:54,67.0,63.63,0.0,0.0,0.0,1,5.5,49
|
42 |
+
51,2020-07-19 20:58:54,81.0,64.14,0.0,0.0,0.0,1,5.5,49
|
43 |
+
52,2020-07-19 21:03:55,97.0,63.63,0.0,0.0,0.0,1,5.5,49
|
44 |
+
53,2020-07-19 21:08:54,105.0,64.24,0.0,0.0,0.0,1,5.5,49
|
45 |
+
54,2020-07-19 21:13:55,105.0,65.0,0.0,0.0,0.0,1,5.5,49
|
46 |
+
55,2020-07-19 21:18:53,104.0,63.89,0.0,0.0,0.0,1,5.5,49
|
47 |
+
56,2020-07-19 21:23:53,102.0,65.46,0.0,0.0,0.0,1,5.5,49
|
48 |
+
57,2020-07-19 21:28:53,103.0,64.12,0.0,0.0,0.0,1,5.5,49
|
49 |
+
58,2020-07-19 21:33:54,103.0,64.72,0.0,0.0,0.0,1,5.5,49
|
50 |
+
59,2020-07-19 21:38:54,103.0,63.46,0.0,0.0,0.0,1,5.5,49
|
51 |
+
60,2020-07-19 21:43:53,101.0,63.85,0.0,0.0,0.0,1,5.5,49
|
52 |
+
61,2020-07-19 21:48:54,97.0,63.3,0.0,0.0,0.0,1,5.5,49
|
53 |
+
62,2020-07-19 21:53:54,94.0,63.36,0.0,0.0,0.0,1,5.5,49
|
54 |
+
63,2020-07-19 21:58:54,92.0,63.61,0.0,0.0,0.0,1,5.5,49
|
55 |
+
64,2020-07-19 22:03:54,89.0,63.45,0.0,0.0,0.0,1,5.5,49
|
56 |
+
65,2020-07-19 22:08:54,87.0,63.26,0.0,0.0,0.0,1,5.5,49
|
57 |
+
66,2020-07-19 22:13:54,86.0,63.04,0.0,0.0,0.0,1,5.5,49
|
58 |
+
67,2020-07-19 22:18:54,87.0,64.43,0.0,0.0,0.0,1,5.5,49
|
59 |
+
68,2020-07-19 22:23:54,90.0,64.75,0.0,0.0,0.0,1,5.5,49
|
60 |
+
69,2020-07-19 22:28:54,93.0,63.96,0.0,0.0,0.0,1,5.5,49
|
61 |
+
70,2020-07-19 22:33:54,96.0,63.75,0.0,0.0,0.0,1,5.5,49
|
62 |
+
71,2020-07-19 22:38:54,97.0,63.56,0.0,0.0,0.0,1,5.5,49
|
63 |
+
72,2020-07-19 22:43:54,98.0,63.37,0.0,0.0,0.0,1,5.5,49
|
64 |
+
73,2020-07-19 22:48:54,98.0,63.75,0.0,0.0,0.0,1,5.5,49
|
65 |
+
74,2020-07-19 22:53:54,99.0,64.53,0.0,0.0,0.0,1,5.5,49
|
66 |
+
75,2020-07-19 22:58:54,98.0,63.84,0.0,0.0,0.0,1,5.5,49
|
67 |
+
76,2020-07-19 23:03:54,99.0,64.56,0.0,0.0,0.0,1,5.5,49
|
68 |
+
77,2020-07-19 23:08:54,101.0,64.85,0.0,0.0,0.0,1,5.5,49
|
69 |
+
78,2020-07-19 23:13:54,108.0,64.26,0.0,0.0,0.0,1,5.5,49
|
70 |
+
79,2020-07-19 23:18:54,112.0,65.18,0.0,0.0,0.0,1,5.5,49
|
71 |
+
80,2020-07-19 23:23:54,112.0,64.85,0.0,0.0,0.0,1,5.5,49
|
72 |
+
81,2020-07-19 23:28:54,114.0,64.22,0.0,0.0,0.0,1,5.5,49
|
73 |
+
82,2020-07-19 23:33:54,117.0,64.45,0.0,0.0,0.0,1,5.5,49
|
74 |
+
83,2020-07-19 23:38:54,122.0,64.91,0.0,0.0,0.0,1,5.5,49
|
75 |
+
84,2020-07-19 23:43:54,124.0,65.05,0.0,0.0,0.0,1,5.5,49
|
76 |
+
85,2020-07-19 23:48:54,129.0,64.9,0.0,0.0,0.0,1,5.5,49
|
77 |
+
86,2020-07-19 23:53:54,131.0,64.93,0.0,0.0,0.0,1,5.5,49
|
78 |
+
87,2020-07-19 23:58:54,137.0,63.96,0.0,0.0,0.0,1,5.5,49
|
79 |
+
88,2020-07-20 00:03:53,146.0,63.64,0.0,0.0,0.0,1,5.5,49
|
80 |
+
89,2020-07-20 21:13:54,124.0,0.0,0.0,0.0,0.0,1,5.5,49
|
81 |
+
90,2020-07-20 21:18:54,120.0,0.0,0.0,0.0,0.0,1,5.5,49
|
82 |
+
91,2020-07-20 21:23:54,116.0,0.0,0.0,0.0,0.0,1,5.5,49
|
83 |
+
92,2020-07-20 21:28:54,115.0,0.0,0.0,0.0,0.0,1,5.5,49
|
84 |
+
93,2020-07-20 21:33:54,116.0,0.0,0.0,0.0,0.0,1,5.5,49
|
85 |
+
94,2020-07-20 21:38:54,119.0,0.0,0.0,0.0,0.0,1,5.5,49
|
86 |
+
95,2020-07-20 21:43:54,119.0,0.0,0.0,0.0,0.0,1,5.5,49
|
87 |
+
96,2020-07-20 21:48:54,117.0,0.0,0.0,0.0,0.0,1,5.5,49
|
88 |
+
97,2020-07-20 21:53:54,113.0,0.0,0.0,0.0,0.0,1,5.5,49
|
89 |
+
98,2020-07-20 21:58:54,111.0,0.0,0.0,0.0,0.0,1,5.5,49
|
90 |
+
99,2020-07-20 22:03:54,111.0,0.0,0.0,0.0,0.0,1,5.5,49
|
91 |
+
100,2020-07-20 22:08:54,112.0,0.0,0.0,0.0,0.0,1,5.5,49
|
92 |
+
101,2020-07-20 22:13:54,111.0,0.0,0.0,0.0,0.0,1,5.5,49
|
93 |
+
102,2020-07-20 22:18:54,110.0,0.0,0.0,0.0,0.0,1,5.5,49
|
94 |
+
103,2020-07-20 22:23:54,111.0,0.0,0.0,0.0,0.0,1,5.5,49
|
95 |
+
104,2020-07-20 22:28:54,113.0,0.0,0.0,0.0,0.0,1,5.5,49
|
96 |
+
105,2020-07-20 22:33:54,114.0,0.0,0.0,0.0,0.0,1,5.5,49
|
97 |
+
106,2020-07-20 22:38:54,114.0,0.0,0.0,0.0,0.0,1,5.5,49
|
98 |
+
107,2020-07-20 22:43:54,113.0,0.0,0.0,0.0,0.0,1,5.5,49
|
99 |
+
108,2020-07-20 22:48:54,113.0,0.0,0.0,0.0,0.0,1,5.5,49
|
100 |
+
109,2020-07-20 22:53:54,112.0,0.0,0.0,0.0,0.0,1,5.5,49
|
101 |
+
110,2020-07-20 22:58:54,112.0,0.0,0.0,0.0,0.0,1,5.5,49
|
102 |
+
111,2020-07-20 23:03:54,113.0,0.0,0.0,0.0,0.0,1,5.5,49
|
103 |
+
112,2020-07-20 23:08:54,114.0,0.0,0.0,0.0,0.0,1,5.5,49
|
104 |
+
113,2020-07-20 23:13:54,114.0,0.0,0.0,0.0,0.0,1,5.5,49
|
105 |
+
114,2020-07-20 23:18:54,113.0,0.0,0.0,0.0,0.0,1,5.5,49
|
106 |
+
115,2020-07-20 23:23:54,112.0,0.0,0.0,0.0,0.0,1,5.5,49
|
107 |
+
116,2020-07-20 23:28:54,112.0,0.0,0.0,0.0,0.0,1,5.5,49
|
108 |
+
117,2020-07-20 23:33:54,112.0,0.0,0.0,0.0,0.0,1,5.5,49
|
109 |
+
118,2020-07-20 23:38:54,113.0,0.0,0.0,0.0,0.0,1,5.5,49
|
110 |
+
119,2020-07-20 23:43:54,115.0,0.0,0.0,0.0,0.0,1,5.5,49
|
111 |
+
120,2020-07-20 23:48:54,117.0,0.0,0.0,0.0,0.0,1,5.5,49
|
112 |
+
121,2020-07-20 23:53:54,118.0,0.0,0.0,0.0,0.0,1,5.5,49
|
113 |
+
122,2020-07-20 23:58:54,117.0,0.0,0.0,0.0,0.0,1,5.5,49
|
114 |
+
123,2020-07-21 00:03:54,114.0,0.0,0.0,0.0,0.0,1,5.5,49
|
115 |
+
124,2020-07-21 00:08:54,111.0,0.0,0.0,0.0,0.0,1,5.5,49
|
116 |
+
125,2020-07-21 00:13:54,109.0,0.0,0.0,0.0,0.0,1,5.5,49
|
117 |
+
126,2020-07-21 00:18:54,107.0,0.0,0.0,0.0,0.0,1,5.5,49
|
118 |
+
127,2020-07-21 00:23:53,107.0,0.0,0.0,0.0,0.0,1,5.5,49
|
119 |
+
128,2020-07-21 00:28:54,106.0,0.0,0.0,0.0,0.0,1,5.5,49
|
120 |
+
129,2020-07-21 00:33:53,105.0,0.0,0.0,0.0,0.0,1,5.5,49
|
121 |
+
130,2020-07-21 00:38:53,105.0,0.0,0.0,0.0,0.0,1,5.5,49
|
122 |
+
131,2020-07-21 00:43:53,108.0,0.0,0.0,0.0,0.0,1,5.5,49
|
123 |
+
132,2020-07-21 00:48:53,116.0,0.0,0.0,0.0,0.0,1,5.5,49
|
124 |
+
133,2020-07-21 00:53:53,126.0,0.0,0.0,0.0,0.0,1,5.5,49
|
125 |
+
134,2020-07-21 00:58:54,136.0,0.0,0.0,0.0,0.0,1,5.5,49
|
126 |
+
135,2020-07-21 01:03:54,143.0,0.0,0.0,0.0,0.0,1,5.5,49
|
127 |
+
136,2020-07-21 01:08:54,147.0,0.0,0.0,0.0,0.0,1,5.5,49
|
128 |
+
137,2020-07-21 01:13:54,145.0,0.0,0.0,0.0,0.0,1,5.5,49
|
129 |
+
138,2020-07-21 01:18:54,140.0,0.0,0.0,0.0,0.0,1,5.5,49
|
130 |
+
139,2020-07-21 01:23:54,134.0,0.0,0.0,0.0,0.0,1,5.5,49
|
131 |
+
140,2020-07-21 01:28:54,130.0,0.0,0.0,0.0,0.0,1,5.5,49
|
132 |
+
141,2020-07-21 01:33:54,127.0,0.0,0.0,0.0,0.0,1,5.5,49
|
133 |
+
142,2020-07-21 01:38:54,126.0,0.0,0.0,0.0,0.0,1,5.5,49
|
134 |
+
143,2020-07-21 01:43:54,126.0,0.0,0.0,0.0,0.0,1,5.5,49
|
135 |
+
144,2020-07-21 01:48:54,127.0,0.0,0.0,0.0,0.0,1,5.5,49
|
136 |
+
145,2020-07-21 01:53:54,129.0,0.0,0.0,0.0,0.0,1,5.5,49
|
137 |
+
146,2020-07-21 01:58:53,130.0,0.0,0.0,0.0,0.0,1,5.5,49
|
138 |
+
147,2020-07-21 02:03:54,131.0,0.0,0.0,0.0,0.0,1,5.5,49
|
139 |
+
148,2020-07-21 02:08:54,132.0,0.0,0.0,0.0,0.0,1,5.5,49
|
140 |
+
149,2020-07-21 02:13:53,132.0,0.0,0.0,0.0,0.0,1,5.5,49
|
141 |
+
150,2020-07-21 02:18:54,132.0,0.0,0.0,0.0,0.0,1,5.5,49
|
142 |
+
151,2020-07-21 02:23:54,131.0,0.0,0.0,0.0,0.0,1,5.5,49
|
143 |
+
152,2020-07-21 02:28:54,130.0,0.0,0.0,0.0,0.0,1,5.5,49
|
144 |
+
153,2020-07-21 02:33:54,129.0,0.0,0.0,0.0,0.0,1,5.5,49
|
145 |
+
154,2020-07-21 02:38:54,128.0,0.0,0.0,0.0,0.0,1,5.5,49
|
146 |
+
155,2020-07-21 02:43:54,128.0,0.0,0.0,0.0,0.0,1,5.5,49
|
147 |
+
156,2020-07-21 02:48:54,128.0,0.0,0.0,0.0,0.0,1,5.5,49
|
148 |
+
157,2020-07-21 02:53:53,128.0,0.0,0.0,0.0,0.0,1,5.5,49
|
149 |
+
158,2020-07-21 02:58:53,129.0,0.0,0.0,0.0,0.0,1,5.5,49
|
150 |
+
159,2020-07-21 03:03:54,130.0,0.0,0.0,0.0,0.0,1,5.5,49
|
151 |
+
160,2020-07-21 03:08:54,130.0,0.0,0.0,0.0,0.0,1,5.5,49
|
152 |
+
161,2020-07-21 03:13:54,128.0,0.0,0.0,0.0,0.0,1,5.5,49
|
153 |
+
162,2020-07-21 03:18:54,126.0,0.0,0.0,0.0,0.0,1,5.5,49
|
154 |
+
163,2020-07-21 03:23:54,124.0,0.0,0.0,0.0,0.0,1,5.5,49
|
155 |
+
164,2020-07-21 03:28:54,123.0,0.0,0.0,0.0,0.0,1,5.5,49
|
156 |
+
165,2020-07-21 03:33:54,123.0,0.0,0.0,0.0,0.0,1,5.5,49
|
157 |
+
166,2020-07-21 03:38:54,124.0,0.0,0.0,0.0,0.0,1,5.5,49
|
158 |
+
167,2020-07-21 03:43:54,125.0,0.0,0.0,0.0,0.0,1,5.5,49
|
159 |
+
168,2020-07-21 03:48:53,126.0,0.0,0.0,0.0,0.0,1,5.5,49
|
160 |
+
169,2020-07-21 03:53:54,127.0,0.0,0.0,0.0,0.0,1,5.5,49
|
161 |
+
170,2020-07-21 03:58:54,127.0,0.0,0.0,0.0,0.0,1,5.5,49
|
162 |
+
171,2020-07-21 04:03:54,128.0,0.0,0.0,0.0,0.0,1,5.5,49
|
163 |
+
172,2020-07-21 04:08:54,129.0,0.0,0.0,0.0,0.0,1,5.5,49
|
164 |
+
173,2020-07-21 04:13:54,129.0,0.0,0.0,0.0,0.0,1,5.5,49
|
165 |
+
174,2020-07-21 04:18:54,129.0,0.0,0.0,0.0,0.0,1,5.5,49
|
166 |
+
175,2020-07-21 04:23:54,129.0,0.0,0.0,0.0,0.0,1,5.5,49
|
167 |
+
176,2020-07-21 04:28:54,129.0,0.0,0.0,0.0,0.0,1,5.5,49
|
168 |
+
177,2020-07-21 04:33:54,129.0,0.0,0.0,0.0,0.0,1,5.5,49
|
169 |
+
178,2020-07-21 04:38:54,128.0,0.0,0.0,0.0,0.0,1,5.5,49
|
170 |
+
179,2020-07-21 04:43:54,127.0,0.0,0.0,0.0,0.0,1,5.5,49
|
171 |
+
180,2020-07-21 04:48:54,127.0,0.0,0.0,0.0,0.0,1,5.5,49
|
172 |
+
181,2020-07-21 04:53:54,126.0,0.0,0.0,0.0,0.0,1,5.5,49
|
173 |
+
182,2020-07-21 04:58:54,124.0,0.0,0.0,0.0,0.0,1,5.5,49
|
174 |
+
183,2020-07-21 05:03:54,123.0,0.0,0.0,0.0,0.0,1,5.5,49
|
175 |
+
184,2020-07-21 05:08:54,123.0,0.0,0.0,0.0,0.0,1,5.5,49
|
176 |
+
185,2020-07-21 05:13:54,124.0,0.0,0.0,0.0,0.0,1,5.5,49
|
177 |
+
186,2020-07-21 05:18:54,124.0,0.0,0.0,0.0,0.0,1,5.5,49
|
178 |
+
187,2020-07-21 05:23:54,123.0,0.0,0.0,0.0,0.0,1,5.5,49
|
179 |
+
188,2020-07-21 05:28:53,123.0,0.0,0.0,0.0,0.0,1,5.5,49
|
180 |
+
189,2020-07-21 05:33:54,122.0,0.0,0.0,0.0,0.0,1,5.5,49
|
181 |
+
190,2020-07-21 05:38:53,121.0,0.0,0.0,0.0,0.0,1,5.5,49
|
182 |
+
191,2020-07-21 05:43:54,120.0,0.0,0.0,0.0,0.0,1,5.5,49
|
183 |
+
192,2020-07-21 05:48:54,119.0,0.0,0.0,0.0,0.0,1,5.5,49
|
184 |
+
193,2020-07-21 05:53:53,117.0,0.0,0.0,0.0,0.0,1,5.5,49
|
185 |
+
194,2020-07-21 05:58:53,114.0,0.0,0.0,0.0,0.0,1,5.5,49
|
186 |
+
195,2020-07-21 06:03:54,114.0,0.0,0.0,0.0,0.0,1,5.5,49
|
187 |
+
196,2020-07-21 06:08:54,116.0,0.0,0.0,0.0,0.0,1,5.5,49
|
188 |
+
197,2020-07-21 06:13:53,119.0,0.0,0.0,0.0,0.0,1,5.5,49
|
189 |
+
198,2020-07-21 06:18:53,121.0,0.0,0.0,0.0,0.0,1,5.5,49
|
190 |
+
199,2020-07-21 06:23:54,121.0,0.0,0.0,0.0,0.0,1,5.5,49
|
191 |
+
200,2020-07-21 06:28:53,122.0,0.0,0.0,0.0,0.0,1,5.5,49
|
192 |
+
201,2020-07-21 06:33:52,122.0,0.0,0.0,0.0,0.0,1,5.5,49
|
193 |
+
202,2020-07-21 06:38:53,121.0,0.0,0.0,0.0,0.0,1,5.5,49
|
194 |
+
203,2020-07-21 06:43:53,120.0,0.0,0.0,0.0,0.0,1,5.5,49
|
195 |
+
204,2020-07-21 06:48:53,120.0,0.0,0.0,0.0,0.0,1,5.5,49
|
196 |
+
205,2020-07-21 06:53:53,122.0,0.0,0.0,0.0,0.0,1,5.5,49
|
197 |
+
206,2020-07-21 06:58:53,124.0,0.0,0.0,0.0,0.0,1,5.5,49
|
198 |
+
207,2020-07-21 07:03:53,126.0,0.0,0.0,0.0,0.0,1,5.5,49
|
199 |
+
208,2020-07-21 07:08:53,126.0,0.0,0.0,0.0,0.0,1,5.5,49
|
200 |
+
209,2020-07-21 07:13:53,126.0,0.0,0.0,0.0,0.0,1,5.5,49
|
201 |
+
210,2020-07-21 07:18:53,125.0,0.0,0.0,0.0,0.0,1,5.5,49
|
202 |
+
211,2020-07-21 07:23:53,124.0,0.0,0.0,0.0,0.0,1,5.5,49
|
203 |
+
212,2020-07-21 07:28:52,123.0,0.0,0.0,0.0,0.0,1,5.5,49
|
204 |
+
213,2020-07-21 07:33:52,123.0,0.0,0.0,0.0,0.0,1,5.5,49
|
205 |
+
214,2020-07-21 07:38:53,123.0,0.0,0.0,0.0,0.0,1,5.5,49
|
206 |
+
215,2020-07-21 07:43:53,123.0,0.0,0.0,0.0,0.0,1,5.5,49
|
207 |
+
216,2020-07-21 07:48:53,123.0,0.0,0.0,0.0,0.0,1,5.5,49
|
208 |
+
217,2020-07-21 07:53:52,124.0,0.0,0.0,0.0,0.0,1,5.5,49
|
209 |
+
218,2020-07-21 07:58:52,124.0,0.0,0.0,0.0,0.0,1,5.5,49
|
210 |
+
219,2020-07-21 08:03:53,124.0,0.0,0.0,0.0,0.0,1,5.5,49
|
211 |
+
220,2020-07-21 08:08:52,124.0,0.0,0.0,0.0,0.0,1,5.5,49
|
212 |
+
221,2020-07-21 08:13:53,124.0,0.0,0.0,0.0,0.0,1,5.5,49
|
213 |
+
222,2020-07-21 08:18:52,123.0,0.0,0.0,0.0,0.0,1,5.5,49
|
214 |
+
223,2020-07-21 08:23:52,123.0,0.0,0.0,0.0,0.0,1,5.5,49
|
215 |
+
224,2020-07-21 08:28:53,123.0,0.0,0.0,0.0,0.0,1,5.5,49
|
216 |
+
225,2020-07-21 08:33:53,123.0,0.0,0.0,0.0,0.0,1,5.5,49
|
217 |
+
226,2020-07-21 08:38:52,123.0,0.0,0.0,0.0,0.0,1,5.5,49
|
218 |
+
227,2020-07-21 08:43:53,123.0,0.0,0.0,0.0,0.0,1,5.5,49
|
219 |
+
228,2020-07-21 08:48:52,123.0,0.0,0.0,0.0,0.0,1,5.5,49
|
220 |
+
229,2020-07-21 08:53:52,120.0,0.0,0.0,0.0,0.0,1,5.5,49
|
221 |
+
230,2020-07-21 08:58:53,116.0,0.0,0.0,0.0,0.0,1,5.5,49
|
222 |
+
231,2020-07-21 09:03:53,111.0,0.0,0.0,0.0,0.0,1,5.5,49
|
223 |
+
232,2020-07-21 09:08:52,109.0,0.0,0.0,0.0,0.0,1,5.5,49
|
224 |
+
233,2020-07-21 09:13:53,108.0,0.0,0.0,0.0,0.0,1,5.5,49
|
225 |
+
234,2020-07-21 09:18:53,107.0,0.0,0.0,0.0,0.0,1,5.5,49
|
226 |
+
235,2020-07-21 09:23:52,105.0,0.0,0.0,0.0,0.0,1,5.5,49
|
227 |
+
236,2020-07-21 09:28:53,102.0,0.0,0.0,0.0,0.0,1,5.5,49
|
228 |
+
237,2020-07-21 09:33:52,101.0,0.0,0.0,0.0,0.0,1,5.5,49
|
229 |
+
238,2020-07-21 09:38:52,101.0,0.0,0.0,0.0,0.0,1,5.5,49
|
230 |
+
239,2020-07-21 09:43:53,101.0,0.0,0.0,0.0,0.0,1,5.5,49
|
231 |
+
240,2020-07-21 09:48:53,101.0,0.0,0.0,0.0,0.0,1,5.5,49
|
232 |
+
241,2020-07-21 09:53:52,101.0,0.0,0.0,0.0,0.0,1,5.5,49
|
233 |
+
242,2020-07-21 09:58:52,103.0,0.0,0.0,0.0,0.0,1,5.5,49
|
234 |
+
243,2020-07-21 10:03:52,104.0,0.0,0.0,0.0,0.0,1,5.5,49
|
235 |
+
244,2020-07-21 10:08:53,104.0,0.0,0.0,0.0,0.0,1,5.5,49
|
236 |
+
245,2020-07-21 10:13:53,102.0,0.0,0.0,0.0,0.0,1,5.5,49
|
237 |
+
246,2020-07-21 10:18:53,101.0,0.0,0.0,0.0,0.0,1,5.5,49
|
238 |
+
247,2020-07-21 10:23:52,100.0,0.0,0.0,0.0,0.0,1,5.5,49
|
239 |
+
248,2020-07-21 10:28:53,99.0,0.0,0.0,0.0,0.0,1,5.5,49
|
240 |
+
249,2020-07-21 10:33:52,99.0,0.0,0.0,0.0,0.0,1,5.5,49
|
241 |
+
250,2020-07-21 10:38:52,98.0,0.0,0.0,0.0,0.0,1,5.5,49
|
242 |
+
251,2020-07-21 10:43:53,98.0,0.0,0.0,0.0,0.0,1,5.5,49
|
243 |
+
252,2020-07-21 10:48:53,98.0,0.0,0.0,0.0,0.0,1,5.5,49
|
244 |
+
253,2020-07-21 10:53:52,98.0,0.0,0.0,0.0,0.0,1,5.5,49
|
245 |
+
254,2020-07-21 10:58:53,98.0,0.0,0.0,0.0,0.0,1,5.5,49
|
246 |
+
255,2020-07-21 11:03:53,97.0,0.0,0.0,0.0,0.0,1,5.5,49
|
247 |
+
256,2020-07-21 11:08:53,96.0,0.0,0.0,0.0,0.0,1,5.5,49
|
248 |
+
257,2020-07-21 11:13:52,96.0,0.0,0.0,0.0,0.0,1,5.5,49
|
249 |
+
258,2020-07-21 11:18:52,96.0,0.0,0.0,0.0,0.0,1,5.5,49
|
250 |
+
259,2020-07-21 11:23:53,95.0,0.0,0.0,0.0,0.0,1,5.5,49
|
251 |
+
260,2020-07-21 11:28:52,94.0,0.0,0.0,0.0,0.0,1,5.5,49
|
252 |
+
261,2020-07-21 11:33:52,93.0,0.0,0.0,0.0,0.0,1,5.5,49
|
253 |
+
262,2020-07-21 11:38:52,93.0,0.0,0.0,0.0,0.0,1,5.5,49
|
254 |
+
263,2020-07-21 11:43:52,93.0,0.0,0.0,0.0,0.0,1,5.5,49
|
255 |
+
264,2020-07-21 11:48:53,94.0,0.0,0.0,0.0,0.0,1,5.5,49
|
256 |
+
265,2020-07-21 11:53:52,96.0,0.0,0.0,0.0,0.0,1,5.5,49
|
257 |
+
266,2020-07-21 11:58:53,98.0,0.0,0.0,0.0,0.0,1,5.5,49
|
258 |
+
267,2020-07-21 12:03:52,99.0,0.0,0.0,0.0,0.0,1,5.5,49
|
259 |
+
268,2020-07-21 12:08:52,99.0,0.0,0.0,0.0,0.0,1,5.5,49
|
260 |
+
269,2020-07-21 12:13:52,98.0,0.0,0.0,0.0,0.0,1,5.5,49
|
261 |
+
270,2020-07-21 12:18:53,99.0,0.0,0.0,0.0,0.0,1,5.5,49
|
262 |
+
271,2020-07-21 12:23:52,102.0,0.0,0.0,0.0,0.0,1,5.5,49
|
263 |
+
272,2020-07-21 12:28:53,105.0,0.0,0.0,0.0,0.0,1,5.5,49
|
264 |
+
273,2020-07-21 12:33:53,108.0,0.0,0.0,0.0,0.0,1,5.5,49
|
265 |
+
274,2020-07-21 12:38:53,107.0,0.0,0.0,0.0,0.0,1,5.5,49
|
266 |
+
275,2020-07-21 12:43:53,105.0,0.0,0.0,0.0,0.0,1,5.5,49
|
267 |
+
276,2020-07-21 12:48:52,104.0,0.0,0.0,0.0,0.0,1,5.5,49
|
268 |
+
277,2020-07-21 12:53:52,104.0,0.0,0.0,0.0,0.0,1,5.5,49
|
269 |
+
278,2020-07-21 12:58:53,106.0,0.0,0.0,0.0,0.0,1,5.5,49
|
270 |
+
279,2020-07-21 13:03:53,110.0,0.0,0.0,0.0,0.0,1,5.5,49
|
271 |
+
280,2020-07-21 13:08:52,111.0,0.0,0.0,0.0,0.0,1,5.5,49
|
272 |
+
281,2020-07-21 13:13:52,113.0,0.0,0.0,0.0,0.0,1,5.5,49
|
273 |
+
282,2020-07-21 13:18:52,115.0,0.0,0.0,0.0,0.0,1,5.5,49
|
274 |
+
283,2020-07-21 13:23:52,118.0,0.0,0.0,0.0,0.0,1,5.5,49
|
275 |
+
284,2020-07-21 13:28:52,120.0,0.0,0.0,0.0,0.0,1,5.5,49
|
276 |
+
285,2020-07-21 13:33:51,121.0,0.0,0.0,0.0,0.0,1,5.5,49
|
277 |
+
286,2020-07-21 13:38:52,121.0,0.0,0.0,0.0,0.0,1,5.5,49
|
278 |
+
287,2020-07-21 13:43:52,122.0,0.0,0.0,0.0,0.0,1,5.5,49
|
279 |
+
288,2020-07-21 13:48:52,123.0,0.0,0.0,0.0,0.0,1,5.5,49
|
280 |
+
289,2020-07-21 13:53:51,123.0,0.0,0.0,0.0,0.0,1,5.5,49
|
281 |
+
290,2020-07-21 13:58:51,122.0,0.0,0.0,0.0,0.0,1,5.5,49
|
282 |
+
291,2020-07-21 14:03:52,122.0,0.0,0.0,0.0,0.0,1,5.5,49
|
283 |
+
292,2020-07-21 14:08:51,121.0,0.0,0.0,0.0,0.0,1,5.5,49
|
284 |
+
293,2020-07-21 14:13:51,119.0,0.0,0.0,0.0,0.0,1,5.5,49
|
285 |
+
294,2020-07-21 14:18:52,117.0,0.0,0.0,0.0,0.0,1,5.5,49
|
286 |
+
295,2020-07-21 14:23:52,115.0,0.0,0.0,0.0,0.0,1,5.5,49
|
287 |
+
296,2020-07-21 14:28:52,112.0,0.0,0.0,0.0,0.0,1,5.5,49
|
288 |
+
297,2020-07-21 14:33:52,109.0,0.0,0.0,0.0,0.0,1,5.5,49
|
289 |
+
298,2020-07-21 14:38:51,107.0,0.0,0.0,0.0,0.0,1,5.5,49
|
290 |
+
299,2020-07-21 14:43:51,106.0,0.0,0.0,0.0,0.0,1,5.5,49
|
291 |
+
300,2020-07-21 14:48:51,106.0,0.0,0.0,0.0,0.0,1,5.5,49
|
292 |
+
301,2020-07-21 14:53:52,105.0,0.0,0.0,0.0,0.0,1,5.5,49
|
293 |
+
302,2020-07-21 14:58:52,104.0,0.0,0.0,0.0,0.0,1,5.5,49
|
294 |
+
303,2020-07-21 15:03:52,105.0,0.0,0.0,0.0,0.0,1,5.5,49
|
295 |
+
304,2020-07-21 15:08:52,106.0,0.0,0.0,0.0,0.0,1,5.5,49
|
296 |
+
305,2020-07-21 15:13:52,107.0,0.0,0.0,0.0,0.0,1,5.5,49
|
297 |
+
306,2020-07-21 15:18:51,108.0,0.0,0.0,0.0,0.0,1,5.5,49
|
298 |
+
307,2020-07-21 15:23:52,109.0,0.0,0.0,0.0,0.0,1,5.5,49
|
299 |
+
308,2020-07-21 15:28:51,109.0,0.0,0.0,0.0,0.0,1,5.5,49
|
300 |
+
309,2020-07-21 15:33:51,109.0,0.0,0.0,0.0,0.0,1,5.5,49
|
301 |
+
310,2020-07-21 15:38:52,107.0,0.0,0.0,0.0,0.0,1,5.5,49
|
302 |
+
311,2020-07-21 15:43:51,106.0,0.0,0.0,0.0,0.0,1,5.5,49
|
303 |
+
312,2020-07-21 15:48:51,103.0,0.0,0.0,0.0,0.0,1,5.5,49
|
304 |
+
313,2020-07-21 15:53:51,101.0,0.0,0.0,0.0,0.0,1,5.5,49
|
305 |
+
314,2020-07-21 15:58:51,100.0,0.0,0.0,0.0,0.0,1,5.5,49
|
306 |
+
315,2020-07-21 16:03:51,100.0,0.0,0.0,0.0,0.0,1,5.5,49
|
307 |
+
316,2020-07-21 16:08:51,100.0,0.0,0.0,0.0,0.0,1,5.5,49
|
308 |
+
317,2020-07-21 16:13:52,100.0,0.0,0.0,0.0,0.0,1,5.5,49
|
309 |
+
318,2020-07-21 16:18:52,98.0,0.0,0.0,0.0,0.0,1,5.5,49
|
310 |
+
319,2020-07-21 16:23:51,97.0,0.0,0.0,0.0,0.0,1,5.5,49
|
311 |
+
320,2020-07-21 16:28:52,96.0,0.0,0.0,0.0,0.0,1,5.5,49
|
312 |
+
321,2020-07-21 16:33:51,95.0,0.0,0.0,0.0,0.0,1,5.5,49
|
313 |
+
322,2020-07-21 16:38:52,94.0,0.0,0.0,0.0,0.0,1,5.5,49
|
314 |
+
323,2020-07-21 16:43:51,94.0,0.0,0.0,0.0,0.0,1,5.5,49
|
315 |
+
324,2020-07-21 16:48:51,93.0,0.0,0.0,0.0,0.0,1,5.5,49
|
316 |
+
325,2020-07-21 16:53:52,92.0,0.0,0.0,0.0,0.0,1,5.5,49
|
317 |
+
326,2020-07-21 16:58:52,91.0,0.0,0.0,0.0,0.0,1,5.5,49
|
318 |
+
327,2020-07-21 17:03:52,90.0,0.0,0.0,0.0,0.0,1,5.5,49
|
319 |
+
328,2020-07-21 17:08:52,90.0,0.0,0.0,0.0,0.0,1,5.5,49
|
320 |
+
329,2020-07-21 17:13:52,90.0,0.0,0.0,0.0,0.0,1,5.5,49
|
321 |
+
330,2020-07-21 17:18:52,89.0,0.0,0.0,0.0,0.0,1,5.5,49
|
322 |
+
331,2020-07-21 17:23:52,89.0,0.0,0.0,0.0,0.0,1,5.5,49
|
323 |
+
332,2020-07-21 17:28:52,88.0,0.0,0.0,0.0,0.0,1,5.5,49
|
324 |
+
333,2020-07-21 17:33:52,88.0,0.0,0.0,0.0,0.0,1,5.5,49
|
325 |
+
334,2020-07-21 17:38:52,89.0,0.0,0.0,0.0,0.0,1,5.5,49
|
326 |
+
335,2020-07-21 17:43:51,89.0,0.0,0.0,0.0,0.0,1,5.5,49
|
327 |
+
336,2020-07-21 17:48:51,90.0,0.0,0.0,0.0,0.0,1,5.5,49
|
328 |
+
337,2020-07-21 17:53:51,89.0,0.0,0.0,0.0,0.0,1,5.5,49
|
329 |
+
338,2020-07-21 17:58:52,89.0,0.0,0.0,0.0,0.0,1,5.5,49
|
330 |
+
339,2020-07-21 18:03:52,89.0,0.0,0.0,0.0,0.0,1,5.5,49
|
331 |
+
340,2020-07-21 18:08:52,88.0,0.0,0.0,0.0,0.0,1,5.5,49
|
332 |
+
341,2020-07-21 18:13:51,88.0,0.0,0.0,0.0,0.0,1,5.5,49
|
333 |
+
342,2020-07-21 18:18:52,88.0,0.0,0.0,0.0,0.0,1,5.5,49
|
334 |
+
343,2020-07-21 18:23:52,88.0,0.0,0.0,0.0,0.0,1,5.5,49
|
335 |
+
344,2020-07-21 18:28:51,87.0,0.0,0.0,0.0,0.0,1,5.5,49
|
336 |
+
345,2020-07-21 18:33:52,87.0,0.0,0.0,0.0,0.0,1,5.5,49
|
337 |
+
346,2020-07-21 18:38:51,88.0,0.0,0.0,0.0,0.0,1,5.5,49
|
338 |
+
347,2020-07-21 18:43:52,89.0,0.0,0.0,0.0,0.0,1,5.5,49
|
339 |
+
348,2020-07-21 18:48:51,90.0,0.0,0.0,0.0,0.0,1,5.5,49
|
340 |
+
349,2020-07-21 18:53:51,90.0,0.0,0.0,0.0,0.0,1,5.5,49
|
341 |
+
350,2020-07-21 18:58:51,90.0,0.0,0.0,0.0,0.0,1,5.5,49
|
342 |
+
351,2020-07-21 19:03:51,90.0,0.0,0.0,0.0,0.0,1,5.5,49
|
343 |
+
352,2020-07-21 19:08:52,90.0,0.0,0.0,0.0,0.0,1,5.5,49
|
344 |
+
353,2020-07-21 19:13:52,91.0,0.0,0.0,0.0,0.0,1,5.5,49
|
345 |
+
354,2020-07-21 19:18:52,92.0,0.0,0.0,0.0,0.0,1,5.5,49
|
346 |
+
355,2020-07-21 19:23:51,93.0,0.0,0.0,0.0,0.0,1,5.5,49
|
347 |
+
356,2020-07-21 19:28:52,92.0,0.0,0.0,0.0,0.0,1,5.5,49
|
348 |
+
357,2020-07-21 19:33:51,91.0,0.0,0.0,0.0,0.0,1,5.5,49
|
349 |
+
358,2020-07-21 22:23:52,111.0,0.0,0.0,0.0,0.0,1,5.5,49
|
350 |
+
359,2020-07-21 22:28:52,114.0,0.0,0.0,0.0,0.0,1,5.5,49
|
351 |
+
360,2020-07-21 22:33:52,114.0,0.0,0.0,0.0,0.0,1,5.5,49
|
352 |
+
361,2020-07-21 22:38:52,112.0,0.0,0.0,0.0,0.0,1,5.5,49
|
353 |
+
362,2020-07-21 22:43:52,111.0,0.0,0.0,0.0,0.0,1,5.5,49
|
354 |
+
363,2020-07-21 22:48:52,111.0,0.0,0.0,0.0,0.0,1,5.5,49
|
355 |
+
364,2020-07-21 22:53:52,112.0,0.0,0.0,0.0,0.0,1,5.5,49
|
356 |
+
365,2020-07-21 22:58:52,112.0,0.0,0.0,0.0,0.0,1,5.5,49
|
357 |
+
366,2020-07-21 23:03:52,111.0,0.0,0.0,0.0,0.0,1,5.5,49
|
358 |
+
367,2020-07-21 23:08:52,107.0,0.0,0.0,0.0,0.0,1,5.5,49
|
359 |
+
368,2020-07-21 23:13:52,102.0,0.0,0.0,0.0,0.0,1,5.5,49
|
360 |
+
369,2020-07-21 23:18:52,98.0,0.0,0.0,0.0,0.0,1,5.5,49
|
361 |
+
370,2020-07-21 23:23:52,97.0,0.0,0.0,0.0,0.0,1,5.5,49
|
362 |
+
371,2020-07-21 23:28:52,100.0,0.0,0.0,0.0,0.0,1,5.5,49
|
363 |
+
372,2020-07-21 23:33:52,106.0,0.0,0.0,0.0,0.0,1,5.5,49
|
364 |
+
373,2020-07-21 23:38:52,114.0,0.0,0.0,0.0,0.0,1,5.5,49
|
365 |
+
374,2020-07-21 23:43:52,122.0,0.0,0.0,0.0,0.0,1,5.5,49
|
366 |
+
375,2020-07-21 23:48:52,130.0,0.0,0.0,0.0,0.0,1,5.5,49
|
367 |
+
376,2020-07-21 23:53:52,135.0,0.0,0.0,0.0,0.0,1,5.5,49
|
368 |
+
377,2020-07-21 23:58:52,139.0,0.0,0.0,0.0,0.0,1,5.5,49
|
369 |
+
378,2020-07-22 00:03:52,140.0,0.0,0.0,0.0,0.0,1,5.5,49
|
370 |
+
379,2020-07-22 00:08:52,140.0,0.0,0.0,0.0,0.0,1,5.5,49
|
371 |
+
380,2020-07-22 00:13:52,137.0,0.0,0.0,0.0,0.0,1,5.5,49
|
372 |
+
381,2020-07-22 00:18:52,136.0,0.0,0.0,0.0,0.0,1,5.5,49
|
373 |
+
382,2020-07-22 00:23:52,136.0,0.0,0.0,0.0,0.0,1,5.5,49
|
374 |
+
383,2020-07-22 00:28:52,136.0,0.0,0.0,0.0,0.0,1,5.5,49
|
375 |
+
384,2020-07-22 00:33:52,135.0,0.0,0.0,0.0,0.0,1,5.5,49
|
376 |
+
385,2020-07-22 00:38:52,135.0,0.0,0.0,0.0,0.0,1,5.5,49
|
377 |
+
386,2020-07-22 00:43:52,135.0,0.0,0.0,0.0,0.0,1,5.5,49
|
378 |
+
387,2020-07-22 00:48:52,136.0,0.0,0.0,0.0,0.0,1,5.5,49
|
379 |
+
388,2020-07-22 00:53:52,137.0,0.0,0.0,0.0,0.0,1,5.5,49
|
380 |
+
389,2020-07-22 00:58:52,138.0,0.0,0.0,0.0,0.0,1,5.5,49
|
381 |
+
390,2020-07-22 01:03:52,137.0,0.0,0.0,0.0,0.0,1,5.5,49
|
382 |
+
391,2020-07-22 01:08:52,134.0,0.0,0.0,0.0,0.0,1,5.5,49
|
383 |
+
392,2020-07-22 01:13:52,128.0,0.0,0.0,0.0,0.0,1,5.5,49
|
384 |
+
393,2020-07-22 01:18:52,122.0,0.0,0.0,0.0,0.0,1,5.5,49
|
385 |
+
394,2020-07-22 01:23:52,116.0,0.0,0.0,0.0,0.0,1,5.5,49
|
386 |
+
395,2020-07-22 01:28:52,114.0,0.0,0.0,0.0,0.0,1,5.5,49
|
387 |
+
396,2020-07-22 01:33:52,117.0,0.0,0.0,0.0,0.0,1,5.5,49
|
388 |
+
397,2020-07-22 01:38:52,120.0,0.0,0.0,0.0,0.0,1,5.5,49
|
389 |
+
398,2020-07-22 01:43:52,125.0,0.0,0.0,0.0,0.0,1,5.5,49
|
390 |
+
399,2020-07-22 01:48:52,130.0,0.0,0.0,0.0,0.0,1,5.5,49
|
391 |
+
400,2020-07-22 01:53:51,133.0,0.0,0.0,0.0,0.0,1,5.5,49
|
392 |
+
401,2020-07-22 01:58:51,133.0,0.0,0.0,0.0,0.0,1,5.5,49
|
393 |
+
402,2020-07-22 02:03:51,132.0,0.0,0.0,0.0,0.0,1,5.5,49
|
394 |
+
403,2020-07-22 02:08:51,134.0,0.0,0.0,0.0,0.0,1,5.5,49
|
395 |
+
404,2020-07-22 02:13:51,137.0,0.0,0.0,0.0,0.0,1,5.5,49
|
396 |
+
405,2020-07-22 02:18:52,139.0,0.0,0.0,0.0,0.0,1,5.5,49
|
397 |
+
406,2020-07-22 02:23:51,138.0,0.0,0.0,0.0,0.0,1,5.5,49
|
398 |
+
407,2020-07-22 02:28:51,135.0,0.0,0.0,0.0,0.0,1,5.5,49
|
399 |
+
408,2020-07-22 02:33:52,132.0,0.0,0.0,0.0,0.0,1,5.5,49
|
400 |
+
409,2020-07-22 02:38:51,129.0,0.0,0.0,0.0,0.0,1,5.5,49
|
401 |
+
410,2020-07-22 02:43:51,127.0,0.0,0.0,0.0,0.0,1,5.5,49
|
402 |
+
411,2020-07-22 02:48:51,125.0,0.0,0.0,0.0,0.0,1,5.5,49
|
403 |
+
412,2020-07-22 02:53:51,124.0,63.63,0.0,0.0,0.0,1,5.5,49
|
404 |
+
413,2020-07-22 02:58:51,124.0,63.45,0.0,0.0,0.0,1,5.5,49
|
405 |
+
414,2020-07-22 03:03:52,125.0,62.93,0.0,0.0,0.0,1,5.5,49
|
406 |
+
415,2020-07-22 03:08:51,126.0,64.25,0.0,0.0,0.0,1,5.5,49
|
407 |
+
416,2020-07-22 03:13:52,127.0,65.86,0.0,0.0,0.0,1,5.5,49
|
408 |
+
417,2020-07-22 03:18:51,128.0,64.61,0.0,0.0,0.0,1,5.5,49
|
409 |
+
418,2020-07-22 03:23:52,128.0,64.53,0.0,0.0,0.0,1,5.5,49
|
410 |
+
419,2020-07-22 03:28:51,128.0,64.43,0.0,0.0,0.0,1,5.5,49
|
411 |
+
420,2020-07-22 03:33:52,127.0,64.42,0.0,0.0,0.0,1,5.5,49
|
412 |
+
421,2020-07-22 03:38:51,126.0,64.42,0.0,0.0,0.0,1,5.5,49
|
413 |
+
422,2020-07-22 03:43:51,124.0,65.47,0.0,0.0,0.0,1,5.5,49
|
414 |
+
423,2020-07-22 03:48:51,123.0,65.57,0.0,0.0,0.0,1,5.5,49
|
415 |
+
424,2020-07-22 03:53:51,121.0,65.59,0.0,0.0,0.0,1,5.5,49
|
416 |
+
425,2020-07-22 03:58:51,119.0,65.76,0.0,0.0,0.0,1,5.5,49
|
417 |
+
426,2020-07-22 04:03:52,118.0,65.78,0.0,0.0,0.0,1,5.5,49
|
418 |
+
427,2020-07-22 04:08:51,117.0,65.78,0.0,0.0,0.0,1,5.5,49
|
419 |
+
428,2020-07-22 04:13:51,117.0,65.83,0.0,0.0,0.0,1,5.5,49
|
420 |
+
429,2020-07-22 04:18:51,117.0,65.81,0.0,0.0,0.0,1,5.5,49
|
421 |
+
430,2020-07-22 04:23:51,118.0,65.5,0.0,0.0,0.0,1,5.5,49
|
422 |
+
431,2020-07-22 04:28:51,117.0,64.92,0.0,0.0,0.0,1,5.5,49
|
423 |
+
432,2020-07-22 04:33:51,117.0,64.88,0.0,0.0,0.0,1,5.5,49
|
424 |
+
433,2020-07-22 04:38:51,117.0,65.08,0.0,0.0,0.0,1,5.5,49
|
425 |
+
434,2020-07-22 04:43:51,117.0,64.6,0.0,0.0,0.0,1,5.5,49
|
426 |
+
435,2020-07-22 04:48:51,117.0,64.75,0.0,0.0,0.0,1,5.5,49
|
427 |
+
436,2020-07-22 04:53:51,117.0,64.68,0.0,0.0,0.0,1,5.5,49
|
428 |
+
437,2020-07-22 04:58:51,116.0,64.92,0.0,0.0,0.0,1,5.5,49
|
429 |
+
438,2020-07-22 05:03:51,116.0,65.11,0.0,0.0,0.0,1,5.5,49
|
430 |
+
439,2020-07-22 05:08:52,116.0,65.2,0.0,0.0,0.0,1,5.5,49
|
431 |
+
440,2020-07-22 05:13:51,116.0,65.2,0.0,0.0,0.0,1,5.5,49
|
432 |
+
441,2020-07-22 05:18:51,116.0,65.45,0.0,0.0,0.0,1,5.5,49
|
433 |
+
442,2020-07-22 05:23:51,115.0,65.65,0.0,0.0,0.0,1,5.5,49
|
434 |
+
443,2020-07-22 05:28:51,115.0,64.35,0.0,0.0,0.0,1,5.5,49
|
435 |
+
444,2020-07-22 05:33:51,114.0,63.69,0.0,0.0,0.0,1,5.5,49
|
436 |
+
445,2020-07-22 05:38:51,114.0,63.51,0.0,0.0,0.0,1,5.5,49
|
437 |
+
446,2020-07-22 05:43:51,115.0,63.32,0.0,0.0,0.0,1,5.5,49
|
438 |
+
447,2020-07-22 05:48:51,116.0,63.31,0.0,0.0,0.0,1,5.5,49
|
439 |
+
448,2020-07-22 05:53:51,117.0,63.21,0.0,0.0,0.0,1,5.5,49
|
440 |
+
449,2020-07-22 05:58:52,116.0,63.13,0.0,0.0,0.0,1,5.5,49
|
441 |
+
450,2020-07-22 06:03:51,114.0,63.1,0.0,0.0,0.0,1,5.5,49
|
442 |
+
451,2020-07-22 06:08:51,113.0,63.02,0.0,0.0,0.0,1,5.5,49
|
443 |
+
452,2020-07-22 06:13:51,114.0,62.95,0.0,0.0,0.0,1,5.5,49
|
444 |
+
453,2020-07-22 06:18:51,115.0,63.16,0.0,0.0,0.0,1,5.5,49
|
445 |
+
454,2020-07-22 06:23:51,115.0,63.17,0.0,0.0,0.0,1,5.5,49
|
446 |
+
455,2020-07-22 06:28:51,115.0,63.24,0.0,0.0,0.0,1,5.5,49
|
447 |
+
456,2020-07-22 06:33:52,115.0,63.3,0.0,0.0,0.0,1,5.5,49
|
448 |
+
457,2020-07-22 06:38:52,115.0,62.79,0.0,0.0,0.0,1,5.5,49
|
449 |
+
458,2020-07-22 06:43:52,115.0,62.86,0.0,0.0,0.0,1,5.5,49
|
450 |
+
459,2020-07-22 06:48:52,115.0,62.93,0.0,0.0,0.0,1,5.5,49
|
451 |
+
460,2020-07-22 06:53:52,114.0,62.95,0.0,0.0,0.0,1,5.5,49
|
452 |
+
461,2020-07-22 06:58:52,113.0,62.9,0.0,0.0,0.0,1,5.5,49
|
453 |
+
462,2020-07-22 07:03:51,113.0,63.69,0.0,0.0,0.0,1,5.5,49
|
454 |
+
463,2020-07-22 07:08:51,115.0,63.17,0.0,0.0,0.0,1,5.5,49
|
455 |
+
464,2020-07-22 07:13:51,116.0,63.17,0.0,0.0,0.0,1,5.5,49
|
456 |
+
465,2020-07-22 07:18:51,117.0,63.18,0.0,0.0,0.0,1,5.5,49
|
457 |
+
466,2020-07-22 07:23:51,118.0,62.98,0.0,0.0,0.0,1,5.5,49
|
458 |
+
467,2020-07-22 07:28:51,118.0,63.1,0.0,0.0,0.0,1,5.5,49
|
459 |
+
468,2020-07-22 07:33:51,118.0,63.01,0.0,0.0,0.0,1,5.5,49
|
460 |
+
469,2020-07-22 07:38:51,118.0,63.03,0.0,0.0,0.0,1,5.5,49
|
461 |
+
470,2020-07-22 07:43:51,117.0,63.09,0.0,0.0,0.0,1,5.5,49
|
462 |
+
471,2020-07-22 07:48:51,116.0,64.54,0.0,0.0,0.0,1,5.5,49
|
463 |
+
472,2020-07-22 07:53:51,115.0,64.86,0.0,0.0,0.0,1,5.5,49
|
464 |
+
473,2020-07-22 07:58:51,114.0,65.35,0.0,0.0,0.0,1,5.5,49
|
465 |
+
474,2020-07-22 08:03:51,114.0,64.81,0.0,0.0,0.0,1,5.5,49
|
466 |
+
475,2020-07-22 08:08:51,115.0,64.29,0.0,0.0,0.0,1,5.5,49
|
467 |
+
476,2020-07-22 08:13:51,117.0,64.97,0.0,0.0,0.0,1,5.5,49
|
468 |
+
477,2020-07-22 08:18:51,117.0,65.03,0.0,0.0,0.0,1,5.5,49
|
469 |
+
478,2020-07-22 08:23:51,116.0,65.28,0.0,0.0,0.0,1,5.5,49
|
470 |
+
479,2020-07-22 08:28:51,115.0,65.37,0.0,0.0,0.0,1,5.5,49
|
471 |
+
480,2020-07-22 08:33:51,112.0,64.42,0.0,0.0,0.0,1,5.5,49
|
472 |
+
481,2020-07-22 08:38:51,109.0,64.17,0.0,0.0,0.0,1,5.5,49
|
473 |
+
482,2020-07-22 08:43:51,104.0,65.01,0.0,0.0,0.0,1,5.5,49
|
474 |
+
483,2020-07-22 08:48:51,99.0,65.1,0.0,0.0,0.0,1,5.5,49
|
475 |
+
484,2020-07-22 08:53:51,96.0,65.09,0.0,0.0,0.0,1,5.5,49
|
476 |
+
485,2020-07-22 08:58:52,93.0,65.05,0.0,0.0,0.0,1,5.5,49
|
477 |
+
486,2020-07-22 09:03:51,92.0,65.14,0.0,0.0,0.0,1,5.5,49
|
478 |
+
487,2020-07-22 09:08:51,89.0,65.34,0.0,0.0,0.0,1,5.5,49
|
479 |
+
488,2020-07-22 09:13:51,88.0,65.17,0.0,0.0,0.0,1,5.5,49
|
480 |
+
489,2020-07-22 09:18:51,87.0,65.17,0.0,0.0,0.0,1,5.5,49
|
481 |
+
490,2020-07-22 09:23:51,88.0,65.09,0.0,0.0,0.0,1,5.5,49
|
482 |
+
491,2020-07-22 09:28:51,88.0,64.34,0.0,0.0,0.0,1,5.5,49
|
483 |
+
492,2020-07-22 09:33:51,88.0,64.13,0.0,0.0,0.0,1,5.5,49
|
484 |
+
493,2020-07-22 09:38:51,90.0,64.9,0.0,0.0,0.0,1,5.5,49
|
485 |
+
494,2020-07-22 09:43:51,96.0,64.87,0.0,0.0,0.0,1,5.5,49
|
486 |
+
495,2020-07-22 09:48:51,102.0,64.87,0.0,0.0,0.0,1,5.5,49
|
487 |
+
496,2020-07-22 09:53:51,108.0,64.87,0.0,0.0,0.0,1,5.5,49
|
488 |
+
497,2020-07-22 09:58:51,112.0,64.86,0.0,0.0,0.0,1,5.5,49
|
489 |
+
498,2020-07-22 10:03:51,115.0,64.85,0.0,0.0,0.0,1,5.5,49
|
490 |
+
499,2020-07-22 10:08:51,117.0,64.79,0.0,0.0,0.0,1,5.5,49
|
491 |
+
500,2020-07-22 10:13:51,118.0,64.69,0.0,0.0,0.0,1,5.5,49
|
492 |
+
501,2020-07-22 10:18:52,118.0,64.6,0.0,0.0,0.0,1,5.5,49
|
493 |
+
502,2020-07-22 10:23:51,118.0,64.44,0.0,0.0,0.0,1,5.5,49
|
494 |
+
503,2020-07-22 10:28:51,118.0,64.21,0.0,0.0,0.0,1,5.5,49
|
495 |
+
504,2020-07-22 10:33:51,118.0,65.27,0.0,0.0,0.0,1,5.5,49
|
496 |
+
505,2020-07-22 10:38:51,117.0,0.0,0.0,0.0,0.0,1,5.5,49
|
497 |
+
506,2020-07-22 10:43:51,115.0,0.0,0.0,0.0,0.0,1,5.5,49
|
498 |
+
507,2020-07-22 10:48:51,114.0,0.0,0.0,0.0,0.0,1,5.5,49
|
499 |
+
508,2020-07-22 10:53:51,111.0,0.0,0.0,0.0,0.0,1,5.5,49
|
500 |
+
509,2020-07-22 10:58:52,109.0,0.0,0.0,0.0,0.0,1,5.5,49
|
501 |
+
510,2020-07-22 11:03:51,107.0,0.0,0.0,0.0,0.0,1,5.5,49
|
502 |
+
511,2020-07-22 11:08:51,106.0,0.0,0.0,0.0,0.0,1,5.5,49
|
503 |
+
512,2020-07-22 11:13:51,104.0,0.0,0.0,0.0,0.0,1,5.5,49
|
504 |
+
513,2020-07-22 11:18:51,102.0,0.0,0.0,0.0,0.0,1,5.5,49
|
505 |
+
514,2020-07-22 11:23:51,100.0,0.0,0.0,0.0,0.0,1,5.5,49
|
506 |
+
515,2020-07-22 11:28:51,97.0,0.0,0.0,0.0,0.0,1,5.5,49
|
507 |
+
516,2020-07-22 11:33:51,95.0,0.0,0.0,0.0,0.0,1,5.5,49
|
508 |
+
517,2020-07-22 11:38:51,93.0,0.0,0.0,0.0,0.0,1,5.5,49
|
509 |
+
518,2020-07-22 11:43:51,93.0,0.0,0.0,0.0,0.0,1,5.5,49
|
510 |
+
519,2020-07-22 11:48:51,92.0,0.0,0.0,0.0,0.0,1,5.5,49
|
511 |
+
520,2020-07-22 11:53:51,93.0,0.0,0.0,0.0,0.0,1,5.5,49
|
512 |
+
521,2020-07-22 11:58:51,94.0,0.0,0.0,0.0,0.0,1,5.5,49
|
513 |
+
522,2020-07-22 12:03:51,97.0,0.0,0.0,0.0,0.0,1,5.5,49
|
514 |
+
523,2020-07-22 12:08:51,100.0,0.0,0.0,0.0,0.0,1,5.5,49
|
515 |
+
524,2020-07-22 12:13:51,103.0,0.0,0.0,0.0,0.0,1,5.5,49
|
516 |
+
525,2020-07-22 12:18:51,106.0,0.0,0.0,0.0,0.0,1,5.5,49
|
517 |
+
526,2020-07-22 12:23:51,107.0,0.0,0.0,0.0,0.0,1,5.5,49
|
518 |
+
527,2020-07-22 12:28:51,107.0,0.0,0.0,0.0,0.0,1,5.5,49
|
519 |
+
528,2020-07-22 12:33:51,106.0,0.0,0.0,0.0,0.0,1,5.5,49
|
520 |
+
529,2020-07-22 12:38:51,105.0,0.0,0.0,0.0,0.0,1,5.5,49
|
521 |
+
530,2020-07-22 12:43:51,106.0,0.0,0.0,0.0,0.0,1,5.5,49
|
522 |
+
531,2020-07-22 12:48:51,106.0,0.0,0.0,0.0,0.0,1,5.5,49
|
523 |
+
532,2020-07-22 12:53:51,107.0,0.0,0.0,0.0,0.0,1,5.5,49
|
524 |
+
533,2020-07-22 12:58:51,108.0,0.0,0.0,0.0,0.0,1,5.5,49
|
525 |
+
534,2020-07-22 13:03:51,108.0,0.0,0.0,0.0,0.0,1,5.5,49
|
526 |
+
535,2020-07-22 13:08:51,107.0,0.0,0.0,0.0,0.0,1,5.5,49
|
527 |
+
536,2020-07-22 13:13:51,105.0,0.0,0.0,0.0,0.0,1,5.5,49
|
528 |
+
537,2020-07-22 13:18:51,102.0,0.0,0.0,0.0,0.0,1,5.5,49
|
529 |
+
538,2020-07-22 13:23:51,98.0,0.0,0.0,0.0,0.0,1,5.5,49
|
530 |
+
539,2020-07-22 13:28:51,94.0,0.0,0.0,0.0,0.0,1,5.5,49
|
531 |
+
540,2020-07-22 13:33:51,92.0,0.0,0.0,0.0,0.0,1,5.5,49
|
532 |
+
541,2020-07-22 13:38:51,89.0,0.0,0.0,0.0,0.0,1,5.5,49
|
533 |
+
542,2020-07-22 13:43:51,86.0,0.0,0.0,0.0,0.0,1,5.5,49
|
534 |
+
543,2020-07-22 13:48:51,83.0,0.0,0.0,0.0,0.0,1,5.5,49
|
535 |
+
544,2020-07-22 13:53:51,84.0,0.0,0.0,0.0,0.0,1,5.5,49
|
536 |
+
545,2020-07-22 13:58:51,87.0,0.0,0.0,0.0,0.0,1,5.5,49
|
537 |
+
546,2020-07-22 14:03:51,92.0,0.0,0.0,0.0,0.0,1,5.5,49
|
538 |
+
547,2020-07-22 14:08:51,98.0,0.0,0.0,0.0,0.0,1,5.5,49
|
539 |
+
548,2020-07-22 14:13:51,103.0,0.0,0.0,0.0,0.0,1,5.5,49
|
540 |
+
549,2020-07-22 14:18:51,105.0,0.0,0.0,0.0,0.0,1,5.5,49
|
541 |
+
550,2020-07-22 14:23:51,104.0,0.0,0.0,0.0,0.0,1,5.5,49
|
542 |
+
551,2020-07-22 14:28:51,103.0,0.0,0.0,0.0,0.0,1,5.5,49
|
543 |
+
552,2020-07-22 14:33:51,104.0,0.0,0.0,0.0,0.0,1,5.5,49
|
544 |
+
553,2020-07-22 14:38:51,106.0,0.0,0.0,0.0,0.0,1,5.5,49
|
545 |
+
554,2020-07-22 14:43:51,108.0,0.0,0.0,0.0,0.0,1,5.5,49
|
546 |
+
555,2020-07-22 14:48:51,108.0,0.0,0.0,0.0,0.0,1,5.5,49
|
547 |
+
556,2020-07-22 14:53:51,107.0,0.0,0.0,0.0,0.0,1,5.5,49
|
548 |
+
557,2020-07-22 14:58:51,103.0,0.0,0.0,0.0,0.0,1,5.5,49
|
549 |
+
558,2020-07-22 15:03:51,101.0,0.0,0.0,0.0,0.0,1,5.5,49
|
550 |
+
559,2020-07-22 15:08:51,98.0,0.0,0.0,0.0,0.0,1,5.5,49
|
551 |
+
560,2020-07-22 15:13:51,96.0,0.0,0.0,0.0,0.0,1,5.5,49
|
552 |
+
561,2020-07-22 15:18:51,96.0,0.0,0.0,0.0,0.0,1,5.5,49
|
553 |
+
562,2020-07-22 15:23:51,96.0,0.0,0.0,0.0,0.0,1,5.5,49
|
554 |
+
563,2020-07-22 15:28:51,97.0,0.0,0.0,0.0,0.0,1,5.5,49
|
555 |
+
564,2020-07-22 15:33:51,95.0,0.0,0.0,0.0,0.0,1,5.5,49
|
556 |
+
565,2020-07-22 15:38:51,91.0,0.0,0.0,0.0,0.0,1,5.5,49
|
557 |
+
566,2020-07-22 15:43:51,88.0,0.0,0.0,0.0,0.0,1,5.5,49
|
558 |
+
567,2020-07-22 15:48:51,86.0,0.0,0.0,0.0,0.0,1,5.5,49
|
559 |
+
568,2020-07-22 15:53:50,86.0,0.0,0.0,0.0,0.0,1,5.5,49
|
560 |
+
569,2020-07-22 15:58:51,87.0,0.0,0.0,0.0,0.0,1,5.5,49
|
561 |
+
570,2020-07-22 16:03:51,89.0,0.0,0.0,0.0,0.0,1,5.5,49
|
562 |
+
571,2020-07-22 16:08:51,91.0,0.0,0.0,0.0,0.0,1,5.5,49
|
563 |
+
572,2020-07-22 16:13:51,93.0,0.0,0.0,0.0,0.0,1,5.5,49
|
564 |
+
573,2020-07-22 16:18:51,96.0,0.0,0.0,0.0,0.0,1,5.5,49
|
565 |
+
574,2020-07-22 16:23:51,99.0,0.0,0.0,0.0,0.0,1,5.5,49
|
566 |
+
575,2020-07-22 16:28:51,102.0,0.0,0.0,0.0,0.0,1,5.5,49
|
567 |
+
576,2020-07-22 16:33:51,102.0,0.0,0.0,0.0,0.0,1,5.5,49
|
568 |
+
577,2020-07-22 16:38:51,103.0,0.0,0.0,0.0,0.0,1,5.5,49
|
569 |
+
578,2020-07-22 16:43:51,104.0,0.0,0.0,0.0,0.0,1,5.5,49
|
570 |
+
579,2020-07-22 16:48:51,103.0,0.0,0.0,0.0,0.0,1,5.5,49
|
571 |
+
580,2020-07-22 16:53:51,102.0,0.0,0.0,0.0,0.0,1,5.5,49
|
572 |
+
581,2020-07-22 16:58:51,100.0,0.0,0.0,0.0,0.0,1,5.5,49
|
573 |
+
582,2020-07-22 17:03:51,98.0,0.0,0.0,0.0,0.0,1,5.5,49
|
574 |
+
583,2020-07-22 17:08:51,97.0,0.0,0.0,0.0,0.0,1,5.5,49
|
575 |
+
584,2020-07-22 17:13:50,98.0,0.0,0.0,0.0,0.0,1,5.5,49
|
576 |
+
585,2020-07-22 17:18:51,99.0,0.0,0.0,0.0,0.0,1,5.5,49
|
577 |
+
586,2020-07-22 17:23:51,103.0,0.0,0.0,0.0,0.0,1,5.5,49
|
578 |
+
587,2020-07-22 17:28:51,106.0,0.0,0.0,0.0,0.0,1,5.5,49
|
579 |
+
588,2020-07-22 17:33:51,107.0,0.0,0.0,0.0,0.0,1,5.5,49
|
580 |
+
589,2020-07-22 17:38:51,103.0,0.0,0.0,0.0,0.0,1,5.5,49
|
581 |
+
590,2020-07-22 17:43:51,97.0,0.0,0.0,0.0,0.0,1,5.5,49
|
582 |
+
591,2020-07-22 17:48:51,93.0,0.0,0.0,0.0,0.0,1,5.5,49
|
583 |
+
592,2020-07-22 17:53:51,89.0,0.0,0.0,0.0,0.0,1,5.5,49
|
584 |
+
593,2020-07-22 17:58:51,87.0,0.0,0.0,0.0,0.0,1,5.5,49
|
585 |
+
594,2020-07-22 18:03:51,84.0,0.0,0.0,0.0,0.0,1,5.5,49
|
586 |
+
595,2020-07-22 18:08:51,83.0,0.0,0.0,0.0,0.0,1,5.5,49
|
587 |
+
596,2020-07-22 18:13:51,82.0,0.0,0.0,0.0,0.0,1,5.5,49
|
588 |
+
597,2020-07-22 18:18:51,83.0,0.0,0.0,0.0,0.0,1,5.5,49
|
589 |
+
598,2020-07-22 18:23:51,85.0,0.0,0.0,0.0,0.0,1,5.5,49
|
590 |
+
599,2020-07-22 18:28:51,89.0,0.0,0.0,0.0,0.0,1,5.5,49
|
591 |
+
600,2020-07-22 18:33:51,94.0,0.0,0.0,0.0,0.0,1,5.5,49
|
592 |
+
601,2020-07-22 18:38:51,100.0,0.0,0.0,0.0,0.0,1,5.5,49
|
593 |
+
602,2020-07-22 18:43:51,105.0,0.0,0.0,0.0,0.0,1,5.5,49
|
594 |
+
603,2020-07-22 18:48:51,108.0,0.0,0.0,0.0,0.0,1,5.5,49
|
595 |
+
604,2020-07-22 18:53:51,108.0,0.0,0.0,0.0,0.0,1,5.5,49
|
596 |
+
605,2020-07-22 18:58:50,105.0,0.0,0.0,0.0,0.0,1,5.5,49
|
597 |
+
606,2020-07-22 19:03:51,103.0,0.0,0.0,0.0,0.0,1,5.5,49
|
598 |
+
607,2020-07-22 19:08:51,101.0,0.0,0.0,0.0,0.0,1,5.5,49
|
599 |
+
608,2020-07-22 19:13:51,101.0,0.0,0.0,0.0,0.0,1,5.5,49
|
600 |
+
609,2020-07-22 19:18:51,100.0,0.0,0.0,0.0,0.0,1,5.5,49
|
601 |
+
610,2020-07-22 19:23:51,99.0,0.0,0.0,0.0,0.0,1,5.5,49
|
602 |
+
611,2020-07-22 19:28:51,99.0,0.0,0.0,0.0,0.0,1,5.5,49
|
603 |
+
612,2020-07-22 19:33:50,99.0,0.0,0.0,0.0,0.0,1,5.5,49
|
604 |
+
613,2020-07-22 19:38:51,100.0,0.0,0.0,0.0,0.0,1,5.5,49
|
605 |
+
614,2020-07-22 19:43:51,101.0,0.0,0.0,0.0,0.0,1,5.5,49
|
606 |
+
615,2020-07-22 19:48:51,103.0,0.0,0.0,0.0,0.0,1,5.5,49
|
607 |
+
616,2020-07-22 19:53:51,105.0,0.0,0.0,0.0,0.0,1,5.5,49
|
608 |
+
617,2020-07-22 19:58:51,105.0,0.0,0.0,0.0,0.0,1,5.5,49
|
609 |
+
618,2020-07-22 20:03:51,107.0,0.0,0.0,0.0,0.0,1,5.5,49
|
610 |
+
619,2020-07-22 20:08:51,110.0,0.0,0.0,0.0,0.0,1,5.5,49
|
611 |
+
620,2020-07-22 20:13:51,115.0,0.0,0.0,0.0,0.0,1,5.5,49
|
612 |
+
621,2020-07-22 20:18:51,118.0,0.0,0.0,0.0,0.0,1,5.5,49
|
613 |
+
622,2020-07-22 20:23:50,120.0,0.0,0.0,0.0,0.0,1,5.5,49
|
614 |
+
623,2020-07-22 20:28:50,121.0,0.0,0.0,0.0,0.0,1,5.5,49
|
615 |
+
624,2020-07-22 20:33:51,121.0,0.0,0.0,0.0,0.0,1,5.5,49
|
616 |
+
625,2020-07-22 20:38:52,121.0,0.0,0.0,0.0,0.0,1,5.5,49
|
617 |
+
626,2020-07-22 20:43:50,121.0,0.0,0.0,0.0,0.0,1,5.5,49
|
618 |
+
627,2020-07-22 20:48:51,119.0,0.0,0.0,0.0,0.0,1,5.5,49
|
619 |
+
628,2020-07-22 20:53:50,117.0,0.0,0.0,0.0,0.0,1,5.5,49
|
620 |
+
629,2020-07-22 20:58:50,114.0,0.0,0.0,0.0,0.0,1,5.5,49
|
621 |
+
630,2020-07-22 21:03:50,109.0,0.0,0.0,0.0,0.0,1,5.5,49
|
622 |
+
631,2020-07-22 21:08:50,104.0,0.0,0.0,0.0,0.0,1,5.5,49
|
623 |
+
632,2020-07-22 21:13:51,102.0,0.0,0.0,0.0,0.0,1,5.5,49
|
624 |
+
633,2020-07-22 21:18:51,103.0,0.0,0.0,0.0,0.0,1,5.5,49
|
625 |
+
634,2020-07-22 21:23:51,106.0,0.0,0.0,0.0,0.0,1,5.5,49
|
626 |
+
635,2020-07-22 21:28:50,110.0,0.0,0.0,0.0,0.0,1,5.5,49
|
627 |
+
636,2020-07-22 21:33:50,115.0,0.0,0.0,0.0,0.0,1,5.5,49
|
628 |
+
637,2020-07-22 21:38:51,118.0,0.0,0.0,0.0,0.0,1,5.5,49
|
629 |
+
638,2020-07-22 21:43:50,120.0,0.0,0.0,0.0,0.0,1,5.5,49
|
630 |
+
639,2020-07-22 21:48:51,120.0,0.0,0.0,0.0,0.0,1,5.5,49
|
631 |
+
640,2020-07-22 21:53:51,120.0,0.0,0.0,0.0,0.0,1,5.5,49
|
632 |
+
641,2020-07-22 21:58:51,119.0,0.0,0.0,0.0,0.0,1,5.5,49
|
633 |
+
642,2020-07-22 22:03:51,118.0,0.0,0.0,0.0,0.0,1,5.5,49
|
634 |
+
643,2020-07-22 22:08:50,117.0,0.0,0.0,0.0,0.0,1,5.5,49
|
635 |
+
644,2020-07-22 22:13:51,116.0,0.0,0.0,0.0,0.0,1,5.5,49
|
636 |
+
645,2020-07-22 22:18:50,115.0,0.0,0.0,0.0,0.0,1,5.5,49
|
637 |
+
646,2020-07-22 22:23:51,115.0,0.0,0.0,0.0,0.0,1,5.5,49
|
638 |
+
647,2020-07-22 22:28:51,117.0,0.0,0.0,0.0,0.0,1,5.5,49
|
639 |
+
648,2020-07-22 22:33:51,118.0,0.0,0.0,0.0,0.0,1,5.5,49
|
640 |
+
649,2020-07-22 22:38:51,116.0,0.0,0.0,0.0,0.0,1,5.5,49
|
641 |
+
650,2020-07-22 22:43:51,112.0,0.0,0.0,0.0,0.0,1,5.5,49
|
642 |
+
651,2020-07-22 22:48:51,108.0,0.0,0.0,0.0,0.0,1,5.5,49
|
643 |
+
652,2020-07-22 22:53:51,107.0,0.0,0.0,0.0,0.0,1,5.5,49
|
644 |
+
653,2020-07-22 22:58:51,107.0,0.0,0.0,0.0,0.0,1,5.5,49
|
645 |
+
654,2020-07-22 23:03:51,107.0,0.0,0.0,0.0,0.0,1,5.5,49
|
646 |
+
655,2020-07-22 23:08:50,106.0,0.0,0.0,0.0,0.0,1,5.5,49
|
647 |
+
656,2020-07-22 23:13:50,106.0,0.0,0.0,0.0,0.0,1,5.5,49
|
648 |
+
657,2020-07-22 23:18:50,107.0,0.0,0.0,0.0,0.0,1,5.5,49
|
649 |
+
658,2020-07-22 23:23:50,109.0,0.0,0.0,0.0,0.0,1,5.5,49
|
650 |
+
659,2020-07-22 23:28:51,112.0,0.0,0.0,0.0,0.0,1,5.5,49
|
651 |
+
660,2020-07-22 23:33:50,114.0,0.0,0.0,0.0,0.0,1,5.5,49
|
652 |
+
661,2020-07-22 23:38:51,115.0,0.0,0.0,0.0,0.0,1,5.5,49
|
653 |
+
662,2020-07-22 23:43:51,114.0,0.0,0.0,0.0,0.0,1,5.5,49
|
654 |
+
663,2020-07-22 23:48:50,113.0,0.0,0.0,0.0,0.0,1,5.5,49
|
655 |
+
664,2020-07-22 23:53:50,111.0,0.0,0.0,0.0,0.0,1,5.5,49
|
656 |
+
665,2020-07-22 23:58:50,110.0,0.0,0.0,0.0,0.0,1,5.5,49
|
657 |
+
666,2020-07-23 00:03:51,110.0,0.0,0.0,0.0,0.0,1,5.5,49
|
658 |
+
667,2020-07-23 00:08:50,109.0,0.0,0.0,0.0,0.0,1,5.5,49
|
659 |
+
668,2020-07-23 00:13:51,106.0,0.0,0.0,0.0,0.0,1,5.5,49
|
660 |
+
669,2020-07-23 00:18:50,103.0,0.0,0.0,0.0,0.0,1,5.5,49
|
661 |
+
670,2020-07-23 00:23:50,100.0,0.0,0.0,0.0,0.0,1,5.5,49
|
662 |
+
671,2020-07-23 00:28:50,99.0,0.0,0.0,0.0,0.0,1,5.5,49
|
663 |
+
672,2020-07-23 00:33:50,98.0,0.0,0.0,0.0,0.0,1,5.5,49
|
664 |
+
673,2020-07-23 00:38:51,98.0,0.0,0.0,0.0,0.0,1,5.5,49
|
665 |
+
674,2020-07-23 00:43:50,100.0,0.0,0.0,0.0,0.0,1,5.5,49
|
666 |
+
675,2020-07-23 00:48:51,104.0,0.0,0.0,0.0,0.0,1,5.5,49
|
667 |
+
676,2020-07-23 00:53:51,111.0,0.0,0.0,0.0,0.0,1,5.5,49
|
668 |
+
677,2020-07-23 00:58:51,116.0,0.0,0.0,0.0,0.0,1,5.5,49
|
669 |
+
678,2020-07-23 01:03:51,120.0,0.0,0.0,0.0,0.0,1,5.5,49
|
670 |
+
679,2020-07-23 01:08:51,123.0,0.0,0.0,0.0,0.0,1,5.5,49
|
671 |
+
680,2020-07-23 01:13:51,125.0,0.0,0.0,0.0,0.0,1,5.5,49
|
672 |
+
681,2020-07-23 01:18:50,126.0,0.0,0.0,0.0,0.0,1,5.5,49
|
673 |
+
682,2020-07-23 01:23:50,126.0,0.0,0.0,0.0,0.0,1,5.5,49
|
674 |
+
683,2020-07-23 01:28:51,125.0,0.0,0.0,0.0,0.0,1,5.5,49
|
675 |
+
684,2020-07-23 01:33:50,123.0,0.0,0.0,0.0,0.0,1,5.5,49
|
676 |
+
685,2020-07-23 01:38:51,121.0,0.0,0.0,0.0,0.0,1,5.5,49
|
677 |
+
686,2020-07-23 01:43:51,120.0,0.0,0.0,0.0,0.0,1,5.5,49
|
678 |
+
687,2020-07-23 01:48:51,119.0,0.0,0.0,0.0,0.0,1,5.5,49
|
679 |
+
688,2020-07-23 01:53:51,120.0,0.0,0.0,0.0,0.0,1,5.5,49
|
680 |
+
689,2020-07-23 01:58:50,120.0,0.0,0.0,0.0,0.0,1,5.5,49
|
681 |
+
690,2020-07-23 02:03:51,120.0,0.0,0.0,0.0,0.0,1,5.5,49
|
682 |
+
691,2020-07-23 02:08:51,120.0,0.0,0.0,0.0,0.0,1,5.5,49
|
683 |
+
692,2020-07-23 02:13:51,120.0,0.0,0.0,0.0,0.0,1,5.5,49
|
684 |
+
693,2020-07-23 02:18:51,119.0,0.0,0.0,0.0,0.0,1,5.5,49
|
685 |
+
694,2020-07-23 02:23:51,117.0,0.0,0.0,0.0,0.0,1,5.5,49
|
686 |
+
695,2020-07-23 02:28:51,115.0,0.0,0.0,0.0,0.0,1,5.5,49
|
687 |
+
696,2020-07-23 02:33:51,113.0,0.0,0.0,0.0,0.0,1,5.5,49
|
688 |
+
697,2020-07-23 02:38:50,112.0,0.0,0.0,0.0,0.0,1,5.5,49
|
689 |
+
698,2020-07-23 02:43:51,112.0,0.0,0.0,0.0,0.0,1,5.5,49
|
690 |
+
699,2020-07-23 02:48:51,112.0,0.0,0.0,0.0,0.0,1,5.5,49
|
691 |
+
700,2020-07-23 02:53:51,113.0,0.0,0.0,0.0,0.0,1,5.5,49
|
692 |
+
701,2020-07-23 02:58:50,113.0,0.0,0.0,0.0,0.0,1,5.5,49
|
693 |
+
702,2020-07-23 03:03:51,114.0,0.0,0.0,0.0,0.0,1,5.5,49
|
694 |
+
703,2020-07-23 03:08:51,114.0,0.0,0.0,0.0,0.0,1,5.5,49
|
695 |
+
704,2020-07-23 03:13:51,113.0,0.0,0.0,0.0,0.0,1,5.5,49
|
696 |
+
705,2020-07-23 03:18:51,112.0,0.0,0.0,0.0,0.0,1,5.5,49
|
697 |
+
706,2020-07-23 03:23:50,111.0,0.0,0.0,0.0,0.0,1,5.5,49
|
698 |
+
707,2020-07-23 03:28:51,110.0,0.0,0.0,0.0,0.0,1,5.5,49
|
699 |
+
708,2020-07-23 03:33:51,110.0,0.0,0.0,0.0,0.0,1,5.5,49
|
700 |
+
709,2020-07-23 03:38:51,110.0,0.0,0.0,0.0,0.0,1,5.5,49
|
701 |
+
710,2020-07-23 03:43:51,112.0,0.0,0.0,0.0,0.0,1,5.5,49
|
702 |
+
711,2020-07-23 03:48:51,113.0,0.0,0.0,0.0,0.0,1,5.5,49
|
703 |
+
712,2020-07-23 03:53:51,112.0,0.0,0.0,0.0,0.0,1,5.5,49
|
704 |
+
713,2020-07-23 03:58:50,112.0,0.0,0.0,0.0,0.0,1,5.5,49
|
705 |
+
714,2020-07-23 04:03:51,111.0,0.0,0.0,0.0,0.0,1,5.5,49
|
706 |
+
715,2020-07-23 04:08:51,111.0,0.0,0.0,0.0,0.0,1,5.5,49
|
707 |
+
716,2020-07-23 04:13:51,111.0,0.0,0.0,0.0,0.0,1,5.5,49
|
708 |
+
717,2020-07-23 04:18:50,111.0,0.0,0.0,0.0,0.0,1,5.5,49
|
709 |
+
718,2020-07-23 04:23:51,111.0,0.0,0.0,0.0,0.0,1,5.5,49
|
710 |
+
719,2020-07-23 04:28:50,111.0,0.0,0.0,0.0,0.0,1,5.5,49
|
711 |
+
720,2020-07-23 04:33:51,112.0,0.0,0.0,0.0,0.0,1,5.5,49
|
712 |
+
721,2020-07-23 04:38:51,112.0,0.0,0.0,0.0,0.0,1,5.5,49
|
713 |
+
722,2020-07-23 04:43:51,112.0,0.0,0.0,0.0,0.0,1,5.5,49
|
714 |
+
723,2020-07-23 04:48:50,112.0,0.0,0.0,0.0,0.0,1,5.5,49
|
715 |
+
724,2020-07-23 04:53:51,112.0,0.0,0.0,0.0,0.0,1,5.5,49
|
716 |
+
725,2020-07-23 04:58:50,112.0,0.0,0.0,0.0,0.0,1,5.5,49
|
717 |
+
726,2020-07-23 05:03:51,113.0,0.0,0.0,0.0,0.0,1,5.5,49
|
718 |
+
727,2020-07-23 05:08:51,113.0,0.0,0.0,0.0,0.0,1,5.5,49
|
719 |
+
728,2020-07-23 05:13:50,113.0,0.0,0.0,0.0,0.0,1,5.5,49
|
720 |
+
729,2020-07-23 05:18:51,113.0,0.0,0.0,0.0,0.0,1,5.5,49
|
721 |
+
730,2020-07-23 05:23:51,114.0,0.0,0.0,0.0,0.0,1,5.5,49
|
722 |
+
731,2020-07-23 05:28:50,114.0,0.0,0.0,0.0,0.0,1,5.5,49
|
723 |
+
732,2020-07-23 05:33:51,115.0,0.0,0.0,0.0,0.0,1,5.5,49
|
724 |
+
733,2020-07-23 05:38:50,115.0,0.0,0.0,0.0,0.0,1,5.5,49
|
725 |
+
734,2020-07-23 05:43:50,116.0,0.0,0.0,0.0,0.0,1,5.5,49
|
726 |
+
735,2020-07-23 05:48:51,116.0,0.0,0.0,0.0,0.0,1,5.5,49
|
727 |
+
736,2020-07-23 05:53:51,117.0,0.0,0.0,0.0,0.0,1,5.5,49
|
728 |
+
737,2020-07-23 05:58:50,118.0,0.0,0.0,0.0,0.0,1,5.5,49
|
729 |
+
738,2020-07-23 06:03:51,118.0,0.0,0.0,0.0,0.0,1,5.5,49
|
730 |
+
739,2020-07-23 06:08:50,117.0,0.0,0.0,0.0,0.0,1,5.5,49
|
731 |
+
740,2020-07-23 06:13:51,115.0,0.0,0.0,0.0,0.0,1,5.5,49
|
732 |
+
741,2020-07-23 06:18:51,113.0,0.0,0.0,0.0,0.0,1,5.5,49
|
733 |
+
742,2020-07-23 06:23:51,111.0,0.0,0.0,0.0,0.0,1,5.5,49
|
734 |
+
743,2020-07-23 06:28:51,110.0,0.0,0.0,0.0,0.0,1,5.5,49
|
735 |
+
744,2020-07-23 06:33:50,110.0,0.0,0.0,0.0,0.0,1,5.5,49
|
736 |
+
745,2020-07-23 06:38:51,109.0,0.0,0.0,0.0,0.0,1,5.5,49
|
737 |
+
746,2020-07-23 06:43:51,108.0,0.0,0.0,0.0,0.0,1,5.5,49
|
738 |
+
747,2020-07-23 06:48:51,107.0,0.0,0.0,0.0,0.0,1,5.5,49
|
739 |
+
748,2020-07-23 06:53:50,106.0,0.0,0.0,0.0,0.0,1,5.5,49
|
740 |
+
749,2020-07-23 06:58:51,107.0,0.0,0.0,0.0,0.0,1,5.5,49
|
741 |
+
750,2020-07-23 07:03:50,109.0,0.0,0.0,0.0,0.0,1,5.5,49
|
742 |
+
751,2020-07-23 07:08:51,110.0,0.0,0.0,0.0,0.0,1,5.5,49
|
743 |
+
752,2020-07-23 07:13:50,112.0,0.0,0.0,0.0,0.0,1,5.5,49
|
744 |
+
753,2020-07-23 07:18:50,113.0,0.0,0.0,0.0,0.0,1,5.5,49
|
745 |
+
754,2020-07-23 07:23:51,114.0,0.0,0.0,0.0,0.0,1,5.5,49
|
746 |
+
755,2020-07-23 07:28:51,115.0,0.0,0.0,0.0,0.0,1,5.5,49
|
747 |
+
756,2020-07-23 07:33:51,115.0,0.0,0.0,0.0,0.0,1,5.5,49
|
748 |
+
757,2020-07-23 07:38:50,114.0,0.0,0.0,0.0,0.0,1,5.5,49
|
749 |
+
758,2020-07-23 07:43:51,115.0,0.0,0.0,0.0,0.0,1,5.5,49
|
750 |
+
759,2020-07-23 07:48:50,115.0,0.0,0.0,0.0,0.0,1,5.5,49
|
751 |
+
760,2020-07-23 07:53:51,114.0,0.0,0.0,0.0,0.0,1,5.5,49
|
752 |
+
761,2020-07-23 07:58:50,113.0,0.0,0.0,0.0,0.0,1,5.5,49
|
753 |
+
762,2020-07-23 08:03:50,111.0,0.0,0.0,0.0,0.0,1,5.5,49
|
754 |
+
763,2020-07-23 08:08:51,112.0,0.0,0.0,0.0,0.0,1,5.5,49
|
755 |
+
764,2020-07-23 08:13:51,112.0,0.0,0.0,0.0,0.0,1,5.5,49
|
756 |
+
765,2020-07-23 08:18:51,112.0,0.0,0.0,0.0,0.0,1,5.5,49
|
757 |
+
766,2020-07-23 08:23:50,111.0,0.0,0.0,0.0,0.0,1,5.5,49
|
758 |
+
767,2020-07-23 08:28:51,110.0,0.0,0.0,0.0,0.0,1,5.5,49
|
759 |
+
768,2020-07-23 08:33:51,109.0,0.0,0.0,0.0,0.0,1,5.5,49
|
760 |
+
769,2020-07-23 08:38:51,109.0,0.0,0.0,0.0,0.0,1,5.5,49
|
761 |
+
770,2020-07-23 08:43:51,110.0,0.0,0.0,0.0,0.0,1,5.5,49
|
762 |
+
771,2020-07-23 08:48:51,111.0,0.0,0.0,0.0,0.0,1,5.5,49
|
763 |
+
772,2020-07-23 08:53:51,112.0,0.0,0.0,0.0,0.0,1,5.5,49
|
764 |
+
773,2020-07-23 08:58:50,110.0,0.0,0.0,0.0,0.0,1,5.5,49
|
765 |
+
774,2020-07-23 09:03:51,106.0,0.0,0.0,0.0,0.0,1,5.5,49
|
766 |
+
775,2020-07-23 09:08:50,100.0,0.0,0.0,0.0,0.0,1,5.5,49
|
767 |
+
776,2020-07-23 09:13:50,96.0,0.0,0.0,0.0,0.0,1,5.5,49
|
768 |
+
777,2020-07-23 09:18:50,94.0,0.0,0.0,0.0,0.0,1,5.5,49
|
769 |
+
778,2020-07-23 09:23:50,93.0,0.0,0.0,0.0,0.0,1,5.5,49
|
770 |
+
779,2020-07-23 09:28:50,91.0,0.0,0.0,0.0,0.0,1,5.5,49
|
771 |
+
780,2020-07-23 09:33:51,91.0,0.0,0.0,0.0,0.0,1,5.5,49
|
772 |
+
781,2020-07-23 09:38:51,90.0,0.0,0.0,0.0,0.0,1,5.5,49
|
773 |
+
782,2020-07-23 09:43:50,90.0,0.0,0.0,0.0,0.0,1,5.5,49
|
774 |
+
783,2020-07-23 09:48:50,89.0,0.0,0.0,0.0,0.0,1,5.5,49
|
775 |
+
784,2020-07-23 09:53:51,89.0,0.0,0.0,0.0,0.0,1,5.5,49
|
776 |
+
785,2020-07-23 09:58:50,89.0,0.0,0.0,0.0,0.0,1,5.5,49
|
777 |
+
786,2020-07-23 10:03:50,91.0,0.0,0.0,0.0,0.0,1,5.5,49
|
778 |
+
787,2020-07-23 10:08:51,92.0,0.0,0.0,0.0,0.0,1,5.5,49
|
779 |
+
788,2020-07-23 10:13:51,93.0,0.0,0.0,0.0,0.0,1,5.5,49
|
780 |
+
789,2020-07-23 10:18:51,93.0,0.0,0.0,0.0,0.0,1,5.5,49
|
781 |
+
790,2020-07-23 10:23:51,92.0,0.0,0.0,0.0,0.0,1,5.5,49
|
782 |
+
791,2020-07-23 10:28:51,92.0,0.0,0.0,0.0,0.0,1,5.5,49
|
783 |
+
792,2020-07-23 10:33:50,92.0,0.0,0.0,0.0,0.0,1,5.5,49
|
784 |
+
793,2020-07-23 10:38:50,92.0,0.0,0.0,0.0,0.0,1,5.5,49
|
785 |
+
794,2020-07-23 10:43:51,91.0,0.0,0.0,0.0,0.0,1,5.5,49
|
786 |
+
795,2020-07-23 10:48:50,90.0,0.0,0.0,0.0,0.0,1,5.5,49
|
787 |
+
796,2020-07-23 10:53:50,89.0,0.0,0.0,0.0,0.0,1,5.5,49
|
788 |
+
797,2020-07-23 10:58:51,90.0,0.0,0.0,0.0,0.0,1,5.5,49
|
789 |
+
798,2020-07-23 11:03:50,91.0,0.0,0.0,0.0,0.0,1,5.5,49
|
790 |
+
799,2020-07-23 11:08:51,93.0,0.0,0.0,0.0,0.0,1,5.5,49
|
791 |
+
800,2020-07-23 11:13:50,95.0,0.0,0.0,0.0,0.0,1,5.5,49
|
792 |
+
801,2020-07-23 11:18:51,96.0,0.0,0.0,0.0,0.0,1,5.5,49
|
793 |
+
802,2020-07-23 11:23:50,96.0,0.0,0.0,0.0,0.0,1,5.5,49
|
794 |
+
803,2020-07-23 11:28:51,95.0,0.0,0.0,0.0,0.0,1,5.5,49
|
795 |
+
804,2020-07-23 11:33:51,94.0,0.0,0.0,0.0,0.0,1,5.5,49
|
796 |
+
805,2020-07-23 11:38:50,92.0,0.0,0.0,0.0,0.0,1,5.5,49
|
797 |
+
806,2020-07-23 11:43:50,92.0,0.0,0.0,0.0,0.0,1,5.5,49
|
798 |
+
807,2020-07-23 11:48:51,94.0,0.0,0.0,0.0,0.0,1,5.5,49
|
799 |
+
808,2020-07-23 11:53:50,97.0,0.0,0.0,0.0,0.0,1,5.5,49
|
800 |
+
809,2020-07-23 11:58:51,99.0,0.0,0.0,0.0,0.0,1,5.5,49
|
801 |
+
810,2020-07-23 12:03:51,99.0,0.0,0.0,0.0,0.0,1,5.5,49
|
802 |
+
811,2020-07-23 12:08:51,98.0,0.0,0.0,0.0,0.0,1,5.5,49
|
803 |
+
812,2020-07-23 12:13:50,96.0,0.0,0.0,0.0,0.0,1,5.5,49
|
804 |
+
813,2020-07-23 12:18:50,94.0,0.0,0.0,0.0,0.0,1,5.5,49
|
805 |
+
814,2020-07-23 12:23:50,93.0,0.0,0.0,0.0,0.0,1,5.5,49
|
806 |
+
815,2020-07-23 12:28:51,92.0,0.0,0.0,0.0,0.0,1,5.5,49
|
807 |
+
816,2020-07-23 12:33:50,91.0,0.0,0.0,0.0,0.0,1,5.5,49
|
808 |
+
817,2020-07-23 12:38:50,89.0,0.0,0.0,0.0,0.0,1,5.5,49
|
809 |
+
818,2020-07-23 12:43:49,89.0,0.0,0.0,0.0,0.0,1,5.5,49
|
810 |
+
819,2020-07-23 12:48:49,90.0,0.0,0.0,0.0,0.0,1,5.5,49
|
811 |
+
820,2020-07-23 12:53:49,89.0,0.0,0.0,0.0,0.0,1,5.5,49
|
812 |
+
821,2020-07-23 12:58:50,88.0,0.0,0.0,0.0,0.0,1,5.5,49
|
813 |
+
822,2020-07-23 13:03:50,87.0,0.0,0.0,0.0,0.0,1,5.5,49
|
814 |
+
823,2020-07-23 13:08:49,87.0,0.0,0.0,0.0,0.0,1,5.5,49
|
815 |
+
824,2020-07-23 13:13:50,88.0,0.0,0.0,0.0,0.0,1,5.5,49
|
816 |
+
825,2020-07-23 13:18:49,89.0,0.0,0.0,0.0,0.0,1,5.5,49
|
817 |
+
826,2020-07-23 13:23:50,89.0,0.0,0.0,0.0,0.0,1,5.5,49
|
818 |
+
827,2020-07-23 13:28:50,90.0,0.0,0.0,0.0,0.0,1,5.5,49
|
819 |
+
828,2020-07-23 13:33:50,90.0,0.0,0.0,0.0,0.0,1,5.5,49
|
820 |
+
829,2020-07-23 13:38:49,91.0,0.0,0.0,0.0,0.0,1,5.5,49
|
821 |
+
830,2020-07-23 13:43:50,93.0,0.0,0.0,0.0,0.0,1,5.5,49
|
822 |
+
831,2020-07-23 13:48:49,95.0,0.0,0.0,0.0,0.0,1,5.5,49
|
823 |
+
832,2020-07-23 13:53:49,97.0,0.0,0.0,0.0,0.0,1,5.5,49
|
824 |
+
833,2020-07-23 13:58:49,98.0,0.0,0.0,0.0,0.0,1,5.5,49
|
825 |
+
834,2020-07-23 14:03:49,97.0,0.0,0.0,0.0,0.0,1,5.5,49
|
826 |
+
835,2020-07-23 14:08:49,97.0,0.0,0.0,0.0,0.0,1,5.5,49
|
827 |
+
836,2020-07-23 14:13:50,96.0,0.0,0.0,0.0,0.0,1,5.5,49
|
828 |
+
837,2020-07-23 14:18:49,96.0,0.0,0.0,0.0,0.0,1,5.5,49
|
829 |
+
838,2020-07-23 14:23:50,96.0,0.0,0.0,0.0,0.0,1,5.5,49
|
830 |
+
839,2020-07-23 14:28:49,97.0,0.0,0.0,0.0,0.0,1,5.5,49
|
831 |
+
840,2020-07-23 14:33:49,97.0,0.0,0.0,0.0,0.0,1,5.5,49
|
832 |
+
841,2020-07-23 14:38:49,97.0,0.0,0.0,0.0,0.0,1,5.5,49
|
833 |
+
842,2020-07-23 14:43:49,97.0,0.0,0.0,0.0,0.0,1,5.5,49
|
834 |
+
843,2020-07-23 14:48:49,98.0,0.0,0.0,0.0,0.0,1,5.5,49
|
835 |
+
844,2020-07-23 14:53:49,98.0,0.0,0.0,0.0,0.0,1,5.5,49
|
836 |
+
845,2020-07-23 14:58:50,98.0,0.0,0.0,0.0,0.0,1,5.5,49
|
837 |
+
846,2020-07-23 15:03:50,97.0,0.0,0.0,0.0,0.0,1,5.5,49
|
838 |
+
847,2020-07-23 15:08:49,97.0,0.0,0.0,0.0,0.0,1,5.5,49
|
839 |
+
848,2020-07-23 15:13:49,100.0,0.0,0.0,0.0,0.0,1,5.5,49
|
840 |
+
849,2020-07-23 15:18:49,105.0,0.0,0.0,0.0,0.0,1,5.5,49
|
841 |
+
850,2020-07-23 15:23:49,107.0,0.0,0.0,0.0,0.0,1,5.5,49
|
842 |
+
851,2020-07-23 15:28:49,106.0,0.0,0.0,0.0,0.0,1,5.5,49
|
843 |
+
852,2020-07-23 15:33:50,102.0,0.0,0.0,0.0,0.0,1,5.5,49
|
844 |
+
853,2020-07-23 15:38:49,97.0,0.0,0.0,0.0,0.0,1,5.5,49
|
845 |
+
854,2020-07-23 15:43:50,94.0,0.0,0.0,0.0,0.0,1,5.5,49
|
846 |
+
855,2020-07-23 15:48:50,94.0,0.0,0.0,0.0,0.0,1,5.5,49
|
847 |
+
856,2020-07-23 15:53:50,95.0,0.0,0.0,0.0,0.0,1,5.5,49
|
848 |
+
857,2020-07-23 15:58:50,95.0,0.0,0.0,0.0,0.0,1,5.5,49
|
849 |
+
858,2020-07-23 16:03:50,94.0,0.0,0.0,0.0,0.0,1,5.5,49
|
850 |
+
859,2020-07-23 16:08:50,94.0,0.0,0.0,0.0,0.0,1,5.5,49
|
851 |
+
860,2020-07-23 16:13:50,93.0,0.0,0.0,0.0,0.0,1,5.5,49
|
852 |
+
861,2020-07-23 16:18:50,95.0,0.0,0.0,0.0,0.0,1,5.5,49
|
853 |
+
862,2020-07-23 16:23:50,98.0,0.0,0.0,0.0,0.0,1,5.5,49
|
854 |
+
863,2020-07-23 16:28:50,101.0,0.0,0.0,0.0,0.0,1,5.5,49
|
855 |
+
864,2020-07-23 16:33:50,101.0,0.0,0.0,0.0,0.0,1,5.5,49
|
856 |
+
865,2020-07-23 16:38:49,105.0,0.0,0.0,0.0,0.0,1,5.5,49
|
857 |
+
866,2020-07-23 16:43:49,116.0,0.0,0.0,0.0,0.0,1,5.5,49
|
858 |
+
867,2020-07-23 16:48:50,130.0,0.0,0.0,0.0,0.0,1,5.5,49
|
859 |
+
868,2020-07-23 16:53:49,143.0,0.0,0.0,0.0,0.0,1,5.5,49
|
860 |
+
869,2020-07-23 16:58:49,152.0,0.0,0.0,0.0,0.0,1,5.5,49
|
861 |
+
870,2020-07-23 17:03:49,155.0,0.0,0.0,0.0,0.0,1,5.5,49
|
862 |
+
871,2020-07-23 17:08:50,155.0,0.0,0.0,0.0,0.0,1,5.5,49
|
863 |
+
872,2020-07-23 17:13:49,153.0,0.0,0.0,0.0,0.0,1,5.5,49
|
864 |
+
873,2020-07-23 17:18:50,151.0,0.0,0.0,0.0,0.0,1,5.5,49
|
865 |
+
874,2020-07-23 17:23:50,152.0,0.0,0.0,0.0,0.0,1,5.5,49
|
866 |
+
875,2020-07-23 17:28:49,155.0,0.0,0.0,0.0,0.0,1,5.5,49
|
867 |
+
876,2020-07-23 17:33:49,159.0,0.0,0.0,0.0,0.0,1,5.5,49
|
868 |
+
877,2020-07-23 17:38:50,162.0,0.0,0.0,0.0,0.0,1,5.5,49
|
869 |
+
878,2020-07-23 17:43:49,166.0,0.0,0.0,0.0,0.0,1,5.5,49
|
870 |
+
879,2020-07-23 17:48:50,167.0,0.0,0.0,0.0,0.0,1,5.5,49
|
871 |
+
880,2020-07-23 17:53:50,166.0,0.0,0.0,0.0,0.0,1,5.5,49
|
872 |
+
881,2020-07-23 17:58:49,161.0,0.0,0.0,0.0,0.0,1,5.5,49
|
873 |
+
882,2020-07-23 18:03:50,155.0,0.0,0.0,0.0,0.0,1,5.5,49
|
874 |
+
883,2020-07-23 18:08:49,149.0,0.0,0.0,0.0,0.0,1,5.5,49
|
875 |
+
884,2020-07-23 18:13:49,146.0,0.0,0.0,0.0,0.0,1,5.5,49
|
876 |
+
885,2020-07-23 18:18:49,145.0,0.0,0.0,0.0,0.0,1,5.5,49
|
877 |
+
886,2020-07-23 18:23:50,145.0,0.0,0.0,0.0,0.0,1,5.5,49
|
878 |
+
887,2020-07-23 18:28:49,145.0,0.0,0.0,0.0,0.0,1,5.5,49
|
879 |
+
888,2020-07-23 18:33:50,142.0,0.0,0.0,0.0,0.0,1,5.5,49
|
880 |
+
889,2020-07-23 18:38:49,139.0,0.0,0.0,0.0,0.0,1,5.5,49
|
881 |
+
890,2020-07-23 18:43:49,135.0,0.0,0.0,0.0,0.0,1,5.5,49
|
882 |
+
891,2020-07-23 18:48:49,132.0,0.0,0.0,0.0,0.0,1,5.5,49
|
883 |
+
892,2020-07-23 18:53:50,128.0,0.0,0.0,0.0,0.0,1,5.5,49
|
884 |
+
893,2020-07-23 18:58:50,125.0,0.0,0.0,0.0,0.0,1,5.5,49
|
885 |
+
894,2020-07-23 19:03:50,123.0,0.0,0.0,0.0,0.0,1,5.5,49
|
886 |
+
895,2020-07-23 19:08:49,122.0,0.0,0.0,0.0,0.0,1,5.5,49
|
887 |
+
896,2020-07-23 19:13:50,120.0,0.0,0.0,0.0,0.0,1,5.5,49
|
888 |
+
897,2020-07-23 19:18:50,118.0,0.0,0.0,0.0,0.0,1,5.5,49
|
889 |
+
898,2020-07-23 19:23:49,118.0,0.0,0.0,0.0,0.0,1,5.5,49
|
890 |
+
899,2020-07-23 19:28:50,119.0,0.0,0.0,0.0,0.0,1,5.5,49
|
891 |
+
900,2020-07-23 19:33:49,121.0,0.0,0.0,0.0,0.0,1,5.5,49
|
892 |
+
901,2020-07-23 19:38:49,122.0,0.0,0.0,0.0,0.0,1,5.5,49
|
893 |
+
902,2020-07-23 19:43:50,119.0,0.0,0.0,0.0,0.0,1,5.5,49
|
894 |
+
903,2020-07-23 19:48:50,113.0,0.0,0.0,0.0,0.0,1,5.5,49
|
895 |
+
904,2020-07-23 19:53:49,107.0,0.0,0.0,0.0,0.0,1,5.5,49
|
896 |
+
905,2020-07-23 19:58:50,102.0,0.0,0.0,0.0,0.0,1,5.5,49
|
897 |
+
906,2020-07-23 20:03:49,99.0,0.0,0.0,0.0,0.0,1,5.5,49
|
898 |
+
907,2020-07-23 20:08:50,97.0,0.0,0.0,0.0,0.0,1,5.5,49
|
899 |
+
908,2020-07-23 20:13:49,97.0,0.0,0.0,0.0,0.0,1,5.5,49
|
900 |
+
909,2020-07-23 20:18:49,97.0,0.0,0.0,0.0,0.0,1,5.5,49
|
901 |
+
910,2020-07-23 20:23:49,94.0,0.0,0.0,0.0,0.0,1,5.5,49
|
902 |
+
911,2020-07-23 20:28:49,90.0,0.0,0.0,0.0,0.0,1,5.5,49
|
903 |
+
912,2020-07-23 20:33:49,85.0,0.0,0.0,0.0,0.0,1,5.5,49
|
904 |
+
913,2020-07-23 20:38:50,81.0,0.0,0.0,0.0,0.0,1,5.5,49
|
905 |
+
914,2020-07-23 20:43:50,78.0,0.0,0.0,0.0,0.0,1,5.5,49
|
906 |
+
915,2020-07-23 20:48:49,78.0,0.0,0.0,0.0,0.0,1,5.5,49
|
907 |
+
916,2020-07-23 20:53:49,81.0,0.0,0.0,0.0,0.0,1,5.5,49
|
908 |
+
917,2020-07-23 20:58:49,86.0,0.0,0.0,0.0,0.0,1,5.5,49
|
909 |
+
918,2020-07-23 21:03:49,86.0,0.0,0.0,0.0,0.0,1,5.5,49
|
910 |
+
919,2020-07-23 21:08:49,84.0,0.0,0.0,0.0,0.0,1,5.5,49
|
911 |
+
920,2020-07-23 21:13:49,82.0,0.0,0.0,0.0,0.0,1,5.5,49
|
912 |
+
921,2020-07-23 21:18:49,80.0,0.0,0.0,0.0,0.0,1,5.5,49
|
913 |
+
922,2020-07-23 21:23:50,80.0,0.0,0.0,0.0,0.0,1,5.5,49
|
914 |
+
923,2020-07-23 21:28:49,83.0,0.0,0.0,0.0,0.0,1,5.5,49
|
915 |
+
924,2020-07-23 21:33:49,88.0,0.0,0.0,0.0,0.0,1,5.5,49
|
916 |
+
925,2020-07-23 21:38:49,96.0,0.0,0.0,0.0,0.0,1,5.5,49
|
917 |
+
926,2020-07-23 21:43:49,103.0,0.0,0.0,0.0,0.0,1,5.5,49
|
918 |
+
927,2020-07-23 21:48:49,107.0,0.0,0.0,0.0,0.0,1,5.5,49
|
919 |
+
928,2020-07-23 21:53:49,106.0,0.0,0.0,0.0,0.0,1,5.5,49
|
920 |
+
929,2020-07-23 21:58:49,104.0,0.0,0.0,0.0,0.0,1,5.5,49
|
921 |
+
930,2020-07-23 22:03:49,103.0,0.0,0.0,0.0,0.0,1,5.5,49
|
922 |
+
931,2020-07-23 22:08:49,104.0,0.0,0.0,0.0,0.0,1,5.5,49
|
923 |
+
932,2020-07-23 22:13:49,104.0,0.0,0.0,0.0,0.0,1,5.5,49
|
924 |
+
933,2020-07-23 22:18:49,104.0,0.0,0.0,0.0,0.0,1,5.5,49
|
925 |
+
934,2020-07-23 22:23:49,104.0,0.0,0.0,0.0,0.0,1,5.5,49
|
926 |
+
935,2020-07-23 22:28:49,107.0,0.0,0.0,0.0,0.0,1,5.5,49
|
927 |
+
936,2020-07-23 22:33:49,108.0,0.0,0.0,0.0,0.0,1,5.5,49
|
928 |
+
937,2020-07-23 22:38:49,107.0,0.0,0.0,0.0,0.0,1,5.5,49
|
929 |
+
938,2020-07-23 22:43:49,104.0,0.0,0.0,0.0,0.0,1,5.5,49
|
930 |
+
939,2020-07-23 22:48:50,100.0,0.0,0.0,0.0,0.0,1,5.5,49
|
931 |
+
940,2020-07-23 22:53:50,94.0,0.0,0.0,0.0,0.0,1,5.5,49
|
932 |
+
941,2020-07-23 22:58:49,89.0,0.0,0.0,0.0,0.0,1,5.5,49
|
933 |
+
942,2020-07-23 23:03:49,85.0,0.0,0.0,0.0,0.0,1,5.5,49
|
934 |
+
943,2020-07-23 23:08:49,82.0,0.0,0.0,0.0,0.0,1,5.5,49
|
935 |
+
944,2020-07-23 23:13:49,81.0,0.0,0.0,0.0,0.0,1,5.5,49
|
936 |
+
945,2020-07-23 23:18:49,82.0,0.0,0.0,0.0,0.0,1,5.5,49
|
937 |
+
946,2020-07-23 23:23:49,84.0,0.0,0.0,0.0,0.0,1,5.5,49
|
938 |
+
947,2020-07-23 23:28:49,85.0,0.0,0.0,0.0,0.0,1,5.5,49
|
939 |
+
948,2020-07-23 23:33:49,86.0,0.0,0.0,0.0,0.0,1,5.5,49
|
940 |
+
949,2020-07-23 23:38:49,87.0,0.0,0.0,0.0,0.0,1,5.5,49
|
941 |
+
950,2020-07-23 23:43:49,87.0,0.0,0.0,0.0,0.0,1,5.5,49
|
942 |
+
951,2020-07-23 23:48:49,88.0,0.0,0.0,0.0,0.0,1,5.5,49
|
943 |
+
952,2020-07-23 23:53:49,90.0,0.0,0.0,0.0,0.0,1,5.5,49
|
944 |
+
953,2020-07-23 23:58:50,91.0,0.0,0.0,0.0,0.0,1,5.5,49
|
945 |
+
954,2020-07-24 00:03:49,92.0,0.0,0.0,0.0,0.0,1,5.5,49
|
946 |
+
955,2020-07-24 00:08:49,91.0,0.0,0.0,0.0,0.0,1,5.5,49
|
947 |
+
956,2020-07-24 00:13:49,88.0,0.0,0.0,0.0,0.0,1,5.5,49
|
948 |
+
957,2020-07-24 00:18:49,84.0,0.0,0.0,0.0,0.0,1,5.5,49
|
949 |
+
958,2020-07-24 00:23:49,83.0,0.0,0.0,0.0,0.0,1,5.5,49
|
950 |
+
959,2020-07-24 00:28:49,87.0,0.0,0.0,0.0,0.0,1,5.5,49
|
951 |
+
960,2020-07-24 00:33:49,94.0,0.0,0.0,0.0,0.0,1,5.5,49
|
952 |
+
961,2020-07-24 00:38:49,101.0,0.0,0.0,0.0,0.0,1,5.5,49
|
953 |
+
962,2020-07-24 00:43:50,107.0,0.0,0.0,0.0,0.0,1,5.5,49
|
954 |
+
963,2020-07-24 00:48:49,112.0,0.0,0.0,0.0,0.0,1,5.5,49
|
955 |
+
964,2020-07-24 00:53:49,116.0,0.0,0.0,0.0,0.0,1,5.5,49
|
956 |
+
965,2020-07-24 00:58:50,116.0,0.0,0.0,0.0,0.0,1,5.5,49
|
957 |
+
966,2020-07-24 01:03:49,115.0,0.0,0.0,0.0,0.0,1,5.5,49
|
958 |
+
967,2020-07-24 01:08:49,114.0,0.0,0.0,0.0,0.0,1,5.5,49
|
959 |
+
968,2020-07-24 01:13:49,114.0,0.0,0.0,0.0,0.0,1,5.5,49
|
960 |
+
969,2020-07-24 01:18:50,114.0,0.0,0.0,0.0,0.0,1,5.5,49
|
961 |
+
970,2020-07-24 01:23:49,115.0,0.0,0.0,0.0,0.0,1,5.5,49
|
962 |
+
971,2020-07-24 01:28:50,116.0,0.0,0.0,0.0,0.0,1,5.5,49
|
963 |
+
972,2020-07-24 01:33:49,117.0,0.0,0.0,0.0,0.0,1,5.5,49
|
964 |
+
973,2020-07-24 01:38:50,117.0,0.0,0.0,0.0,0.0,1,5.5,49
|
965 |
+
974,2020-07-24 01:43:49,116.0,0.0,0.0,0.0,0.0,1,5.5,49
|
966 |
+
975,2020-07-24 01:48:49,116.0,0.0,0.0,0.0,0.0,1,5.5,49
|
967 |
+
976,2020-07-24 01:53:49,116.0,0.0,0.0,0.0,0.0,1,5.5,49
|
968 |
+
977,2020-07-24 01:58:49,116.0,0.0,0.0,0.0,0.0,1,5.5,49
|
969 |
+
978,2020-07-24 02:03:50,117.0,0.0,0.0,0.0,0.0,1,5.5,49
|
970 |
+
979,2020-07-24 02:08:49,115.0,0.0,0.0,0.0,0.0,1,5.5,49
|
971 |
+
980,2020-07-24 02:13:50,108.0,0.0,0.0,0.0,0.0,1,5.5,49
|
972 |
+
981,2020-07-24 02:18:49,101.0,0.0,0.0,0.0,0.0,1,5.5,49
|
973 |
+
982,2020-07-24 02:23:49,99.0,0.0,0.0,0.0,0.0,1,5.5,49
|
974 |
+
983,2020-07-24 02:28:50,104.0,0.0,0.0,0.0,0.0,1,5.5,49
|
975 |
+
984,2020-07-24 02:33:49,109.0,0.0,0.0,0.0,0.0,1,5.5,49
|
976 |
+
985,2020-07-24 02:38:49,110.0,0.0,0.0,0.0,0.0,1,5.5,49
|
977 |
+
986,2020-07-24 02:43:49,108.0,0.0,0.0,0.0,0.0,1,5.5,49
|
978 |
+
987,2020-07-24 02:48:49,106.0,0.0,0.0,0.0,0.0,1,5.5,49
|
979 |
+
988,2020-07-24 02:53:50,106.0,0.0,0.0,0.0,0.0,1,5.5,49
|
980 |
+
989,2020-07-24 02:58:49,108.0,0.0,0.0,0.0,0.0,1,5.5,49
|
981 |
+
990,2020-07-24 03:03:49,110.0,0.0,0.0,0.0,0.0,1,5.5,49
|
982 |
+
991,2020-07-24 03:08:49,111.0,0.0,0.0,0.0,0.0,1,5.5,49
|
983 |
+
992,2020-07-24 03:13:49,111.0,0.0,0.0,0.0,0.0,1,5.5,49
|
984 |
+
993,2020-07-24 03:18:49,110.0,0.0,0.0,0.0,0.0,1,5.5,49
|
985 |
+
994,2020-07-24 03:23:49,110.0,0.0,0.0,0.0,0.0,1,5.5,49
|
986 |
+
995,2020-07-24 03:28:49,111.0,0.0,0.0,0.0,0.0,1,5.5,49
|
987 |
+
996,2020-07-24 03:33:49,113.0,0.0,0.0,0.0,0.0,1,5.5,49
|
988 |
+
997,2020-07-24 03:38:49,115.0,0.0,0.0,0.0,0.0,1,5.5,49
|
989 |
+
998,2020-07-24 03:43:49,115.0,0.0,0.0,0.0,0.0,1,5.5,49
|
990 |
+
999,2020-07-24 03:48:49,111.0,0.0,0.0,0.0,0.0,1,5.5,49
|
991 |
+
1000,2020-07-24 03:53:49,108.0,0.0,0.0,0.0,0.0,1,5.5,49
|
992 |
+
1001,2020-07-24 03:58:49,105.0,0.0,0.0,0.0,0.0,1,5.5,49
|
993 |
+
1002,2020-07-24 04:03:49,106.0,0.0,0.0,0.0,0.0,1,5.5,49
|
994 |
+
1003,2020-07-24 04:08:49,108.0,0.0,0.0,0.0,0.0,1,5.5,49
|
995 |
+
1004,2020-07-24 04:13:49,112.0,0.0,0.0,0.0,0.0,1,5.5,49
|
996 |
+
1005,2020-07-24 04:18:49,115.0,0.0,0.0,0.0,0.0,1,5.5,49
|
997 |
+
1006,2020-07-24 04:23:49,118.0,0.0,0.0,0.0,0.0,1,5.5,49
|
998 |
+
1007,2020-07-24 04:28:49,119.0,0.0,0.0,0.0,0.0,1,5.5,49
|
999 |
+
1008,2020-07-24 04:33:49,120.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1000 |
+
1009,2020-07-24 04:38:49,121.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1001 |
+
1010,2020-07-24 04:43:49,121.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1002 |
+
1011,2020-07-24 04:48:49,121.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1003 |
+
1012,2020-07-24 04:53:49,121.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1004 |
+
1013,2020-07-24 04:58:49,121.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1005 |
+
1014,2020-07-24 05:03:49,120.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1006 |
+
1015,2020-07-24 05:08:49,119.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1007 |
+
1016,2020-07-24 05:13:49,117.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1008 |
+
1017,2020-07-24 05:18:49,115.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1009 |
+
1018,2020-07-24 05:23:49,113.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1010 |
+
1019,2020-07-24 05:28:49,112.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1011 |
+
1020,2020-07-24 05:33:49,112.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1012 |
+
1021,2020-07-24 05:38:49,111.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1013 |
+
1022,2020-07-24 05:43:49,108.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1014 |
+
1023,2020-07-24 05:48:49,107.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1015 |
+
1024,2020-07-24 05:53:49,108.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1016 |
+
1025,2020-07-24 05:58:49,108.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1017 |
+
1026,2020-07-24 06:03:49,109.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1018 |
+
1027,2020-07-24 06:08:49,107.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1019 |
+
1028,2020-07-24 06:13:49,111.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1020 |
+
1029,2020-07-24 06:18:49,117.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1021 |
+
1030,2020-07-24 06:23:49,128.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1022 |
+
1031,2020-07-24 06:28:49,138.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1023 |
+
1032,2020-07-24 06:33:49,142.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1024 |
+
1033,2020-07-24 06:38:49,140.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1025 |
+
1034,2020-07-24 06:43:49,132.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1026 |
+
1035,2020-07-24 06:48:49,124.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1027 |
+
1036,2020-07-24 06:53:49,117.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1028 |
+
1037,2020-07-24 06:58:49,113.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1029 |
+
1038,2020-07-24 07:03:49,110.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1030 |
+
1039,2020-07-24 07:08:49,109.0,63.05,0.0,0.0,0.0,1,5.5,49
|
1031 |
+
1040,2020-07-24 07:13:49,108.0,63.12,0.0,0.0,0.0,1,5.5,49
|
1032 |
+
1041,2020-07-24 07:18:49,105.0,63.57,0.0,0.0,0.0,1,5.5,49
|
1033 |
+
1042,2020-07-24 07:23:49,101.0,63.98,0.0,0.0,0.0,1,5.5,49
|
1034 |
+
1043,2020-07-24 07:28:49,99.0,63.77,0.0,0.0,0.0,1,5.5,49
|
1035 |
+
1044,2020-07-24 07:33:49,97.0,64.05,0.0,0.0,0.0,1,5.5,49
|
1036 |
+
1045,2020-07-24 07:38:49,96.0,63.72,0.0,0.0,0.0,1,5.5,49
|
1037 |
+
1046,2020-07-24 07:43:49,94.0,64.16,0.0,0.0,0.0,1,5.5,49
|
1038 |
+
1047,2020-07-24 07:48:49,94.0,63.57,0.0,0.0,0.0,1,5.5,49
|
1039 |
+
1048,2020-07-24 07:53:49,96.0,63.51,0.0,0.0,0.0,1,5.5,49
|
1040 |
+
1049,2020-07-24 07:58:49,96.0,64.25,0.0,0.0,0.0,1,5.5,49
|
1041 |
+
1050,2020-07-24 08:03:49,95.0,63.94,0.0,0.0,0.0,1,5.5,49
|
1042 |
+
1051,2020-07-24 08:08:49,92.0,63.64,0.0,0.0,0.0,1,5.5,49
|
1043 |
+
1052,2020-07-24 08:13:49,93.0,63.34,0.0,0.0,0.0,1,5.5,49
|
1044 |
+
1053,2020-07-24 08:18:49,94.0,63.66,0.0,0.0,0.0,1,5.5,49
|
1045 |
+
1054,2020-07-24 08:23:49,94.0,63.81,0.0,0.0,0.0,1,5.5,49
|
1046 |
+
1055,2020-07-24 08:28:48,95.0,64.94,0.0,0.0,0.0,1,5.5,49
|
1047 |
+
1056,2020-07-24 08:33:49,96.0,63.41,0.0,0.0,0.0,1,5.5,49
|
1048 |
+
1057,2020-07-24 08:38:49,98.0,63.34,0.0,0.0,0.0,1,5.5,49
|
1049 |
+
1058,2020-07-24 08:43:49,100.0,64.58,0.0,0.0,0.0,1,5.5,49
|
1050 |
+
1059,2020-07-24 08:48:49,103.0,63.94,0.0,0.0,0.0,1,5.5,49
|
1051 |
+
1060,2020-07-24 08:53:49,105.0,63.24,0.0,0.0,0.0,1,5.5,49
|
1052 |
+
1061,2020-07-24 08:58:49,105.0,64.79,0.0,0.0,0.0,1,5.5,49
|
1053 |
+
1062,2020-07-24 09:03:49,103.0,63.5,0.0,0.0,0.0,1,5.5,49
|
1054 |
+
1063,2020-07-24 09:08:49,100.0,63.75,0.0,0.0,0.0,1,5.5,49
|
1055 |
+
1064,2020-07-24 09:13:49,97.0,63.41,0.0,0.0,0.0,1,5.5,49
|
1056 |
+
1065,2020-07-24 09:18:49,97.0,63.22,0.0,0.0,0.0,1,5.5,49
|
1057 |
+
1066,2020-07-24 09:23:49,96.0,63.36,0.0,0.0,0.0,1,5.5,49
|
1058 |
+
1067,2020-07-24 09:28:49,96.0,63.15,0.0,0.0,0.0,1,5.5,49
|
1059 |
+
1068,2020-07-24 09:33:49,93.0,63.28,0.0,0.0,0.0,1,5.5,49
|
1060 |
+
1069,2020-07-24 09:38:49,90.0,63.1,0.0,0.0,0.0,1,5.5,49
|
1061 |
+
1070,2020-07-24 09:43:49,90.0,63.18,0.0,0.0,0.0,1,5.5,49
|
1062 |
+
1071,2020-07-24 09:48:49,92.0,63.23,0.0,0.0,0.0,1,5.5,49
|
1063 |
+
1072,2020-07-24 09:53:49,95.0,63.16,0.0,0.0,0.0,1,5.5,49
|
1064 |
+
1073,2020-07-24 09:58:49,95.0,63.38,0.0,0.0,0.0,1,5.5,49
|
1065 |
+
1074,2020-07-24 10:03:49,95.0,63.7,0.0,0.0,0.0,1,5.5,49
|
1066 |
+
1075,2020-07-24 10:08:49,95.0,63.49,0.0,0.0,0.0,1,5.5,49
|
1067 |
+
1076,2020-07-24 10:13:49,98.0,63.73,0.0,0.0,0.0,1,5.5,49
|
1068 |
+
1077,2020-07-24 10:18:49,102.0,63.32,0.0,0.0,0.0,1,5.5,49
|
1069 |
+
1078,2020-07-24 10:23:49,106.0,63.46,0.0,0.0,0.0,1,5.5,49
|
1070 |
+
1079,2020-07-24 10:28:49,108.0,63.48,0.0,0.0,0.0,1,5.5,49
|
1071 |
+
1080,2020-07-24 10:33:49,105.0,63.42,0.0,0.0,0.0,1,5.5,49
|
1072 |
+
1081,2020-07-24 10:38:49,102.0,63.13,0.0,0.0,0.0,1,5.5,49
|
1073 |
+
1082,2020-07-24 10:43:49,99.0,63.0,0.0,0.0,0.0,1,5.5,49
|
1074 |
+
1083,2020-07-24 10:48:49,97.0,62.9,0.0,0.0,0.0,1,5.5,49
|
1075 |
+
1084,2020-07-24 10:53:49,95.0,63.01,0.0,0.0,0.0,1,5.5,49
|
1076 |
+
1085,2020-07-24 10:58:49,94.0,63.42,0.0,0.0,0.0,1,5.5,49
|
1077 |
+
1086,2020-07-24 11:03:49,95.0,64.32,0.0,0.0,0.0,1,5.5,49
|
1078 |
+
1087,2020-07-24 11:08:49,97.0,63.94,0.0,0.0,0.0,1,5.5,49
|
1079 |
+
1088,2020-07-24 11:13:49,99.0,64.28,0.0,0.0,0.0,1,5.5,49
|
1080 |
+
1089,2020-07-24 11:18:49,98.0,66.76,0.0,0.0,0.0,1,5.5,49
|
1081 |
+
1090,2020-07-24 11:23:49,96.0,64.57,0.0,0.0,0.0,1,5.5,49
|
1082 |
+
1091,2020-07-24 11:28:49,94.0,64.16,0.0,0.0,0.0,1,5.5,49
|
1083 |
+
1092,2020-07-24 11:33:49,93.0,64.6,0.0,0.0,0.0,1,5.5,49
|
1084 |
+
1093,2020-07-24 11:38:49,93.0,64.54,0.0,0.0,0.0,1,5.5,49
|
1085 |
+
1094,2020-07-24 11:43:49,93.0,65.59,0.0,0.0,0.0,1,5.5,49
|
1086 |
+
1095,2020-07-24 11:48:48,93.0,66.12,0.0,0.0,0.0,1,5.5,49
|
1087 |
+
1096,2020-07-24 11:53:49,92.0,65.6,0.0,0.0,0.0,1,5.5,49
|
1088 |
+
1097,2020-07-24 11:58:49,91.0,64.81,0.0,0.0,0.0,1,5.5,49
|
1089 |
+
1098,2020-07-24 12:03:49,91.0,64.93,0.0,0.0,0.0,1,5.5,49
|
1090 |
+
1099,2020-07-24 12:08:49,89.0,66.31,0.0,0.0,0.0,1,5.5,49
|
1091 |
+
1100,2020-07-24 12:13:49,89.0,64.72,0.0,0.0,0.0,1,5.5,49
|
1092 |
+
1101,2020-07-24 12:18:49,89.0,64.51,0.0,0.0,0.0,1,5.5,49
|
1093 |
+
1102,2020-07-24 12:23:49,89.0,65.36,0.0,0.0,0.0,1,5.5,49
|
1094 |
+
1103,2020-07-24 12:28:49,88.0,64.76,0.0,0.0,0.0,1,5.5,49
|
1095 |
+
1104,2020-07-24 12:33:49,88.0,64.29,0.0,0.0,0.0,1,5.5,49
|
1096 |
+
1105,2020-07-24 12:38:49,89.0,64.26,0.0,0.0,0.0,1,5.5,49
|
1097 |
+
1106,2020-07-24 12:43:49,88.0,63.96,0.0,0.0,0.0,1,5.5,49
|
1098 |
+
1107,2020-07-24 12:48:49,85.0,63.65,0.0,0.0,0.0,1,5.5,49
|
1099 |
+
1108,2020-07-24 12:53:49,83.0,63.36,0.0,0.0,0.0,1,5.5,49
|
1100 |
+
1109,2020-07-24 12:58:49,85.0,64.09,0.0,0.0,0.0,1,5.5,49
|
1101 |
+
1110,2020-07-24 13:03:49,91.0,63.97,0.0,0.0,0.0,1,5.5,49
|
1102 |
+
1111,2020-07-24 13:08:49,99.0,63.61,0.0,0.0,0.0,1,5.5,49
|
1103 |
+
1112,2020-07-24 13:13:48,107.0,64.12,0.0,0.0,0.0,1,5.5,49
|
1104 |
+
1113,2020-07-24 13:18:49,109.0,64.3,0.0,0.0,0.0,1,5.5,49
|
1105 |
+
1114,2020-07-24 13:23:48,105.0,63.95,0.0,0.0,0.0,1,5.5,49
|
1106 |
+
1115,2020-07-24 13:28:49,99.0,63.9,0.0,0.0,0.0,1,5.5,49
|
1107 |
+
1116,2020-07-24 13:33:49,94.0,63.82,0.0,0.0,0.0,1,5.5,49
|
1108 |
+
1117,2020-07-24 13:38:49,94.0,63.7,0.0,0.0,0.0,1,5.5,49
|
1109 |
+
1118,2020-07-24 13:43:49,95.0,64.08,0.0,0.0,0.0,1,5.5,49
|
1110 |
+
1119,2020-07-24 13:48:48,96.0,65.92,0.0,0.0,0.0,1,5.5,49
|
1111 |
+
1120,2020-07-24 13:53:49,95.0,64.97,0.0,0.0,0.0,1,5.5,49
|
1112 |
+
1121,2020-07-24 13:58:49,95.0,64.0,0.0,0.0,0.0,1,5.5,49
|
1113 |
+
1122,2020-07-24 14:03:48,95.0,64.04,0.0,0.0,0.0,1,5.5,49
|
1114 |
+
1123,2020-07-24 14:08:49,96.0,63.9,0.0,0.0,0.0,1,5.5,49
|
1115 |
+
1124,2020-07-24 14:13:49,96.0,63.45,0.0,0.0,0.0,1,5.5,49
|
1116 |
+
1125,2020-07-24 14:18:49,94.0,64.15,0.0,0.0,0.0,1,5.5,49
|
1117 |
+
1126,2020-07-24 14:23:49,92.0,64.12,0.0,0.0,0.0,1,5.5,49
|
1118 |
+
1127,2020-07-24 14:28:48,91.0,64.23,0.0,0.0,0.0,1,5.5,49
|
1119 |
+
1128,2020-07-24 14:33:49,92.0,63.88,0.0,0.0,0.0,1,5.5,49
|
1120 |
+
1129,2020-07-24 14:38:49,95.0,63.54,0.0,0.0,0.0,1,5.5,49
|
1121 |
+
1130,2020-07-24 14:43:48,96.0,63.75,0.0,0.0,0.0,1,5.5,49
|
1122 |
+
1131,2020-07-24 14:48:49,99.0,63.38,0.0,0.0,0.0,1,5.5,49
|
1123 |
+
1132,2020-07-24 14:53:48,101.0,63.52,0.0,0.0,0.0,1,5.5,49
|
1124 |
+
1133,2020-07-24 14:58:49,102.0,63.41,0.0,0.0,0.0,1,5.5,49
|
1125 |
+
1134,2020-07-24 15:03:49,102.0,63.62,0.0,0.0,0.0,1,5.5,49
|
1126 |
+
1135,2020-07-24 15:08:49,100.0,64.23,0.0,0.0,0.0,1,5.5,49
|
1127 |
+
1136,2020-07-24 15:13:49,98.0,63.99,0.0,0.0,0.0,1,5.5,49
|
1128 |
+
1137,2020-07-24 15:18:49,96.0,64.02,0.0,0.0,0.0,1,5.5,49
|
1129 |
+
1138,2020-07-24 15:23:49,94.0,65.01,0.0,0.0,0.0,1,5.5,49
|
1130 |
+
1139,2020-07-24 15:28:49,94.0,63.87,0.0,0.0,0.0,1,5.5,49
|
1131 |
+
1140,2020-07-24 15:33:49,95.0,64.26,0.0,0.0,0.0,1,5.5,49
|
1132 |
+
1141,2020-07-24 15:38:49,95.0,63.38,0.0,0.0,0.0,1,5.5,49
|
1133 |
+
1142,2020-07-24 15:43:49,95.0,64.42,0.0,0.0,0.0,1,5.5,49
|
1134 |
+
1143,2020-07-24 15:48:49,94.0,63.76,0.0,0.0,0.0,1,5.5,49
|
1135 |
+
1144,2020-07-24 15:53:49,95.0,65.25,0.0,0.0,0.0,1,5.5,49
|
1136 |
+
1145,2020-07-24 15:58:48,95.0,67.11,0.0,0.0,0.0,1,5.5,49
|
1137 |
+
1146,2020-07-24 16:03:49,96.0,63.78,0.0,0.0,0.0,1,5.5,49
|
1138 |
+
1147,2020-07-24 16:08:49,94.0,63.82,0.0,0.0,0.0,1,5.5,49
|
1139 |
+
1148,2020-07-24 16:13:48,93.0,64.03,0.0,0.0,0.0,1,5.5,49
|
1140 |
+
1149,2020-07-24 16:18:49,91.0,64.21,0.0,0.0,0.0,1,5.5,49
|
1141 |
+
1150,2020-07-24 16:23:49,90.0,64.12,0.0,0.0,0.0,1,5.5,49
|
1142 |
+
1151,2020-07-24 16:28:49,89.0,64.01,0.0,0.0,0.0,1,5.5,49
|
1143 |
+
1152,2020-07-24 16:33:49,90.0,63.84,0.0,0.0,0.0,1,5.5,49
|
1144 |
+
1153,2020-07-24 16:38:49,90.0,64.12,0.0,0.0,0.0,1,5.5,49
|
1145 |
+
1154,2020-07-24 16:43:49,90.0,63.77,0.0,0.0,0.0,1,5.5,49
|
1146 |
+
1155,2020-07-24 16:48:48,90.0,64.41,0.0,0.0,0.0,1,5.5,49
|
1147 |
+
1156,2020-07-24 16:53:49,91.0,63.77,0.0,0.0,0.0,1,5.5,49
|
1148 |
+
1157,2020-07-24 16:58:48,92.0,63.76,0.0,0.0,0.0,1,5.5,49
|
1149 |
+
1158,2020-07-24 17:03:49,94.0,63.65,0.0,0.0,0.0,1,5.5,49
|
1150 |
+
1159,2020-07-24 17:08:48,96.0,63.92,0.0,0.0,0.0,1,5.5,49
|
1151 |
+
1160,2020-07-24 17:13:49,96.0,63.86,0.0,0.0,0.0,1,5.5,49
|
1152 |
+
1161,2020-07-24 17:18:48,97.0,63.89,0.0,0.0,0.0,1,5.5,49
|
1153 |
+
1162,2020-07-24 17:23:49,96.0,63.75,0.0,0.0,0.0,1,5.5,49
|
1154 |
+
1163,2020-07-24 17:28:49,97.0,63.66,0.0,0.0,0.0,1,5.5,49
|
1155 |
+
1164,2020-07-24 17:33:49,98.0,64.2,0.0,0.0,0.0,1,5.5,49
|
1156 |
+
1165,2020-07-24 17:38:49,102.0,63.9,0.0,0.0,0.0,1,5.5,49
|
1157 |
+
1166,2020-07-24 17:43:49,106.0,64.21,0.0,0.0,0.0,1,5.5,49
|
1158 |
+
1167,2020-07-24 17:48:49,108.0,64.49,0.0,0.0,0.0,1,5.5,49
|
1159 |
+
1168,2020-07-24 17:53:49,107.0,64.02,0.0,0.0,0.0,1,5.5,49
|
1160 |
+
1169,2020-07-24 17:58:49,107.0,63.84,0.0,0.0,0.0,1,5.5,49
|
1161 |
+
1170,2020-07-24 18:03:48,109.0,64.01,0.0,0.0,0.0,1,5.5,49
|
1162 |
+
1171,2020-07-24 18:08:49,111.0,63.86,0.0,0.0,0.0,1,5.5,49
|
1163 |
+
1172,2020-07-24 18:13:49,111.0,64.42,0.0,0.0,0.0,1,5.5,49
|
1164 |
+
1173,2020-07-24 18:18:49,113.0,63.81,0.0,0.0,0.0,1,5.5,49
|
1165 |
+
1174,2020-07-24 18:23:49,114.0,64.18,0.0,0.0,0.0,1,5.5,49
|
1166 |
+
1175,2020-07-24 18:28:48,118.0,63.96,0.0,0.0,0.0,1,5.5,49
|
1167 |
+
1176,2020-07-24 18:33:49,118.0,63.89,0.0,0.0,0.0,1,5.5,49
|
1168 |
+
1177,2020-07-24 18:38:48,118.0,65.08,0.0,0.0,0.0,1,5.5,49
|
1169 |
+
1178,2020-07-24 18:43:50,117.0,63.88,0.0,0.0,0.0,1,5.5,49
|
1170 |
+
1179,2020-07-24 18:48:49,117.0,63.84,0.0,0.0,0.0,1,5.5,49
|
1171 |
+
1180,2020-07-24 18:53:50,117.0,63.84,0.0,0.0,0.0,1,5.5,49
|
1172 |
+
1181,2020-07-24 18:58:50,117.0,63.74,0.0,0.0,0.0,1,5.5,49
|
1173 |
+
1182,2020-07-24 19:03:49,117.0,63.77,0.0,0.0,0.0,1,5.5,49
|
1174 |
+
1183,2020-07-24 19:08:50,120.0,63.77,0.0,0.0,0.0,1,5.5,49
|
1175 |
+
1184,2020-07-24 19:13:50,121.0,63.71,0.0,0.0,0.0,1,5.5,49
|
1176 |
+
1185,2020-07-24 19:18:50,121.0,63.85,0.0,0.0,0.0,1,5.5,49
|
1177 |
+
1186,2020-07-24 19:23:50,120.0,63.91,0.0,0.0,0.0,1,5.5,49
|
1178 |
+
1187,2020-07-24 19:28:50,122.0,63.85,0.0,0.0,0.0,1,5.5,49
|
1179 |
+
1188,2020-07-24 19:33:50,124.0,63.75,0.0,0.0,0.0,1,5.5,49
|
1180 |
+
1189,2020-07-24 19:38:49,126.0,63.82,0.0,0.0,0.0,1,5.5,49
|
1181 |
+
1190,2020-07-24 19:43:50,128.0,64.67,0.0,0.0,0.0,1,5.5,49
|
1182 |
+
1191,2020-07-24 19:48:49,128.0,63.7,0.0,0.0,0.0,1,5.5,49
|
1183 |
+
1192,2020-07-24 19:53:50,126.0,63.86,0.0,0.0,0.0,1,5.5,49
|
1184 |
+
1193,2020-07-24 19:58:49,122.0,64.75,0.0,0.0,0.0,1,5.5,49
|
1185 |
+
1194,2020-07-24 20:03:50,117.0,63.95,0.0,0.0,0.0,1,5.5,49
|
1186 |
+
1195,2020-07-24 20:08:50,111.0,63.78,0.0,0.0,0.0,1,5.5,49
|
1187 |
+
1196,2020-07-24 20:13:49,106.0,64.02,0.0,0.0,0.0,1,5.5,49
|
1188 |
+
1197,2020-07-24 20:18:50,105.0,64.19,0.0,0.0,0.0,1,5.5,49
|
1189 |
+
1198,2020-07-24 20:23:50,105.0,63.5,0.0,0.0,0.0,1,5.5,49
|
1190 |
+
1199,2020-07-24 20:28:50,103.0,63.88,0.0,0.0,0.0,1,5.5,49
|
1191 |
+
1200,2020-07-24 20:33:49,100.0,63.84,0.0,0.0,0.0,1,5.5,49
|
1192 |
+
1201,2020-07-24 20:38:49,98.0,64.03,0.0,0.0,0.0,1,5.5,49
|
1193 |
+
1202,2020-07-24 20:43:50,104.0,63.97,0.0,0.0,0.0,1,5.5,49
|
1194 |
+
1203,2020-07-24 20:48:50,117.0,63.86,0.0,0.0,0.0,1,5.5,49
|
1195 |
+
1204,2020-07-24 20:53:50,132.0,64.34,0.0,0.0,0.0,1,5.5,49
|
1196 |
+
1205,2020-07-24 20:58:49,144.0,63.56,0.0,0.0,0.0,1,5.5,49
|
1197 |
+
1206,2020-07-24 21:03:50,152.0,63.65,0.0,0.0,0.0,1,5.5,49
|
1198 |
+
1207,2020-07-24 21:08:50,160.0,63.73,0.0,0.0,0.0,1,5.5,49
|
1199 |
+
1208,2020-07-24 21:13:50,169.0,63.7,0.0,0.0,0.0,1,5.5,49
|
1200 |
+
1209,2020-07-24 21:18:50,175.0,63.6,0.0,0.0,0.0,1,5.5,49
|
1201 |
+
1210,2020-07-24 21:23:50,177.0,63.85,0.0,0.0,0.0,1,5.5,49
|
1202 |
+
1211,2020-07-24 21:28:50,172.0,64.34,0.0,0.0,0.0,1,5.5,49
|
1203 |
+
1212,2020-07-24 21:33:50,164.0,64.03,0.0,0.0,0.0,1,5.5,49
|
1204 |
+
1213,2020-07-24 21:38:50,156.0,64.07,0.0,0.0,0.0,1,5.5,49
|
1205 |
+
1214,2020-07-24 21:43:50,151.0,63.88,0.0,0.0,0.0,1,5.5,49
|
1206 |
+
1215,2020-07-24 21:48:50,147.0,63.87,0.0,0.0,0.0,1,5.5,49
|
1207 |
+
1216,2020-07-24 21:53:50,144.0,63.91,0.0,0.0,0.0,1,5.5,49
|
1208 |
+
1217,2020-07-24 21:58:50,139.0,63.96,0.0,0.0,0.0,1,5.5,49
|
1209 |
+
1218,2020-07-24 22:03:50,135.0,63.87,0.0,0.0,0.0,1,5.5,49
|
1210 |
+
1219,2020-07-24 22:08:49,132.0,63.86,0.0,0.0,0.0,1,5.5,49
|
1211 |
+
1220,2020-07-24 22:13:50,130.0,63.81,0.0,0.0,0.0,1,5.5,49
|
1212 |
+
1221,2020-07-24 22:18:49,128.0,63.75,0.0,0.0,0.0,1,5.5,49
|
1213 |
+
1222,2020-07-24 22:23:50,126.0,63.58,0.0,0.0,0.0,1,5.5,49
|
1214 |
+
1223,2020-07-24 22:28:49,124.0,63.51,0.0,0.0,0.0,1,5.5,49
|
1215 |
+
1224,2020-07-24 22:33:49,121.0,63.48,0.0,0.0,0.0,1,5.5,49
|
1216 |
+
1225,2020-07-24 22:38:50,117.0,63.38,0.0,0.0,0.0,1,5.5,49
|
1217 |
+
1226,2020-07-24 22:43:50,114.0,63.43,0.0,0.0,0.0,1,5.5,49
|
1218 |
+
1227,2020-07-24 22:48:49,114.0,63.33,0.0,0.0,0.0,1,5.5,49
|
1219 |
+
1228,2020-07-24 22:53:50,114.0,63.37,0.0,0.0,0.0,1,5.5,49
|
1220 |
+
1229,2020-07-24 22:58:49,116.0,63.43,0.0,0.0,0.0,1,5.5,49
|
1221 |
+
1230,2020-07-24 23:03:50,117.0,63.54,0.0,0.0,0.0,1,5.5,49
|
1222 |
+
1231,2020-07-24 23:08:49,118.0,63.66,0.0,0.0,0.0,1,5.5,49
|
1223 |
+
1232,2020-07-24 23:13:50,119.0,63.78,0.0,0.0,0.0,1,5.5,49
|
1224 |
+
1233,2020-07-24 23:18:49,119.0,63.31,0.0,0.0,0.0,1,5.5,49
|
1225 |
+
1234,2020-07-24 23:23:49,118.0,63.21,0.0,0.0,0.0,1,5.5,49
|
1226 |
+
1235,2020-07-24 23:28:49,117.0,64.49,0.0,0.0,0.0,1,5.5,49
|
1227 |
+
1236,2020-07-24 23:33:49,118.0,63.64,0.0,0.0,0.0,1,5.5,49
|
1228 |
+
1237,2020-07-24 23:38:49,118.0,63.52,0.0,0.0,0.0,1,5.5,49
|
1229 |
+
1238,2020-07-24 23:43:49,119.0,63.57,0.0,0.0,0.0,1,5.5,49
|
1230 |
+
1239,2020-07-24 23:48:50,117.0,63.49,0.0,0.0,0.0,1,5.5,49
|
1231 |
+
1240,2020-07-24 23:53:49,115.0,63.6,0.0,0.0,0.0,1,5.5,49
|
1232 |
+
1241,2020-07-24 23:58:50,112.0,63.53,0.0,0.0,0.0,1,5.5,49
|
1233 |
+
1242,2020-07-25 00:03:49,110.0,63.48,0.0,0.0,0.0,1,5.5,49
|
1234 |
+
1243,2020-07-25 00:08:49,109.0,63.57,0.0,0.0,0.0,1,5.5,49
|
1235 |
+
1244,2020-07-25 00:13:50,108.0,63.67,0.0,0.0,0.0,1,5.5,49
|
1236 |
+
1245,2020-07-25 00:18:50,106.0,63.6,0.0,0.0,0.0,1,5.5,49
|
1237 |
+
1246,2020-07-25 00:23:50,105.0,63.64,0.0,0.0,0.0,1,5.5,49
|
1238 |
+
1247,2020-07-25 00:28:50,104.0,63.53,0.0,0.0,0.0,1,5.5,49
|
1239 |
+
1248,2020-07-25 00:33:50,104.0,63.53,0.0,0.0,0.0,1,5.5,49
|
1240 |
+
1249,2020-07-25 00:38:49,104.0,63.62,0.0,0.0,0.0,1,5.5,49
|
1241 |
+
1250,2020-07-25 00:43:49,104.0,63.57,0.0,0.0,0.0,1,5.5,49
|
1242 |
+
1251,2020-07-25 00:48:49,105.0,63.86,0.0,0.0,0.0,1,5.5,49
|
1243 |
+
1252,2020-07-25 00:53:49,106.0,63.6,0.0,0.0,0.0,1,5.5,49
|
1244 |
+
1253,2020-07-25 00:58:50,107.0,63.38,0.0,0.0,0.0,1,5.5,49
|
1245 |
+
1254,2020-07-25 01:03:49,107.0,63.37,0.0,0.0,0.0,1,5.5,49
|
1246 |
+
1255,2020-07-25 01:08:49,107.0,63.25,0.0,0.0,0.0,1,5.5,49
|
1247 |
+
1256,2020-07-25 01:13:49,107.0,63.63,0.0,0.0,0.0,1,5.5,49
|
1248 |
+
1257,2020-07-25 01:18:50,107.0,63.98,0.0,0.0,0.0,1,5.5,49
|
1249 |
+
1258,2020-07-25 01:23:49,107.0,63.73,0.0,0.0,0.0,1,5.5,49
|
1250 |
+
1259,2020-07-25 01:28:49,107.0,63.78,0.0,0.0,0.0,1,5.5,49
|
1251 |
+
1260,2020-07-25 01:33:50,107.0,63.79,0.0,0.0,0.0,1,5.5,49
|
1252 |
+
1261,2020-07-25 01:38:49,108.0,63.8,0.0,0.0,0.0,1,5.5,49
|
1253 |
+
1262,2020-07-25 01:43:49,109.0,63.79,0.0,0.0,0.0,1,5.5,49
|
1254 |
+
1263,2020-07-25 01:48:50,109.0,63.83,0.0,0.0,0.0,1,5.5,49
|
1255 |
+
1264,2020-07-25 01:53:49,110.0,63.75,0.0,0.0,0.0,1,5.5,49
|
1256 |
+
1265,2020-07-25 01:58:49,110.0,63.72,0.0,0.0,0.0,1,5.5,49
|
1257 |
+
1266,2020-07-25 02:03:50,109.0,63.79,0.0,0.0,0.0,1,5.5,49
|
1258 |
+
1267,2020-07-25 02:08:49,105.0,63.56,0.0,0.0,0.0,1,5.5,49
|
1259 |
+
1268,2020-07-25 02:13:49,101.0,63.28,0.0,0.0,0.0,1,5.5,49
|
1260 |
+
1269,2020-07-25 02:18:50,99.0,63.92,0.0,0.0,0.0,1,5.5,49
|
1261 |
+
1270,2020-07-25 02:23:50,103.0,64.02,0.0,0.0,0.0,1,5.5,49
|
1262 |
+
1271,2020-07-25 02:28:49,107.0,64.05,0.0,0.0,0.0,1,5.5,49
|
1263 |
+
1272,2020-07-25 02:33:49,110.0,64.06,0.0,0.0,0.0,1,5.5,49
|
1264 |
+
1273,2020-07-25 02:38:49,111.0,63.95,0.0,0.0,0.0,1,5.5,49
|
1265 |
+
1274,2020-07-25 02:43:50,110.0,63.94,0.0,0.0,0.0,1,5.5,49
|
1266 |
+
1275,2020-07-25 02:48:50,109.0,63.93,0.0,0.0,0.0,1,5.5,49
|
1267 |
+
1276,2020-07-25 02:53:49,108.0,63.86,0.0,0.0,0.0,1,5.5,49
|
1268 |
+
1277,2020-07-25 02:58:49,107.0,64.14,0.0,0.0,0.0,1,5.5,49
|
1269 |
+
1278,2020-07-25 03:03:49,106.0,64.18,0.0,0.0,0.0,1,5.5,49
|
1270 |
+
1279,2020-07-25 03:08:49,105.0,64.11,0.0,0.0,0.0,1,5.5,49
|
1271 |
+
1280,2020-07-25 03:13:50,104.0,64.07,0.0,0.0,0.0,1,5.5,49
|
1272 |
+
1281,2020-07-25 03:18:49,103.0,63.77,0.0,0.0,0.0,1,5.5,49
|
1273 |
+
1282,2020-07-25 03:23:49,102.0,63.44,0.0,0.0,0.0,1,5.5,49
|
1274 |
+
1283,2020-07-25 03:28:50,101.0,63.33,0.0,0.0,0.0,1,5.5,49
|
1275 |
+
1284,2020-07-25 03:33:49,102.0,63.28,0.0,0.0,0.0,1,5.5,49
|
1276 |
+
1285,2020-07-25 03:38:49,106.0,63.75,0.0,0.0,0.0,1,5.5,49
|
1277 |
+
1286,2020-07-25 03:43:49,109.0,63.68,0.0,0.0,0.0,1,5.5,49
|
1278 |
+
1287,2020-07-25 03:48:50,112.0,63.62,0.0,0.0,0.0,1,5.5,49
|
1279 |
+
1288,2020-07-25 03:53:50,112.0,64.04,0.0,0.0,0.0,1,5.5,49
|
1280 |
+
1289,2020-07-25 03:58:49,113.0,63.78,0.0,0.0,0.0,1,5.5,49
|
1281 |
+
1290,2020-07-25 04:03:49,109.0,63.84,0.0,0.0,0.0,1,5.5,49
|
1282 |
+
1291,2020-07-25 04:08:50,103.0,63.61,0.0,0.0,0.0,1,5.5,49
|
1283 |
+
1292,2020-07-25 04:13:50,101.0,63.69,0.0,0.0,0.0,1,5.5,49
|
1284 |
+
1293,2020-07-25 04:18:50,103.0,63.69,0.0,0.0,0.0,1,5.5,49
|
1285 |
+
1294,2020-07-25 04:23:50,108.0,63.61,0.0,0.0,0.0,1,5.5,49
|
1286 |
+
1295,2020-07-25 04:28:50,108.0,63.6,0.0,0.0,0.0,1,5.5,49
|
1287 |
+
1296,2020-07-25 04:33:50,108.0,63.57,0.0,0.0,0.0,1,5.5,49
|
1288 |
+
1297,2020-07-25 04:38:50,107.0,63.66,0.0,0.0,0.0,1,5.5,49
|
1289 |
+
1298,2020-07-25 04:43:50,104.0,63.62,0.0,0.0,0.0,1,5.5,49
|
1290 |
+
1299,2020-07-25 04:48:49,101.0,63.57,0.0,0.0,0.0,1,5.5,49
|
1291 |
+
1300,2020-07-25 04:53:50,99.0,63.41,0.0,0.0,0.0,1,5.5,49
|
1292 |
+
1301,2020-07-25 04:58:49,101.0,63.36,0.0,0.0,0.0,1,5.5,49
|
1293 |
+
1302,2020-07-25 05:03:49,103.0,63.81,0.0,0.0,0.0,1,5.5,49
|
1294 |
+
1303,2020-07-25 05:08:50,104.0,63.79,0.0,0.0,0.0,1,5.5,49
|
1295 |
+
1304,2020-07-25 05:13:49,105.0,63.57,0.0,0.0,0.0,1,5.5,49
|
1296 |
+
1305,2020-07-25 05:18:50,106.0,63.47,0.0,0.0,0.0,1,5.5,49
|
1297 |
+
1306,2020-07-25 05:23:50,106.0,63.8,0.0,0.0,0.0,1,5.5,49
|
1298 |
+
1307,2020-07-25 05:28:49,106.0,63.82,0.0,0.0,0.0,1,5.5,49
|
1299 |
+
1308,2020-07-25 05:33:49,106.0,63.7,0.0,0.0,0.0,1,5.5,49
|
1300 |
+
1309,2020-07-25 05:38:50,106.0,63.58,0.0,0.0,0.0,1,5.5,49
|
1301 |
+
1310,2020-07-25 05:43:50,107.0,63.5,0.0,0.0,0.0,1,5.5,49
|
1302 |
+
1311,2020-07-25 05:48:50,110.0,63.84,0.0,0.0,0.0,1,5.5,49
|
1303 |
+
1312,2020-07-25 05:53:49,111.0,63.84,0.0,0.0,0.0,1,5.5,49
|
1304 |
+
1313,2020-07-25 05:58:50,113.0,63.84,0.0,0.0,0.0,1,5.5,49
|
1305 |
+
1314,2020-07-25 06:03:49,115.0,63.74,0.0,0.0,0.0,1,5.5,49
|
1306 |
+
1315,2020-07-25 06:08:49,117.0,63.77,0.0,0.0,0.0,1,5.5,49
|
1307 |
+
1316,2020-07-25 06:13:50,117.0,63.68,0.0,0.0,0.0,1,5.5,49
|
1308 |
+
1317,2020-07-25 06:18:50,115.0,63.64,0.0,0.0,0.0,1,5.5,49
|
1309 |
+
1318,2020-07-25 06:23:50,115.0,64.52,0.0,0.0,0.0,1,5.5,49
|
1310 |
+
1319,2020-07-25 06:28:50,117.0,63.7,0.0,0.0,0.0,1,5.5,49
|
1311 |
+
1320,2020-07-25 06:33:50,117.0,63.67,0.0,0.0,0.0,1,5.5,49
|
1312 |
+
1321,2020-07-25 06:38:50,115.0,63.62,0.0,0.0,0.0,1,5.5,49
|
1313 |
+
1322,2020-07-25 06:43:49,114.0,63.62,0.0,0.0,0.0,1,5.5,49
|
1314 |
+
1323,2020-07-25 06:48:50,117.0,63.48,0.0,0.0,0.0,1,5.5,49
|
1315 |
+
1324,2020-07-25 06:53:50,119.0,63.39,0.0,0.0,0.0,1,5.5,49
|
1316 |
+
1325,2020-07-25 06:58:49,119.0,63.46,0.0,0.0,0.0,1,5.5,49
|
1317 |
+
1326,2020-07-25 07:03:50,118.0,64.0,0.0,0.0,0.0,1,5.5,49
|
1318 |
+
1327,2020-07-25 07:08:50,118.0,63.85,0.0,0.0,0.0,1,5.5,49
|
1319 |
+
1328,2020-07-25 07:13:49,119.0,63.79,0.0,0.0,0.0,1,5.5,49
|
1320 |
+
1329,2020-07-25 07:18:49,121.0,63.76,0.0,0.0,0.0,1,5.5,49
|
1321 |
+
1330,2020-07-25 07:23:49,124.0,63.69,0.0,0.0,0.0,1,5.5,49
|
1322 |
+
1331,2020-07-25 07:28:49,126.0,63.77,0.0,0.0,0.0,1,5.5,49
|
1323 |
+
1332,2020-07-25 07:33:49,126.0,63.8,0.0,0.0,0.0,1,5.5,49
|
1324 |
+
1333,2020-07-25 07:38:50,126.0,63.68,0.0,0.0,0.0,1,5.5,49
|
1325 |
+
1334,2020-07-25 07:43:49,126.0,63.63,0.0,0.0,0.0,1,5.5,49
|
1326 |
+
1335,2020-07-25 07:48:49,126.0,63.44,0.0,0.0,0.0,1,5.5,49
|
1327 |
+
1336,2020-07-25 07:53:50,125.0,63.38,0.0,0.0,0.0,1,5.5,49
|
1328 |
+
1337,2020-07-25 07:58:50,124.0,63.22,0.0,0.0,0.0,1,5.5,49
|
1329 |
+
1338,2020-07-25 08:03:49,121.0,63.35,0.0,0.0,0.0,1,5.5,49
|
1330 |
+
1339,2020-07-25 08:08:49,117.0,63.21,0.0,0.0,0.0,1,5.5,49
|
1331 |
+
1340,2020-07-25 08:13:50,114.0,63.13,0.0,0.0,0.0,1,5.5,49
|
1332 |
+
1341,2020-07-25 08:18:49,114.0,63.7,0.0,0.0,0.0,1,5.5,49
|
1333 |
+
1342,2020-07-25 08:23:50,116.0,63.65,0.0,0.0,0.0,1,5.5,49
|
1334 |
+
1343,2020-07-25 08:28:50,119.0,63.86,0.0,0.0,0.0,1,5.5,49
|
1335 |
+
1344,2020-07-25 08:33:50,120.0,63.52,0.0,0.0,0.0,1,5.5,49
|
1336 |
+
1345,2020-07-25 08:38:50,116.0,64.53,0.0,0.0,0.0,1,5.5,49
|
1337 |
+
1346,2020-07-25 08:43:49,114.0,62.84,0.0,0.0,0.0,1,5.5,49
|
1338 |
+
1347,2020-07-25 08:48:49,115.0,62.87,0.0,0.0,0.0,1,5.5,49
|
1339 |
+
1348,2020-07-25 08:53:48,121.0,62.86,0.0,0.0,0.0,1,5.5,49
|
1340 |
+
1349,2020-07-25 08:58:48,124.0,62.95,0.0,0.0,0.0,1,5.5,49
|
1341 |
+
1350,2020-07-25 09:03:48,125.0,63.54,0.0,0.0,0.0,1,5.5,49
|
1342 |
+
1351,2020-07-25 09:08:48,122.0,63.45,0.0,0.0,0.0,1,5.5,49
|
1343 |
+
1352,2020-07-25 09:13:48,117.0,64.2,0.0,0.0,0.0,1,5.5,49
|
1344 |
+
1353,2020-07-25 09:18:48,110.0,64.29,0.0,0.0,0.0,1,5.5,49
|
1345 |
+
1354,2020-07-25 09:23:48,104.0,63.38,0.0,0.0,0.0,1,5.5,49
|
1346 |
+
1355,2020-07-25 09:28:48,100.0,63.55,0.0,0.0,0.0,1,5.5,49
|
1347 |
+
1356,2020-07-25 09:33:48,98.0,63.21,0.0,0.0,0.0,1,5.5,49
|
1348 |
+
1357,2020-07-25 09:38:48,100.0,62.94,0.0,0.0,0.0,1,5.5,49
|
1349 |
+
1358,2020-07-25 09:43:48,104.0,62.61,0.0,0.0,0.0,1,5.5,49
|
1350 |
+
1359,2020-07-25 09:48:48,106.0,62.83,0.0,0.0,0.0,1,5.5,49
|
1351 |
+
1360,2020-07-25 09:53:48,106.0,63.07,0.0,0.0,0.0,1,5.5,49
|
1352 |
+
1361,2020-07-25 09:58:48,105.0,62.95,0.0,0.0,0.0,1,5.5,49
|
1353 |
+
1362,2020-07-25 10:03:48,106.0,63.02,0.0,0.0,0.0,1,5.5,49
|
1354 |
+
1363,2020-07-25 10:08:48,108.0,64.91,0.0,0.0,0.0,1,5.5,49
|
1355 |
+
1364,2020-07-25 10:13:48,108.0,64.62,0.0,0.0,0.0,1,5.5,49
|
1356 |
+
1365,2020-07-25 10:18:48,111.0,63.55,0.0,0.0,0.0,1,5.5,49
|
1357 |
+
1366,2020-07-25 10:23:48,114.0,63.84,0.0,0.0,0.0,1,5.5,49
|
1358 |
+
1367,2020-07-25 10:28:48,114.0,65.0,0.0,0.0,0.0,1,5.5,49
|
1359 |
+
1368,2020-07-25 10:33:48,110.0,64.85,0.0,0.0,0.0,1,5.5,49
|
1360 |
+
1369,2020-07-25 10:38:48,105.0,63.69,0.0,0.0,0.0,1,5.5,49
|
1361 |
+
1370,2020-07-25 10:43:48,101.0,63.62,0.0,0.0,0.0,1,5.5,49
|
1362 |
+
1371,2020-07-25 10:48:48,102.0,63.37,0.0,0.0,0.0,1,5.5,49
|
1363 |
+
1372,2020-07-25 10:53:48,107.0,64.37,0.0,0.0,0.0,1,5.5,49
|
1364 |
+
1373,2020-07-25 10:58:48,113.0,63.99,0.0,0.0,0.0,1,5.5,49
|
1365 |
+
1374,2020-07-25 11:03:48,114.0,64.35,0.0,0.0,0.0,1,5.5,49
|
1366 |
+
1375,2020-07-25 11:08:48,112.0,64.47,0.0,0.0,0.0,1,5.5,49
|
1367 |
+
1376,2020-07-25 11:13:48,108.0,64.34,0.0,0.0,0.0,1,5.5,49
|
1368 |
+
1377,2020-07-25 11:18:48,105.0,64.3,0.0,0.0,0.0,1,5.5,49
|
1369 |
+
1378,2020-07-25 11:23:48,103.0,64.29,0.0,0.0,0.0,1,5.5,49
|
1370 |
+
1379,2020-07-25 11:28:48,103.0,64.29,0.0,0.0,0.0,1,5.5,49
|
1371 |
+
1380,2020-07-25 11:33:48,104.0,64.24,0.0,0.0,0.0,1,5.5,49
|
1372 |
+
1381,2020-07-26 09:28:47,114.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1373 |
+
1382,2020-07-26 09:33:47,113.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1374 |
+
1383,2020-07-26 09:38:47,115.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1375 |
+
1384,2020-07-26 09:43:47,117.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1376 |
+
1385,2020-07-26 09:48:47,118.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1377 |
+
1386,2020-07-26 09:53:47,118.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1378 |
+
1387,2020-07-26 09:58:47,118.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1379 |
+
1388,2020-07-26 10:03:47,117.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1380 |
+
1389,2020-07-26 10:08:47,116.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1381 |
+
1390,2020-07-26 10:13:47,113.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1382 |
+
1391,2020-07-26 10:18:47,109.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1383 |
+
1392,2020-07-26 10:23:47,104.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1384 |
+
1393,2020-07-26 10:28:47,100.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1385 |
+
1394,2020-07-26 10:33:47,99.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1386 |
+
1395,2020-07-26 10:38:47,99.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1387 |
+
1396,2020-07-26 10:43:47,103.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1388 |
+
1397,2020-07-26 10:48:47,107.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1389 |
+
1398,2020-07-26 10:53:47,114.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1390 |
+
1399,2020-07-26 10:58:47,120.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1391 |
+
1400,2020-07-26 11:03:47,127.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1392 |
+
1401,2020-07-26 11:08:47,132.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1393 |
+
1402,2020-07-26 11:13:47,132.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1394 |
+
1403,2020-07-26 11:18:47,131.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1395 |
+
1404,2020-07-26 11:23:47,129.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1396 |
+
1405,2020-07-26 11:28:47,126.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1397 |
+
1406,2020-07-26 11:33:47,124.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1398 |
+
1407,2020-07-26 11:38:47,123.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1399 |
+
1408,2020-07-26 11:43:47,121.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1400 |
+
1409,2020-07-26 11:48:47,120.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1401 |
+
1410,2020-07-26 11:53:47,119.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1402 |
+
1411,2020-07-26 11:58:47,117.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1403 |
+
1412,2020-07-26 12:03:47,116.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1404 |
+
1413,2020-07-26 12:08:47,115.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1405 |
+
1414,2020-07-26 12:13:47,116.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1406 |
+
1415,2020-07-26 12:18:47,119.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1407 |
+
1416,2020-07-26 12:23:47,121.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1408 |
+
1417,2020-07-26 12:28:47,123.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1409 |
+
1418,2020-07-26 12:33:47,125.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1410 |
+
1419,2020-07-26 12:38:46,123.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1411 |
+
1420,2020-07-26 12:43:47,121.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1412 |
+
1421,2020-07-26 12:48:47,118.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1413 |
+
1422,2020-07-26 12:53:47,116.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1414 |
+
1423,2020-07-26 12:58:46,115.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1415 |
+
1424,2020-07-26 13:03:47,114.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1416 |
+
1425,2020-07-26 13:08:47,113.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1417 |
+
1426,2020-07-26 13:13:46,112.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1418 |
+
1427,2020-07-26 13:18:47,111.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1419 |
+
1428,2020-07-26 13:23:47,110.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1420 |
+
1429,2020-07-26 13:28:46,106.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1421 |
+
1430,2020-07-26 13:33:47,103.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1422 |
+
1431,2020-07-26 13:38:47,100.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1423 |
+
1432,2020-07-26 13:43:47,101.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1424 |
+
1433,2020-07-26 13:48:46,102.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1425 |
+
1434,2020-07-26 13:53:47,103.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1426 |
+
1435,2020-07-26 13:58:47,104.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1427 |
+
1436,2020-07-26 14:03:47,104.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1428 |
+
1437,2020-07-26 14:08:47,104.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1429 |
+
1438,2020-07-26 14:13:47,104.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1430 |
+
1439,2020-07-26 14:18:46,104.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1431 |
+
1440,2020-07-26 14:23:47,103.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1432 |
+
1441,2020-07-26 14:28:46,102.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1433 |
+
1442,2020-07-26 14:33:47,102.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1434 |
+
1443,2020-07-26 14:38:47,102.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1435 |
+
1444,2020-07-26 14:43:47,102.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1436 |
+
1445,2020-07-26 14:48:47,102.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1437 |
+
1446,2020-07-26 14:53:47,102.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1438 |
+
1447,2020-07-26 14:58:46,101.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1439 |
+
1448,2020-07-26 15:03:47,98.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1440 |
+
1449,2020-07-26 15:08:47,96.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1441 |
+
1450,2020-07-26 15:13:47,96.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1442 |
+
1451,2020-07-26 15:18:47,95.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1443 |
+
1452,2020-07-26 15:23:47,95.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1444 |
+
1453,2020-07-26 15:28:47,94.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1445 |
+
1454,2020-07-26 15:33:46,94.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1446 |
+
1455,2020-07-26 15:38:47,94.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1447 |
+
1456,2020-07-26 15:43:47,95.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1448 |
+
1457,2020-07-26 15:48:47,96.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1449 |
+
1458,2020-07-26 15:53:47,98.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1450 |
+
1459,2020-07-26 15:58:46,100.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1451 |
+
1460,2020-07-26 16:03:46,102.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1452 |
+
1461,2020-07-26 16:08:47,103.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1453 |
+
1462,2020-07-26 16:13:47,102.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1454 |
+
1463,2020-07-26 16:18:47,103.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1455 |
+
1464,2020-07-26 16:23:47,107.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1456 |
+
1465,2020-07-26 16:28:47,111.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1457 |
+
1466,2020-07-26 16:33:47,115.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1458 |
+
1467,2020-07-26 16:38:46,116.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1459 |
+
1468,2020-07-26 16:43:47,115.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1460 |
+
1469,2020-07-26 16:48:47,114.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1461 |
+
1470,2020-07-26 16:53:47,113.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1462 |
+
1471,2020-07-26 16:58:47,116.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1463 |
+
1472,2020-07-26 17:03:47,119.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1464 |
+
1473,2020-07-26 17:08:46,122.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1465 |
+
1474,2020-07-26 17:13:46,124.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1466 |
+
1475,2020-07-26 17:18:47,125.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1467 |
+
1476,2020-07-26 17:23:47,127.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1468 |
+
1477,2020-07-26 17:28:46,129.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1469 |
+
1478,2020-07-26 17:33:46,130.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1470 |
+
1479,2020-07-26 17:38:46,130.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1471 |
+
1480,2020-07-26 17:43:47,130.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1472 |
+
1481,2020-07-26 17:48:46,125.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1473 |
+
1482,2020-07-26 17:53:46,116.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1474 |
+
1483,2020-07-26 17:58:47,106.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1475 |
+
1484,2020-07-26 18:03:46,103.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1476 |
+
1485,2020-07-26 18:08:46,106.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1477 |
+
1486,2020-07-26 18:13:46,111.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1478 |
+
1487,2020-07-26 18:18:47,116.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1479 |
+
1488,2020-07-26 18:23:46,118.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1480 |
+
1489,2020-07-26 18:28:46,116.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1481 |
+
1490,2020-07-26 18:33:47,112.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1482 |
+
1491,2020-07-26 18:38:47,110.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1483 |
+
1492,2020-07-26 18:43:47,113.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1484 |
+
1493,2020-07-26 18:48:47,116.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1485 |
+
1494,2020-07-26 18:53:47,118.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1486 |
+
1495,2020-07-26 18:58:47,116.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1487 |
+
1496,2020-07-26 19:03:47,111.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1488 |
+
1497,2020-07-26 19:08:47,107.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1489 |
+
1498,2020-07-26 19:13:46,103.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1490 |
+
1499,2020-07-26 19:18:47,100.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1491 |
+
1500,2020-07-26 19:23:46,98.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1492 |
+
1501,2020-07-26 19:28:46,97.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1493 |
+
1502,2020-07-26 19:33:46,97.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1494 |
+
1503,2020-07-26 19:38:47,96.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1495 |
+
1504,2020-07-26 19:43:47,95.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1496 |
+
1505,2020-07-26 19:48:46,95.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1497 |
+
1506,2020-07-26 19:53:46,95.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1498 |
+
1507,2020-07-26 19:58:46,95.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1499 |
+
1508,2020-07-26 20:03:47,95.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1500 |
+
1509,2020-07-26 20:08:47,96.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1501 |
+
1510,2020-07-26 20:13:47,99.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1502 |
+
1511,2020-07-26 20:18:47,102.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1503 |
+
1512,2020-07-26 20:23:47,108.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1504 |
+
1513,2020-07-26 20:28:47,111.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1505 |
+
1514,2020-07-26 20:33:48,115.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1506 |
+
1515,2020-07-26 20:38:47,116.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1507 |
+
1516,2020-07-26 20:43:47,118.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1508 |
+
1517,2020-07-26 20:48:48,120.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1509 |
+
1518,2020-07-26 20:53:48,122.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1510 |
+
1519,2020-07-26 20:58:48,122.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1511 |
+
1520,2020-07-26 21:03:48,122.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1512 |
+
1521,2020-07-26 21:08:48,122.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1513 |
+
1522,2020-07-26 21:13:48,120.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1514 |
+
1523,2020-07-26 21:18:47,119.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1515 |
+
1524,2020-07-26 21:23:47,117.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1516 |
+
1525,2020-07-26 21:28:48,115.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1517 |
+
1526,2020-07-26 21:33:48,113.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1518 |
+
1527,2020-07-26 21:38:47,109.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1519 |
+
1528,2020-07-26 21:43:47,104.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1520 |
+
1529,2020-07-26 21:48:47,102.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1521 |
+
1530,2020-07-26 21:53:47,101.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1522 |
+
1531,2020-07-26 21:58:47,100.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1523 |
+
1532,2020-07-26 22:03:48,99.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1524 |
+
1533,2020-07-26 22:08:48,99.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1525 |
+
1534,2020-07-26 22:13:47,100.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1526 |
+
1535,2020-07-26 22:18:47,103.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1527 |
+
1536,2020-07-26 22:23:47,106.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1528 |
+
1537,2020-07-26 22:28:47,106.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1529 |
+
1538,2020-07-26 22:33:47,105.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1530 |
+
1539,2020-07-26 22:38:47,103.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1531 |
+
1540,2020-07-26 22:43:47,102.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1532 |
+
1541,2020-07-26 22:48:47,103.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1533 |
+
1542,2020-07-26 22:53:47,104.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1534 |
+
1543,2020-07-26 22:58:46,107.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1535 |
+
1544,2020-07-26 23:03:46,111.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1536 |
+
1545,2020-07-26 23:08:46,116.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1537 |
+
1546,2020-07-26 23:13:47,119.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1538 |
+
1547,2020-07-26 23:18:46,122.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1539 |
+
1548,2020-07-26 23:23:47,124.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1540 |
+
1549,2020-07-26 23:28:46,125.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1541 |
+
1550,2020-07-26 23:33:46,126.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1542 |
+
1551,2020-07-26 23:38:47,128.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1543 |
+
1552,2020-07-26 23:43:46,129.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1544 |
+
1553,2020-07-26 23:48:47,127.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1545 |
+
1554,2020-07-26 23:53:47,121.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1546 |
+
1555,2020-07-26 23:58:47,115.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1547 |
+
1556,2020-07-27 00:03:46,110.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1548 |
+
1557,2020-07-27 00:08:47,106.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1549 |
+
1558,2020-07-27 00:13:46,106.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1550 |
+
1559,2020-07-27 00:18:46,108.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1551 |
+
1560,2020-07-27 00:23:46,114.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1552 |
+
1561,2020-07-27 00:28:47,122.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1553 |
+
1562,2020-07-27 00:33:46,132.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1554 |
+
1563,2020-07-27 00:38:46,138.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1555 |
+
1564,2020-07-27 00:43:46,141.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1556 |
+
1565,2020-07-27 00:48:47,141.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1557 |
+
1566,2020-07-27 00:53:46,141.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1558 |
+
1567,2020-07-27 00:58:47,140.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1559 |
+
1568,2020-07-27 01:03:46,139.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1560 |
+
1569,2020-07-27 01:08:46,137.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1561 |
+
1570,2020-07-27 01:13:46,134.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1562 |
+
1571,2020-07-27 01:18:46,130.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1563 |
+
1572,2020-07-27 01:23:47,127.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1564 |
+
1573,2020-07-27 01:28:47,125.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1565 |
+
1574,2020-07-27 01:33:47,124.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1566 |
+
1575,2020-07-27 01:38:46,123.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1567 |
+
1576,2020-07-27 01:43:47,122.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1568 |
+
1577,2020-07-27 01:48:47,121.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1569 |
+
1578,2020-07-27 01:53:46,120.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1570 |
+
1579,2020-07-27 01:58:46,119.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1571 |
+
1580,2020-07-27 02:03:47,117.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1572 |
+
1581,2020-07-27 02:08:47,115.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1573 |
+
1582,2020-07-27 02:13:47,115.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1574 |
+
1583,2020-07-27 02:18:47,116.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1575 |
+
1584,2020-07-27 02:23:47,118.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1576 |
+
1585,2020-07-27 02:28:47,120.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1577 |
+
1586,2020-07-27 02:33:47,121.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1578 |
+
1587,2020-07-27 02:38:47,122.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1579 |
+
1588,2020-07-27 02:43:46,122.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1580 |
+
1589,2020-07-27 02:48:47,123.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1581 |
+
1590,2020-07-27 02:53:46,123.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1582 |
+
1591,2020-07-27 02:58:47,124.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1583 |
+
1592,2020-07-27 03:03:47,124.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1584 |
+
1593,2020-07-27 03:08:46,124.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1585 |
+
1594,2020-07-27 03:13:46,124.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1586 |
+
1595,2020-07-27 03:18:47,126.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1587 |
+
1596,2020-07-27 03:23:46,126.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1588 |
+
1597,2020-07-27 03:28:47,127.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1589 |
+
1598,2020-07-27 03:33:46,127.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1590 |
+
1599,2020-07-27 03:38:46,129.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1591 |
+
1600,2020-07-27 03:43:47,129.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1592 |
+
1601,2020-07-27 03:48:46,130.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1593 |
+
1602,2020-07-27 03:53:46,130.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1594 |
+
1603,2020-07-27 03:58:46,132.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1595 |
+
1604,2020-07-27 04:03:46,134.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1596 |
+
1605,2020-07-27 04:08:46,136.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1597 |
+
1606,2020-07-27 04:13:47,136.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1598 |
+
1607,2020-07-27 04:18:47,136.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1599 |
+
1608,2020-07-27 04:23:47,136.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1600 |
+
1609,2020-07-27 04:28:47,135.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1601 |
+
1610,2020-07-27 04:33:46,131.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1602 |
+
1611,2020-07-27 04:38:47,126.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1603 |
+
1612,2020-07-27 04:43:46,121.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1604 |
+
1613,2020-07-27 04:48:47,119.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1605 |
+
1614,2020-07-27 04:53:46,120.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1606 |
+
1615,2020-07-27 04:58:46,122.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1607 |
+
1616,2020-07-27 05:03:47,124.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1608 |
+
1617,2020-07-27 05:08:46,123.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1609 |
+
1618,2020-07-27 05:13:47,123.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1610 |
+
1619,2020-07-27 05:18:47,122.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1611 |
+
1620,2020-07-27 05:23:46,122.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1612 |
+
1621,2020-07-27 05:28:46,123.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1613 |
+
1622,2020-07-27 05:33:47,124.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1614 |
+
1623,2020-07-27 05:38:46,125.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1615 |
+
1624,2020-07-27 05:43:47,125.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1616 |
+
1625,2020-07-27 05:48:46,124.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1617 |
+
1626,2020-07-27 05:53:47,124.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1618 |
+
1627,2020-07-27 05:58:46,123.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1619 |
+
1628,2020-07-27 06:03:47,122.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1620 |
+
1629,2020-07-27 06:08:46,122.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1621 |
+
1630,2020-07-27 06:13:46,121.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1622 |
+
1631,2020-07-27 06:18:46,120.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1623 |
+
1632,2020-07-27 06:23:47,118.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1624 |
+
1633,2020-07-27 06:28:47,116.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1625 |
+
1634,2020-07-27 06:33:46,113.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1626 |
+
1635,2020-07-27 06:38:46,114.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1627 |
+
1636,2020-07-27 06:43:46,116.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1628 |
+
1637,2020-07-27 06:48:47,120.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1629 |
+
1638,2020-07-27 06:53:46,122.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1630 |
+
1639,2020-07-27 06:58:46,121.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1631 |
+
1640,2020-07-27 07:03:47,118.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1632 |
+
1641,2020-07-27 07:08:46,115.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1633 |
+
1642,2020-07-27 07:13:46,114.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1634 |
+
1643,2020-07-27 07:18:47,112.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1635 |
+
1644,2020-07-27 07:23:47,108.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1636 |
+
1645,2020-07-27 07:28:46,104.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1637 |
+
1646,2020-07-27 07:33:47,103.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1638 |
+
1647,2020-07-27 07:38:47,103.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1639 |
+
1648,2020-07-27 07:43:47,103.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1640 |
+
1649,2020-07-27 07:48:46,100.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1641 |
+
1650,2020-07-27 07:53:46,98.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1642 |
+
1651,2020-07-27 07:58:47,98.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1643 |
+
1652,2020-07-27 08:03:46,99.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1644 |
+
1653,2020-07-27 08:08:46,100.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1645 |
+
1654,2020-07-27 08:13:46,99.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1646 |
+
1655,2020-07-27 08:18:46,98.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1647 |
+
1656,2020-07-27 08:23:46,96.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1648 |
+
1657,2020-07-27 08:28:46,95.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1649 |
+
1658,2020-07-27 08:33:46,94.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1650 |
+
1659,2020-07-27 08:38:46,93.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1651 |
+
1660,2020-07-27 08:43:46,93.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1652 |
+
1661,2020-07-27 08:48:46,93.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1653 |
+
1662,2020-07-27 08:53:47,94.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1654 |
+
1663,2020-07-27 08:58:47,94.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1655 |
+
1664,2020-07-27 09:03:46,97.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1656 |
+
1665,2020-07-27 09:08:47,101.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1657 |
+
1666,2020-07-27 09:13:46,107.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1658 |
+
1667,2020-07-27 09:18:46,115.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1659 |
+
1668,2020-07-27 09:23:47,122.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1660 |
+
1669,2020-07-27 09:28:46,129.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1661 |
+
1670,2020-07-27 09:33:47,133.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1662 |
+
1671,2020-07-27 09:38:46,133.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1663 |
+
1672,2020-07-27 09:43:47,134.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1664 |
+
1673,2020-07-27 09:48:46,132.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1665 |
+
1674,2020-07-27 09:53:47,127.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1666 |
+
1675,2020-07-27 09:58:46,118.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1667 |
+
1676,2020-07-27 10:03:46,108.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1668 |
+
1677,2020-07-27 10:08:47,101.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1669 |
+
1678,2020-07-27 10:13:46,97.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1670 |
+
1679,2020-07-27 10:18:46,93.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1671 |
+
1680,2020-07-27 10:23:46,90.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1672 |
+
1681,2020-07-27 10:28:47,87.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1673 |
+
1682,2020-07-27 10:33:46,86.0,0.0,0.0,0.0,0.0,1,5.5,49
|
1674 |
+
1683,2020-07-27 10:38:46,86.0,0.0,0.0,0.0,0.0,1,5.5,49
|
data/processed/dataset_by_patient/patient_016.csv
ADDED
The diff for this file is too large to render.
See raw diff
|
|
data/processed/samples/sample_A.csv
ADDED
@@ -0,0 +1,201 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
,Timestamp,Glucose,Accelerometer,Calories,Carbs,Sugar,Gender,HbA1c,Age,patient_id
|
2 |
+
6982,2020-02-27 10:51:20,124.0,0.0,0.0,0.0,0.0,1,6.4,49,4
|
3 |
+
6983,2020-02-27 10:56:20,118.0,0.0,0.0,0.0,0.0,1,6.4,49,4
|
4 |
+
6984,2020-02-27 11:01:20,113.0,0.0,0.0,0.0,0.0,1,6.4,49,4
|
5 |
+
6985,2020-02-27 11:06:20,110.0,0.0,0.0,0.0,0.0,1,6.4,49,4
|
6 |
+
6986,2020-02-27 11:11:20,107.0,0.0,0.0,0.0,0.0,1,6.4,49,4
|
7 |
+
6987,2020-02-27 11:16:19,105.0,0.0,0.0,0.0,0.0,1,6.4,49,4
|
8 |
+
6988,2020-02-27 11:21:20,104.0,0.0,0.0,0.0,0.0,1,6.4,49,4
|
9 |
+
6989,2020-02-27 11:26:20,105.0,0.0,0.0,0.0,0.0,1,6.4,49,4
|
10 |
+
6990,2020-02-27 11:31:20,106.0,0.0,0.0,0.0,0.0,1,6.4,49,4
|
11 |
+
6991,2020-02-27 11:36:20,106.0,0.0,0.0,0.0,0.0,1,6.4,49,4
|
12 |
+
6992,2020-02-27 11:41:20,105.0,0.0,0.0,0.0,0.0,1,6.4,49,4
|
13 |
+
6993,2020-02-27 11:46:20,105.0,0.0,0.0,0.0,0.0,1,6.4,49,4
|
14 |
+
6994,2020-02-27 11:51:20,105.0,0.0,0.0,0.0,0.0,1,6.4,49,4
|
15 |
+
6995,2020-02-27 11:56:20,105.0,0.0,0.0,0.0,0.0,1,6.4,49,4
|
16 |
+
6996,2020-02-27 12:01:20,106.0,0.0,0.0,0.0,0.0,1,6.4,49,4
|
17 |
+
6997,2020-02-27 12:06:20,107.0,0.0,0.0,0.0,0.0,1,6.4,49,4
|
18 |
+
6998,2020-02-27 12:11:20,107.0,0.0,0.0,0.0,0.0,1,6.4,49,4
|
19 |
+
6999,2020-02-27 12:16:20,105.0,0.0,0.0,0.0,0.0,1,6.4,49,4
|
20 |
+
7000,2020-02-27 12:21:20,102.0,0.0,0.0,0.0,0.0,1,6.4,49,4
|
21 |
+
7001,2020-02-27 12:26:20,99.0,0.0,0.0,0.0,0.0,1,6.4,49,4
|
22 |
+
7002,2020-02-27 12:31:20,97.0,0.0,0.0,0.0,0.0,1,6.4,49,4
|
23 |
+
7003,2020-02-27 12:36:20,96.0,0.0,0.0,0.0,0.0,1,6.4,49,4
|
24 |
+
7004,2020-02-27 12:41:20,95.0,0.0,0.0,0.0,0.0,1,6.4,49,4
|
25 |
+
7005,2020-02-27 12:46:20,97.0,0.0,0.0,0.0,0.0,1,6.4,49,4
|
26 |
+
7006,2020-02-27 12:51:21,98.0,0.0,0.0,0.0,0.0,1,6.4,49,4
|
27 |
+
7007,2020-02-27 12:56:20,100.0,0.0,0.0,0.0,0.0,1,6.4,49,4
|
28 |
+
7008,2020-02-27 13:01:20,101.0,0.0,0.0,0.0,0.0,1,6.4,49,4
|
29 |
+
7009,2020-02-27 13:06:21,101.0,0.0,0.0,0.0,0.0,1,6.4,49,4
|
30 |
+
7010,2020-02-27 13:11:20,100.0,0.0,0.0,0.0,0.0,1,6.4,49,4
|
31 |
+
7011,2020-02-27 13:16:20,99.0,0.0,0.0,0.0,0.0,1,6.4,49,4
|
32 |
+
7012,2020-02-27 13:21:20,97.0,0.0,0.0,0.0,0.0,1,6.4,49,4
|
33 |
+
7013,2020-02-27 13:26:20,96.0,0.0,0.0,0.0,0.0,1,6.4,49,4
|
34 |
+
7014,2020-02-27 13:31:21,96.0,0.0,34.0,8.9,7.6,1,6.4,49,4
|
35 |
+
7015,2020-02-27 13:36:20,98.0,0.0,34.0,8.9,7.6,1,6.4,49,4
|
36 |
+
7016,2020-02-27 13:41:20,100.0,0.0,34.0,8.9,7.6,1,6.4,49,4
|
37 |
+
7017,2020-02-27 13:46:20,102.0,0.0,34.0,8.9,7.6,1,6.4,49,4
|
38 |
+
7018,2020-02-27 13:51:20,102.0,0.0,34.0,8.9,7.6,1,6.4,49,4
|
39 |
+
7019,2020-02-27 13:56:21,101.0,0.0,34.0,8.9,7.6,1,6.4,49,4
|
40 |
+
7020,2020-02-27 14:01:20,100.0,0.0,34.0,8.9,7.6,1,6.4,49,4
|
41 |
+
7021,2020-02-27 14:06:20,100.0,0.0,34.0,8.9,7.6,1,6.4,49,4
|
42 |
+
7022,2020-02-27 14:11:21,98.0,0.0,34.0,8.9,7.6,1,6.4,49,4
|
43 |
+
7023,2020-02-27 14:16:20,96.0,0.0,34.0,8.9,7.6,1,6.4,49,4
|
44 |
+
7024,2020-02-27 14:21:20,94.0,0.0,34.0,8.9,7.6,1,6.4,49,4
|
45 |
+
7025,2020-02-27 14:26:21,92.0,0.0,34.0,8.9,7.6,1,6.4,49,4
|
46 |
+
7026,2020-02-27 14:31:21,92.0,0.0,0.0,0.0,0.0,1,6.4,49,4
|
47 |
+
7027,2020-02-27 14:36:21,94.0,0.0,0.0,0.0,0.0,1,6.4,49,4
|
48 |
+
7028,2020-02-27 14:41:20,98.0,0.0,0.0,0.0,0.0,1,6.4,49,4
|
49 |
+
7029,2020-02-27 14:46:20,102.0,0.0,0.0,0.0,0.0,1,6.4,49,4
|
50 |
+
7030,2020-02-27 14:51:20,108.0,0.0,0.0,0.0,0.0,1,6.4,49,4
|
51 |
+
7031,2020-02-27 14:56:20,111.0,0.0,0.0,0.0,0.0,1,6.4,49,4
|
52 |
+
7032,2020-02-27 15:01:20,110.0,0.0,0.0,0.0,0.0,1,6.4,49,4
|
53 |
+
7033,2020-02-27 15:06:20,107.0,0.0,0.0,0.0,0.0,1,6.4,49,4
|
54 |
+
7034,2020-02-27 15:11:20,102.0,0.0,0.0,0.0,0.0,1,6.4,49,4
|
55 |
+
7035,2020-02-27 15:16:20,98.0,0.0,0.0,0.0,0.0,1,6.4,49,4
|
56 |
+
7036,2020-02-27 15:21:20,97.0,0.0,0.0,0.0,0.0,1,6.4,49,4
|
57 |
+
7037,2020-02-27 15:26:20,98.0,0.0,0.0,0.0,0.0,1,6.4,49,4
|
58 |
+
7038,2020-02-27 15:31:20,98.0,0.0,0.0,0.0,0.0,1,6.4,49,4
|
59 |
+
7039,2020-02-27 15:36:20,99.0,0.0,0.0,0.0,0.0,1,6.4,49,4
|
60 |
+
7040,2020-02-27 15:41:20,101.0,0.0,0.0,0.0,0.0,1,6.4,49,4
|
61 |
+
7041,2020-02-27 15:46:20,103.0,0.0,0.0,0.0,0.0,1,6.4,49,4
|
62 |
+
7042,2020-02-27 15:51:21,104.0,0.0,0.0,0.0,0.0,1,6.4,49,4
|
63 |
+
7043,2020-02-27 15:56:20,103.0,0.0,0.0,0.0,0.0,1,6.4,49,4
|
64 |
+
7044,2020-02-27 16:01:21,103.0,0.0,852.0,0.0,0.0,1,6.4,49,4
|
65 |
+
7045,2020-02-27 16:06:20,103.0,0.0,852.0,0.0,0.0,1,6.4,49,4
|
66 |
+
7046,2020-02-27 16:11:21,101.0,0.0,852.0,0.0,0.0,1,6.4,49,4
|
67 |
+
7047,2020-02-27 16:16:20,100.0,0.0,852.0,0.0,0.0,1,6.4,49,4
|
68 |
+
7048,2020-02-27 16:21:20,101.0,0.0,852.0,0.0,0.0,1,6.4,49,4
|
69 |
+
7049,2020-02-27 16:26:21,101.0,0.0,852.0,0.0,0.0,1,6.4,49,4
|
70 |
+
7050,2020-02-27 16:31:21,100.0,0.0,852.0,0.0,0.0,1,6.4,49,4
|
71 |
+
7051,2020-02-27 16:36:21,97.0,0.0,852.0,0.0,0.0,1,6.4,49,4
|
72 |
+
7052,2020-02-27 16:41:21,95.0,0.0,852.0,0.0,0.0,1,6.4,49,4
|
73 |
+
7053,2020-02-27 16:46:21,94.0,0.0,852.0,0.0,0.0,1,6.4,49,4
|
74 |
+
7054,2020-02-27 16:51:20,90.0,0.0,852.0,0.0,0.0,1,6.4,49,4
|
75 |
+
7055,2020-02-27 16:56:21,87.0,0.0,852.0,0.0,0.0,1,6.4,49,4
|
76 |
+
7056,2020-02-27 17:01:20,85.0,0.0,0.0,0.0,0.0,1,6.4,49,4
|
77 |
+
7057,2020-02-27 17:06:20,88.0,0.0,0.0,0.0,0.0,1,6.4,49,4
|
78 |
+
7058,2020-02-27 17:11:20,90.0,0.0,0.0,0.0,0.0,1,6.4,49,4
|
79 |
+
7059,2020-02-27 17:16:21,91.0,0.0,0.0,0.0,0.0,1,6.4,49,4
|
80 |
+
7060,2020-02-27 17:21:21,90.0,0.0,0.0,0.0,0.0,1,6.4,49,4
|
81 |
+
7061,2020-02-27 17:26:21,90.0,0.0,0.0,0.0,0.0,1,6.4,49,4
|
82 |
+
7062,2020-02-27 17:31:21,90.0,0.0,0.0,0.0,0.0,1,6.4,49,4
|
83 |
+
7063,2020-02-27 17:36:20,90.0,0.0,0.0,0.0,0.0,1,6.4,49,4
|
84 |
+
7064,2020-02-27 17:41:21,87.0,0.0,0.0,0.0,0.0,1,6.4,49,4
|
85 |
+
7065,2020-02-27 17:46:20,82.0,0.0,0.0,0.0,0.0,1,6.4,49,4
|
86 |
+
7066,2020-02-27 17:51:21,78.0,0.0,0.0,0.0,0.0,1,6.4,49,4
|
87 |
+
7067,2020-02-27 17:56:21,78.0,0.0,0.0,0.0,0.0,1,6.4,49,4
|
88 |
+
7068,2020-02-27 18:01:21,79.0,0.0,68.0,17.0,15.0,1,6.4,49,4
|
89 |
+
7069,2020-02-27 18:06:21,77.0,0.0,68.0,17.0,15.0,1,6.4,49,4
|
90 |
+
7070,2020-02-27 18:11:20,72.0,0.0,68.0,17.0,15.0,1,6.4,49,4
|
91 |
+
7071,2020-02-27 18:16:21,64.0,0.0,68.0,17.0,15.0,1,6.4,49,4
|
92 |
+
7072,2020-02-27 18:21:21,58.0,0.0,68.0,17.0,15.0,1,6.4,49,4
|
93 |
+
7073,2020-02-27 18:26:21,60.0,0.0,68.0,17.0,15.0,1,6.4,49,4
|
94 |
+
7074,2020-02-27 18:31:21,69.0,0.0,68.0,17.0,15.0,1,6.4,49,4
|
95 |
+
7075,2020-02-27 18:36:20,80.0,0.0,68.0,17.0,15.0,1,6.4,49,4
|
96 |
+
7076,2020-02-27 18:41:21,90.0,0.0,68.0,17.0,15.0,1,6.4,49,4
|
97 |
+
7077,2020-02-27 18:46:21,98.0,0.0,68.0,17.0,15.0,1,6.4,49,4
|
98 |
+
7078,2020-02-27 18:51:21,108.0,0.0,68.0,17.0,15.0,1,6.4,49,4
|
99 |
+
7079,2020-02-27 18:56:20,113.0,0.0,68.0,17.0,15.0,1,6.4,49,4
|
100 |
+
7080,2020-02-27 19:01:20,116.0,0.0,0.0,0.0,0.0,1,6.4,49,4
|
101 |
+
7081,2020-02-27 19:06:19,114.0,0.0,0.0,0.0,0.0,1,6.4,49,4
|
102 |
+
7082,2020-02-27 19:11:20,110.0,0.0,0.0,0.0,0.0,1,6.4,49,4
|
103 |
+
7083,2020-02-27 19:16:20,106.0,0.0,0.0,0.0,0.0,1,6.4,49,4
|
104 |
+
7084,2020-02-27 19:21:20,106.0,0.0,0.0,0.0,0.0,1,6.4,49,4
|
105 |
+
7085,2020-02-27 19:26:20,108.0,0.0,0.0,0.0,0.0,1,6.4,49,4
|
106 |
+
7086,2020-02-27 19:31:19,112.0,0.0,0.0,0.0,0.0,1,6.4,49,4
|
107 |
+
7087,2020-02-27 19:36:20,112.0,0.0,0.0,0.0,0.0,1,6.4,49,4
|
108 |
+
7088,2020-02-27 19:41:19,110.0,0.0,0.0,0.0,0.0,1,6.4,49,4
|
109 |
+
7089,2020-02-27 19:46:19,109.0,0.0,0.0,0.0,0.0,1,6.4,49,4
|
110 |
+
7090,2020-02-27 19:51:19,112.0,0.0,0.0,0.0,0.0,1,6.4,49,4
|
111 |
+
7091,2020-02-27 19:56:19,116.0,0.0,0.0,0.0,0.0,1,6.4,49,4
|
112 |
+
7092,2020-02-27 20:01:20,117.0,0.0,0.0,0.0,0.0,1,6.4,49,4
|
113 |
+
7093,2020-02-27 20:06:19,117.0,0.0,0.0,0.0,0.0,1,6.4,49,4
|
114 |
+
7094,2020-02-27 20:11:19,117.0,0.0,0.0,0.0,0.0,1,6.4,49,4
|
115 |
+
7095,2020-02-27 20:16:20,112.0,0.0,0.0,0.0,0.0,1,6.4,49,4
|
116 |
+
7096,2020-02-27 20:21:20,105.0,0.0,0.0,0.0,0.0,1,6.4,49,4
|
117 |
+
7097,2020-02-27 20:26:20,102.0,0.0,0.0,0.0,0.0,1,6.4,49,4
|
118 |
+
7098,2020-02-27 20:31:20,104.0,0.0,0.0,0.0,0.0,1,6.4,49,4
|
119 |
+
7099,2020-02-27 20:36:19,109.0,0.0,0.0,0.0,0.0,1,6.4,49,4
|
120 |
+
7100,2020-02-27 20:41:19,112.0,0.0,0.0,0.0,0.0,1,6.4,49,4
|
121 |
+
7101,2020-02-27 20:46:19,113.0,0.0,0.0,0.0,0.0,1,6.4,49,4
|
122 |
+
7102,2020-02-27 20:51:19,109.0,0.0,0.0,0.0,0.0,1,6.4,49,4
|
123 |
+
7103,2020-02-27 20:56:19,104.0,0.0,0.0,0.0,0.0,1,6.4,49,4
|
124 |
+
7104,2020-02-27 21:01:19,101.0,0.0,0.0,0.0,0.0,1,6.4,49,4
|
125 |
+
7105,2020-02-27 21:06:19,103.0,0.0,0.0,0.0,0.0,1,6.4,49,4
|
126 |
+
7106,2020-02-27 21:11:19,106.0,63.82,0.0,0.0,0.0,1,6.4,49,4
|
127 |
+
7107,2020-02-27 21:16:19,116.0,64.94,0.0,0.0,0.0,1,6.4,49,4
|
128 |
+
7108,2020-02-27 21:21:20,127.0,65.11,0.0,0.0,0.0,1,6.4,49,4
|
129 |
+
7109,2020-02-27 21:26:19,136.0,64.84,0.0,0.0,0.0,1,6.4,49,4
|
130 |
+
7110,2020-02-27 21:31:19,139.0,64.92,0.0,0.0,0.0,1,6.4,49,4
|
131 |
+
7111,2020-02-27 21:36:20,138.0,64.77,0.0,0.0,0.0,1,6.4,49,4
|
132 |
+
7112,2020-02-27 21:41:20,131.0,63.54,0.0,0.0,0.0,1,6.4,49,4
|
133 |
+
7113,2020-02-27 21:46:19,122.0,65.98,0.0,0.0,0.0,1,6.4,49,4
|
134 |
+
7114,2020-02-27 21:51:19,113.0,64.9,0.0,0.0,0.0,1,6.4,49,4
|
135 |
+
7115,2020-02-27 21:56:20,112.0,65.09,0.0,0.0,0.0,1,6.4,49,4
|
136 |
+
7116,2020-02-27 22:01:19,113.0,63.77,0.0,0.0,0.0,1,6.4,49,4
|
137 |
+
7117,2020-02-27 22:06:20,114.0,63.53,0.0,0.0,0.0,1,6.4,49,4
|
138 |
+
7118,2020-02-27 22:11:19,109.0,63.45,0.0,0.0,0.0,1,6.4,49,4
|
139 |
+
7119,2020-02-27 22:16:20,106.0,63.0,0.0,0.0,0.0,1,6.4,49,4
|
140 |
+
7120,2020-02-27 22:21:20,106.0,63.88,0.0,0.0,0.0,1,6.4,49,4
|
141 |
+
7121,2020-02-27 22:26:19,110.0,64.83,0.0,0.0,0.0,1,6.4,49,4
|
142 |
+
7122,2020-02-27 22:31:20,114.0,64.99,0.0,0.0,0.0,1,6.4,49,4
|
143 |
+
7123,2020-02-27 22:36:20,116.0,65.11,0.0,0.0,0.0,1,6.4,49,4
|
144 |
+
7124,2020-02-27 22:41:19,119.0,65.22,0.0,0.0,0.0,1,6.4,49,4
|
145 |
+
7125,2020-02-27 22:46:20,121.0,65.23,0.0,0.0,0.0,1,6.4,49,4
|
146 |
+
7126,2020-02-27 22:51:20,123.0,65.5,0.0,0.0,0.0,1,6.4,49,4
|
147 |
+
7127,2020-02-27 22:56:19,124.0,65.54,0.0,0.0,0.0,1,6.4,49,4
|
148 |
+
7128,2020-02-27 23:01:20,125.0,65.54,0.0,0.0,0.0,1,6.4,49,4
|
149 |
+
7129,2020-02-27 23:06:19,126.0,65.52,0.0,0.0,0.0,1,6.4,49,4
|
150 |
+
7130,2020-02-27 23:11:19,126.0,65.54,0.0,0.0,0.0,1,6.4,49,4
|
151 |
+
7131,2020-02-27 23:16:20,125.0,65.58,0.0,0.0,0.0,1,6.4,49,4
|
152 |
+
7132,2020-02-27 23:21:20,125.0,65.61,0.0,0.0,0.0,1,6.4,49,4
|
153 |
+
7133,2020-02-27 23:26:20,125.0,64.13,0.0,0.0,0.0,1,6.4,49,4
|
154 |
+
7134,2020-02-27 23:31:20,124.0,63.75,0.0,0.0,0.0,1,6.4,49,4
|
155 |
+
7135,2020-02-27 23:36:20,121.0,63.75,0.0,0.0,0.0,1,6.4,49,4
|
156 |
+
7136,2020-02-27 23:41:20,118.0,63.77,0.0,0.0,0.0,1,6.4,49,4
|
157 |
+
7137,2020-02-27 23:46:21,117.0,63.69,0.0,0.0,0.0,1,6.4,49,4
|
158 |
+
7138,2020-02-27 23:51:20,117.0,63.7,0.0,0.0,0.0,1,6.4,49,4
|
159 |
+
7139,2020-02-27 23:56:21,118.0,63.68,0.0,0.0,0.0,1,6.4,49,4
|
160 |
+
7140,2020-02-28 00:01:20,118.0,63.43,0.0,0.0,0.0,1,6.4,49,4
|
161 |
+
7141,2020-02-28 00:06:20,115.0,63.43,0.0,0.0,0.0,1,6.4,49,4
|
162 |
+
7142,2020-02-28 00:11:20,111.0,64.74,0.0,0.0,0.0,1,6.4,49,4
|
163 |
+
7143,2020-02-28 00:16:20,112.0,64.05,0.0,0.0,0.0,1,6.4,49,4
|
164 |
+
7144,2020-02-28 00:21:20,117.0,63.82,0.0,0.0,0.0,1,6.4,49,4
|
165 |
+
7145,2020-02-28 00:26:20,124.0,63.7,0.0,0.0,0.0,1,6.4,49,4
|
166 |
+
7146,2020-02-28 00:31:20,127.0,63.69,0.0,0.0,0.0,1,6.4,49,4
|
167 |
+
7147,2020-02-28 00:36:20,125.0,63.61,0.0,0.0,0.0,1,6.4,49,4
|
168 |
+
7148,2020-02-28 00:41:20,122.0,63.9,0.0,0.0,0.0,1,6.4,49,4
|
169 |
+
7149,2020-02-28 00:46:20,118.0,63.84,0.0,0.0,0.0,1,6.4,49,4
|
170 |
+
7150,2020-02-28 00:51:20,117.0,63.99,0.0,0.0,0.0,1,6.4,49,4
|
171 |
+
7151,2020-02-28 00:56:20,119.0,64.12,0.0,0.0,0.0,1,6.4,49,4
|
172 |
+
7152,2020-02-28 01:01:19,121.0,64.17,0.0,0.0,0.0,1,6.4,49,4
|
173 |
+
7153,2020-02-28 01:06:20,123.0,64.16,0.0,0.0,0.0,1,6.4,49,4
|
174 |
+
7154,2020-02-28 01:11:19,125.0,64.21,0.0,0.0,0.0,1,6.4,49,4
|
175 |
+
7155,2020-02-28 01:16:20,127.0,64.93,0.0,0.0,0.0,1,6.4,49,4
|
176 |
+
7156,2020-02-28 01:21:20,127.0,65.33,0.0,0.0,0.0,1,6.4,49,4
|
177 |
+
7157,2020-02-28 01:26:20,126.0,63.93,0.0,0.0,0.0,1,6.4,49,4
|
178 |
+
7158,2020-02-28 01:31:20,125.0,63.77,0.0,0.0,0.0,1,6.4,49,4
|
179 |
+
7159,2020-02-28 01:36:19,124.0,63.72,0.0,0.0,0.0,1,6.4,49,4
|
180 |
+
7160,2020-02-28 01:41:20,123.0,64.3,0.0,0.0,0.0,1,6.4,49,4
|
181 |
+
7161,2020-02-28 01:46:20,122.0,64.38,0.0,0.0,0.0,1,6.4,49,4
|
182 |
+
7162,2020-02-28 01:51:20,123.0,64.46,0.0,0.0,0.0,1,6.4,49,4
|
183 |
+
7163,2020-02-28 01:56:20,124.0,64.24,0.0,0.0,0.0,1,6.4,49,4
|
184 |
+
7164,2020-02-28 02:01:19,123.0,64.17,0.0,0.0,0.0,1,6.4,49,4
|
185 |
+
7165,2020-02-28 02:06:20,114.0,64.82,0.0,0.0,0.0,1,6.4,49,4
|
186 |
+
7166,2020-02-28 02:11:20,104.0,65.01,0.0,0.0,0.0,1,6.4,49,4
|
187 |
+
7167,2020-02-28 02:16:19,95.0,65.09,0.0,0.0,0.0,1,6.4,49,4
|
188 |
+
7168,2020-02-28 02:21:19,96.0,63.85,0.0,0.0,0.0,1,6.4,49,4
|
189 |
+
7169,2020-02-28 02:26:19,98.0,63.84,0.0,0.0,0.0,1,6.4,49,4
|
190 |
+
7170,2020-02-28 02:31:20,100.0,63.85,0.0,0.0,0.0,1,6.4,49,4
|
191 |
+
7171,2020-02-28 02:36:19,102.0,63.86,0.0,0.0,0.0,1,6.4,49,4
|
192 |
+
7172,2020-02-28 02:41:20,110.0,64.71,0.0,0.0,0.0,1,6.4,49,4
|
193 |
+
7173,2020-02-28 02:46:20,118.0,63.11,0.0,0.0,0.0,1,6.4,49,4
|
194 |
+
7174,2020-02-28 02:51:20,120.0,63.08,0.0,0.0,0.0,1,6.4,49,4
|
195 |
+
7175,2020-02-28 02:56:20,110.0,64.6,0.0,0.0,0.0,1,6.4,49,4
|
196 |
+
7176,2020-02-28 03:01:20,100.0,64.93,0.0,0.0,0.0,1,6.4,49,4
|
197 |
+
7177,2020-02-28 03:06:19,96.0,65.05,0.0,0.0,0.0,1,6.4,49,4
|
198 |
+
7178,2020-02-28 03:11:19,98.0,65.05,0.0,0.0,0.0,1,6.4,49,4
|
199 |
+
7179,2020-02-28 03:16:19,100.0,65.05,0.0,0.0,0.0,1,6.4,49,4
|
200 |
+
7180,2020-02-28 03:21:19,104.0,65.13,0.0,0.0,0.0,1,6.4,49,4
|
201 |
+
7181,2020-02-28 03:26:19,112.0,64.58,0.0,0.0,0.0,1,6.4,49,4
|
data/processed/samples/sample_B.csv
ADDED
@@ -0,0 +1,202 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
,Timestamp,Glucose,Accelerometer,Calories,Carbs,Sugar,Gender,HbA1c,Age,patient_id
|
2 |
+
14551,2020-03-14 12:42:19,93.0,63.84,0.0,0.0,0.0,1,5.3,49,7
|
3 |
+
14552,2020-03-14 12:47:18,93.0,63.99,0.0,0.0,0.0,1,5.3,49,7
|
4 |
+
14553,2020-03-14 12:52:18,92.0,64.01,0.0,0.0,0.0,1,5.3,49,7
|
5 |
+
14554,2020-03-14 12:57:18,93.0,63.04,0.0,0.0,0.0,1,5.3,49,7
|
6 |
+
14555,2020-03-14 13:02:19,95.0,62.96,0.0,0.0,0.0,1,5.3,49,7
|
7 |
+
14556,2020-03-14 13:07:19,98.0,65.77,0.0,0.0,0.0,1,5.3,49,7
|
8 |
+
14557,2020-03-14 13:12:18,101.0,64.26,0.0,0.0,0.0,1,5.3,49,7
|
9 |
+
14558,2020-03-14 13:17:18,101.0,64.15,0.0,0.0,0.0,1,5.3,49,7
|
10 |
+
14559,2020-03-14 13:22:18,99.0,64.5,0.0,0.0,0.0,1,5.3,49,7
|
11 |
+
14560,2020-03-14 13:27:18,98.0,64.75,0.0,0.0,0.0,1,5.3,49,7
|
12 |
+
14561,2020-03-14 13:32:18,98.0,64.35,0.0,0.0,0.0,1,5.3,49,7
|
13 |
+
14562,2020-03-14 13:37:18,98.0,64.41,0.0,0.0,0.0,1,5.3,49,7
|
14 |
+
14563,2020-03-14 13:42:18,97.0,63.79,0.0,0.0,0.0,1,5.3,49,7
|
15 |
+
14564,2020-03-14 13:47:19,97.0,64.35,0.0,0.0,0.0,1,5.3,49,7
|
16 |
+
14565,2020-03-14 13:52:19,97.0,64.19,0.0,0.0,0.0,1,5.3,49,7
|
17 |
+
14566,2020-03-14 13:57:18,99.0,64.05,0.0,0.0,0.0,1,5.3,49,7
|
18 |
+
14567,2020-03-14 14:02:18,103.0,64.35,0.0,0.0,0.0,1,5.3,49,7
|
19 |
+
14568,2020-03-14 14:07:18,111.0,63.8,0.0,0.0,0.0,1,5.3,49,7
|
20 |
+
14569,2020-03-14 14:12:18,118.0,63.24,0.0,0.0,0.0,1,5.3,49,7
|
21 |
+
14570,2020-03-14 14:17:18,124.0,64.21,0.0,0.0,0.0,1,5.3,49,7
|
22 |
+
14571,2020-03-14 14:22:18,132.0,64.5,0.0,0.0,0.0,1,5.3,49,7
|
23 |
+
14572,2020-03-14 14:27:19,142.0,64.5,0.0,0.0,0.0,1,5.3,49,7
|
24 |
+
14573,2020-03-14 14:32:18,149.0,64.23,0.0,0.0,0.0,1,5.3,49,7
|
25 |
+
14574,2020-03-14 14:37:18,154.0,63.72,0.0,0.0,0.0,1,5.3,49,7
|
26 |
+
14575,2020-03-14 14:42:18,156.0,63.83,0.0,0.0,0.0,1,5.3,49,7
|
27 |
+
14576,2020-03-14 14:47:18,158.0,64.29,0.0,0.0,0.0,1,5.3,49,7
|
28 |
+
14577,2020-03-14 14:52:17,151.0,65.21,0.0,0.0,0.0,1,5.3,49,7
|
29 |
+
14578,2020-03-14 14:57:18,140.0,64.47,0.0,0.0,0.0,1,5.3,49,7
|
30 |
+
14579,2020-03-14 15:02:18,125.0,64.34,0.0,0.0,0.0,1,5.3,49,7
|
31 |
+
14580,2020-03-14 15:07:18,112.0,64.38,0.0,0.0,0.0,1,5.3,49,7
|
32 |
+
14581,2020-03-14 15:12:18,97.0,65.47,0.0,0.0,0.0,1,5.3,49,7
|
33 |
+
14582,2020-03-14 15:17:18,87.0,71.63,0.0,0.0,0.0,1,5.3,49,7
|
34 |
+
14583,2020-03-14 15:22:17,82.0,65.34,0.0,0.0,0.0,1,5.3,49,7
|
35 |
+
14584,2020-03-14 15:27:18,84.0,64.35,0.0,0.0,0.0,1,5.3,49,7
|
36 |
+
14585,2020-03-14 15:32:18,85.0,65.24,0.0,0.0,0.0,1,5.3,49,7
|
37 |
+
14586,2020-03-14 15:37:18,86.0,64.48,0.0,0.0,0.0,1,5.3,49,7
|
38 |
+
14587,2020-03-14 15:42:18,85.0,64.19,0.0,0.0,0.0,1,5.3,49,7
|
39 |
+
14588,2020-03-14 15:47:19,84.0,63.62,0.0,0.0,0.0,1,5.3,49,7
|
40 |
+
14589,2020-03-14 15:52:19,81.0,64.06,0.0,0.0,0.0,1,5.3,49,7
|
41 |
+
14590,2020-03-14 15:57:19,84.0,64.3,0.0,0.0,0.0,1,5.3,49,7
|
42 |
+
14591,2020-03-14 16:02:19,92.0,64.4,0.0,0.0,0.0,1,5.3,49,7
|
43 |
+
14592,2020-03-14 16:07:19,100.0,64.15,0.0,0.0,0.0,1,5.3,49,7
|
44 |
+
14593,2020-03-14 16:12:19,104.0,64.61,0.0,0.0,0.0,1,5.3,49,7
|
45 |
+
14594,2020-03-14 16:17:19,103.0,64.67,0.0,0.0,0.0,1,5.3,49,7
|
46 |
+
14595,2020-03-14 16:22:18,102.0,64.54,0.0,0.0,0.0,1,5.3,49,7
|
47 |
+
14596,2020-03-14 16:27:19,101.0,64.05,0.0,0.0,0.0,1,5.3,49,7
|
48 |
+
14597,2020-03-14 16:32:19,101.0,64.11,0.0,0.0,0.0,1,5.3,49,7
|
49 |
+
14598,2020-03-14 16:37:18,101.0,63.77,0.0,0.0,0.0,1,5.3,49,7
|
50 |
+
14599,2020-03-14 16:42:18,101.0,63.97,0.0,0.0,0.0,1,5.3,49,7
|
51 |
+
14600,2020-03-14 16:47:18,101.0,63.69,0.0,0.0,0.0,1,5.3,49,7
|
52 |
+
14601,2020-03-14 16:52:17,103.0,65.68,0.0,0.0,0.0,1,5.3,49,7
|
53 |
+
14602,2020-03-14 16:57:18,104.0,64.46,0.0,0.0,0.0,1,5.3,49,7
|
54 |
+
14603,2020-03-14 17:02:17,105.0,64.51,0.0,0.0,0.0,1,5.3,49,7
|
55 |
+
14604,2020-03-14 17:07:18,103.0,64.75,0.0,0.0,0.0,1,5.3,49,7
|
56 |
+
14605,2020-03-14 17:12:18,99.0,64.09,0.0,0.0,0.0,1,5.3,49,7
|
57 |
+
14606,2020-03-14 17:17:18,94.0,65.01,0.0,0.0,0.0,1,5.3,49,7
|
58 |
+
14607,2020-03-14 17:22:17,89.0,64.32,0.0,0.0,0.0,1,5.3,49,7
|
59 |
+
14608,2020-03-14 17:27:18,87.0,64.7,0.0,0.0,0.0,1,5.3,49,7
|
60 |
+
14609,2020-03-14 17:32:17,87.0,64.62,0.0,0.0,0.0,1,5.3,49,7
|
61 |
+
14610,2020-03-14 17:37:18,90.0,65.89,0.0,0.0,0.0,1,5.3,49,7
|
62 |
+
14611,2020-03-14 17:42:17,92.0,63.86,0.0,0.0,0.0,1,5.3,49,7
|
63 |
+
14612,2020-03-14 17:47:18,93.0,64.99,0.0,0.0,0.0,1,5.3,49,7
|
64 |
+
14613,2020-03-14 17:52:18,92.0,64.98,0.0,0.0,0.0,1,5.3,49,7
|
65 |
+
14614,2020-03-14 17:57:19,91.0,63.61,0.0,0.0,0.0,1,5.3,49,7
|
66 |
+
14615,2020-03-14 18:02:18,90.0,63.15,0.0,0.0,0.0,1,5.3,49,7
|
67 |
+
14616,2020-03-14 18:07:18,89.0,63.18,0.0,0.0,0.0,1,5.3,49,7
|
68 |
+
14617,2020-03-14 18:12:18,89.0,64.39,0.0,0.0,0.0,1,5.3,49,7
|
69 |
+
14618,2020-03-14 18:17:18,91.0,64.58,0.0,0.0,0.0,1,5.3,49,7
|
70 |
+
14619,2020-03-14 18:22:18,94.0,65.57,0.0,0.0,0.0,1,5.3,49,7
|
71 |
+
14620,2020-03-14 18:27:18,97.0,64.8,0.0,0.0,0.0,1,5.3,49,7
|
72 |
+
14621,2020-03-14 18:32:18,97.0,66.24,0.0,0.0,0.0,1,5.3,49,7
|
73 |
+
14622,2020-03-14 18:37:18,96.0,68.92,0.0,0.0,0.0,1,5.3,49,7
|
74 |
+
14623,2020-03-14 18:42:19,93.0,65.81,0.0,0.0,0.0,1,5.3,49,7
|
75 |
+
14624,2020-03-14 18:47:17,89.0,66.57,0.0,0.0,0.0,1,5.3,49,7
|
76 |
+
14625,2020-03-14 18:52:18,85.0,66.82,0.0,0.0,0.0,1,5.3,49,7
|
77 |
+
14626,2020-03-14 18:57:18,83.0,65.24,0.0,0.0,0.0,1,5.3,49,7
|
78 |
+
14627,2020-03-14 19:02:17,82.0,64.59,0.0,0.0,0.0,1,5.3,49,7
|
79 |
+
14628,2020-03-14 19:07:18,83.0,64.64,0.0,0.0,0.0,1,5.3,49,7
|
80 |
+
14629,2020-03-14 19:12:18,84.0,64.81,0.0,0.0,0.0,1,5.3,49,7
|
81 |
+
14630,2020-03-14 19:17:18,86.0,64.73,0.0,0.0,0.0,1,5.3,49,7
|
82 |
+
14631,2020-03-14 19:22:18,87.0,64.78,0.0,0.0,0.0,1,5.3,49,7
|
83 |
+
14632,2020-03-14 19:27:18,90.0,63.92,0.0,0.0,0.0,1,5.3,49,7
|
84 |
+
14633,2020-03-14 19:32:18,92.0,64.17,0.0,0.0,0.0,1,5.3,49,7
|
85 |
+
14634,2020-03-14 19:37:18,94.0,65.4,0.0,0.0,0.0,1,5.3,49,7
|
86 |
+
14635,2020-03-14 19:42:18,97.0,64.55,0.0,0.0,0.0,1,5.3,49,7
|
87 |
+
14636,2020-03-14 19:47:18,100.0,63.93,0.0,0.0,0.0,1,5.3,49,7
|
88 |
+
14637,2020-03-14 19:52:18,104.0,63.32,0.0,0.0,0.0,1,5.3,49,7
|
89 |
+
14638,2020-03-14 19:57:18,107.0,63.47,0.0,0.0,0.0,1,5.3,49,7
|
90 |
+
14639,2020-03-14 20:02:19,109.0,63.51,0.0,0.0,0.0,1,5.3,49,7
|
91 |
+
14640,2020-03-14 20:07:18,110.0,63.3,0.0,0.0,0.0,1,5.3,49,7
|
92 |
+
14641,2020-03-14 20:12:19,111.0,63.33,0.0,0.0,0.0,1,5.3,49,7
|
93 |
+
14642,2020-03-14 20:17:18,111.0,63.91,0.0,0.0,0.0,1,5.3,49,7
|
94 |
+
14643,2020-03-14 20:22:18,110.0,64.3,0.0,0.0,0.0,1,5.3,49,7
|
95 |
+
14644,2020-03-14 20:27:18,108.0,65.51,0.0,0.0,0.0,1,5.3,49,7
|
96 |
+
14645,2020-03-14 20:32:18,105.0,64.1,0.0,0.0,0.0,1,5.3,49,7
|
97 |
+
14646,2020-03-14 20:37:19,104.0,63.08,0.0,0.0,0.0,1,5.3,49,7
|
98 |
+
14647,2020-03-14 20:42:18,105.0,62.84,0.0,0.0,0.0,1,5.3,49,7
|
99 |
+
14648,2020-03-14 20:47:18,107.0,62.79,0.0,0.0,0.0,1,5.3,49,7
|
100 |
+
14649,2020-03-14 20:52:19,106.0,64.08,0.0,0.0,0.0,1,5.3,49,7
|
101 |
+
14650,2020-03-14 20:57:18,106.0,64.35,0.0,0.0,0.0,1,5.3,49,7
|
102 |
+
14651,2020-03-14 21:02:19,107.0,64.05,0.0,0.0,0.0,1,5.3,49,7
|
103 |
+
14652,2020-03-14 21:07:19,110.0,63.94,0.0,0.0,0.0,1,5.3,49,7
|
104 |
+
14653,2020-03-14 21:12:19,114.0,64.07,0.0,0.0,0.0,1,5.3,49,7
|
105 |
+
14654,2020-03-14 21:17:19,118.0,63.63,0.0,0.0,0.0,1,5.3,49,7
|
106 |
+
14655,2020-03-14 21:22:19,120.0,64.09,0.0,0.0,0.0,1,5.3,49,7
|
107 |
+
14656,2020-03-14 21:27:19,122.0,64.07,0.0,0.0,0.0,1,5.3,49,7
|
108 |
+
14657,2020-03-14 21:32:19,122.0,64.27,0.0,0.0,0.0,1,5.3,49,7
|
109 |
+
14658,2020-03-14 21:37:18,122.0,63.86,0.0,0.0,0.0,1,5.3,49,7
|
110 |
+
14659,2020-03-14 21:42:19,122.0,64.57,0.0,0.0,0.0,1,5.3,49,7
|
111 |
+
14660,2020-03-14 21:47:18,124.0,64.34,0.0,0.0,0.0,1,5.3,49,7
|
112 |
+
14661,2020-03-14 21:52:18,127.0,64.1,0.0,0.0,0.0,1,5.3,49,7
|
113 |
+
14662,2020-03-14 21:57:19,124.0,64.13,0.0,0.0,0.0,1,5.3,49,7
|
114 |
+
14663,2020-03-14 22:02:18,118.0,64.37,0.0,0.0,0.0,1,5.3,49,7
|
115 |
+
14664,2020-03-14 22:07:18,115.0,64.76,0.0,0.0,0.0,1,5.3,49,7
|
116 |
+
14665,2020-03-14 22:12:18,123.0,64.75,0.0,0.0,0.0,1,5.3,49,7
|
117 |
+
14666,2020-03-14 22:17:18,133.0,64.92,0.0,0.0,0.0,1,5.3,49,7
|
118 |
+
14667,2020-03-14 22:22:19,137.0,64.21,0.0,0.0,0.0,1,5.3,49,7
|
119 |
+
14668,2020-03-14 22:27:18,133.0,63.92,0.0,0.0,0.0,1,5.3,49,7
|
120 |
+
14669,2020-03-14 22:32:19,128.0,64.18,0.0,0.0,0.0,1,5.3,49,7
|
121 |
+
14670,2020-03-14 22:37:19,126.0,66.12,0.0,0.0,0.0,1,5.3,49,7
|
122 |
+
14671,2020-03-14 22:42:19,125.0,64.86,0.0,0.0,0.0,1,5.3,49,7
|
123 |
+
14672,2020-03-14 22:47:18,124.0,64.8,0.0,0.0,0.0,1,5.3,49,7
|
124 |
+
14673,2020-03-14 22:52:18,123.0,64.35,0.0,0.0,0.0,1,5.3,49,7
|
125 |
+
14674,2020-03-14 22:57:17,120.0,64.41,0.0,0.0,0.0,1,5.3,49,7
|
126 |
+
14675,2020-03-14 23:02:18,116.0,64.55,0.0,0.0,0.0,1,5.3,49,7
|
127 |
+
14676,2020-03-14 23:07:16,113.0,64.22,0.0,0.0,0.0,1,5.3,49,7
|
128 |
+
14677,2020-03-14 23:12:16,113.0,64.38,0.0,0.0,0.0,1,5.3,49,7
|
129 |
+
14678,2020-03-14 23:17:17,115.0,64.46,0.0,0.0,0.0,1,5.3,49,7
|
130 |
+
14679,2020-03-14 23:22:16,117.0,64.48,0.0,0.0,0.0,1,5.3,49,7
|
131 |
+
14680,2020-03-14 23:27:17,116.0,65.07,0.0,0.0,0.0,1,5.3,49,7
|
132 |
+
14681,2020-03-14 23:32:16,116.0,63.37,0.0,0.0,0.0,1,5.3,49,7
|
133 |
+
14682,2020-03-14 23:37:16,120.0,63.3,0.0,0.0,0.0,1,5.3,49,7
|
134 |
+
14683,2020-03-14 23:42:17,128.0,63.2,0.0,0.0,0.0,1,5.3,49,7
|
135 |
+
14684,2020-03-14 23:47:16,130.0,63.11,0.0,0.0,0.0,1,5.3,49,7
|
136 |
+
14685,2020-03-14 23:52:17,129.0,63.39,0.0,0.0,0.0,1,5.3,49,7
|
137 |
+
14686,2020-03-14 23:57:17,127.0,63.44,0.0,0.0,0.0,1,5.3,49,7
|
138 |
+
14687,2020-03-15 00:02:16,125.0,63.43,0.0,0.0,0.0,1,5.3,49,7
|
139 |
+
14688,2020-03-15 00:07:17,119.0,63.39,0.0,0.0,0.0,1,5.3,49,7
|
140 |
+
14689,2020-03-15 00:12:17,113.0,64.16,0.0,0.0,0.0,1,5.3,49,7
|
141 |
+
14690,2020-03-15 00:17:16,113.0,63.21,0.0,0.0,0.0,1,5.3,49,7
|
142 |
+
14691,2020-03-15 00:22:17,118.0,63.19,0.0,0.0,0.0,1,5.3,49,7
|
143 |
+
14692,2020-03-15 00:27:16,125.0,63.37,0.0,0.0,0.0,1,5.3,49,7
|
144 |
+
14693,2020-03-15 00:32:16,125.0,63.36,0.0,0.0,0.0,1,5.3,49,7
|
145 |
+
14694,2020-03-15 00:37:17,121.0,63.36,0.0,0.0,0.0,1,5.3,49,7
|
146 |
+
14695,2020-03-15 00:42:16,116.0,63.36,0.0,0.0,0.0,1,5.3,49,7
|
147 |
+
14696,2020-03-15 00:47:17,112.0,63.37,0.0,0.0,0.0,1,5.3,49,7
|
148 |
+
14697,2020-03-15 00:52:17,109.0,63.37,0.0,0.0,0.0,1,5.3,49,7
|
149 |
+
14698,2020-03-15 00:57:17,107.0,63.42,0.0,0.0,0.0,1,5.3,49,7
|
150 |
+
14699,2020-03-15 01:02:17,106.0,63.47,0.0,0.0,0.0,1,5.3,49,7
|
151 |
+
14700,2020-03-15 01:07:17,105.0,63.5,0.0,0.0,0.0,1,5.3,49,7
|
152 |
+
14701,2020-03-15 01:12:16,104.0,63.51,0.0,0.0,0.0,1,5.3,49,7
|
153 |
+
14702,2020-03-15 01:17:17,104.0,63.51,0.0,0.0,0.0,1,5.3,49,7
|
154 |
+
14703,2020-03-15 01:22:17,104.0,63.58,0.0,0.0,0.0,1,5.3,49,7
|
155 |
+
14704,2020-03-15 01:27:17,103.0,64.94,0.0,0.0,0.0,1,5.3,49,7
|
156 |
+
14705,2020-03-15 01:32:17,102.0,64.9,0.0,0.0,0.0,1,5.3,49,7
|
157 |
+
14706,2020-03-15 01:37:18,103.0,64.17,0.0,0.0,0.0,1,5.3,49,7
|
158 |
+
14707,2020-03-15 01:42:17,106.0,64.12,0.0,0.0,0.0,1,5.3,49,7
|
159 |
+
14708,2020-03-15 01:47:18,109.0,64.06,0.0,0.0,0.0,1,5.3,49,7
|
160 |
+
14709,2020-03-15 01:52:17,110.0,64.71,0.0,0.0,0.0,1,5.3,49,7
|
161 |
+
14710,2020-03-15 01:57:17,106.0,64.95,0.0,0.0,0.0,1,5.3,49,7
|
162 |
+
14711,2020-03-15 02:02:18,100.0,65.31,0.0,0.0,0.0,1,5.3,49,7
|
163 |
+
14712,2020-03-15 02:07:17,98.0,65.35,0.0,0.0,0.0,1,5.3,49,7
|
164 |
+
14713,2020-03-15 02:12:17,100.0,65.36,0.0,0.0,0.0,1,5.3,49,7
|
165 |
+
14714,2020-03-15 02:17:17,101.0,65.28,0.0,0.0,0.0,1,5.3,49,7
|
166 |
+
14715,2020-03-15 02:22:17,96.0,64.16,0.0,0.0,0.0,1,5.3,49,7
|
167 |
+
14716,2020-03-15 02:27:18,95.0,64.0,0.0,0.0,0.0,1,5.3,49,7
|
168 |
+
14717,2020-03-15 02:32:17,94.0,63.91,0.0,0.0,0.0,1,5.3,49,7
|
169 |
+
14718,2020-03-15 02:37:17,98.0,63.41,0.0,0.0,0.0,1,5.3,49,7
|
170 |
+
14719,2020-03-15 02:42:18,97.0,64.43,0.0,0.0,0.0,1,5.3,49,7
|
171 |
+
14720,2020-03-15 02:47:17,101.0,65.16,0.0,0.0,0.0,1,5.3,49,7
|
172 |
+
14721,2020-03-15 02:52:18,100.0,65.48,0.0,0.0,0.0,1,5.3,49,7
|
173 |
+
14722,2020-03-15 02:57:18,98.0,63.79,0.0,0.0,0.0,1,5.3,49,7
|
174 |
+
14723,2020-03-15 03:02:17,93.0,63.5,0.0,0.0,0.0,1,5.3,49,7
|
175 |
+
14724,2020-03-15 03:07:17,90.0,64.73,0.0,0.0,0.0,1,5.3,49,7
|
176 |
+
14725,2020-03-15 03:12:17,89.0,64.49,0.0,0.0,0.0,1,5.3,49,7
|
177 |
+
14726,2020-03-15 03:17:17,93.0,64.39,0.0,0.0,0.0,1,5.3,49,7
|
178 |
+
14727,2020-03-15 03:22:17,99.0,64.43,0.0,0.0,0.0,1,5.3,49,7
|
179 |
+
14728,2020-03-15 03:27:17,99.0,64.47,0.0,0.0,0.0,1,5.3,49,7
|
180 |
+
14729,2020-03-15 03:32:17,93.0,64.13,0.0,0.0,0.0,1,5.3,49,7
|
181 |
+
14730,2020-03-15 03:37:17,88.0,63.56,0.0,0.0,0.0,1,5.3,49,7
|
182 |
+
14731,2020-03-15 03:42:17,86.0,63.61,0.0,0.0,0.0,1,5.3,49,7
|
183 |
+
14732,2020-03-15 03:47:17,88.0,63.67,0.0,0.0,0.0,1,5.3,49,7
|
184 |
+
14733,2020-03-15 03:52:17,90.0,63.59,0.0,0.0,0.0,1,5.3,49,7
|
185 |
+
14734,2020-03-15 03:57:17,92.0,64.59,0.0,0.0,0.0,1,5.3,49,7
|
186 |
+
14735,2020-03-15 04:02:17,93.0,64.95,0.0,0.0,0.0,1,5.3,49,7
|
187 |
+
14736,2020-03-15 04:07:17,94.0,65.07,0.0,0.0,0.0,1,5.3,49,7
|
188 |
+
14737,2020-03-15 04:12:18,96.0,65.15,0.0,0.0,0.0,1,5.3,49,7
|
189 |
+
14738,2020-03-15 04:17:17,97.0,65.22,0.0,0.0,0.0,1,5.3,49,7
|
190 |
+
14739,2020-03-15 04:22:17,95.0,65.54,0.0,0.0,0.0,1,5.3,49,7
|
191 |
+
14740,2020-03-15 04:27:17,93.0,64.09,0.0,0.0,0.0,1,5.3,49,7
|
192 |
+
14741,2020-03-15 04:32:17,92.0,63.91,0.0,0.0,0.0,1,5.3,49,7
|
193 |
+
14742,2020-03-15 04:37:17,94.0,63.81,0.0,0.0,0.0,1,5.3,49,7
|
194 |
+
14743,2020-03-15 04:42:17,96.0,63.74,0.0,0.0,0.0,1,5.3,49,7
|
195 |
+
14744,2020-03-15 04:47:17,97.0,65.07,0.0,0.0,0.0,1,5.3,49,7
|
196 |
+
14745,2020-03-15 04:52:17,97.0,65.06,0.0,0.0,0.0,1,5.3,49,7
|
197 |
+
14746,2020-03-15 04:57:17,96.0,65.11,0.0,0.0,0.0,1,5.3,49,7
|
198 |
+
14747,2020-03-15 05:02:16,94.0,65.21,0.0,0.0,0.0,1,5.3,49,7
|
199 |
+
14748,2020-03-15 05:07:17,92.0,65.26,0.0,0.0,0.0,1,5.3,49,7
|
200 |
+
14749,2020-03-15 05:12:16,91.0,65.26,0.0,0.0,0.0,1,5.3,49,7
|
201 |
+
14750,2020-03-15 05:17:16,91.0,65.34,0.0,0.0,0.0,1,5.3,49,7
|
202 |
+
14751,2020-03-15 05:22:17,93.0,65.4,0.0,0.0,0.0,1,5.3,49,7
|
data/processed/test_dataset.csv
ADDED
The diff for this file is too large to render.
See raw diff
|
|
data/processed/train_dataset.csv
ADDED
The diff for this file is too large to render.
See raw diff
|
|
data/processed/validation_dataset.csv
ADDED
The diff for this file is too large to render.
See raw diff
|
|
glucose_app.py
ADDED
@@ -0,0 +1,482 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import streamlit as st
|
2 |
+
import pandas as pd
|
3 |
+
import numpy as np
|
4 |
+
import matplotlib.pyplot as plt
|
5 |
+
import os
|
6 |
+
import joblib
|
7 |
+
from sklearn.metrics import root_mean_squared_error
|
8 |
+
|
9 |
+
from make_dataset import create_features
|
10 |
+
from naive_approach import get_column_specs, prepare_data, zeroshot_eval, simple_diagonal_averaging
|
11 |
+
from ml_approach import format_dataset
|
12 |
+
|
13 |
+
SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__))
|
14 |
+
CONTEXT_LENGTH = 52
|
15 |
+
PREDICTION_LENGTH = 6
|
16 |
+
|
17 |
+
# Custom theme settings
|
18 |
+
st.set_page_config(
|
19 |
+
page_title="Glucose Level Prediction App",
|
20 |
+
page_icon="📊",
|
21 |
+
layout="wide"
|
22 |
+
)
|
23 |
+
|
24 |
+
# Apply custom styling with CSS
|
25 |
+
st.markdown("""
|
26 |
+
<style>
|
27 |
+
/* Primary accent color */
|
28 |
+
.stButton button, .stSelectbox, .stMultiselect, .stSlider, .stNumberInput {
|
29 |
+
border-color: #58A618 !important;
|
30 |
+
}
|
31 |
+
.stProgress .st-bo {
|
32 |
+
background-color: #58A618 !important;
|
33 |
+
}
|
34 |
+
.st-bq {
|
35 |
+
color: #58A618 !important;
|
36 |
+
}
|
37 |
+
/* Header styling */
|
38 |
+
h1, h2, h3 {
|
39 |
+
color: #58A618 !important;
|
40 |
+
}
|
41 |
+
.stTabs [data-baseweb="tab-list"] button [data-testid="stMarkdownContainer"] p {
|
42 |
+
color: #58A618 !important;
|
43 |
+
}
|
44 |
+
/* Success messages */
|
45 |
+
.element-container .stAlert.st-ae.st-af {
|
46 |
+
border-color: #58A618 !important;
|
47 |
+
color: #58A618 !important;
|
48 |
+
}
|
49 |
+
/* Link color */
|
50 |
+
a {
|
51 |
+
color: #58A618 !important;
|
52 |
+
}
|
53 |
+
/* Button color */
|
54 |
+
.stButton>button {
|
55 |
+
background-color: #58A618 !important;
|
56 |
+
color: white !important;
|
57 |
+
}
|
58 |
+
/* Make background white */
|
59 |
+
.stApp {
|
60 |
+
background-color: white !important;
|
61 |
+
}
|
62 |
+
/* Tab styling */
|
63 |
+
.stTabs [data-baseweb="tab-list"] {
|
64 |
+
gap: 10px;
|
65 |
+
}
|
66 |
+
.stTabs [data-baseweb="tab"] {
|
67 |
+
background-color: #f0f0f0;
|
68 |
+
border-radius: 4px 4px 0 0;
|
69 |
+
padding: 10px 16px;
|
70 |
+
border: 1px solid #ccc;
|
71 |
+
}
|
72 |
+
.stTabs [data-baseweb="tab"][aria-selected="true"] {
|
73 |
+
background-color: white;
|
74 |
+
border-bottom: 3px solid #58A618;
|
75 |
+
}
|
76 |
+
</style>
|
77 |
+
""", unsafe_allow_html=True)
|
78 |
+
|
79 |
+
# Initialize session state variables if they don't exist
|
80 |
+
if 'combined_data' not in st.session_state:
|
81 |
+
st.session_state.combined_data = None
|
82 |
+
if 'files_uploaded' not in st.session_state:
|
83 |
+
st.session_state.files_uploaded = False
|
84 |
+
if 'data_processed' not in st.session_state:
|
85 |
+
st.session_state.data_processed = False
|
86 |
+
|
87 |
+
# Title and description
|
88 |
+
st.title("Glucose Level Prediction App")
|
89 |
+
st.markdown("""
|
90 |
+
This app allows you to upload glucose measurements, food logs, and accelerometer data
|
91 |
+
to analyze patterns and predict glucose levels.
|
92 |
+
""")
|
93 |
+
|
94 |
+
# Choose data source
|
95 |
+
st.subheader("Choose Data Source")
|
96 |
+
data_option = st.selectbox(
|
97 |
+
"Select how you'd like to provide input data:",
|
98 |
+
("Upload files", "Sample A", "Sample B")
|
99 |
+
)
|
100 |
+
|
101 |
+
glucose_data = None
|
102 |
+
food_data = None
|
103 |
+
accel_data = None
|
104 |
+
combined_data = None
|
105 |
+
show_tabs = False
|
106 |
+
|
107 |
+
if data_option == "Upload files":
|
108 |
+
st.subheader("Upload Your Data Files")
|
109 |
+
|
110 |
+
glucose_file = st.file_uploader("Upload Glucose Levels CSV", type=["csv"], key="glucose")
|
111 |
+
food_file = st.file_uploader("Upload Food Logs CSV", type=["csv"], key="food")
|
112 |
+
accel_file = st.file_uploader("Upload Accelerometer Data CSV", type=["csv"], key="accel")
|
113 |
+
|
114 |
+
st.subheader("Patient Demographics")
|
115 |
+
|
116 |
+
# Gender selection
|
117 |
+
gender = st.selectbox("Select Patient Gender", options=["Female", "Male", "Other"], index=0)
|
118 |
+
|
119 |
+
# HbA1c input
|
120 |
+
hba1c = st.number_input("Enter HbA1c (%)", min_value=3.0, max_value=15.0, step=0.1)
|
121 |
+
|
122 |
+
all_files_uploaded = (glucose_file is not None) and (food_file is not None) and (accel_file is not None)
|
123 |
+
|
124 |
+
# Attempt to load files if they exist
|
125 |
+
if glucose_file is not None:
|
126 |
+
try:
|
127 |
+
glucose_data = pd.read_csv(glucose_file)
|
128 |
+
st.success("Glucose data loaded successfully!")
|
129 |
+
except Exception as e:
|
130 |
+
st.error(f"Error loading glucose data: {e}")
|
131 |
+
glucose_data = None
|
132 |
+
|
133 |
+
if food_file is not None:
|
134 |
+
try:
|
135 |
+
food_data = pd.read_csv(food_file)
|
136 |
+
st.success("Food logs loaded successfully!")
|
137 |
+
except Exception as e:
|
138 |
+
st.error(f"Error loading food logs: {e}")
|
139 |
+
food_data = None
|
140 |
+
|
141 |
+
if accel_file is not None:
|
142 |
+
try:
|
143 |
+
accel_data = pd.read_csv(accel_file)
|
144 |
+
st.success("Accelerometer data loaded successfully!")
|
145 |
+
except Exception as e:
|
146 |
+
st.error(f"Error loading accelerometer data: {e}")
|
147 |
+
accel_data = None
|
148 |
+
|
149 |
+
# Update the upload status in session state
|
150 |
+
st.session_state.files_uploaded = all_files_uploaded
|
151 |
+
|
152 |
+
# Show message if not all files are uploaded
|
153 |
+
if not all_files_uploaded:
|
154 |
+
st.warning("Please upload all three data files to enable data processing.")
|
155 |
+
|
156 |
+
col1, col2, col3 = st.columns([1,1,1])
|
157 |
+
|
158 |
+
with col2:
|
159 |
+
# Add a button to process the data - disabled until all files are uploaded
|
160 |
+
if st.button('Process Data', key='process_data_button', disabled=not all_files_uploaded):
|
161 |
+
if all_files_uploaded:
|
162 |
+
try:
|
163 |
+
# Call create_features with appropriate parameters
|
164 |
+
combined_data = create_features(
|
165 |
+
bg_df=glucose_data,
|
166 |
+
food_df=food_data,
|
167 |
+
acc_df=accel_data,
|
168 |
+
gender=gender,
|
169 |
+
hba1c=hba1c,
|
170 |
+
add_patient_id=True
|
171 |
+
)
|
172 |
+
st.session_state.combined_data = combined_data
|
173 |
+
st.session_state.data_processed = True
|
174 |
+
st.success("Data processed successfully!")
|
175 |
+
show_tabs = True
|
176 |
+
except Exception as e:
|
177 |
+
st.error(f"Error processing data: {e}")
|
178 |
+
st.session_state.data_processed = False
|
179 |
+
show_tabs = False
|
180 |
+
|
181 |
+
st.subheader("Expected File Formats:")
|
182 |
+
|
183 |
+
col1, col2, col3 = st.columns(3)
|
184 |
+
|
185 |
+
with col1:
|
186 |
+
st.markdown("""
|
187 |
+
**Glucose Levels CSV:**
|
188 |
+
- Timestamp column
|
189 |
+
- Glucose measurement values
|
190 |
+
""")
|
191 |
+
|
192 |
+
with col2:
|
193 |
+
st.markdown("""
|
194 |
+
**Food Logs CSV:**
|
195 |
+
- Timestamp column
|
196 |
+
- Carbohydrates
|
197 |
+
- Sugar
|
198 |
+
- Calories
|
199 |
+
""")
|
200 |
+
|
201 |
+
with col3:
|
202 |
+
st.markdown("""
|
203 |
+
**Accelerometer Data CSV:**
|
204 |
+
- Timestamp column
|
205 |
+
- Activity measurements
|
206 |
+
""")
|
207 |
+
|
208 |
+
# Check if data was previously processed
|
209 |
+
if st.session_state.data_processed and st.session_state.combined_data is not None:
|
210 |
+
combined_data = st.session_state.combined_data
|
211 |
+
show_tabs = True
|
212 |
+
|
213 |
+
elif data_option == "Sample A":
|
214 |
+
combined_data_path = os.path.join(SCRIPT_DIR, '..', 'data', 'processed', 'samples', 'sample_A.csv')
|
215 |
+
combined_data = pd.read_csv(combined_data_path)
|
216 |
+
st.session_state.combined_data = combined_data
|
217 |
+
st.session_state.data_processed = True
|
218 |
+
st.success("Sample A loaded successfully!")
|
219 |
+
show_tabs = True
|
220 |
+
|
221 |
+
elif data_option == "Sample B":
|
222 |
+
combined_data_path = os.path.join(SCRIPT_DIR, '..', 'data', 'processed', 'samples', 'sample_B.csv')
|
223 |
+
combined_data = pd.read_csv(combined_data_path)
|
224 |
+
st.session_state.combined_data = combined_data
|
225 |
+
st.session_state.data_processed = True
|
226 |
+
st.success("Sample B loaded successfully!")
|
227 |
+
show_tabs = True
|
228 |
+
|
229 |
+
# Add some spacing
|
230 |
+
st.write("")
|
231 |
+
st.write("")
|
232 |
+
|
233 |
+
# Only show tabs if sample data is loaded or user data has been successfully processed
|
234 |
+
if show_tabs:
|
235 |
+
# Create tabs for data exploration
|
236 |
+
tab1, tab2, tab3 = st.tabs(["Naive Model", "Machine Learning Model", "Deep Learning Model"])
|
237 |
+
|
238 |
+
with tab1:
|
239 |
+
st.subheader("Naive Model")
|
240 |
+
|
241 |
+
if st.button('Make prediction', key='naive_button'):
|
242 |
+
if combined_data is not None:
|
243 |
+
|
244 |
+
# Add your naive model prediction code here
|
245 |
+
try:
|
246 |
+
# Call naive model prediction functions
|
247 |
+
column_specs = get_column_specs()
|
248 |
+
prepared_data = prepare_data(combined_data, column_specs["timestamp_column"])
|
249 |
+
|
250 |
+
train_file = os.path.join(SCRIPT_DIR, '..', 'data', 'processed', 'train_dataset.csv')
|
251 |
+
train_data = pd.read_csv(train_file)
|
252 |
+
train_data = prepare_data(train_data, column_specs["timestamp_column"])
|
253 |
+
predictions = zeroshot_eval(
|
254 |
+
train_df=train_data,
|
255 |
+
test_df=prepared_data,
|
256 |
+
batch_size=8
|
257 |
+
)
|
258 |
+
|
259 |
+
# Get all step columns
|
260 |
+
step_columns = [col for col in predictions["predictions_df"].columns if col.startswith("Glucose_step_")]
|
261 |
+
|
262 |
+
# Apply simple diagonal averaging by patient
|
263 |
+
final_results = simple_diagonal_averaging(
|
264 |
+
predictions["predictions_df"],
|
265 |
+
prepared_data,
|
266 |
+
CONTEXT_LENGTH,
|
267 |
+
step_columns
|
268 |
+
)
|
269 |
+
|
270 |
+
# Visualize predictions vs actual values
|
271 |
+
fig, ax = plt.subplots(figsize=(10, 6))
|
272 |
+
|
273 |
+
# Filter out zero predictions
|
274 |
+
non_zero_mask = final_results['averaged_prediction'] != 0
|
275 |
+
filtered_results = final_results[non_zero_mask]
|
276 |
+
|
277 |
+
# Plot predictions (only non-zero values) in green
|
278 |
+
ax.plot(filtered_results['Timestamp'], filtered_results['averaged_prediction'],
|
279 |
+
label='Predicted', alpha=0.7, color='#58A618')
|
280 |
+
|
281 |
+
# Plot actual values (all data) in blue
|
282 |
+
ax.plot(final_results['Timestamp'], final_results['Glucose'],
|
283 |
+
label='Ground truth', alpha=0.7, color='#1f77b4')
|
284 |
+
|
285 |
+
ax.set_title('Glucose Predictions vs Actual Values')
|
286 |
+
ax.set_xlabel('Time')
|
287 |
+
ax.set_ylabel('Glucose Level')
|
288 |
+
ax.legend()
|
289 |
+
|
290 |
+
st.pyplot(fig)
|
291 |
+
|
292 |
+
y_true = final_results['Glucose'][CONTEXT_LENGTH:].reset_index(drop=True)
|
293 |
+
y_pred = final_results['averaged_prediction'][CONTEXT_LENGTH:].reset_index(drop=True)
|
294 |
+
|
295 |
+
# Filter out zero predictions
|
296 |
+
non_zero_mask = y_pred != 0
|
297 |
+
y_true_filtered = y_true[non_zero_mask]
|
298 |
+
y_pred_filtered = y_pred[non_zero_mask]
|
299 |
+
|
300 |
+
if len(y_pred_filtered) > 0:
|
301 |
+
rmse = np.sqrt(root_mean_squared_error(y_true_filtered, y_pred_filtered))
|
302 |
+
st.subheader("Performance Metrics")
|
303 |
+
st.metric("AVERAGE RMSE", f"{rmse:.4f}")
|
304 |
+
else:
|
305 |
+
st.subheader("Performance Metrics")
|
306 |
+
st.metric("AVERAGE RMSE", "N/A")
|
307 |
+
|
308 |
+
except Exception as e:
|
309 |
+
st.error(f"Error in naive model prediction: {e}")
|
310 |
+
else:
|
311 |
+
st.error("Data not available. Please try again.")
|
312 |
+
|
313 |
+
with tab2:
|
314 |
+
st.subheader("Machine Learning Model")
|
315 |
+
|
316 |
+
if st.button('Make prediction', key='ml_button'):
|
317 |
+
if combined_data is not None:
|
318 |
+
X_test, y_test = format_dataset(combined_data, CONTEXT_LENGTH, PREDICTION_LENGTH)
|
319 |
+
|
320 |
+
model_output_path = os.path.join(SCRIPT_DIR, '..', 'models', 'xgb_model.pkl')
|
321 |
+
xgb_model = joblib.load(model_output_path)
|
322 |
+
|
323 |
+
y_test_pred = xgb_model.predict(X_test)
|
324 |
+
|
325 |
+
final_results = simple_diagonal_averaging(
|
326 |
+
pd.DataFrame(y_test_pred),
|
327 |
+
combined_data,
|
328 |
+
CONTEXT_LENGTH,
|
329 |
+
pd.DataFrame(y_test_pred).columns
|
330 |
+
)
|
331 |
+
|
332 |
+
# Visualize predictions vs actual values
|
333 |
+
fig, ax = plt.subplots(figsize=(10, 6))
|
334 |
+
|
335 |
+
# Plot all actual values in blue
|
336 |
+
ax.plot(final_results['Timestamp'], final_results['Glucose'],
|
337 |
+
label='Ground truth', alpha=0.7, color='#1f77b4')
|
338 |
+
|
339 |
+
# Replace zeros with NaN (which matplotlib will skip when plotting)
|
340 |
+
plot_predictions = final_results['averaged_prediction'].copy()
|
341 |
+
plot_predictions = plot_predictions.replace(0, float('nan'))
|
342 |
+
|
343 |
+
# Plot predictions with NaN instead of zeros in green
|
344 |
+
ax.plot(final_results['Timestamp'], plot_predictions,
|
345 |
+
label='Predicted', alpha=0.7, color='#58A618')
|
346 |
+
|
347 |
+
ax.set_title('Glucose Predictions vs Actual Values')
|
348 |
+
ax.set_xlabel('Time')
|
349 |
+
ax.set_ylabel('Glucose Level')
|
350 |
+
ax.legend()
|
351 |
+
|
352 |
+
st.pyplot(fig)
|
353 |
+
|
354 |
+
# Calculate and display metrics for single patient
|
355 |
+
y_true = final_results['Glucose'][CONTEXT_LENGTH:].reset_index(drop=True)
|
356 |
+
y_pred = final_results['averaged_prediction'][CONTEXT_LENGTH:].reset_index(drop=True)
|
357 |
+
|
358 |
+
# Filter out zero predictions
|
359 |
+
non_zero_mask = y_pred != 0
|
360 |
+
y_true_filtered = y_true[non_zero_mask]
|
361 |
+
y_pred_filtered = y_pred[non_zero_mask]
|
362 |
+
|
363 |
+
if len(y_pred_filtered) > 0:
|
364 |
+
rmse = np.sqrt(root_mean_squared_error(y_true_filtered, y_pred_filtered))
|
365 |
+
st.subheader("Performance Metrics")
|
366 |
+
st.metric("AVERAGE RMSE", f"{rmse:.4f}")
|
367 |
+
else:
|
368 |
+
st.subheader("Performance Metrics")
|
369 |
+
st.metric("AVERAGE RMSE", "N/A")
|
370 |
+
|
371 |
+
else:
|
372 |
+
st.error("Data not available. Please try again.")
|
373 |
+
|
374 |
+
with tab3:
|
375 |
+
st.subheader("Deep Learning Model")
|
376 |
+
|
377 |
+
if st.button('Make prediction', key='dl_button'):
|
378 |
+
if combined_data is not None:
|
379 |
+
column_specs = get_column_specs()
|
380 |
+
prepared_data = prepare_data(combined_data, column_specs["timestamp_column"])
|
381 |
+
|
382 |
+
train_file = os.path.join(SCRIPT_DIR, '..', 'data', 'processed', 'train_dataset.csv')
|
383 |
+
train_data = pd.read_csv(train_file)
|
384 |
+
train_data = prepare_data(train_data, column_specs["timestamp_column"])
|
385 |
+
predictions = zeroshot_eval(
|
386 |
+
train_df=train_data,
|
387 |
+
test_df=prepared_data,
|
388 |
+
batch_size=8,
|
389 |
+
model_path="iaravagni/ttm-finetuned-model"
|
390 |
+
)
|
391 |
+
|
392 |
+
# Get all step columns
|
393 |
+
step_columns = [col for col in predictions["predictions_df"].columns if col.startswith("Glucose_step_")]
|
394 |
+
|
395 |
+
# Apply simple diagonal averaging by patient
|
396 |
+
final_results = simple_diagonal_averaging(
|
397 |
+
predictions["predictions_df"],
|
398 |
+
prepared_data,
|
399 |
+
CONTEXT_LENGTH,
|
400 |
+
step_columns
|
401 |
+
)
|
402 |
+
|
403 |
+
# Visualize predictions vs actual values
|
404 |
+
fig, ax = plt.subplots(figsize=(10, 6))
|
405 |
+
|
406 |
+
# Filter out zero predictions
|
407 |
+
non_zero_mask = final_results['averaged_prediction'] != 0
|
408 |
+
filtered_results = final_results[non_zero_mask]
|
409 |
+
|
410 |
+
# Plot predictions (only non-zero values) in green
|
411 |
+
ax.plot(filtered_results['Timestamp'], filtered_results['averaged_prediction'],
|
412 |
+
label='Predicted', alpha=0.7, color='#58A618')
|
413 |
+
|
414 |
+
# Plot actual values (all data) in blue
|
415 |
+
ax.plot(final_results['Timestamp'], final_results['Glucose'],
|
416 |
+
label='Ground truth', alpha=0.7, color='#1f77b4')
|
417 |
+
|
418 |
+
ax.set_title('Glucose Predictions vs Actual Values')
|
419 |
+
ax.set_xlabel('Time')
|
420 |
+
ax.set_ylabel('Glucose Level')
|
421 |
+
ax.legend()
|
422 |
+
|
423 |
+
st.pyplot(fig)
|
424 |
+
|
425 |
+
# Calculate and display metrics for single patient
|
426 |
+
y_true = final_results['Glucose'][CONTEXT_LENGTH:].reset_index(drop=True)
|
427 |
+
y_pred = final_results['averaged_prediction'][CONTEXT_LENGTH:].reset_index(drop=True)
|
428 |
+
|
429 |
+
# Filter out zero predictions
|
430 |
+
non_zero_mask = y_pred != 0
|
431 |
+
y_true_filtered = y_true[non_zero_mask]
|
432 |
+
y_pred_filtered = y_pred[non_zero_mask]
|
433 |
+
|
434 |
+
if len(y_pred_filtered) > 0:
|
435 |
+
rmse = np.sqrt(root_mean_squared_error(y_true_filtered, y_pred_filtered))
|
436 |
+
st.subheader("Performance Metrics")
|
437 |
+
st.metric("AVERAGE RMSE", f"{rmse:.4f}")
|
438 |
+
else:
|
439 |
+
st.subheader("Performance Metrics")
|
440 |
+
st.metric("AVERAGE RMSE", "N/A")
|
441 |
+
else:
|
442 |
+
st.error("Data not available. Please try again.")
|
443 |
+
else:
|
444 |
+
st.info("Upload and process data or select a sample dataset to view prediction models.")
|
445 |
+
|
446 |
+
# Add some spacing
|
447 |
+
st.write("")
|
448 |
+
st.write("")
|
449 |
+
|
450 |
+
# App information and disclaimer
|
451 |
+
st.markdown("""
|
452 |
+
---
|
453 |
+
### About this App
|
454 |
+
|
455 |
+
This application is designed to help analyze and predict glucose levels based on glucose measurements,
|
456 |
+
food logs, and physical activity data. The app merges these datasets based on timestamps to identify
|
457 |
+
patterns and make predictions.
|
458 |
+
|
459 |
+
Please note that this is a demonstration tool and should not be used for medical decisions without
|
460 |
+
consultation with healthcare professionals.
|
461 |
+
|
462 |
+
""")
|
463 |
+
|
464 |
+
# Add a footer with the custom color
|
465 |
+
st.markdown("""
|
466 |
+
<style>
|
467 |
+
.footer {
|
468 |
+
position: fixed;
|
469 |
+
left: 0;
|
470 |
+
bottom: 0;
|
471 |
+
width: 100%;
|
472 |
+
background-color: white;
|
473 |
+
color: #58A618;
|
474 |
+
text-align: center;
|
475 |
+
padding: 10px;
|
476 |
+
border-top: 2px solid #58A618;
|
477 |
+
}
|
478 |
+
</style>
|
479 |
+
<div class="footer">
|
480 |
+
<p>Glucose Prediction Application © 2025</p>
|
481 |
+
</div>
|
482 |
+
""", unsafe_allow_html=True)
|
models/xgb_model.pkl
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:2720a062fb6c9e5983e40ea463eafe5c40997d0b9dd13fe7fdb1e7b4406d882f
|
3 |
+
size 2572912
|
requirements.txt
ADDED
Binary file (7.08 kB). View file
|
|
scripts/dl_approach.py
ADDED
@@ -0,0 +1,354 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import os
|
2 |
+
import tempfile
|
3 |
+
import pandas as pd
|
4 |
+
import warnings
|
5 |
+
import torch
|
6 |
+
import numpy as np
|
7 |
+
from transformers import Trainer, TrainingArguments, set_seed
|
8 |
+
|
9 |
+
from tsfm_public import TimeSeriesPreprocessor
|
10 |
+
from tsfm_public.models.tinytimemixer import TinyTimeMixerForPrediction
|
11 |
+
from tsfm_public.toolkit.get_model import get_model
|
12 |
+
from tsfm_public.toolkit.dataset import ForecastDFDataset
|
13 |
+
|
14 |
+
# Constants
|
15 |
+
SEED = 42
|
16 |
+
TTM_MODEL_PATH = "iaravagni/ttm-finetuned-model"
|
17 |
+
CONTEXT_LENGTH = 52 # 4.33 hrs
|
18 |
+
PREDICTION_LENGTH = 6 # 30 mins
|
19 |
+
OUT_DIR = "ttm_finetuned_models/"
|
20 |
+
|
21 |
+
def setup_environment():
|
22 |
+
"""
|
23 |
+
Set up the environment for model training and evaluation.
|
24 |
+
Creates necessary directories and sets random seed for reproducibility.
|
25 |
+
"""
|
26 |
+
set_seed(SEED)
|
27 |
+
os.makedirs(OUT_DIR, exist_ok=True)
|
28 |
+
os.makedirs(os.path.join(OUT_DIR, 'results'), exist_ok=True)
|
29 |
+
|
30 |
+
def load_dataset(file_path):
|
31 |
+
"""
|
32 |
+
Load the dataset from the specified file path.
|
33 |
+
|
34 |
+
Args:
|
35 |
+
file_path (str): Path to the dataset CSV file
|
36 |
+
|
37 |
+
Returns:
|
38 |
+
pd.DataFrame: The loaded dataset
|
39 |
+
"""
|
40 |
+
return pd.read_csv(file_path)
|
41 |
+
|
42 |
+
def prepare_data(data, timestamp_column):
|
43 |
+
"""
|
44 |
+
Prepare the dataset by converting timestamp column to datetime format.
|
45 |
+
|
46 |
+
Args:
|
47 |
+
data (pd.DataFrame): The dataset
|
48 |
+
timestamp_column (str): Name of the timestamp column
|
49 |
+
|
50 |
+
Returns:
|
51 |
+
pd.DataFrame: The processed dataset
|
52 |
+
"""
|
53 |
+
data[timestamp_column] = pd.to_datetime(data[timestamp_column])
|
54 |
+
return data
|
55 |
+
|
56 |
+
def get_column_specs():
|
57 |
+
"""
|
58 |
+
Define and return column specifications for the dataset.
|
59 |
+
|
60 |
+
Returns:
|
61 |
+
dict: Column specifications including timestamp, ID, target, and control columns
|
62 |
+
"""
|
63 |
+
timestamp_column = "Timestamp"
|
64 |
+
id_columns = ["patient_id"]
|
65 |
+
target_columns = ["Glucose"]
|
66 |
+
control_columns = ["Accelerometer", "Calories", "Carbs", "Sugar", "Gender", "HbA1c", "Age"]
|
67 |
+
|
68 |
+
return {
|
69 |
+
"timestamp_column": timestamp_column,
|
70 |
+
"id_columns": id_columns,
|
71 |
+
"target_columns": target_columns,
|
72 |
+
"control_columns": control_columns,
|
73 |
+
}
|
74 |
+
|
75 |
+
def create_test_only_dataset(ts_preprocessor, test_dataset, train_dataset=None, stride=1, enable_padding=True, **dataset_kwargs):
|
76 |
+
"""
|
77 |
+
Creates a preprocessed pytorch dataset for testing only.
|
78 |
+
|
79 |
+
Args:
|
80 |
+
ts_preprocessor: TimeSeriesPreprocessor instance
|
81 |
+
test_dataset: Pandas dataframe for testing
|
82 |
+
train_dataset: Optional pandas dataframe for training the scaler
|
83 |
+
stride: Stride used for creating the dataset
|
84 |
+
enable_padding: If True, datasets are created with padding
|
85 |
+
dataset_kwargs: Additional keyword arguments to pass to ForecastDFDataset
|
86 |
+
|
87 |
+
Returns:
|
88 |
+
ForecastDFDataset for testing
|
89 |
+
"""
|
90 |
+
# Standardize the test dataframe
|
91 |
+
test_data = ts_preprocessor._standardize_dataframe(test_dataset)
|
92 |
+
|
93 |
+
# Train the preprocessor on the training data if provided, otherwise use test data
|
94 |
+
if train_dataset is not None:
|
95 |
+
train_data = ts_preprocessor._standardize_dataframe(train_dataset)
|
96 |
+
ts_preprocessor.train(train_data)
|
97 |
+
else:
|
98 |
+
ts_preprocessor.train(test_data)
|
99 |
+
|
100 |
+
# Preprocess the test data
|
101 |
+
test_data_prep = test_data.copy() # Skip preprocessing to avoid scaling errors
|
102 |
+
|
103 |
+
# Specify columns
|
104 |
+
column_specifiers = {
|
105 |
+
"id_columns": ts_preprocessor.id_columns,
|
106 |
+
"timestamp_column": ts_preprocessor.timestamp_column,
|
107 |
+
"target_columns": ts_preprocessor.target_columns,
|
108 |
+
"observable_columns": ts_preprocessor.observable_columns,
|
109 |
+
"control_columns": ts_preprocessor.control_columns,
|
110 |
+
"conditional_columns": ts_preprocessor.conditional_columns,
|
111 |
+
"categorical_columns": ts_preprocessor.categorical_columns,
|
112 |
+
"static_categorical_columns": ts_preprocessor.static_categorical_columns,
|
113 |
+
}
|
114 |
+
|
115 |
+
params = column_specifiers
|
116 |
+
params["context_length"] = ts_preprocessor.context_length
|
117 |
+
params["prediction_length"] = ts_preprocessor.prediction_length
|
118 |
+
params["stride"] = stride
|
119 |
+
params["enable_padding"] = enable_padding
|
120 |
+
|
121 |
+
# Add frequency token - this is critical for TinyTimeMixer
|
122 |
+
params["frequency_token"] = ts_preprocessor.get_frequency_token(ts_preprocessor.freq)
|
123 |
+
|
124 |
+
# Update with any additional kwargs
|
125 |
+
params.update(**dataset_kwargs)
|
126 |
+
|
127 |
+
# Create the ForecastDFDataset
|
128 |
+
test_dataset = ForecastDFDataset(test_data_prep, **params)
|
129 |
+
|
130 |
+
if len(test_dataset) == 0:
|
131 |
+
raise RuntimeError("The generated test dataset is of zero length.")
|
132 |
+
|
133 |
+
return test_dataset
|
134 |
+
|
135 |
+
|
136 |
+
|
137 |
+
def zeroshot_eval(train_df, test_df, batch_size, context_length=CONTEXT_LENGTH, forecast_length=PREDICTION_LENGTH, model_path=TTM_MODEL_PATH):
|
138 |
+
"""
|
139 |
+
Performs zero-shot evaluation of time series forecasting on test data.
|
140 |
+
|
141 |
+
Args:
|
142 |
+
train_df: Training dataframe
|
143 |
+
test_df: Testing dataframe
|
144 |
+
batch_size: Batch size for evaluation
|
145 |
+
context_length: Number of time steps to use as context
|
146 |
+
forecast_length: Number of time steps to predict
|
147 |
+
|
148 |
+
Returns:
|
149 |
+
dict: Dictionary containing predictions dataframe and metrics
|
150 |
+
"""
|
151 |
+
column_specifiers = get_column_specs()
|
152 |
+
|
153 |
+
# Create preprocessor with scaling disabled
|
154 |
+
tsp = TimeSeriesPreprocessor(
|
155 |
+
timestamp_column=column_specifiers["timestamp_column"],
|
156 |
+
id_columns=column_specifiers["id_columns"],
|
157 |
+
target_columns=column_specifiers["target_columns"],
|
158 |
+
control_columns=column_specifiers["control_columns"],
|
159 |
+
context_length=context_length,
|
160 |
+
prediction_length=forecast_length,
|
161 |
+
scaling=False,
|
162 |
+
encode_categorical=False,
|
163 |
+
force_return="zeropad",
|
164 |
+
)
|
165 |
+
|
166 |
+
# Load model
|
167 |
+
zeroshot_model = get_model(
|
168 |
+
model_path,
|
169 |
+
context_length=context_length,
|
170 |
+
prediction_length=forecast_length,
|
171 |
+
freq_prefix_tuning=False,
|
172 |
+
freq=None,
|
173 |
+
prefer_l1_loss=False,
|
174 |
+
prefer_longer_context=True,
|
175 |
+
)
|
176 |
+
|
177 |
+
# Create test dataset
|
178 |
+
dset_test = create_test_only_dataset(ts_preprocessor=tsp, test_dataset=test_df, train_dataset=train_df)
|
179 |
+
|
180 |
+
# Setup trainer
|
181 |
+
temp_dir = tempfile.mkdtemp()
|
182 |
+
zeroshot_trainer = Trainer(
|
183 |
+
model=zeroshot_model,
|
184 |
+
args=TrainingArguments(
|
185 |
+
output_dir=temp_dir,
|
186 |
+
per_device_eval_batch_size=batch_size,
|
187 |
+
seed=SEED,
|
188 |
+
report_to="none",
|
189 |
+
),
|
190 |
+
)
|
191 |
+
|
192 |
+
# Get predictions
|
193 |
+
predictions_dict = zeroshot_trainer.predict(dset_test)
|
194 |
+
|
195 |
+
# Process predictions
|
196 |
+
processed_predictions = process_predictions(predictions_dict, tsp, column_specifiers["target_columns"])
|
197 |
+
|
198 |
+
# Get evaluation metrics
|
199 |
+
metrics = zeroshot_trainer.evaluate(dset_test)
|
200 |
+
|
201 |
+
return {
|
202 |
+
"predictions_df": processed_predictions,
|
203 |
+
"metrics": metrics
|
204 |
+
}
|
205 |
+
|
206 |
+
def process_predictions(predictions_dict, tsp, target_columns):
|
207 |
+
"""
|
208 |
+
Process the predictions from the Trainer into a usable DataFrame.
|
209 |
+
|
210 |
+
Args:
|
211 |
+
predictions_dict: Predictions from the Trainer
|
212 |
+
tsp: TimeSeriesPreprocessor instance
|
213 |
+
target_columns: List of target column names
|
214 |
+
|
215 |
+
Returns:
|
216 |
+
pd.DataFrame: DataFrame containing processed predictions
|
217 |
+
"""
|
218 |
+
# Extract predictions
|
219 |
+
if hasattr(predictions_dict, 'predictions'):
|
220 |
+
raw_predictions = predictions_dict.predictions
|
221 |
+
else:
|
222 |
+
raw_predictions = predictions_dict.get('predictions', predictions_dict)
|
223 |
+
|
224 |
+
# Handle tuple predictions (mean and uncertainty)
|
225 |
+
if isinstance(raw_predictions, tuple):
|
226 |
+
predictions = raw_predictions[0]
|
227 |
+
else:
|
228 |
+
predictions = raw_predictions
|
229 |
+
|
230 |
+
# Get shape information
|
231 |
+
n_samples, n_timesteps, n_features = predictions.shape
|
232 |
+
|
233 |
+
# Create DataFrame for processed predictions
|
234 |
+
processed_df = pd.DataFrame()
|
235 |
+
|
236 |
+
# Extract predictions for each target and timestep
|
237 |
+
for i, col in enumerate(target_columns):
|
238 |
+
if i < n_features:
|
239 |
+
for t in range(n_timesteps):
|
240 |
+
processed_df[f"{col}_step_{t+1}"] = predictions[:, t, i]
|
241 |
+
|
242 |
+
return processed_df
|
243 |
+
|
244 |
+
def simple_diagonal_averaging(predictions_df, test_data, context_length, step_columns):
|
245 |
+
"""
|
246 |
+
Improved approach to diagonally averaging predictions by patient.
|
247 |
+
Properly handles the last rows of predictions to ensure all available
|
248 |
+
predicted values are used.
|
249 |
+
|
250 |
+
Args:
|
251 |
+
predictions_df (pd.DataFrame): DataFrame with step-wise predictions
|
252 |
+
test_data (pd.DataFrame): Original test data with patient IDs
|
253 |
+
context_length (int): Number of context steps used in the model
|
254 |
+
step_columns (list): List of step column names
|
255 |
+
|
256 |
+
Returns:
|
257 |
+
pd.DataFrame: DataFrame with averaged predictions
|
258 |
+
"""
|
259 |
+
# Create a new dataframe for the final results
|
260 |
+
final_df = test_data.copy()
|
261 |
+
|
262 |
+
# Initialize prediction column with zeros/NaN
|
263 |
+
final_df['averaged_prediction'] = 0
|
264 |
+
|
265 |
+
# Process each patient separately
|
266 |
+
for patient_id in test_data['patient_id'].unique():
|
267 |
+
# Get indices for this patient
|
268 |
+
patient_mask = final_df['patient_id'] == patient_id
|
269 |
+
patient_indices = final_df[patient_mask].index
|
270 |
+
|
271 |
+
# Skip the first context_length rows for this patient
|
272 |
+
start_idx = min(context_length, len(patient_indices))
|
273 |
+
|
274 |
+
# For each row after the context window
|
275 |
+
for i in range(start_idx, len(patient_indices)):
|
276 |
+
row_idx = patient_indices[i]
|
277 |
+
pred_row_idx = i - context_length
|
278 |
+
|
279 |
+
# Skip if the prediction row index is negative
|
280 |
+
if pred_row_idx < 0:
|
281 |
+
continue
|
282 |
+
|
283 |
+
# Get the corresponding prediction row
|
284 |
+
if pred_row_idx < len(predictions_df):
|
285 |
+
# Average the predictions for all steps
|
286 |
+
avg_prediction = predictions_df.iloc[pred_row_idx][step_columns].mean()
|
287 |
+
final_df.loc[row_idx, 'averaged_prediction'] = avg_prediction
|
288 |
+
else:
|
289 |
+
# Handle the case where we've run out of prediction rows
|
290 |
+
# Calculate how many steps beyond the last prediction row we are
|
291 |
+
excess_steps = pred_row_idx - len(predictions_df) + 1
|
292 |
+
|
293 |
+
# Make sure we don't go beyond the available steps
|
294 |
+
if excess_steps < len(step_columns):
|
295 |
+
# Use the last row of predictions but only the appropriate steps
|
296 |
+
relevant_steps = step_columns[excess_steps:]
|
297 |
+
if relevant_steps:
|
298 |
+
avg_prediction = predictions_df.iloc[-1][relevant_steps].mean()
|
299 |
+
final_df.loc[row_idx, 'averaged_prediction'] = avg_prediction
|
300 |
+
|
301 |
+
return final_df
|
302 |
+
|
303 |
+
|
304 |
+
def main():
|
305 |
+
"""
|
306 |
+
Main function to execute the time series forecasting workflow.
|
307 |
+
"""
|
308 |
+
# Setup
|
309 |
+
# setup_environment()
|
310 |
+
|
311 |
+
# Get dataset path
|
312 |
+
script_dir = os.path.dirname(os.path.abspath(__file__))
|
313 |
+
test_file = os.path.join(script_dir, '..', 'data', 'processed', 'test_dataset.csv')
|
314 |
+
train_file = os.path.join(script_dir, '..', 'data', 'processed', 'train_dataset.csv')
|
315 |
+
|
316 |
+
# Load and prepare data
|
317 |
+
test_data = load_dataset(test_file)
|
318 |
+
train_data = load_dataset(train_file)
|
319 |
+
column_specs = get_column_specs()
|
320 |
+
test_data = prepare_data(test_data, column_specs["timestamp_column"])
|
321 |
+
train_data = prepare_data(train_data, column_specs["timestamp_column"])
|
322 |
+
|
323 |
+
# Run zero-shot evaluation
|
324 |
+
results = zeroshot_eval(
|
325 |
+
train_df=train_data,
|
326 |
+
test_df=test_data,
|
327 |
+
batch_size=8,
|
328 |
+
context_length=CONTEXT_LENGTH,
|
329 |
+
forecast_length=PREDICTION_LENGTH
|
330 |
+
)
|
331 |
+
|
332 |
+
# Get all step columns
|
333 |
+
step_columns = [col for col in results["predictions_df"].columns if col.startswith("Glucose_step_")]
|
334 |
+
|
335 |
+
# Apply simple diagonal averaging by patient
|
336 |
+
final_results = simple_diagonal_averaging(
|
337 |
+
results["predictions_df"],
|
338 |
+
test_data,
|
339 |
+
CONTEXT_LENGTH,
|
340 |
+
step_columns
|
341 |
+
)
|
342 |
+
|
343 |
+
# Save raw predictions to CSV
|
344 |
+
raw_predictions_path = os.path.join(script_dir, '..', 'data', 'outputs', 'dl_predictions_raw.csv')
|
345 |
+
results["predictions_df"].to_csv(raw_predictions_path, index=False)
|
346 |
+
|
347 |
+
# Save final results to CSV
|
348 |
+
final_results_path = os.path.join(script_dir, '..', 'data', 'outputs', 'dl_predictions.csv')
|
349 |
+
final_results.to_csv(final_results_path, index=False)
|
350 |
+
|
351 |
+
return
|
352 |
+
|
353 |
+
if __name__ == "__main__":
|
354 |
+
main()
|
scripts/finetuning.py
ADDED
@@ -0,0 +1,239 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import os
|
2 |
+
import tempfile
|
3 |
+
import pandas as pd
|
4 |
+
import warnings
|
5 |
+
import torch
|
6 |
+
import numpy as np
|
7 |
+
import math
|
8 |
+
from transformers import Trainer, TrainingArguments, set_seed, EarlyStoppingCallback, Trainer
|
9 |
+
from torch.optim import AdamW
|
10 |
+
from torch.optim.lr_scheduler import OneCycleLR
|
11 |
+
|
12 |
+
from tsfm_public import TimeSeriesPreprocessor
|
13 |
+
from tsfm_public.models.tinytimemixer import TinyTimeMixerForPrediction
|
14 |
+
from tsfm_public.toolkit.get_model import get_model
|
15 |
+
from tsfm_public.toolkit.dataset import ForecastDFDataset
|
16 |
+
from tsfm_public.toolkit.callbacks import TrackingCallback
|
17 |
+
|
18 |
+
from huggingface_hub import login, create_repo, upload_folder
|
19 |
+
|
20 |
+
|
21 |
+
SEED = 42
|
22 |
+
TTM_MODEL_PATH = "ibm-granite/granite-timeseries-ttm-r2"
|
23 |
+
CONTEXT_LENGTH = 52 # 4.33 hrs
|
24 |
+
PREDICTION_LENGTH = 6 # 30 mins
|
25 |
+
|
26 |
+
def get_column_specs():
|
27 |
+
"""
|
28 |
+
Define and return column specifications for the dataset.
|
29 |
+
|
30 |
+
Returns:
|
31 |
+
dict: Column specifications including timestamp, ID, target, and control columns
|
32 |
+
"""
|
33 |
+
timestamp_column = "Timestamp"
|
34 |
+
id_columns = ["patient_id"]
|
35 |
+
target_columns = ["Glucose"]
|
36 |
+
control_columns = ["Accelerometer", "Calories", "Carbs", "Sugar", "Gender", "HbA1c", "Age"]
|
37 |
+
|
38 |
+
return {
|
39 |
+
"timestamp_column": timestamp_column,
|
40 |
+
"id_columns": id_columns,
|
41 |
+
"target_columns": target_columns,
|
42 |
+
"control_columns": control_columns,
|
43 |
+
}
|
44 |
+
|
45 |
+
def create_dataset(ts_preprocessor, dataframe, train_df, column_specs, context_length, prediction_length, stride=1):
|
46 |
+
"""
|
47 |
+
Create a ForecastDFDataset using the proper parameters based on the example.
|
48 |
+
|
49 |
+
Args:
|
50 |
+
dataframe: Pandas dataframe with time series data
|
51 |
+
column_specs: Dictionary with column specifications
|
52 |
+
context_length: Context window length
|
53 |
+
prediction_length: Prediction horizon length
|
54 |
+
stride: Stride for sliding window
|
55 |
+
|
56 |
+
Returns:
|
57 |
+
ForecastDFDataset instance
|
58 |
+
"""
|
59 |
+
|
60 |
+
# Convert timestamp to datetime if needed
|
61 |
+
if not pd.api.types.is_datetime64_any_dtype(dataframe[column_specs["timestamp_column"]]):
|
62 |
+
dataframe[column_specs["timestamp_column"]] = pd.to_datetime(dataframe[column_specs["timestamp_column"]])
|
63 |
+
|
64 |
+
# Standardize the test dataframe
|
65 |
+
dataframe = ts_preprocessor._standardize_dataframe(dataframe)
|
66 |
+
|
67 |
+
ts_preprocessor.train(train_df)
|
68 |
+
|
69 |
+
|
70 |
+
# Preprocess the test data
|
71 |
+
dataframe_prep = dataframe.copy() # Skip preprocessing to avoid scaling errors
|
72 |
+
|
73 |
+
# Specify columns
|
74 |
+
column_specifiers = {
|
75 |
+
"id_columns": ts_preprocessor.id_columns,
|
76 |
+
"timestamp_column": ts_preprocessor.timestamp_column,
|
77 |
+
"target_columns": ts_preprocessor.target_columns,
|
78 |
+
"observable_columns": ts_preprocessor.observable_columns,
|
79 |
+
"control_columns": ts_preprocessor.control_columns,
|
80 |
+
"conditional_columns": ts_preprocessor.conditional_columns,
|
81 |
+
"categorical_columns": ts_preprocessor.categorical_columns,
|
82 |
+
"static_categorical_columns": ts_preprocessor.static_categorical_columns,
|
83 |
+
}
|
84 |
+
|
85 |
+
params = column_specifiers
|
86 |
+
params["context_length"] = ts_preprocessor.context_length
|
87 |
+
params["prediction_length"] = ts_preprocessor.prediction_length
|
88 |
+
params["stride"] = stride
|
89 |
+
params["enable_padding"] = True
|
90 |
+
|
91 |
+
# Add frequency token - this is critical for TinyTimeMixer
|
92 |
+
params["frequency_token"] = ts_preprocessor.get_frequency_token(ts_preprocessor.freq)
|
93 |
+
|
94 |
+
# Create the ForecastDFDataset
|
95 |
+
dataset = ForecastDFDataset(dataframe_prep, **params)
|
96 |
+
|
97 |
+
|
98 |
+
return dataset
|
99 |
+
|
100 |
+
|
101 |
+
def finetune(train_df, valid_df, learning_rate,num_epochs,batch_size, OUT_DIR, context_length=CONTEXT_LENGTH, forecast_length=PREDICTION_LENGTH):
|
102 |
+
finetune_forecast_args = TrainingArguments(
|
103 |
+
output_dir=os.path.join(OUT_DIR, "output"),
|
104 |
+
overwrite_output_dir=True,
|
105 |
+
learning_rate=learning_rate,
|
106 |
+
num_train_epochs=num_epochs,
|
107 |
+
do_eval=True,
|
108 |
+
eval_strategy="epoch",
|
109 |
+
per_device_train_batch_size=batch_size,
|
110 |
+
per_device_eval_batch_size=batch_size,
|
111 |
+
dataloader_num_workers=8,
|
112 |
+
save_strategy="epoch",
|
113 |
+
logging_strategy="epoch",
|
114 |
+
save_total_limit=1,
|
115 |
+
logging_dir=os.path.join(OUT_DIR, "logs"), # Specify a logging directory
|
116 |
+
load_best_model_at_end=True, # Load the best model when training ends
|
117 |
+
metric_for_best_model="eval_loss", # Metric to monitor for early stopping
|
118 |
+
greater_is_better=False, # For loss
|
119 |
+
)
|
120 |
+
|
121 |
+
# Create the early stopping callback
|
122 |
+
early_stopping_callback = EarlyStoppingCallback(
|
123 |
+
early_stopping_patience=2, # Number of epochs with no improvement after which to stop
|
124 |
+
early_stopping_threshold=0.001, # Minimum improvement required to consider as improvement
|
125 |
+
)
|
126 |
+
tracking_callback = TrackingCallback()
|
127 |
+
|
128 |
+
column_specifiers = get_column_specs()
|
129 |
+
|
130 |
+
tsp = TimeSeriesPreprocessor(
|
131 |
+
timestamp_column=column_specifiers["timestamp_column"],
|
132 |
+
id_columns=column_specifiers["id_columns"],
|
133 |
+
target_columns=column_specifiers["target_columns"],
|
134 |
+
control_columns=column_specifiers["control_columns"],
|
135 |
+
context_length=context_length,
|
136 |
+
prediction_length=forecast_length,
|
137 |
+
scaling=False,
|
138 |
+
encode_categorical=False,
|
139 |
+
force_return="zeropad",
|
140 |
+
)
|
141 |
+
|
142 |
+
# Create datasets
|
143 |
+
print("Creating training dataset...")
|
144 |
+
train_dataset = create_dataset(
|
145 |
+
tsp,
|
146 |
+
dataframe=train_df,
|
147 |
+
train_df=train_df,
|
148 |
+
column_specs=column_specifiers,
|
149 |
+
context_length=context_length,
|
150 |
+
prediction_length=forecast_length
|
151 |
+
)
|
152 |
+
|
153 |
+
print("Creating validation dataset...")
|
154 |
+
valid_dataset = create_dataset(
|
155 |
+
tsp,
|
156 |
+
dataframe=valid_df,
|
157 |
+
train_df=train_df,
|
158 |
+
column_specs=column_specifiers,
|
159 |
+
context_length=context_length,
|
160 |
+
prediction_length=forecast_length
|
161 |
+
)
|
162 |
+
|
163 |
+
finetune_forecast_model = get_model(
|
164 |
+
TTM_MODEL_PATH,
|
165 |
+
context_length=context_length,
|
166 |
+
prediction_length=forecast_length,
|
167 |
+
num_input_channels=tsp.num_input_channels,
|
168 |
+
decoder_mode="mix_channel", # ch_mix: set to mix_channel for mixing channels in history
|
169 |
+
prediction_channel_indices=tsp.prediction_channel_indices,
|
170 |
+
)
|
171 |
+
|
172 |
+
# Optimizer and scheduler
|
173 |
+
optimizer = AdamW(finetune_forecast_model.parameters(), lr=learning_rate)
|
174 |
+
scheduler = OneCycleLR(
|
175 |
+
optimizer,
|
176 |
+
learning_rate,
|
177 |
+
epochs=num_epochs,
|
178 |
+
steps_per_epoch=math.ceil(len(train_dataset) / (batch_size)),
|
179 |
+
)
|
180 |
+
|
181 |
+
finetune_forecast_trainer = Trainer(
|
182 |
+
model=finetune_forecast_model,
|
183 |
+
args=finetune_forecast_args,
|
184 |
+
train_dataset=train_dataset,
|
185 |
+
eval_dataset=valid_dataset,
|
186 |
+
callbacks=[early_stopping_callback, tracking_callback],
|
187 |
+
optimizers=(optimizer, scheduler),
|
188 |
+
)
|
189 |
+
|
190 |
+
# Fine tune
|
191 |
+
finetune_forecast_trainer.train()
|
192 |
+
|
193 |
+
return finetune_forecast_trainer.model
|
194 |
+
|
195 |
+
def upload_to_hf(model):
|
196 |
+
model.save_pretrained("model/finetuned_ttm_model")
|
197 |
+
|
198 |
+
username = 'iaravagni'
|
199 |
+
repo_name = "ttm-finetuned-model" # customize this
|
200 |
+
|
201 |
+
upload_folder(
|
202 |
+
repo_id=f"{username}/{repo_name}",
|
203 |
+
folder_path="./model", # path to your trained model dir
|
204 |
+
path_in_repo="", # root of the repo
|
205 |
+
)
|
206 |
+
|
207 |
+
return
|
208 |
+
|
209 |
+
|
210 |
+
def main():
|
211 |
+
|
212 |
+
# Get dataset path
|
213 |
+
script_dir = os.path.dirname(os.path.abspath(__file__))
|
214 |
+
validation_file = os.path.join(script_dir, '..', 'data', 'processed', 'validation_dataset.csv')
|
215 |
+
train_file = os.path.join(script_dir, '..', 'data', 'processed', 'train_dataset.csv')
|
216 |
+
|
217 |
+
# Load and prepare data
|
218 |
+
validation_data = pd.read_csv(validation_file)
|
219 |
+
train_data = pd.read_csv(train_file)
|
220 |
+
|
221 |
+
# Load and prepare data
|
222 |
+
validation_data = pd.read_csv("/content/validation_dataset.csv")
|
223 |
+
train_data = pd.read_csv("/content/train_dataset.csv")
|
224 |
+
|
225 |
+
|
226 |
+
learning_rate = 0.002
|
227 |
+
num_epochs = 13
|
228 |
+
batch_size = 64
|
229 |
+
|
230 |
+
OUT_DIR = "model"
|
231 |
+
|
232 |
+
ttm_finetuned_model = finetune(train_data, validation_data, learning_rate,num_epochs,batch_size, OUT_DIR)
|
233 |
+
|
234 |
+
return
|
235 |
+
|
236 |
+
|
237 |
+
# Main entry point
|
238 |
+
if __name__ == '__main__':
|
239 |
+
main()
|
scripts/make_dataset.py
ADDED
@@ -0,0 +1,296 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import pandas as pd
|
2 |
+
import numpy as np
|
3 |
+
import json
|
4 |
+
import os
|
5 |
+
|
6 |
+
# Get the directory where the script is located
|
7 |
+
SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__))
|
8 |
+
|
9 |
+
def clean_blood_glucose_df(bg_df):
|
10 |
+
"""
|
11 |
+
Filter a blood glucose dataframe to keep only rows where Event Type is 'EGV' (Estimated Glucose Value).
|
12 |
+
|
13 |
+
Args:
|
14 |
+
bg_df (pd.DataFrame): DataFrame containing blood glucose data
|
15 |
+
|
16 |
+
Returns:
|
17 |
+
pd.DataFrame: Filtered DataFrame with only EGV events
|
18 |
+
"""
|
19 |
+
# Filter the rows where Event Type is 'EGV'
|
20 |
+
bg_df = bg_df[bg_df['Event Type'] == 'EGV']
|
21 |
+
return bg_df
|
22 |
+
|
23 |
+
def get_accelerometer_values(acc_df, time_series_df, window_size='1h'):
|
24 |
+
"""
|
25 |
+
Calculate accelerometer magnitude values and add them to the time series dataframe.
|
26 |
+
Uses a weighted average where more recent values have higher weight.
|
27 |
+
|
28 |
+
Args:
|
29 |
+
acc_df (pd.DataFrame): DataFrame containing accelerometer data
|
30 |
+
time_series_df (pd.DataFrame): DataFrame to add accelerometer values to
|
31 |
+
window_size (str, optional): Time window to consider for calculations. Defaults to '1h'.
|
32 |
+
|
33 |
+
Returns:
|
34 |
+
pd.DataFrame: Original DataFrame with added accelerometer magnitude values
|
35 |
+
"""
|
36 |
+
# Calculate magnitude for accelerometer data
|
37 |
+
acc_df['Magnitude'] = np.sqrt(acc_df[' acc_x']**2 + acc_df[' acc_y']**2 + acc_df[' acc_z']**2).round(2)
|
38 |
+
acc_df['Magnitude'] = pd.to_numeric(acc_df['Magnitude'], errors='coerce')
|
39 |
+
|
40 |
+
weighted_avgs = []
|
41 |
+
window_timedelta = pd.Timedelta(window_size)
|
42 |
+
|
43 |
+
for ts in time_series_df['Timestamp']:
|
44 |
+
# Select only accelerometer data within the time window
|
45 |
+
relevant_acc = acc_df[(acc_df['Timestamp'] >= ts - window_timedelta) & (acc_df['Timestamp'] <= ts)]
|
46 |
+
|
47 |
+
if not relevant_acc.empty:
|
48 |
+
# Compute weighted average: more recent values have higher weight
|
49 |
+
time_diffs = (ts - relevant_acc['Timestamp']).dt.total_seconds()
|
50 |
+
weights = 1 / (time_diffs + 1) # Avoid division by zero
|
51 |
+
weighted_avg = ((relevant_acc['Magnitude'] * weights).sum() / weights.sum()).round(2)
|
52 |
+
else:
|
53 |
+
weighted_avg = 0
|
54 |
+
|
55 |
+
weighted_avgs.append(weighted_avg)
|
56 |
+
|
57 |
+
|
58 |
+
time_series_df['Accelerometer'] = weighted_avgs
|
59 |
+
|
60 |
+
return time_series_df
|
61 |
+
|
62 |
+
def get_food_values(food_df, time_series_df, window_size='1h'):
|
63 |
+
"""
|
64 |
+
Calculate food metrics (calories, carbs, sugar) for each timestamp in the time series dataframe.
|
65 |
+
|
66 |
+
Args:
|
67 |
+
food_df (pd.DataFrame): DataFrame containing food log data
|
68 |
+
time_series_df (pd.DataFrame): DataFrame to add food metrics to
|
69 |
+
window_size (str, optional): Time window to consider for calculations. Defaults to '1h'.
|
70 |
+
|
71 |
+
Returns:
|
72 |
+
pd.DataFrame: Original DataFrame with added food metrics columns
|
73 |
+
"""
|
74 |
+
# Initialize arrays for food metrics
|
75 |
+
calories = []
|
76 |
+
carbs = []
|
77 |
+
sugar = []
|
78 |
+
|
79 |
+
window_timedelta = pd.Timedelta(window_size)
|
80 |
+
|
81 |
+
for ts in time_series_df['Timestamp']:
|
82 |
+
# Select only food data within the time window
|
83 |
+
food_in_window = food_df[(food_df['Timestamp'] >= ts - window_timedelta) &
|
84 |
+
(food_df['Timestamp'] <= ts)]
|
85 |
+
|
86 |
+
# Calculate cumulative values
|
87 |
+
if not food_in_window.empty:
|
88 |
+
calories.append(food_in_window['calorie'].sum())
|
89 |
+
carbs.append(food_in_window['total_carb'].sum())
|
90 |
+
sugar.append(food_in_window['sugar'].sum())
|
91 |
+
else:
|
92 |
+
calories.append(0.0)
|
93 |
+
carbs.append(0.0)
|
94 |
+
sugar.append(0.0)
|
95 |
+
|
96 |
+
# Add to time series dataframe
|
97 |
+
time_series_df['Calories'] = calories
|
98 |
+
time_series_df['Carbs'] = carbs
|
99 |
+
time_series_df['Sugar'] = sugar
|
100 |
+
|
101 |
+
return time_series_df
|
102 |
+
|
103 |
+
def calculate_age(born, as_of_date=pd.Timestamp('2019-01-01')):
|
104 |
+
"""
|
105 |
+
Calculate age based on date of birth.
|
106 |
+
|
107 |
+
Args:
|
108 |
+
born (str or timestamp): Date of birth
|
109 |
+
as_of_date (pd.Timestamp, optional): Reference date for age calculation.
|
110 |
+
Defaults to January 1, 2019.
|
111 |
+
|
112 |
+
Returns:
|
113 |
+
int: Age in years
|
114 |
+
"""
|
115 |
+
born = pd.Timestamp(born)
|
116 |
+
|
117 |
+
# Calculate age
|
118 |
+
age = as_of_date.year - born.year
|
119 |
+
|
120 |
+
return age
|
121 |
+
|
122 |
+
def split_train_test_patients(df, seed=42):
|
123 |
+
"""
|
124 |
+
Split dataset into training, validation, and test sets based on patient IDs.
|
125 |
+
|
126 |
+
Args:
|
127 |
+
df (pd.DataFrame): Combined dataset with patient_id column
|
128 |
+
seed (int, optional): Random seed for reproducibility. Defaults to 42.
|
129 |
+
|
130 |
+
Returns:
|
131 |
+
tuple: (training DataFrame, validation DataFrame, test DataFrame)
|
132 |
+
"""
|
133 |
+
np.random.seed(seed)
|
134 |
+
training_patients = np.random.choice(np.arange(1, 16), size=13, replace=False)
|
135 |
+
|
136 |
+
test_patients = np.setdiff1d(np.arange(1, 16), training_patients)
|
137 |
+
|
138 |
+
validation_patients = np.random.choice(training_patients, size=2, replace=False)
|
139 |
+
|
140 |
+
training_patients = np.setdiff1d(training_patients, validation_patients)
|
141 |
+
|
142 |
+
df_train = df[df['patient_id'].isin(training_patients)]
|
143 |
+
df_val = df[df['patient_id'].isin(validation_patients)]
|
144 |
+
df_test = df[df['patient_id'].isin(test_patients)]
|
145 |
+
|
146 |
+
return df_train, df_val, df_test
|
147 |
+
|
148 |
+
def create_features(bg_df, acc_df, food_df, gender, hba1c, add_patient_id = False):
|
149 |
+
"""
|
150 |
+
Process raw data and create a time series DataFrame with features from multiple sources.
|
151 |
+
|
152 |
+
Args:
|
153 |
+
bg_df (pd.DataFrame): Blood glucose data
|
154 |
+
acc_df (pd.DataFrame): Accelerometer data
|
155 |
+
food_df (pd.DataFrame): Food log data
|
156 |
+
gender (str): Patient gender
|
157 |
+
hba1c (float): Patient HbA1c value
|
158 |
+
|
159 |
+
Returns:
|
160 |
+
pd.DataFrame: Time series DataFrame with combined features
|
161 |
+
"""
|
162 |
+
# Clean and convert 'Timestamp' columns to datetime format
|
163 |
+
bg_df['Timestamp'] = pd.to_datetime(bg_df['Timestamp (YYYY-MM-DDThh:mm:ss)'], errors='coerce')
|
164 |
+
acc_df['Timestamp'] = pd.to_datetime(acc_df['datetime'], errors='coerce')
|
165 |
+
food_df['Timestamp'] = pd.to_datetime(food_df['time_begin'], errors='coerce')
|
166 |
+
|
167 |
+
# Sort values by date time
|
168 |
+
bg_df = bg_df.sort_values(by='Timestamp')
|
169 |
+
acc_df = acc_df.sort_values(by='Timestamp')
|
170 |
+
|
171 |
+
# Reset index and then find the row where 'Event Type' is 'DateOfBirth'
|
172 |
+
reset_df = bg_df.reset_index(drop=True)
|
173 |
+
patient_dob = reset_df[reset_df['Event Type'] == 'DateOfBirth']['Patient Info'].values[0]
|
174 |
+
|
175 |
+
patient_age = calculate_age(patient_dob)
|
176 |
+
|
177 |
+
bg_df = clean_blood_glucose_df(bg_df)
|
178 |
+
|
179 |
+
# Initialize a new DataFrame for the time series
|
180 |
+
time_series_df = pd.DataFrame(index=bg_df.index) # Use the glucose timestamps as the index
|
181 |
+
|
182 |
+
time_series_df[['Timestamp','Glucose']] = bg_df[['Timestamp','Glucose Value (mg/dL)']]
|
183 |
+
|
184 |
+
# time_series_df = get_acc_hr_values(acc_df, hr_df, time_series_df)
|
185 |
+
time_series_df = get_accelerometer_values(acc_df, time_series_df)
|
186 |
+
time_series_df = get_food_values(food_df, time_series_df)
|
187 |
+
|
188 |
+
time_series_df['Gender'] = np.where(gender == 'FEMALE', 1, 0)
|
189 |
+
time_series_df['HbA1c'] = hba1c
|
190 |
+
time_series_df['Age'] = patient_age
|
191 |
+
|
192 |
+
if add_patient_id:
|
193 |
+
time_series_df['patient_id'] = 0
|
194 |
+
|
195 |
+
return time_series_df
|
196 |
+
|
197 |
+
def create_dataframes():
|
198 |
+
"""
|
199 |
+
Create individual patient dataframes by processing raw data files.
|
200 |
+
|
201 |
+
Reads data for patients 1-16, processes it, and saves individual CSV files
|
202 |
+
for each patient in the processed/dataset_by_patient directory.
|
203 |
+
|
204 |
+
Returns:
|
205 |
+
None
|
206 |
+
"""
|
207 |
+
data_path = os.path.join(SCRIPT_DIR, "data", "raw", "big_ideas_dataset")
|
208 |
+
|
209 |
+
for i in range(1, 17):
|
210 |
+
patient = f"{i:03d}"
|
211 |
+
|
212 |
+
print("Patient"+str(i))
|
213 |
+
|
214 |
+
# Load files
|
215 |
+
bg_df = pd.read_csv(os.path.join(data_path, patient, f"Dexcom_{patient}.csv"))
|
216 |
+
acc_df = pd.read_csv(os.path.join(data_path, patient, f"ACC_{patient}.csv"))
|
217 |
+
food_df = pd.read_csv(os.path.join(data_path, patient, f"Food_Log_{patient}.csv"))
|
218 |
+
demographic_data = pd.read_csv(os.path.join(data_path, "Demographics.csv"))
|
219 |
+
|
220 |
+
patient_demographics = demographic_data[demographic_data['ID'] == i]
|
221 |
+
|
222 |
+
gender = patient_demographics['Gender'].values[0] # Assuming you want the first value
|
223 |
+
|
224 |
+
hba1c = patient_demographics['HbA1c'].values[0]
|
225 |
+
|
226 |
+
time_series_df = create_features(bg_df, acc_df, food_df, gender, hba1c)
|
227 |
+
|
228 |
+
output_dir = os.path.join(SCRIPT_DIR, "data", "processed", "dataset_by_patient")
|
229 |
+
# Create directory if it doesn't exist
|
230 |
+
os.makedirs(output_dir, exist_ok=True)
|
231 |
+
|
232 |
+
output_path = os.path.join(output_dir, f"patient_{patient}.csv")
|
233 |
+
time_series_df.to_csv(output_path)
|
234 |
+
|
235 |
+
return
|
236 |
+
|
237 |
+
def combine_dataframes():
|
238 |
+
"""
|
239 |
+
Combine individual patient dataframes into a single dataset and create
|
240 |
+
train/validation/test splits.
|
241 |
+
|
242 |
+
Reads the individual patient CSV files, combines them, and creates
|
243 |
+
split datasets based on patient IDs for train, validation, and test sets.
|
244 |
+
|
245 |
+
Returns:
|
246 |
+
None
|
247 |
+
"""
|
248 |
+
data_path = os.path.join(SCRIPT_DIR, "data", "processed", "dataset_by_patient")
|
249 |
+
combined_df = pd.DataFrame()
|
250 |
+
|
251 |
+
for i in range(1, 17):
|
252 |
+
patient = f"{i:03d}"
|
253 |
+
|
254 |
+
print(f"Patient {i}")
|
255 |
+
|
256 |
+
current_df = pd.read_csv(os.path.join(data_path, f"patient_{patient}.csv"))
|
257 |
+
|
258 |
+
current_df["patient_id"] = i
|
259 |
+
|
260 |
+
combined_df = pd.concat([combined_df, current_df], ignore_index=True)
|
261 |
+
|
262 |
+
combined_df = combined_df.iloc[:, 1:]
|
263 |
+
|
264 |
+
df_train, df_val, df_test = split_train_test_patients(combined_df)
|
265 |
+
|
266 |
+
output_path = os.path.join(SCRIPT_DIR, "data", "processed")
|
267 |
+
# Create directory if it doesn't exist
|
268 |
+
os.makedirs(output_path, exist_ok=True)
|
269 |
+
|
270 |
+
combined_df.to_csv(os.path.join(output_path, "combined_dataset.csv"))
|
271 |
+
df_train.to_csv(os.path.join(output_path, "train_dataset.csv"))
|
272 |
+
df_val.to_csv(os.path.join(output_path, "validation_dataset.csv"))
|
273 |
+
df_test.to_csv(os.path.join(output_path, "test_dataset.csv"))
|
274 |
+
|
275 |
+
return
|
276 |
+
|
277 |
+
def main():
|
278 |
+
"""
|
279 |
+
Main function to run the dataset creation pipeline.
|
280 |
+
|
281 |
+
Executes the full data processing workflow:
|
282 |
+
1. Creates individual patient dataframes
|
283 |
+
2. Combines them into a single dataset
|
284 |
+
3. Creates train/validation/test splits
|
285 |
+
|
286 |
+
Returns:
|
287 |
+
None
|
288 |
+
"""
|
289 |
+
print("Running make_dataset script...")
|
290 |
+
create_dataframes()
|
291 |
+
combine_dataframes()
|
292 |
+
|
293 |
+
return
|
294 |
+
|
295 |
+
if __name__ == '__main__':
|
296 |
+
main()
|
scripts/metrics.py
ADDED
@@ -0,0 +1,74 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import pandas as pd
|
2 |
+
import os
|
3 |
+
from sklearn.metrics import root_mean_squared_error
|
4 |
+
import numpy as np
|
5 |
+
|
6 |
+
SEED = 42
|
7 |
+
TTM_MODEL_PATH = "iaravagni/ttm-finetune-model"
|
8 |
+
CONTEXT_LENGTH = 52 # 4.33 hrs
|
9 |
+
PREDICTION_LENGTH = 6 # 30 mins
|
10 |
+
|
11 |
+
def main():
|
12 |
+
"""
|
13 |
+
Main function to execute the metrics for the three approaches.
|
14 |
+
"""
|
15 |
+
# Get dataset path
|
16 |
+
script_dir = os.path.dirname(os.path.abspath(__file__))
|
17 |
+
naive_pred_path = os.path.join(script_dir, '..', 'data', 'outputs', 'naive_predictions.csv')
|
18 |
+
ml_pred_path = os.path.join(script_dir, '..', 'data', 'outputs', 'ml_predictions.csv')
|
19 |
+
dl_pred_path = os.path.join(script_dir, '..', 'data', 'outputs', 'dl_predictions.csv')
|
20 |
+
|
21 |
+
# Load and prepare data
|
22 |
+
naive_pred_df = pd.read_csv(naive_pred_path)
|
23 |
+
ml_pred_df = pd.read_csv(ml_pred_path)
|
24 |
+
dl_pred_df = pd.read_csv(dl_pred_path)
|
25 |
+
|
26 |
+
y_true = naive_pred_df[['Glucose', 'patient_id']]
|
27 |
+
naive_pred = naive_pred_df['averaged_prediction']
|
28 |
+
ml_pred = ml_pred_df['averaged_prediction']
|
29 |
+
dl_pred = dl_pred_df['averaged_prediction']
|
30 |
+
|
31 |
+
rmse_list = []
|
32 |
+
|
33 |
+
for patient in y_true['patient_id'].unique():
|
34 |
+
patient_mask = y_true['patient_id'] == patient
|
35 |
+
|
36 |
+
y_true_patient = y_true[patient_mask].reset_index(drop=True)
|
37 |
+
naive_pred_patient = naive_pred[patient_mask].reset_index(drop=True)
|
38 |
+
ml_pred_patient = ml_pred[patient_mask].reset_index(drop=True)
|
39 |
+
dl_pred_patient = dl_pred[patient_mask].reset_index(drop=True)
|
40 |
+
|
41 |
+
y_true_aux = y_true_patient['Glucose'][CONTEXT_LENGTH:].reset_index(drop=True)
|
42 |
+
naive_pred_aux = naive_pred_patient[CONTEXT_LENGTH:].reset_index(drop=True)
|
43 |
+
ml_pred_aux = ml_pred_patient[CONTEXT_LENGTH:].reset_index(drop=True)
|
44 |
+
dl_pred_aux = dl_pred_patient[CONTEXT_LENGTH:].reset_index(drop=True)
|
45 |
+
|
46 |
+
rmse_naive = np.sqrt(root_mean_squared_error(y_true_aux, naive_pred_aux))
|
47 |
+
rmse_ml = np.sqrt(root_mean_squared_error(y_true_aux, ml_pred_aux))
|
48 |
+
rmse_dl = np.sqrt(root_mean_squared_error(y_true_aux, dl_pred_aux))
|
49 |
+
|
50 |
+
rmse_list.append([rmse_naive, rmse_ml, rmse_dl])
|
51 |
+
|
52 |
+
model_names = ['Naive', 'ML', 'DL']
|
53 |
+
rmse_array = np.array(rmse_list)
|
54 |
+
|
55 |
+
print("Average RMSEs:")
|
56 |
+
for name, avg in zip(model_names, rmse_array.mean(axis=0)):
|
57 |
+
print(f" {name}: {avg:.4f}")
|
58 |
+
|
59 |
+
print("\nHighest and Lowest RMSE per model:")
|
60 |
+
for i, model in enumerate(model_names):
|
61 |
+
max_val = np.max(rmse_array[:, i])
|
62 |
+
min_val = np.min(rmse_array[:, i])
|
63 |
+
max_patient = y_true['patient_id'].unique()[np.argmax(rmse_array[:, i])]
|
64 |
+
min_patient = y_true['patient_id'].unique()[np.argmin(rmse_array[:, i])]
|
65 |
+
|
66 |
+
print(f" {model}:")
|
67 |
+
print(f" Highest RMSE = {max_val:.4f} (Patient {max_patient})")
|
68 |
+
print(f" Lowest RMSE = {min_val:.4f} (Patient {min_patient})")
|
69 |
+
|
70 |
+
return
|
71 |
+
|
72 |
+
if __name__ == "__main__":
|
73 |
+
main()
|
74 |
+
|
scripts/ml_approach.py
ADDED
@@ -0,0 +1,183 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import os
|
2 |
+
import pandas as pd
|
3 |
+
import numpy as np
|
4 |
+
import xgboost as xgb
|
5 |
+
from sklearn.metrics import root_mean_squared_error
|
6 |
+
import joblib
|
7 |
+
|
8 |
+
|
9 |
+
# Constants for window sizes
|
10 |
+
X_WINDOW_SIZE = 52
|
11 |
+
Y_WINDOW_SIZE = 30 // 5
|
12 |
+
|
13 |
+
def format_dataset(df, X_window_size, y_window_size):
|
14 |
+
"""
|
15 |
+
Format the dataset by applying sliding window technique to the dataframe and prepare the input features and labels.
|
16 |
+
"""
|
17 |
+
X_list, y_list = [], []
|
18 |
+
|
19 |
+
for patient in df['patient_id'].unique():
|
20 |
+
df_i = df[df['patient_id'] == patient]
|
21 |
+
|
22 |
+
# Sliding window view to generate features and labels
|
23 |
+
X_i = np.lib.stride_tricks.sliding_window_view(df_i.values, (X_window_size, df_i.shape[1]))
|
24 |
+
y_i = np.lib.stride_tricks.sliding_window_view(df_i.values, (y_window_size, df_i.shape[1]))
|
25 |
+
|
26 |
+
X_i = X_i[:-y_window_size]
|
27 |
+
y_i = y_i[X_window_size:]
|
28 |
+
|
29 |
+
X_list.append(X_i)
|
30 |
+
y_list.append(y_i)
|
31 |
+
|
32 |
+
X_matrix = np.concatenate(X_list, axis=0)
|
33 |
+
y_matrix = np.concatenate(y_list, axis=0)
|
34 |
+
|
35 |
+
# Reshaping and cleaning up the matrices
|
36 |
+
X_matrix = X_matrix.reshape(X_matrix.shape[0], X_matrix.shape[2], X_matrix.shape[3])
|
37 |
+
y_matrix = y_matrix.reshape(y_matrix.shape[0], y_matrix.shape[2], y_matrix.shape[3])
|
38 |
+
|
39 |
+
# Drop unnecessary columns (timestamp and patient_id)
|
40 |
+
X_matrix = X_matrix[:,:,2:-1]
|
41 |
+
y_matrix = y_matrix[:,:,2]
|
42 |
+
|
43 |
+
# Flatten X and y for XGBoost input
|
44 |
+
X_flat = X_matrix.reshape(X_matrix.shape[0], -1)
|
45 |
+
y_flat = y_matrix.reshape(y_matrix.shape[0], -1)
|
46 |
+
|
47 |
+
return X_flat, y_flat
|
48 |
+
|
49 |
+
# Function to train the model
|
50 |
+
def train_model(model, X_train, y_train):
|
51 |
+
"""
|
52 |
+
Train the given model with the training data.
|
53 |
+
"""
|
54 |
+
model.fit(X_train, y_train)
|
55 |
+
return model
|
56 |
+
|
57 |
+
# Function to evaluate the model
|
58 |
+
def evaluate_model(y_true, y_pred, dataset_name="Validation"):
|
59 |
+
"""
|
60 |
+
Evaluate model performance on the provided dataset.
|
61 |
+
"""
|
62 |
+
rmse = root_mean_squared_error(y_true, y_pred)
|
63 |
+
print(f'Root Mean Squared Error on {dataset_name} Data: {rmse:.4f}')
|
64 |
+
|
65 |
+
def simple_diagonal_averaging(predictions_df, test_data, context_length, step_columns):
|
66 |
+
"""
|
67 |
+
Simple approach to diagonally averaging predictions by patient.
|
68 |
+
Skips the first context_length rows and averages the rest for each timestamp.
|
69 |
+
|
70 |
+
Args:
|
71 |
+
predictions_df (pd.DataFrame): DataFrame with step-wise predictions
|
72 |
+
test_data (pd.DataFrame): Original test data with patient IDs
|
73 |
+
context_length (int): Number of context steps used in the model
|
74 |
+
step_columns (list): List of step column names
|
75 |
+
|
76 |
+
Returns:
|
77 |
+
pd.DataFrame: DataFrame with averaged predictions
|
78 |
+
"""
|
79 |
+
# Create a new dataframe for the final results
|
80 |
+
final_df = test_data.copy()
|
81 |
+
|
82 |
+
# Initialize prediction column with zeros/NaN
|
83 |
+
final_df['averaged_prediction'] = 0
|
84 |
+
|
85 |
+
# Process each patient separately
|
86 |
+
for patient_id in test_data['patient_id'].unique():
|
87 |
+
# Get indices for this patient
|
88 |
+
patient_mask = final_df['patient_id'] == patient_id
|
89 |
+
patient_indices = final_df[patient_mask].index
|
90 |
+
|
91 |
+
# Skip the first context_length rows for this patient
|
92 |
+
start_idx = min(context_length, len(patient_indices))
|
93 |
+
|
94 |
+
# For each row after the context window
|
95 |
+
for i in range(start_idx, len(patient_indices)):
|
96 |
+
row_idx = patient_indices[i]
|
97 |
+
pred_row_idx = i - context_length
|
98 |
+
|
99 |
+
# Skip if the prediction row index is negative
|
100 |
+
if pred_row_idx < 0:
|
101 |
+
continue
|
102 |
+
|
103 |
+
# Get the corresponding prediction row
|
104 |
+
if pred_row_idx < len(predictions_df):
|
105 |
+
# Average the predictions for all steps
|
106 |
+
avg_prediction = predictions_df.iloc[pred_row_idx][step_columns].mean()
|
107 |
+
final_df.loc[row_idx, 'averaged_prediction'] = avg_prediction
|
108 |
+
|
109 |
+
return final_df
|
110 |
+
|
111 |
+
def main():
|
112 |
+
print("Running machine_learning_approach script...")
|
113 |
+
|
114 |
+
script_dir = os.path.dirname(os.path.abspath(__file__))
|
115 |
+
test_file = os.path.join(script_dir, '..', 'data', 'processed', 'test_dataset.csv')
|
116 |
+
train_file = os.path.join(script_dir, '..', 'data', 'processed', 'train_dataset.csv')
|
117 |
+
validation_file = os.path.join(script_dir, '..', 'data', 'processed', 'validation_dataset.csv')
|
118 |
+
|
119 |
+
# Load datasets
|
120 |
+
df_train = pd.read_csv(train_file)
|
121 |
+
df_validation = pd.read_csv(validation_file)
|
122 |
+
df_test = pd.read_csv(test_file)
|
123 |
+
|
124 |
+
# Format datasets
|
125 |
+
X_train, y_train = format_dataset(df_train, X_WINDOW_SIZE, Y_WINDOW_SIZE)
|
126 |
+
X_val, y_val = format_dataset(df_validation, X_WINDOW_SIZE, Y_WINDOW_SIZE)
|
127 |
+
X_test, y_test = format_dataset(df_test, X_WINDOW_SIZE, Y_WINDOW_SIZE)
|
128 |
+
|
129 |
+
# Initialize the model
|
130 |
+
xgb_model = xgb.XGBRegressor(
|
131 |
+
n_estimators=50,
|
132 |
+
learning_rate=0.2,
|
133 |
+
max_depth=5,
|
134 |
+
objective='reg:squarederror',
|
135 |
+
random_state=42
|
136 |
+
)
|
137 |
+
|
138 |
+
# Train model on the training dataset
|
139 |
+
xgb_model = train_model(xgb_model, X_train, y_train)
|
140 |
+
|
141 |
+
y_val_pred = xgb_model.predict(X_val)
|
142 |
+
|
143 |
+
# Evaluate on the validation set
|
144 |
+
evaluate_model(y_val, y_val_pred, "Validation")
|
145 |
+
|
146 |
+
# Re-train on the combined training and validation dataset
|
147 |
+
X_train_complete = np.concatenate((X_train, X_val), axis=0)
|
148 |
+
y_train_complete = np.concatenate((y_train, y_val), axis=0)
|
149 |
+
xgb_model = train_model(xgb_model, X_train_complete, y_train_complete)
|
150 |
+
|
151 |
+
model_output_path = os.path.join(script_dir, '..', 'models', 'xgb_model.pkl')
|
152 |
+
joblib.dump(xgb_model, model_output_path)
|
153 |
+
|
154 |
+
xgb_model = joblib.load(model_output_path)
|
155 |
+
|
156 |
+
y_test_pred = xgb_model.predict(X_test)
|
157 |
+
|
158 |
+
# Evaluate on the test set
|
159 |
+
evaluate_model(y_test, y_test_pred, "Test")
|
160 |
+
|
161 |
+
output_dir = os.path.join(script_dir, '..', 'data', 'outputs', 'ml_predictions_raw.csv')
|
162 |
+
|
163 |
+
# Save test set results
|
164 |
+
pd.DataFrame(y_test_pred).to_csv(output_dir)
|
165 |
+
|
166 |
+
final_results = simple_diagonal_averaging(
|
167 |
+
pd.DataFrame(y_test_pred),
|
168 |
+
df_test,
|
169 |
+
X_WINDOW_SIZE,
|
170 |
+
pd.DataFrame(y_test_pred).columns
|
171 |
+
)
|
172 |
+
|
173 |
+
# Save final results to CSV
|
174 |
+
final_results_path = os.path.join(script_dir, '..', 'data', 'outputs', 'ml_predictions.csv')
|
175 |
+
final_results.to_csv(final_results_path, index=False)
|
176 |
+
|
177 |
+
return
|
178 |
+
|
179 |
+
|
180 |
+
|
181 |
+
# Main entry point
|
182 |
+
if __name__ == '__main__':
|
183 |
+
main()
|
scripts/naive_approach.py
ADDED
@@ -0,0 +1,356 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import os
|
2 |
+
import tempfile
|
3 |
+
import pandas as pd
|
4 |
+
import warnings
|
5 |
+
import torch
|
6 |
+
import numpy as np
|
7 |
+
from transformers import Trainer, TrainingArguments, set_seed
|
8 |
+
|
9 |
+
from tsfm_public import TimeSeriesPreprocessor
|
10 |
+
from tsfm_public.models.tinytimemixer import TinyTimeMixerForPrediction
|
11 |
+
from tsfm_public.toolkit.get_model import get_model
|
12 |
+
from tsfm_public.toolkit.dataset import ForecastDFDataset
|
13 |
+
|
14 |
+
# Constants
|
15 |
+
SEED = 42
|
16 |
+
TTM_MODEL_PATH = "ibm-granite/granite-timeseries-ttm-r2"
|
17 |
+
CONTEXT_LENGTH = 52 # 4.33 hrs
|
18 |
+
PREDICTION_LENGTH = 6 # 30 mins
|
19 |
+
OUT_DIR = "ttm_finetuned_models/"
|
20 |
+
|
21 |
+
def setup_environment():
|
22 |
+
"""
|
23 |
+
Set up the environment for model training and evaluation.
|
24 |
+
Creates necessary directories and sets random seed for reproducibility.
|
25 |
+
"""
|
26 |
+
set_seed(SEED)
|
27 |
+
os.makedirs(OUT_DIR, exist_ok=True)
|
28 |
+
os.makedirs(os.path.join(OUT_DIR, 'results'), exist_ok=True)
|
29 |
+
|
30 |
+
def load_dataset(file_path):
|
31 |
+
"""
|
32 |
+
Load the dataset from the specified file path.
|
33 |
+
|
34 |
+
Args:
|
35 |
+
file_path (str): Path to the dataset CSV file
|
36 |
+
|
37 |
+
Returns:
|
38 |
+
pd.DataFrame: The loaded dataset
|
39 |
+
"""
|
40 |
+
return pd.read_csv(file_path)
|
41 |
+
|
42 |
+
def prepare_data(data, timestamp_column):
|
43 |
+
"""
|
44 |
+
Prepare the dataset by converting timestamp column to datetime format.
|
45 |
+
|
46 |
+
Args:
|
47 |
+
data (pd.DataFrame): The dataset
|
48 |
+
timestamp_column (str): Name of the timestamp column
|
49 |
+
|
50 |
+
Returns:
|
51 |
+
pd.DataFrame: The processed dataset
|
52 |
+
"""
|
53 |
+
data[timestamp_column] = pd.to_datetime(data[timestamp_column])
|
54 |
+
return data
|
55 |
+
|
56 |
+
def get_column_specs():
|
57 |
+
"""
|
58 |
+
Define and return column specifications for the dataset.
|
59 |
+
|
60 |
+
Returns:
|
61 |
+
dict: Column specifications including timestamp, ID, target, and control columns
|
62 |
+
"""
|
63 |
+
timestamp_column = "Timestamp"
|
64 |
+
id_columns = ["patient_id"]
|
65 |
+
target_columns = ["Glucose"]
|
66 |
+
control_columns = ["Accelerometer", "Calories", "Carbs", "Sugar", "Gender", "HbA1c", "Age"]
|
67 |
+
|
68 |
+
return {
|
69 |
+
"timestamp_column": timestamp_column,
|
70 |
+
"id_columns": id_columns,
|
71 |
+
"target_columns": target_columns,
|
72 |
+
"control_columns": control_columns,
|
73 |
+
}
|
74 |
+
|
75 |
+
def create_test_only_dataset(ts_preprocessor, test_dataset, train_dataset=None, stride=1, enable_padding=True, **dataset_kwargs):
|
76 |
+
"""
|
77 |
+
Creates a preprocessed pytorch dataset for testing only.
|
78 |
+
|
79 |
+
Args:
|
80 |
+
ts_preprocessor: TimeSeriesPreprocessor instance
|
81 |
+
test_dataset: Pandas dataframe for testing
|
82 |
+
train_dataset: Optional pandas dataframe for training the scaler
|
83 |
+
stride: Stride used for creating the dataset
|
84 |
+
enable_padding: If True, datasets are created with padding
|
85 |
+
dataset_kwargs: Additional keyword arguments to pass to ForecastDFDataset
|
86 |
+
|
87 |
+
Returns:
|
88 |
+
ForecastDFDataset for testing
|
89 |
+
"""
|
90 |
+
# Standardize the test dataframe
|
91 |
+
test_data = ts_preprocessor._standardize_dataframe(test_dataset)
|
92 |
+
|
93 |
+
# Train the preprocessor on the training data if provided, otherwise use test data
|
94 |
+
if train_dataset is not None:
|
95 |
+
train_data = ts_preprocessor._standardize_dataframe(train_dataset)
|
96 |
+
ts_preprocessor.train(train_data)
|
97 |
+
else:
|
98 |
+
ts_preprocessor.train(test_data)
|
99 |
+
|
100 |
+
# Preprocess the test data
|
101 |
+
test_data_prep = test_data.copy() # Skip preprocessing to avoid scaling errors
|
102 |
+
|
103 |
+
# Specify columns
|
104 |
+
column_specifiers = {
|
105 |
+
"id_columns": ts_preprocessor.id_columns,
|
106 |
+
"timestamp_column": ts_preprocessor.timestamp_column,
|
107 |
+
"target_columns": ts_preprocessor.target_columns,
|
108 |
+
"observable_columns": ts_preprocessor.observable_columns,
|
109 |
+
"control_columns": ts_preprocessor.control_columns,
|
110 |
+
"conditional_columns": ts_preprocessor.conditional_columns,
|
111 |
+
"categorical_columns": ts_preprocessor.categorical_columns,
|
112 |
+
"static_categorical_columns": ts_preprocessor.static_categorical_columns,
|
113 |
+
}
|
114 |
+
|
115 |
+
params = column_specifiers
|
116 |
+
params["context_length"] = ts_preprocessor.context_length
|
117 |
+
params["prediction_length"] = ts_preprocessor.prediction_length
|
118 |
+
params["stride"] = stride
|
119 |
+
params["enable_padding"] = enable_padding
|
120 |
+
|
121 |
+
# Add frequency token - this is critical for TinyTimeMixer
|
122 |
+
params["frequency_token"] = ts_preprocessor.get_frequency_token(ts_preprocessor.freq)
|
123 |
+
|
124 |
+
# Update with any additional kwargs
|
125 |
+
params.update(**dataset_kwargs)
|
126 |
+
|
127 |
+
# Create the ForecastDFDataset
|
128 |
+
test_dataset = ForecastDFDataset(test_data_prep, **params)
|
129 |
+
|
130 |
+
if len(test_dataset) == 0:
|
131 |
+
raise RuntimeError("The generated test dataset is of zero length.")
|
132 |
+
|
133 |
+
return test_dataset
|
134 |
+
|
135 |
+
|
136 |
+
|
137 |
+
def zeroshot_eval(train_df, test_df, batch_size, context_length=CONTEXT_LENGTH, forecast_length=PREDICTION_LENGTH, model_path=TTM_MODEL_PATH):
|
138 |
+
"""
|
139 |
+
Performs zero-shot evaluation of time series forecasting on test data.
|
140 |
+
|
141 |
+
Args:
|
142 |
+
train_df: Training dataframe
|
143 |
+
test_df: Testing dataframe
|
144 |
+
batch_size: Batch size for evaluation
|
145 |
+
context_length: Number of time steps to use as context
|
146 |
+
forecast_length: Number of time steps to predict
|
147 |
+
|
148 |
+
Returns:
|
149 |
+
dict: Dictionary containing predictions dataframe and metrics
|
150 |
+
"""
|
151 |
+
column_specifiers = get_column_specs()
|
152 |
+
|
153 |
+
# Create preprocessor with scaling disabled
|
154 |
+
tsp = TimeSeriesPreprocessor(
|
155 |
+
timestamp_column=column_specifiers["timestamp_column"],
|
156 |
+
id_columns=column_specifiers["id_columns"],
|
157 |
+
target_columns=column_specifiers["target_columns"],
|
158 |
+
control_columns=column_specifiers["control_columns"],
|
159 |
+
context_length=context_length,
|
160 |
+
prediction_length=forecast_length,
|
161 |
+
scaling=False,
|
162 |
+
encode_categorical=False,
|
163 |
+
force_return="zeropad",
|
164 |
+
)
|
165 |
+
|
166 |
+
# Load model
|
167 |
+
zeroshot_model = get_model(
|
168 |
+
model_path,
|
169 |
+
context_length=context_length,
|
170 |
+
prediction_length=forecast_length,
|
171 |
+
freq_prefix_tuning=False,
|
172 |
+
freq=None,
|
173 |
+
prefer_l1_loss=False,
|
174 |
+
prefer_longer_context=True,
|
175 |
+
)
|
176 |
+
|
177 |
+
# Create test dataset
|
178 |
+
dset_test = create_test_only_dataset(ts_preprocessor=tsp, test_dataset=test_df, train_dataset=train_df)
|
179 |
+
|
180 |
+
# Setup trainer
|
181 |
+
temp_dir = tempfile.mkdtemp()
|
182 |
+
zeroshot_trainer = Trainer(
|
183 |
+
model=zeroshot_model,
|
184 |
+
args=TrainingArguments(
|
185 |
+
output_dir=temp_dir,
|
186 |
+
per_device_eval_batch_size=batch_size,
|
187 |
+
seed=SEED,
|
188 |
+
report_to="none",
|
189 |
+
),
|
190 |
+
)
|
191 |
+
|
192 |
+
# Get predictions
|
193 |
+
predictions_dict = zeroshot_trainer.predict(dset_test)
|
194 |
+
|
195 |
+
# Process predictions
|
196 |
+
processed_predictions = process_predictions(predictions_dict, tsp, column_specifiers["target_columns"])
|
197 |
+
|
198 |
+
# Get evaluation metrics
|
199 |
+
metrics = zeroshot_trainer.evaluate(dset_test)
|
200 |
+
|
201 |
+
return {
|
202 |
+
"predictions_df": processed_predictions,
|
203 |
+
"metrics": metrics
|
204 |
+
}
|
205 |
+
|
206 |
+
def process_predictions(predictions_dict, tsp, target_columns):
|
207 |
+
"""
|
208 |
+
Process the predictions from the Trainer into a usable DataFrame.
|
209 |
+
|
210 |
+
Args:
|
211 |
+
predictions_dict: Predictions from the Trainer
|
212 |
+
tsp: TimeSeriesPreprocessor instance
|
213 |
+
target_columns: List of target column names
|
214 |
+
|
215 |
+
Returns:
|
216 |
+
pd.DataFrame: DataFrame containing processed predictions
|
217 |
+
"""
|
218 |
+
# Extract predictions
|
219 |
+
if hasattr(predictions_dict, 'predictions'):
|
220 |
+
raw_predictions = predictions_dict.predictions
|
221 |
+
else:
|
222 |
+
raw_predictions = predictions_dict.get('predictions', predictions_dict)
|
223 |
+
|
224 |
+
# Handle tuple predictions (mean and uncertainty)
|
225 |
+
if isinstance(raw_predictions, tuple):
|
226 |
+
predictions = raw_predictions[0]
|
227 |
+
else:
|
228 |
+
predictions = raw_predictions
|
229 |
+
|
230 |
+
# Get shape information
|
231 |
+
n_samples, n_timesteps, n_features = predictions.shape
|
232 |
+
|
233 |
+
# Create DataFrame for processed predictions
|
234 |
+
processed_df = pd.DataFrame()
|
235 |
+
|
236 |
+
# Extract predictions for each target and timestep
|
237 |
+
for i, col in enumerate(target_columns):
|
238 |
+
if i < n_features:
|
239 |
+
for t in range(n_timesteps):
|
240 |
+
processed_df[f"{col}_step_{t+1}"] = predictions[:, t, i]
|
241 |
+
|
242 |
+
return processed_df
|
243 |
+
|
244 |
+
def simple_diagonal_averaging(predictions_df, test_data, context_length, step_columns):
|
245 |
+
"""
|
246 |
+
Improved approach to diagonally averaging predictions by patient.
|
247 |
+
Properly handles the last rows of predictions to ensure all available
|
248 |
+
predicted values are used.
|
249 |
+
|
250 |
+
Args:
|
251 |
+
predictions_df (pd.DataFrame): DataFrame with step-wise predictions
|
252 |
+
test_data (pd.DataFrame): Original test data with patient IDs
|
253 |
+
context_length (int): Number of context steps used in the model
|
254 |
+
step_columns (list): List of step column names
|
255 |
+
|
256 |
+
Returns:
|
257 |
+
pd.DataFrame: DataFrame with averaged predictions
|
258 |
+
"""
|
259 |
+
# Create a new dataframe for the final results
|
260 |
+
final_df = test_data.copy()
|
261 |
+
|
262 |
+
# Initialize prediction column with zeros/NaN
|
263 |
+
final_df['averaged_prediction'] = 0
|
264 |
+
|
265 |
+
# Convert step_columns to list if it's not already
|
266 |
+
step_columns = list(step_columns)
|
267 |
+
|
268 |
+
# Process each patient separately
|
269 |
+
for patient_id in test_data['patient_id'].unique():
|
270 |
+
# Get indices for this patient
|
271 |
+
patient_mask = final_df['patient_id'] == patient_id
|
272 |
+
patient_indices = final_df[patient_mask].index
|
273 |
+
|
274 |
+
# Skip the first context_length rows for this patient
|
275 |
+
start_idx = min(context_length, len(patient_indices))
|
276 |
+
|
277 |
+
# For each row after the context window
|
278 |
+
for i in range(start_idx, len(patient_indices)):
|
279 |
+
row_idx = patient_indices[i]
|
280 |
+
pred_row_idx = i - context_length
|
281 |
+
|
282 |
+
# Skip if the prediction row index is negative
|
283 |
+
if pred_row_idx < 0:
|
284 |
+
continue
|
285 |
+
|
286 |
+
# Get the corresponding prediction row
|
287 |
+
if pred_row_idx < len(predictions_df):
|
288 |
+
# Average the predictions for all steps
|
289 |
+
avg_prediction = predictions_df.iloc[pred_row_idx][step_columns].mean()
|
290 |
+
final_df.loc[row_idx, 'averaged_prediction'] = avg_prediction
|
291 |
+
else:
|
292 |
+
# Handle the case where we've run out of prediction rows
|
293 |
+
# Calculate how many steps beyond the last prediction row we are
|
294 |
+
excess_steps = pred_row_idx - len(predictions_df) + 1
|
295 |
+
|
296 |
+
# Make sure we don't go beyond the available steps
|
297 |
+
if excess_steps < len(step_columns):
|
298 |
+
# Use the last row of predictions but only the appropriate steps
|
299 |
+
relevant_steps = step_columns[excess_steps:]
|
300 |
+
if len(relevant_steps) > 0: # Check if list is not empty
|
301 |
+
avg_prediction = predictions_df.iloc[-1][relevant_steps].mean()
|
302 |
+
final_df.loc[row_idx, 'averaged_prediction'] = avg_prediction
|
303 |
+
|
304 |
+
return final_df
|
305 |
+
|
306 |
+
def main():
|
307 |
+
"""
|
308 |
+
Main function to execute the time series forecasting workflow.
|
309 |
+
"""
|
310 |
+
# Setup
|
311 |
+
# setup_environment()
|
312 |
+
|
313 |
+
# Get dataset path
|
314 |
+
script_dir = os.path.dirname(os.path.abspath(__file__))
|
315 |
+
test_file = os.path.join(script_dir, '..', 'data', 'processed', 'test_dataset.csv')
|
316 |
+
train_file = os.path.join(script_dir, '..', 'data', 'processed', 'train_dataset.csv')
|
317 |
+
|
318 |
+
# Load and prepare data
|
319 |
+
test_data = load_dataset(test_file)
|
320 |
+
train_data = load_dataset(train_file)
|
321 |
+
column_specs = get_column_specs()
|
322 |
+
test_data = prepare_data(test_data, column_specs["timestamp_column"])
|
323 |
+
train_data = prepare_data(train_data, column_specs["timestamp_column"])
|
324 |
+
|
325 |
+
# Run zero-shot evaluation
|
326 |
+
results = zeroshot_eval(
|
327 |
+
train_df=train_data,
|
328 |
+
test_df=test_data,
|
329 |
+
batch_size=8,
|
330 |
+
context_length=CONTEXT_LENGTH,
|
331 |
+
forecast_length=PREDICTION_LENGTH
|
332 |
+
)
|
333 |
+
|
334 |
+
# Get all step columns
|
335 |
+
step_columns = [col for col in results["predictions_df"].columns if col.startswith("Glucose_step_")]
|
336 |
+
|
337 |
+
# Apply simple diagonal averaging by patient
|
338 |
+
final_results = simple_diagonal_averaging(
|
339 |
+
results["predictions_df"],
|
340 |
+
test_data,
|
341 |
+
CONTEXT_LENGTH,
|
342 |
+
step_columns
|
343 |
+
)
|
344 |
+
|
345 |
+
# Save raw predictions to CSV
|
346 |
+
raw_predictions_path = os.path.join(script_dir, '..', 'data', 'outputs', 'naive_predictions_raw.csv')
|
347 |
+
results["predictions_df"].to_csv(raw_predictions_path, index=False)
|
348 |
+
|
349 |
+
# Save final results to CSV
|
350 |
+
final_results_path = os.path.join(script_dir, '..', 'data', 'outputs', 'naive_predictions.csv')
|
351 |
+
final_results.to_csv(final_results_path, index=False)
|
352 |
+
|
353 |
+
return
|
354 |
+
|
355 |
+
if __name__ == "__main__":
|
356 |
+
main()
|
scripts/visualizations.py
ADDED
@@ -0,0 +1,25 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import pandas as pd
|
2 |
+
import numpy as np
|
3 |
+
import matplotlib.pyplot as plt
|
4 |
+
|
5 |
+
def plot_results(y_pred, y_true, df, sample_number):
|
6 |
+
"""
|
7 |
+
|
8 |
+
"""
|
9 |
+
|
10 |
+
row_number = 0
|
11 |
+
|
12 |
+
for patient in df['patient_id'].unique():
|
13 |
+
n_samples = df[df['patient_id'] == patient].shape[0]
|
14 |
+
|
15 |
+
time = np.arange(0, n_samples*5, 5)
|
16 |
+
|
17 |
+
# podria plotear el tramo anterior tambien
|
18 |
+
plt.plot(time, y_pred[row_number:row_number+n_samples], label = 'Prediction')
|
19 |
+
plt.plot(time, y_true[row_number:row_number+n_samples], label = 'Ground truth')
|
20 |
+
|
21 |
+
plt.xlabel("Time (minutes)")
|
22 |
+
plt.ylabel("Blood Glucose Level")
|
23 |
+
plt.title(f'Patient{patient}')
|
24 |
+
|
25 |
+
plt.show()
|