Browse Source

transition&offset4

master
김선중 1 year ago
parent
commit
4e9b944caf
1 changed files with 253 additions and 76 deletions
  1. +253
    -76
      1214_transition&offset.ipynb

+ 253
- 76
1214_transition&offset.ipynb View File

@ -70,7 +70,7 @@
"name": "stderr",
"output_type": "stream",
"text": [
"C:\\Users\\유아이네트웍스\\AppData\\Local\\Temp\\ipykernel_12484\\2359052046.py:15: DtypeWarning: Columns (0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23) have mixed types. Specify dtype option on import or set low_memory=False.\n",
"C:\\Users\\유아이네트웍스\\AppData\\Local\\Temp\\ipykernel_15836\\2359052046.py:15: DtypeWarning: Columns (0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23) have mixed types. Specify dtype option on import or set low_memory=False.\n",
" soitdopermap3 = pd.read_csv('soitdopermap3.csv')\n"
]
}
@ -160,6 +160,7 @@
"hstr_1213 = get_hstr('../1213/soitdspotintsoperhstr_202312131102.csv')\n",
"hstr_1214 = get_hstr('../1214/soitdspotintsoperhstr_202312140852.csv')\n",
"hstr = pd.concat([hstr_1211, hstr_1212, hstr_1213, hstr_1214]).drop_duplicates()\n",
"hstr = hstr[['현장교차로ID', '수집날짜시각', '주기시간', '옵셋시간', 'A링1현시시간', 'A링2현시시간', 'A링3현시시간', 'A링4현시시간', 'A링5현시시간', 'A링6현시시간']]\n",
"hstr_5031 = hstr[hstr['현장교차로ID']==5031].sort_values(by='수집날짜시각').reset_index(drop=True)\n",
"print('수집날짜시각 최대, 최소 : ')\n",
"print('1211')\n",
@ -197,7 +198,7 @@
},
{
"cell_type": "code",
"execution_count": 7,
"execution_count": null,
"metadata": {},
"outputs": [
{
@ -232,7 +233,7 @@
"print(\"안정화된 수집시각의 차이\")\n",
"print(pd.Series(differences).value_counts())\n",
"print(\"처음 여섯 현시시각의 차이(L1 norm)\")\n",
"errors = [value for sublist in diffs.values() for value in sublist.values()]\n",
"errors = [value for sublist in error.values() for value in sublist.values()]\n",
"print(pd.Series(errors).value_counts())"
]
},
@ -248,7 +249,7 @@
"5031\n",
"06:00\n",
"안정화된 수집시각의 차이 : -1\n",
"처음 여섯 현시시각의 차이(L1 norm) : 0\n",
"처음 여섯 주기의 현시시간 차이(L1 norm) : 0\n",
"0\n"
]
},
@ -682,7 +683,7 @@
"text": [
"06:30\n",
"안정화된 수집시각의 차이 : 0\n",
"처음 여섯 현시시각의 차이(L1 norm) : 18\n",
"처음 여섯 주기의 현시시간 차이(L1 norm) : 18\n",
"18\n"
]
},
@ -1131,7 +1132,7 @@
"text": [
"07:00\n",
"안정화된 수집시각의 차이 : -1\n",
"처음 여섯 현시시각의 차이(L1 norm) : 1\n",
"처음 여섯 주기의 현시시간 차이(L1 norm) : 1\n",
"1\n"
]
},
@ -1505,7 +1506,7 @@
"text": [
"09:30\n",
"안정화된 수집시각의 차이 : 0\n",
"처음 여섯 현시시각의 차이(L1 norm) : 0\n",
"처음 여섯 주기의 현시시간 차이(L1 norm) : 0\n",
"0\n"
]
},
@ -1910,7 +1911,7 @@
"5032\n",
"06:00\n",
"안정화된 수집시각의 차이 : -1\n",
"처음 여섯 현시시각의 차이(L1 norm) : 0\n",
"처음 여섯 주기의 현시시간 차이(L1 norm) : 0\n",
"0\n"
]
},
@ -2374,7 +2375,7 @@
"text": [
"06:30\n",
"안정화된 수집시각의 차이 : 1\n",
"처음 여섯 현시시각의 차이(L1 norm) : 0\n",
"처음 여섯 주기의 현시시간 차이(L1 norm) : 0\n",
"0\n"
]
},
@ -2808,7 +2809,7 @@
"text": [
"07:00\n",
"안정화된 수집시각의 차이 : 0\n",
"처음 여섯 현시시각의 차이(L1 norm) : 47\n",
"처음 여섯 주기의 현시시간 차이(L1 norm) : 47\n",
"47\n"
]
},
@ -3212,7 +3213,7 @@
"text": [
"09:30\n",
"안정화된 수집시각의 차이 : 0\n",
"처음 여섯 현시시각의 차이(L1 norm) : 0\n",
"처음 여섯 주기의 현시시간 차이(L1 norm) : 0\n",
"0\n"
]
},
@ -3647,7 +3648,7 @@
"5033\n",
"06:00\n",
"안정화된 수집시각의 차이 : 0\n",
"처음 여섯 현시시각의 차이(L1 norm) : 0\n",
"처음 여섯 주기의 현시시간 차이(L1 norm) : 0\n",
"0\n"
]
},
@ -4111,7 +4112,7 @@
"text": [
"06:30\n",
"안정화된 수집시각의 차이 : 0\n",
"처음 여섯 현시시각의 차이(L1 norm) : 0\n",
"처음 여섯 주기의 현시시간 차이(L1 norm) : 0\n",
"0\n"
]
},
@ -4545,7 +4546,7 @@
"text": [
"07:00\n",
"안정화된 수집시각의 차이 : 0\n",
"처음 여섯 현시시각의 차이(L1 norm) : 1\n",
"처음 여섯 주기의 현시시간 차이(L1 norm) : 1\n",
"1\n"
]
},
@ -4949,7 +4950,7 @@
"text": [
"09:30\n",
"안정화된 수집시각의 차이 : 1\n",
"처음 여섯 현시시각의 차이(L1 norm) : 0\n",
"처음 여섯 주기의 현시시간 차이(L1 norm) : 0\n",
"0\n"
]
},
@ -5384,7 +5385,7 @@
"5034\n",
"05:30\n",
"안정화된 수집시각의 차이 : -1\n",
"처음 여섯 현시시각의 차이(L1 norm) : 31\n",
"처음 여섯 주기의 현시시간 차이(L1 norm) : 31\n",
"31\n"
]
},
@ -5803,7 +5804,7 @@
"text": [
"06:30\n",
"안정화된 수집시각의 차이 : -1\n",
"처음 여섯 현시시각의 차이(L1 norm) : 52\n",
"처음 여섯 주기의 현시시간 차이(L1 norm) : 52\n",
"52\n"
]
},
@ -6192,7 +6193,7 @@
"text": [
"07:00\n",
"안정화된 수집시각의 차이 : -3\n",
"처음 여섯 현시시각의 차이(L1 norm) : 43\n",
"처음 여섯 주기의 현시시간 차이(L1 norm) : 43\n",
"43\n"
]
},
@ -6581,7 +6582,7 @@
"text": [
"09:30\n",
"안정화된 수집시각의 차이 : 0\n",
"처음 여섯 현시시각의 차이(L1 norm) : 0\n",
"처음 여섯 주기의 현시시간 차이(L1 norm) : 0\n",
"0\n"
]
},
@ -6986,7 +6987,7 @@
"5035\n",
"05:30\n",
"안정화된 수집시각의 차이 : 0\n",
"처음 여섯 현시시각의 차이(L1 norm) : 5\n",
"처음 여섯 주기의 현시시간 차이(L1 norm) : 5\n",
"5\n"
]
},
@ -7390,7 +7391,7 @@
"text": [
"06:30\n",
"안정화된 수집시각의 차이 : 1\n",
"처음 여섯 현시시각의 차이(L1 norm) : 2\n",
"처음 여섯 주기의 현시시간 차이(L1 norm) : 2\n",
"2\n"
]
},
@ -7824,7 +7825,7 @@
"text": [
"07:00\n",
"안정화된 수집시각의 차이 : 1\n",
"처음 여섯 현시시각의 차이(L1 norm) : 1\n",
"처음 여섯 주기의 현시시간 차이(L1 norm) : 1\n",
"1\n"
]
},
@ -8198,7 +8199,7 @@
"text": [
"09:30\n",
"안정화된 수집시각의 차이 : -1\n",
"처음 여섯 현시시각의 차이(L1 norm) : 0\n",
"처음 여섯 주기의 현시시간 차이(L1 norm) : 0\n",
"0\n"
]
},
@ -8603,7 +8604,7 @@
"5036\n",
"06:00\n",
"안정화된 수집시각의 차이 : 0\n",
"처음 여섯 현시시각의 차이(L1 norm) : 11\n",
"처음 여섯 주기의 현시시간 차이(L1 norm) : 11\n",
"11\n"
]
},
@ -9037,7 +9038,7 @@
"text": [
"06:30\n",
"안정화된 수집시각의 차이 : 0\n",
"처음 여섯 현시시각의 차이(L1 norm) : 2\n",
"처음 여섯 주기의 현시시간 차이(L1 norm) : 2\n",
"2\n"
]
},
@ -9471,7 +9472,7 @@
"text": [
"07:00\n",
"안정화된 수집시각의 차이 : 1\n",
"처음 여섯 현시시각의 차이(L1 norm) : 1\n",
"처음 여섯 주기의 현시시간 차이(L1 norm) : 1\n",
"1\n"
]
},
@ -9845,7 +9846,7 @@
"text": [
"09:30\n",
"안정화된 수집시각의 차이 : 0\n",
"처음 여섯 현시시각의 차이(L1 norm) : 1\n",
"처음 여섯 주기의 현시시간 차이(L1 norm) : 1\n",
"1\n"
]
},
@ -10250,7 +10251,7 @@
"5037\n",
"06:00\n",
"안정화된 수집시각의 차이 : 1\n",
"처음 여섯 현시시각의 차이(L1 norm) : 47\n",
"처음 여섯 주기의 현시시간 차이(L1 norm) : 47\n",
"47\n"
]
},
@ -10684,7 +10685,7 @@
"text": [
"06:30\n",
"안정화된 수집시각의 차이 : 1\n",
"처음 여섯 현시시각의 차이(L1 norm) : 15\n",
"처음 여섯 주기의 현시시간 차이(L1 norm) : 15\n",
"15\n"
]
},
@ -11118,7 +11119,7 @@
"text": [
"07:00\n",
"안정화된 수집시각의 차이 : 0\n",
"처음 여섯 현시시각의 차이(L1 norm) : 0\n",
"처음 여섯 주기의 현시시간 차이(L1 norm) : 0\n",
"0\n"
]
},
@ -11522,7 +11523,7 @@
"text": [
"09:30\n",
"안정화된 수집시각의 차이 : 1\n",
"처음 여섯 현시시각의 차이(L1 norm) : 29\n",
"처음 여섯 주기의 현시시간 차이(L1 norm) : 29\n",
"29\n"
]
},
@ -11927,7 +11928,7 @@
"5038\n",
"06:00\n",
"안정화된 수집시각의 차이 : -1\n",
"처음 여섯 현시시각의 차이(L1 norm) : 64\n",
"처음 여섯 주기의 현시시간 차이(L1 norm) : 64\n",
"64\n"
]
},
@ -12361,7 +12362,7 @@
"text": [
"06:30\n",
"안정화된 수집시각의 차이 : -1\n",
"처음 여섯 현시시각의 차이(L1 norm) : 0\n",
"처음 여섯 주기의 현시시간 차이(L1 norm) : 0\n",
"0\n"
]
},
@ -12825,7 +12826,7 @@
"text": [
"07:00\n",
"안정화된 수집시각의 차이 : -1\n",
"처음 여섯 현시시각의 차이(L1 norm) : 0\n",
"처음 여섯 주기의 현시시간 차이(L1 norm) : 0\n",
"0\n"
]
},
@ -13229,7 +13230,7 @@
"text": [
"09:30\n",
"안정화된 수집시각의 차이 : 0\n",
"처음 여섯 현시시각의 차이(L1 norm) : 42\n",
"처음 여섯 주기의 현시시간 차이(L1 norm) : 42\n",
"42\n"
]
},
@ -13634,7 +13635,7 @@
"5039\n",
"06:00\n",
"안정화된 수집시각의 차이 : 0\n",
"처음 여섯 현시시각의 차이(L1 norm) : 38\n",
"처음 여섯 주기의 현시시간 차이(L1 norm) : 38\n",
"38\n"
]
},
@ -14068,7 +14069,7 @@
"text": [
"06:30\n",
"안정화된 수집시각의 차이 : 0\n",
"처음 여섯 현시시각의 차이(L1 norm) : 35\n",
"처음 여섯 주기의 현시시간 차이(L1 norm) : 35\n",
"35\n"
]
},
@ -14502,7 +14503,7 @@
"text": [
"07:00\n",
"안정화된 수집시각의 차이 : 0\n",
"처음 여섯 현시시각의 차이(L1 norm) : 6\n",
"처음 여섯 주기의 현시시간 차이(L1 norm) : 6\n",
"6\n"
]
},
@ -14906,7 +14907,7 @@
"text": [
"09:30\n",
"안정화된 수집시각의 차이 : 0\n",
"처음 여섯 현시시각의 차이(L1 norm) : 78\n",
"처음 여섯 주기의 현시시간 차이(L1 norm) : 78\n",
"78\n"
]
},
@ -15311,7 +15312,7 @@
"5040\n",
"06:00\n",
"안정화된 수집시각의 차이 : 0\n",
"처음 여섯 현시시각의 차이(L1 norm) : 22\n",
"처음 여섯 주기의 현시시간 차이(L1 norm) : 22\n",
"22\n"
]
},
@ -15745,7 +15746,7 @@
"text": [
"06:30\n",
"안정화된 수집시각의 차이 : 1\n",
"처음 여섯 현시시각의 차이(L1 norm) : 29\n",
"처음 여섯 주기의 현시시간 차이(L1 norm) : 29\n",
"29\n"
]
},
@ -16179,7 +16180,7 @@
"text": [
"07:00\n",
"안정화된 수집시각의 차이 : 1\n",
"처음 여섯 현시시각의 차이(L1 norm) : 0\n",
"처음 여섯 주기의 현시시간 차이(L1 norm) : 0\n",
"0\n"
]
},
@ -16583,7 +16584,7 @@
"text": [
"09:30\n",
"안정화된 수집시각의 차이 : 0\n",
"처음 여섯 현시시각의 차이(L1 norm) : 0\n",
"처음 여섯 주기의 현시시간 차이(L1 norm) : 0\n",
"0\n"
]
},
@ -16988,7 +16989,7 @@
"5041\n",
"06:00\n",
"안정화된 수집시각의 차이 : 1\n",
"처음 여섯 현시시각의 차이(L1 norm) : 30\n",
"처음 여섯 주기의 현시시간 차이(L1 norm) : 30\n",
"30\n"
]
},
@ -17422,7 +17423,7 @@
"text": [
"06:30\n",
"안정화된 수집시각의 차이 : 0\n",
"처음 여섯 현시시각의 차이(L1 norm) : 32\n",
"처음 여섯 주기의 현시시간 차이(L1 norm) : 32\n",
"32\n"
]
},
@ -17856,7 +17857,7 @@
"text": [
"07:00\n",
"안정화된 수집시각의 차이 : 0\n",
"처음 여섯 현시시각의 차이(L1 norm) : 3\n",
"처음 여섯 주기의 현시시간 차이(L1 norm) : 3\n",
"3\n"
]
},
@ -18260,7 +18261,7 @@
"text": [
"09:30\n",
"안정화된 수집시각의 차이 : 0\n",
"처음 여섯 현시시각의 차이(L1 norm) : 72\n",
"처음 여섯 주기의 현시시간 차이(L1 norm) : 72\n",
"72\n"
]
},
@ -18665,7 +18666,7 @@
"5042\n",
"06:00\n",
"안정화된 수집시각의 차이 : -1\n",
"처음 여섯 현시시각의 차이(L1 norm) : 0\n",
"처음 여섯 주기의 현시시간 차이(L1 norm) : 0\n",
"0\n"
]
},
@ -19099,7 +19100,7 @@
"text": [
"06:30\n",
"안정화된 수집시각의 차이 : -1\n",
"처음 여섯 현시시각의 차이(L1 norm) : 0\n",
"처음 여섯 주기의 현시시간 차이(L1 norm) : 0\n",
"0\n"
]
},
@ -19503,7 +19504,7 @@
"text": [
"07:00\n",
"안정화된 수집시각의 차이 : 0\n",
"처음 여섯 현시시각의 차이(L1 norm) : 0\n",
"처음 여섯 주기의 현시시간 차이(L1 norm) : 0\n",
"0\n"
]
},
@ -19907,7 +19908,7 @@
"text": [
"09:30\n",
"안정화된 수집시각의 차이 : 1\n",
"처음 여섯 현시시각의 차이(L1 norm) : 0\n",
"처음 여섯 주기의 현시시간 차이(L1 norm) : 0\n",
"0\n"
]
},
@ -20312,7 +20313,7 @@
"5043\n",
"06:00\n",
"안정화된 수집시각의 차이 : 0\n",
"처음 여섯 현시시각의 차이(L1 norm) : 20\n",
"처음 여섯 주기의 현시시간 차이(L1 norm) : 20\n",
"20\n"
]
},
@ -20746,7 +20747,7 @@
"text": [
"06:30\n",
"안정화된 수집시각의 차이 : -1\n",
"처음 여섯 현시시각의 차이(L1 norm) : 31\n",
"처음 여섯 주기의 현시시간 차이(L1 norm) : 31\n",
"31\n"
]
},
@ -21180,7 +21181,7 @@
"text": [
"07:00\n",
"안정화된 수집시각의 차이 : 1\n",
"처음 여섯 현시시각의 차이(L1 norm) : 0\n",
"처음 여섯 주기의 현시시간 차이(L1 norm) : 0\n",
"0\n"
]
},
@ -21584,7 +21585,7 @@
"text": [
"09:30\n",
"안정화된 수집시각의 차이 : 0\n",
"처음 여섯 현시시각의 차이(L1 norm) : 69\n",
"처음 여섯 주기의 현시시간 차이(L1 norm) : 69\n",
"69\n"
]
},
@ -21989,7 +21990,7 @@
"5044\n",
"06:00\n",
"안정화된 수집시각의 차이 : 0\n",
"처음 여섯 현시시각의 차이(L1 norm) : 16\n",
"처음 여섯 주기의 현시시간 차이(L1 norm) : 16\n",
"16\n"
]
},
@ -22423,7 +22424,7 @@
"text": [
"06:30\n",
"안정화된 수집시각의 차이 : 0\n",
"처음 여섯 현시시각의 차이(L1 norm) : 0\n",
"처음 여섯 주기의 현시시간 차이(L1 norm) : 0\n",
"0\n"
]
},
@ -22857,7 +22858,7 @@
"text": [
"07:00\n",
"안정화된 수집시각의 차이 : 1\n",
"처음 여섯 현시시각의 차이(L1 norm) : 1\n",
"처음 여섯 주기의 현시시간 차이(L1 norm) : 1\n",
"1\n"
]
},
@ -23231,7 +23232,7 @@
"text": [
"09:30\n",
"안정화된 수집시각의 차이 : 0\n",
"처음 여섯 현시시각의 차이(L1 norm) : 0\n",
"처음 여섯 주기의 현시시간 차이(L1 norm) : 0\n",
"0\n"
]
},
@ -23636,7 +23637,7 @@
"5045\n",
"05:00\n",
"안정화된 수집시각의 차이 : 1\n",
"처음 여섯 현시시각의 차이(L1 norm) : 0\n",
"처음 여섯 주기의 현시시간 차이(L1 norm) : 0\n",
"0\n"
]
},
@ -24070,7 +24071,7 @@
"text": [
"05:30\n",
"안정화된 수집시각의 차이 : 0\n",
"처음 여섯 현시시각의 차이(L1 norm) : 0\n",
"처음 여섯 주기의 현시시간 차이(L1 norm) : 0\n",
"0\n"
]
},
@ -24444,7 +24445,7 @@
"text": [
"06:00\n",
"안정화된 수집시각의 차이 : 0\n",
"처음 여섯 현시시각의 차이(L1 norm) : 0\n",
"처음 여섯 주기의 현시시간 차이(L1 norm) : 0\n",
"0\n"
]
},
@ -24788,7 +24789,7 @@
"text": [
"09:30\n",
"안정화된 수집시각의 차이 : 0\n",
"처음 여섯 현시시각의 차이(L1 norm) : 0\n",
"처음 여섯 주기의 현시시간 차이(L1 norm) : 0\n",
"0\n"
]
},
@ -25163,7 +25164,7 @@
"5046\n",
"05:00\n",
"안정화된 수집시각의 차이 : 3\n",
"처음 여섯 현시시각의 차이(L1 norm) : 3\n",
"처음 여섯 주기의 현시시간 차이(L1 norm) : 3\n",
"3\n"
]
},
@ -25597,7 +25598,7 @@
"text": [
"05:30\n",
"안정화된 수집시각의 차이 : 0\n",
"처음 여섯 현시시각의 차이(L1 norm) : 2\n",
"처음 여섯 주기의 현시시간 차이(L1 norm) : 2\n",
"2\n"
]
},
@ -26001,7 +26002,7 @@
"text": [
"06:00\n",
"안정화된 수집시각의 차이 : 0\n",
"처음 여섯 현시시각의 차이(L1 norm) : 0\n",
"처음 여섯 주기의 현시시간 차이(L1 norm) : 0\n",
"0\n"
]
},
@ -26345,7 +26346,7 @@
"text": [
"09:30\n",
"안정화된 수집시각의 차이 : 0\n",
"처음 여섯 현시시각의 차이(L1 norm) : 1\n",
"처음 여섯 주기의 현시시간 차이(L1 norm) : 1\n",
"1\n"
]
},
@ -26720,7 +26721,7 @@
"5047\n",
"05:00\n",
"안정화된 수집시각의 차이 : 2\n",
"처음 여섯 현시시각의 차이(L1 norm) : 0\n",
"처음 여섯 주기의 현시시간 차이(L1 norm) : 0\n",
"0\n"
]
},
@ -27124,7 +27125,7 @@
"text": [
"05:30\n",
"안정화된 수집시각의 차이 : 1\n",
"처음 여섯 현시시각의 차이(L1 norm) : 0\n",
"처음 여섯 주기의 현시시간 차이(L1 norm) : 0\n",
"0\n"
]
},
@ -27528,7 +27529,7 @@
"text": [
"06:00\n",
"안정화된 수집시각의 차이 : 0\n",
"처음 여섯 현시시각의 차이(L1 norm) : 56\n",
"처음 여섯 주기의 현시시간 차이(L1 norm) : 56\n",
"56\n"
]
},
@ -27872,7 +27873,7 @@
"text": [
"09:30\n",
"안정화된 수집시각의 차이 : 0\n",
"처음 여섯 현시시각의 차이(L1 norm) : 17\n",
"처음 여섯 주기의 현시시간 차이(L1 norm) : 17\n",
"17\n"
]
},
@ -28281,18 +28282,20 @@
" print(trans_time)\n",
" hour, minute = trans_time.split(\":\")\n",
" hour, minute = int(hour), int(minute)\n",
" df12 = hstr_temp[(hstr_temp['수집날짜시각']>=datetime(2023, 12, 12, hour, minute))&(hstr_temp['수집날짜시각']<datetime(2023, 12, 12, hour, minute+29))]\n",
" df13 = hstr_temp[(hstr_temp['수집날짜시각']>=datetime(2023, 12, 13, hour, minute))&(hstr_temp['수집날짜시각']<datetime(2023, 12, 13, hour, minute+29))]\n",
" start_dt12 = datetime(2023, 12, 12, hour, minute)\n",
" start_dt13 = datetime(2023, 12, 13, hour, minute)\n",
" df12 = hstr_temp[(hstr_temp['수집날짜시각']>=start_dt12)&(hstr_temp['수집날짜시각']<start_dt12 + timedelta(minutes=29))]\n",
" df13 = hstr_temp[(hstr_temp['수집날짜시각']>=start_dt13)&(hstr_temp['수집날짜시각']<start_dt13 + timedelta(minutes=29))]\n",
" hstrs[inter_no][trans_time][12] = df12\n",
" hstrs[inter_no][trans_time][13] = df13\n",
" consist12 = df12.iloc[-1].수집날짜시각\n",
" consist13 = df13.iloc[-1].수집날짜시각\n",
" diff = int((consist12+timedelta(1)-consist13).total_seconds())\n",
" diff = int((consist12+timedelta(days=1)-consist13).total_seconds())\n",
" diffs[inter_no][trans_time] = diff\n",
" print(f'안정화된 수집시각의 차이 : {diff}')\n",
" error = int(np.linalg.norm(df12.iloc[:6,4:].values - df13.iloc[:6,4:].values, ord=1))\n",
" erros[inter_no][trans_time] = error\n",
" print(f'처음 여섯 현시시각의 차이(L1 norm) : {error}')\n",
" print(f'처음 여섯 주기의 현시시간 차이(L1 norm) : {error}')\n",
" print(error)\n",
" display(df12)\n",
" display(df13)"
@ -28300,7 +28303,7 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
@ -28311,6 +28314,180 @@
" display(hstrs[inter_no][start_time][13])\n",
"# each_results(5031, '06:00')"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>현장교차로ID</th>\n",
" <th>수집날짜시각</th>\n",
" <th>주기시간</th>\n",
" <th>옵셋시간</th>\n",
" <th>TOD옵셋</th>\n",
" <th>계산한옵셋</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>470</th>\n",
" <td>5039</td>\n",
" <td>2023-12-12 06:28:00</td>\n",
" <td>160</td>\n",
" <td>80</td>\n",
" <td>125</td>\n",
" <td>80</td>\n",
" </tr>\n",
" <tr>\n",
" <th>469</th>\n",
" <td>5040</td>\n",
" <td>2023-12-12 06:28:13</td>\n",
" <td>160</td>\n",
" <td>94</td>\n",
" <td>135</td>\n",
" <td>93</td>\n",
" </tr>\n",
" <tr>\n",
" <th>470</th>\n",
" <td>5041</td>\n",
" <td>2023-12-12 06:28:09</td>\n",
" <td>160</td>\n",
" <td>89</td>\n",
" <td>135</td>\n",
" <td>89</td>\n",
" </tr>\n",
" <tr>\n",
" <th>471</th>\n",
" <td>5042</td>\n",
" <td>2023-12-12 06:28:11</td>\n",
" <td>160</td>\n",
" <td>92</td>\n",
" <td>125</td>\n",
" <td>91</td>\n",
" </tr>\n",
" <tr>\n",
" <th>470</th>\n",
" <td>5043</td>\n",
" <td>2023-12-12 06:28:00</td>\n",
" <td>160</td>\n",
" <td>80</td>\n",
" <td>120</td>\n",
" <td>80</td>\n",
" </tr>\n",
" <tr>\n",
" <th>470</th>\n",
" <td>5044</td>\n",
" <td>2023-12-12 06:28:20</td>\n",
" <td>160</td>\n",
" <td>100</td>\n",
" <td>140</td>\n",
" <td>100</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" 현장교차로ID 수집날짜시각 주기시간 옵셋시간 TOD옵셋 계산한옵셋\n",
"470 5039 2023-12-12 06:28:00 160 80 125 80\n",
"469 5040 2023-12-12 06:28:13 160 94 135 93\n",
"470 5041 2023-12-12 06:28:09 160 89 135 89\n",
"471 5042 2023-12-12 06:28:11 160 92 125 91\n",
"470 5043 2023-12-12 06:28:00 160 80 120 80\n",
"470 5044 2023-12-12 06:28:20 160 100 140 100"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# 교차로군 43\n",
"# 12일, 13일의 시각대 6:00 ~ 6:30에 대한 수준은 2, 주기는 160으로 일정\n",
"h39 = hstrs[5039]['06:00'][12]\n",
"h40 = hstrs[5040]['06:00'][12]\n",
"h41 = hstrs[5041]['06:00'][12]\n",
"h42 = hstrs[5042]['06:00'][12]\n",
"h43 = hstrs[5043]['06:00'][12]\n",
"h44 = hstrs[5044]['06:00'][12]\n",
"TOD옵셋s = [125, 135, 135, 125, 120, 140]\n",
"lasts = pd.DataFrame([h39.iloc[-1,:4], h40.iloc[-1,:4], h41.iloc[-1,:4], h42.iloc[-1,:4], h43.iloc[-1,:4], h44.iloc[-1,:4]])\n",
"lasts['TOD옵셋'] = TOD옵셋s\n",
"midnight = datetime(2023, 12, 12)\n",
"lasts['계산한옵셋'] = (lasts['수집날짜시각'] - midnight).map(lambda x:int(x.total_seconds())%160)\n",
"lasts"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [],
"source": [
"# 특이한 경우(처음 두 주기 동안은 일정해야 하는데 그렇지 않은 경우)를 판별하기 위한 코드\n",
"# vs code가 자꾸 다운돼서 비활성화함.\n",
"\n",
"# from datetime import datetime\n",
"\n",
"# hstrs = {}\n",
"# diffs = {}\n",
"# erros = {}\n",
"# for inter_no in inter2trans_times:\n",
"# print(inter_no)\n",
"# hstr_temp = hstr[hstr['현장교차로ID']==inter_no].sort_values(by='수집날짜시각').reset_index(drop=True)\n",
"# hstr_temp = hstr_temp[['현장교차로ID', '수집날짜시각', '주기시간', '옵셋시간',\n",
"# 'A링1현시시간', 'A링2현시시간', 'A링3현시시간', 'A링4현시시간', 'A링5현시시간', 'A링6현시시간']]\n",
"# trans_times = inter2trans_times[inter_no]\n",
"# hstrs[inter_no] = {}\n",
"# diffs[inter_no] = {}\n",
"# erros[inter_no] = {}\n",
"# for trans_time in trans_times:\n",
"# hstrs[inter_no][trans_time] = {}\n",
"# diffs[inter_no][trans_time] = {}\n",
"# erros[inter_no][trans_time] = {}\n",
"# print(trans_time)\n",
"# hour, minute = trans_time.split(\":\")\n",
"# hour, minute = int(hour), int(minute)\n",
"# start_dt12 = datetime(2023, 12, 12, hour, minute)\n",
"# start_dt13 = datetime(2023, 12, 13, hour, minute)\n",
"# df12 = hstr_temp[(hstr_temp['수집날짜시각']>=start_dt12 - timedelta(minutes=10))&(hstr_temp['수집날짜시각']<start_dt12 + timedelta(minutes=30))]\n",
"# df13 = hstr_temp[(hstr_temp['수집날짜시각']>=start_dt13 - timedelta(minutes=10))&(hstr_temp['수집날짜시각']<start_dt13 + timedelta(minutes=30))]\n",
"# hstrs[inter_no][trans_time][12] = df12\n",
"# hstrs[inter_no][trans_time][13] = df13\n",
"# consist12 = df12.iloc[-1].수집날짜시각\n",
"# consist13 = df13.iloc[-1].수집날짜시각\n",
"# diff = int((consist12+timedelta(1)-consist13).total_seconds())\n",
"# diffs[inter_no][trans_time] = diff\n",
"# print(f'안정화된 수집시각의 차이 : {diff}')\n",
"# error = int(np.linalg.norm(df12.iloc[:6,4:].values - df13.iloc[:6,4:].values, ord=1))\n",
"# erros[inter_no][trans_time] = error\n",
"# print(f'처음 여섯 주기의 현시시간 차이(L1 norm) : {error}')\n",
"# print(error)\n",
"# display(df12)\n",
"# display(df13)"
]
}
],
"metadata": {

Loading…
Cancel
Save