Browse Source

location of 5-2-1, allocating uturn for not allocated things to be deleted in generate_signals

master
김선중 1 year ago
parent
commit
c3f598b66f
4 changed files with 691 additions and 432 deletions
  1. +301
    -0
      Analysis/0411_unp-left_p-right-uturn/0417_generate_signals.ipynb
  2. +300
    -330
      Results/sn_1704419700.add.xml
  3. BIN
      Scripts/__pycache__/preprocess_daily.cpython-38.pyc
  4. +90
    -102
      Scripts/generate_signals.py

+ 301
- 0
Analysis/0411_unp-left_p-right-uturn/0417_generate_signals.ipynb View File

@ -0,0 +1,301 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import os\n",
"import pandas as pd\n",
"import numpy as np\n",
"import sys\n",
"import copy\n",
"sys.path.append('../../Scripts')\n",
"from preprocess_daily import DailyPreprocessor\n",
"from generate_signals import SignalGenerator"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1. 데이터를 준비합니다.\n",
"1-1. 네트워크가 로드되었습니다.\n",
"1-2. 테이블들이 로드되었습니다.\n",
"2. 신호이력 테이블을 변환합니다.\n",
"3. 이동류정보 테이블을 변환합니다.\n",
"4. 통합 테이블을 생성합니다.\n"
]
}
],
"source": [
"self = SignalGenerator()\n",
"self.prepare_data() # 1 \n",
"self.process_history() # 2\n",
"self.process_movement() # 3\n",
"self.make_histids() # 4\n",
"self.set_timepoints()"
]
},
{
"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>inter_no</th>\n",
" <th>node_id</th>\n",
" <th>start_unix</th>\n",
" <th>phas_A</th>\n",
" <th>phas_B</th>\n",
" <th>move_A</th>\n",
" <th>move_B</th>\n",
" <th>duration</th>\n",
" <th>state_A</th>\n",
" <th>state_B</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>175</td>\n",
" <td>i0</td>\n",
" <td>1704415810</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>8</td>\n",
" <td>4</td>\n",
" <td>43</td>\n",
" <td>grrrgrrrgGGGGrgrr</td>\n",
" <td>gGGrgrrrgrrrrrgrr</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>175</td>\n",
" <td>i0</td>\n",
" <td>1704415810</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>7</td>\n",
" <td>3</td>\n",
" <td>45</td>\n",
" <td>grrGgrrrgrrrrrgrr</td>\n",
" <td>grrrgrrrgrrrrGgrr</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>175</td>\n",
" <td>i0</td>\n",
" <td>1704415810</td>\n",
" <td>3</td>\n",
" <td>3</td>\n",
" <td>6</td>\n",
" <td>1</td>\n",
" <td>33</td>\n",
" <td>grrrgGGrgrrrrrgrr</td>\n",
" <td>grrrgrrGgrrrrrgrr</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>175</td>\n",
" <td>i0</td>\n",
" <td>1704415810</td>\n",
" <td>3</td>\n",
" <td>4</td>\n",
" <td>6</td>\n",
" <td>2</td>\n",
" <td>22</td>\n",
" <td>grrrgGGrgrrrrrgrr</td>\n",
" <td>grrrgrrrgrrrrrgGr</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>175</td>\n",
" <td>i0</td>\n",
" <td>1704415810</td>\n",
" <td>4</td>\n",
" <td>4</td>\n",
" <td>5</td>\n",
" <td>2</td>\n",
" <td>37</td>\n",
" <td>grrrgrrrgrrrrrgrG</td>\n",
" <td>grrrgrrrgrrrrrgGr</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>387</th>\n",
" <td>210</td>\n",
" <td>u60</td>\n",
" <td>1704416820</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>6</td>\n",
" <td>18</td>\n",
" <td>25</td>\n",
" <td>GGGGGGGGr</td>\n",
" <td>GGGGGGGGr</td>\n",
" </tr>\n",
" <tr>\n",
" <th>388</th>\n",
" <td>210</td>\n",
" <td>u60</td>\n",
" <td>1704416820</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>6</td>\n",
" <td>2</td>\n",
" <td>13</td>\n",
" <td>GGGGGGGGr</td>\n",
" <td>GGGGGGGGr</td>\n",
" </tr>\n",
" <tr>\n",
" <th>389</th>\n",
" <td>210</td>\n",
" <td>u60</td>\n",
" <td>1704416820</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>5</td>\n",
" <td>2</td>\n",
" <td>38</td>\n",
" <td>GGGGGGGGG</td>\n",
" <td>GGGGGGGGr</td>\n",
" </tr>\n",
" <tr>\n",
" <th>390</th>\n",
" <td>210</td>\n",
" <td>u60</td>\n",
" <td>1704416820</td>\n",
" <td>3</td>\n",
" <td>3</td>\n",
" <td>7</td>\n",
" <td>4</td>\n",
" <td>62</td>\n",
" <td>GGGGGGGGr</td>\n",
" <td>GGGGGGGGr</td>\n",
" </tr>\n",
" <tr>\n",
" <th>391</th>\n",
" <td>210</td>\n",
" <td>u60</td>\n",
" <td>1704416820</td>\n",
" <td>4</td>\n",
" <td>4</td>\n",
" <td>8</td>\n",
" <td>3</td>\n",
" <td>21</td>\n",
" <td>GGGGGGGGr</td>\n",
" <td>GGGGGGGGr</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>392 rows × 10 columns</p>\n",
"</div>"
],
"text/plain": [
" inter_no node_id start_unix phas_A phas_B move_A move_B duration \\\n",
"0 175 i0 1704415810 1 1 8 4 43 \n",
"1 175 i0 1704415810 2 2 7 3 45 \n",
"2 175 i0 1704415810 3 3 6 1 33 \n",
"3 175 i0 1704415810 3 4 6 2 22 \n",
"4 175 i0 1704415810 4 4 5 2 37 \n",
".. ... ... ... ... ... ... ... ... \n",
"387 210 u60 1704416820 1 1 6 18 25 \n",
"388 210 u60 1704416820 1 2 6 2 13 \n",
"389 210 u60 1704416820 2 2 5 2 38 \n",
"390 210 u60 1704416820 3 3 7 4 62 \n",
"391 210 u60 1704416820 4 4 8 3 21 \n",
"\n",
" state_A state_B \n",
"0 grrrgrrrgGGGGrgrr gGGrgrrrgrrrrrgrr \n",
"1 grrGgrrrgrrrrrgrr grrrgrrrgrrrrGgrr \n",
"2 grrrgGGrgrrrrrgrr grrrgrrGgrrrrrgrr \n",
"3 grrrgGGrgrrrrrgrr grrrgrrrgrrrrrgGr \n",
"4 grrrgrrrgrrrrrgrG grrrgrrrgrrrrrgGr \n",
".. ... ... \n",
"387 GGGGGGGGr GGGGGGGGr \n",
"388 GGGGGGGGr GGGGGGGGr \n",
"389 GGGGGGGGG GGGGGGGGr \n",
"390 GGGGGGGGr GGGGGGGGr \n",
"391 GGGGGGGGr GGGGGGGGr \n",
"\n",
"[392 rows x 10 columns]"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"self.histids"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "sts",
"language": "python",
"name": "sts"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.10"
}
},
"nbformat": 4,
"nbformat_minor": 2
}

+ 300
- 330
Results/sn_1704419700.add.xml View File

