From ad520b053a4265053c36dea7f5bfbe0218213edc Mon Sep 17 00:00:00 2001 From: govin08 Date: Thu, 11 Jan 2024 22:20:50 +0900 Subject: [PATCH] =?UTF-8?q?No,=20=EA=B2=B0=EC=B8=A1=EC=9D=B4=EC=83=81?= =?UTF-8?q?=EC=B9=98=EC=B2=98=EB=A6=AC=20=20should=20be=20inside=20the=20?= =?UTF-8?q?=EC=9D=B4=EB=A0=A5+=EC=9D=B4=EB=8F=99=EB=A5=98.=20So=20the=20or?= =?UTF-8?q?der=20is=20as=20before,=20except=20that=20processing=20of=20out?= =?UTF-8?q?lier=20and=20missing=20value=20should=20be=20taken=20place=20on?= =?UTF-8?q?=20rhistory,=20not=20hrhistory=20or=20so.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../0111_preprocess_5.ipynb | 1030 +- .../0111_preprocess_6.ipynb | 11239 +++------------- .../raw_tables/0110_make_sample_table.ipynb | 4 +- .../table_definition_v0.8.3.xlsx | Bin 77054 -> 77029 bytes 4 files changed, 2775 insertions(+), 9498 deletions(-) diff --git a/Analysis/0109_movement_matching/0111_preprocess_5.ipynb b/Analysis/0109_movement_matching/0111_preprocess_5.ipynb index 5b534fe14..33a0e8661 100644 --- a/Analysis/0109_movement_matching/0111_preprocess_5.ipynb +++ b/Analysis/0109_movement_matching/0111_preprocess_5.ipynb @@ -757,7 +757,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 20, "metadata": {}, "outputs": [ { @@ -794,6 +794,86 @@ " \n", " 0\n", " 175\n", + " 1\n", + " 동\n", + " 남\n", + " 571545870_02\n", + " 571542797_02\n", + " i0\n", + " \n", + " \n", + " 1\n", + " 175\n", + " 2\n", + " 서\n", + " 동\n", + " 571510153_02\n", + " 571545870_01\n", + " i0\n", + " \n", + " \n", + " 2\n", + " 175\n", + " 3\n", + " 남\n", + " 서\n", + " -571542797_02\n", + " 571510153_01\n", + " i0\n", + " \n", + " \n", + " 3\n", + " 175\n", + " 4\n", + " 북\n", + " 남\n", + " -571500487_01\n", + " 571542797_02\n", + " i0\n", + " \n", + " \n", + " 4\n", + " 175\n", + " 5\n", + " 서\n", + " 북\n", + " 571510153_02\n", + " 571500487_01\n", + " i0\n", + " \n", + " \n", + " 5\n", + " 175\n", + " 6\n", + " 동\n", + " 서\n", + " 571545870_02\n", + " 571510153_01\n", + " i0\n", + " \n", + " \n", + " 6\n", + " 175\n", + " 7\n", + " 북\n", + " 동\n", + " -571500487_01\n", + " 571545870_01\n", + " i0\n", + " \n", + " \n", + " 7\n", + " 175\n", + " 8\n", + " 남\n", + " 북\n", + " -571542797_02\n", + " 571500487_01\n", + " i0\n", + " \n", + " \n", + " 8\n", + " 175\n", " 17\n", " None\n", " None\n", @@ -802,7 +882,7 @@ " i0\n", " \n", " \n", - " 1\n", + " 9\n", " 175\n", " 18\n", " None\n", @@ -812,7 +892,87 @@ " i0\n", " \n", " \n", - " 2\n", + " 10\n", + " 175\n", + " 21\n", + " 북\n", + " 서\n", + " -571500487_01\n", + " 571510153_01\n", + " i0\n", + " \n", + " \n", + " 11\n", + " 175\n", + " 21\n", + " 서\n", + " 남\n", + " 571510153_02\n", + " 571542797_02\n", + " i0\n", + " \n", + " \n", + " 12\n", + " 175\n", + " 21\n", + " 남\n", + " 동\n", + " -571542797_02\n", + " 571545870_01\n", + " i0\n", + " \n", + " \n", + " 13\n", + " 175\n", + " 21\n", + " 동\n", + " 북\n", + " 571545870_02\n", + " 571500487_01\n", + " i0\n", + " \n", + " \n", + " 14\n", + " 176\n", + " 3\n", + " 남\n", + " 서\n", + " -571542810_01\n", + " 571543469_01\n", + " i1\n", + " \n", + " \n", + " 15\n", + " 176\n", + " 4\n", + " 북\n", + " 남\n", + " 571542797_02.99\n", + " 571542810_01\n", + " i1\n", + " \n", + " \n", + " 16\n", + " 176\n", + " 5\n", + " 서\n", + " 북\n", + " 571543469_02\n", + " -571542797_02.99\n", + " i1\n", + " \n", + " \n", + " 17\n", + " 176\n", + " 8\n", + " 남\n", + " 북\n", + " -571542810_01\n", + " -571542797_02.99\n", + " i1\n", + " \n", + " \n", + " 18\n", " 176\n", " 17\n", " None\n", @@ -822,77 +982,477 @@ " i1\n", " \n", " \n", - " 3\n", - " 176\n", - " 18\n", - " None\n", - " None\n", - " None\n", - " None\n", - " i1\n", + " 19\n", + " 176\n", + " 18\n", + " None\n", + " None\n", + " None\n", + " None\n", + " i1\n", + " \n", + " \n", + " 20\n", + " 176\n", + " 21\n", + " 북\n", + " 서\n", + " 571542797_02.99\n", + " 571543469_01\n", + " i1\n", + " \n", + " \n", + " 21\n", + " 176\n", + " 21\n", + " 서\n", + " 남\n", + " 571543469_02\n", + " 571542810_01\n", + " i1\n", + " \n", + " \n", + " 22\n", + " 177\n", + " 1\n", + " 동\n", + " 남\n", + " 571542107_02\n", + " 571542809_01\n", + " i2\n", + " \n", + " \n", + " 23\n", + " 177\n", + " 2\n", + " 서\n", + " 동\n", + " -571542809_01\n", + " 571542107_01\n", + " i2\n", + " \n", + " \n", + " 24\n", + " 177\n", + " 3\n", + " 남\n", + " 서\n", + " -571542809_01\n", + " 571542809_01\n", + " i2\n", + " \n", + " \n", + " 25\n", + " 177\n", + " 4\n", + " 북\n", + " 남\n", + " 571542811_02\n", + " 571542809_01\n", + " i2\n", + " \n", + " \n", + " 26\n", + " 177\n", + " 5\n", + " 서\n", + " 북\n", + " -571542809_01\n", + " 571542811_01\n", + " i2\n", + " \n", + " \n", + " 27\n", + " 177\n", + " 6\n", + " 동\n", + " 서\n", + " 571542107_02\n", + " 571542809_01\n", + " i2\n", + " \n", + " \n", + " 28\n", + " 177\n", + " 7\n", + " 북\n", + " 동\n", + " 571542811_02\n", + " 571542107_01\n", + " i2\n", + " \n", + " \n", + " 29\n", + " 177\n", + " 8\n", + " 남\n", + " 북\n", + " -571542809_01\n", + " 571542811_01\n", + " i2\n", + " \n", + " \n", + " 30\n", + " 177\n", + " 17\n", + " None\n", + " None\n", + " None\n", + " None\n", + " i2\n", + " \n", + " \n", + " 31\n", + " 177\n", + " 18\n", + " None\n", + " None\n", + " None\n", + " None\n", + " i2\n", + " \n", + " \n", + " 32\n", + " 177\n", + " 21\n", + " 북\n", + " 서\n", + " 571542811_02\n", + " 571542809_01\n", + " i2\n", + " \n", + " \n", + " 33\n", + " 177\n", + " 21\n", + " 서\n", + " 남\n", + " -571542809_01\n", + " 571542809_01\n", + " i2\n", + " \n", + " \n", + " 34\n", + " 177\n", + " 21\n", + " 남\n", + " 동\n", + " -571542809_01\n", + " 571542107_01\n", + " i2\n", + " \n", + " \n", + " 35\n", + " 177\n", + " 21\n", + " 동\n", + " 북\n", + " 571542107_02\n", + " 571542811_01\n", + " i2\n", + " \n", + " \n", + " 36\n", + " 178\n", + " 1\n", + " 동\n", + " 남\n", + " -571500475_01\n", + " 571540304_01\n", + " i3\n", + " \n", + " \n", + " 37\n", + " 178\n", + " 2\n", + " 서\n", + " 동\n", + " 571540303_02.21\n", + " 571500475_01\n", + " i3\n", + " \n", + " \n", + " 38\n", + " 178\n", + " 3\n", + " 남\n", + " 서\n", + " 571540304_02\n", + " 571540303_01\n", + " i3\n", + " \n", + " \n", + " 39\n", + " 178\n", + " 4\n", + " 북\n", + " 남\n", + " 571556450_02\n", + " 571540304_01\n", + " i3\n", + " \n", + " \n", + " 40\n", + " 178\n", + " 5\n", + " 서\n", + " 북\n", + " 571540303_02.21\n", + " 571556450_01\n", + " i3\n", + " \n", + " \n", + " 41\n", + " 178\n", + " 6\n", + " 동\n", + " 서\n", + " -571500475_01\n", + " 571540303_01\n", + " i3\n", + " \n", + " \n", + " 42\n", + " 178\n", + " 7\n", + " 북\n", + " 동\n", + " 571556450_02\n", + " 571500475_01\n", + " i3\n", + " \n", + " \n", + " 43\n", + " 178\n", + " 8\n", + " 남\n", + " 북\n", + " 571540304_02\n", + " 571556450_01\n", + " i3\n", + " \n", + " \n", + " 44\n", + " 178\n", + " 17\n", + " None\n", + " None\n", + " None\n", + " None\n", + " i3\n", + " \n", + " \n", + " 45\n", + " 178\n", + " 18\n", + " None\n", + " None\n", + " None\n", + " None\n", + " i3\n", + " \n", + " \n", + " 46\n", + " 178\n", + " 21\n", + " 북\n", + " 서\n", + " 571556450_02\n", + " 571540303_01\n", + " i3\n", + " \n", + " \n", + " 47\n", + " 178\n", + " 21\n", + " 서\n", + " 남\n", + " 571540303_02.21\n", + " 571540304_01\n", + " i3\n", + " \n", + " \n", + " 48\n", + " 178\n", + " 21\n", + " 남\n", + " 동\n", + " 571540304_02\n", + " 571500475_01\n", + " i3\n", + " \n", + " \n", + " 49\n", + " 178\n", + " 21\n", + " 동\n", + " 북\n", + " -571500475_01\n", + " 571556450_01\n", + " i3\n", + " \n", + " \n", + " 50\n", + " 201\n", + " 1\n", + " 동\n", + " 남\n", + " 571500617_02\n", + " 571500569_01\n", + " i8\n", + " \n", + " \n", + " 51\n", + " 201\n", + " 2\n", + " 서\n", + " 동\n", + " 571500618_02\n", + " 571500617_01\n", + " i8\n", + " \n", + " \n", + " 52\n", + " 201\n", + " 3\n", + " 남\n", + " 서\n", + " -571500569_01\n", + " 571500618_01\n", + " i8\n", + " \n", + " \n", + " 53\n", + " 201\n", + " 4\n", + " 북\n", + " 남\n", + " 571500583_01\n", + " 571500569_01\n", + " i8\n", + " \n", + " \n", + " 54\n", + " 201\n", + " 5\n", + " 서\n", + " 북\n", + " 571500618_02\n", + " 571500583_02\n", + " i8\n", + " \n", + " \n", + " 55\n", + " 201\n", + " 6\n", + " 동\n", + " 서\n", + " 571500617_02\n", + " 571500618_01\n", + " i8\n", + " \n", + " \n", + " 56\n", + " 201\n", + " 7\n", + " 북\n", + " 동\n", + " 571500583_01\n", + " 571500617_01\n", + " i8\n", + " \n", + " \n", + " 57\n", + " 201\n", + " 8\n", + " 남\n", + " 북\n", + " -571500569_01\n", + " 571500583_02\n", + " i8\n", " \n", " \n", - " 4\n", - " 177\n", + " 58\n", + " 201\n", " 17\n", " None\n", " None\n", " None\n", " None\n", - " i2\n", + " i8\n", " \n", " \n", - " 5\n", - " 177\n", + " 59\n", + " 201\n", " 18\n", " None\n", " None\n", " None\n", " None\n", - " i2\n", + " i8\n", " \n", " \n", - " 6\n", - " 178\n", - " 17\n", - " None\n", - " None\n", - " None\n", - " None\n", - " i3\n", + " 60\n", + " 201\n", + " 21\n", + " 북\n", + " 서\n", + " 571500583_01\n", + " 571500618_01\n", + " i8\n", " \n", " \n", - " 7\n", - " 178\n", - " 18\n", - " None\n", - " None\n", - " None\n", - " None\n", - " i3\n", + " 61\n", + " 201\n", + " 21\n", + " 서\n", + " 남\n", + " 571500618_02\n", + " 571500569_01\n", + " i8\n", " \n", " \n", - " 8\n", + " 62\n", " 201\n", - " 17\n", - " None\n", - " None\n", - " None\n", - " None\n", + " 21\n", + " 남\n", + " 동\n", + " -571500569_01\n", + " 571500617_01\n", " i8\n", " \n", " \n", - " 9\n", + " 63\n", " 201\n", - " 18\n", - " None\n", - " None\n", - " None\n", - " None\n", + " 21\n", + " 동\n", + " 북\n", + " 571500617_02\n", + " 571500583_02\n", " i8\n", " \n", " \n", - " 10\n", + " 64\n", + " 202\n", + " 2\n", + " 서\n", + " 동\n", + " 571510152_01\n", + " 571510152_01.65\n", + " i9\n", + " \n", + " \n", + " 65\n", + " 202\n", + " 6\n", + " 동\n", + " 서\n", + " 571510152_02\n", + " -571510152_01\n", + " i9\n", + " \n", + " \n", + " 66\n", " 202\n", " 17\n", " None\n", @@ -902,7 +1462,7 @@ " i9\n", " \n", " \n", - " 11\n", + " 67\n", " 202\n", " 18\n", " None\n", @@ -912,7 +1472,27 @@ " i9\n", " \n", " \n", - " 12\n", + " 68\n", + " 206\n", + " 4\n", + " 북\n", + " 남\n", + " 571542073_01\n", + " 571511538_02\n", + " i7\n", + " \n", + " \n", + " 69\n", + " 206\n", + " 8\n", + " 남\n", + " 북\n", + " -571511538_02\n", + " 571542073_02\n", + " i7\n", + " \n", + " \n", + " 70\n", " 206\n", " 17\n", " None\n", @@ -922,7 +1502,7 @@ " i7\n", " \n", " \n", - " 13\n", + " 71\n", " 206\n", " 18\n", " None\n", @@ -932,7 +1512,87 @@ " i7\n", " \n", " \n", - " 14\n", + " 72\n", + " 210\n", + " 1\n", + " 동\n", + " 남\n", + " -571542115_01\n", + " 571500585_01\n", + " i6\n", + " \n", + " \n", + " 73\n", + " 210\n", + " 2\n", + " 서\n", + " 동\n", + " 571500535_02.18\n", + " 571542115_01\n", + " i6\n", + " \n", + " \n", + " 74\n", + " 210\n", + " 3\n", + " 남\n", + " 서\n", + " 571500585_02\n", + " 571500535_01\n", + " i6\n", + " \n", + " \n", + " 75\n", + " 210\n", + " 4\n", + " 북\n", + " 남\n", + " 571511538_02.121\n", + " 571500585_01\n", + " i6\n", + " \n", + " \n", + " 76\n", + " 210\n", + " 5\n", + " 서\n", + " 북\n", + " 571500535_02.18\n", + " 571511538_01\n", + " i6\n", + " \n", + " \n", + " 77\n", + " 210\n", + " 6\n", + " 동\n", + " 서\n", + " -571542115_01\n", + " 571500535_01\n", + " i6\n", + " \n", + " \n", + " 78\n", + " 210\n", + " 7\n", + " 북\n", + " 동\n", + " 571511538_02.121\n", + " 571542115_01\n", + " i6\n", + " \n", + " \n", + " 79\n", + " 210\n", + " 8\n", + " 남\n", + " 북\n", + " 571500585_02\n", + " 571511538_01\n", + " i6\n", + " \n", + " \n", + " 80\n", " 210\n", " 17\n", " None\n", @@ -942,7 +1602,7 @@ " i6\n", " \n", " \n", - " 15\n", + " 81\n", " 210\n", " 18\n", " None\n", @@ -952,7 +1612,67 @@ " i6\n", " \n", " \n", - " 16\n", + " 82\n", + " 210\n", + " 21\n", + " 북\n", + " 서\n", + " 571511538_02.121\n", + " 571500535_01\n", + " i6\n", + " \n", + " \n", + " 83\n", + " 210\n", + " 21\n", + " 서\n", + " 남\n", + " 571500535_02.18\n", + " 571500585_01\n", + " i6\n", + " \n", + " \n", + " 84\n", + " 210\n", + " 21\n", + " 남\n", + " 동\n", + " 571500585_02\n", + " 571542115_01\n", + " i6\n", + " \n", + " \n", + " 85\n", + " 210\n", + " 21\n", + " 동\n", + " 북\n", + " -571542115_01\n", + " 571511538_01\n", + " i6\n", + " \n", + " \n", + " 86\n", + " 211\n", + " 2\n", + " 서\n", + " 동\n", + " 571542116_02.96\n", + " 571542116_02.164\n", + " c30\n", + " \n", + " \n", + " 87\n", + " 211\n", + " 6\n", + " 동\n", + " 서\n", + " 571542116_01\n", + " -571542116_02.96\n", + " c30\n", + " \n", + " \n", + " 88\n", " 211\n", " 17\n", " None\n", @@ -962,7 +1682,7 @@ " c30\n", " \n", " \n", - " 17\n", + " 89\n", " 211\n", " 18\n", " None\n", @@ -976,25 +1696,189 @@ "" ], "text/plain": [ - " inter_no move_no inc_dir out_dir inc_edge out_edge node_id\n", - "0 175 17 None None None None i0\n", - "1 175 18 None None None None i0\n", - "2 176 17 None None None None i1\n", - "3 176 18 None None None None i1\n", - "4 177 17 None None None None i2\n", - "5 177 18 None None None None i2\n", - "6 178 17 None None None None i3\n", - "7 178 18 None None None None i3\n", - "8 201 17 None None None None i8\n", - "9 201 18 None None None None i8\n", - "10 202 17 None None None None i9\n", - "11 202 18 None None None None i9\n", - "12 206 17 None None None None i7\n", - "13 206 18 None None None None i7\n", - "14 210 17 None None None None i6\n", - "15 210 18 None None None None i6\n", - "16 211 17 None None None None c30\n", - "17 211 18 None None None None c30" + " inter_no move_no inc_dir out_dir inc_edge out_edge \\\n", + "0 175 1 동 남 571545870_02 571542797_02 \n", + "1 175 2 서 동 571510153_02 571545870_01 \n", + "2 175 3 남 서 -571542797_02 571510153_01 \n", + "3 175 4 북 남 -571500487_01 571542797_02 \n", + "4 175 5 서 북 571510153_02 571500487_01 \n", + "5 175 6 동 서 571545870_02 571510153_01 \n", + "6 175 7 북 동 -571500487_01 571545870_01 \n", + "7 175 8 남 북 -571542797_02 571500487_01 \n", + "8 175 17 None None None None \n", + "9 175 18 None None None None \n", + "10 175 21 북 서 -571500487_01 571510153_01 \n", + "11 175 21 서 남 571510153_02 571542797_02 \n", + "12 175 21 남 동 -571542797_02 571545870_01 \n", + "13 175 21 동 북 571545870_02 571500487_01 \n", + "14 176 3 남 서 -571542810_01 571543469_01 \n", + "15 176 4 북 남 571542797_02.99 571542810_01 \n", + "16 176 5 서 북 571543469_02 -571542797_02.99 \n", + "17 176 8 남 북 -571542810_01 -571542797_02.99 \n", + "18 176 17 None None None None \n", + "19 176 18 None None None None \n", + "20 176 21 북 서 571542797_02.99 571543469_01 \n", + "21 176 21 서 남 571543469_02 571542810_01 \n", + "22 177 1 동 남 571542107_02 571542809_01 \n", + "23 177 2 서 동 -571542809_01 571542107_01 \n", + "24 177 3 남 서 -571542809_01 571542809_01 \n", + "25 177 4 북 남 571542811_02 571542809_01 \n", + "26 177 5 서 북 -571542809_01 571542811_01 \n", + "27 177 6 동 서 571542107_02 571542809_01 \n", + "28 177 7 북 동 571542811_02 571542107_01 \n", + "29 177 8 남 북 -571542809_01 571542811_01 \n", + "30 177 17 None None None None \n", + "31 177 18 None None None None \n", + "32 177 21 북 서 571542811_02 571542809_01 \n", + "33 177 21 서 남 -571542809_01 571542809_01 \n", + "34 177 21 남 동 -571542809_01 571542107_01 \n", + "35 177 21 동 북 571542107_02 571542811_01 \n", + "36 178 1 동 남 -571500475_01 571540304_01 \n", + "37 178 2 서 동 571540303_02.21 571500475_01 \n", + "38 178 3 남 서 571540304_02 571540303_01 \n", + "39 178 4 북 남 571556450_02 571540304_01 \n", + "40 178 5 서 북 571540303_02.21 571556450_01 \n", + "41 178 6 동 서 -571500475_01 571540303_01 \n", + "42 178 7 북 동 571556450_02 571500475_01 \n", + "43 178 8 남 북 571540304_02 571556450_01 \n", + "44 178 17 None None None None \n", + "45 178 18 None None None None \n", + "46 178 21 북 서 571556450_02 571540303_01 \n", + "47 178 21 서 남 571540303_02.21 571540304_01 \n", + "48 178 21 남 동 571540304_02 571500475_01 \n", + "49 178 21 동 북 -571500475_01 571556450_01 \n", + "50 201 1 동 남 571500617_02 571500569_01 \n", + "51 201 2 서 동 571500618_02 571500617_01 \n", + "52 201 3 남 서 -571500569_01 571500618_01 \n", + "53 201 4 북 남 571500583_01 571500569_01 \n", + "54 201 5 서 북 571500618_02 571500583_02 \n", + "55 201 6 동 서 571500617_02 571500618_01 \n", + "56 201 7 북 동 571500583_01 571500617_01 \n", + "57 201 8 남 북 -571500569_01 571500583_02 \n", + "58 201 17 None None None None \n", + "59 201 18 None None None None \n", + "60 201 21 북 서 571500583_01 571500618_01 \n", + "61 201 21 서 남 571500618_02 571500569_01 \n", + "62 201 21 남 동 -571500569_01 571500617_01 \n", + "63 201 21 동 북 571500617_02 571500583_02 \n", + "64 202 2 서 동 571510152_01 571510152_01.65 \n", + "65 202 6 동 서 571510152_02 -571510152_01 \n", + "66 202 17 None None None None \n", + "67 202 18 None None None None \n", + "68 206 4 북 남 571542073_01 571511538_02 \n", + "69 206 8 남 북 -571511538_02 571542073_02 \n", + "70 206 17 None None None None \n", + "71 206 18 None None None None \n", + "72 210 1 동 남 -571542115_01 571500585_01 \n", + "73 210 2 서 동 571500535_02.18 571542115_01 \n", + "74 210 3 남 서 571500585_02 571500535_01 \n", + "75 210 4 북 남 571511538_02.121 571500585_01 \n", + "76 210 5 서 북 571500535_02.18 571511538_01 \n", + "77 210 6 동 서 -571542115_01 571500535_01 \n", + "78 210 7 북 동 571511538_02.121 571542115_01 \n", + "79 210 8 남 북 571500585_02 571511538_01 \n", + "80 210 17 None None None None \n", + "81 210 18 None None None None \n", + "82 210 21 북 서 571511538_02.121 571500535_01 \n", + "83 210 21 서 남 571500535_02.18 571500585_01 \n", + "84 210 21 남 동 571500585_02 571542115_01 \n", + "85 210 21 동 북 -571542115_01 571511538_01 \n", + "86 211 2 서 동 571542116_02.96 571542116_02.164 \n", + "87 211 6 동 서 571542116_01 -571542116_02.96 \n", + "88 211 17 None None None None \n", + "89 211 18 None None None None \n", + "\n", + " node_id \n", + "0 i0 \n", + "1 i0 \n", + "2 i0 \n", + "3 i0 \n", + "4 i0 \n", + "5 i0 \n", + "6 i0 \n", + "7 i0 \n", + "8 i0 \n", + "9 i0 \n", + "10 i0 \n", + "11 i0 \n", + "12 i0 \n", + "13 i0 \n", + "14 i1 \n", + "15 i1 \n", + "16 i1 \n", + "17 i1 \n", + "18 i1 \n", + "19 i1 \n", + "20 i1 \n", + "21 i1 \n", + "22 i2 \n", + "23 i2 \n", + "24 i2 \n", + "25 i2 \n", + "26 i2 \n", + "27 i2 \n", + "28 i2 \n", + "29 i2 \n", + "30 i2 \n", + "31 i2 \n", + "32 i2 \n", + "33 i2 \n", + "34 i2 \n", + "35 i2 \n", + "36 i3 \n", + "37 i3 \n", + "38 i3 \n", + "39 i3 \n", + "40 i3 \n", + "41 i3 \n", + "42 i3 \n", + "43 i3 \n", + "44 i3 \n", + "45 i3 \n", + "46 i3 \n", + "47 i3 \n", + "48 i3 \n", + "49 i3 \n", + "50 i8 \n", + "51 i8 \n", + "52 i8 \n", + "53 i8 \n", + "54 i8 \n", + "55 i8 \n", + "56 i8 \n", + "57 i8 \n", + "58 i8 \n", + "59 i8 \n", + "60 i8 \n", + "61 i8 \n", + "62 i8 \n", + "63 i8 \n", + "64 i9 \n", + "65 i9 \n", + "66 i9 \n", + "67 i9 \n", + "68 i7 \n", + "69 i7 \n", + "70 i7 \n", + "71 i7 \n", + "72 i6 \n", + "73 i6 \n", + "74 i6 \n", + "75 i6 \n", + "76 i6 \n", + "77 i6 \n", + "78 i6 \n", + "79 i6 \n", + "80 i6 \n", + "81 i6 \n", + "82 i6 \n", + "83 i6 \n", + "84 i6 \n", + "85 i6 \n", + "86 c30 \n", + "87 c30 \n", + "88 c30 \n", + "89 c30 " ] }, "metadata": {}, @@ -1012,7 +1896,7 @@ "pdires = {}\n", "for inter_no in match6.inter_no.unique():\n", " dires = match6[match6.inter_no == inter_no][['inc_dir','out_dir']].values.flatten()\n", - " dires = {dire for dire in dires if type(dir)==str}\n", + " dires = {dire for dire in dires if type(dire)==str}\n", " pdires[inter_no] = dires\n", "# (3) 각 (교차로, 진입방향) 별 진입id 목록 : inc2id\n", "inc2id = {}\n", diff --git a/Analysis/0109_movement_matching/0111_preprocess_6.ipynb b/Analysis/0109_movement_matching/0111_preprocess_6.ipynb index 5b534fe14..41620c1ed 100644 --- a/Analysis/0109_movement_matching/0111_preprocess_6.ipynb +++ b/Analysis/0109_movement_matching/0111_preprocess_6.ipynb @@ -19,7 +19,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# 1. 이동류 매칭" + "## [1] 이동류 매칭" ] }, { @@ -31,7 +31,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "100%|██████████| 17280/17280 [00:53<00:00, 322.44it/s]\n" + "100%|██████████| 17280/17280 [00:13<00:00, 1324.51it/s]\n" ] }, { @@ -317,7 +317,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 4, "metadata": {}, "outputs": [ { @@ -471,7 +471,7 @@ "[64 rows x 6 columns]" ] }, - "execution_count": 5, + "execution_count": 4, "metadata": {}, "output_type": "execute_result" } @@ -485,7 +485,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 5, "metadata": {}, "outputs": [ { @@ -663,7 +663,7 @@ "[64 rows x 8 columns]" ] }, - "execution_count": 6, + "execution_count": 5, "metadata": {}, "output_type": "execute_result" } @@ -693,7 +693,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 6, "metadata": {}, "outputs": [], "source": [ @@ -757,7 +757,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 17, "metadata": {}, "outputs": [ { @@ -794,9205 +794,1173 @@ " \n", " 0\n", " 175\n", - " 17\n", - " None\n", - " None\n", - " None\n", - " None\n", + " 1\n", + " 동\n", + " 남\n", + " 571545870_02\n", + " 571542797_02\n", " i0\n", " \n", " \n", " 1\n", " 175\n", - " 18\n", - " None\n", - " None\n", - " None\n", - " None\n", + " 2\n", + " 서\n", + " 동\n", + " 571510153_02\n", + " 571545870_01\n", " i0\n", " \n", " \n", " 2\n", - " 176\n", - " 17\n", - " None\n", - " None\n", - " None\n", - " None\n", - " i1\n", + " 175\n", + " 3\n", + " 남\n", + " 서\n", + " -571542797_02\n", + " 571510153_01\n", + " i0\n", " \n", " \n", " 3\n", - " 176\n", - " 18\n", - " None\n", - " None\n", - " None\n", - " None\n", - " i1\n", + " 175\n", + " 4\n", + " 북\n", + " 남\n", + " -571500487_01\n", + " 571542797_02\n", + " i0\n", " \n", " \n", " 4\n", - " 177\n", - " 17\n", - " None\n", - " None\n", - " None\n", - " None\n", - " i2\n", + " 175\n", + " 5\n", + " 서\n", + " 북\n", + " 571510153_02\n", + " 571500487_01\n", + " i0\n", " \n", " \n", " 5\n", - " 177\n", - " 18\n", - " None\n", - " None\n", - " None\n", - " None\n", - " i2\n", + " 175\n", + " 6\n", + " 동\n", + " 서\n", + " 571545870_02\n", + " 571510153_01\n", + " i0\n", " \n", " \n", " 6\n", - " 178\n", - " 17\n", - " None\n", - " None\n", - " None\n", - " None\n", - " i3\n", + " 175\n", + " 7\n", + " 북\n", + " 동\n", + " -571500487_01\n", + " 571545870_01\n", + " i0\n", " \n", " \n", " 7\n", - " 178\n", - " 18\n", - " None\n", - " None\n", - " None\n", - " None\n", - " i3\n", + " 175\n", + " 8\n", + " 남\n", + " 북\n", + " -571542797_02\n", + " 571500487_01\n", + " i0\n", " \n", " \n", " 8\n", - " 201\n", + " 175\n", " 17\n", " None\n", " None\n", " None\n", " None\n", - " i8\n", + " i0\n", " \n", " \n", " 9\n", - " 201\n", + " 175\n", " 18\n", " None\n", " None\n", " None\n", " None\n", - " i8\n", + " i0\n", " \n", " \n", " 10\n", - " 202\n", - " 17\n", - " None\n", - " None\n", - " None\n", - " None\n", - " i9\n", + " 175\n", + " 21\n", + " 북\n", + " 서\n", + " -571500487_01\n", + " 571510153_01\n", + " i0\n", " \n", " \n", " 11\n", - " 202\n", - " 18\n", - " None\n", - " None\n", - " None\n", - " None\n", - " i9\n", + " 175\n", + " 21\n", + " 서\n", + " 남\n", + " 571510153_02\n", + " 571542797_02\n", + " i0\n", " \n", " \n", " 12\n", - " 206\n", - " 17\n", - " None\n", - " None\n", - " None\n", - " None\n", - " i7\n", + " 175\n", + " 21\n", + " 남\n", + " 동\n", + " -571542797_02\n", + " 571545870_01\n", + " i0\n", " \n", " \n", " 13\n", - " 206\n", - " 18\n", - " None\n", - " None\n", - " None\n", - " None\n", - " i7\n", + " 175\n", + " 21\n", + " 동\n", + " 북\n", + " 571545870_02\n", + " 571500487_01\n", + " i0\n", " \n", " \n", " 14\n", - " 210\n", - " 17\n", - " None\n", - " None\n", - " None\n", - " None\n", - " i6\n", + " 176\n", + " 3\n", + " 남\n", + " 서\n", + " -571542810_01\n", + " 571543469_01\n", + " i1\n", " \n", " \n", " 15\n", - " 210\n", - " 18\n", - " None\n", - " None\n", - " None\n", - " None\n", - " i6\n", + " 176\n", + " 4\n", + " 북\n", + " 남\n", + " 571542797_02.99\n", + " 571542810_01\n", + " i1\n", " \n", " \n", " 16\n", - " 211\n", + " 176\n", + " 5\n", + " 서\n", + " 북\n", + " 571543469_02\n", + " -571542797_02.99\n", + " i1\n", + " \n", + " \n", + " 17\n", + " 176\n", + " 8\n", + " 남\n", + " 북\n", + " -571542810_01\n", + " -571542797_02.99\n", + " i1\n", + " \n", + " \n", + " 18\n", + " 176\n", " 17\n", " None\n", " None\n", " None\n", " None\n", - " c30\n", + " i1\n", " \n", " \n", - " 17\n", - " 211\n", + " 19\n", + " 176\n", " 18\n", " None\n", " None\n", " None\n", " None\n", - " c30\n", - " \n", - " \n", - "\n", - "" - ], - "text/plain": [ - " inter_no move_no inc_dir out_dir inc_edge out_edge node_id\n", - "0 175 17 None None None None i0\n", - "1 175 18 None None None None i0\n", - "2 176 17 None None None None i1\n", - "3 176 18 None None None None i1\n", - "4 177 17 None None None None i2\n", - "5 177 18 None None None None i2\n", - "6 178 17 None None None None i3\n", - "7 178 18 None None None None i3\n", - "8 201 17 None None None None i8\n", - "9 201 18 None None None None i8\n", - "10 202 17 None None None None i9\n", - "11 202 18 None None None None i9\n", - "12 206 17 None None None None i7\n", - "13 206 18 None None None None i7\n", - "14 210 17 None None None None i6\n", - "15 210 18 None None None None i6\n", - "16 211 17 None None None None c30\n", - "17 211 18 None None None None c30" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# 각 교차로에 대하여, 가능한 모든 이동류(1~18, 21)에 대한 진입·진출엣지ID를 지정한다.\n", - "# 모든 이동류에 대해 지정하므로, 시차제시 이전과 다른 이동류가 등장하더라도 항상 진입·진출 엣지 ID를 지정할 수 있다.\n", - "match6 = match5.copy().dropna()\n", - "match6 = match6[['inter_no', 'move_no', 'inc_dir', 'out_dir', 'inc_edge', 'out_edge', 'node_id']]\n", - "# (1) 가능한 (진입방향, 진출방향) 목록\n", - "flows = nema.dropna().apply(lambda row: (row['inc_dir'], row['out_dir']), axis=1).tolist()\n", - "# (2) 각 교차로별 방향 목록 : pdires\n", - "pdires = {}\n", - "for inter_no in match6.inter_no.unique():\n", - " dires = match6[match6.inter_no == inter_no][['inc_dir','out_dir']].values.flatten()\n", - " dires = {dire for dire in dires if type(dir)==str}\n", - " pdires[inter_no] = dires\n", - "# (3) 각 (교차로, 진입방향) 별 진입id 목록 : inc2id\n", - "inc2id = {}\n", - "for inter_no in match6.inter_no.unique():\n", - " for inc_dir in pdires[inter_no]:\n", - " df = match6[(match6.inter_no==inter_no) & (match6.inc_dir==inc_dir)]\n", - " inc2id[(inter_no, inc_dir)] = df.inc_edge.iloc[0]\n", - "# (4) 각 (교차로, 진출방향) 별 진출id 목록 : out2id\n", - "out2id = {}\n", - "for inter_no in match6.inter_no.unique():\n", - " for out_dir in pdires[inter_no]:\n", - " df = match6[(match6.inter_no==inter_no) & (match6.out_dir==out_dir)]\n", - " out2id[(inter_no, out_dir)] = df.out_edge.iloc[0]\n", - "# (5) 각 교차로별 가능한 (진입방향, 진출방향) 목록 : pflows\n", - "pflow = {}\n", - "for inter_no in match6.inter_no.unique():\n", - " pflow[inter_no] = [flow for flow in flows if set(flow).issubset(pdires[inter_no])]\n", - "# (6) 가능한 이동류에 대하여 진입id, 진출id 배정 : matching\n", - "inter2node = dict(zip(match6['inter_no'], match6['node_id']))\n", - "dires_right = ['북', '서', '남', '동', '북']\n", - "matching = []\n", - "for inter_no in match6.inter_no.unique():\n", - " node_id = inter2node[inter_no]\n", - " # 좌회전과 직진\n", - " for (inc_dir, out_dir) in pflow[inter_no]:\n", - " move_no = nema[(nema.inc_dir==inc_dir) & (nema.out_dir==out_dir)].move_no.iloc[0]\n", - " inc_edge = inc2id[(inter_no, inc_dir)]\n", - " out_edge = out2id[(inter_no, out_dir)]\n", - " new_row = pd.DataFrame({'inter_no':[inter_no], 'move_no':[move_no],\n", - " 'inc_dir':[inc_dir], 'out_dir':[out_dir],\n", - " 'inc_edge':[inc_edge], 'out_edge':[out_edge], 'node_id':[node_id]})\n", - " matching.append(new_row)\n", - " # 보행신호(17), 전적색(18)\n", - " new_row = pd.DataFrame({'inter_no':[inter_no] * 2, 'move_no':[17, 18],\n", - " 'inc_dir':[None]*2, 'out_dir':[None]*2,\n", - " 'inc_edge':[None]*2, 'out_edge':[None]*2, 'node_id':[node_id]*2})\n", - " matching.append(new_row)\n", - " # 신호우회전(21)\n", - " for d in range(len(dires_right)-1):\n", - " inc_dir = dires_right[d]\n", - " out_dir = dires_right[d+1]\n", - " if {inc_dir, out_dir}.issubset(pdires[inter_no]):\n", - " inc_edge = inc2id[(inter_no, inc_dir)]\n", - " out_edge = out2id[(inter_no, out_dir)]\n", - " new_row = pd.DataFrame({'inter_no':[inter_no], 'move_no':[21],\n", - " 'inc_dir':[inc_dir], 'out_dir':[out_dir],\n", - " 'inc_edge':[inc_edge], 'out_edge':[out_edge], 'node_id':[node_id]})\n", - " matching.append(new_row)\n", - "matching = pd.concat(matching)\n", - "matching = matching.sort_values(by=['inter_no', 'move_no']).reset_index(drop=True)\n", - "with pd.option_context('display.max_rows', None, 'display.max_columns', None):\n", - " display(matching)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# 2. 이력 + 이동류" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - " 0%| | 0/17280 [00:00 fsec - 3600]\n", - " # print()\n", - " # print(fsec)\n", - " # print(fsec - 3600)\n", - " start_unix_min = movement.start_unix.min()\n", - " start_unix_max = movement.start_unix.max()\n", - " # print(start_unix_min)\n", - " # print(start_unix_max)\n", - " # print(start_unix_max - start_unix_min)\n", - " movement = movement.sort_values(by=['start_unix','inter_no','phas_A','phas_B']).reset_index(drop=True)\n", - "\n", - " time2movement[fsec] = movement\n", - " movement.to_csv(f'../../Data/tables/movements/movements_{fsec}.csv')\n", - "\n", - "# 각 movement들의 길이 시각화\n", - "import matplotlib.pyplot as plt\n", - "plt.plot(fsecs, [len(time2movement[fsec]) for fsec in fsecs])\n", - "plt.close()" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
inter_noend_unixdur_A1dur_A2dur_A3dur_A4dur_A5dur_A6dur_A7dur_A8dur_B1dur_B2dur_B3dur_B4dur_B5dur_B6dur_B7dur_B8cycle
01781704380405383940230000383940230000140
12061704380520333526260000333526260000120
2211170438052528970000002897000000125
51781704380540383940230000383940230000140
4201170438054024241758170002424175817000140
\n", - "
" - ], - "text/plain": [ - " inter_no end_unix dur_A1 dur_A2 dur_A3 dur_A4 dur_A5 dur_A6 \\\n", - "0 178 1704380405 38 39 40 23 0 0 \n", - "1 206 1704380520 33 35 26 26 0 0 \n", - "2 211 1704380525 28 97 0 0 0 0 \n", - "5 178 1704380540 38 39 40 23 0 0 \n", - "4 201 1704380540 24 24 17 58 17 0 \n", - "\n", - " dur_A7 dur_A8 dur_B1 dur_B2 dur_B3 dur_B4 dur_B5 dur_B6 dur_B7 \\\n", - "0 0 0 38 39 40 23 0 0 0 \n", - "1 0 0 33 35 26 26 0 0 0 \n", - "2 0 0 28 97 0 0 0 0 0 \n", - "5 0 0 38 39 40 23 0 0 0 \n", - "4 0 0 24 24 17 58 17 0 0 \n", - "\n", - " dur_B8 cycle \n", - "0 0 140 \n", - "1 0 120 \n", - "2 0 125 \n", - "5 0 140 \n", - "4 0 140 " - ] - }, - "execution_count": 11, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# 세부현시로 되어있던 history를 A, B로 나뉘어 현시시간이 구성된 형태로 바꿈.\n", - "plan = pd.read_csv('../../Data/tables/plan.csv', index_col=0)\n", - "history = pd.read_csv('../../Data/tables/history.csv', index_col=0)\n", - "\n", - "# A, B 분리 혹은 통합시 사용할 수 있는 딕셔너리\n", - "splits = {} # splits maps (inter_no, start_hour, start_minute) to split\n", - "for i, row in plan.iterrows():\n", - " inter_no = row.inter_no\n", - " start_hour = row.start_hour\n", - " start_minute = row.start_minute\n", - " cycle = row.cycle\n", - " cums_A = row[[f'dura_A{j}' for j in range(1,9)]].cumsum()\n", - " cums_B = row[[f'dura_B{j}' for j in range(1,9)]].cumsum()\n", - " splits[(inter_no, start_hour, start_minute)] = {} # split maps (phas_A, phas_B) to k\n", - " k = 0\n", - " for t in range(cycle):\n", - " new_phas_A = len(cums_A[cums_A < t]) + 1\n", - " new_phas_B = len(cums_B[cums_B < t]) + 1\n", - " if k == 0 or ((new_phas_A, new_phas_B) != (phas_A, phas_B)):\n", - " k += 1\n", - " phas_A = new_phas_A\n", - " phas_B = new_phas_B\n", - " splits[(inter_no, start_hour, start_minute)][(phas_A, phas_B)] = k\n", - "# the inverse of splits\n", - "isplits = {} # isplit maps k to (phas_A, phas_B)\n", - "for i in splits:\n", - " isplits[i] = {splits[i][k]:k for k in splits[i]}\n", - "\n", - "timetable = plan[['start_hour', 'start_minute']].drop_duplicates()\n", - "timetable['start_seconds'] = midnight + timetable['start_hour'] * 3600 + timetable['start_minute'] * 60\n", - "\n", - "abhistory = history.copy() # A, B가 나뉘어진 history\n", - "# history의 행들을 순회하며 새로운 열 dur_A1, dur_A2, ... 를 만들어내고 값을 배정함.\n", - "for i, row in abhistory.iterrows():\n", - " inter_no = row.inter_no\n", - " ind = (timetable['start_seconds'] < row.end_unix).sum() - 1\n", - " start_hour = timetable.iloc[ind].start_hour\n", - " start_minute = timetable.iloc[ind].start_minute\n", - " isplit = isplits[(inter_no,start_hour,start_minute)]\n", - " dur_dict = {}\n", - " dur_chars = [f'dur_{alph}{j}' for alph in ['A', 'B'] for j in range(1, 9)] # 새로운 행들\n", - " for dur_char in dur_chars:\n", - " dur_dict[dur_char] = 0\n", - " for k in range(1, len(isplit)+1): # dur_dict에 값 저장\n", - " ja = isplit[k][0] # A현시번호\n", - " jb = isplit[k][1] # B현시번호\n", - " dur_dict[f'dur_A{ja}'] += row[f'ddur_{k}']\n", - " dur_dict[f'dur_B{jb}'] += row[f'ddur_{k}']\n", - " for dur_char in dur_chars: # history의 새로운 열들에 값 배정\n", - " abhistory.at[i, dur_char] = dur_dict[dur_char]\n", - "abhistory = abhistory[['inter_no','end_unix'] + dur_chars + ['cycle']].astype(int)\n", - "abhistory = abhistory.astype(int).sort_values(by = ['end_unix','inter_no'])\n", - "abhistory.head()" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [], - "source": [ - "fmins = range(midnight, next_day, 300) # fmins : unix time by Five MINuteS\n", - "\n", - "def make_histid(m:int):\n", - " '''\n", - " input : m\n", - " - m ranges from 0 to 287, but 0 makes an error where 288 = 86400//300\n", - " - present_time = fmins[m] : 현재시점\n", - " output : histid\n", - " - history with edge ids (incoming and outgoing edge ids)\n", - " - 현재시점으로부터 한시간동안 (교차로번호, 현시, 링)별 현시시간, 진입엣지id, 진출엣지id\n", - " '''\n", - " present_time = fmins[m] ####### 현재 시점 ranges from 0 to 287\n", - " # - 5분마다 신호이력 데이터 수집해서 통합테이블 생성할때\n", - " # 1. 조회시점의 유닉스 타임을 기준으로 신호이력의 유닉스 타임이 1시간 이내인 데이터 수집\n", - " rhistory = history.copy()\n", - " rhistory = rhistory[(rhistory.end_unix < present_time) & (rhistory.end_unix >= present_time - 3600)]\n", - " # durs_A = [f'dur_A{j}' for j in range(1, 9)]\n", - " # durs_B = [f'dur_B{j}' for j in range(1, 9)]\n", - " ddurs = [f'ddur_{j}' for j in range(1, 9)]\n", - "\n", - " # 2. 시작 유닉스 타임컬럼 생성 후 종류 유닉스 타임에서 현시별 현시기간 컬럼의 합을 뺀 값으로 입력\n", - " # - 현시시간의 합을 뺀 시간의 +- 10초 이내에 이전 주기정보가 존재하면 그 유닉스 시간을 시작 유닉스시간 값으로 하고, 존재하지 않으면 현시시간의 합을 뺀 유닉스 시간을 시작 유닉스 시간으로 지정\n", - " # # 이전 유닉스 존재하지 않음 => 현시시간 합의 차\n", - " # # 이전 유닉스 존재, abs < 10 => 이전 유닉스\n", - " # # 이전 유닉스 존재, abs >=10 => 현시시간 합의 차\n", - " for i, row in rhistory.iterrows():\n", - " inter_no = row.inter_no\n", - " end_unix = row.end_unix\n", - " elapsed_time = row[ddurs].sum()\n", - " start_unix = end_unix - elapsed_time\n", - " pre_rows = history[:i] # previous rows\n", - " if inter_no in pre_rows.inter_no.unique(): # 이전 유닉스 존재\n", - " pre_unix = pre_rows[pre_rows.inter_no == inter_no]['end_unix'].iloc[-1] # previous unix time\n", - " if abs(pre_unix - start_unix) < 10: # abs < 10\n", - " start_unix = pre_unix\n", - " else: # abs >= 10\n", - " pass\n", - " rhistory.loc[i, 'start_unix'] = start_unix\n", - " rhistory[rhistory.isna()] = 0\n", - " rhistory['start_unix'] = rhistory['start_unix'].astype(int)\n", - " # with pd.option_context('display.max_rows', None, 'display.max_columns', None):\n", - " # display(rhistory)\n", - " rhistory = rhistory[['inter_no', 'start_unix'] + ddurs + ['cycle']]\n", - "\n", - " # 계층화된 형태로 변환\n", - " hrhistory = [] # hierarchied recent history\n", - " for i, row in rhistory.iterrows():\n", - " inter_no = row.inter_no #\n", - " start_unix = row.start_unix #\n", - " ind = (timetable['start_seconds'] <= row.start_unix).sum() - 1\n", - " start_hour = timetable.iloc[ind].start_hour\n", - " start_minute = timetable.iloc[ind].start_minute\n", - " isplit = isplits[(inter_no, start_hour, start_minute)]\n", - " new_rows = []\n", - " for j in isplit.keys():\n", - " phas_A, phas_B = isplit[j]\n", - " duration = row[f'ddur_{j}']\n", - " new_rows.append(pd.DataFrame({'inter_no':[inter_no], 'start_unix':[start_unix],\n", - " 'phas_A':[phas_A],'phas_B':[phas_B],'duration':[duration]}))\n", - " new_rows = pd.concat(new_rows)\n", - " hrhistory.append(new_rows)\n", - " hrhistory = pd.concat(hrhistory)\n", - " hrhistory = hrhistory.sort_values(by = ['start_unix', 'inter_no', 'phas_A', 'phas_B']).reset_index(drop=True)\n", - "\n", - " # 5초단위로 수집한 이동류정보(time2movement[present_time])와 최근 1시간 신호이력(hrhistory)을 병합\n", - " movedur = pd.merge(time2movement[present_time], hrhistory, how='inner', on=['inter_no', 'start_unix', 'phas_A', 'phas_B'])\n", - " # movements and durations\n", - " movedur = movedur.sort_values(by=['start_unix', 'inter_no', 'phas_A','phas_B'])\n", - " movedur = movedur[['inter_no', 'start_unix', 'phas_A', 'phas_B', 'move_A', 'move_B', 'duration']]\n", - " # 이동류 매칭 테이블에서 진입id, 진출id를 가져와서 붙임.\n", - " for i, row in movedur.iterrows():\n", - " inter_no = row.inter_no\n", - " start_unix = row.start_unix\n", - " move_A = row.move_A\n", - " move_B = row.move_B\n", - " match_A = matching[(matching.inter_no == inter_no) & (matching.move_no == move_A)].iloc[0]\n", - " match_B = matching[(matching.inter_no == inter_no) & (matching.move_no == move_B)].iloc[0]\n", - " inc_edge_A = match_A.inc_edge\n", - " inc_edge_B = match_B.inc_edge\n", - " out_edge_A = match_A.out_edge\n", - " out_edge_B = match_B.out_edge\n", - " movedur.loc[i, ['inc_edge_A', 'inc_edge_B', 'out_edge_A', 'out_edge_B']] = [inc_edge_A, inc_edge_B, out_edge_A, out_edge_B]\n", - " # 이동류 컬럼 제거\n", - " movedur = movedur.drop(['move_A', 'move_B'], axis=1)\n", - "\n", - " histid = movedur.copy() # history with edge ids (incoming and outgoing edge ids)\n", - " return histid" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [ - { - "ename": "IndexError", - "evalue": "single positional indexer is out-of-bounds", - "output_type": "error", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mIndexError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[1;32mIn[13], line 1\u001b[0m\n\u001b[1;32m----> 1\u001b[0m \u001b[43mmake_histid\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m200\u001b[39;49m\u001b[43m)\u001b[49m\u001b[38;5;241m.\u001b[39minter_no\u001b[38;5;241m.\u001b[39munique()\n", - "Cell \u001b[1;32mIn[12], line 76\u001b[0m, in \u001b[0;36mmake_histid\u001b[1;34m(m)\u001b[0m\n\u001b[0;32m 74\u001b[0m move_A \u001b[38;5;241m=\u001b[39m row\u001b[38;5;241m.\u001b[39mmove_A\n\u001b[0;32m 75\u001b[0m move_B \u001b[38;5;241m=\u001b[39m row\u001b[38;5;241m.\u001b[39mmove_B\n\u001b[1;32m---> 76\u001b[0m match_A \u001b[38;5;241m=\u001b[39m \u001b[43mmatching\u001b[49m\u001b[43m[\u001b[49m\u001b[43m(\u001b[49m\u001b[43mmatching\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43minter_no\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m==\u001b[39;49m\u001b[43m \u001b[49m\u001b[43minter_no\u001b[49m\u001b[43m)\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m&\u001b[39;49m\u001b[43m \u001b[49m\u001b[43m(\u001b[49m\u001b[43mmatching\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mmove_no\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m==\u001b[39;49m\u001b[43m \u001b[49m\u001b[43mmove_A\u001b[49m\u001b[43m)\u001b[49m\u001b[43m]\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43miloc\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;241;43m0\u001b[39;49m\u001b[43m]\u001b[49m\n\u001b[0;32m 77\u001b[0m match_B \u001b[38;5;241m=\u001b[39m matching[(matching\u001b[38;5;241m.\u001b[39minter_no \u001b[38;5;241m==\u001b[39m inter_no) \u001b[38;5;241m&\u001b[39m (matching\u001b[38;5;241m.\u001b[39mmove_no \u001b[38;5;241m==\u001b[39m move_B)]\u001b[38;5;241m.\u001b[39miloc[\u001b[38;5;241m0\u001b[39m]\n\u001b[0;32m 78\u001b[0m inc_edge_A \u001b[38;5;241m=\u001b[39m match_A\u001b[38;5;241m.\u001b[39minc_edge\n", - "File \u001b[1;32mc:\\Github\\SNITS_RealTimeSignals\\rts\\lib\\site-packages\\pandas\\core\\indexing.py:1103\u001b[0m, in \u001b[0;36m_LocationIndexer.__getitem__\u001b[1;34m(self, key)\u001b[0m\n\u001b[0;32m 1100\u001b[0m axis \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39maxis \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;241m0\u001b[39m\n\u001b[0;32m 1102\u001b[0m maybe_callable \u001b[38;5;241m=\u001b[39m com\u001b[38;5;241m.\u001b[39mapply_if_callable(key, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mobj)\n\u001b[1;32m-> 1103\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_getitem_axis\u001b[49m\u001b[43m(\u001b[49m\u001b[43mmaybe_callable\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43maxis\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43maxis\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[1;32mc:\\Github\\SNITS_RealTimeSignals\\rts\\lib\\site-packages\\pandas\\core\\indexing.py:1656\u001b[0m, in \u001b[0;36m_iLocIndexer._getitem_axis\u001b[1;34m(self, key, axis)\u001b[0m\n\u001b[0;32m 1653\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mTypeError\u001b[39;00m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mCannot index by location index with a non-integer key\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m 1655\u001b[0m \u001b[38;5;66;03m# validate the location\u001b[39;00m\n\u001b[1;32m-> 1656\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_validate_integer\u001b[49m\u001b[43m(\u001b[49m\u001b[43mkey\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43maxis\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 1658\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mobj\u001b[38;5;241m.\u001b[39m_ixs(key, axis\u001b[38;5;241m=\u001b[39maxis)\n", - "File \u001b[1;32mc:\\Github\\SNITS_RealTimeSignals\\rts\\lib\\site-packages\\pandas\\core\\indexing.py:1589\u001b[0m, in \u001b[0;36m_iLocIndexer._validate_integer\u001b[1;34m(self, key, axis)\u001b[0m\n\u001b[0;32m 1587\u001b[0m len_axis \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mlen\u001b[39m(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mobj\u001b[38;5;241m.\u001b[39m_get_axis(axis))\n\u001b[0;32m 1588\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m key \u001b[38;5;241m>\u001b[39m\u001b[38;5;241m=\u001b[39m len_axis \u001b[38;5;129;01mor\u001b[39;00m key \u001b[38;5;241m<\u001b[39m \u001b[38;5;241m-\u001b[39mlen_axis:\n\u001b[1;32m-> 1589\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mIndexError\u001b[39;00m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124msingle positional indexer is out-of-bounds\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n", - "\u001b[1;31mIndexError\u001b[0m: single positional indexer is out-of-bounds" - ] - } - ], - "source": [ - "make_histid(200).inter_no.unique()" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
inter_noend_unixddur_1ddur_2ddur_3ddur_4ddur_5ddur_6ddur_7ddur_8cycleoffsetdiff
181751704380720373925302900016057160
281751704380880373925302900016057160
381751704381040373925302900016057160
471751704381200373925302900016057160
571751704381360373925302900016057160
671751704381520373925302900016057160
791751704381680373925302900016057160
881751704381841373925302900016057161
971751704382000373925302900016057159
1071751704382160373925302900016057160
1161751704382320373925302900016057160
1271751704382480373925302900016057160
1391751704382640373925302900016057160
1521751704382801373925302900016057161
1611751704382960373925302900016057159
1711751704383120373925302900016057160
1821751704383280373925302900016057160
1911751704383440373925302900016057160
2011751704383600373925302900016057160
2131751704383761373925302900016057161
2221751704383920373925302900016057159
2321751704384080373925302900016057160
2421751704384240373925302900016057160
2531751704384400373925302900016057160
2631751704384560373925302900016057160
2721751704384720373925302900016057160
2831751704384880373925302900016057160
3081751704385318373925302900016057438
3171751704385480373925302900016057162
3261751704385640373925302900016057160
3371751704385800373925302900016057160
3461751704385960373925302900016057160
3561751704386120373925302900016057160
3661751704386280373925302900016057160
3741751704386440373925302900016057160
3831751704386601373925302900016057161
3911751704386760373925302900016057159
4001751704386920373925302900016057160
4101751704387080373925302900016057160
4201751704387241373925302900016057161
4291751704387400373925302900016057159
4381751704387560373925302900016057160
4471751704387720373925302900016057160
4551751704387880373925302900016057160
4651751704388040373925302900016057160
4771751704388201373925302900016057161
4851751704388360373925302900016057159
4951751704388520373925302900016057160
5051751704388680373925302900016057160
5131751704388840373925302900016057160
5221751704389000373925302900016057160
5311751704389160373925302900016057160
5401751704389320373925302900016057160
5501751704389480373925302900016057160
5581751704389640373925302900016057160
5681751704389800373925302900016057160
5771751704389960373925302900016057160
5861751704390121373925302900016057161
5951751704390280373925302900016057159
6041751704390440373925302900016057160
6141751704390600373925302900016057160
6241751704390761373925302900016057161
6351751704390920373925302900016057159
6441751704391080373925302900016057160
6521751704391240373925302900016057160
6611751704391400373925302900016057160
6731751704391560373925302900016057160
6821751704391720373925302900016057160
6911751704391880373925302900016057160
7011751704392040373925302900016057160
7111751704392200373925302900016057160
7191751704392360373925302900016057160
7281751704392520373925302900016057160
7371751704392680373925302900016057160
7461751704392840373925302900016057160
7561751704393000373925302900016057160
7661751704393160373925302900016057160
7741751704393320373925302900016057160
7831751704393480373925302900016057160
7931751704393640373925302900016057160
8021751704393801373925302900016057161
8121751704393960373925302900016057159
8231751704394120373925302900016057160
8331751704394280373925302900016057160
8421751704394440373925302900016057160
8531751704394600373925302900016057160
8631751704394760373925302900016057160
8721751704394920373925302900016057160
8841751704395079373925302900016057159
8951751704395240373925302900016057161
9041751704395400373925302900016057160
9161751704395559373925302900016057159
9251751704395720373925302900016057161
9371751704395880373925302900016057160
9481751704396041373925302900016057161
9581751704396200373925302900016057159
9681751704396360373925302900016057160
9791751704396519373925302900016057159
9881751704396680373925302900016057161
9981751704396840373925302900016057160
10091751704397000373925302900016057160
10191751704397160373925302900016057160
10291751704397319373925302900016057159
10421751704397480373925302900016057161
10511751704397640373925302900016057160
10601751704397800373925302900016057160
10721751704397959373925302900016057159
10821751704398120373925302900016057161
10921751704398280373925302900016057160
11031751704398440373925302900016057160
11141751704398600373925302900016057160
11241751704398760373925302900016057160
11341751704398920373925302900016057160
11431751704399080373925302900016057160
11541751704399240373925302900016057160
11651751704399400373925302900016057160
11761751704399561373925302900016057161
11861751704399720373925302900016057159
11961751704399880373925302900016057160
12051751704400040373925302900016057160
12141751704400200373925302900016057160
12261751704400359373925302900016057159
12361751704400520373925302900016057161
12461751704400679373925302900016057159
12591751704400840373925302900016057161
12681751704401000373925302900016057160
12781751704401160373925302900016057160
12881751704401320373925302900016057160
12971751704401480373925302900016057160
13051751704401640373925302900016057160
13181751704401800373925302900016057160
13261751704401960373925302900016057160
13341751704402120373925302900016057160
13421751704402281373925302900016057161
13491751704402440373925302900016057159
13561751704402600373925302900016057160
13651751704402760373925302900016057160
13731751704402920373925302900016057160
13821751704403079373925302900016057159
13891751704403240373925302900016057161
13961751704403400373925302900016057160
14041751704403560373925302900016057160
14121751704403720373925302900016057160
14191751704403880373925302900016057160
14271751704404040373925302900016057160
14361751704404200373925302900016057160
14431751704404360373925302900016057160
14501751704404520373925302900016057160
14571751704404680373925302900016057160
14641751704404840373925302900016057160
14721751704405000373925302900016057160
14811751704405161373925302900016057161
14891751704405320373925302900016057159
14971751704405479373925302900016057159
15041751704405640373925302900016057161
15111751704405810404229263300017040170
15181751704405980404229263300017040170
15251751704406150404229263300017040170
15341751704406320404229263300017040170
15421751704406490404229263300017040170
15511751704406660404229263300017040170
15591751704406830404229263300017040170
15671751704407001404229263300017040171
15751751704407170404229263300017040169
15851751704407340404229263300017040170
15931751704407510404229263300017040170
16011751704407680404229263300017040170
16101751704407850404229263300017040170
16181751704408020404229263300017040170
16261751704408190404229263300017040170
2189175170441958040422926330001704011390
21981751704419760434533223700018028180
22081751704419940434533223700018028180
22191751704420120434533223700018028180
22301751704420301434533223700018028181
22401751704420480434533223700018028179
22501751704420661434533223700018028181
22581751704420840434533223700018028179
22671751704421020434533223700018028180
22781751704421201434533223700018028181
22881751704421380434533223700018028179
22971751704421560434533223700018028180
23061751704421740434533223700018028180
23161751704421920434533223700018028180
23261751704422100434533223700018028180
23361751704422280434533223700018028180
23471751704422460434533223700018028180
23561751704422640434533223700018028180
23641751704422820434533223700018028180
23761751704423000434533223700018028180
23881751704423180434533223700018028180
23961751704423360434533223700018028180
24051751704423540434533223700018028180
24161751704423720434533223700018028180
24241751704423900434533223700018028180
24351751704424081434533223700018028181
24431751704424260434533223700018028179
24541751704424441434533223700018028181
24631751704424620434533223700018028179
24711751704424800434533223700018028180
24811751704424980434533223700018028180
24921751704425160434533223700018028180
25011751704425339434533223700018028179
25111751704425520434533223700018028181
25211751704425701434533223700018028181
25311751704425880434533223700018028179
25411751704426060434533223700018028180
25511751704426240434533223700018028180
25621751704426420434533223700018028180
25701751704426600434533223700018028180
25801751704426780434533223700018028180
25901751704426960434533223700018028180
25991751704427141434533223700018028181
26081751704427320434533223700018028179
26191751704427500434533223700018028180
26291751704427680434533223700018028180
26381751704427860434533223700018028180
26471751704428040434533223700018028180
26571751704428220434533223700018028180
26661751704428400434533223700018028180
26761751704428580434533223700018028180
26871751704428760434533223700018028180
26971751704428940434533223700018028180
27061751704429120434533223700018028180
27151751704429300434533223700018028180
27271751704429480434533223700018028180
27361751704429660434533223700018028180
27451751704429840434533223700018028180
27551751704430020434533223700018028180
27651751704430201434533223700018028181
27751751704430380434533223700018028179
27841751704430560434533223700018028180
27941751704430740434533223700018028180
28031751704430920434533223700018028180
28111751704431100434533223700018028180
28221751704431280434533223700018028180
28281751704431391434533223700018028111
28381751704431570434533223700018028179
28481751704431750434533223700018028180
28581751704431930434533223700018028180
28671751704432110434533223700018028180
28781751704432290434533223700018028180
28871751704432471434533223700018028181
28961751704432650434533223700018028179
29071751704432830434533223700018028180
29171751704433010434533223700018028180
29261751704433189434533223700018028179
29351751704433370434533223700018028181
29441751704433550434533223700018028180
29541751704433730434533223700018028180
29621751704433910434533223700018028180
29711751704434090434533223700018028180
29791751704434270434533223700018028180
29871751704434450434533223700018028180
29971751704434630434533223700018028180
30071751704434810434533223700018028180
30161751704434989434533223700018028179
30261751704435170434533223700018028181
30371751704435351434533223700018028181
30471751704435530434533223700018028179
30561751704435710434533223700018028180
30651751704435890434533223700018028180
30761751704436070434533223700018028180
30851751704436251434533223700018028181
30951751704436430434533223700018028179
31061751704436610434533223700018028180
31151751704436790434533223700018028180
31241751704436970434533223700018028180
31331751704437150434533223700018028180
31441751704437330434533223700018028180
31531751704437510434533223700018028180
31621751704437690434533223700018028180
31721751704437870434533223700018028180
31821751704438050434533223700018028180
31921751704438230434533223700018028180
32011751704438409434533223700018028179
32121751704438590434533223700018028181
32211751704438770434533223700018028180
32311751704438950434533223700018028180
32431751704439130434533223700018028180
32521751704439310434533223700018028180
32621751704439490434533223700018028180
32711751704439670434533223700018028180
32811751704439850434533223700018028180
32911751704440030434533223700018028180
33001751704440210434533223700018028180
33101751704440390434533223700018028180
33191751704440569434533223700018028179
33281751704440750434533223700018028181
33391751704440930434533223700018028180
33491751704441110434533223700018028180
33581751704441290434533223700018028180
33681751704441470434533223700018028180
33781751704441650434533223700018028180
33881751704441830434533223700018028180
33971751704442009434533223700018028179
34071751704442190434533223700018028181
34161751704442371434533223700018028181
34241751704442550434533223700018028179
34341751704442730434533223700018028180
34441751704442909434533223700018028179
34541751704443090434533223700018028181
34631751704443270434533223700018028180
34721751704443450434533223700018028180
34831751704443630434533223700018028180
3484175170444364343453322370001802813
34931751704443820434533223700018028177
35021751704444000434533223700018028180
35121751704444180434533223700018028180
35221751704444360434533223700018028180
35331751704444541434533223700018028181
35421751704444720434533223700018028179
35531751704444900434533223700018028180
35631751704445080434533223700018028180
35721751704445260434533223700018028180
35831751704445440434533223700018028180
35911751704445619434533223700018028179
36011751704445800434533223700018028181
36111751704445980434533223700018028180
36201751704446160434533223700018028180
36301751704446340434533223700018028180
36391751704446519434533223700018028179
36491751704446700434533223700018028181
36581751704446880434533223700018028180
36671751704447060434533223700018028180
36791751704447250464837184100019018190
36891751704447440464837184100019018190
36981751704447630464837184100019018190
37081751704447819464837184100019018189
37181751704448010464837184100019018191
37281751704448200464837184100019018190
37381751704448389464837184100019018189
37471751704448580464837184100019018191
37581751704448770464837184100019018190
37671751704448961464837184100019018191
37771751704449150464837184100019018189
37871751704449340464837184100019018190
37961751704449531464837184100019018191
38051751704449720464837184100019018189
38151751704449909464837184100019018189
\n", - "
" - ], - "text/plain": [ - " inter_no end_unix ddur_1 ddur_2 ddur_3 ddur_4 ddur_5 ddur_6 \\\n", - "18 175 1704380720 37 39 25 30 29 0 \n", - "28 175 1704380880 37 39 25 30 29 0 \n", - "38 175 1704381040 37 39 25 30 29 0 \n", - "47 175 1704381200 37 39 25 30 29 0 \n", - "57 175 1704381360 37 39 25 30 29 0 \n", - "67 175 1704381520 37 39 25 30 29 0 \n", - "79 175 1704381680 37 39 25 30 29 0 \n", - "88 175 1704381841 37 39 25 30 29 0 \n", - "97 175 1704382000 37 39 25 30 29 0 \n", - "107 175 1704382160 37 39 25 30 29 0 \n", - "116 175 1704382320 37 39 25 30 29 0 \n", - "127 175 1704382480 37 39 25 30 29 0 \n", - "139 175 1704382640 37 39 25 30 29 0 \n", - "152 175 1704382801 37 39 25 30 29 0 \n", - "161 175 1704382960 37 39 25 30 29 0 \n", - "171 175 1704383120 37 39 25 30 29 0 \n", - "182 175 1704383280 37 39 25 30 29 0 \n", - "191 175 1704383440 37 39 25 30 29 0 \n", - "201 175 1704383600 37 39 25 30 29 0 \n", - "213 175 1704383761 37 39 25 30 29 0 \n", - "222 175 1704383920 37 39 25 30 29 0 \n", - "232 175 1704384080 37 39 25 30 29 0 \n", - "242 175 1704384240 37 39 25 30 29 0 \n", - "253 175 1704384400 37 39 25 30 29 0 \n", - "263 175 1704384560 37 39 25 30 29 0 \n", - "272 175 1704384720 37 39 25 30 29 0 \n", - "283 175 1704384880 37 39 25 30 29 0 \n", - "308 175 1704385318 37 39 25 30 29 0 \n", - "317 175 1704385480 37 39 25 30 29 0 \n", - "326 175 1704385640 37 39 25 30 29 0 \n", - "337 175 1704385800 37 39 25 30 29 0 \n", - "346 175 1704385960 37 39 25 30 29 0 \n", - "356 175 1704386120 37 39 25 30 29 0 \n", - "366 175 1704386280 37 39 25 30 29 0 \n", - "374 175 1704386440 37 39 25 30 29 0 \n", - "383 175 1704386601 37 39 25 30 29 0 \n", - "391 175 1704386760 37 39 25 30 29 0 \n", - "400 175 1704386920 37 39 25 30 29 0 \n", - "410 175 1704387080 37 39 25 30 29 0 \n", - "420 175 1704387241 37 39 25 30 29 0 \n", - "429 175 1704387400 37 39 25 30 29 0 \n", - "438 175 1704387560 37 39 25 30 29 0 \n", - "447 175 1704387720 37 39 25 30 29 0 \n", - "455 175 1704387880 37 39 25 30 29 0 \n", - "465 175 1704388040 37 39 25 30 29 0 \n", - "477 175 1704388201 37 39 25 30 29 0 \n", - "485 175 1704388360 37 39 25 30 29 0 \n", - "495 175 1704388520 37 39 25 30 29 0 \n", - "505 175 1704388680 37 39 25 30 29 0 \n", - "513 175 1704388840 37 39 25 30 29 0 \n", - "522 175 1704389000 37 39 25 30 29 0 \n", - "531 175 1704389160 37 39 25 30 29 0 \n", - "540 175 1704389320 37 39 25 30 29 0 \n", - "550 175 1704389480 37 39 25 30 29 0 \n", - "558 175 1704389640 37 39 25 30 29 0 \n", - "568 175 1704389800 37 39 25 30 29 0 \n", - "577 175 1704389960 37 39 25 30 29 0 \n", - "586 175 1704390121 37 39 25 30 29 0 \n", - "595 175 1704390280 37 39 25 30 29 0 \n", - "604 175 1704390440 37 39 25 30 29 0 \n", - "614 175 1704390600 37 39 25 30 29 0 \n", - "624 175 1704390761 37 39 25 30 29 0 \n", - "635 175 1704390920 37 39 25 30 29 0 \n", - "644 175 1704391080 37 39 25 30 29 0 \n", - "652 175 1704391240 37 39 25 30 29 0 \n", - "661 175 1704391400 37 39 25 30 29 0 \n", - "673 175 1704391560 37 39 25 30 29 0 \n", - "682 175 1704391720 37 39 25 30 29 0 \n", - "691 175 1704391880 37 39 25 30 29 0 \n", - "701 175 1704392040 37 39 25 30 29 0 \n", - "711 175 1704392200 37 39 25 30 29 0 \n", - "719 175 1704392360 37 39 25 30 29 0 \n", - "728 175 1704392520 37 39 25 30 29 0 \n", - "737 175 1704392680 37 39 25 30 29 0 \n", - "746 175 1704392840 37 39 25 30 29 0 \n", - "756 175 1704393000 37 39 25 30 29 0 \n", - "766 175 1704393160 37 39 25 30 29 0 \n", - "774 175 1704393320 37 39 25 30 29 0 \n", - "783 175 1704393480 37 39 25 30 29 0 \n", - "793 175 1704393640 37 39 25 30 29 0 \n", - "802 175 1704393801 37 39 25 30 29 0 \n", - "812 175 1704393960 37 39 25 30 29 0 \n", - "823 175 1704394120 37 39 25 30 29 0 \n", - "833 175 1704394280 37 39 25 30 29 0 \n", - "842 175 1704394440 37 39 25 30 29 0 \n", - "853 175 1704394600 37 39 25 30 29 0 \n", - "863 175 1704394760 37 39 25 30 29 0 \n", - "872 175 1704394920 37 39 25 30 29 0 \n", - "884 175 1704395079 37 39 25 30 29 0 \n", - "895 175 1704395240 37 39 25 30 29 0 \n", - "904 175 1704395400 37 39 25 30 29 0 \n", - "916 175 1704395559 37 39 25 30 29 0 \n", - "925 175 1704395720 37 39 25 30 29 0 \n", - "937 175 1704395880 37 39 25 30 29 0 \n", - "948 175 1704396041 37 39 25 30 29 0 \n", - "958 175 1704396200 37 39 25 30 29 0 \n", - "968 175 1704396360 37 39 25 30 29 0 \n", - "979 175 1704396519 37 39 25 30 29 0 \n", - "988 175 1704396680 37 39 25 30 29 0 \n", - "998 175 1704396840 37 39 25 30 29 0 \n", - "1009 175 1704397000 37 39 25 30 29 0 \n", - "1019 175 1704397160 37 39 25 30 29 0 \n", - "1029 175 1704397319 37 39 25 30 29 0 \n", - "1042 175 1704397480 37 39 25 30 29 0 \n", - "1051 175 1704397640 37 39 25 30 29 0 \n", - "1060 175 1704397800 37 39 25 30 29 0 \n", - "1072 175 1704397959 37 39 25 30 29 0 \n", - "1082 175 1704398120 37 39 25 30 29 0 \n", - "1092 175 1704398280 37 39 25 30 29 0 \n", - "1103 175 1704398440 37 39 25 30 29 0 \n", - "1114 175 1704398600 37 39 25 30 29 0 \n", - "1124 175 1704398760 37 39 25 30 29 0 \n", - "1134 175 1704398920 37 39 25 30 29 0 \n", - "1143 175 1704399080 37 39 25 30 29 0 \n", - "1154 175 1704399240 37 39 25 30 29 0 \n", - "1165 175 1704399400 37 39 25 30 29 0 \n", - "1176 175 1704399561 37 39 25 30 29 0 \n", - "1186 175 1704399720 37 39 25 30 29 0 \n", - "1196 175 1704399880 37 39 25 30 29 0 \n", - "1205 175 1704400040 37 39 25 30 29 0 \n", - "1214 175 1704400200 37 39 25 30 29 0 \n", - "1226 175 1704400359 37 39 25 30 29 0 \n", - "1236 175 1704400520 37 39 25 30 29 0 \n", - "1246 175 1704400679 37 39 25 30 29 0 \n", - "1259 175 1704400840 37 39 25 30 29 0 \n", - "1268 175 1704401000 37 39 25 30 29 0 \n", - "1278 175 1704401160 37 39 25 30 29 0 \n", - "1288 175 1704401320 37 39 25 30 29 0 \n", - "1297 175 1704401480 37 39 25 30 29 0 \n", - "1305 175 1704401640 37 39 25 30 29 0 \n", - "1318 175 1704401800 37 39 25 30 29 0 \n", - "1326 175 1704401960 37 39 25 30 29 0 \n", - "1334 175 1704402120 37 39 25 30 29 0 \n", - "1342 175 1704402281 37 39 25 30 29 0 \n", - "1349 175 1704402440 37 39 25 30 29 0 \n", - "1356 175 1704402600 37 39 25 30 29 0 \n", - "1365 175 1704402760 37 39 25 30 29 0 \n", - "1373 175 1704402920 37 39 25 30 29 0 \n", - "1382 175 1704403079 37 39 25 30 29 0 \n", - "1389 175 1704403240 37 39 25 30 29 0 \n", - "1396 175 1704403400 37 39 25 30 29 0 \n", - "1404 175 1704403560 37 39 25 30 29 0 \n", - "1412 175 1704403720 37 39 25 30 29 0 \n", - "1419 175 1704403880 37 39 25 30 29 0 \n", - "1427 175 1704404040 37 39 25 30 29 0 \n", - "1436 175 1704404200 37 39 25 30 29 0 \n", - "1443 175 1704404360 37 39 25 30 29 0 \n", - "1450 175 1704404520 37 39 25 30 29 0 \n", - "1457 175 1704404680 37 39 25 30 29 0 \n", - "1464 175 1704404840 37 39 25 30 29 0 \n", - "1472 175 1704405000 37 39 25 30 29 0 \n", - "1481 175 1704405161 37 39 25 30 29 0 \n", - "1489 175 1704405320 37 39 25 30 29 0 \n", - "1497 175 1704405479 37 39 25 30 29 0 \n", - "1504 175 1704405640 37 39 25 30 29 0 \n", - "1511 175 1704405810 40 42 29 26 33 0 \n", - "1518 175 1704405980 40 42 29 26 33 0 \n", - "1525 175 1704406150 40 42 29 26 33 0 \n", - "1534 175 1704406320 40 42 29 26 33 0 \n", - "1542 175 1704406490 40 42 29 26 33 0 \n", - "1551 175 1704406660 40 42 29 26 33 0 \n", - "1559 175 1704406830 40 42 29 26 33 0 \n", - "1567 175 1704407001 40 42 29 26 33 0 \n", - "1575 175 1704407170 40 42 29 26 33 0 \n", - "1585 175 1704407340 40 42 29 26 33 0 \n", - "1593 175 1704407510 40 42 29 26 33 0 \n", - "1601 175 1704407680 40 42 29 26 33 0 \n", - "1610 175 1704407850 40 42 29 26 33 0 \n", - "1618 175 1704408020 40 42 29 26 33 0 \n", - "1626 175 1704408190 40 42 29 26 33 0 \n", - "2189 175 1704419580 40 42 29 26 33 0 \n", - "2198 175 1704419760 43 45 33 22 37 0 \n", - "2208 175 1704419940 43 45 33 22 37 0 \n", - "2219 175 1704420120 43 45 33 22 37 0 \n", - "2230 175 1704420301 43 45 33 22 37 0 \n", - "2240 175 1704420480 43 45 33 22 37 0 \n", - "2250 175 1704420661 43 45 33 22 37 0 \n", - "2258 175 1704420840 43 45 33 22 37 0 \n", - "2267 175 1704421020 43 45 33 22 37 0 \n", - "2278 175 1704421201 43 45 33 22 37 0 \n", - "2288 175 1704421380 43 45 33 22 37 0 \n", - "2297 175 1704421560 43 45 33 22 37 0 \n", - "2306 175 1704421740 43 45 33 22 37 0 \n", - "2316 175 1704421920 43 45 33 22 37 0 \n", - "2326 175 1704422100 43 45 33 22 37 0 \n", - "2336 175 1704422280 43 45 33 22 37 0 \n", - "2347 175 1704422460 43 45 33 22 37 0 \n", - "2356 175 1704422640 43 45 33 22 37 0 \n", - "2364 175 1704422820 43 45 33 22 37 0 \n", - "2376 175 1704423000 43 45 33 22 37 0 \n", - "2388 175 1704423180 43 45 33 22 37 0 \n", - "2396 175 1704423360 43 45 33 22 37 0 \n", - "2405 175 1704423540 43 45 33 22 37 0 \n", - "2416 175 1704423720 43 45 33 22 37 0 \n", - "2424 175 1704423900 43 45 33 22 37 0 \n", - "2435 175 1704424081 43 45 33 22 37 0 \n", - "2443 175 1704424260 43 45 33 22 37 0 \n", - "2454 175 1704424441 43 45 33 22 37 0 \n", - "2463 175 1704424620 43 45 33 22 37 0 \n", - "2471 175 1704424800 43 45 33 22 37 0 \n", - "2481 175 1704424980 43 45 33 22 37 0 \n", - "2492 175 1704425160 43 45 33 22 37 0 \n", - "2501 175 1704425339 43 45 33 22 37 0 \n", - "2511 175 1704425520 43 45 33 22 37 0 \n", - "2521 175 1704425701 43 45 33 22 37 0 \n", - "2531 175 1704425880 43 45 33 22 37 0 \n", - "2541 175 1704426060 43 45 33 22 37 0 \n", - "2551 175 1704426240 43 45 33 22 37 0 \n", - "2562 175 1704426420 43 45 33 22 37 0 \n", - "2570 175 1704426600 43 45 33 22 37 0 \n", - "2580 175 1704426780 43 45 33 22 37 0 \n", - "2590 175 1704426960 43 45 33 22 37 0 \n", - "2599 175 1704427141 43 45 33 22 37 0 \n", - "2608 175 1704427320 43 45 33 22 37 0 \n", - "2619 175 1704427500 43 45 33 22 37 0 \n", - "2629 175 1704427680 43 45 33 22 37 0 \n", - "2638 175 1704427860 43 45 33 22 37 0 \n", - "2647 175 1704428040 43 45 33 22 37 0 \n", - "2657 175 1704428220 43 45 33 22 37 0 \n", - "2666 175 1704428400 43 45 33 22 37 0 \n", - "2676 175 1704428580 43 45 33 22 37 0 \n", - "2687 175 1704428760 43 45 33 22 37 0 \n", - "2697 175 1704428940 43 45 33 22 37 0 \n", - "2706 175 1704429120 43 45 33 22 37 0 \n", - "2715 175 1704429300 43 45 33 22 37 0 \n", - "2727 175 1704429480 43 45 33 22 37 0 \n", - "2736 175 1704429660 43 45 33 22 37 0 \n", - "2745 175 1704429840 43 45 33 22 37 0 \n", - "2755 175 1704430020 43 45 33 22 37 0 \n", - "2765 175 1704430201 43 45 33 22 37 0 \n", - "2775 175 1704430380 43 45 33 22 37 0 \n", - "2784 175 1704430560 43 45 33 22 37 0 \n", - "2794 175 1704430740 43 45 33 22 37 0 \n", - "2803 175 1704430920 43 45 33 22 37 0 \n", - "2811 175 1704431100 43 45 33 22 37 0 \n", - "2822 175 1704431280 43 45 33 22 37 0 \n", - "2828 175 1704431391 43 45 33 22 37 0 \n", - "2838 175 1704431570 43 45 33 22 37 0 \n", - "2848 175 1704431750 43 45 33 22 37 0 \n", - "2858 175 1704431930 43 45 33 22 37 0 \n", - "2867 175 1704432110 43 45 33 22 37 0 \n", - "2878 175 1704432290 43 45 33 22 37 0 \n", - "2887 175 1704432471 43 45 33 22 37 0 \n", - "2896 175 1704432650 43 45 33 22 37 0 \n", - "2907 175 1704432830 43 45 33 22 37 0 \n", - "2917 175 1704433010 43 45 33 22 37 0 \n", - "2926 175 1704433189 43 45 33 22 37 0 \n", - "2935 175 1704433370 43 45 33 22 37 0 \n", - "2944 175 1704433550 43 45 33 22 37 0 \n", - "2954 175 1704433730 43 45 33 22 37 0 \n", - "2962 175 1704433910 43 45 33 22 37 0 \n", - "2971 175 1704434090 43 45 33 22 37 0 \n", - "2979 175 1704434270 43 45 33 22 37 0 \n", - "2987 175 1704434450 43 45 33 22 37 0 \n", - "2997 175 1704434630 43 45 33 22 37 0 \n", - "3007 175 1704434810 43 45 33 22 37 0 \n", - "3016 175 1704434989 43 45 33 22 37 0 \n", - "3026 175 1704435170 43 45 33 22 37 0 \n", - "3037 175 1704435351 43 45 33 22 37 0 \n", - "3047 175 1704435530 43 45 33 22 37 0 \n", - "3056 175 1704435710 43 45 33 22 37 0 \n", - "3065 175 1704435890 43 45 33 22 37 0 \n", - "3076 175 1704436070 43 45 33 22 37 0 \n", - "3085 175 1704436251 43 45 33 22 37 0 \n", - "3095 175 1704436430 43 45 33 22 37 0 \n", - "3106 175 1704436610 43 45 33 22 37 0 \n", - "3115 175 1704436790 43 45 33 22 37 0 \n", - "3124 175 1704436970 43 45 33 22 37 0 \n", - "3133 175 1704437150 43 45 33 22 37 0 \n", - "3144 175 1704437330 43 45 33 22 37 0 \n", - "3153 175 1704437510 43 45 33 22 37 0 \n", - "3162 175 1704437690 43 45 33 22 37 0 \n", - "3172 175 1704437870 43 45 33 22 37 0 \n", - "3182 175 1704438050 43 45 33 22 37 0 \n", - "3192 175 1704438230 43 45 33 22 37 0 \n", - "3201 175 1704438409 43 45 33 22 37 0 \n", - "3212 175 1704438590 43 45 33 22 37 0 \n", - "3221 175 1704438770 43 45 33 22 37 0 \n", - "3231 175 1704438950 43 45 33 22 37 0 \n", - "3243 175 1704439130 43 45 33 22 37 0 \n", - "3252 175 1704439310 43 45 33 22 37 0 \n", - "3262 175 1704439490 43 45 33 22 37 0 \n", - "3271 175 1704439670 43 45 33 22 37 0 \n", - "3281 175 1704439850 43 45 33 22 37 0 \n", - "3291 175 1704440030 43 45 33 22 37 0 \n", - "3300 175 1704440210 43 45 33 22 37 0 \n", - "3310 175 1704440390 43 45 33 22 37 0 \n", - "3319 175 1704440569 43 45 33 22 37 0 \n", - "3328 175 1704440750 43 45 33 22 37 0 \n", - "3339 175 1704440930 43 45 33 22 37 0 \n", - "3349 175 1704441110 43 45 33 22 37 0 \n", - "3358 175 1704441290 43 45 33 22 37 0 \n", - "3368 175 1704441470 43 45 33 22 37 0 \n", - "3378 175 1704441650 43 45 33 22 37 0 \n", - "3388 175 1704441830 43 45 33 22 37 0 \n", - "3397 175 1704442009 43 45 33 22 37 0 \n", - "3407 175 1704442190 43 45 33 22 37 0 \n", - "3416 175 1704442371 43 45 33 22 37 0 \n", - "3424 175 1704442550 43 45 33 22 37 0 \n", - "3434 175 1704442730 43 45 33 22 37 0 \n", - "3444 175 1704442909 43 45 33 22 37 0 \n", - "3454 175 1704443090 43 45 33 22 37 0 \n", - "3463 175 1704443270 43 45 33 22 37 0 \n", - "3472 175 1704443450 43 45 33 22 37 0 \n", - "3483 175 1704443630 43 45 33 22 37 0 \n", - "3484 175 1704443643 43 45 33 22 37 0 \n", - "3493 175 1704443820 43 45 33 22 37 0 \n", - "3502 175 1704444000 43 45 33 22 37 0 \n", - "3512 175 1704444180 43 45 33 22 37 0 \n", - "3522 175 1704444360 43 45 33 22 37 0 \n", - "3533 175 1704444541 43 45 33 22 37 0 \n", - "3542 175 1704444720 43 45 33 22 37 0 \n", - "3553 175 1704444900 43 45 33 22 37 0 \n", - "3563 175 1704445080 43 45 33 22 37 0 \n", - "3572 175 1704445260 43 45 33 22 37 0 \n", - "3583 175 1704445440 43 45 33 22 37 0 \n", - "3591 175 1704445619 43 45 33 22 37 0 \n", - "3601 175 1704445800 43 45 33 22 37 0 \n", - "3611 175 1704445980 43 45 33 22 37 0 \n", - "3620 175 1704446160 43 45 33 22 37 0 \n", - "3630 175 1704446340 43 45 33 22 37 0 \n", - "3639 175 1704446519 43 45 33 22 37 0 \n", - "3649 175 1704446700 43 45 33 22 37 0 \n", - "3658 175 1704446880 43 45 33 22 37 0 \n", - "3667 175 1704447060 43 45 33 22 37 0 \n", - "3679 175 1704447250 46 48 37 18 41 0 \n", - "3689 175 1704447440 46 48 37 18 41 0 \n", - "3698 175 1704447630 46 48 37 18 41 0 \n", - "3708 175 1704447819 46 48 37 18 41 0 \n", - "3718 175 1704448010 46 48 37 18 41 0 \n", - "3728 175 1704448200 46 48 37 18 41 0 \n", - "3738 175 1704448389 46 48 37 18 41 0 \n", - "3747 175 1704448580 46 48 37 18 41 0 \n", - "3758 175 1704448770 46 48 37 18 41 0 \n", - "3767 175 1704448961 46 48 37 18 41 0 \n", - "3777 175 1704449150 46 48 37 18 41 0 \n", - "3787 175 1704449340 46 48 37 18 41 0 \n", - "3796 175 1704449531 46 48 37 18 41 0 \n", - "3805 175 1704449720 46 48 37 18 41 0 \n", - "3815 175 1704449909 46 48 37 18 41 0 \n", - "\n", - " ddur_7 ddur_8 cycle offset diff \n", - "18 0 0 160 57 160 \n", - "28 0 0 160 57 160 \n", - "38 0 0 160 57 160 \n", - "47 0 0 160 57 160 \n", - "57 0 0 160 57 160 \n", - "67 0 0 160 57 160 \n", - "79 0 0 160 57 160 \n", - "88 0 0 160 57 161 \n", - "97 0 0 160 57 159 \n", - "107 0 0 160 57 160 \n", - "116 0 0 160 57 160 \n", - "127 0 0 160 57 160 \n", - "139 0 0 160 57 160 \n", - "152 0 0 160 57 161 \n", - "161 0 0 160 57 159 \n", - "171 0 0 160 57 160 \n", - "182 0 0 160 57 160 \n", - "191 0 0 160 57 160 \n", - "201 0 0 160 57 160 \n", - "213 0 0 160 57 161 \n", - "222 0 0 160 57 159 \n", - "232 0 0 160 57 160 \n", - "242 0 0 160 57 160 \n", - "253 0 0 160 57 160 \n", - "263 0 0 160 57 160 \n", - "272 0 0 160 57 160 \n", - "283 0 0 160 57 160 \n", - "308 0 0 160 57 438 \n", - "317 0 0 160 57 162 \n", - "326 0 0 160 57 160 \n", - "337 0 0 160 57 160 \n", - "346 0 0 160 57 160 \n", - "356 0 0 160 57 160 \n", - "366 0 0 160 57 160 \n", - "374 0 0 160 57 160 \n", - "383 0 0 160 57 161 \n", - "391 0 0 160 57 159 \n", - "400 0 0 160 57 160 \n", - "410 0 0 160 57 160 \n", - "420 0 0 160 57 161 \n", - "429 0 0 160 57 159 \n", - "438 0 0 160 57 160 \n", - "447 0 0 160 57 160 \n", - "455 0 0 160 57 160 \n", - "465 0 0 160 57 160 \n", - "477 0 0 160 57 161 \n", - "485 0 0 160 57 159 \n", - "495 0 0 160 57 160 \n", - "505 0 0 160 57 160 \n", - "513 0 0 160 57 160 \n", - "522 0 0 160 57 160 \n", - "531 0 0 160 57 160 \n", - "540 0 0 160 57 160 \n", - "550 0 0 160 57 160 \n", - "558 0 0 160 57 160 \n", - "568 0 0 160 57 160 \n", - "577 0 0 160 57 160 \n", - "586 0 0 160 57 161 \n", - "595 0 0 160 57 159 \n", - "604 0 0 160 57 160 \n", - "614 0 0 160 57 160 \n", - "624 0 0 160 57 161 \n", - "635 0 0 160 57 159 \n", - "644 0 0 160 57 160 \n", - "652 0 0 160 57 160 \n", - "661 0 0 160 57 160 \n", - "673 0 0 160 57 160 \n", - "682 0 0 160 57 160 \n", - "691 0 0 160 57 160 \n", - "701 0 0 160 57 160 \n", - "711 0 0 160 57 160 \n", - "719 0 0 160 57 160 \n", - "728 0 0 160 57 160 \n", - "737 0 0 160 57 160 \n", - "746 0 0 160 57 160 \n", - "756 0 0 160 57 160 \n", - "766 0 0 160 57 160 \n", - "774 0 0 160 57 160 \n", - "783 0 0 160 57 160 \n", - "793 0 0 160 57 160 \n", - "802 0 0 160 57 161 \n", - "812 0 0 160 57 159 \n", - "823 0 0 160 57 160 \n", - "833 0 0 160 57 160 \n", - "842 0 0 160 57 160 \n", - "853 0 0 160 57 160 \n", - "863 0 0 160 57 160 \n", - "872 0 0 160 57 160 \n", - "884 0 0 160 57 159 \n", - "895 0 0 160 57 161 \n", - "904 0 0 160 57 160 \n", - "916 0 0 160 57 159 \n", - "925 0 0 160 57 161 \n", - "937 0 0 160 57 160 \n", - "948 0 0 160 57 161 \n", - "958 0 0 160 57 159 \n", - "968 0 0 160 57 160 \n", - "979 0 0 160 57 159 \n", - "988 0 0 160 57 161 \n", - "998 0 0 160 57 160 \n", - "1009 0 0 160 57 160 \n", - "1019 0 0 160 57 160 \n", - "1029 0 0 160 57 159 \n", - "1042 0 0 160 57 161 \n", - "1051 0 0 160 57 160 \n", - "1060 0 0 160 57 160 \n", - "1072 0 0 160 57 159 \n", - "1082 0 0 160 57 161 \n", - "1092 0 0 160 57 160 \n", - "1103 0 0 160 57 160 \n", - "1114 0 0 160 57 160 \n", - "1124 0 0 160 57 160 \n", - "1134 0 0 160 57 160 \n", - "1143 0 0 160 57 160 \n", - "1154 0 0 160 57 160 \n", - "1165 0 0 160 57 160 \n", - "1176 0 0 160 57 161 \n", - "1186 0 0 160 57 159 \n", - "1196 0 0 160 57 160 \n", - "1205 0 0 160 57 160 \n", - "1214 0 0 160 57 160 \n", - "1226 0 0 160 57 159 \n", - "1236 0 0 160 57 161 \n", - "1246 0 0 160 57 159 \n", - "1259 0 0 160 57 161 \n", - "1268 0 0 160 57 160 \n", - "1278 0 0 160 57 160 \n", - "1288 0 0 160 57 160 \n", - "1297 0 0 160 57 160 \n", - "1305 0 0 160 57 160 \n", - "1318 0 0 160 57 160 \n", - "1326 0 0 160 57 160 \n", - "1334 0 0 160 57 160 \n", - "1342 0 0 160 57 161 \n", - "1349 0 0 160 57 159 \n", - "1356 0 0 160 57 160 \n", - "1365 0 0 160 57 160 \n", - "1373 0 0 160 57 160 \n", - "1382 0 0 160 57 159 \n", - "1389 0 0 160 57 161 \n", - "1396 0 0 160 57 160 \n", - "1404 0 0 160 57 160 \n", - "1412 0 0 160 57 160 \n", - "1419 0 0 160 57 160 \n", - "1427 0 0 160 57 160 \n", - "1436 0 0 160 57 160 \n", - "1443 0 0 160 57 160 \n", - "1450 0 0 160 57 160 \n", - "1457 0 0 160 57 160 \n", - "1464 0 0 160 57 160 \n", - "1472 0 0 160 57 160 \n", - "1481 0 0 160 57 161 \n", - "1489 0 0 160 57 159 \n", - "1497 0 0 160 57 159 \n", - "1504 0 0 160 57 161 \n", - "1511 0 0 170 40 170 \n", - "1518 0 0 170 40 170 \n", - "1525 0 0 170 40 170 \n", - "1534 0 0 170 40 170 \n", - "1542 0 0 170 40 170 \n", - "1551 0 0 170 40 170 \n", - "1559 0 0 170 40 170 \n", - "1567 0 0 170 40 171 \n", - "1575 0 0 170 40 169 \n", - "1585 0 0 170 40 170 \n", - "1593 0 0 170 40 170 \n", - "1601 0 0 170 40 170 \n", - "1610 0 0 170 40 170 \n", - "1618 0 0 170 40 170 \n", - "1626 0 0 170 40 170 \n", - "2189 0 0 170 40 11390 \n", - "2198 0 0 180 28 180 \n", - "2208 0 0 180 28 180 \n", - "2219 0 0 180 28 180 \n", - "2230 0 0 180 28 181 \n", - "2240 0 0 180 28 179 \n", - "2250 0 0 180 28 181 \n", - "2258 0 0 180 28 179 \n", - "2267 0 0 180 28 180 \n", - "2278 0 0 180 28 181 \n", - "2288 0 0 180 28 179 \n", - "2297 0 0 180 28 180 \n", - "2306 0 0 180 28 180 \n", - "2316 0 0 180 28 180 \n", - "2326 0 0 180 28 180 \n", - "2336 0 0 180 28 180 \n", - "2347 0 0 180 28 180 \n", - "2356 0 0 180 28 180 \n", - "2364 0 0 180 28 180 \n", - "2376 0 0 180 28 180 \n", - "2388 0 0 180 28 180 \n", - "2396 0 0 180 28 180 \n", - "2405 0 0 180 28 180 \n", - "2416 0 0 180 28 180 \n", - "2424 0 0 180 28 180 \n", - "2435 0 0 180 28 181 \n", - "2443 0 0 180 28 179 \n", - "2454 0 0 180 28 181 \n", - "2463 0 0 180 28 179 \n", - "2471 0 0 180 28 180 \n", - "2481 0 0 180 28 180 \n", - "2492 0 0 180 28 180 \n", - "2501 0 0 180 28 179 \n", - "2511 0 0 180 28 181 \n", - "2521 0 0 180 28 181 \n", - "2531 0 0 180 28 179 \n", - "2541 0 0 180 28 180 \n", - "2551 0 0 180 28 180 \n", - "2562 0 0 180 28 180 \n", - "2570 0 0 180 28 180 \n", - "2580 0 0 180 28 180 \n", - "2590 0 0 180 28 180 \n", - "2599 0 0 180 28 181 \n", - "2608 0 0 180 28 179 \n", - "2619 0 0 180 28 180 \n", - "2629 0 0 180 28 180 \n", - "2638 0 0 180 28 180 \n", - "2647 0 0 180 28 180 \n", - "2657 0 0 180 28 180 \n", - "2666 0 0 180 28 180 \n", - "2676 0 0 180 28 180 \n", - "2687 0 0 180 28 180 \n", - "2697 0 0 180 28 180 \n", - "2706 0 0 180 28 180 \n", - "2715 0 0 180 28 180 \n", - "2727 0 0 180 28 180 \n", - "2736 0 0 180 28 180 \n", - "2745 0 0 180 28 180 \n", - "2755 0 0 180 28 180 \n", - "2765 0 0 180 28 181 \n", - "2775 0 0 180 28 179 \n", - "2784 0 0 180 28 180 \n", - "2794 0 0 180 28 180 \n", - "2803 0 0 180 28 180 \n", - "2811 0 0 180 28 180 \n", - "2822 0 0 180 28 180 \n", - "2828 0 0 180 28 111 \n", - "2838 0 0 180 28 179 \n", - "2848 0 0 180 28 180 \n", - "2858 0 0 180 28 180 \n", - "2867 0 0 180 28 180 \n", - "2878 0 0 180 28 180 \n", - "2887 0 0 180 28 181 \n", - "2896 0 0 180 28 179 \n", - "2907 0 0 180 28 180 \n", - "2917 0 0 180 28 180 \n", - "2926 0 0 180 28 179 \n", - "2935 0 0 180 28 181 \n", - "2944 0 0 180 28 180 \n", - "2954 0 0 180 28 180 \n", - "2962 0 0 180 28 180 \n", - "2971 0 0 180 28 180 \n", - "2979 0 0 180 28 180 \n", - "2987 0 0 180 28 180 \n", - "2997 0 0 180 28 180 \n", - "3007 0 0 180 28 180 \n", - "3016 0 0 180 28 179 \n", - "3026 0 0 180 28 181 \n", - "3037 0 0 180 28 181 \n", - "3047 0 0 180 28 179 \n", - "3056 0 0 180 28 180 \n", - "3065 0 0 180 28 180 \n", - "3076 0 0 180 28 180 \n", - "3085 0 0 180 28 181 \n", - "3095 0 0 180 28 179 \n", - "3106 0 0 180 28 180 \n", - "3115 0 0 180 28 180 \n", - "3124 0 0 180 28 180 \n", - "3133 0 0 180 28 180 \n", - "3144 0 0 180 28 180 \n", - "3153 0 0 180 28 180 \n", - "3162 0 0 180 28 180 \n", - "3172 0 0 180 28 180 \n", - "3182 0 0 180 28 180 \n", - "3192 0 0 180 28 180 \n", - "3201 0 0 180 28 179 \n", - "3212 0 0 180 28 181 \n", - "3221 0 0 180 28 180 \n", - "3231 0 0 180 28 180 \n", - "3243 0 0 180 28 180 \n", - "3252 0 0 180 28 180 \n", - "3262 0 0 180 28 180 \n", - "3271 0 0 180 28 180 \n", - "3281 0 0 180 28 180 \n", - "3291 0 0 180 28 180 \n", - "3300 0 0 180 28 180 \n", - "3310 0 0 180 28 180 \n", - "3319 0 0 180 28 179 \n", - "3328 0 0 180 28 181 \n", - "3339 0 0 180 28 180 \n", - "3349 0 0 180 28 180 \n", - "3358 0 0 180 28 180 \n", - "3368 0 0 180 28 180 \n", - "3378 0 0 180 28 180 \n", - "3388 0 0 180 28 180 \n", - "3397 0 0 180 28 179 \n", - "3407 0 0 180 28 181 \n", - "3416 0 0 180 28 181 \n", - "3424 0 0 180 28 179 \n", - "3434 0 0 180 28 180 \n", - "3444 0 0 180 28 179 \n", - "3454 0 0 180 28 181 \n", - "3463 0 0 180 28 180 \n", - "3472 0 0 180 28 180 \n", - "3483 0 0 180 28 180 \n", - "3484 0 0 180 28 13 \n", - "3493 0 0 180 28 177 \n", - "3502 0 0 180 28 180 \n", - "3512 0 0 180 28 180 \n", - "3522 0 0 180 28 180 \n", - "3533 0 0 180 28 181 \n", - "3542 0 0 180 28 179 \n", - "3553 0 0 180 28 180 \n", - "3563 0 0 180 28 180 \n", - "3572 0 0 180 28 180 \n", - "3583 0 0 180 28 180 \n", - "3591 0 0 180 28 179 \n", - "3601 0 0 180 28 181 \n", - "3611 0 0 180 28 180 \n", - "3620 0 0 180 28 180 \n", - "3630 0 0 180 28 180 \n", - "3639 0 0 180 28 179 \n", - "3649 0 0 180 28 181 \n", - "3658 0 0 180 28 180 \n", - "3667 0 0 180 28 180 \n", - "3679 0 0 190 18 190 \n", - "3689 0 0 190 18 190 \n", - "3698 0 0 190 18 190 \n", - "3708 0 0 190 18 189 \n", - "3718 0 0 190 18 191 \n", - "3728 0 0 190 18 190 \n", - "3738 0 0 190 18 189 \n", - "3747 0 0 190 18 191 \n", - "3758 0 0 190 18 190 \n", - "3767 0 0 190 18 191 \n", - "3777 0 0 190 18 189 \n", - "3787 0 0 190 18 190 \n", - "3796 0 0 190 18 191 \n", - "3805 0 0 190 18 189 \n", - "3815 0 0 190 18 189 " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "hist = history.copy()[history.inter_no==175]\n", - "hist['diff'] = hist['end_unix'].diff()\n", - "hist = hist[1:]\n", - "hist\n", - "hist['diff'] = hist['diff'].astype(int)\n", - "with pd.option_context('display.max_rows', None, 'display.max_columns', None):\n", - " display(hist)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# 3. 결측, 이상치 처리" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
inter_nostart_unixdura_A1dura_A2dura_A3dura_A4dura_A5dura_A6dura_A7dura_A8dura_B1dura_B2dura_B3dura_B4dura_B5dura_B6dura_B7dura_B8cyclepstart_unix
017517043804003739552900003739255900001601704380400
117517044056004042553300004042295900001701704405600
217517044128004345553700004345335900001801704412800
317517044470004648554100004648375900001901704447000
4176170438040037734000000377340000001501704380400
5176170440560037934000000379340000001701704405600
617617044128003710340000003710340000001801704412800
717617044470003711340000003711340000001901704447000
817717043804003620682600003620682600001501704380400
917717044056004025713400004025713400001701704405600
\n", - "
" - ], - "text/plain": [ - " inter_no start_unix dura_A1 dura_A2 dura_A3 dura_A4 dura_A5 dura_A6 \\\n", - "0 175 1704380400 37 39 55 29 0 0 \n", - "1 175 1704405600 40 42 55 33 0 0 \n", - "2 175 1704412800 43 45 55 37 0 0 \n", - "3 175 1704447000 46 48 55 41 0 0 \n", - "4 176 1704380400 37 73 40 0 0 0 \n", - "5 176 1704405600 37 93 40 0 0 0 \n", - "6 176 1704412800 37 103 40 0 0 0 \n", - "7 176 1704447000 37 113 40 0 0 0 \n", - "8 177 1704380400 36 20 68 26 0 0 \n", - "9 177 1704405600 40 25 71 34 0 0 \n", - "\n", - " dura_A7 dura_A8 dura_B1 dura_B2 dura_B3 dura_B4 dura_B5 dura_B6 \\\n", - "0 0 0 37 39 25 59 0 0 \n", - "1 0 0 40 42 29 59 0 0 \n", - "2 0 0 43 45 33 59 0 0 \n", - "3 0 0 46 48 37 59 0 0 \n", - "4 0 0 37 73 40 0 0 0 \n", - "5 0 0 37 93 40 0 0 0 \n", - "6 0 0 37 103 40 0 0 0 \n", - "7 0 0 37 113 40 0 0 0 \n", - "8 0 0 36 20 68 26 0 0 \n", - "9 0 0 40 25 71 34 0 0 \n", - "\n", - " dura_B7 dura_B8 cycle pstart_unix \n", - "0 0 0 160 1704380400 \n", - "1 0 0 170 1704405600 \n", - "2 0 0 180 1704412800 \n", - "3 0 0 190 1704447000 \n", - "4 0 0 150 1704380400 \n", - "5 0 0 170 1704405600 \n", - "6 0 0 180 1704412800 \n", - "7 0 0 190 1704447000 \n", - "8 0 0 150 1704380400 \n", - "9 0 0 170 1704405600 " - ] - }, - "execution_count": 13, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "planned = plan.copy()\n", - "planned['start_unix'] = planned['start_hour'] * 3600 +planned['start_minute'] * 60 + midnight\n", - "start_unixes = planned.start_unix.unique()\n", - "planned['pstart_unix'] = planned['start_unix'].apply(lambda x:start_unixes[sum(start_unixes <= x) - 1]) # the unix time when the program started\n", - "planned = planned[['inter_no', 'start_unix'] + [f'dura_{alph}{j}' for alph in ['A', 'B'] for j in range(1,9)] + ['cycle', 'pstart_unix']]\n", - "planned.head(10)" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "array([175, 202, 201, 210, 211, 176, 178, 177, 206], dtype=int64)" - ] - }, - "execution_count": 14, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "make_histid(100).inter_no.unique()" - ] - }, - { - "cell_type": "code", - "execution_count": 84, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
inter_nostart_hourstart_minuteddur_1ddur_2ddur_3ddur_4ddur_5ddur_6ddur_7ddur_8cycleoffset
017500373925302900016057
117570404229263300017040
217590434533223700018028
31751830464837184100019018
41760037734000000150131
51767037934000000170153
617690371034000000180169
71761830371134000000190185
81770036206826000015035
91777040257134000017033
\n", - "
" - ], - "text/plain": [ - " inter_no start_hour start_minute ddur_1 ddur_2 ddur_3 ddur_4 ddur_5 \\\n", - "0 175 0 0 37 39 25 30 29 \n", - "1 175 7 0 40 42 29 26 33 \n", - "2 175 9 0 43 45 33 22 37 \n", - "3 175 18 30 46 48 37 18 41 \n", - "4 176 0 0 37 73 40 0 0 \n", - "5 176 7 0 37 93 40 0 0 \n", - "6 176 9 0 37 103 40 0 0 \n", - "7 176 18 30 37 113 40 0 0 \n", - "8 177 0 0 36 20 68 26 0 \n", - "9 177 7 0 40 25 71 34 0 \n", - "\n", - " ddur_6 ddur_7 ddur_8 cycle offset \n", - "0 0 0 0 160 57 \n", - "1 0 0 0 170 40 \n", - "2 0 0 0 180 28 \n", - "3 0 0 0 190 18 \n", - "4 0 0 0 150 131 \n", - "5 0 0 0 170 153 \n", - "6 0 0 0 180 169 \n", - "7 0 0 0 190 185 \n", - "8 0 0 0 150 35 \n", - "9 0 0 0 170 33 " - ] - }, - "execution_count": 84, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "pland = plan.copy() # A, B가 통합된 plan (plan detailed)\n", - "cums_A = np.array(pland[[f'dura_A{k}' for k in range(1,9)]].cumsum(axis=1))\n", - "cums_B = np.array(pland[[f'dura_B{k}' for k in range(1,9)]].cumsum(axis=1))\n", - "detailed_cums = []\n", - "i = 0\n", - "for row_A, row_B in zip(cums_A, cums_B):\n", - " combined_row = np.unique(np.concatenate((row_A, row_B)))\n", - " ddur = np.concatenate(([combined_row[0]], np.diff(combined_row)))\n", - " ddur = np.pad(ddur, (0, 8 - len(ddur)), constant_values=(0))\n", - " detailed_cums.append(ddur)\n", - " for j in range(8):\n", - " pland.at[i, f'ddur_{j+1}'] = ddur[j]\n", - " i+=1\n", - "pland = pland[['inter_no', 'start_hour', 'start_minute'] + [f'ddur_{i}' for i in range(1,9)] + ['cycle', 'offset']] # plan detailed\n", - "pland[[f'ddur_{i}' for i in range(1,9)]] = pland[[f'ddur_{i}' for i in range(1,9)]].astype(int)\n", - "pland[:10]" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "histid = make_histid(25)" - ] - }, - { - "cell_type": "code", - "execution_count": 120, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", - " \n", - "
inter_nophas_Aphas_Bdurationinc_edge_Ainc_edge_Bout_edge_Aout_edge_Bdiff
start_unix
17043844001751137-571542797_02-571500487_01571500487_01571542797_020
17043844001752239-571500487_01-571542797_02571545870_01571510153_010
17043844001753325571545870_02571545870_02571510153_01571542797_020
17043844001753430571545870_02571510153_02571510153_01571545870_010
17043844001754429571510153_02571510153_02571500487_01571545870_010
17043845601751137-571542797_02-571500487_01571500487_01571542797_02160
17043845601752239-571500487_01-571542797_02571545870_01571510153_010
17043845601753325571545870_02571545870_02571510153_01571542797_020
17043845601753430571545870_02571510153_02571510153_01571545870_010
17043845601754429571510153_02571510153_02571500487_01571545870_010
17043847201751137-571542797_02-571500487_01571500487_01571542797_02160
17043847201752239-571500487_01-571542797_02571545870_01571510153_010
17043847201753325571545870_02571545870_02571510153_01571542797_020
17043847201753430571545870_02571510153_02571510153_01571545870_010
17043847201754429571510153_02571510153_02571500487_01571545870_010
17043853181751137-571542797_02-571500487_01571500487_01571542797_02598
17043853181752239-571500487_01-571542797_02571545870_01571510153_010
17043853181753325571545870_02571545870_02571510153_01571542797_020
17043853181753430571545870_02571510153_02571510153_01571545870_010
17043853181754429571510153_02571510153_02571500487_01571545870_010
17043854801751137-571542797_02-571500487_01571500487_01571542797_02162
17043854801752239-571500487_01-571542797_02571545870_01571510153_010
17043854801753325571545870_02571545870_02571510153_01571542797_020
17043854801753430571545870_02571510153_02571510153_01571545870_010
17043854801754429571510153_02571510153_02571500487_01571545870_010
17043856401751137-571542797_02-571500487_01571500487_01571542797_02160
17043856401752239-571500487_01-571542797_02571545870_01571510153_010
17043856401753325571545870_02571545870_02571510153_01571542797_020
17043856401753430571545870_02571510153_02571510153_01571545870_010
17043856401754429571510153_02571510153_02571500487_01571545870_010
17043858001751137-571542797_02-571500487_01571500487_01571542797_02160
17043858001752239-571500487_01-571542797_02571545870_01571510153_010
17043858001753325571545870_02571545870_02571510153_01571542797_020
17043858001753430571545870_02571510153_02571510153_01571545870_010
17043858001754429571510153_02571510153_02571500487_01571545870_010
17043859601751137-571542797_02-571500487_01571500487_01571542797_02160i1
17043859601752239-571500487_01-571542797_02571545870_01571510153_010
17043859601753325571545870_02571545870_02571510153_01571542797_020
17043859601753430571545870_02571510153_02571510153_01571545870_0102017621571542797_02.99571543469_01i1
17043859601754429571510153_02571510153_02571500487_01571545870_0102117621571543469_02571542810_01i1
1704386120175122177137-571542797_02-571500487_01571500487_01571542797_02160571542107_02571542809_01i2
1704386120175223177239-571500487_01-571542797_02571545870_01571510153_010
17043861201753325571545870_02571545870_02571510153_01571542797_020-571542809_01571542107_01i2
1704386120175241773430571545870_02571510153_02571510153_01571545870_010-571542809_01571542809_01i2
1704386120175425177429571510153_02571510153_02571500487_01571545870_010571542811_02571542809_01i2
17043862801751137-571542797_02-571500487_01571500487_01571542797_02160261775-571542809_01571542811_01i2
17043862801752239-571500487_01-571542797_02571545870_01571510153_010271776571542107_02571542809_01i2
17043862801753325571545870_02571545870_02571510153_01571542797_020281777571542811_02571542107_01i2
17043862801753430571545870_02571510153_02571510153_01571545870_010291778-571542809_01571542811_01i2
17043862801754429571510153_02571510153_02571500487_01571545870_0103017717NoneNoneNoneNonei2
17043864401751137-571542797_02-571500487_01571500487_01571542797_021603117718NoneNoneNoneNonei2
17043864401752239-571500487_01-571542797_02571545870_01571510153_0103217721571542811_02571542809_01i2
17043864401753325571545870_02571545870_02571510153_01571542797_0203317721-571542809_01571542809_01i2
17043864401753430571545870_02571510153_02571510153_01571545870_0103417721-571542809_01571542107_01i2
17043864401754429571510153_02571510153_02571500487_01571545870_0103517721571542107_02571542811_01i2
1704386601175136178137-571542797_02-571500487_01571500487_01571542797_02161-571500475_01571540304_01i3
1704386601175237178239-571500487_01-571542797_02571545870_01571510153_010
17043866011753325571545870_02571545870_02571510153_01571542797_020571540303_02.21571500475_01i3
1704386601175381783430571545870_02571510153_02571510153_01571545870_010571540304_02571540303_01i3
1704386601175439178429571510153_02571510153_02571500487_01571545870_010
17043867601751137-571542797_02-571500487_01571500487_01571542797_02159571556450_02571540304_01i3
17043867601752239-571500487_01-571542797_02571545870_01571510153_010401785571540303_02.21571556450_01i3
17043867601753325571545870_02571545870_02571510153_01571542797_020411786-571500475_01571540303_01i3
17043867601753430571545870_02571510153_02571510153_01571545870_010421787571556450_02571500475_01i3
17043867601754429571510153_02571510153_02571500487_01571545870_010431788571540304_02571556450_01i3
17043869201751137-571542797_02-571500487_01571500487_01571542797_021604417817NoneNoneNoneNonei3
17043869201752239-571500487_01-571542797_02571545870_01571510153_0104517818NoneNoneNoneNonei3
17043869201753325571545870_02571545870_02571510153_01571542797_0204617821571556450_02571540303_01i3
17043869201753430571545870_02571510153_02571510153_01571545870_0104717821571540303_02.21571540304_01i3
17043869201754429571510153_02571510153_02571500487_01571545870_0104817821571540304_02571500475_01i3
170438708017514917821-571500475_01571556450_01i3
50201137-571542797_02-571500487_01571500487_01571542797_02160571500617_02571500569_01i8
1704387080175251201239-571500487_01-571542797_02571545870_01571510153_010571500618_02571500617_01i8
1704387080175352201325571545870_02571545870_02571510153_01571542797_020-571500569_01571500618_01i8
1704387080175353201430571545870_02571510153_02571510153_01571545870_010571500583_01571500569_01i8
17043870801754429571510153_02571510153_02571500487_01571545870_010542015571500618_02571500583_02i8
17043872411751137-571542797_02-571500487_01571500487_01571542797_02161552016571500617_02571500618_01i8
17043872411752239-571500487_01-571542797_02571545870_01571510153_010562017571500583_01571500617_01i8
17043872411753325571545870_02571545870_02571510153_01571542797_020572018-571500569_01571500583_02i8
17043872411753430571545870_02571510153_02571510153_01571545870_0105820117NoneNoneNoneNonei8
17043872411754429571510153_02571510153_02571500487_01571545870_0105920118NoneNoneNoneNonei8
17043874001751137-571542797_02-571500487_01571500487_01571542797_021596020121571500583_01571500618_01i8
17043874001752239-571500487_01-571542797_02571545870_01571510153_0106120121571500618_02571500569_01i8
17043874001753325571545870_02571545870_02571510153_01571542797_0206220121-571500569_01571500617_01i8
17043874001753430571545870_02571510153_02571510153_01571545870_0106320121571500617_02571500583_02i8
17043874001754429571510153_02571510153_02571500487_01571545870_010642022571510152_01571510152_01.65i9
652026571510152_02-571510152_01i9
17043875601751137-571542797_02-571500487_01571500487_01571542797_021606620217NoneNoneNoneNonei9
17043875601752239-571500487_01-571542797_02571545870_01571510153_0106720218NoneNoneNoneNonei9
17043875601753325571545870_02571545870_02571510153_01571542797_020682064571542073_01571511538_02i7
17043875601753430571545870_02571510153_02571510153_01571545870_010692068-571511538_02571542073_02i7
17043875601754429571510153_02571510153_02571500487_01571545870_0107020617NoneNoneNoneNonei7
170438772017517120618NoneNoneNoneNonei7
72210137-571542797_02-571500487_01571500487_01571542797_02160-571542115_01571500585_01i6
1704387720175273210239-571500487_01-571542797_02571545870_01571510153_010571500535_02.18571542115_01i6
1704387720175374210325571545870_02571545870_02571510153_01571542797_020571500585_02571500535_01i6
1704387720175375210430571545870_02571510153_02571510153_01571545870_010571511538_02.121571500585_01i6
17043877201754429571510153_02571510153_02571500487_01571545870_010762105571500535_02.18571511538_01i6
\n", - "
" - ], - "text/plain": [ - " inter_no phas_A phas_B duration inc_edge_A inc_edge_B \\\n", - "start_unix \n", - "1704384400 175 1 1 37 -571542797_02 -571500487_01 \n", - "1704384400 175 2 2 39 -571500487_01 -571542797_02 \n", - "1704384400 175 3 3 25 571545870_02 571545870_02 \n", - "1704384400 175 3 4 30 571545870_02 571510153_02 \n", - "1704384400 175 4 4 29 571510153_02 571510153_02 \n", - "1704384560 175 1 1 37 -571542797_02 -571500487_01 \n", - "1704384560 175 2 2 39 -571500487_01 -571542797_02 \n", - "1704384560 175 3 3 25 571545870_02 571545870_02 \n", - "1704384560 175 3 4 30 571545870_02 571510153_02 \n", - "1704384560 175 4 4 29 571510153_02 571510153_02 \n", - "1704384720 175 1 1 37 -571542797_02 -571500487_01 \n", - "1704384720 175 2 2 39 -571500487_01 -571542797_02 \n", - "1704384720 175 3 3 25 571545870_02 571545870_02 \n", - "1704384720 175 3 4 30 571545870_02 571510153_02 \n", - "1704384720 175 4 4 29 571510153_02 571510153_02 \n", - "1704385318 175 1 1 37 -571542797_02 -571500487_01 \n", - "1704385318 175 2 2 39 -571500487_01 -571542797_02 \n", - "1704385318 175 3 3 25 571545870_02 571545870_02 \n", - "1704385318 175 3 4 30 571545870_02 571510153_02 \n", - "1704385318 175 4 4 29 571510153_02 571510153_02 \n", - "1704385480 175 1 1 37 -571542797_02 -571500487_01 \n", - "1704385480 175 2 2 39 -571500487_01 -571542797_02 \n", - "1704385480 175 3 3 25 571545870_02 571545870_02 \n", - "1704385480 175 3 4 30 571545870_02 571510153_02 \n", - "1704385480 175 4 4 29 571510153_02 571510153_02 \n", - "1704385640 175 1 1 37 -571542797_02 -571500487_01 \n", - "1704385640 175 2 2 39 -571500487_01 -571542797_02 \n", - "1704385640 175 3 3 25 571545870_02 571545870_02 \n", - "1704385640 175 3 4 30 571545870_02 571510153_02 \n", - "1704385640 175 4 4 29 571510153_02 571510153_02 \n", - "1704385800 175 1 1 37 -571542797_02 -571500487_01 \n", - "1704385800 175 2 2 39 -571500487_01 -571542797_02 \n", - "1704385800 175 3 3 25 571545870_02 571545870_02 \n", - "1704385800 175 3 4 30 571545870_02 571510153_02 \n", - "1704385800 175 4 4 29 571510153_02 571510153_02 \n", - "1704385960 175 1 1 37 -571542797_02 -571500487_01 \n", - "1704385960 175 2 2 39 -571500487_01 -571542797_02 \n", - "1704385960 175 3 3 25 571545870_02 571545870_02 \n", - "1704385960 175 3 4 30 571545870_02 571510153_02 \n", - "1704385960 175 4 4 29 571510153_02 571510153_02 \n", - "1704386120 175 1 1 37 -571542797_02 -571500487_01 \n", - "1704386120 175 2 2 39 -571500487_01 -571542797_02 \n", - "1704386120 175 3 3 25 571545870_02 571545870_02 \n", - "1704386120 175 3 4 30 571545870_02 571510153_02 \n", - "1704386120 175 4 4 29 571510153_02 571510153_02 \n", - "1704386280 175 1 1 37 -571542797_02 -571500487_01 \n", - "1704386280 175 2 2 39 -571500487_01 -571542797_02 \n", - "1704386280 175 3 3 25 571545870_02 571545870_02 \n", - "1704386280 175 3 4 30 571545870_02 571510153_02 \n", - "1704386280 175 4 4 29 571510153_02 571510153_02 \n", - "1704386440 175 1 1 37 -571542797_02 -571500487_01 \n", - "1704386440 175 2 2 39 -571500487_01 -571542797_02 \n", - "1704386440 175 3 3 25 571545870_02 571545870_02 \n", - "1704386440 175 3 4 30 571545870_02 571510153_02 \n", - "1704386440 175 4 4 29 571510153_02 571510153_02 \n", - "1704386601 175 1 1 37 -571542797_02 -571500487_01 \n", - "1704386601 175 2 2 39 -571500487_01 -571542797_02 \n", - "1704386601 175 3 3 25 571545870_02 571545870_02 \n", - "1704386601 175 3 4 30 571545870_02 571510153_02 \n", - "1704386601 175 4 4 29 571510153_02 571510153_02 \n", - "1704386760 175 1 1 37 -571542797_02 -571500487_01 \n", - "1704386760 175 2 2 39 -571500487_01 -571542797_02 \n", - "1704386760 175 3 3 25 571545870_02 571545870_02 \n", - "1704386760 175 3 4 30 571545870_02 571510153_02 \n", - "1704386760 175 4 4 29 571510153_02 571510153_02 \n", - "1704386920 175 1 1 37 -571542797_02 -571500487_01 \n", - "1704386920 175 2 2 39 -571500487_01 -571542797_02 \n", - "1704386920 175 3 3 25 571545870_02 571545870_02 \n", - "1704386920 175 3 4 30 571545870_02 571510153_02 \n", - "1704386920 175 4 4 29 571510153_02 571510153_02 \n", - "1704387080 175 1 1 37 -571542797_02 -571500487_01 \n", - "1704387080 175 2 2 39 -571500487_01 -571542797_02 \n", - "1704387080 175 3 3 25 571545870_02 571545870_02 \n", - "1704387080 175 3 4 30 571545870_02 571510153_02 \n", - "1704387080 175 4 4 29 571510153_02 571510153_02 \n", - "1704387241 175 1 1 37 -571542797_02 -571500487_01 \n", - "1704387241 175 2 2 39 -571500487_01 -571542797_02 \n", - "1704387241 175 3 3 25 571545870_02 571545870_02 \n", - "1704387241 175 3 4 30 571545870_02 571510153_02 \n", - "1704387241 175 4 4 29 571510153_02 571510153_02 \n", - "1704387400 175 1 1 37 -571542797_02 -571500487_01 \n", - "1704387400 175 2 2 39 -571500487_01 -571542797_02 \n", - "1704387400 175 3 3 25 571545870_02 571545870_02 \n", - "1704387400 175 3 4 30 571545870_02 571510153_02 \n", - "1704387400 175 4 4 29 571510153_02 571510153_02 \n", - "1704387560 175 1 1 37 -571542797_02 -571500487_01 \n", - "1704387560 175 2 2 39 -571500487_01 -571542797_02 \n", - "1704387560 175 3 3 25 571545870_02 571545870_02 \n", - "1704387560 175 3 4 30 571545870_02 571510153_02 \n", - "1704387560 175 4 4 29 571510153_02 571510153_02 \n", - "1704387720 175 1 1 37 -571542797_02 -571500487_01 \n", - "1704387720 175 2 2 39 -571500487_01 -571542797_02 \n", - "1704387720 175 3 3 25 571545870_02 571545870_02 \n", - "1704387720 175 3 4 30 571545870_02 571510153_02 \n", - "1704387720 175 4 4 29 571510153_02 571510153_02 \n", - "\n", - " out_edge_A out_edge_B diff \n", - "start_unix \n", - "1704384400 571500487_01 571542797_02 0 \n", - "1704384400 571545870_01 571510153_01 0 \n", - "1704384400 571510153_01 571542797_02 0 \n", - "1704384400 571510153_01 571545870_01 0 \n", - "1704384400 571500487_01 571545870_01 0 \n", - "1704384560 571500487_01 571542797_02 160 \n", - "1704384560 571545870_01 571510153_01 0 \n", - "1704384560 571510153_01 571542797_02 0 \n", - "1704384560 571510153_01 571545870_01 0 \n", - "1704384560 571500487_01 571545870_01 0 \n", - "1704384720 571500487_01 571542797_02 160 \n", - "1704384720 571545870_01 571510153_01 0 \n", - "1704384720 571510153_01 571542797_02 0 \n", - "1704384720 571510153_01 571545870_01 0 \n", - "1704384720 571500487_01 571545870_01 0 \n", - "1704385318 571500487_01 571542797_02 598 \n", - "1704385318 571545870_01 571510153_01 0 \n", - "1704385318 571510153_01 571542797_02 0 \n", - "1704385318 571510153_01 571545870_01 0 \n", - "1704385318 571500487_01 571545870_01 0 \n", - "1704385480 571500487_01 571542797_02 162 \n", - "1704385480 571545870_01 571510153_01 0 \n", - "1704385480 571510153_01 571542797_02 0 \n", - "1704385480 571510153_01 571545870_01 0 \n", - "1704385480 571500487_01 571545870_01 0 \n", - "1704385640 571500487_01 571542797_02 160 \n", - "1704385640 571545870_01 571510153_01 0 \n", - "1704385640 571510153_01 571542797_02 0 \n", - "1704385640 571510153_01 571545870_01 0 \n", - "1704385640 571500487_01 571545870_01 0 \n", - "1704385800 571500487_01 571542797_02 160 \n", - "1704385800 571545870_01 571510153_01 0 \n", - "1704385800 571510153_01 571542797_02 0 \n", - "1704385800 571510153_01 571545870_01 0 \n", - "1704385800 571500487_01 571545870_01 0 \n", - "1704385960 571500487_01 571542797_02 160 \n", - "1704385960 571545870_01 571510153_01 0 \n", - "1704385960 571510153_01 571542797_02 0 \n", - "1704385960 571510153_01 571545870_01 0 \n", - "1704385960 571500487_01 571545870_01 0 \n", - "1704386120 571500487_01 571542797_02 160 \n", - "1704386120 571545870_01 571510153_01 0 \n", - "1704386120 571510153_01 571542797_02 0 \n", - "1704386120 571510153_01 571545870_01 0 \n", - "1704386120 571500487_01 571545870_01 0 \n", - "1704386280 571500487_01 571542797_02 160 \n", - "1704386280 571545870_01 571510153_01 0 \n", - "1704386280 571510153_01 571542797_02 0 \n", - "1704386280 571510153_01 571545870_01 0 \n", - "1704386280 571500487_01 571545870_01 0 \n", - "1704386440 571500487_01 571542797_02 160 \n", - "1704386440 571545870_01 571510153_01 0 \n", - "1704386440 571510153_01 571542797_02 0 \n", - "1704386440 571510153_01 571545870_01 0 \n", - "1704386440 571500487_01 571545870_01 0 \n", - "1704386601 571500487_01 571542797_02 161 \n", - "1704386601 571545870_01 571510153_01 0 \n", - "1704386601 571510153_01 571542797_02 0 \n", - "1704386601 571510153_01 571545870_01 0 \n", - "1704386601 571500487_01 571545870_01 0 \n", - "1704386760 571500487_01 571542797_02 159 \n", - "1704386760 571545870_01 571510153_01 0 \n", - "1704386760 571510153_01 571542797_02 0 \n", - "1704386760 571510153_01 571545870_01 0 \n", - "1704386760 571500487_01 571545870_01 0 \n", - "1704386920 571500487_01 571542797_02 160 \n", - "1704386920 571545870_01 571510153_01 0 \n", - "1704386920 571510153_01 571542797_02 0 \n", - "1704386920 571510153_01 571545870_01 0 \n", - "1704386920 571500487_01 571545870_01 0 \n", - "1704387080 571500487_01 571542797_02 160 \n", - "1704387080 571545870_01 571510153_01 0 \n", - "1704387080 571510153_01 571542797_02 0 \n", - "1704387080 571510153_01 571545870_01 0 \n", - "1704387080 571500487_01 571545870_01 0 \n", - "1704387241 571500487_01 571542797_02 161 \n", - "1704387241 571545870_01 571510153_01 0 \n", - "1704387241 571510153_01 571542797_02 0 \n", - "1704387241 571510153_01 571545870_01 0 \n", - "1704387241 571500487_01 571545870_01 0 \n", - "1704387400 571500487_01 571542797_02 159 \n", - "1704387400 571545870_01 571510153_01 0 \n", - "1704387400 571510153_01 571542797_02 0 \n", - "1704387400 571510153_01 571545870_01 0 \n", - "1704387400 571500487_01 571545870_01 0 \n", - "1704387560 571500487_01 571542797_02 160 \n", - "1704387560 571545870_01 571510153_01 0 \n", - "1704387560 571510153_01 571542797_02 0 \n", - "1704387560 571510153_01 571545870_01 0 \n", - "1704387560 571500487_01 571545870_01 0 \n", - "1704387720 571500487_01 571542797_02 160 \n", - "1704387720 571545870_01 571510153_01 0 \n", - "1704387720 571510153_01 571542797_02 0 \n", - "1704387720 571510153_01 571545870_01 0 \n", - "1704387720 571500487_01 571545870_01 0 " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "inter_no = 175\n", - "hist = histid.copy()[histid.inter_no==inter_no]\n", - "hist = hist.reset_index(drop=True)\n", - "hist['diff'] = hist['start_unix'].diff().fillna(0).astype(int)\n", - "hist = hist.set_index('start_unix')\n", - "with pd.option_context('display.max_rows', None, 'display.max_columns', None):\n", - " display(hist)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "inter_no = 175\n", - "hist = histid.copy()[histid.inter_no==inter_no]\n", - "hist = hist.reset_index(drop=True)\n", - "hist['diff'] = hist['start_unix'].diff().fillna(0).astype(int)\n", - "hist = hist.set_index('start_unix')\n", - "start_unixes = hist.index.unique()\n", - "for n in range(1, len(start_unixes)):\n", - " ind = (timetable['start_seconds'] <= start_unixes[n]).sum() - 1 \n", - " start_hour = timetable.iloc[ind].start_hour\n", - " start_minute = timetable.iloc[ind].start_minute\n", - " prow = pland[(pland.inter_no == inter_no)&(pland.start_hour == start_hour)&(pland.start_minute == start_minute)].iloc[0] # planned row\n", - " cycle = prow.cycle\n", - " if start_unixes[n] - start_unixes[n-1] < 2 * cycle:\n", - " pass\n", - " else:" - ] - }, - { - "cell_type": "code", - "execution_count": 139, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", - " \n", - " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", "
inter_nophas_Aphas_Bdurationinc_edge_Ainc_edge_Bout_edge_Aout_edge_Bdiff
772106-571542115_01571500535_01i6
start_unix782107571511538_02.121571542115_01i6
17043844001751137-571542797_02-571500487_01571500487_01571542797_020792108571500585_02571511538_01i6
17043844001752239-571500487_01-571542797_02571545870_01571510153_0108021017NoneNoneNoneNonei6
17043844001753325571545870_02571545870_02571510153_01571542797_0208121018NoneNoneNoneNonei6
17043844001753430571545870_02571510153_02571510153_01571545870_0108221021571511538_02.121571500535_01i6
17043844001754429571510153_02571510153_02571500487_01571545870_0108321021571500535_02.18571500585_01i6
..............................8421021571500585_02571542115_01i6
17043877201751137-571542797_02-571500487_01571500487_01571542797_021608521021-571542115_01571511538_01i6
1704387720175286211239-571500487_01-571542797_02571545870_01571510153_010571542116_02.96571542116_02.164c30
17043877201753325571545870_02571545870_02571510153_01571542797_020872116571542116_01-571542116_02.96c30
17043877201753430571545870_02571510153_02571510153_01571545870_0108821117NoneNoneNoneNonec30
17043877201754429571510153_02571510153_02571500487_01571545870_0108921118NoneNoneNoneNonec30
\n", - "

95 rows × 9 columns

\n", "
" ], "text/plain": [ - " inter_no phas_A phas_B duration inc_edge_A inc_edge_B \\\n", - "start_unix \n", - "1704384400 175 1 1 37 -571542797_02 -571500487_01 \n", - "1704384400 175 2 2 39 -571500487_01 -571542797_02 \n", - "1704384400 175 3 3 25 571545870_02 571545870_02 \n", - "1704384400 175 3 4 30 571545870_02 571510153_02 \n", - "1704384400 175 4 4 29 571510153_02 571510153_02 \n", - "... ... ... ... ... ... ... \n", - "1704387720 175 1 1 37 -571542797_02 -571500487_01 \n", - "1704387720 175 2 2 39 -571500487_01 -571542797_02 \n", - "1704387720 175 3 3 25 571545870_02 571545870_02 \n", - "1704387720 175 3 4 30 571545870_02 571510153_02 \n", - "1704387720 175 4 4 29 571510153_02 571510153_02 \n", + " inter_no move_no inc_dir out_dir inc_edge out_edge \\\n", + "0 175 1 동 남 571545870_02 571542797_02 \n", + "1 175 2 서 동 571510153_02 571545870_01 \n", + "2 175 3 남 서 -571542797_02 571510153_01 \n", + "3 175 4 북 남 -571500487_01 571542797_02 \n", + "4 175 5 서 북 571510153_02 571500487_01 \n", + "5 175 6 동 서 571545870_02 571510153_01 \n", + "6 175 7 북 동 -571500487_01 571545870_01 \n", + "7 175 8 남 북 -571542797_02 571500487_01 \n", + "8 175 17 None None None None \n", + "9 175 18 None None None None \n", + "10 175 21 북 서 -571500487_01 571510153_01 \n", + "11 175 21 서 남 571510153_02 571542797_02 \n", + "12 175 21 남 동 -571542797_02 571545870_01 \n", + "13 175 21 동 북 571545870_02 571500487_01 \n", + "14 176 3 남 서 -571542810_01 571543469_01 \n", + "15 176 4 북 남 571542797_02.99 571542810_01 \n", + "16 176 5 서 북 571543469_02 -571542797_02.99 \n", + "17 176 8 남 북 -571542810_01 -571542797_02.99 \n", + "18 176 17 None None None None \n", + "19 176 18 None None None None \n", + "20 176 21 북 서 571542797_02.99 571543469_01 \n", + "21 176 21 서 남 571543469_02 571542810_01 \n", + "22 177 1 동 남 571542107_02 571542809_01 \n", + "23 177 2 서 동 -571542809_01 571542107_01 \n", + "24 177 3 남 서 -571542809_01 571542809_01 \n", + "25 177 4 북 남 571542811_02 571542809_01 \n", + "26 177 5 서 북 -571542809_01 571542811_01 \n", + "27 177 6 동 서 571542107_02 571542809_01 \n", + "28 177 7 북 동 571542811_02 571542107_01 \n", + "29 177 8 남 북 -571542809_01 571542811_01 \n", + "30 177 17 None None None None \n", + "31 177 18 None None None None \n", + "32 177 21 북 서 571542811_02 571542809_01 \n", + "33 177 21 서 남 -571542809_01 571542809_01 \n", + "34 177 21 남 동 -571542809_01 571542107_01 \n", + "35 177 21 동 북 571542107_02 571542811_01 \n", + "36 178 1 동 남 -571500475_01 571540304_01 \n", + "37 178 2 서 동 571540303_02.21 571500475_01 \n", + "38 178 3 남 서 571540304_02 571540303_01 \n", + "39 178 4 북 남 571556450_02 571540304_01 \n", + "40 178 5 서 북 571540303_02.21 571556450_01 \n", + "41 178 6 동 서 -571500475_01 571540303_01 \n", + "42 178 7 북 동 571556450_02 571500475_01 \n", + "43 178 8 남 북 571540304_02 571556450_01 \n", + "44 178 17 None None None None \n", + "45 178 18 None None None None \n", + "46 178 21 북 서 571556450_02 571540303_01 \n", + "47 178 21 서 남 571540303_02.21 571540304_01 \n", + "48 178 21 남 동 571540304_02 571500475_01 \n", + "49 178 21 동 북 -571500475_01 571556450_01 \n", + "50 201 1 동 남 571500617_02 571500569_01 \n", + "51 201 2 서 동 571500618_02 571500617_01 \n", + "52 201 3 남 서 -571500569_01 571500618_01 \n", + "53 201 4 북 남 571500583_01 571500569_01 \n", + "54 201 5 서 북 571500618_02 571500583_02 \n", + "55 201 6 동 서 571500617_02 571500618_01 \n", + "56 201 7 북 동 571500583_01 571500617_01 \n", + "57 201 8 남 북 -571500569_01 571500583_02 \n", + "58 201 17 None None None None \n", + "59 201 18 None None None None \n", + "60 201 21 북 서 571500583_01 571500618_01 \n", + "61 201 21 서 남 571500618_02 571500569_01 \n", + "62 201 21 남 동 -571500569_01 571500617_01 \n", + "63 201 21 동 북 571500617_02 571500583_02 \n", + "64 202 2 서 동 571510152_01 571510152_01.65 \n", + "65 202 6 동 서 571510152_02 -571510152_01 \n", + "66 202 17 None None None None \n", + "67 202 18 None None None None \n", + "68 206 4 북 남 571542073_01 571511538_02 \n", + "69 206 8 남 북 -571511538_02 571542073_02 \n", + "70 206 17 None None None None \n", + "71 206 18 None None None None \n", + "72 210 1 동 남 -571542115_01 571500585_01 \n", + "73 210 2 서 동 571500535_02.18 571542115_01 \n", + "74 210 3 남 서 571500585_02 571500535_01 \n", + "75 210 4 북 남 571511538_02.121 571500585_01 \n", + "76 210 5 서 북 571500535_02.18 571511538_01 \n", + "77 210 6 동 서 -571542115_01 571500535_01 \n", + "78 210 7 북 동 571511538_02.121 571542115_01 \n", + "79 210 8 남 북 571500585_02 571511538_01 \n", + "80 210 17 None None None None \n", + "81 210 18 None None None None \n", + "82 210 21 북 서 571511538_02.121 571500535_01 \n", + "83 210 21 서 남 571500535_02.18 571500585_01 \n", + "84 210 21 남 동 571500585_02 571542115_01 \n", + "85 210 21 동 북 -571542115_01 571511538_01 \n", + "86 211 2 서 동 571542116_02.96 571542116_02.164 \n", + "87 211 6 동 서 571542116_01 -571542116_02.96 \n", + "88 211 17 None None None None \n", + "89 211 18 None None None None \n", "\n", - " out_edge_A out_edge_B diff \n", - "start_unix \n", - "1704384400 571500487_01 571542797_02 0 \n", - "1704384400 571545870_01 571510153_01 0 \n", - "1704384400 571510153_01 571542797_02 0 \n", - "1704384400 571510153_01 571545870_01 0 \n", - "1704384400 571500487_01 571545870_01 0 \n", - "... ... ... ... \n", - "1704387720 571500487_01 571542797_02 160 \n", - "1704387720 571545870_01 571510153_01 0 \n", - "1704387720 571510153_01 571542797_02 0 \n", - "1704387720 571510153_01 571545870_01 0 \n", - "1704387720 571500487_01 571545870_01 0 \n", - "\n", - "[95 rows x 9 columns]" + " node_id \n", + "0 i0 \n", + "1 i0 \n", + "2 i0 \n", + "3 i0 \n", + "4 i0 \n", + "5 i0 \n", + "6 i0 \n", + "7 i0 \n", + "8 i0 \n", + "9 i0 \n", + "10 i0 \n", + "11 i0 \n", + "12 i0 \n", + "13 i0 \n", + "14 i1 \n", + "15 i1 \n", + "16 i1 \n", + "17 i1 \n", + "18 i1 \n", + "19 i1 \n", + "20 i1 \n", + "21 i1 \n", + "22 i2 \n", + "23 i2 \n", + "24 i2 \n", + "25 i2 \n", + "26 i2 \n", + "27 i2 \n", + "28 i2 \n", + "29 i2 \n", + "30 i2 \n", + "31 i2 \n", + "32 i2 \n", + "33 i2 \n", + "34 i2 \n", + "35 i2 \n", + "36 i3 \n", + "37 i3 \n", + "38 i3 \n", + "39 i3 \n", + "40 i3 \n", + "41 i3 \n", + "42 i3 \n", + "43 i3 \n", + "44 i3 \n", + "45 i3 \n", + "46 i3 \n", + "47 i3 \n", + "48 i3 \n", + "49 i3 \n", + "50 i8 \n", + "51 i8 \n", + "52 i8 \n", + "53 i8 \n", + "54 i8 \n", + "55 i8 \n", + "56 i8 \n", + "57 i8 \n", + "58 i8 \n", + "59 i8 \n", + "60 i8 \n", + "61 i8 \n", + "62 i8 \n", + "63 i8 \n", + "64 i9 \n", + "65 i9 \n", + "66 i9 \n", + "67 i9 \n", + "68 i7 \n", + "69 i7 \n", + "70 i7 \n", + "71 i7 \n", + "72 i6 \n", + "73 i6 \n", + "74 i6 \n", + "75 i6 \n", + "76 i6 \n", + "77 i6 \n", + "78 i6 \n", + "79 i6 \n", + "80 i6 \n", + "81 i6 \n", + "82 i6 \n", + "83 i6 \n", + "84 i6 \n", + "85 i6 \n", + "86 c30 \n", + "87 c30 \n", + "88 c30 \n", + "89 c30 " ] }, - "execution_count": 139, "metadata": {}, - "output_type": "execute_result" + "output_type": "display_data" } ], "source": [ - "hist" + "# 각 교차로에 대하여, 가능한 모든 이동류(1 ~ 18, 21)에 대한 진입·진출엣지ID를 지정한다.\n", + "# 모든 이동류에 대해 지정하므로, 시차제시 이전과 다른 이동류가 등장하더라도 항상 진입·진출 엣지 ID를 지정할 수 있다.\n", + "match6 = match5.copy().dropna()\n", + "match6 = match6[['inter_no', 'move_no', 'inc_dir', 'out_dir', 'inc_edge', 'out_edge', 'node_id']]\n", + "# (1) 가능한 (진입방향, 진출방향) 목록\n", + "flows = nema.dropna().apply(lambda row: (row['inc_dir'], row['out_dir']), axis=1).tolist()\n", + "# (2) 각 교차로별 방향 목록 : pdires\n", + "pdires = {}\n", + "for inter_no in match6.inter_no.unique():\n", + " dires = match6[match6.inter_no == inter_no][['inc_dir','out_dir']].values.flatten()\n", + " dires = {dire for dire in dires if type(dire)==str}\n", + " pdires[inter_no] = dires\n", + "# (3) 각 (교차로, 진입방향) 별 진입id 목록 : inc2id\n", + "inc2id = {}\n", + "for inter_no in match6.inter_no.unique():\n", + " for inc_dir in pdires[inter_no]:\n", + " df = match6[(match6.inter_no==inter_no) & (match6.inc_dir==inc_dir)]\n", + " inc2id[(inter_no, inc_dir)] = df.inc_edge.iloc[0]\n", + "# (4) 각 (교차로, 진출방향) 별 진출id 목록 : out2id\n", + "out2id = {}\n", + "for inter_no in match6.inter_no.unique():\n", + " for out_dir in pdires[inter_no]:\n", + " df = match6[(match6.inter_no==inter_no) & (match6.out_dir==out_dir)]\n", + " out2id[(inter_no, out_dir)] = df.out_edge.iloc[0]\n", + "# (5) 각 교차로별 가능한 (진입방향, 진출방향) 목록 : pflows\n", + "pflow = {}\n", + "for inter_no in match6.inter_no.unique():\n", + " pflow[inter_no] = [flow for flow in flows if set(flow).issubset(pdires[inter_no])]\n", + "# (6) 가능한 이동류에 대하여 진입id, 진출id 배정 : matching\n", + "inter2node = dict(zip(match6['inter_no'], match6['node_id']))\n", + "dires_right = ['북', '서', '남', '동', '북']\n", + "matching = []\n", + "for inter_no in match6.inter_no.unique():\n", + " node_id = inter2node[inter_no]\n", + " # 좌회전과 직진\n", + " for (inc_dir, out_dir) in pflow[inter_no]:\n", + " move_no = nema[(nema.inc_dir==inc_dir) & (nema.out_dir==out_dir)].move_no.iloc[0]\n", + " inc_edge = inc2id[(inter_no, inc_dir)]\n", + " out_edge = out2id[(inter_no, out_dir)]\n", + " new_row = pd.DataFrame({'inter_no':[inter_no], 'move_no':[move_no],\n", + " 'inc_dir':[inc_dir], 'out_dir':[out_dir],\n", + " 'inc_edge':[inc_edge], 'out_edge':[out_edge], 'node_id':[node_id]})\n", + " matching.append(new_row)\n", + " # 보행신호(17), 전적색(18)\n", + " new_row = pd.DataFrame({'inter_no':[inter_no] * 2, 'move_no':[17, 18],\n", + " 'inc_dir':[None]*2, 'out_dir':[None]*2,\n", + " 'inc_edge':[None]*2, 'out_edge':[None]*2, 'node_id':[node_id]*2})\n", + " matching.append(new_row)\n", + " # 신호우회전(21)\n", + " for d in range(len(dires_right)-1):\n", + " inc_dir = dires_right[d]\n", + " out_dir = dires_right[d+1]\n", + " if {inc_dir, out_dir}.issubset(pdires[inter_no]):\n", + " inc_edge = inc2id[(inter_no, inc_dir)]\n", + " out_edge = out2id[(inter_no, out_dir)]\n", + " new_row = pd.DataFrame({'inter_no':[inter_no], 'move_no':[21],\n", + " 'inc_dir':[inc_dir], 'out_dir':[out_dir],\n", + " 'inc_edge':[inc_edge], 'out_edge':[out_edge], 'node_id':[node_id]})\n", + " matching.append(new_row)\n", + "matching = pd.concat(matching)\n", + "matching = matching.sort_values(by=['inter_no', 'move_no']).reset_index(drop=True)\n", + "with pd.option_context('display.max_rows', None, 'display.max_columns', None):\n", + " display(matching)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## [2] 5초 간격으로 이동류번호 수집" ] }, { "cell_type": "code", - "execution_count": 163, + "execution_count": 19, "metadata": {}, "outputs": [ { @@ -10016,600 +1984,1025 @@ " \n", " \n", " \n", + " Unnamed: 0\n", " inter_no\n", - " node_id\n", - " move_no\n", - " inc_edge\n", - " out_edge\n", + " start_hour\n", + " start_minute\n", + " dura_A1\n", + " dura_A2\n", + " dura_A3\n", + " dura_A4\n", + " dura_A5\n", + " dura_A6\n", + " ...\n", + " dura_B1\n", + " dura_B2\n", + " dura_B3\n", + " dura_B4\n", + " dura_B5\n", + " dura_B6\n", + " dura_B7\n", + " dura_B8\n", + " cycle\n", + " offset\n", " \n", " \n", " \n", " \n", " 0\n", + " 0\n", " 175\n", - " i0\n", - " 1\n", - " 571545870_02\n", - " 571542797_02\n", + " 0\n", + " 0\n", + " 37\n", + " 39\n", + " 55\n", + " 29\n", + " 0\n", + " 0\n", + " ...\n", + " 37\n", + " 39\n", + " 25\n", + " 59\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 160\n", + " 57\n", " \n", " \n", " 1\n", + " 1\n", " 175\n", - " i0\n", - " 2\n", - " 571510153_02\n", - " 571545870_01\n", + " 7\n", + " 0\n", + " 40\n", + " 42\n", + " 55\n", + " 33\n", + " 0\n", + " 0\n", + " ...\n", + " 40\n", + " 42\n", + " 29\n", + " 59\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 170\n", + " 40\n", " \n", " \n", " 2\n", + " 2\n", " 175\n", - " i0\n", - " 3\n", - " -571542797_02\n", - " 571510153_01\n", + " 9\n", + " 0\n", + " 43\n", + " 45\n", + " 55\n", + " 37\n", + " 0\n", + " 0\n", + " ...\n", + " 43\n", + " 45\n", + " 33\n", + " 59\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 180\n", + " 28\n", " \n", " \n", " 3\n", + " 3\n", " 175\n", - " i0\n", - " 4\n", - " -571500487_01\n", - " 571542797_02\n", + " 18\n", + " 30\n", + " 46\n", + " 48\n", + " 55\n", + " 41\n", + " 0\n", + " 0\n", + " ...\n", + " 46\n", + " 48\n", + " 37\n", + " 59\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 190\n", + " 18\n", " \n", " \n", " 4\n", - " 175\n", - " i0\n", - " 5\n", - " 571510153_02\n", - " 571500487_01\n", - " \n", - " \n", - " 5\n", - " 175\n", - " i0\n", - " 6\n", - " 571545870_02\n", - " 571510153_01\n", - " \n", - " \n", - " 6\n", - " 175\n", - " i0\n", - " 7\n", - " -571500487_01\n", - " 571545870_01\n", - " \n", - " \n", - " 7\n", - " 175\n", - " i0\n", - " 8\n", - " -571542797_02\n", - " 571500487_01\n", - " \n", - " \n", - " 8\n", - " 176\n", - " i1\n", - " 3\n", - " -571542810_01\n", - " 571543469_01\n", - " \n", - " \n", - " 9\n", - " 176\n", - " i1\n", " 4\n", - " 571542797_02.99\n", - " 571542810_01\n", + " 176\n", + " 0\n", + " 0\n", + " 37\n", + " 73\n", + " 40\n", + " 0\n", + " 0\n", + " 0\n", + " ...\n", + " 37\n", + " 73\n", + " 40\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 150\n", + " 131\n", " \n", " \n", - " 10\n", - " 176\n", - " i1\n", + " 5\n", " 5\n", - " 571543469_02\n", - " -571542797_02.99\n", + " 176\n", + " 7\n", + " 0\n", + " 37\n", + " 93\n", + " 40\n", + " 0\n", + " 0\n", + " 0\n", + " ...\n", + " 37\n", + " 93\n", + " 40\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 170\n", + " 153\n", " \n", " \n", - " 11\n", + " 6\n", + " 6\n", " 176\n", - " i1\n", - " 8\n", - " -571542810_01\n", - " -571542797_02.99\n", + " 9\n", + " 0\n", + " 37\n", + " 103\n", + " 40\n", + " 0\n", + " 0\n", + " 0\n", + " ...\n", + " 37\n", + " 103\n", + " 40\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 180\n", + " 169\n", " \n", " \n", - " 13\n", + " 7\n", + " 7\n", " 176\n", - " i1\n", " 18\n", - " NaN\n", - " NaN\n", - " \n", - " \n", - " 14\n", - " 177\n", - " i2\n", - " 1\n", - " 571542107_02\n", - " 571542809_01\n", - " \n", - " \n", - " 15\n", - " 177\n", - " i2\n", - " 3\n", - " -571542809_01\n", - " 571542809_01\n", - " \n", - " \n", - " 16\n", - " 177\n", - " i2\n", - " 4\n", - " 571542811_02\n", - " 571542809_01\n", + " 30\n", + " 37\n", + " 113\n", + " 40\n", + " 0\n", + " 0\n", + " 0\n", + " ...\n", + " 37\n", + " 113\n", + " 40\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 190\n", + " 185\n", " \n", " \n", - " 17\n", + " 8\n", + " 8\n", " 177\n", - " i2\n", - " 5\n", - " -571542809_01\n", - " 571542811_01\n", + " 0\n", + " 0\n", + " 36\n", + " 20\n", + " 68\n", + " 26\n", + " 0\n", + " 0\n", + " ...\n", + " 36\n", + " 20\n", + " 68\n", + " 26\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 150\n", + " 35\n", " \n", " \n", - " 18\n", + " 9\n", + " 9\n", " 177\n", - " i2\n", " 7\n", - " 571542811_02\n", - " 571542107_01\n", - " \n", - " \n", - " 19\n", - " 177\n", - " i2\n", - " 8\n", - " -571542809_01\n", - " 571542811_01\n", + " 0\n", + " 40\n", + " 25\n", + " 71\n", + " 34\n", + " 0\n", + " 0\n", + " ...\n", + " 40\n", + " 25\n", + " 71\n", + " 34\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 170\n", + " 33\n", " \n", " \n", - " 20\n", + " 10\n", + " 10\n", " 177\n", - " i2\n", - " 17\n", - " NaN\n", - " NaN\n", + " 9\n", + " 0\n", + " 43\n", + " 27\n", + " 70\n", + " 40\n", + " 0\n", + " 0\n", + " ...\n", + " 43\n", + " 27\n", + " 70\n", + " 40\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 180\n", + " 41\n", " \n", " \n", - " 21\n", + " 11\n", + " 11\n", " 177\n", - " i2\n", " 18\n", - " NaN\n", - " NaN\n", - " \n", - " \n", - " 22\n", - " 178\n", - " i3\n", - " 1\n", - " -571500475_01\n", - " 571540304_01\n", - " \n", - " \n", - " 23\n", - " 178\n", - " i3\n", - " 2\n", - " 571540303_02.21\n", - " 571500475_01\n", - " \n", - " \n", - " 24\n", - " 178\n", - " i3\n", - " 3\n", - " 571540304_02\n", - " 571540303_01\n", - " \n", - " \n", - " 25\n", - " 178\n", - " i3\n", - " 4\n", - " 571556450_02\n", - " 571540304_01\n", - " \n", - " \n", - " 26\n", - " 178\n", - " i3\n", - " 5\n", - " 571540303_02.21\n", - " 571556450_01\n", + " 30\n", + " 45\n", + " 32\n", + " 77\n", + " 36\n", + " 0\n", + " 0\n", + " ...\n", + " 45\n", + " 32\n", + " 77\n", + " 36\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 190\n", + " 49\n", " \n", " \n", - " 27\n", + " 12\n", + " 12\n", " 178\n", - " i3\n", - " 6\n", - " -571500475_01\n", - " 571540303_01\n", + " 0\n", + " 0\n", + " 38\n", + " 39\n", + " 40\n", + " 23\n", + " 0\n", + " 0\n", + " ...\n", + " 38\n", + " 39\n", + " 40\n", + " 23\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 140\n", + " 50\n", " \n", " \n", - " 28\n", + " 13\n", + " 13\n", " 178\n", - " i3\n", " 7\n", - " 571556450_02\n", - " 571500475_01\n", + " 0\n", + " 38\n", + " 39\n", + " 42\n", + " 41\n", + " 0\n", + " 0\n", + " ...\n", + " 38\n", + " 39\n", + " 62\n", + " 21\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 160\n", + " 90\n", " \n", " \n", - " 29\n", + " 14\n", + " 14\n", " 178\n", - " i3\n", - " 8\n", - " 571540304_02\n", - " 571556450_01\n", - " \n", - " \n", - " 30\n", - " 201\n", - " i8\n", - " 1\n", - " 571500617_02\n", - " 571500569_01\n", - " \n", - " \n", - " 31\n", - " 201\n", - " i8\n", - " 2\n", - " 571500618_02\n", - " 571500617_01\n", - " \n", - " \n", - " 33\n", - " 201\n", - " i8\n", - " 3\n", - " -571500569_01\n", - " 571500618_01\n", + " 9\n", + " 0\n", + " 38\n", + " 39\n", + " 43\n", + " 50\n", + " 0\n", + " 0\n", + " ...\n", + " 38\n", + " 39\n", + " 71\n", + " 22\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 170\n", + " 80\n", " \n", " \n", - " 34\n", - " 201\n", - " i8\n", - " 4\n", - " 571500583_01\n", - " 571500569_01\n", + " 15\n", + " 15\n", + " 178\n", + " 18\n", + " 30\n", + " 38\n", + " 39\n", + " 44\n", + " 59\n", + " 0\n", + " 0\n", + " ...\n", + " 38\n", + " 39\n", + " 80\n", + " 23\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 180\n", + " 75\n", " \n", " \n", - " 35\n", + " 16\n", + " 16\n", " 201\n", - " i8\n", - " 5\n", - " 571500618_02\n", - " 571500583_02\n", + " 0\n", + " 0\n", + " 24\n", + " 24\n", + " 17\n", + " 58\n", + " 17\n", + " 0\n", + " ...\n", + " 24\n", + " 24\n", + " 17\n", + " 58\n", + " 17\n", + " 0\n", + " 0\n", + " 0\n", + " 140\n", + " 133\n", " \n", " \n", - " 36\n", + " 17\n", + " 17\n", " 201\n", - " i8\n", - " 6\n", - " 571500617_02\n", - " 571500618_01\n", + " 7\n", + " 0\n", + " 30\n", + " 36\n", + " 18\n", + " 58\n", + " 18\n", + " 0\n", + " ...\n", + " 30\n", + " 36\n", + " 18\n", + " 58\n", + " 18\n", + " 0\n", + " 0\n", + " 0\n", + " 160\n", + " 132\n", " \n", " \n", - " 38\n", + " 18\n", + " 18\n", " 201\n", - " i8\n", - " 7\n", - " 571500583_01\n", - " 571500617_01\n", + " 9\n", + " 0\n", + " 33\n", + " 36\n", + " 25\n", + " 58\n", + " 18\n", + " 0\n", + " ...\n", + " 33\n", + " 36\n", + " 25\n", + " 58\n", + " 18\n", + " 0\n", + " 0\n", + " 0\n", + " 170\n", + " 134\n", " \n", " \n", - " 39\n", + " 19\n", + " 19\n", " 201\n", - " i8\n", - " 8\n", - " -571500569_01\n", - " 571500583_02\n", + " 18\n", + " 30\n", + " 36\n", + " 50\n", + " 18\n", + " 58\n", + " 18\n", + " 0\n", + " ...\n", + " 36\n", + " 50\n", + " 18\n", + " 58\n", + " 18\n", + " 0\n", + " 0\n", + " 0\n", + " 180\n", + " 137\n", " \n", " \n", - " 40\n", + " 20\n", + " 20\n", " 202\n", - " i9\n", - " 2\n", - " 571510152_01\n", - " 571510152_01.65\n", + " 0\n", + " 0\n", + " 39\n", + " 101\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " ...\n", + " 39\n", + " 101\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 140\n", + " 103\n", " \n", " \n", - " 41\n", + " 21\n", + " 21\n", " 202\n", - " i9\n", - " 6\n", - " 571510152_02\n", - " -571510152_01\n", + " 7\n", + " 0\n", + " 46\n", + " 114\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " ...\n", + " 46\n", + " 114\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 160\n", + " 103\n", " \n", " \n", - " 42\n", + " 22\n", + " 22\n", " 202\n", - " i9\n", - " 17\n", - " NaN\n", - " NaN\n", + " 9\n", + " 0\n", + " 46\n", + " 114\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " ...\n", + " 46\n", + " 114\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 160\n", + " 103\n", " \n", " \n", - " 43\n", + " 23\n", + " 23\n", " 202\n", - " i9\n", " 18\n", - " NaN\n", - " NaN\n", + " 30\n", + " 48\n", + " 122\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " ...\n", + " 48\n", + " 122\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 170\n", + " 103\n", " \n", " \n", - " 44\n", + " 24\n", + " 24\n", " 206\n", - " i7\n", - " 4\n", - " 571542073_01\n", - " 571511538_02\n", + " 0\n", + " 0\n", + " 33\n", + " 35\n", + " 26\n", + " 26\n", + " 0\n", + " 0\n", + " ...\n", + " 33\n", + " 35\n", + " 26\n", + " 26\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 120\n", + " 10\n", " \n", " \n", - " 46\n", + " 25\n", + " 25\n", " 206\n", - " i7\n", - " 8\n", - " -571511538_02\n", - " 571542073_02\n", + " 7\n", + " 0\n", + " 44\n", + " 44\n", + " 26\n", + " 26\n", + " 0\n", + " 0\n", + " ...\n", + " 44\n", + " 44\n", + " 26\n", + " 26\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 140\n", + " 7\n", " \n", " \n", - " 48\n", + " 26\n", + " 26\n", " 206\n", - " i7\n", + " 9\n", + " 0\n", + " 45\n", + " 53\n", + " 26\n", + " 26\n", + " 0\n", + " 0\n", + " ...\n", + " 45\n", + " 53\n", + " 26\n", + " 26\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 150\n", " 17\n", - " NaN\n", - " NaN\n", " \n", " \n", - " 50\n", + " 27\n", + " 27\n", " 206\n", - " i7\n", " 18\n", - " NaN\n", - " NaN\n", - " \n", - " \n", - " 52\n", - " 210\n", - " i6\n", - " 2\n", - " 571500535_02.18\n", - " 571542115_01\n", - " \n", - " \n", - " 53\n", - " 210\n", - " i6\n", - " 3\n", - " 571500585_02\n", - " 571500535_01\n", - " \n", - " \n", - " 54\n", - " 210\n", - " i6\n", - " 4\n", - " 571511538_02.121\n", - " 571500585_01\n", - " \n", - " \n", - " 55\n", - " 210\n", - " i6\n", - " 5\n", - " 571500535_02.18\n", - " 571511538_01\n", + " 30\n", + " 46\n", + " 62\n", + " 26\n", + " 26\n", + " 0\n", + " 0\n", + " ...\n", + " 46\n", + " 62\n", + " 26\n", + " 26\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 160\n", + " 10\n", " \n", " \n", - " 56\n", + " 28\n", + " 28\n", " 210\n", - " i6\n", - " 6\n", - " -571542115_01\n", - " 571500535_01\n", + " 0\n", + " 0\n", + " 43\n", + " 29\n", + " 56\n", + " 22\n", + " 0\n", + " 0\n", + " ...\n", + " 24\n", + " 48\n", + " 56\n", + " 22\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 150\n", + " 115\n", " \n", " \n", - " 57\n", + " 29\n", + " 29\n", " 210\n", - " i6\n", " 7\n", - " 571511538_02.121\n", - " 571542115_01\n", + " 0\n", + " 43\n", + " 39\n", + " 65\n", + " 23\n", + " 0\n", + " 0\n", + " ...\n", + " 24\n", + " 58\n", + " 65\n", + " 23\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 170\n", + " 131\n", " \n", " \n", - " 58\n", + " 30\n", + " 30\n", " 210\n", - " i6\n", - " 8\n", - " 571500585_02\n", - " 571511538_01\n", + " 9\n", + " 0\n", + " 43\n", + " 43\n", + " 70\n", + " 24\n", + " 0\n", + " 0\n", + " ...\n", + " 28\n", + " 58\n", + " 70\n", + " 24\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 180\n", + " 137\n", " \n", " \n", - " 59\n", + " 31\n", + " 31\n", " 210\n", - " i6\n", " 18\n", - " NaN\n", - " NaN\n", + " 30\n", + " 43\n", + " 47\n", + " 75\n", + " 25\n", + " 0\n", + " 0\n", + " ...\n", + " 24\n", + " 66\n", + " 75\n", + " 25\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 190\n", + " 143\n", " \n", " \n", - " 60\n", + " 32\n", + " 32\n", " 211\n", - " c30\n", - " 2\n", - " 571542116_02.96\n", - " 571542116_02.164\n", + " 0\n", + " 0\n", + " 28\n", + " 97\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " ...\n", + " 28\n", + " 97\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 125\n", + " 45\n", " \n", " \n", - " 61\n", + " 33\n", + " 33\n", " 211\n", - " c30\n", - " 6\n", - " 571542116_01\n", - " -571542116_02.96\n", + " 7\n", + " 0\n", + " 28\n", + " 107\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " ...\n", + " 28\n", + " 107\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 135\n", + " 45\n", " \n", " \n", - " 62\n", + " 34\n", + " 34\n", " 211\n", - " c30\n", - " 17\n", - " NaN\n", - " NaN\n", + " 9\n", + " 0\n", + " 28\n", + " 112\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " ...\n", + " 28\n", + " 112\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 140\n", + " 55\n", " \n", " \n", - " 63\n", + " 35\n", + " 35\n", " 211\n", - " c30\n", " 18\n", - " NaN\n", - " NaN\n", + " 30\n", + " 28\n", + " 117\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " ...\n", + " 28\n", + " 117\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 0\n", + " 145\n", + " 55\n", " \n", " \n", "\n", + "

36 rows × 22 columns

\n", "" ], "text/plain": [ - " inter_no node_id move_no inc_edge out_edge\n", - "0 175 i0 1 571545870_02 571542797_02\n", - "1 175 i0 2 571510153_02 571545870_01\n", - "2 175 i0 3 -571542797_02 571510153_01\n", - "3 175 i0 4 -571500487_01 571542797_02\n", - "4 175 i0 5 571510153_02 571500487_01\n", - "5 175 i0 6 571545870_02 571510153_01\n", - "6 175 i0 7 -571500487_01 571545870_01\n", - "7 175 i0 8 -571542797_02 571500487_01\n", - "8 176 i1 3 -571542810_01 571543469_01\n", - "9 176 i1 4 571542797_02.99 571542810_01\n", - "10 176 i1 5 571543469_02 -571542797_02.99\n", - "11 176 i1 8 -571542810_01 -571542797_02.99\n", - "13 176 i1 18 NaN NaN\n", - "14 177 i2 1 571542107_02 571542809_01\n", - "15 177 i2 3 -571542809_01 571542809_01\n", - "16 177 i2 4 571542811_02 571542809_01\n", - "17 177 i2 5 -571542809_01 571542811_01\n", - "18 177 i2 7 571542811_02 571542107_01\n", - "19 177 i2 8 -571542809_01 571542811_01\n", - "20 177 i2 17 NaN NaN\n", - "21 177 i2 18 NaN NaN\n", - "22 178 i3 1 -571500475_01 571540304_01\n", - "23 178 i3 2 571540303_02.21 571500475_01\n", - "24 178 i3 3 571540304_02 571540303_01\n", - "25 178 i3 4 571556450_02 571540304_01\n", - "26 178 i3 5 571540303_02.21 571556450_01\n", - "27 178 i3 6 -571500475_01 571540303_01\n", - "28 178 i3 7 571556450_02 571500475_01\n", - "29 178 i3 8 571540304_02 571556450_01\n", - "30 201 i8 1 571500617_02 571500569_01\n", - "31 201 i8 2 571500618_02 571500617_01\n", - "33 201 i8 3 -571500569_01 571500618_01\n", - "34 201 i8 4 571500583_01 571500569_01\n", - "35 201 i8 5 571500618_02 571500583_02\n", - "36 201 i8 6 571500617_02 571500618_01\n", - "38 201 i8 7 571500583_01 571500617_01\n", - "39 201 i8 8 -571500569_01 571500583_02\n", - "40 202 i9 2 571510152_01 571510152_01.65\n", - "41 202 i9 6 571510152_02 -571510152_01\n", - "42 202 i9 17 NaN NaN\n", - "43 202 i9 18 NaN NaN\n", - "44 206 i7 4 571542073_01 571511538_02\n", - "46 206 i7 8 -571511538_02 571542073_02\n", - "48 206 i7 17 NaN NaN\n", - "50 206 i7 18 NaN NaN\n", - "52 210 i6 2 571500535_02.18 571542115_01\n", - "53 210 i6 3 571500585_02 571500535_01\n", - "54 210 i6 4 571511538_02.121 571500585_01\n", - "55 210 i6 5 571500535_02.18 571511538_01\n", - "56 210 i6 6 -571542115_01 571500535_01\n", - "57 210 i6 7 571511538_02.121 571542115_01\n", - "58 210 i6 8 571500585_02 571511538_01\n", - "59 210 i6 18 NaN NaN\n", - "60 211 c30 2 571542116_02.96 571542116_02.164\n", - "61 211 c30 6 571542116_01 -571542116_02.96\n", - "62 211 c30 17 NaN NaN\n", - "63 211 c30 18 NaN NaN" - ] - }, - "execution_count": 163, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "matching" - ] - }, - { - "cell_type": "code", - "execution_count": 162, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "False\n", - "ddur_1 37\n", - "ddur_2 39\n", - "ddur_3 25\n", - "ddur_4 30\n", - "ddur_5 29\n", - "ddur_6 0\n", - "ddur_7 0\n", - "ddur_8 0\n", - "Name: 0, dtype: int64\n", - "{1: (1, 1), 2: (2, 2), 3: (3, 3), 4: (3, 4), 5: (4, 4)}\n" - ] - }, - { - "data": { - "text/plain": [ - "ddur_1 37\n", - "ddur_2 39\n", - "ddur_3 25\n", - "ddur_4 30\n", - "ddur_5 29\n", - "Name: 0, dtype: int64" + " Unnamed: 0 inter_no start_hour start_minute dura_A1 dura_A2 dura_A3 \\\n", + "0 0 175 0 0 37 39 55 \n", + "1 1 175 7 0 40 42 55 \n", + "2 2 175 9 0 43 45 55 \n", + "3 3 175 18 30 46 48 55 \n", + "4 4 176 0 0 37 73 40 \n", + "5 5 176 7 0 37 93 40 \n", + "6 6 176 9 0 37 103 40 \n", + "7 7 176 18 30 37 113 40 \n", + "8 8 177 0 0 36 20 68 \n", + "9 9 177 7 0 40 25 71 \n", + "10 10 177 9 0 43 27 70 \n", + "11 11 177 18 30 45 32 77 \n", + "12 12 178 0 0 38 39 40 \n", + "13 13 178 7 0 38 39 42 \n", + "14 14 178 9 0 38 39 43 \n", + "15 15 178 18 30 38 39 44 \n", + "16 16 201 0 0 24 24 17 \n", + "17 17 201 7 0 30 36 18 \n", + "18 18 201 9 0 33 36 25 \n", + "19 19 201 18 30 36 50 18 \n", + "20 20 202 0 0 39 101 0 \n", + "21 21 202 7 0 46 114 0 \n", + "22 22 202 9 0 46 114 0 \n", + "23 23 202 18 30 48 122 0 \n", + "24 24 206 0 0 33 35 26 \n", + "25 25 206 7 0 44 44 26 \n", + "26 26 206 9 0 45 53 26 \n", + "27 27 206 18 30 46 62 26 \n", + "28 28 210 0 0 43 29 56 \n", + "29 29 210 7 0 43 39 65 \n", + "30 30 210 9 0 43 43 70 \n", + "31 31 210 18 30 43 47 75 \n", + "32 32 211 0 0 28 97 0 \n", + "33 33 211 7 0 28 107 0 \n", + "34 34 211 9 0 28 112 0 \n", + "35 35 211 18 30 28 117 0 \n", + "\n", + " dura_A4 dura_A5 dura_A6 ... dura_B1 dura_B2 dura_B3 dura_B4 \\\n", + "0 29 0 0 ... 37 39 25 59 \n", + "1 33 0 0 ... 40 42 29 59 \n", + "2 37 0 0 ... 43 45 33 59 \n", + "3 41 0 0 ... 46 48 37 59 \n", + "4 0 0 0 ... 37 73 40 0 \n", + "5 0 0 0 ... 37 93 40 0 \n", + "6 0 0 0 ... 37 103 40 0 \n", + "7 0 0 0 ... 37 113 40 0 \n", + "8 26 0 0 ... 36 20 68 26 \n", + "9 34 0 0 ... 40 25 71 34 \n", + "10 40 0 0 ... 43 27 70 40 \n", + "11 36 0 0 ... 45 32 77 36 \n", + "12 23 0 0 ... 38 39 40 23 \n", + "13 41 0 0 ... 38 39 62 21 \n", + "14 50 0 0 ... 38 39 71 22 \n", + "15 59 0 0 ... 38 39 80 23 \n", + "16 58 17 0 ... 24 24 17 58 \n", + "17 58 18 0 ... 30 36 18 58 \n", + "18 58 18 0 ... 33 36 25 58 \n", + "19 58 18 0 ... 36 50 18 58 \n", + "20 0 0 0 ... 39 101 0 0 \n", + "21 0 0 0 ... 46 114 0 0 \n", + "22 0 0 0 ... 46 114 0 0 \n", + "23 0 0 0 ... 48 122 0 0 \n", + "24 26 0 0 ... 33 35 26 26 \n", + "25 26 0 0 ... 44 44 26 26 \n", + "26 26 0 0 ... 45 53 26 26 \n", + "27 26 0 0 ... 46 62 26 26 \n", + "28 22 0 0 ... 24 48 56 22 \n", + "29 23 0 0 ... 24 58 65 23 \n", + "30 24 0 0 ... 28 58 70 24 \n", + "31 25 0 0 ... 24 66 75 25 \n", + "32 0 0 0 ... 28 97 0 0 \n", + "33 0 0 0 ... 28 107 0 0 \n", + "34 0 0 0 ... 28 112 0 0 \n", + "35 0 0 0 ... 28 117 0 0 \n", + "\n", + " dura_B5 dura_B6 dura_B7 dura_B8 cycle offset \n", + "0 0 0 0 0 160 57 \n", + "1 0 0 0 0 170 40 \n", + "2 0 0 0 0 180 28 \n", + "3 0 0 0 0 190 18 \n", + "4 0 0 0 0 150 131 \n", + "5 0 0 0 0 170 153 \n", + "6 0 0 0 0 180 169 \n", + "7 0 0 0 0 190 185 \n", + "8 0 0 0 0 150 35 \n", + "9 0 0 0 0 170 33 \n", + "10 0 0 0 0 180 41 \n", + "11 0 0 0 0 190 49 \n", + "12 0 0 0 0 140 50 \n", + "13 0 0 0 0 160 90 \n", + "14 0 0 0 0 170 80 \n", + "15 0 0 0 0 180 75 \n", + "16 17 0 0 0 140 133 \n", + "17 18 0 0 0 160 132 \n", + "18 18 0 0 0 170 134 \n", + "19 18 0 0 0 180 137 \n", + "20 0 0 0 0 140 103 \n", + "21 0 0 0 0 160 103 \n", + "22 0 0 0 0 160 103 \n", + "23 0 0 0 0 170 103 \n", + "24 0 0 0 0 120 10 \n", + "25 0 0 0 0 140 7 \n", + "26 0 0 0 0 150 17 \n", + "27 0 0 0 0 160 10 \n", + "28 0 0 0 0 150 115 \n", + "29 0 0 0 0 170 131 \n", + "30 0 0 0 0 180 137 \n", + "31 0 0 0 0 190 143 \n", + "32 0 0 0 0 125 45 \n", + "33 0 0 0 0 135 45 \n", + "34 0 0 0 0 140 55 \n", + "35 0 0 0 0 145 55 \n", + "\n", + "[36 rows x 22 columns]" ] }, - "execution_count": 162, + "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "n = 3\n", - "ind = (timetable['start_seconds'] <= start_unixes[n]).sum() - 1 \n", - "start_hour = timetable.iloc[ind].start_hour\n", - "start_minute = timetable.iloc[ind].start_minute\n", - "prow = pland[(pland.inter_no == inter_no)&(pland.start_hour == start_hour)&(pland.start_minute == start_minute)].iloc[0] # planned row\n", - "cycle = prow.cycle\n", - "print(start_unixes[n] - start_unixes[n-1] < 2 * cycle)\n", - "ddurs = [f'ddur_{j}' for j in range(1, 9)]\n", - "print(prow[ddurs])\n", - "ndphase = (prow[ddurs]!=0).sum() # the number of (detailed) phases\n", - "isplit = isplits[(inter_no,start_hour,start_minute)]\n", - "print(isplit)\n", - "inter_nos = [inter_no] * ndphase\n", - "phas_As = [isplit[i][0] for i in isplit.keys()]\n", - "phas_Bs = [isplit[i][1] for i in isplit.keys()]\n", - "durations = prow[ddurs][prow[ddurs]!=0]\n", - "# new_rows = pd.DataFrame()" + "plan = pd.read_csv('../../Data/tables/plan.csv')\n", + "plan" ] } ], diff --git a/Data/tables/raw_tables/0110_make_sample_table.ipynb b/Data/tables/raw_tables/0110_make_sample_table.ipynb index 513260d89..f7763018f 100644 --- a/Data/tables/raw_tables/0110_make_sample_table.ipynb +++ b/Data/tables/raw_tables/0110_make_sample_table.ipynb @@ -1136,7 +1136,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 21, "metadata": {}, "outputs": [ { @@ -2890,6 +2890,7 @@ " plan[col] = 0\n", "plan.reset_index(inplace=True)\n", "plan = plan[list(plan.columns)[:3] + sorted(plan.columns)[1:-4] + list(plan.columns)[3:5]]\n", + "plan.to_csv('../plan.csv')\n", "pland = plan.copy()\n", "cums_A = np.array(pland[[f'dura_A{k}' for k in range(1,9)]].cumsum(axis=1))\n", "cums_B = np.array(pland[[f'dura_B{k}' for k in range(1,9)]].cumsum(axis=1))\n", @@ -2905,7 +2906,6 @@ " i+=1\n", "pland = pland[['inter_no', 'start_hour', 'start_minute'] + [f'ddur_{i}' for i in range(1,9)] + ['cycle', 'offset']] # plan detailed\n", "pland[[f'ddur_{i}' for i in range(1,9)]] = pland[[f'ddur_{i}' for i in range(1,9)]].astype(int)\n", - "pland.to_csv('../plan.csv')\n", "display(plan)\n", "display(pland)" ] diff --git a/Documents/1127_table_definition/table_definition_v0.8.3.xlsx b/Documents/1127_table_definition/table_definition_v0.8.3.xlsx index 6c3f0af74f9dcd2830801c0cedd05aacc2d5f9ae..eaf21f24dc5f9433a7ea13e8c548a2dc836fae0d 100644 GIT binary patch delta 27180 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 delta 27357 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