-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMimic interp-net data preprocessing
1 lines (1 loc) · 47.2 KB
/
Mimic interp-net data preprocessing
1
{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"name":"python","version":"3.10.14","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"},"kaggle":{"accelerator":"none","dataSources":[{"sourceId":9441706,"sourceType":"datasetVersion","datasetId":5737742}],"dockerImageVersionId":30761,"isInternetEnabled":true,"language":"python","sourceType":"notebook","isGpuEnabled":false}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"markdown","source":"# Mimic interp-net data preprocessing demo\n\nThe purpose of this note is to demo a preprocessing interp-net data. \n\n","metadata":{}},{"cell_type":"markdown","source":"## Load data from dataset\n\nAs a demo, only use some of the values in vitals_records, not all","metadata":{}},{"cell_type":"code","source":"import pickle\nimport copy\nimport numpy as np\n\nwith open('/kaggle/input/mimic-interp-net-data-demo/vitals_records_10000.p', 'rb') as file:\n vitals = pickle.load(file)\n#print(vitals[:1])\nwith open('/kaggle/input/mimic-interp-net-data-demo/adm_type_los_mortality.p', 'rb') as file:\n adm_info = pickle.load(file)\n#print(adm_info[:1])","metadata":{"execution":{"iopub.status.busy":"2024-09-20T15:36:25.549819Z","iopub.execute_input":"2024-09-20T15:36:25.550274Z","iopub.status.idle":"2024-09-20T15:36:30.157040Z","shell.execute_reply.started":"2024-09-20T15:36:25.550230Z","shell.execute_reply":"2024-09-20T15:36:30.155751Z"},"trusted":true},"execution_count":14,"outputs":[{"name":"stdout","text":"[[[(datetime.datetime(2187, 8, 13, 3, 0), 86.0), (datetime.datetime(2187, 8, 13, 4, 0), 96.0), (datetime.datetime(2187, 8, 13, 5, 0), 96.0), (datetime.datetime(2187, 8, 13, 6, 0), 98.0), (datetime.datetime(2187, 8, 13, 7, 0), 98.0), (datetime.datetime(2187, 8, 13, 8, 0), 93.0), (datetime.datetime(2187, 8, 13, 9, 0), 96.0), (datetime.datetime(2187, 8, 13, 10, 0), 94.0), (datetime.datetime(2187, 8, 13, 11, 0), 91.0), (datetime.datetime(2187, 8, 13, 12, 0), 96.0), (datetime.datetime(2187, 8, 13, 14, 0), 99.0), (datetime.datetime(2187, 8, 13, 15, 0), 99.0), (datetime.datetime(2187, 8, 13, 15, 20), 98.0), (datetime.datetime(2187, 8, 13, 16, 0), 95.0), (datetime.datetime(2187, 8, 13, 17, 0), 95.0), (datetime.datetime(2187, 8, 13, 19, 0), 99.0), (datetime.datetime(2187, 8, 13, 19, 15), 99.0), (datetime.datetime(2187, 8, 13, 20, 0), 99.0), (datetime.datetime(2187, 8, 13, 21, 0), 99.0), (datetime.datetime(2187, 8, 13, 22, 0), 96.0), (datetime.datetime(2187, 8, 13, 23, 0), 99.0), (datetime.datetime(2187, 8, 14, 0, 0), 99.0), (datetime.datetime(2187, 8, 14, 1, 0), 98.0), (datetime.datetime(2187, 8, 14, 2, 0), 95.0), (datetime.datetime(2187, 8, 14, 3, 0), 96.0), (datetime.datetime(2187, 8, 14, 4, 0), 92.0), (datetime.datetime(2187, 8, 14, 5, 0), 92.0), (datetime.datetime(2187, 8, 14, 6, 0), 94.0), (datetime.datetime(2187, 8, 14, 7, 0), 91.0), (datetime.datetime(2187, 8, 14, 8, 0), 94.0), (datetime.datetime(2187, 8, 14, 9, 0), 96.0), (datetime.datetime(2187, 8, 14, 10, 0), 96.0), (datetime.datetime(2187, 8, 14, 11, 0), 98.0), (datetime.datetime(2187, 8, 14, 12, 0), 95.0), (datetime.datetime(2187, 8, 14, 13, 0), 96.0), (datetime.datetime(2187, 8, 14, 14, 0), 95.0), (datetime.datetime(2187, 8, 14, 15, 0), 96.0), (datetime.datetime(2187, 8, 14, 16, 0), 94.0), (datetime.datetime(2187, 8, 14, 17, 0), 97.0), (datetime.datetime(2187, 8, 14, 19, 0), 95.0), (datetime.datetime(2187, 8, 14, 20, 0), 96.0), (datetime.datetime(2187, 8, 14, 21, 0), 99.0), (datetime.datetime(2187, 8, 14, 22, 0), 97.0), (datetime.datetime(2187, 8, 14, 23, 0), 98.0), (datetime.datetime(2187, 8, 15, 0, 0), 98.0), (datetime.datetime(2187, 8, 15, 1, 0), 98.0), (datetime.datetime(2187, 8, 15, 2, 0), 100.0), (datetime.datetime(2187, 8, 15, 2, 30), 97.0), (datetime.datetime(2187, 8, 15, 3, 0), 97.0), (datetime.datetime(2187, 8, 15, 4, 0), 96.0), (datetime.datetime(2187, 8, 15, 5, 0), 98.0), (datetime.datetime(2187, 8, 15, 6, 0), 99.0), (datetime.datetime(2187, 8, 15, 6, 17), 98.0), (datetime.datetime(2187, 8, 15, 7, 0), 95.0), (datetime.datetime(2187, 8, 15, 7, 30), 95.0), (datetime.datetime(2187, 8, 15, 8, 0), 96.0), (datetime.datetime(2187, 8, 15, 9, 0), 98.0), (datetime.datetime(2187, 8, 15, 10, 0), 91.0), (datetime.datetime(2187, 8, 15, 11, 0), 94.0), (datetime.datetime(2187, 8, 15, 12, 0), 95.0), (datetime.datetime(2187, 8, 15, 13, 0), 95.0), (datetime.datetime(2187, 8, 15, 14, 0), 94.0), (datetime.datetime(2187, 8, 15, 15, 0), 96.0), (datetime.datetime(2187, 8, 15, 16, 0), 95.0), (datetime.datetime(2187, 8, 15, 17, 0), 94.0), (datetime.datetime(2187, 8, 15, 18, 0), 95.0), (datetime.datetime(2187, 8, 15, 19, 0), 95.0), (datetime.datetime(2187, 8, 15, 20, 0), 97.0), (datetime.datetime(2187, 8, 15, 21, 0), 98.0), (datetime.datetime(2187, 8, 15, 22, 0), 95.0), (datetime.datetime(2187, 8, 15, 23, 0), 96.0), (datetime.datetime(2187, 8, 16, 0, 0), 98.0), (datetime.datetime(2187, 8, 16, 1, 0), 97.0), (datetime.datetime(2187, 8, 16, 2, 0), 98.0), (datetime.datetime(2187, 8, 16, 3, 0), 98.0), (datetime.datetime(2187, 8, 16, 4, 0), 98.0), (datetime.datetime(2187, 8, 16, 5, 0), 98.0), (datetime.datetime(2187, 8, 16, 6, 0), 100.0), (datetime.datetime(2187, 8, 16, 7, 0), 99.0), (datetime.datetime(2187, 8, 16, 8, 0), 91.0), (datetime.datetime(2187, 8, 16, 8, 30), 93.0), (datetime.datetime(2187, 8, 16, 9, 0), 92.0), (datetime.datetime(2187, 8, 16, 10, 0), 96.0), (datetime.datetime(2187, 8, 16, 11, 0), 95.0), (datetime.datetime(2187, 8, 16, 12, 0), 93.0), (datetime.datetime(2187, 8, 16, 13, 0), 97.0), (datetime.datetime(2187, 8, 16, 14, 0), 96.0), (datetime.datetime(2187, 8, 16, 15, 0), 96.0), (datetime.datetime(2187, 8, 16, 16, 0), 96.0), (datetime.datetime(2187, 8, 16, 17, 0), 94.0), (datetime.datetime(2187, 8, 16, 18, 0), 96.0), (datetime.datetime(2187, 8, 16, 19, 0), 95.0), (datetime.datetime(2187, 8, 16, 20, 0), 96.0), (datetime.datetime(2187, 8, 16, 21, 0), 97.0), (datetime.datetime(2187, 8, 16, 22, 0), 96.0), (datetime.datetime(2187, 8, 16, 23, 0), 97.0), (datetime.datetime(2187, 8, 17, 0, 0), 97.0), (datetime.datetime(2187, 8, 17, 1, 0), 97.0), (datetime.datetime(2187, 8, 17, 2, 0), 97.0), (datetime.datetime(2187, 8, 17, 3, 0), 98.0), (datetime.datetime(2187, 8, 17, 4, 0), 97.0), (datetime.datetime(2187, 8, 17, 5, 0), 98.0), (datetime.datetime(2187, 8, 17, 7, 0), 97.0), (datetime.datetime(2187, 8, 17, 8, 0), 94.0), (datetime.datetime(2187, 8, 17, 9, 0), 93.0), (datetime.datetime(2187, 8, 17, 10, 0), 93.0), (datetime.datetime(2187, 8, 17, 11, 0), 96.0), (datetime.datetime(2187, 8, 17, 12, 0), 99.0), (datetime.datetime(2187, 8, 17, 13, 0), 95.0), (datetime.datetime(2187, 8, 17, 14, 0), 98.0), (datetime.datetime(2187, 8, 17, 15, 0), 97.0), (datetime.datetime(2187, 8, 17, 16, 0), 96.0), (datetime.datetime(2187, 8, 17, 17, 0), 96.0), (datetime.datetime(2187, 8, 17, 18, 0), 96.0), (datetime.datetime(2187, 8, 17, 19, 0), 94.0), (datetime.datetime(2187, 8, 17, 20, 0), 94.0), (datetime.datetime(2187, 8, 17, 21, 0), 94.0), (datetime.datetime(2187, 8, 17, 22, 0), 95.0), (datetime.datetime(2187, 8, 17, 23, 0), 96.0), (datetime.datetime(2187, 8, 18, 0, 0), 96.0), (datetime.datetime(2187, 8, 18, 1, 0), 96.0), (datetime.datetime(2187, 8, 18, 2, 0), 94.0), (datetime.datetime(2187, 8, 18, 3, 0), 95.0), (datetime.datetime(2187, 8, 18, 4, 0), 93.0), (datetime.datetime(2187, 8, 18, 5, 0), 96.0), (datetime.datetime(2187, 8, 18, 7, 0), 98.0), (datetime.datetime(2187, 8, 18, 9, 0), 94.0), (datetime.datetime(2187, 8, 18, 11, 0), 95.0), (datetime.datetime(2187, 8, 18, 12, 0), 94.0), (datetime.datetime(2187, 8, 18, 13, 0), 97.0)], [(datetime.datetime(2187, 8, 13, 3, 0), 132.0), (datetime.datetime(2187, 8, 13, 4, 0), 132.0), (datetime.datetime(2187, 8, 13, 5, 0), 149.0), (datetime.datetime(2187, 8, 13, 6, 0), 153.0), (datetime.datetime(2187, 8, 13, 7, 0), 139.0), (datetime.datetime(2187, 8, 13, 8, 0), 144.0), (datetime.datetime(2187, 8, 13, 9, 0), 158.0), (datetime.datetime(2187, 8, 13, 10, 0), 127.0), (datetime.datetime(2187, 8, 13, 11, 0), 128.0), (datetime.datetime(2187, 8, 13, 12, 0), 118.0), (datetime.datetime(2187, 8, 13, 13, 0), 108.0), (datetime.datetime(2187, 8, 13, 14, 0), 99.0), (datetime.datetime(2187, 8, 13, 15, 0), 91.0), (datetime.datetime(2187, 8, 13, 16, 0), 94.0), (datetime.datetime(2187, 8, 13, 17, 0), 99.0), (datetime.datetime(2187, 8, 13, 19, 0), 96.0), (datetime.datetime(2187, 8, 13, 20, 0), 95.0), (datetime.datetime(2187, 8, 13, 21, 0), 91.0), (datetime.datetime(2187, 8, 13, 22, 0), 92.0), (datetime.datetime(2187, 8, 13, 23, 0), 103.0), (datetime.datetime(2187, 8, 14, 0, 0), 94.0), (datetime.datetime(2187, 8, 14, 1, 0), 90.0), (datetime.datetime(2187, 8, 14, 2, 0), 88.0), (datetime.datetime(2187, 8, 14, 3, 0), 87.0), (datetime.datetime(2187, 8, 14, 4, 0), 116.0), (datetime.datetime(2187, 8, 14, 5, 0), 113.0), (datetime.datetime(2187, 8, 14, 6, 0), 102.0), (datetime.datetime(2187, 8, 14, 7, 0), 117.0), (datetime.datetime(2187, 8, 14, 8, 0), 103.0), (datetime.datetime(2187, 8, 14, 9, 0), 94.0), (datetime.datetime(2187, 8, 14, 10, 0), 118.0), (datetime.datetime(2187, 8, 14, 11, 0), 126.0), (datetime.datetime(2187, 8, 14, 12, 0), 114.0), (datetime.datetime(2187, 8, 14, 13, 0), 109.0), (datetime.datetime(2187, 8, 14, 14, 0), 118.0), (datetime.datetime(2187, 8, 14, 15, 0), 119.0), (datetime.datetime(2187, 8, 14, 16, 0), 126.0), (datetime.datetime(2187, 8, 14, 17, 0), 116.0), (datetime.datetime(2187, 8, 14, 19, 0), 121.0), (datetime.datetime(2187, 8, 14, 20, 0), 103.0), (datetime.datetime(2187, 8, 14, 21, 0), 100.0), (datetime.datetime(2187, 8, 14, 22, 0), 99.0), (datetime.datetime(2187, 8, 14, 23, 0), 84.0), (datetime.datetime(2187, 8, 15, 0, 0), 100.0), (datetime.datetime(2187, 8, 15, 1, 0), 85.0), (datetime.datetime(2187, 8, 15, 2, 0), 105.0), (datetime.datetime(2187, 8, 15, 3, 0), 78.0), (datetime.datetime(2187, 8, 15, 4, 0), 79.0), (datetime.datetime(2187, 8, 15, 5, 0), 71.0), (datetime.datetime(2187, 8, 15, 6, 0), 62.0), (datetime.datetime(2187, 8, 15, 7, 0), 74.0), (datetime.datetime(2187, 8, 15, 8, 0), 81.0), (datetime.datetime(2187, 8, 15, 9, 0), 101.0), (datetime.datetime(2187, 8, 15, 10, 0), 116.0), (datetime.datetime(2187, 8, 15, 11, 0), 116.0), (datetime.datetime(2187, 8, 15, 12, 0), 121.0), (datetime.datetime(2187, 8, 15, 13, 0), 103.0), (datetime.datetime(2187, 8, 15, 14, 0), 101.0), (datetime.datetime(2187, 8, 15, 15, 0), 113.0), (datetime.datetime(2187, 8, 15, 16, 0), 112.0), (datetime.datetime(2187, 8, 15, 17, 0), 113.0), (datetime.datetime(2187, 8, 15, 18, 0), 105.0), (datetime.datetime(2187, 8, 15, 19, 0), 104.0), (datetime.datetime(2187, 8, 15, 20, 0), 99.0), (datetime.datetime(2187, 8, 15, 21, 0), 90.0), (datetime.datetime(2187, 8, 15, 22, 0), 82.0), (datetime.datetime(2187, 8, 15, 23, 0), 80.0), (datetime.datetime(2187, 8, 16, 0, 0), 80.0), (datetime.datetime(2187, 8, 16, 1, 0), 87.0), (datetime.datetime(2187, 8, 16, 2, 0), 70.0), (datetime.datetime(2187, 8, 16, 3, 0), 63.0), (datetime.datetime(2187, 8, 16, 4, 0), 63.0), (datetime.datetime(2187, 8, 16, 5, 0), 63.0), (datetime.datetime(2187, 8, 16, 6, 0), 55.0), (datetime.datetime(2187, 8, 16, 7, 0), 57.0), (datetime.datetime(2187, 8, 16, 8, 0), 87.0), (datetime.datetime(2187, 8, 16, 9, 0), 100.0), (datetime.datetime(2187, 8, 16, 10, 0), 74.0), (datetime.datetime(2187, 8, 16, 11, 0), 83.0), (datetime.datetime(2187, 8, 16, 12, 0), 109.0), (datetime.datetime(2187, 8, 16, 13, 0), 105.0), (datetime.datetime(2187, 8, 16, 14, 0), 106.0), (datetime.datetime(2187, 8, 16, 15, 0), 89.0), (datetime.datetime(2187, 8, 16, 16, 0), 101.0), (datetime.datetime(2187, 8, 16, 17, 0), 114.0), (datetime.datetime(2187, 8, 16, 18, 0), 113.0), (datetime.datetime(2187, 8, 16, 19, 0), 102.0), (datetime.datetime(2187, 8, 16, 20, 0), 107.0), (datetime.datetime(2187, 8, 16, 21, 0), 92.0), (datetime.datetime(2187, 8, 16, 22, 0), 90.0), (datetime.datetime(2187, 8, 16, 23, 0), 85.0), (datetime.datetime(2187, 8, 17, 0, 0), 75.0), (datetime.datetime(2187, 8, 17, 1, 0), 76.0), (datetime.datetime(2187, 8, 17, 2, 0), 76.0), (datetime.datetime(2187, 8, 17, 3, 0), 87.0), (datetime.datetime(2187, 8, 17, 4, 0), 68.0), (datetime.datetime(2187, 8, 17, 5, 0), 73.0), (datetime.datetime(2187, 8, 17, 7, 0), 66.0), (datetime.datetime(2187, 8, 17, 8, 0), 88.0), (datetime.datetime(2187, 8, 17, 9, 0), 82.0), (datetime.datetime(2187, 8, 17, 10, 0), 88.0), (datetime.datetime(2187, 8, 17, 11, 0), 87.0), (datetime.datetime(2187, 8, 17, 12, 0), 96.0), (datetime.datetime(2187, 8, 17, 13, 0), 111.0), (datetime.datetime(2187, 8, 17, 14, 0), 91.0), (datetime.datetime(2187, 8, 17, 15, 0), 97.0), (datetime.datetime(2187, 8, 17, 16, 0), 95.0), (datetime.datetime(2187, 8, 17, 17, 0), 98.0), (datetime.datetime(2187, 8, 17, 18, 0), 130.0), (datetime.datetime(2187, 8, 17, 19, 0), 93.0), (datetime.datetime(2187, 8, 17, 20, 0), 78.0), (datetime.datetime(2187, 8, 17, 21, 0), 75.0), (datetime.datetime(2187, 8, 17, 22, 0), 76.0), (datetime.datetime(2187, 8, 17, 23, 0), 80.0), (datetime.datetime(2187, 8, 18, 0, 0), 82.0), (datetime.datetime(2187, 8, 18, 1, 0), 88.0), (datetime.datetime(2187, 8, 18, 2, 0), 82.0), (datetime.datetime(2187, 8, 18, 3, 0), 75.0), (datetime.datetime(2187, 8, 18, 4, 0), 78.0), (datetime.datetime(2187, 8, 18, 5, 0), 81.0), (datetime.datetime(2187, 8, 18, 7, 0), 63.0), (datetime.datetime(2187, 8, 18, 9, 0), 92.0), (datetime.datetime(2187, 8, 18, 11, 0), 88.0), (datetime.datetime(2187, 8, 18, 12, 0), 78.0), (datetime.datetime(2187, 8, 18, 13, 0), 80.0)], [(datetime.datetime(2187, 8, 13, 3, 0), 27.0), (datetime.datetime(2187, 8, 13, 4, 0), 28.0), (datetime.datetime(2187, 8, 13, 5, 0), 28.0), (datetime.datetime(2187, 8, 13, 6, 0), 25.0), (datetime.datetime(2187, 8, 13, 7, 0), 29.0), (datetime.datetime(2187, 8, 13, 8, 0), 26.0), (datetime.datetime(2187, 8, 13, 9, 0), 25.0), (datetime.datetime(2187, 8, 13, 9, 0), 20.0), (datetime.datetime(2187, 8, 13, 10, 0), 16.0), (datetime.datetime(2187, 8, 13, 11, 0), 17.0), (datetime.datetime(2187, 8, 13, 12, 0), 20.0), (datetime.datetime(2187, 8, 13, 14, 0), 20.0), (datetime.datetime(2187, 8, 13, 15, 0), 20.0), (datetime.datetime(2187, 8, 13, 15, 20), 20.0), (datetime.datetime(2187, 8, 13, 16, 0), 20.0), (datetime.datetime(2187, 8, 13, 17, 0), 16.0), (datetime.datetime(2187, 8, 13, 19, 0), 16.0), (datetime.datetime(2187, 8, 13, 19, 15), 16.0), (datetime.datetime(2187, 8, 13, 20, 0), 16.0), (datetime.datetime(2187, 8, 13, 21, 0), 16.0), (datetime.datetime(2187, 8, 13, 22, 0), 14.0), (datetime.datetime(2187, 8, 13, 23, 0), 14.0), (datetime.datetime(2187, 8, 13, 23, 0), 14.0), (datetime.datetime(2187, 8, 14, 0, 0), 14.0), (datetime.datetime(2187, 8, 14, 1, 0), 14.0), (datetime.datetime(2187, 8, 14, 2, 0), 14.0), (datetime.datetime(2187, 8, 14, 3, 0), 14.0), (datetime.datetime(2187, 8, 14, 4, 0), 15.0), (datetime.datetime(2187, 8, 14, 4, 0), 14.0), (datetime.datetime(2187, 8, 14, 5, 0), 14.0), (datetime.datetime(2187, 8, 14, 6, 0), 14.0), (datetime.datetime(2187, 8, 14, 7, 0), 21.0), (datetime.datetime(2187, 8, 14, 8, 0), 10.0), (datetime.datetime(2187, 8, 14, 9, 0), 9.0), (datetime.datetime(2187, 8, 14, 9, 0), 11.0), (datetime.datetime(2187, 8, 14, 10, 0), 18.0), (datetime.datetime(2187, 8, 14, 11, 0), 16.0), (datetime.datetime(2187, 8, 14, 12, 0), 14.0), (datetime.datetime(2187, 8, 14, 13, 0), 15.0), (datetime.datetime(2187, 8, 14, 14, 0), 13.0), (datetime.datetime(2187, 8, 14, 15, 0), 18.0), (datetime.datetime(2187, 8, 14, 16, 0), 15.0), (datetime.datetime(2187, 8, 14, 17, 0), 15.0), (datetime.datetime(2187, 8, 14, 19, 0), 20.0), (datetime.datetime(2187, 8, 14, 20, 0), 10.0), (datetime.datetime(2187, 8, 14, 21, 0), 21.0), (datetime.datetime(2187, 8, 14, 22, 0), 18.0), (datetime.datetime(2187, 8, 14, 23, 0), 18.0), (datetime.datetime(2187, 8, 14, 23, 0), None), (datetime.datetime(2187, 8, 15, 0, 0), 19.0), (datetime.datetime(2187, 8, 15, 1, 0), 19.0), (datetime.datetime(2187, 8, 15, 2, 0), 20.0), (datetime.datetime(2187, 8, 15, 3, 0), 17.0), (datetime.datetime(2187, 8, 15, 4, 0), 18.0), (datetime.datetime(2187, 8, 15, 5, 0), 19.0), (datetime.datetime(2187, 8, 15, 6, 0), 18.0), (datetime.datetime(2187, 8, 15, 7, 0), 16.0), (datetime.datetime(2187, 8, 15, 8, 0), 15.0), (datetime.datetime(2187, 8, 15, 9, 0), 10.0), (datetime.datetime(2187, 8, 15, 10, 0), 17.0), (datetime.datetime(2187, 8, 15, 11, 0), 23.0), (datetime.datetime(2187, 8, 15, 12, 0), 15.0), (datetime.datetime(2187, 8, 15, 13, 0), 17.0), (datetime.datetime(2187, 8, 15, 14, 0), 16.0), (datetime.datetime(2187, 8, 15, 15, 0), 21.0), (datetime.datetime(2187, 8, 15, 16, 0), 17.0), (datetime.datetime(2187, 8, 15, 17, 0), 17.0), (datetime.datetime(2187, 8, 15, 18, 0), 17.0), (datetime.datetime(2187, 8, 15, 19, 0), 22.0), (datetime.datetime(2187, 8, 15, 20, 0), 18.0), (datetime.datetime(2187, 8, 15, 21, 0), 18.0), (datetime.datetime(2187, 8, 15, 22, 0), 22.0), (datetime.datetime(2187, 8, 15, 23, 0), 23.0), (datetime.datetime(2187, 8, 16, 0, 0), 8.0), (datetime.datetime(2187, 8, 16, 1, 0), 21.0), (datetime.datetime(2187, 8, 16, 2, 0), 20.0), (datetime.datetime(2187, 8, 16, 3, 0), 15.0), (datetime.datetime(2187, 8, 16, 4, 0), 21.0), (datetime.datetime(2187, 8, 16, 5, 0), 20.0), (datetime.datetime(2187, 8, 16, 6, 0), 19.0), (datetime.datetime(2187, 8, 16, 7, 0), 20.0), (datetime.datetime(2187, 8, 16, 8, 0), 15.0), (datetime.datetime(2187, 8, 16, 9, 0), 15.0), (datetime.datetime(2187, 8, 16, 10, 0), 21.0), (datetime.datetime(2187, 8, 16, 11, 0), 20.0), (datetime.datetime(2187, 8, 16, 12, 0), 20.0), (datetime.datetime(2187, 8, 16, 13, 0), 20.0), (datetime.datetime(2187, 8, 16, 14, 0), 17.0), (datetime.datetime(2187, 8, 16, 15, 0), 17.0), (datetime.datetime(2187, 8, 16, 16, 0), 16.0), (datetime.datetime(2187, 8, 16, 17, 0), 15.0), (datetime.datetime(2187, 8, 16, 18, 0), 19.0), (datetime.datetime(2187, 8, 16, 19, 0), 15.0), (datetime.datetime(2187, 8, 16, 20, 0), 15.0), (datetime.datetime(2187, 8, 16, 21, 0), 24.0), (datetime.datetime(2187, 8, 16, 22, 0), 11.0), (datetime.datetime(2187, 8, 16, 23, 0), 15.0), (datetime.datetime(2187, 8, 17, 0, 0), 22.0), (datetime.datetime(2187, 8, 17, 1, 0), 23.0), (datetime.datetime(2187, 8, 17, 2, 0), 24.0), (datetime.datetime(2187, 8, 17, 3, 0), 17.0), (datetime.datetime(2187, 8, 17, 4, 0), 21.0), (datetime.datetime(2187, 8, 17, 5, 0), 20.0), (datetime.datetime(2187, 8, 17, 7, 0), 20.0), (datetime.datetime(2187, 8, 17, 8, 0), 12.0), (datetime.datetime(2187, 8, 17, 9, 0), 18.0), (datetime.datetime(2187, 8, 17, 10, 0), 21.0), (datetime.datetime(2187, 8, 17, 11, 0), 20.0), (datetime.datetime(2187, 8, 17, 12, 0), 12.0), (datetime.datetime(2187, 8, 17, 13, 0), 12.0), (datetime.datetime(2187, 8, 17, 14, 0), 14.0), (datetime.datetime(2187, 8, 17, 15, 0), 17.0), (datetime.datetime(2187, 8, 17, 16, 0), 12.0), (datetime.datetime(2187, 8, 17, 17, 0), 15.0), (datetime.datetime(2187, 8, 17, 18, 0), 20.0), (datetime.datetime(2187, 8, 17, 19, 0), 20.0), (datetime.datetime(2187, 8, 17, 20, 0), 23.0), (datetime.datetime(2187, 8, 17, 21, 0), 21.0), (datetime.datetime(2187, 8, 17, 22, 0), 20.0), (datetime.datetime(2187, 8, 17, 23, 0), 22.0), (datetime.datetime(2187, 8, 18, 0, 0), 20.0), (datetime.datetime(2187, 8, 18, 1, 0), 25.0), (datetime.datetime(2187, 8, 18, 2, 0), 24.0), (datetime.datetime(2187, 8, 18, 3, 0), 21.0), (datetime.datetime(2187, 8, 18, 4, 0), 25.0), (datetime.datetime(2187, 8, 18, 5, 0), 22.0), (datetime.datetime(2187, 8, 18, 7, 0), 20.0), (datetime.datetime(2187, 8, 18, 9, 0), 18.0), (datetime.datetime(2187, 8, 18, 11, 0), 17.0), (datetime.datetime(2187, 8, 18, 12, 0), 17.0), (datetime.datetime(2187, 8, 18, 13, 0), 16.0)], [(datetime.datetime(2187, 8, 13, 3, 0), 137.0), (datetime.datetime(2187, 8, 13, 4, 0), 134.0), (datetime.datetime(2187, 8, 13, 5, 0), 123.0), (datetime.datetime(2187, 8, 13, 6, 0), 129.0), (datetime.datetime(2187, 8, 13, 7, 0), 126.0), (datetime.datetime(2187, 8, 13, 8, 0), 122.0), (datetime.datetime(2187, 8, 13, 9, 0), 127.0), (datetime.datetime(2187, 8, 13, 10, 0), 124.0), (datetime.datetime(2187, 8, 13, 11, 0), 125.0), (datetime.datetime(2187, 8, 13, 12, 0), 135.0), (datetime.datetime(2187, 8, 13, 12, 0), 127.0), (datetime.datetime(2187, 8, 13, 13, 0), 118.0), (datetime.datetime(2187, 8, 13, 14, 0), 129.0), (datetime.datetime(2187, 8, 13, 15, 0), 127.0), (datetime.datetime(2187, 8, 13, 16, 0), 128.0), (datetime.datetime(2187, 8, 13, 17, 0), 123.0), (datetime.datetime(2187, 8, 13, 19, 0), 129.0), (datetime.datetime(2187, 8, 13, 20, 0), 114.0), (datetime.datetime(2187, 8, 13, 21, 0), 113.0), (datetime.datetime(2187, 8, 13, 22, 0), 109.0), (datetime.datetime(2187, 8, 13, 23, 0), 104.0), (datetime.datetime(2187, 8, 14, 0, 0), 104.0), (datetime.datetime(2187, 8, 14, 1, 0), 103.0), (datetime.datetime(2187, 8, 14, 2, 0), 101.0), (datetime.datetime(2187, 8, 14, 3, 0), 119.0), (datetime.datetime(2187, 8, 14, 4, 0), 109.0), (datetime.datetime(2187, 8, 14, 5, 0), 110.0), (datetime.datetime(2187, 8, 14, 6, 0), 109.0), (datetime.datetime(2187, 8, 14, 7, 0), 126.0), (datetime.datetime(2187, 8, 14, 8, 0), 124.0), (datetime.datetime(2187, 8, 14, 9, 0), 124.0), (datetime.datetime(2187, 8, 14, 10, 0), 138.0), (datetime.datetime(2187, 8, 14, 11, 0), 129.0), (datetime.datetime(2187, 8, 14, 12, 0), 141.0), (datetime.datetime(2187, 8, 14, 13, 0), 126.0), (datetime.datetime(2187, 8, 14, 14, 0), 133.0), (datetime.datetime(2187, 8, 14, 15, 0), 124.0), (datetime.datetime(2187, 8, 14, 16, 0), 127.0), (datetime.datetime(2187, 8, 14, 17, 0), 134.0), (datetime.datetime(2187, 8, 14, 19, 0), 131.0), (datetime.datetime(2187, 8, 14, 20, 0), 126.0), (datetime.datetime(2187, 8, 14, 21, 0), 127.0), (datetime.datetime(2187, 8, 14, 22, 0), 123.0), (datetime.datetime(2187, 8, 14, 23, 0), 129.0), (datetime.datetime(2187, 8, 15, 0, 0), 129.0), (datetime.datetime(2187, 8, 15, 1, 0), 128.0), (datetime.datetime(2187, 8, 15, 2, 0), 120.0), (datetime.datetime(2187, 8, 15, 3, 0), 128.0), (datetime.datetime(2187, 8, 15, 4, 0), 131.0), (datetime.datetime(2187, 8, 15, 5, 0), 134.0), (datetime.datetime(2187, 8, 15, 6, 0), 129.0), (datetime.datetime(2187, 8, 15, 7, 0), 135.0), (datetime.datetime(2187, 8, 15, 8, 0), 138.0), (datetime.datetime(2187, 8, 15, 9, 0), 125.0), (datetime.datetime(2187, 8, 15, 10, 0), None), (datetime.datetime(2187, 8, 15, 10, 0), 143.0), (datetime.datetime(2187, 8, 15, 11, 0), 130.0), (datetime.datetime(2187, 8, 15, 12, 0), 127.0), (datetime.datetime(2187, 8, 15, 13, 0), 127.0), (datetime.datetime(2187, 8, 15, 14, 0), 129.0), (datetime.datetime(2187, 8, 15, 15, 0), 128.0), (datetime.datetime(2187, 8, 15, 16, 0), 128.0), (datetime.datetime(2187, 8, 15, 17, 0), 120.0), (datetime.datetime(2187, 8, 15, 18, 0), 126.0), (datetime.datetime(2187, 8, 15, 19, 0), 127.0), (datetime.datetime(2187, 8, 15, 20, 0), 124.0), (datetime.datetime(2187, 8, 15, 21, 0), 123.0), (datetime.datetime(2187, 8, 15, 22, 0), 126.0), (datetime.datetime(2187, 8, 15, 23, 0), 125.0), (datetime.datetime(2187, 8, 16, 0, 0), 125.0), (datetime.datetime(2187, 8, 16, 1, 0), 123.0), (datetime.datetime(2187, 8, 16, 2, 0), 116.0), (datetime.datetime(2187, 8, 16, 3, 0), 131.0), (datetime.datetime(2187, 8, 16, 4, 0), 128.0), (datetime.datetime(2187, 8, 16, 5, 0), 124.0), (datetime.datetime(2187, 8, 16, 6, 0), 127.0), (datetime.datetime(2187, 8, 16, 7, 0), 130.0), (datetime.datetime(2187, 8, 16, 8, 0), 124.0), (datetime.datetime(2187, 8, 16, 9, 0), 128.0), (datetime.datetime(2187, 8, 16, 10, 0), 129.0), (datetime.datetime(2187, 8, 16, 11, 0), 138.0), (datetime.datetime(2187, 8, 16, 12, 0), 127.0), (datetime.datetime(2187, 8, 16, 13, 0), 112.0), (datetime.datetime(2187, 8, 16, 14, 0), 120.0), (datetime.datetime(2187, 8, 16, 15, 0), 127.0), (datetime.datetime(2187, 8, 16, 16, 0), 120.0), (datetime.datetime(2187, 8, 16, 18, 0), 107.0), (datetime.datetime(2187, 8, 16, 19, 0), 106.0), (datetime.datetime(2187, 8, 16, 20, 0), 113.0), (datetime.datetime(2187, 8, 16, 21, 0), 112.0), (datetime.datetime(2187, 8, 16, 22, 0), 115.0), (datetime.datetime(2187, 8, 16, 23, 0), 122.0), (datetime.datetime(2187, 8, 17, 0, 0), 103.0), (datetime.datetime(2187, 8, 17, 1, 0), 110.0), (datetime.datetime(2187, 8, 17, 4, 0), 97.0), (datetime.datetime(2187, 8, 17, 5, 0), 106.0), (datetime.datetime(2187, 8, 17, 7, 0), 127.0), (datetime.datetime(2187, 8, 17, 8, 0), 112.0), (datetime.datetime(2187, 8, 17, 9, 0), 90.0), (datetime.datetime(2187, 8, 17, 10, 0), 105.0), (datetime.datetime(2187, 8, 17, 11, 0), 112.0), (datetime.datetime(2187, 8, 17, 12, 0), 117.0), (datetime.datetime(2187, 8, 17, 14, 0), 99.0), (datetime.datetime(2187, 8, 17, 15, 0), 109.0), (datetime.datetime(2187, 8, 17, 16, 0), 118.0), (datetime.datetime(2187, 8, 17, 17, 0), 98.0), (datetime.datetime(2187, 8, 17, 18, 0), 131.0), (datetime.datetime(2187, 8, 17, 19, 0), 101.0), (datetime.datetime(2187, 8, 17, 20, 0), 106.0), (datetime.datetime(2187, 8, 17, 21, 0), 107.0), (datetime.datetime(2187, 8, 17, 22, 0), 109.0), (datetime.datetime(2187, 8, 17, 23, 0), 105.0), (datetime.datetime(2187, 8, 18, 0, 0), 100.0), (datetime.datetime(2187, 8, 18, 1, 0), 104.0), (datetime.datetime(2187, 8, 18, 2, 0), 104.0), (datetime.datetime(2187, 8, 18, 3, 0), 111.0), (datetime.datetime(2187, 8, 18, 4, 0), 103.0), (datetime.datetime(2187, 8, 18, 5, 0), 98.0), (datetime.datetime(2187, 8, 18, 7, 0), 105.0), (datetime.datetime(2187, 8, 18, 9, 0), 112.0), (datetime.datetime(2187, 8, 18, 11, 0), 104.0)], [(datetime.datetime(2187, 8, 13, 3, 0), 75.0), (datetime.datetime(2187, 8, 13, 4, 0), 99.0), (datetime.datetime(2187, 8, 13, 5, 0), 63.0), (datetime.datetime(2187, 8, 13, 6, 0), 53.0), (datetime.datetime(2187, 8, 13, 7, 0), 52.0), (datetime.datetime(2187, 8, 13, 8, 0), 59.0), (datetime.datetime(2187, 8, 13, 9, 0), 61.0), (datetime.datetime(2187, 8, 13, 10, 0), 58.0), (datetime.datetime(2187, 8, 13, 11, 0), 58.0), (datetime.datetime(2187, 8, 13, 12, 0), 67.0), (datetime.datetime(2187, 8, 13, 12, 0), 71.0), (datetime.datetime(2187, 8, 13, 13, 0), 76.0), (datetime.datetime(2187, 8, 13, 14, 0), 78.0), (datetime.datetime(2187, 8, 13, 15, 0), 77.0), (datetime.datetime(2187, 8, 13, 16, 0), 75.0), (datetime.datetime(2187, 8, 13, 17, 0), 70.0), (datetime.datetime(2187, 8, 13, 19, 0), 74.0), (datetime.datetime(2187, 8, 13, 20, 0), 66.0), (datetime.datetime(2187, 8, 13, 21, 0), 65.0), (datetime.datetime(2187, 8, 13, 22, 0), 62.0), (datetime.datetime(2187, 8, 13, 23, 0), 58.0), (datetime.datetime(2187, 8, 14, 0, 0), 59.0), (datetime.datetime(2187, 8, 14, 1, 0), 58.0), (datetime.datetime(2187, 8, 14, 2, 0), 56.0), (datetime.datetime(2187, 8, 14, 3, 0), 67.0), (datetime.datetime(2187, 8, 14, 4, 0), 65.0), (datetime.datetime(2187, 8, 14, 5, 0), 65.0), (datetime.datetime(2187, 8, 14, 6, 0), 65.0), (datetime.datetime(2187, 8, 14, 7, 0), 79.0), (datetime.datetime(2187, 8, 14, 8, 0), 75.0), (datetime.datetime(2187, 8, 14, 9, 0), 74.0), (datetime.datetime(2187, 8, 14, 10, 0), 85.0), (datetime.datetime(2187, 8, 14, 11, 0), 79.0), (datetime.datetime(2187, 8, 14, 12, 0), 87.0), (datetime.datetime(2187, 8, 14, 13, 0), 78.0), (datetime.datetime(2187, 8, 14, 14, 0), 81.0), (datetime.datetime(2187, 8, 14, 15, 0), 76.0), (datetime.datetime(2187, 8, 14, 16, 0), 78.0), (datetime.datetime(2187, 8, 14, 17, 0), 82.0), (datetime.datetime(2187, 8, 14, 19, 0), 80.0), (datetime.datetime(2187, 8, 14, 20, 0), 76.0), (datetime.datetime(2187, 8, 14, 21, 0), 77.0), (datetime.datetime(2187, 8, 14, 22, 0), 74.0), (datetime.datetime(2187, 8, 14, 23, 0), 76.0), (datetime.datetime(2187, 8, 15, 0, 0), 76.0), (datetime.datetime(2187, 8, 15, 1, 0), 74.0), (datetime.datetime(2187, 8, 15, 2, 0), 74.0), (datetime.datetime(2187, 8, 15, 3, 0), 75.0), (datetime.datetime(2187, 8, 15, 4, 0), 76.0), (datetime.datetime(2187, 8, 15, 5, 0), 79.0), (datetime.datetime(2187, 8, 15, 6, 0), 76.0), (datetime.datetime(2187, 8, 15, 7, 0), 82.0), (datetime.datetime(2187, 8, 15, 8, 0), 81.0), (datetime.datetime(2187, 8, 15, 9, 0), 75.0), (datetime.datetime(2187, 8, 15, 10, 0), 75.0), (datetime.datetime(2187, 8, 15, 11, 0), 66.0), (datetime.datetime(2187, 8, 15, 12, 0), 74.0), (datetime.datetime(2187, 8, 15, 13, 0), 74.0), (datetime.datetime(2187, 8, 15, 14, 0), 71.0), (datetime.datetime(2187, 8, 15, 15, 0), 79.0), (datetime.datetime(2187, 8, 15, 16, 0), 70.0), (datetime.datetime(2187, 8, 15, 17, 0), 59.0), (datetime.datetime(2187, 8, 15, 18, 0), 64.0), (datetime.datetime(2187, 8, 15, 19, 0), 65.0), (datetime.datetime(2187, 8, 15, 20, 0), 73.0), (datetime.datetime(2187, 8, 15, 21, 0), 76.0), (datetime.datetime(2187, 8, 15, 22, 0), 74.0), (datetime.datetime(2187, 8, 15, 23, 0), 77.0), (datetime.datetime(2187, 8, 16, 0, 0), 79.0), (datetime.datetime(2187, 8, 16, 1, 0), 73.0), (datetime.datetime(2187, 8, 16, 2, 0), 69.0), (datetime.datetime(2187, 8, 16, 3, 0), 77.0), (datetime.datetime(2187, 8, 16, 4, 0), 72.0), (datetime.datetime(2187, 8, 16, 5, 0), 72.0), (datetime.datetime(2187, 8, 16, 6, 0), 76.0), (datetime.datetime(2187, 8, 16, 7, 0), 90.0), (datetime.datetime(2187, 8, 16, 8, 0), 72.0), (datetime.datetime(2187, 8, 16, 9, 0), 83.0), (datetime.datetime(2187, 8, 16, 10, 0), 71.0), (datetime.datetime(2187, 8, 16, 11, 0), 88.0), (datetime.datetime(2187, 8, 16, 12, 0), 72.0), (datetime.datetime(2187, 8, 16, 13, 0), 57.0), (datetime.datetime(2187, 8, 16, 14, 0), 67.0), (datetime.datetime(2187, 8, 16, 15, 0), 73.0), (datetime.datetime(2187, 8, 16, 16, 0), 73.0), (datetime.datetime(2187, 8, 16, 18, 0), 57.0), (datetime.datetime(2187, 8, 16, 19, 0), 60.0), (datetime.datetime(2187, 8, 16, 20, 0), 69.0), (datetime.datetime(2187, 8, 16, 21, 0), 67.0), (datetime.datetime(2187, 8, 16, 22, 0), 58.0), (datetime.datetime(2187, 8, 16, 23, 0), 67.0), (datetime.datetime(2187, 8, 17, 0, 0), 46.0), (datetime.datetime(2187, 8, 17, 1, 0), 59.0), (datetime.datetime(2187, 8, 17, 4, 0), 55.0), (datetime.datetime(2187, 8, 17, 5, 0), 49.0), (datetime.datetime(2187, 8, 17, 7, 0), 71.0), (datetime.datetime(2187, 8, 17, 8, 0), 70.0), (datetime.datetime(2187, 8, 17, 9, 0), 51.0), (datetime.datetime(2187, 8, 17, 10, 0), 60.0), (datetime.datetime(2187, 8, 17, 11, 0), 68.0), (datetime.datetime(2187, 8, 17, 12, 0), 68.0), (datetime.datetime(2187, 8, 17, 14, 0), 52.0), (datetime.datetime(2187, 8, 17, 15, 0), 64.0), (datetime.datetime(2187, 8, 17, 16, 0), 69.0), (datetime.datetime(2187, 8, 17, 17, 0), 48.0), (datetime.datetime(2187, 8, 17, 18, 0), 65.0), (datetime.datetime(2187, 8, 17, 19, 0), 60.0), (datetime.datetime(2187, 8, 17, 20, 0), 58.0), (datetime.datetime(2187, 8, 17, 21, 0), 64.0), (datetime.datetime(2187, 8, 17, 22, 0), 56.0), (datetime.datetime(2187, 8, 17, 23, 0), 53.0), (datetime.datetime(2187, 8, 18, 0, 0), 50.0), (datetime.datetime(2187, 8, 18, 1, 0), 54.0), (datetime.datetime(2187, 8, 18, 2, 0), 55.0), (datetime.datetime(2187, 8, 18, 3, 0), 59.0), (datetime.datetime(2187, 8, 18, 4, 0), 50.0), (datetime.datetime(2187, 8, 18, 5, 0), 51.0), (datetime.datetime(2187, 8, 18, 7, 0), 54.0), (datetime.datetime(2187, 8, 18, 9, 0), 59.0), (datetime.datetime(2187, 8, 18, 11, 0), 52.0)], [], [(datetime.datetime(2187, 8, 13, 3, 0), 97.5), (datetime.datetime(2187, 8, 13, 9, 0), 98.4000015258789), (datetime.datetime(2187, 8, 13, 14, 0), 98.0), (datetime.datetime(2187, 8, 13, 17, 0), 98.0), (datetime.datetime(2187, 8, 13, 19, 0), 97.80000305175781), (datetime.datetime(2187, 8, 13, 23, 0), 96.5999984741211), (datetime.datetime(2187, 8, 14, 3, 0), 99.80000305175781), (datetime.datetime(2187, 8, 14, 7, 0), 99.69999694824219), (datetime.datetime(2187, 8, 14, 11, 0), 99.5), (datetime.datetime(2187, 8, 14, 15, 0), 99.30000305175781), (datetime.datetime(2187, 8, 14, 20, 0), 99.0999984741211), (datetime.datetime(2187, 8, 15, 4, 0), 98.19999694824219), (datetime.datetime(2187, 8, 15, 7, 0), 98.19999694824219), (datetime.datetime(2187, 8, 15, 11, 0), 98.80000305175781), (datetime.datetime(2187, 8, 15, 15, 0), 98.5999984741211), (datetime.datetime(2187, 8, 15, 19, 0), 99.0999984741211), (datetime.datetime(2187, 8, 16, 0, 0), 97.9000015258789), (datetime.datetime(2187, 8, 16, 3, 0), 97.4000015258789), (datetime.datetime(2187, 8, 16, 9, 0), 97.9000015258789), (datetime.datetime(2187, 8, 16, 15, 0), 97.9000015258789), (datetime.datetime(2187, 8, 16, 19, 0), 99.0999984741211), (datetime.datetime(2187, 8, 16, 23, 0), 98.69999694824219), (datetime.datetime(2187, 8, 17, 3, 0), 97.69999694824219), (datetime.datetime(2187, 8, 17, 7, 0), 96.5999984741211), (datetime.datetime(2187, 8, 17, 11, 0), 97.69999694824219), (datetime.datetime(2187, 8, 17, 15, 0), 98.80000305175781), (datetime.datetime(2187, 8, 17, 19, 0), 98.4000015258789), (datetime.datetime(2187, 8, 17, 23, 0), 97.80000305175781), (datetime.datetime(2187, 8, 18, 7, 0), 96.69999694824219), (datetime.datetime(2187, 8, 18, 11, 0), 96.5999984741211)], [], [(datetime.datetime(2187, 8, 13, 3, 0), 15.0), (datetime.datetime(2187, 8, 13, 7, 0), 15.0), (datetime.datetime(2187, 8, 13, 14, 0), 10.0), (datetime.datetime(2187, 8, 13, 19, 0), 10.0), (datetime.datetime(2187, 8, 13, 23, 0), 10.0), (datetime.datetime(2187, 8, 14, 3, 0), 10.0), (datetime.datetime(2187, 8, 14, 5, 0), 15.0), (datetime.datetime(2187, 8, 14, 7, 0), 10.0), (datetime.datetime(2187, 8, 14, 10, 0), 15.0), (datetime.datetime(2187, 8, 14, 13, 0), 15.0), (datetime.datetime(2187, 8, 14, 16, 0), 15.0), (datetime.datetime(2187, 8, 14, 20, 0), 15.0), (datetime.datetime(2187, 8, 15, 0, 0), 15.0), (datetime.datetime(2187, 8, 15, 4, 0), 15.0), (datetime.datetime(2187, 8, 15, 7, 0), 15.0), (datetime.datetime(2187, 8, 15, 11, 0), 15.0), (datetime.datetime(2187, 8, 15, 15, 0), 15.0), (datetime.datetime(2187, 8, 15, 19, 0), 15.0), (datetime.datetime(2187, 8, 16, 0, 0), 15.0), (datetime.datetime(2187, 8, 16, 3, 0), 15.0), (datetime.datetime(2187, 8, 16, 8, 0), 15.0), (datetime.datetime(2187, 8, 16, 11, 0), 15.0), (datetime.datetime(2187, 8, 16, 15, 0), 15.0), (datetime.datetime(2187, 8, 16, 19, 0), 15.0), (datetime.datetime(2187, 8, 16, 23, 0), 15.0), (datetime.datetime(2187, 8, 17, 3, 0), 15.0), (datetime.datetime(2187, 8, 17, 7, 0), 15.0), (datetime.datetime(2187, 8, 17, 11, 0), 15.0), (datetime.datetime(2187, 8, 17, 15, 0), 15.0), (datetime.datetime(2187, 8, 17, 19, 0), 15.0), (datetime.datetime(2187, 8, 17, 23, 0), 15.0), (datetime.datetime(2187, 8, 18, 4, 0), 15.0), (datetime.datetime(2187, 8, 18, 7, 0), 15.0)], [], [], [], [(datetime.datetime(2187, 8, 13, 8, 0), 300.0), (datetime.datetime(2187, 8, 13, 10, 0), 300.0), (datetime.datetime(2187, 8, 13, 13, 0), 190.0), (datetime.datetime(2187, 8, 13, 15, 0), 120.0), (datetime.datetime(2187, 8, 13, 16, 0), 200.0), (datetime.datetime(2187, 8, 13, 18, 0), 210.0), (datetime.datetime(2187, 8, 13, 20, 0), 0.0), (datetime.datetime(2187, 8, 13, 20, 0), 230.0), (datetime.datetime(2187, 8, 13, 22, 0), 180.0), (datetime.datetime(2187, 8, 14, 0, 0), 360.0), (datetime.datetime(2187, 8, 14, 2, 0), 400.0), (datetime.datetime(2187, 8, 14, 4, 0), 300.0), (datetime.datetime(2187, 8, 14, 6, 0), 160.0), (datetime.datetime(2187, 8, 14, 8, 0), 210.0), (datetime.datetime(2187, 8, 14, 10, 0), 140.0), (datetime.datetime(2187, 8, 14, 12, 0), 450.0), (datetime.datetime(2187, 8, 14, 15, 0), 450.0), (datetime.datetime(2187, 8, 14, 17, 0), 380.0), (datetime.datetime(2187, 8, 14, 18, 0), 300.0), (datetime.datetime(2187, 8, 14, 21, 0), 500.0), (datetime.datetime(2187, 8, 14, 22, 0), 350.0), (datetime.datetime(2187, 8, 15, 0, 0), 350.0), (datetime.datetime(2187, 8, 15, 3, 0), 500.0), (datetime.datetime(2187, 8, 15, 5, 0), 350.0), (datetime.datetime(2187, 8, 15, 8, 0), 400.0), (datetime.datetime(2187, 8, 15, 9, 0), 220.0), (datetime.datetime(2187, 8, 15, 10, 0), 220.0), (datetime.datetime(2187, 8, 15, 11, 0), 200.0), (datetime.datetime(2187, 8, 15, 12, 0), 80.0), (datetime.datetime(2187, 8, 15, 13, 0), 200.0), (datetime.datetime(2187, 8, 15, 14, 0), 80.0), (datetime.datetime(2187, 8, 15, 15, 0), 200.0), (datetime.datetime(2187, 8, 15, 16, 0), 180.0), (datetime.datetime(2187, 8, 15, 17, 0), 200.0), (datetime.datetime(2187, 8, 15, 18, 0), 80.0), (datetime.datetime(2187, 8, 15, 20, 0), 160.0), (datetime.datetime(2187, 8, 15, 21, 0), 100.0), (datetime.datetime(2187, 8, 15, 22, 0), 80.0), (datetime.datetime(2187, 8, 16, 0, 0), 380.0), (datetime.datetime(2187, 8, 16, 1, 0), 100.0), (datetime.datetime(2187, 8, 16, 4, 0), 200.0), (datetime.datetime(2187, 8, 16, 6, 0), 260.0), (datetime.datetime(2187, 8, 16, 9, 0), 340.0), (datetime.datetime(2187, 8, 16, 12, 0), 250.0), (datetime.datetime(2187, 8, 16, 12, 0), 0.0), (datetime.datetime(2187, 8, 16, 13, 0), 350.0), (datetime.datetime(2187, 8, 16, 14, 0), 300.0), (datetime.datetime(2187, 8, 16, 17, 0), 400.0), (datetime.datetime(2187, 8, 16, 20, 0), 400.0), (datetime.datetime(2187, 8, 16, 23, 0), 400.0), (datetime.datetime(2187, 8, 17, 4, 0), 500.0), (datetime.datetime(2187, 8, 17, 8, 0), 400.0), (datetime.datetime(2187, 8, 17, 17, 0), 300.0), (datetime.datetime(2187, 8, 18, 0, 0), 300.0), (datetime.datetime(2187, 8, 18, 10, 0), 250.0)], [], [(datetime.datetime(2187, 8, 13, 11, 0), 141.0), (datetime.datetime(2187, 8, 14, 8, 45), 169.0), (datetime.datetime(2187, 8, 15, 9, 35), 167.0)], [(datetime.datetime(2187, 8, 13, 10, 56), 7.17), (datetime.datetime(2187, 8, 13, 10, 56), 7.17), (datetime.datetime(2187, 8, 13, 12, 8), 7.2), (datetime.datetime(2187, 8, 13, 12, 8), 7.2), (datetime.datetime(2187, 8, 13, 14, 37), 7.2), (datetime.datetime(2187, 8, 13, 14, 37), 7.2), (datetime.datetime(2187, 8, 13, 15, 58), 7.28), (datetime.datetime(2187, 8, 13, 15, 58), 7.28), (datetime.datetime(2187, 8, 13, 16, 58), 7.27), (datetime.datetime(2187, 8, 13, 16, 58), 7.27), (datetime.datetime(2187, 8, 13, 20, 45), 7.31), (datetime.datetime(2187, 8, 13, 20, 45), 7.31), (datetime.datetime(2187, 8, 13, 22, 50), 7.28), (datetime.datetime(2187, 8, 13, 22, 50), 7.28), (datetime.datetime(2187, 8, 14, 3, 6), 7.33), (datetime.datetime(2187, 8, 14, 3, 6), 7.33), (datetime.datetime(2187, 8, 14, 10, 12), 7.38), (datetime.datetime(2187, 8, 14, 10, 12), 7.38)]]]\n[(165315, 'EMERGENCY', Decimal('27'), 0)]\n","output_type":"stream"}]},{"cell_type":"code","source":"adm_id = [record[0] for record in adm_info]\nadm_id_needed = [record[0] for record in adm_info if record[2] >= 48]\nvitals_dict = {}\nfor i in range(len(vitals)):\n vitals_dict[adm_id[i]] = vitals[i]\nvitals = [vitals_dict[x] for x in adm_id_needed]\nlabel = [rec[3] for x in adm_id_needed for rec in adm_info if x == rec[0]]","metadata":{"execution":{"iopub.status.busy":"2024-09-20T15:40:48.525057Z","iopub.execute_input":"2024-09-20T15:40:48.525577Z","iopub.status.idle":"2024-09-20T15:40:49.056027Z","shell.execute_reply.started":"2024-09-20T15:40:48.525529Z","shell.execute_reply":"2024-09-20T15:40:49.054113Z"},"trusted":true},"execution_count":15,"outputs":[{"traceback":["\u001b[0;31m---------------------------------------------------------------------------\u001b[0m","\u001b[0;31mKeyError\u001b[0m Traceback (most recent call last)","Cell \u001b[0;32mIn[15], line 6\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m i \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mrange\u001b[39m(\u001b[38;5;28mlen\u001b[39m(vitals)):\n\u001b[1;32m 5\u001b[0m vitals_dict[adm_id[i]] \u001b[38;5;241m=\u001b[39m vitals[i]\n\u001b[0;32m----> 6\u001b[0m vitals \u001b[38;5;241m=\u001b[39m [vitals_dict[x] \u001b[38;5;28;01mfor\u001b[39;00m x \u001b[38;5;129;01min\u001b[39;00m adm_id_needed]\n\u001b[1;32m 7\u001b[0m label \u001b[38;5;241m=\u001b[39m [rec[\u001b[38;5;241m3\u001b[39m] \u001b[38;5;28;01mfor\u001b[39;00m x \u001b[38;5;129;01min\u001b[39;00m adm_id_needed \u001b[38;5;28;01mfor\u001b[39;00m rec \u001b[38;5;129;01min\u001b[39;00m adm_info \u001b[38;5;28;01mif\u001b[39;00m x \u001b[38;5;241m==\u001b[39m rec[\u001b[38;5;241m0\u001b[39m]]\n","Cell \u001b[0;32mIn[15], line 6\u001b[0m, in \u001b[0;36m<listcomp>\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m i \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mrange\u001b[39m(\u001b[38;5;28mlen\u001b[39m(vitals)):\n\u001b[1;32m 5\u001b[0m vitals_dict[adm_id[i]] \u001b[38;5;241m=\u001b[39m vitals[i]\n\u001b[0;32m----> 6\u001b[0m vitals \u001b[38;5;241m=\u001b[39m [\u001b[43mvitals_dict\u001b[49m\u001b[43m[\u001b[49m\u001b[43mx\u001b[49m\u001b[43m]\u001b[49m \u001b[38;5;28;01mfor\u001b[39;00m x \u001b[38;5;129;01min\u001b[39;00m adm_id_needed]\n\u001b[1;32m 7\u001b[0m label \u001b[38;5;241m=\u001b[39m [rec[\u001b[38;5;241m3\u001b[39m] \u001b[38;5;28;01mfor\u001b[39;00m x \u001b[38;5;129;01min\u001b[39;00m adm_id_needed \u001b[38;5;28;01mfor\u001b[39;00m rec \u001b[38;5;129;01min\u001b[39;00m adm_info \u001b[38;5;28;01mif\u001b[39;00m x \u001b[38;5;241m==\u001b[39m rec[\u001b[38;5;241m0\u001b[39m]]\n","\u001b[0;31mKeyError\u001b[0m: 181712"],"ename":"KeyError","evalue":"181712","output_type":"error"}]},{"cell_type":"markdown","source":"## Trim lossing","metadata":{}},{"cell_type":"code","source":"# Original code: https://github.com/mlds-lab/interp-net/blob/master/src/mimic_preprocessing.py#L25\n\nimport numpy as np\nfrom concurrent.futures import ProcessPoolExecutor\n\ndef trim_los_parallel(data_chunk, length_of_stay):\n num_features = 12 # final features (excluding EtCO2)\n max_length = 2881 # maximum length of time stamp\n a = np.full((len(data_chunk), num_features, max_length), -100, dtype=float) # initialize array with -100 (missing data)\n timestamps = []\n\n for i in range(len(data_chunk)):\n # Process temperature conversion in a vectorized way\n if data_chunk[i][7]:\n temp_array = np.array([elem[1] for elem in data_chunk[i][7] if elem[1] is not None])\n data_chunk[i][6] += [(elem[0], temp * 1.8 + 32) for elem, temp in zip(data_chunk[i][7], temp_array)]\n\n # Combine data[9] with data[10] and data[11]\n data_chunk[i][9].extend(data_chunk[i][10] + data_chunk[i][11])\n\n # Remove unwanted elements (EtCO2 data)\n del data_chunk[i][5:7]\n del data_chunk[i][8]\n\n # Collect unique timestamps across all features\n all_timestamps = sorted(set([elem[0] for j in range(num_features) for elem in data_chunk[i][j]]))\n\n # Extract first 48-hour data\n first_ts = all_timestamps[0] if all_timestamps else None\n TS = [ts for ts in all_timestamps if (ts - first_ts).total_seconds() / 3600 <= length_of_stay]\n\n timestamps.append(TS)\n\n for j in range(num_features):\n feature_data = data_chunk[i][j]\n feature_dict = {entry[0]: entry[1] for entry in feature_data} # Convert list to dictionary for fast lookup\n\n for k, ts in enumerate(TS):\n if ts in feature_dict:\n value = feature_dict[ts]\n if value is None or value in ('Other/Remarks', 'Comment'):\n a[i, j, k] = -100\n elif value in ('Normal <3 secs', 'Normal <3 Seconds', 'Brisk'):\n a[i, j, k] = 1\n elif value in ('Abnormal >3 secs', 'Abnormal >3 Seconds', 'Delayed'):\n a[i, j, k] = 2\n else:\n a[i, j, k] = value\n else:\n a[i, j, k] = -100 # missing data\n\n return a, timestamps\n\n# Function to split the data and run in parallel\ndef run_trim_los_in_parallel(data, length_of_stay, num_workers=4):\n # Split data into chunks for parallel processing\n chunk_size = len(data) // num_workers\n data_chunks = [data[i:i + chunk_size] for i in range(0, len(data), chunk_size)]\n\n results = []\n with ProcessPoolExecutor(max_workers=num_workers) as executor:\n futures = [executor.submit(trim_los_parallel, chunk, length_of_stay) for chunk in data_chunks]\n for future in futures:\n results.append(future.result())\n\n # Combine results from all chunks\n all_a = np.concatenate([result[0] for result in results], axis=0)\n all_timestamps = sum([result[1] for result in results], [])\n \n return all_a, all_timestamps\n\n# Example usage\nhours_look_ahead = 48\nnum_workers = 15 # Use the available 15 cores for parallel processing\nvitals, timestamps = run_trim_los_in_parallel(vitals, hours_look_ahead, num_workers)","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## Fixing input format\n\nReturn the input in the proper format\n\n* x: observed values\n* M: masking, 0 indicates missing values\n* delta: time points of observation","metadata":{}},{"cell_type":"code","source":"def fix_input_format(x, T):\n \"\"\"Return the input in the proper format\n x: observed values\n M: masking, 0 indicates missing values\n delta: time points of observation\n \"\"\"\n timestamp = 200\n num_features = 12\n\n # trim time stamps higher than 200\n for i in range(len(T)):\n if len(T[i]) > timestamp:\n T[i] = T[i][:timestamp]\n\n x = x[:, :, :timestamp]\n M = np.zeros_like(x)\n delta = np.zeros_like(x)\n print(x.shape, len(T))\n\n for t in T:\n for i in range(1, len(t)):\n t[i] = (t[i] - t[0]).total_seconds()/3600.0\n if len(t) != 0:\n t[0] = 0\n\n # count outliers and negative values as missing values\n # M = 0 indicates missing value\n # M = 1 indicates observed value\n # now since we have mask variable, we don't need -100\n M[x > 500] = 0\n x[x > 500] = 0.0\n M[x < 0] = 0\n x[x < 0] = 0.0\n M[x > 0] = 1\n\n for i in range(num_features):\n for j in range(x.shape[0]):\n for k in range(len(T[j])):\n delta[j, i, k] = T[j][k]\n\n return x, M, delta\n\n\nx, M, delta = fix_input_format(vitals, timestamps)","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## Mean inputation","metadata":{}},{"cell_type":"code","source":"def mean_imputation(vitals, mask):\n \"\"\"For the time series missing entirely, our interpolation network \n assigns the starting point (time t=0) value of the time series to \n the global mean before applying the two-layer interpolation network.\n In such cases, the first interpolation layer just outputs the global\n mean for that channel, but the second interpolation layer performs \n a more meaningful interpolation using the learned correlations from\n other channels.\"\"\"\n counts = np.sum(np.sum(mask, axis=2), axis=0)\n mean_values = np.sum(np.sum(vitals*mask, axis=2), axis=0)/counts\n for i in range(mask.shape[0]):\n for j in range(mask.shape[1]):\n if np.sum(mask[i, j]) == 0:\n mask[i, j, 0] = 1\n vitals[i, j, 0] = mean_values[j]\n return\n\n\nmean_imputation(x, M)","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"def hold_out(mask, perc=0.2):\n \"\"\"To implement the autoencoder component of the loss, we introduce a set\n of masking variables mr (and mr1) for each data point. If drop_mask = 0,\n then we removecthe data point as an input to the interpolation network,\n and includecthe predicted value at this time point when assessing\n the autoencoder loss. In practice, we randomly select 20% of the\n observed data points to hold out from\n every input time series.\"\"\"\n drop_mask = np.ones_like(mask)\n drop_mask *= mask\n for i in range(mask.shape[0]):\n for j in range(mask.shape[1]):\n count = np.sum(mask[i, j], dtype='int')\n if int(0.20*count) > 1:\n index = 0\n r = np.ones((count, 1))\n b = np.random.choice(count, int(0.20*count), replace=False)\n r[b] = 0\n for k in range(mask.shape[2]):\n if mask[i, j, k] > 0:\n drop_mask[i, j, k] = r[index]\n index += 1\n return drop_mask\n\ndrop_mask=hold_out(M)","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"x = np.concatenate((x, M, delta, drop_mask), axis=1)\nprint(x.shape)\ny= np.array(label)\nprint(y.shape)\n\nnp.savez('preprocessed_data.npz', array1=x, array2=y)","metadata":{},"execution_count":null,"outputs":[]}]}