@ -1,50 +1,50 @@
<additional>
<tlLogic id="c30" type="static" programID="c30_prog" offset="-169">
<phase duration="34" state="rrrrrr"/>
<phase duration="4" state="rrrrrr"/>
<tlLogic id="c30" type="static" programID="c30_prog" offset="-170">
<phase duration="35" state="rrrrrr"/>
<phase duration="3" state="rrrrrr"/>
<phase duration="1" state="rrrrrr"/>
<phase duration="34" state="GGGGGG"/>
<phase duration="4" state="GGGGGG"/>
<phase duration="35" state="GGGGGG"/>
<phase duration="3" state="GGGGGG"/>
<phase duration="1" state="GGGGGG"/>
<phase duration="38" state="GGGGGG"/>
<phase duration="4" state="GGGGGG"/>
<phase duration="39" state="GGGGGG"/>
<phase duration="3" state="GGGGGG"/>
<phase duration="1" state="GGGGGG"/>
<phase duration="17" state="GGGGGG"/>
<phase duration="4" state="yyyyyy"/>
<phase duration="18" state="GGGGGG"/>
<phase duration="3" state="yyyyyy"/>
<phase duration="1" state="rrrrrr"/>
<phase duration="33" state="rrrrrr"/>
<phase duration="4" state="rrrrrr"/>
<phase duration="34" state="rrrrrr"/>
<phase duration="3" state="rrrrrr"/>
<phase duration="1" state="rrrrrr"/>
<phase duration="34" state="GGGGGG"/>
<phase duration="4" state="GGGGGG"/>
<phase duration="35" state="GGGGGG"/>
<phase duration="3" state="GGGGGG"/>
<phase duration="1" state="GGGGGG"/>
<phase duration="38" state="GGGGGG"/>
<phase duration="4" state="GGGGGG"/>
<phase duration="39" state="GGGGGG"/>
<phase duration="3" state="GGGGGG"/>
<phase duration="1" state="GGGGGG"/>
<phase duration="17" state="GGGGGG"/>
<phase duration="4" state="yyyyyy"/>
<phase duration="18" state="GGGGGG"/>
<phase duration="3" state="yyyyyy"/>
<phase duration="1" state="rrrrrr"/>
<phase duration="33" state="rrrrrr"/>
<phase duration="4" state="rrrrrr"/>
<phase duration="34" state="rrrrrr"/>
<phase duration="3" state="rrrrrr"/>
<phase duration="1" state="rrrrrr"/>
<phase duration="34" state="GGGGGG"/>
<phase duration="4" state="GGGGGG"/>
<phase duration="35" state="GGGGGG"/>
<phase duration="3" state="GGGGGG"/>
<phase duration="1" state="GGGGGG"/>
<phase duration="38" state="GGGGGG"/>
<phase duration="4" state="GGGGGG"/>
<phase duration="39" state="GGGGGG"/>
<phase duration="3" state="GGGGGG"/>
<phase duration="1" state="GGGGGG"/>
<phase duration="17" state="GGGGGG"/>
<phase duration="4" state="yyyyyy"/>
<phase duration="18" state="GGGGGG"/>
<phase duration="3" state="yyyyyy"/>
<phase duration="1" state="rrrrrr"/>
<phase duration="33" state="rrrrrr"/>
<phase duration="4" state="rrrrrr"/>
<phase duration="34" state="rrrrrr"/>
<phase duration="3" state="rrrrrr"/>
<phase duration="1" state="rrrrrr"/>
<phase duration="34" state="GGGGGG"/>
<phase duration="4" state="GGGGGG"/>
<phase duration="35" state="GGGGGG"/>
<phase duration="3" state="GGGGGG"/>
<phase duration="1" state="GGGGGG"/>
<phase duration="38" state="GGGGGG"/>
<phase duration="39" state="GGGGGG"/>
</tlLogic>
<tlLogic id="i0" type="static" programID="i0_prog" offset="-70">
<tlLogic id="i0" type="static" programID="i0_prog" offset="-170">
<phase duration="39" state="gGGrgrrrgGGGGrgrr"/>
<phase duration="4" state="gyyrgrrrgyyyyrgrr"/>
<phase duration="1" state="grrrgrrrgrrrrrgrr"/>
@ -84,176 +84,164 @@
<phase duration="28" state="grrrgGGGgrrrrrgrr"/>
<phase duration="22" state="grrrgGGygrrrrrgrr"/>
</tlLogic>
<tlLogic id="i1" type="static" programID="i1_prog" offset="-10">
<phase duration="33" state="gGGGGGrgrr"/>
<phase duration="4" state="gyyGGGrgrr"/>
<tlLogic id="i1" type="static" programID="i1_prog" offset="-150">
<phase duration="32" state="gGGGGGrgrr"/>
<phase duration="5" state="gyyGGGrgrr"/>
<phase duration="2" state="grrGGGrgrr"/>
<phase duration="97" state="grrGGGGgrr"/>
<phase duration="4" state="grryyyygrr"/>
<phase duration="96" state="grrGGGGgrr"/>
<phase duration="5" state="grryyyygrr"/>
<phase duration="2" state="grrrrrrgrr"/>
<phase duration="34" state="grrrrrrgGG"/>
<phase duration="4" state="grrrrrrgyy"/>
<phase duration="33" state="grrrrrrgGG"/>
<phase duration="5" state="grrrrrrgyy"/>
<phase duration="2" state="grrrrrrgrr"/>
<phase duration="31" state="gGGGGGrgrr"/>
<phase duration="4" state="gyyGGGrgrr"/>
<phase duration="30" state="gGGGGGrgrr"/>
<phase duration="5" state="gyyGGGrgrr"/>
<phase duration="2" state="grrGGGrgrr"/>
<phase duration="97" state="grrGGGGgrr"/>
<phase duration="4" state="grryyyygrr"/>
<phase duration="96" state="grrGGGGgrr"/>
<phase duration="5" state="grryyyygrr"/>
<phase duration="2" state="grrrrrrgrr"/>
<phase duration="34" state="grrrrrrgGG"/>
<phase duration="4" state="grrrrrrgyy"/>
<phase duration="33" state="grrrrrrgGG"/>
<phase duration="5" state="grrrrrrgyy"/>
<phase duration="2" state="grrrrrrgrr"/>
<phase duration="31" state="gGGGGGrgrr"/>
<phase duration="4" state="gyyGGGrgrr"/>
<phase duration="30" state="gGGGGGrgrr"/>
<phase duration="5" state="gyyGGGrgrr"/>
<phase duration="2" state="grrGGGrgrr"/>
<phase duration="97" state="grrGGGGgrr"/>
<phase duration="4" state="grryyyygrr"/>
<phase duration="96" state="grrGGGGgrr"/>
<phase duration="5" state="grryyyygrr"/>
<phase duration="2" state="grrrrrrgrr"/>
<phase duration="34" state="grrrrrrgGG"/>
<phase duration="4" state="grrrrrrgyy"/>
<phase duration="33" state="grrrrrrgGG"/>
<phase duration="5" state="grrrrrrgyy"/>
<phase duration="2" state="grrrrrrgrr"/>
<phase duration="31" state="gGGGGGrgrr"/>
<phase duration="4" state="gyyGGGrgrr"/>
<phase duration="30" state="gGGGGGrgrr"/>
<phase duration="5" state="gyyGGGrgrr"/>
<phase duration="2" state="grrGGGrgrr"/>
<phase duration="97" state="grrGGGGgrr"/>
<phase duration="96" state="grrGGGGgrr"/>
</tlLogic>
<tlLogic id="i2" type="static" programID="i2_prog" offset="-150">
<phase duration="39" state="GGggGGG"/>
<phase duration="4" state="yyggyyy"/>
<phase duration="0" state="rrggrrr"/>
<phase duration="0" state="rrggrrr"/>
<phase duration="0" state="rrggrrr"/>
<phase duration="23" state="rrggrrr"/>
<phase duration="4" state="rrggrrr"/>
<phase duration="0" state="rrggrrr"/>
<phase duration="0" state="GGggrrr"/>
<phase duration="0" state="rrggGGG"/>
<phase duration="39" state="GGggGGG"/>
<phase duration="4" state="yyggyyy"/>
<phase duration="0" state="rrggrrr"/>
<phase duration="0" state="rrggrrr"/>
<phase duration="0" state="rrggrrr"/>
<phase duration="23" state="rrggrrr"/>
<phase duration="4" state="rrggrrr"/>
<phase duration="0" state="rrggrrr"/>
<phase duration="0" state="GGggrrr"/>
<phase duration="0" state="rrggGGG"/>
<phase duration="39" state="GGggGGG"/>
<phase duration="4" state="yyggyyy"/>
<phase duration="0" state="rrggrrr"/>
<phase duration="0" state="rrggrrr"/>
<phase duration="0" state="rrggrrr"/>
<phase duration="23" state="rrggrrr"/>
<phase duration="4" state="rrggrrr"/>
<phase duration="0" state="GGggGGG"/>
<phase duration="0" state="rrggrrr"/>
<phase duration="0" state="GGggrrr"/>
<phase duration="39" state="rrggGGG"/>
<tlLogic id="i2" type="static" programID="i2_prog" offset="-170">
<phase duration="38" state="GGggGGG"/>
<phase duration="5" state="yyggyyy"/>
<phase duration="1" state="rrggrrr"/>
<phase duration="21" state="rrggrrr"/>
<phase duration="5" state="rrggrrr"/>
<phase duration="1" state="rrggrrr"/>
<phase duration="37" state="GGggGGG"/>
<phase duration="5" state="yyggyyy"/>
<phase duration="1" state="rrggrrr"/>
<phase duration="21" state="rrggrrr"/>
<phase duration="5" state="rrggrrr"/>
<phase duration="1" state="rrggrrr"/>
<phase duration="37" state="GGggGGG"/>
<phase duration="5" state="yyggyyy"/>
<phase duration="1" state="rrggrrr"/>
<phase duration="21" state="rrggrrr"/>
<phase duration="5" state="rrggrrr"/>
<phase duration="1" state="rrggrrr"/>
<phase duration="37" state="GGggGGG"/>
</tlLogic>
<tlLogic id="i3" type="static" programID="i3_prog" offset="-169">
<phase duration="34" state="gGGGrgrrrrgGGGrgrrrr"/>
<phase duration="4" state="gyyyrgrrrrgyyyrgrrrr"/>
<tlLogic id="i3" type="static" programID="i3_prog" offset="-170">
<phase duration="35" state="gGGGrgrrrrgGGGrgrrrr"/>
<phase duration="3" state="gyyyrgrrrrgyyyrgrrrr"/>
<phase duration="1" state="grrrrgrrrrgrrrrgrrrr"/>
<phase duration="34" state="grrrGgrrrrgrrrGgrrrr"/>
<phase duration="4" state="grrrygrrrrgrrrygrrrr"/>
<phase duration="35" state="grrrGgrrrrgrrrGgrrrr"/>
<phase duration="3" state="grrrygrrrrgrrrygrrrr"/>
<phase duration="1" state="grrrrgrrrrgrrrrgrrrr"/>
<phase duration="38" state="grrrrgrrrrgrrrrgGGGG"/>
<phase duration="4" state="grrrrgrrrrgrrrrgyyyy"/>
<phase duration="39" state="grrrrgrrrrgrrrrgGGGG"/>
<phase duration="3" state="grrrrgrrrrgrrrrgyyyy"/>
<phase duration="1" state="grrrrgrrrrgrrrrgrrrr"/>
<phase duration="17" state="grrrrgGGGGgrrrrgrrrr"/>
<phase duration="4" state="grrrrgyyyygrrrrgrrrr"/>
<phase duration="18" state="grrrrgGGGGgrrrrgrrrr"/>
<phase duration="3" state="grrrrgyyyygrrrrgrrrr"/>
<phase duration="1" state="grrrrgrrrrgrrrrgrrrr"/>
<phase duration="33" state="gGGGrgrrrrgGGGrgrrrr"/>
<phase duration="4" state="gyyyrgrrrrgyyyrgrrrr"/>
<phase duration="34" state="gGGGrgrrrrgGGGrgrrrr"/>
<phase duration="3" state="gyyyrgrrrrgyyyrgrrrr"/>
<phase duration="1" state="grrrrgrrrrgrrrrgrrrr"/>
<phase duration="34" state="grrrGgrrrrgrrrGgrrrr"/>
<phase duration="4" state="grrrygrrrrgrrrygrrrr"/>
<phase duration="35" state="grrrGgrrrrgrrrGgrrrr"/>
<phase duration="3" state="grrrygrrrrgrrrygrrrr"/>
<phase duration="1" state="grrrrgrrrrgrrrrgrrrr"/>
<phase duration="38" state="grrrrgrrrrgrrrrgGGGG"/>
<phase duration="4" state="grrrrgrrrrgrrrrgyyyy"/>
<phase duration="39" state="grrrrgrrrrgrrrrgGGGG"/>
<phase duration="3" state="grrrrgrrrrgrrrrgyyyy"/>
<phase duration="1" state="grrrrgrrrrgrrrrgrrrr"/>
<phase duration="17" state="grrrrgGGGGgrrrrgrrrr"/>
<phase duration="4" state="grrrrgyyyygrrrrgrrrr"/>
<phase duration="18" state="grrrrgGGGGgrrrrgrrrr"/>
<phase duration="3" state="grrrrgyyyygrrrrgrrrr"/>
<phase duration="1" state="grrrrgrrrrgrrrrgrrrr"/>
<phase duration="33" state="gGGGrgrrrrgGGGrgrrrr"/>
<phase duration="4" state="gyyyrgrrrrgyyyrgrrrr"/>
<phase duration="34" state="gGGGrgrrrrgGGGrgrrrr"/>
<phase duration="3" state="gyyyrgrrrrgyyyrgrrrr"/>
<phase duration="1" state="grrrrgrrrrgrrrrgrrrr"/>
<phase duration="34" state="grrrGgrrrrgrrrGgrrrr"/>
<phase duration="4" state="grrrygrrrrgrrrygrrrr"/>
<phase duration="35" state="grrrGgrrrrgrrrGgrrrr"/>
<phase duration="3" state="grrrygrrrrgrrrygrrrr"/>
<phase duration="1" state="grrrrgrrrrgrrrrgrrrr"/>
<phase duration="38" state="grrrrgrrrrgrrrrgGGGG"/>
<phase duration="4" state="grrrrgrrrrgrrrrgyyyy"/>
<phase duration="39" state="grrrrgrrrrgrrrrgGGGG"/>
<phase duration="3" state="grrrrgrrrrgrrrrgyyyy"/>
<phase duration="1" state="grrrrgrrrrgrrrrgrrrr"/>
<phase duration="17" state="grrrrgGGGGgrrrrgrrrr"/>
<phase duration="4" state="grrrrgyyyygrrrrgrrrr"/>
<phase duration="18" state="grrrrgGGGGgrrrrgrrrr"/>
<phase duration="3" state="grrrrgyyyygrrrrgrrrr"/>
<phase duration="1" state="grrrrgrrrrgrrrrgrrrr"/>
<phase duration="33" state="gGGGrgrrrrgGGGrgrrrr"/>
<phase duration="4" state="gyyyrgrrrrgyyyrgrrrr"/>
<phase duration="34" state="gGGGrgrrrrgGGGrgrrrr"/>
<phase duration="3" state="gyyyrgrrrrgyyyrgrrrr"/>
<phase duration="1" state="grrrrgrrrrgrrrrgrrrr"/>
<phase duration="34" state="grrrGgrrrrgrrrGgrrrr"/>
<phase duration="4" state="grrrygrrrrgrrrygrrrr"/>
<phase duration="35" state="grrrGgrrrrgrrrGgrrrr"/>
<phase duration="3" state="grrrygrrrrgrrrygrrrr"/>
<phase duration="1" state="grrrrgrrrrgrrrrgrrrr"/>
<phase duration="38" state="grrrrgrrrrgrrrrgGGGG"/>
<phase duration="39" state="grrrrgrrrrgrrrrgGGGG"/>
</tlLogic>
<tlLogic id="i6" type="static" programID="i6_prog" offset="-30">
<tlLogic id="i6" type="static" programID="i6_prog" offset="-41">
<phase duration="1" state="grrrgGGGrgrrgrrr"/>
<phase duration="23" state="grrrgGGGrgrrgrrr"/>
<phase duration="4" state="grrrgGGGrgrrgrrr"/>
<phase duration="22" state="grrrgGGGrgrrgrrr"/>
<phase duration="5" state="grrrgGGGrgrrgrrr"/>
<phase duration="1" state="grrrgGGGrgrrgGGr"/>
<phase duration="10" state="grrrgGGGrgrrgGGr"/>
<phase duration="4" state="grrrgyyyrgrrgGGr"/>
<phase duration="9" state="grrrgGGGrgrrgGGr"/>
<phase duration="5" state="grrrgyyyrgrrgGGr"/>
<phase duration="1" state="grrrgrrrrgrrgGGr"/>
<phase duration="38" state="grrrgrrrrgrrgGGG"/>
<phase duration="4" state="grrrgrrrrgrrgyyy"/>
<phase duration="37" state="grrrgrrrrgrrgGGG"/>
<phase duration="5" state="grrrgrrrrgrrgyyy"/>
<phase duration="1" state="grrrgrrrrgrrgrrr"/>
<phase duration="65" state="gGGGgrrrrgrrgrrr"/>
<phase duration="4" state="gyyygrrrrgrrgrrr"/>
<phase duration="64" state="gGGGgrrrrgrrgrrr"/>
<phase duration="5" state="gyyygrrrrgrrgrrr"/>
<phase duration="1" state="grrrgrrrrgrrgrrr"/>
<phase duration="19" state="grrrgrrrrgGGgrrr"/>
<phase duration="4" state="grrrgrrrrgyygrrr"/>
<phase duration="18" state="grrrgrrrrgGGgrrr"/>
<phase duration="5" state="grrrgrrrrgyygrrr"/>
<phase duration="1" state="grrrgGGGrgrrgrrr"/>
<phase duration="23" state="grrrgGGGrgrrgrrr"/>
<phase duration="4" state="grrrgGGGrgrrgrrr"/>
<phase duration="22" state="grrrgGGGrgrrgrrr"/>
<phase duration="5" state="grrrgGGGrgrrgrrr"/>
<phase duration="1" state="grrrgGGGrgrrgGGr"/>
<phase duration="10" state="grrrgGGGrgrrgGGr"/>
<phase duration="4" state="grrrgyyyrgrrgGGr"/>
<phase duration="9" state="grrrgGGGrgrrgGGr"/>
<phase duration="5" state="grrrgyyyrgrrgGGr"/>
<phase duration="1" state="grrrgrrrrgrrgGGr"/>
<phase duration="38" state="grrrgrrrrgrrgGGG"/>
<phase duration="4" state="grrrgrrrrgrrgyyy"/>
<phase duration="37" state="grrrgrrrrgrrgGGG"/>
<phase duration="5" state="grrrgrrrrgrrgyyy"/>
<phase duration="1" state="grrrgrrrrgrrgrrr"/>
<phase duration="65" state="gGGGgrrrrgrrgrrr"/>
<phase duration="4" state="gyyygrrrrgrrgrrr"/>
<phase duration="64" state="gGGGgrrrrgrrgrrr"/>
<phase duration="5" state="gyyygrrrrgrrgrrr"/>
<phase duration="1" state="grrrgrrrrgrrgrrr"/>
<phase duration="19" state="grrrgrrrrgGGgrrr"/>
<phase duration="4" state="grrrgrrrrgyygrrr"/>
<phase duration="18" state="grrrgrrrrgGGgrrr"/>
<phase duration="5" state="grrrgrrrrgyygrrr"/>
<phase duration="1" state="grrrgGGGrgrrgrrr"/>
<phase duration="23" state="grrrgGGGrgrrgrrr"/>
<phase duration="4" state="grrrgGGGrgrrgrrr"/>
<phase duration="22" state="grrrgGGGrgrrgrrr"/>
<phase duration="5" state="grrrgGGGrgrrgrrr"/>
<phase duration="1" state="grrrgGGGrgrrgGGr"/>
<phase duration="10" state="grrrgGGGrgrrgGGr"/>
<phase duration="4" state="grrrgyyyrgrrgGGr"/>
<phase duration="9" state="grrrgGGGrgrrgGGr"/>
<phase duration="5" state="grrrgyyyrgrrgGGr"/>
<phase duration="1" state="grrrgrrrrgrrgGGr"/>
<phase duration="38" state="grrrgrrrrgrrgGGG"/>
<phase duration="4" state="grrrgrrrrgrrgyyy"/>
<phase duration="37" state="grrrgrrrrgrrgGGG"/>
<phase duration="5" state="grrrgrrrrgrrgyyy"/>
<phase duration="1" state="grrrgrrrrgrrgrrr"/>
<phase duration="65" state="gGGGgrrrrgrrgrrr"/>
<phase duration="4" state="gyyygrrrrgrrgrrr"/>
<phase duration="64" state="gGGGgrrrrgrrgrrr"/>
<phase duration="5" state="gyyygrrrrgrrgrrr"/>
<phase duration="1" state="grrrgrrrrgrrgrrr"/>
<phase duration="19" state="grrrgrrrrgGGgrrr"/>
<phase duration="4" state="grrrgrrrrgyygrrr"/>
<phase duration="18" state="grrrgrrrrgGGgrrr"/>
<phase duration="5" state="grrrgrrrrgyygrrr"/>
<phase duration="1" state="grrrgGGGrgrrgrrr"/>
<phase duration="23" state="grrrgGGGrgrrgrrr"/>
<phase duration="4" state="grrrgGGGrgrrgrrr"/>
<phase duration="22" state="grrrgGGGrgrrgrrr"/>
<phase duration="5" state="grrrgGGGrgrrgrrr"/>
<phase duration="1" state="grrrgGGGrgrrgGGr"/>
<phase duration="10" state="grrrgGGGrgrrgGGr"/>
<phase duration="4" state="grrrgyyyrgrrgGGr"/>
<phase duration="9" state="grrrgGGGrgrrgGGr"/>
<phase duration="5" state="grrrgyyyrgrrgGGr"/>
<phase duration="1" state="grrrgrrrrgrrgGGr"/>
<phase duration="38" state="grrrgrrrrgrrgGGG"/>
<phase duration="4" state="grrrgrrrrgrrgyyy"/>
<phase duration="37" state="grrrgrrrrgrrgGGG"/>
<phase duration="5" state="grrrgrrrrgrrgyyy"/>
<phase duration="1" state="grrrgrrrrgrrgrrr"/>
<phase duration="65" state="gGGGgrrrrgrrgrrr"/>
<phase duration="64" state="gGGGgrrrrgrrgrrr"/>
</tlLogic>
<tlLogic id="i7" type="static" programID="i7_prog" offset="-110">
<tlLogic id="i7" type="static" programID="i7_prog" offset="-101">
<phase duration="41" state="GGrggGG"/>
<phase duration="4" state="yyrggyy"/>
<phase duration="0" state="rrrggrr"/>
@ -326,7 +314,7 @@
<phase duration="0" state="rrrggrr"/>
<phase duration="22" state="GGrggrr"/>
</tlLogic>
<tlLogic id="i8" type="static" programID="i8_prog" offset="-130">
<tlLogic id="i8" type="static" programID="i8_prog" offset="-170">
<phase duration="29" state="grrrrrrrgGGGgrrr"/>
<phase duration="4" state="grrrrrrrgyyygrrr"/>
<phase duration="1" state="grrrrrrrgrrrgrrr"/>
@ -383,28 +371,22 @@
<phase duration="1" state="grrrGGGrgrrrgrrr"/>
<phase duration="53" state="grrrGGGGgrrrgrrr"/>
</tlLogic>
<tlLogic id="i9" type="static" programID="i9_prog" offset="-10">
<phase duration="41" state="GGGG"/>
<phase duration="5" state="yyyy"/>
<phase duration="1" state="rrrr"/>
<phase duration="108" state="rrrr"/>
<phase duration="5" state="rrrr"/>
<tlLogic id="i9" type="static" programID="i9_prog" offset="-60">
<phase duration="42" state="GGGG"/>
<phase duration="4" state="yyyy"/>
<phase duration="1" state="rrrr"/>
<phase duration="40" state="GGGG"/>
<phase duration="5" state="yyyy"/>
<phase duration="109" state="rrrr"/>
<phase duration="4" state="rrrr"/>
<phase duration="1" state="rrrr"/>
<phase duration="108" state="rrrr"/>
<phase duration="5" state="rrrr"/>
<phase duration="1" state="rrrr"/>
<phase duration="40" state="GGGG"/>
<phase duration="5" state="yyyy"/>
<phase duration="41" state="GGGG"/>
<phase duration="4" state="yyyy"/>
<phase duration="1" state="rrrr"/>
<phase duration="108" state="rrrr"/>
<phase duration="5" state="rrrr"/>
<phase duration="223" state="rrrr"/>
<phase duration="4" state="rrrr"/>
<phase duration="1" state="rrrr"/>
<phase duration="40" state="GGGG"/>
<phase duration="41" state="GGGG"/>
</tlLogic>
<tlLogic id="u00" type="static" programID="u00_prog" offset="-70">
<tlLogic id="u00" type="static" programID="u00_prog" offset="-170">
<phase duration="39" state="GGGGrGGGG"/>
<phase duration="4" state="GGGGrGGGG"/>
<phase duration="1" state="GGGGrGGGG"/>
@ -444,230 +426,218 @@
<phase duration="28" state="GGGGrGGGG"/>
<phase duration="22" state="GGGGrGGGG"/>
</tlLogic>
<tlLogic id="u20" type="static" programID="u20_prog" offset="-150">
<phase duration="39" state="GGrGGG"/>
<phase duration="4" state="GGrGGG"/>
<phase duration="0" state="GGrGGG"/>
<phase duration="0" state="GGrGGG"/>
<phase duration="0" state="GGGGGG"/>
<phase duration="23" state="GGGGGG"/>
<phase duration="4" state="GGyGGG"/>
<phase duration="0" state="GGrGGG"/>
<phase duration="0" state="GGrGGG"/>
<phase duration="0" state="GGrGGG"/>
<phase duration="39" state="GGrGGG"/>
<phase duration="4" state="GGrGGG"/>
<phase duration="0" state="GGGGGG"/>
<phase duration="0" state="GGGGGG"/>
<phase duration="0" state="GGrGGG"/>
<phase duration="23" state="GGrGGG"/>
<phase duration="4" state="GGyGGG"/>
<phase duration="0" state="GGrGGG"/>
<phase duration="0" state="GGrGGG"/>
<phase duration="0" state="GGrGGG"/>
<phase duration="39" state="GGrGGG"/>
<phase duration="4" state="GGrGGG"/>
<phase duration="0" state="GGGGGG"/>
<phase duration="0" state="GGGGGG"/>
<phase duration="0" state="GGrGGG"/>
<phase duration="23" state="GGrGGG"/>
<phase duration="4" state="GGyGGG"/>
<phase duration="0" state="GGrGGG"/>
<phase duration="0" state="GGrGGG"/>
<phase duration="0" state="GGrGGG"/>
<phase duration="39" state="GGrGGG"/>
<tlLogic id="u20" type="static" programID="u20_prog" offset="-170">
<phase duration="38" state="GGrGGG"/>
<phase duration="5" state="GGrGGG"/>
<phase duration="1" state="GGrGGG"/>
<phase duration="21" state="GGGGGG"/>
<phase duration="5" state="GGyGGG"/>
<phase duration="1" state="GGrGGG"/>
<phase duration="37" state="GGrGGG"/>
<phase duration="5" state="GGrGGG"/>
<phase duration="1" state="GGrGGG"/>
<phase duration="21" state="GGGGGG"/>
<phase duration="5" state="GGyGGG"/>
<phase duration="1" state="GGrGGG"/>
<phase duration="37" state="GGrGGG"/>
<phase duration="5" state="GGrGGG"/>
<phase duration="1" state="GGrGGG"/>
<phase duration="21" state="GGGGGG"/>
<phase duration="5" state="GGyGGG"/>
<phase duration="1" state="GGrGGG"/>
<phase duration="37" state="GGrGGG"/>
</tlLogic>
<tlLogic id="u30" type="static" programID="u30_prog" offset="-169">
<phase duration="34" state="GGGGrGGG"/>
<phase duration="4" state="GGGGrGGG"/>
<tlLogic id="u30" type="static" programID="u30_prog" offset="-170">
<phase duration="35" state="GGGGrGGG"/>
<phase duration="3" state="GGGGrGGG"/>
<phase duration="1" state="GGGGrGGG"/>
<phase duration="34" state="GGGGrGGG"/>
<phase duration="4" state="GGGGrGGG"/>
<phase duration="35" state="GGGGrGGG"/>
<phase duration="3" state="GGGGrGGG"/>
<phase duration="1" state="GGGGrGGG"/>
<phase duration="38" state="GGGGrGGG"/>
<phase duration="4" state="GGGGrGGG"/>
<phase duration="39" state="GGGGrGGG"/>
<phase duration="3" state="GGGGrGGG"/>
<phase duration="1" state="GGGGrGGG"/>
<phase duration="17" state="GGGGGGGG"/>
<phase duration="4" state="GGGGyGGG"/>
<phase duration="1" state="GGGGrGGG"/>
<phase duration="33" state="GGGGrGGG"/>
<phase duration="4" state="GGGGrGGG"/>
<phase duration="18" state="GGGGGGGG"/>
<phase duration="3" state="GGGGyGGG"/>
<phase duration="1" state="GGGGrGGG"/>
<phase duration="34" state="GGGGrGGG"/>
<phase duration="4" state="GGGGrGGG"/>
<phase duration="3" state="GGGGrGGG"/>
<phase duration="1" state="GGGGrGGG"/>
<phase duration="38" state="GGGGrGGG"/>
<phase duration="4" state="GGGGrGGG"/>
<phase duration="35" state="GGGGrGGG"/>
<phase duration="3" state="GGGGrGGG"/>
<phase duration="1" state="GGGGrGGG"/>
<phase duration="17" state="GGGGGGGG"/>
<phase duration="4" state="GGGGyGGG"/>
<phase duration="39" state="GGGGrGGG"/>
<phase duration="3" state="GGGGrGGG"/>
<phase duration="1" state="GGGGrGGG"/>
<phase duration="33" state="GGGGrGGG"/>
<phase duration="4" state="GGGGrGGG"/>
<phase duration="18" state="GGGGGGGG"/>
<phase duration="3" state="GGGGyGGG"/>
<phase duration="1" state="GGGGrGGG"/>
<phase duration="34" state="GGGGrGGG"/>
<phase duration="4" state="GGGGrGGG"/>
<phase duration="3" state="GGGGrGGG"/>
<phase duration="1" state="GGGGrGGG"/>
<phase duration="38" state="GGGGrGGG"/>
<phase duration="4" state="GGGGrGGG"/>
<phase duration="35" state="GGGGrGGG"/>
<phase duration="3" state="GGGGrGGG"/>
<phase duration="1" state="GGGGrGGG"/>
<phase duration="17" state="GGGGGGGG"/>
<phase duration="4" state="GGGGyGGG"/>
<phase duration="39" state="GGGGrGGG"/>
<phase duration="3" state="GGGGrGGG"/>
<phase duration="1" state="GGGGrGGG"/>
<phase duration="33" state="GGGGrGGG"/>
<phase duration="4" state="GGGGrGGG"/>
<phase duration="18" state="GGGGGGGG"/>
<phase duration="3" state="GGGGyGGG"/>
<phase duration="1" state="GGGGrGGG"/>
<phase duration="34" state="GGGGrGGG"/>
<phase duration="4" state="GGGGrGGG"/>
<phase duration="3" state="GGGGrGGG"/>
<phase duration="1" state="GGGGrGGG"/>
<phase duration="35" state="GGGGrGGG"/>
<phase duration="3" state="GGGGrGGG"/>
<phase duration="1" state="GGGGrGGG"/>
<phase duration="38" state="GGGGrGGG"/>
<phase duration="39" state="GGGGrGGG"/>
</tlLogic>
<tlLogic id="u31" type="static" programID="u31_prog" offset="-169">
<phase duration="34" state="GGGGGGGG"/>
<phase duration="4" state="GGGGyGGG"/>
<tlLogic id="u31" type="static" programID="u31_prog" offset="-170">
<phase duration="35" state="GGGGGGGG"/>
<phase duration="3" state="GGGGyGGG"/>
<phase duration="1" state="GGGGrGGG"/>
<phase duration="34" state="GGGGrGGG"/>
<phase duration="4" state="GGGGrGGG"/>
<phase duration="35" state="GGGGrGGG"/>
<phase duration="3" state="GGGGrGGG"/>
<phase duration="1" state="GGGGrGGG"/>
<phase duration="38" state="GGGGrGGG"/>
<phase duration="4" state="GGGGrGGG"/>
<phase duration="39" state="GGGGrGGG"/>
<phase duration="3" state="GGGGrGGG"/>
<phase duration="1" state="GGGGrGGG"/>
<phase duration="17" state="GGGGrGGG"/>
<phase duration="4" state="GGGGrGGG"/>
<phase duration="18" state="GGGGrGGG"/>
<phase duration="3" state="GGGGrGGG"/>
<phase duration="1" state="GGGGrGGG"/>
<phase duration="33" state="GGGGGGGG"/>
<phase duration="4" state="GGGGyGGG"/>
<phase duration="34" state="GGGGGGGG"/>
<phase duration="3" state="GGGGyGGG"/>
<phase duration="1" state="GGGGrGGG"/>
<phase duration="34" state="GGGGrGGG"/>
<phase duration="4" state="GGGGrGGG"/>
<phase duration="35" state="GGGGrGGG"/>
<phase duration="3" state="GGGGrGGG"/>
<phase duration="1" state="GGGGrGGG"/>
<phase duration="38" state="GGGGrGGG"/>
<phase duration="4" state="GGGGrGGG"/>
<phase duration="39" state="GGGGrGGG"/>
<phase duration="3" state="GGGGrGGG"/>
<phase duration="1" state="GGGGrGGG"/>
<phase duration="17" state="GGGGrGGG"/>
<phase duration="4" state="GGGGrGGG"/>
<phase duration="18" state="GGGGrGGG"/>
<phase duration="3" state="GGGGrGGG"/>
<phase duration="1" state="GGGGrGGG"/>
<phase duration="33" state="GGGGGGGG"/>
<phase duration="4" state="GGGGyGGG"/>
<phase duration="34" state="GGGGGGGG"/>
<phase duration="3" state="GGGGyGGG"/>
<phase duration="1" state="GGGGrGGG"/>
<phase duration="34" state="GGGGrGGG"/>
<phase duration="4" state="GGGGrGGG"/>
<phase duration="35" state="GGGGrGGG"/>
<phase duration="3" state="GGGGrGGG"/>
<phase duration="1" state="GGGGrGGG"/>
<phase duration="38" state="GGGGrGGG"/>
<phase duration="4" state="GGGGrGGG"/>
<phase duration="39" state="GGGGrGGG"/>
<phase duration="3" state="GGGGrGGG"/>
<phase duration="1" state="GGGGrGGG"/>
<phase duration="17" state="GGGGrGGG"/>
<phase duration="4" state="GGGGrGGG"/>
<phase duration="18" state="GGGGrGGG"/>
<phase duration="3" state="GGGGrGGG"/>
<phase duration="1" state="GGGGrGGG"/>
<phase duration="33" state="GGGGGGGG"/>
<phase duration="4" state="GGGGyGGG"/>
<phase duration="34" state="GGGGGGGG"/>
<phase duration="3" state="GGGGyGGG"/>
<phase duration="1" state="GGGGrGGG"/>
<phase duration="34" state="GGGGrGGG"/>
<phase duration="4" state="GGGGrGGG"/>
<phase duration="35" state="GGGGrGGG"/>
<phase duration="3" state="GGGGrGGG"/>
<phase duration="1" state="GGGGrGGG"/>
<phase duration="38" state="GGGGrGGG"/>
<phase duration="39" state="GGGGrGGG"/>
</tlLogic>
<tlLogic id="u32" type="static" programID="u32_prog" offset="-169">
<phase duration="34" state="GGGGGGGG"/>
<phase duration="4" state="GGGGGGGy"/>
<tlLogic id="u32" type="static" programID="u32_prog" offset="-170">
<phase duration="35" state="GGGGGGGG"/>
<phase duration="3" state="GGGGGGGy"/>
<phase duration="1" state="GGGGGGGr"/>
<phase duration="34" state="GGGGGGGr"/>
<phase duration="4" state="GGGGGGGr"/>
<phase duration="35" state="GGGGGGGr"/>
<phase duration="3" state="GGGGGGGr"/>
<phase duration="1" state="GGGGGGGr"/>
<phase duration="38" state="GGGGGGGr"/>
<phase duration="4" state="GGGGGGGr"/>
<phase duration="39" state="GGGGGGGr"/>
<phase duration="3" state="GGGGGGGr"/>
<phase duration="1" state="GGGGGGGr"/>
<phase duration="17" state="GGGGGGGr"/>
<phase duration="4" state="GGGGGGGr"/>
<phase duration="18" state="GGGGGGGr"/>
<phase duration="3" state="GGGGGGGr"/>
<phase duration="1" state="GGGGGGGr"/>
<phase duration="33" state="GGGGGGGG"/>
<phase duration="4" state="GGGGGGGy"/>
<phase duration="34" state="GGGGGGGG"/>
<phase duration="3" state="GGGGGGGy"/>
<phase duration="1" state="GGGGGGGr"/>
<phase duration="34" state="GGGGGGGr"/>
<phase duration="4" state="GGGGGGGr"/>
<phase duration="35" state="GGGGGGGr"/>
<phase duration="3" state="GGGGGGGr"/>
<phase duration="1" state="GGGGGGGr"/>
<phase duration="38" state="GGGGGGGr"/>
<phase duration="4" state="GGGGGGGr"/>
<phase duration="39" state="GGGGGGGr"/>
<phase duration="3" state="GGGGGGGr"/>
<phase duration="1" state="GGGGGGGr"/>
<phase duration="17" state="GGGGGGGr"/>
<phase duration="4" state="GGGGGGGr"/>
<phase duration="18" state="GGGGGGGr"/>
<phase duration="3" state="GGGGGGGr"/>
<phase duration="1" state="GGGGGGGr"/>
<phase duration="33" state="GGGGGGGG"/>
<phase duration="4" state="GGGGGGGy"/>
<phase duration="34" state="GGGGGGGG"/>
<phase duration="3" state="GGGGGGGy"/>
<phase duration="1" state="GGGGGGGr"/>
<phase duration="34" state="GGGGGGGr"/>
<phase duration="4" state="GGGGGGGr"/>
<phase duration="35" state="GGGGGGGr"/>
<phase duration="3" state="GGGGGGGr"/>
<phase duration="1" state="GGGGGGGr"/>
<phase duration="38" state="GGGGGGGr"/>
<phase duration="4" state="GGGGGGGr"/>
<phase duration="39" state="GGGGGGGr"/>
<phase duration="3" state="GGGGGGGr"/>
<phase duration="1" state="GGGGGGGr"/>
<phase duration="17" state="GGGGGGGr"/>
<phase duration="4" state="GGGGGGGr"/>
<phase duration="18" state="GGGGGGGr"/>
<phase duration="3" state="GGGGGGGr"/>
<phase duration="1" state="GGGGGGGr"/>
<phase duration="33" state="GGGGGGGG"/>
<phase duration="4" state="GGGGGGGy"/>
<phase duration="34" state="GGGGGGGG"/>
<phase duration="3" state="GGGGGGGy"/>
<phase duration="1" state="GGGGGGGr"/>
<phase duration="34" state="GGGGGGGr"/>
<phase duration="4" state="GGGGGGGr"/>
<phase duration="35" state="GGGGGGGr"/>
<phase duration="3" state="GGGGGGGr"/>
<phase duration="1" state="GGGGGGGr"/>
<phase duration="38" state="GGGGGGGr"/>
<phase duration="39" state="GGGGGGGr"/>
</tlLogic>
<tlLogic id="u60" type="static" programID="u60_prog" offset="-30">
<tlLogic id="u60" type="static" programID="u60_prog" offset="-41">
<phase duration="1" state="GGGGGGGGr"/>
<phase duration="23" state="GGGGGGGGr"/>
<phase duration="4" state="GGGGGGGGr"/>
<phase duration="22" state="GGGGGGGGr"/>
<phase duration="5" state="GGGGGGGGr"/>
<phase duration="1" state="GGGGGGGGr"/>
<phase duration="10" state="GGGGGGGGr"/>
<phase duration="4" state="GGGGGGGGr"/>
<phase duration="9" state="GGGGGGGGr"/>
<phase duration="5" state="GGGGGGGGr"/>
<phase duration="1" state="GGGGGGGGr"/>
<phase duration="38" state="GGGGGGGGG"/>
<phase duration="4" state="GGGGGGGGy"/>
<phase duration="37" state="GGGGGGGGG"/>
<phase duration="5" state="GGGGGGGGy"/>
<phase duration="1" state="GGGGGGGGr"/>
<phase duration="65" state="GGGGGGGGr"/>
<phase duration="4" state="GGGGGGGGr"/>
<phase duration="64" state="GGGGGGGGr"/>
<phase duration="5" state="GGGGGGGGr"/>
<phase duration="1" state="GGGGGGGGr"/>
<phase duration="19" state="GGGGGGGGr"/>
<phase duration="4" state="GGGGGGGGr"/>
<phase duration="18" state="GGGGGGGGr"/>
<phase duration="5" state="GGGGGGGGr"/>
<phase duration="1" state="GGGGGGGGr"/>
<phase duration="23" state="GGGGGGGGr"/>
<phase duration="4" state="GGGGGGGGr"/>
<phase duration="22" state="GGGGGGGGr"/>
<phase duration="5" state="GGGGGGGGr"/>
<phase duration="1" state="GGGGGGGGr"/>
<phase duration="10" state="GGGGGGGGr"/>
<phase duration="4" state="GGGGGGGGr"/>
<phase duration="9" state="GGGGGGGGr"/>
<phase duration="5" state="GGGGGGGGr"/>
<phase duration="1" state="GGGGGGGGr"/>
<phase duration="38" state="GGGGGGGGG"/>
<phase duration="4" state="GGGGGGGGy"/>
<phase duration="37" state="GGGGGGGGG"/>
<phase duration="5" state="GGGGGGGGy"/>
<phase duration="1" state="GGGGGGGGr"/>
<phase duration="65" state="GGGGGGGGr"/>
<phase duration="4" state="GGGGGGGGr"/>
<phase duration="64" state="GGGGGGGGr"/>
<phase duration="5" state="GGGGGGGGr"/>
<phase duration="1" state="GGGGGGGGr"/>
<phase duration="19" state="GGGGGGGGr"/>
<phase duration="4" state="GGGGGGGGr"/>
<phase duration="18" state="GGGGGGGGr"/>
<phase duration="5" state="GGGGGGGGr"/>
<phase duration="1" state="GGGGGGGGr"/>
<phase duration="23" state="GGGGGGGGr"/>
<phase duration="4" state="GGGGGGGGr"/>
<phase duration="22" state="GGGGGGGGr"/>
<phase duration="5" state="GGGGGGGGr"/>
<phase duration="1" state="GGGGGGGGr"/>
<phase duration="10" state="GGGGGGGGr"/>
<phase duration="4" state="GGGGGGGGr"/>
<phase duration="9" state="GGGGGGGGr"/>
<phase duration="5" state="GGGGGGGGr"/>
<phase duration="1" state="GGGGGGGGr"/>
<phase duration="38" state="GGGGGGGGG"/>
<phase duration="4" state="GGGGGGGGy"/>
<phase duration="37" state="GGGGGGGGG"/>
<phase duration="5" state="GGGGGGGGy"/>
<phase duration="1" state="GGGGGGGGr"/>
<phase duration="65" state="GGGGGGGGr"/>
<phase duration="4" state="GGGGGGGGr"/>
<phase duration="64" state="GGGGGGGGr"/>
<phase duration="5" state="GGGGGGGGr"/>
<phase duration="1" state="GGGGGGGGr"/>
<phase duration="19" state="GGGGGGGGr"/>
<phase duration="4" state="GGGGGGGGr"/>
<phase duration="18" state="GGGGGGGGr"/>
<phase duration="5" state="GGGGGGGGr"/>
<phase duration="1" state="GGGGGGGGr"/>
<phase duration="23" state="GGGGGGGGr"/>
<phase duration="4" state="GGGGGGGGr"/>
<phase duration="22" state="GGGGGGGGr"/>
<phase duration="5" state="GGGGGGGGr"/>
<phase duration="1" state="GGGGGGGGr"/>
<phase duration="10" state="GGGGGGGGr"/>
<phase duration="4" state="GGGGGGGGr"/>
<phase duration="9" state="GGGGGGGGr"/>
<phase duration="5" state="GGGGGGGGr"/>
<phase duration="1" state="GGGGGGGGr"/>
<phase duration="38" state="GGGGGGGGG"/>
<phase duration="4" state="GGGGGGGGy"/>
<phase duration="37" state="GGGGGGGGG"/>
<phase duration="5" state="GGGGGGGGy"/>
<phase duration="1" state="GGGGGGGGr"/>
<phase duration="65" state="GGGGGGGGr"/>
<phase duration="64" state="GGGGGGGGr"/>
</tlLogic>
</additional>

BIN
Scripts/__pycache__/preprocess_daily.cpython-38.pyc View File


+ 90
- 102
Scripts/generate_signals.py View File

@ -592,6 +592,96 @@ class SignalGenerator():
self.histids = self.histids.sort_values(by=['start_unix', 'node_id', 'phas_A', 'phas_B']).reset_index(drop=True)
self.histids = self.histids[['inter_no', 'node_id', 'start_unix', 'phas_A', 'phas_B', 'move_A', 'move_B', 'duration', 'state_A', 'state_B']]
# 5. 신호 생성
def get_signals(self):
print("5. 신호를 생성합니다.")
self.set_timepoints()
self.time51 = datetime.now()
self.assign_red_yellow()
self.time52 = datetime.now()
self.make_tl_file()
self.time53 = datetime.now()
# 5-1. 신호 파일의 시작 및 종료시각 설정
def set_timepoints(self):
self.offsets = {}
self.sigtable = []
sim_start = self.present_time - 300
for node_id, group in self.histids.groupby('node_id'):
lsbs = group[group['start_unix'] < sim_start]['start_unix'].max() # the last start_unix before sim_start
self.offsets[node_id] = lsbs - sim_start
group = group[group.start_unix >= lsbs]
start_unixes = np.array(group.start_unix)
start_unixes = np.sort(np.unique(start_unixes))[:self.node2num_cycles[node_id]]
group = group[group.start_unix.isin(start_unixes)]
self.sigtable.append(group)
self.sigtable = pd.concat(self.sigtable).reset_index(drop=True)
self.sigtable['phase_sumo'] = self.sigtable.groupby(['node_id', 'start_unix']).cumcount()
# 5-2. 적색 및 황색신호 부여
def assign_red_yellow(self):
'''
,
input : sigtable
- (, ) , , ·
* .
output : SIGTABLE
- (, ) , (· )
* r, g, y .
'''
self.SIGTABLE = []
for node_id in self.node_ids:
sig = self.sigtable.query('node_id==@node_id')
for i, row in sig.iterrows():
inter_no = row.inter_no
phas_A = row.phas_A
phas_B = row.phas_B
start_unix = row.start_unix
prow = self.load_prow(inter_no, start_unix)[1].iloc[0]
red_A = prow[f'red_A{phas_A}']
yellow_A = prow[f'yellow_A{phas_A}']
red_B = prow[f'red_B{phas_B}']
yellow_B = prow[f'yellow_B{phas_B}']
sig.loc[i, ['red_A', 'red_B', 'yellow_A', 'yellow_B']] = red_A, red_B, yellow_A, yellow_B
sig = sig.astype({'red_A': int, 'red_B': int, 'yellow_A': int, 'yellow_B': int,
'phas_A':str, 'phas_B':str})
sig = sig.drop(['move_A','move_B'], axis=1)
sig_A = sig[['start_unix', 'phas_A', 'duration', 'state_A', 'red_A', 'yellow_A']].reset_index(drop=True)
sig_B = sig[['start_unix', 'phas_B', 'duration', 'state_B', 'red_B', 'yellow_B']].reset_index(drop=True)
csig_A = self.cumulate(sig_A, 'A')
csig_B = self.cumulate(sig_B, 'B')
SIG = pd.merge(csig_A, csig_B, on=['start_time', 'start_unix'], how='outer')
SIG = SIG.sort_values(by='start_time').reset_index(drop=True)
SIG[['phas_A', 'state_A']] = SIG[['phas_A', 'state_A']].fillna(method='ffill')
SIG[['phas_B', 'state_B']] = SIG[['phas_B', 'state_B']].fillna(method='ffill')
SIG['phase'] = SIG['phas_A'] + "_" + SIG['phas_B']
SIG['node_id'] = node_id
SIG = SIG[['node_id', 'start_unix', 'start_time', 'phase', 'state_A', 'state_B']]
SIG['duration'] = SIG['start_time'].shift(-1) - SIG['start_time']
SIG = SIG[:-1]
SIG['duration'] = SIG['duration'].astype(int)
for row in SIG.itertuples():
state = ''
for a, b, in zip(row.state_A, row.state_B):
if a == 'r':
state += b
elif b == 'r':
state += a
elif a == b:
state += a
else:
raise ValueError(f"예상되지 않은 조합 발생: a={a}, b={b}")
SIG.at[row.Index, 'state'] = state
SIG = SIG.drop(columns=['start_time', 'state_A', 'state_B'])
self.SIGTABLE.append(SIG)
self.SIGTABLE = pd.concat(self.SIGTABLE)
self.SIGTABLE
# 5-2-1 helper function of 5-2
def get_red(self, pre_state:str, cur_state:str):
@ -688,108 +778,6 @@ class SignalGenerator():
csig = pd.concat(csig).reset_index(drop=True)
return csig
# 5. 신호 생성
def get_signals(self):
print("5. 신호를 생성합니다.")
self.set_timepoints()
self.time51 = datetime.now()
self.assign_red_yellow()
self.time52 = datetime.now()
self.make_tl_file()
self.time53 = datetime.now()
# 5-1. 신호 파일의 시작 및 종료시각 설정
def set_timepoints(self):
self.offsets = {}
self.sigtable = []
sim_start = self.present_time - 300
for node_id, group in self.histids.groupby('node_id'):
lsbs = group[group['start_unix'] < sim_start]['start_unix'].max() # the last start_unix before sim_start
self.offsets[node_id] = lsbs - sim_start
group = group[group.start_unix >= lsbs]
start_unixes = np.array(group.start_unix)
start_unixes = np.sort(np.unique(start_unixes))[:self.node2num_cycles[node_id]]
group = group[group.start_unix.isin(start_unixes)]
self.sigtable.append(group)
self.sigtable = pd.concat(self.sigtable).reset_index(drop=True)
self.sigtable['phase_sumo'] = self.sigtable.groupby(['node_id', 'start_unix']).cumcount()
# 유턴 신호가 한번도 배정되지 않은 경우에 대해서는 유턴이동류의 신호를 항상 g로 배정
for uturn_id in self.uturn_ids:
the_uturn = self.sigtable.node_id==uturn_id
states = np.unique(self.sigtable[the_uturn][['state_A', 'state_B']].values)
if not any('G' in state for state in states):
uindex = self.uid2uindex[uturn_id]
for i, row in self.sigtable[the_uturn].iterrows():
self.sigtable.at[i, 'state_A'] = row.state_A[:uindex] + 'g' + row.state_A[uindex+1:]
self.sigtable.at[i, 'state_B'] = row.state_B[:uindex] + 'g' + row.state_B[uindex+1:]
# 5-2. 적색 및 황색신호 부여
def assign_red_yellow(self):
'''
,
input : sigtable
- (, ) , , ·
* .
output : SIGTABLE
- (, ) , (· )
* r, g, y .
'''
self.SIGTABLE = []
for node_id in self.node_ids:
sig = self.sigtable.query('node_id==@node_id')
for i, row in sig.iterrows():
inter_no = row.inter_no
phas_A = row.phas_A
phas_B = row.phas_B
start_unix = row.start_unix
prow = self.load_prow(inter_no, start_unix)[1].iloc[0]
red_A = prow[f'red_A{phas_A}']
yellow_A = prow[f'yellow_A{phas_A}']
red_B = prow[f'red_B{phas_B}']
yellow_B = prow[f'yellow_B{phas_B}']
sig.loc[i, ['red_A', 'red_B', 'yellow_A', 'yellow_B']] = red_A, red_B, yellow_A, yellow_B
sig = sig.astype({'red_A': int, 'red_B': int, 'yellow_A': int, 'yellow_B': int,
'phas_A':str, 'phas_B':str})
sig = sig.drop(['move_A','move_B'], axis=1)
sig_A = sig[['start_unix', 'phas_A', 'duration', 'state_A', 'red_A', 'yellow_A']].reset_index(drop=True)
sig_B = sig[['start_unix', 'phas_B', 'duration', 'state_B', 'red_B', 'yellow_B']].reset_index(drop=True)
csig_A = self.cumulate(sig_A, 'A')
csig_B = self.cumulate(sig_B, 'B')
SIG = pd.merge(csig_A, csig_B, on=['start_time', 'start_unix'], how='outer')
SIG = SIG.sort_values(by='start_time').reset_index(drop=True)
SIG[['phas_A', 'state_A']] = SIG[['phas_A', 'state_A']].fillna(method='ffill')
SIG[['phas_B', 'state_B']] = SIG[['phas_B', 'state_B']].fillna(method='ffill')
SIG['phase'] = SIG['phas_A'] + "_" + SIG['phas_B']
SIG['node_id'] = node_id
SIG = SIG[['node_id', 'start_unix', 'start_time', 'phase', 'state_A', 'state_B']]
SIG['duration'] = SIG['start_time'].shift(-1) - SIG['start_time']
SIG = SIG[:-1]
SIG['duration'] = SIG['duration'].astype(int)
for row in SIG.itertuples():
state = ''
for a, b, in zip(row.state_A, row.state_B):
if a == 'r':
state += b
elif b == 'r':
state += a
elif a == b:
state += a
else:
raise ValueError(f"예상되지 않은 조합 발생: a={a}, b={b}")
SIG.at[row.Index, 'state'] = state
SIG = SIG.drop(columns=['start_time', 'state_A', 'state_B'])
self.SIGTABLE.append(SIG)
self.SIGTABLE = pd.concat(self.SIGTABLE)
self.SIGTABLE
# 5-3. 신호파일 생성
def make_tl_file(self):
strings = ['<additional>\n']

Loading…
Cancel
Save