{
|
|
"cells": [
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 2,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"import pandas as pd\n",
|
|
"import numpy as np\n",
|
|
"import os\n",
|
|
"import sumolib\n",
|
|
"import copy\n",
|
|
"from tqdm import tqdm\n",
|
|
"from datetime import datetime"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 27,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"2024-01-05 08:25:00\n",
|
|
"2024-01-05 08:30:00\n",
|
|
"2024-01-05 08:35:00\n",
|
|
"2024-01-05 08:45:00\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"midnight = int(datetime(2024, 1, 5, 0, 0, 0).timestamp())\n",
|
|
"next_day = int(datetime(2024, 1, 6, 0, 0, 0).timestamp())\n",
|
|
"fmins = range(midnight, next_day, 300)\n",
|
|
"m = 105 # m ranges from 26 to 287\n",
|
|
"# sigtable 시작시각 : 현재시각 - 1200 = 08:25\n",
|
|
"# 시뮬레이션 시작시각 : 현재시각 - 900 = 08:30\n",
|
|
"# 시뮬레이션 종료시각 : 현재시각 - 600 = 08:35\n",
|
|
"# 현재시각 : 08:45\n",
|
|
"present_time = fmins[m]\n",
|
|
"sigtable_start = fmins[m] - 1200\n",
|
|
"sim_start = fmins[m] - 900\n",
|
|
"sim_end = fmins[m] - 600\n",
|
|
"print(datetime.fromtimestamp(sigtable_start))\n",
|
|
"print(datetime.fromtimestamp(sim_start))\n",
|
|
"print(datetime.fromtimestamp(sim_end))\n",
|
|
"print(datetime.fromtimestamp(present_time))\n",
|
|
"net = sumolib.net.readNet('../../Data/networks/sn.net.xml')\n",
|
|
"inter_node = pd.read_csv('../../data/tables/inter_node.csv', index_col=0)\n",
|
|
"match6 = pd.read_csv('../../Data/tables/matching/match6.csv', index_col=0)\n",
|
|
"match6 = match6[['node_id', 'phase_no', 'ring_type', 'inc_edge', 'out_edge']].reset_index(drop=True)\n",
|
|
"histid = pd.read_csv(f'../../Data/tables/histids/histids_{present_time}.csv', index_col=0)\n",
|
|
"histid = histid.reset_index(drop=True).drop(columns=['inter_no'])\n",
|
|
"histid"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"plan = pd.read_csv('../../Data/tables/plan.csv', index_col=0)\n",
|
|
"node2mincycle = {}\n",
|
|
"inter2mincycle = {}\n",
|
|
"for inter_no in sorted(plan.inter_no.unique()):\n",
|
|
" inter2mincycle[inter_no] = plan[plan.inter_no==inter_no].cycle.min()\n",
|
|
" print(inter_no, inter2mincycle[inter_no])\n",
|
|
"display(plan)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 4,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"{175: 'u00', 176: 'i1', 177: 'u20', 178: 'c30', 210: 'u60', 206: 'i7', 201: 'i8', 202: 'i9'}\n",
|
|
"{'i0': 175, 'u00': 175, 'i1': 176, 'i2': 177, 'u20': 177, 'i3': 178, 'u30': 178, 'u31': 178, 'u32': 178, 'c30': 178, 'i6': 210, 'u60': 210, 'i7': 206, 'i8': 201, 'i9': 202}\n",
|
|
"{'i0': ['u00'], 'i1': [], 'i2': ['u20'], 'i3': ['c30', 'u30', 'u31', 'u32'], 'i6': ['u60'], 'i7': [], 'i8': [], 'i9': []}\n",
|
|
"['c30', 'i0', 'i1', 'i2', 'i3', 'i6', 'i7', 'i8', 'i9', 'u00', 'u20', 'u30', 'u31', 'u32', 'u60']\n",
|
|
"['i0', 'i1', 'i2', 'i3', 'i6', 'i7', 'i8', 'i9']\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"inter2node = dict(zip(inter_node['inter_no'], inter_node['node_id']))\n",
|
|
"node2inter = dict(zip(inter_node['node_id'], inter_node['inter_no']))\n",
|
|
"pa2ch = {'i0':['u00'], 'i1':[], 'i2':['u20'], 'i3':['c30', 'u30', 'u31', 'u32'], 'i6':['u60'], 'i7':[], 'i8':[], 'i9':[]}\n",
|
|
"node_ids = sorted(inter_node.node_id.unique())\n",
|
|
"parent_ids = sorted(inter_node[inter_node.inter_type=='parent'].node_id.unique())\n",
|
|
"nodes = [net.getNode(node_id) for node_id in node_ids]\n",
|
|
"\n",
|
|
"print(inter2node)\n",
|
|
"print(node2inter)\n",
|
|
"print(pa2ch)\n",
|
|
"print(node_ids)\n",
|
|
"print(parent_ids)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 5,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"def make_histids(histid, match6, parent_ids, pa2ch):\n",
|
|
" new_histids = []\n",
|
|
" for parent_id in parent_ids:\n",
|
|
" for child_id in pa2ch[parent_id]:\n",
|
|
" new_histid = histid.copy()[histid.node_id==parent_id]\n",
|
|
" new_histid[['inc_edge_A', 'out_edge_A', 'inc_edge_B', 'out_edge_B']] = np.nan\n",
|
|
" for i, row in new_histid.iterrows():\n",
|
|
" phas_A = row.phas_A\n",
|
|
" phas_B = row.phas_B\n",
|
|
" new_match = match6[match6.node_id==child_id]\n",
|
|
" Arow = new_match[(new_match.phase_no==phas_A) & (new_match.ring_type=='A')]\n",
|
|
" if ~ Arow[['inc_edge', 'out_edge']].isna().all().all():\n",
|
|
" inc_edge = Arow.iloc[0].inc_edge\n",
|
|
" out_edge = Arow.iloc[0].out_edge\n",
|
|
" new_histid.loc[i, ['inc_edge_A', 'out_edge_A']] = [inc_edge, out_edge]\n",
|
|
" Brow = new_match[(new_match.phase_no==phas_B) & (new_match.ring_type=='B')]\n",
|
|
" if ~ Brow[['inc_edge', 'out_edge']].isna().all().all():\n",
|
|
" inc_edge = Brow.iloc[0].inc_edge\n",
|
|
" out_edge = Brow.iloc[0].out_edge\n",
|
|
" new_histid.loc[i, ['inc_edge_B', 'out_edge_B']] = [inc_edge, out_edge]\n",
|
|
" new_histid.loc[i, 'node_id'] = child_id\n",
|
|
" new_histids.append(new_histid)\n",
|
|
" new_histids = pd.concat(new_histids)\n",
|
|
" histids = pd.concat([histid.copy(), new_histids])\n",
|
|
" histids = histids.sort_values(by=['start_unix', 'node_id', 'phas_A', 'phas_B']).reset_index(drop=True)\n",
|
|
" return histids\n",
|
|
"histids = make_histids(histid, match6, parent_ids, pa2ch)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 6,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"def initialize_states():\n",
|
|
" node2init = {}\n",
|
|
" for node in nodes:\n",
|
|
" node_id = node.getID()\n",
|
|
" conns = [(c.getJunctionIndex(), c) for c in node.getConnections()]\n",
|
|
" conns = [c for c in conns if c[0] >= 0]\n",
|
|
" conns = sorted(conns, key=lambda x: x[0])\n",
|
|
" state = []\n",
|
|
" for i, ci in conns:\n",
|
|
" if ci.getTLLinkIndex() < 0:\n",
|
|
" continue\n",
|
|
" are_foes = False\n",
|
|
" for j, cj in conns:\n",
|
|
" if ci.getTo() == cj.getTo():\n",
|
|
" continue\n",
|
|
" if node.areFoes(i, j):\n",
|
|
" are_foes = True\n",
|
|
" break\n",
|
|
" state.append('r' if are_foes else 'g')\n",
|
|
" node2init[node_id] = state\n",
|
|
"\n",
|
|
" # 어떤 연결과도 상충이 일어나지는 않지만, 신호가 부여되어 있는 경우에는 r을 부여\n",
|
|
" for _, row in histids.iterrows():\n",
|
|
" node_id = row['node_id']\n",
|
|
" inc_edge_A = row.inc_edge_A\n",
|
|
" inc_edge_B = row.inc_edge_B\n",
|
|
" out_edge_A = row.out_edge_A\n",
|
|
" out_edge_B = row.out_edge_B\n",
|
|
"\n",
|
|
" if pd.isna(inc_edge_A) or pd.isna(out_edge_A):\n",
|
|
" pass\n",
|
|
" else:\n",
|
|
" inc_edge_A = net.getEdge(inc_edge_A)\n",
|
|
" out_edge_A = net.getEdge(out_edge_A)\n",
|
|
" for conn in inc_edge_A.getConnections(out_edge_A):\n",
|
|
" index = conn.getTLLinkIndex()\n",
|
|
" if index >= 0:\n",
|
|
" node2init[node_id][index] = 'r'\n",
|
|
"\n",
|
|
" if pd.isna(inc_edge_B) or pd.isna(out_edge_B):\n",
|
|
" pass\n",
|
|
" else:\n",
|
|
" inc_edge_B = net.getEdge(inc_edge_B)\n",
|
|
" out_edge_B = net.getEdge(out_edge_B)\n",
|
|
" for conn in inc_edge_B.getConnections(out_edge_B):\n",
|
|
" index = conn.getTLLinkIndex()\n",
|
|
" if index >= 0:\n",
|
|
" node2init[node_id][index] = 'r'\n",
|
|
" return node2init\n",
|
|
"node2init = initialize_states()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 7,
|
|
"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>node_id</th>\n",
|
|
" <th>start_unix</th>\n",
|
|
" <th>phas_A</th>\n",
|
|
" <th>phas_B</th>\n",
|
|
" <th>duration</th>\n",
|
|
" <th>inc_edge_A</th>\n",
|
|
" <th>out_edge_A</th>\n",
|
|
" <th>inc_edge_B</th>\n",
|
|
" <th>out_edge_B</th>\n",
|
|
" </tr>\n",
|
|
" </thead>\n",
|
|
" <tbody>\n",
|
|
" <tr>\n",
|
|
" <th>36</th>\n",
|
|
" <td>u30</td>\n",
|
|
" <td>1704410790</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>38</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>37</th>\n",
|
|
" <td>u30</td>\n",
|
|
" <td>1704410790</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>39</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>38</th>\n",
|
|
" <td>u30</td>\n",
|
|
" <td>1704410790</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>42</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>39</th>\n",
|
|
" <td>u30</td>\n",
|
|
" <td>1704410790</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>21</td>\n",
|
|
" <td>571556452_01</td>\n",
|
|
" <td>571556452_02</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>94</th>\n",
|
|
" <td>u30</td>\n",
|
|
" <td>1704410950</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>38</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>95</th>\n",
|
|
" <td>u30</td>\n",
|
|
" <td>1704410950</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>39</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>96</th>\n",
|
|
" <td>u30</td>\n",
|
|
" <td>1704410950</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>42</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>97</th>\n",
|
|
" <td>u30</td>\n",
|
|
" <td>1704410950</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>21</td>\n",
|
|
" <td>571556452_01</td>\n",
|
|
" <td>571556452_02</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>142</th>\n",
|
|
" <td>u30</td>\n",
|
|
" <td>1704411110</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>38</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>143</th>\n",
|
|
" <td>u30</td>\n",
|
|
" <td>1704411110</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>39</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>144</th>\n",
|
|
" <td>u30</td>\n",
|
|
" <td>1704411110</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>42</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>145</th>\n",
|
|
" <td>u30</td>\n",
|
|
" <td>1704411110</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>21</td>\n",
|
|
" <td>571556452_01</td>\n",
|
|
" <td>571556452_02</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>195</th>\n",
|
|
" <td>u30</td>\n",
|
|
" <td>1704411270</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>38</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>196</th>\n",
|
|
" <td>u30</td>\n",
|
|
" <td>1704411270</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>39</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>197</th>\n",
|
|
" <td>u30</td>\n",
|
|
" <td>1704411270</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>42</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>198</th>\n",
|
|
" <td>u30</td>\n",
|
|
" <td>1704411270</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>21</td>\n",
|
|
" <td>571556452_01</td>\n",
|
|
" <td>571556452_02</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>248</th>\n",
|
|
" <td>u30</td>\n",
|
|
" <td>1704411430</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>38</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>249</th>\n",
|
|
" <td>u30</td>\n",
|
|
" <td>1704411430</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>39</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>250</th>\n",
|
|
" <td>u30</td>\n",
|
|
" <td>1704411430</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>42</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>251</th>\n",
|
|
" <td>u30</td>\n",
|
|
" <td>1704411430</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>21</td>\n",
|
|
" <td>571556452_01</td>\n",
|
|
" <td>571556452_02</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>306</th>\n",
|
|
" <td>u30</td>\n",
|
|
" <td>1704411590</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>38</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>307</th>\n",
|
|
" <td>u30</td>\n",
|
|
" <td>1704411590</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>39</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>308</th>\n",
|
|
" <td>u30</td>\n",
|
|
" <td>1704411590</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>42</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>309</th>\n",
|
|
" <td>u30</td>\n",
|
|
" <td>1704411590</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>21</td>\n",
|
|
" <td>571556452_01</td>\n",
|
|
" <td>571556452_02</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" </tr>\n",
|
|
" </tbody>\n",
|
|
"</table>\n",
|
|
"</div>"
|
|
],
|
|
"text/plain": [
|
|
" node_id start_unix phas_A phas_B duration inc_edge_A out_edge_A \\\n",
|
|
"36 u30 1704410790 1 1 38 NaN NaN \n",
|
|
"37 u30 1704410790 2 2 39 NaN NaN \n",
|
|
"38 u30 1704410790 3 3 42 NaN NaN \n",
|
|
"39 u30 1704410790 4 4 21 571556452_01 571556452_02 \n",
|
|
"94 u30 1704410950 1 1 38 NaN NaN \n",
|
|
"95 u30 1704410950 2 2 39 NaN NaN \n",
|
|
"96 u30 1704410950 3 3 42 NaN NaN \n",
|
|
"97 u30 1704410950 4 4 21 571556452_01 571556452_02 \n",
|
|
"142 u30 1704411110 1 1 38 NaN NaN \n",
|
|
"143 u30 1704411110 2 2 39 NaN NaN \n",
|
|
"144 u30 1704411110 3 3 42 NaN NaN \n",
|
|
"145 u30 1704411110 4 4 21 571556452_01 571556452_02 \n",
|
|
"195 u30 1704411270 1 1 38 NaN NaN \n",
|
|
"196 u30 1704411270 2 2 39 NaN NaN \n",
|
|
"197 u30 1704411270 3 3 42 NaN NaN \n",
|
|
"198 u30 1704411270 4 4 21 571556452_01 571556452_02 \n",
|
|
"248 u30 1704411430 1 1 38 NaN NaN \n",
|
|
"249 u30 1704411430 2 2 39 NaN NaN \n",
|
|
"250 u30 1704411430 3 3 42 NaN NaN \n",
|
|
"251 u30 1704411430 4 4 21 571556452_01 571556452_02 \n",
|
|
"306 u30 1704411590 1 1 38 NaN NaN \n",
|
|
"307 u30 1704411590 2 2 39 NaN NaN \n",
|
|
"308 u30 1704411590 3 3 42 NaN NaN \n",
|
|
"309 u30 1704411590 4 4 21 571556452_01 571556452_02 \n",
|
|
"\n",
|
|
" inc_edge_B out_edge_B \n",
|
|
"36 NaN NaN \n",
|
|
"37 NaN NaN \n",
|
|
"38 NaN NaN \n",
|
|
"39 NaN NaN \n",
|
|
"94 NaN NaN \n",
|
|
"95 NaN NaN \n",
|
|
"96 NaN NaN \n",
|
|
"97 NaN NaN \n",
|
|
"142 NaN NaN \n",
|
|
"143 NaN NaN \n",
|
|
"144 NaN NaN \n",
|
|
"145 NaN NaN \n",
|
|
"195 NaN NaN \n",
|
|
"196 NaN NaN \n",
|
|
"197 NaN NaN \n",
|
|
"198 NaN NaN \n",
|
|
"248 NaN NaN \n",
|
|
"249 NaN NaN \n",
|
|
"250 NaN NaN \n",
|
|
"251 NaN NaN \n",
|
|
"306 NaN NaN \n",
|
|
"307 NaN NaN \n",
|
|
"308 NaN NaN \n",
|
|
"309 NaN NaN "
|
|
]
|
|
},
|
|
"execution_count": 7,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"histids[histids.node_id=='u30']"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 8,
|
|
"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>node_id</th>\n",
|
|
" <th>start_unix</th>\n",
|
|
" <th>phase_sumo</th>\n",
|
|
" <th>duration</th>\n",
|
|
" <th>state</th>\n",
|
|
" <th>start_dt</th>\n",
|
|
" </tr>\n",
|
|
" </thead>\n",
|
|
" <tbody>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>i2</td>\n",
|
|
" <td>1704410739</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>40</td>\n",
|
|
" <td>GGggGGG</td>\n",
|
|
" <td>2024-01-05 08:25:39</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>1</th>\n",
|
|
" <td>i2</td>\n",
|
|
" <td>1704410739</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>25</td>\n",
|
|
" <td>rrggrrr</td>\n",
|
|
" <td>2024-01-05 08:25:39</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>2</th>\n",
|
|
" <td>i2</td>\n",
|
|
" <td>1704410739</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>71</td>\n",
|
|
" <td>rrggrrr</td>\n",
|
|
" <td>2024-01-05 08:25:39</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>3</th>\n",
|
|
" <td>i2</td>\n",
|
|
" <td>1704410739</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>34</td>\n",
|
|
" <td>rrggGGG</td>\n",
|
|
" <td>2024-01-05 08:25:39</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>4</th>\n",
|
|
" <td>u20</td>\n",
|
|
" <td>1704410739</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>40</td>\n",
|
|
" <td>ggrggg</td>\n",
|
|
" <td>2024-01-05 08:25:39</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",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>343</th>\n",
|
|
" <td>u00</td>\n",
|
|
" <td>1704411630</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>26</td>\n",
|
|
" <td>ggggrgggg</td>\n",
|
|
" <td>2024-01-05 08:40:30</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>344</th>\n",
|
|
" <td>u00</td>\n",
|
|
" <td>1704411630</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>33</td>\n",
|
|
" <td>ggggrgggg</td>\n",
|
|
" <td>2024-01-05 08:40:30</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>345</th>\n",
|
|
" <td>i1</td>\n",
|
|
" <td>1704411670</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>37</td>\n",
|
|
" <td>gGGGGGrgrr</td>\n",
|
|
" <td>2024-01-05 08:41:10</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>346</th>\n",
|
|
" <td>i1</td>\n",
|
|
" <td>1704411670</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>93</td>\n",
|
|
" <td>grrGGGGgrr</td>\n",
|
|
" <td>2024-01-05 08:41:10</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>347</th>\n",
|
|
" <td>i1</td>\n",
|
|
" <td>1704411670</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>40</td>\n",
|
|
" <td>grrrrrrgGG</td>\n",
|
|
" <td>2024-01-05 08:41:10</td>\n",
|
|
" </tr>\n",
|
|
" </tbody>\n",
|
|
"</table>\n",
|
|
"<p>348 rows × 6 columns</p>\n",
|
|
"</div>"
|
|
],
|
|
"text/plain": [
|
|
" node_id start_unix phase_sumo duration state start_dt\n",
|
|
"0 i2 1704410739 0 40 GGggGGG 2024-01-05 08:25:39\n",
|
|
"1 i2 1704410739 1 25 rrggrrr 2024-01-05 08:25:39\n",
|
|
"2 i2 1704410739 2 71 rrggrrr 2024-01-05 08:25:39\n",
|
|
"3 i2 1704410739 3 34 rrggGGG 2024-01-05 08:25:39\n",
|
|
"4 u20 1704410739 0 40 ggrggg 2024-01-05 08:25:39\n",
|
|
".. ... ... ... ... ... ...\n",
|
|
"343 u00 1704411630 3 26 ggggrgggg 2024-01-05 08:40:30\n",
|
|
"344 u00 1704411630 4 33 ggggrgggg 2024-01-05 08:40:30\n",
|
|
"345 i1 1704411670 0 37 gGGGGGrgrr 2024-01-05 08:41:10\n",
|
|
"346 i1 1704411670 1 93 grrGGGGgrr 2024-01-05 08:41:10\n",
|
|
"347 i1 1704411670 2 40 grrrrrrgGG 2024-01-05 08:41:10\n",
|
|
"\n",
|
|
"[348 rows x 6 columns]"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"def make_sigtable(histids, node2init, net):\n",
|
|
" sigtable = histids.copy()\n",
|
|
" sigtable['init_state'] = sigtable['node_id'].map(node2init)\n",
|
|
" sigtable['state'] = sigtable['init_state'].map(lambda x:''.join(x))\n",
|
|
" for i, row in sigtable.iterrows():\n",
|
|
" node_id = row.node_id\n",
|
|
" inc_edge_A = row.inc_edge_A\n",
|
|
" inc_edge_B = row.inc_edge_B\n",
|
|
" out_edge_A = row.out_edge_A\n",
|
|
" out_edge_B = row.out_edge_B\n",
|
|
" state = copy.deepcopy(node2init)[node_id]\n",
|
|
" if pd.isna(inc_edge_A) or pd.isna(out_edge_A):\n",
|
|
" pass\n",
|
|
" else:\n",
|
|
" inc_edge_A = net.getEdge(inc_edge_A)\n",
|
|
" out_edge_A = net.getEdge(out_edge_A)\n",
|
|
" for conn in inc_edge_A.getConnections(out_edge_A):\n",
|
|
" index = conn.getTLLinkIndex()\n",
|
|
" if index >= 0:\n",
|
|
" state[index] = 'G'\n",
|
|
" sigtable.at[i, 'state'] = ''.join(state)\n",
|
|
"\n",
|
|
" if pd.isna(inc_edge_B) or pd.isna(out_edge_B):\n",
|
|
" pass\n",
|
|
" else:\n",
|
|
" inc_edge_B = net.getEdge(inc_edge_B)\n",
|
|
" out_edge_B = net.getEdge(out_edge_B)\n",
|
|
" for conn in inc_edge_B.getConnections(out_edge_B):\n",
|
|
" index = conn.getTLLinkIndex()\n",
|
|
" if index >= 0:\n",
|
|
" state[index] = 'G'\n",
|
|
" sigtable.at[i, 'state'] = ''.join(state)\n",
|
|
" sigtable = sigtable.dropna(subset='state')\n",
|
|
" sigtable = sigtable.reset_index(drop=True)\n",
|
|
" sigtable['phase_sumo'] = sigtable.groupby(['node_id', 'start_unix']).cumcount()\n",
|
|
" sigtable = sigtable[sigtable.start_unix >= sigtable_start]\n",
|
|
" sigtable = sigtable[['node_id', 'start_unix', 'phase_sumo', 'duration', 'state']]\n",
|
|
" sigtable = sigtable.sort_values(by=['start_unix', 'node_id'])\n",
|
|
" sigtable['start_dt'] = sigtable['start_unix'].apply(lambda x:datetime.fromtimestamp(x))\n",
|
|
" return sigtable\n",
|
|
"sigtable = make_sigtable(histids, node2init, net)\n",
|
|
"display(sigtable)"
|
|
]
|
|
},
|
|
{
|
|
"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>node_id</th>\n",
|
|
" <th>start_unix</th>\n",
|
|
" <th>phase_sumo</th>\n",
|
|
" <th>duration</th>\n",
|
|
" <th>state</th>\n",
|
|
" <th>start_dt</th>\n",
|
|
" </tr>\n",
|
|
" </thead>\n",
|
|
" <tbody>\n",
|
|
" <tr>\n",
|
|
" <th>44</th>\n",
|
|
" <td>u32</td>\n",
|
|
" <td>1704410790</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>38</td>\n",
|
|
" <td>gggggggG</td>\n",
|
|
" <td>2024-01-05 08:26:30</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>45</th>\n",
|
|
" <td>u32</td>\n",
|
|
" <td>1704410790</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>39</td>\n",
|
|
" <td>gggggggr</td>\n",
|
|
" <td>2024-01-05 08:26:30</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>46</th>\n",
|
|
" <td>u32</td>\n",
|
|
" <td>1704410790</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>42</td>\n",
|
|
" <td>gggggggr</td>\n",
|
|
" <td>2024-01-05 08:26:30</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>47</th>\n",
|
|
" <td>u32</td>\n",
|
|
" <td>1704410790</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>21</td>\n",
|
|
" <td>gggggggr</td>\n",
|
|
" <td>2024-01-05 08:26:30</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>102</th>\n",
|
|
" <td>u32</td>\n",
|
|
" <td>1704410950</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>38</td>\n",
|
|
" <td>gggggggG</td>\n",
|
|
" <td>2024-01-05 08:29:10</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>103</th>\n",
|
|
" <td>u32</td>\n",
|
|
" <td>1704410950</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>39</td>\n",
|
|
" <td>gggggggr</td>\n",
|
|
" <td>2024-01-05 08:29:10</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>104</th>\n",
|
|
" <td>u32</td>\n",
|
|
" <td>1704410950</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>42</td>\n",
|
|
" <td>gggggggr</td>\n",
|
|
" <td>2024-01-05 08:29:10</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>105</th>\n",
|
|
" <td>u32</td>\n",
|
|
" <td>1704410950</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>21</td>\n",
|
|
" <td>gggggggr</td>\n",
|
|
" <td>2024-01-05 08:29:10</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>150</th>\n",
|
|
" <td>u32</td>\n",
|
|
" <td>1704411110</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>38</td>\n",
|
|
" <td>gggggggG</td>\n",
|
|
" <td>2024-01-05 08:31:50</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>151</th>\n",
|
|
" <td>u32</td>\n",
|
|
" <td>1704411110</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>39</td>\n",
|
|
" <td>gggggggr</td>\n",
|
|
" <td>2024-01-05 08:31:50</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>152</th>\n",
|
|
" <td>u32</td>\n",
|
|
" <td>1704411110</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>42</td>\n",
|
|
" <td>gggggggr</td>\n",
|
|
" <td>2024-01-05 08:31:50</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>153</th>\n",
|
|
" <td>u32</td>\n",
|
|
" <td>1704411110</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>21</td>\n",
|
|
" <td>gggggggr</td>\n",
|
|
" <td>2024-01-05 08:31:50</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>203</th>\n",
|
|
" <td>u32</td>\n",
|
|
" <td>1704411270</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>38</td>\n",
|
|
" <td>gggggggG</td>\n",
|
|
" <td>2024-01-05 08:34:30</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>204</th>\n",
|
|
" <td>u32</td>\n",
|
|
" <td>1704411270</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>39</td>\n",
|
|
" <td>gggggggr</td>\n",
|
|
" <td>2024-01-05 08:34:30</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>205</th>\n",
|
|
" <td>u32</td>\n",
|
|
" <td>1704411270</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>42</td>\n",
|
|
" <td>gggggggr</td>\n",
|
|
" <td>2024-01-05 08:34:30</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>206</th>\n",
|
|
" <td>u32</td>\n",
|
|
" <td>1704411270</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>21</td>\n",
|
|
" <td>gggggggr</td>\n",
|
|
" <td>2024-01-05 08:34:30</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>256</th>\n",
|
|
" <td>u32</td>\n",
|
|
" <td>1704411430</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>38</td>\n",
|
|
" <td>gggggggG</td>\n",
|
|
" <td>2024-01-05 08:37:10</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>257</th>\n",
|
|
" <td>u32</td>\n",
|
|
" <td>1704411430</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>39</td>\n",
|
|
" <td>gggggggr</td>\n",
|
|
" <td>2024-01-05 08:37:10</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>258</th>\n",
|
|
" <td>u32</td>\n",
|
|
" <td>1704411430</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>42</td>\n",
|
|
" <td>gggggggr</td>\n",
|
|
" <td>2024-01-05 08:37:10</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>259</th>\n",
|
|
" <td>u32</td>\n",
|
|
" <td>1704411430</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>21</td>\n",
|
|
" <td>gggggggr</td>\n",
|
|
" <td>2024-01-05 08:37:10</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>314</th>\n",
|
|
" <td>u32</td>\n",
|
|
" <td>1704411590</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>38</td>\n",
|
|
" <td>gggggggG</td>\n",
|
|
" <td>2024-01-05 08:39:50</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>315</th>\n",
|
|
" <td>u32</td>\n",
|
|
" <td>1704411590</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>39</td>\n",
|
|
" <td>gggggggr</td>\n",
|
|
" <td>2024-01-05 08:39:50</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>316</th>\n",
|
|
" <td>u32</td>\n",
|
|
" <td>1704411590</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>42</td>\n",
|
|
" <td>gggggggr</td>\n",
|
|
" <td>2024-01-05 08:39:50</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>317</th>\n",
|
|
" <td>u32</td>\n",
|
|
" <td>1704411590</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>21</td>\n",
|
|
" <td>gggggggr</td>\n",
|
|
" <td>2024-01-05 08:39:50</td>\n",
|
|
" </tr>\n",
|
|
" </tbody>\n",
|
|
"</table>\n",
|
|
"</div>"
|
|
],
|
|
"text/plain": [
|
|
" node_id start_unix phase_sumo duration state start_dt\n",
|
|
"44 u32 1704410790 0 38 gggggggG 2024-01-05 08:26:30\n",
|
|
"45 u32 1704410790 1 39 gggggggr 2024-01-05 08:26:30\n",
|
|
"46 u32 1704410790 2 42 gggggggr 2024-01-05 08:26:30\n",
|
|
"47 u32 1704410790 3 21 gggggggr 2024-01-05 08:26:30\n",
|
|
"102 u32 1704410950 0 38 gggggggG 2024-01-05 08:29:10\n",
|
|
"103 u32 1704410950 1 39 gggggggr 2024-01-05 08:29:10\n",
|
|
"104 u32 1704410950 2 42 gggggggr 2024-01-05 08:29:10\n",
|
|
"105 u32 1704410950 3 21 gggggggr 2024-01-05 08:29:10\n",
|
|
"150 u32 1704411110 0 38 gggggggG 2024-01-05 08:31:50\n",
|
|
"151 u32 1704411110 1 39 gggggggr 2024-01-05 08:31:50\n",
|
|
"152 u32 1704411110 2 42 gggggggr 2024-01-05 08:31:50\n",
|
|
"153 u32 1704411110 3 21 gggggggr 2024-01-05 08:31:50\n",
|
|
"203 u32 1704411270 0 38 gggggggG 2024-01-05 08:34:30\n",
|
|
"204 u32 1704411270 1 39 gggggggr 2024-01-05 08:34:30\n",
|
|
"205 u32 1704411270 2 42 gggggggr 2024-01-05 08:34:30\n",
|
|
"206 u32 1704411270 3 21 gggggggr 2024-01-05 08:34:30\n",
|
|
"256 u32 1704411430 0 38 gggggggG 2024-01-05 08:37:10\n",
|
|
"257 u32 1704411430 1 39 gggggggr 2024-01-05 08:37:10\n",
|
|
"258 u32 1704411430 2 42 gggggggr 2024-01-05 08:37:10\n",
|
|
"259 u32 1704411430 3 21 gggggggr 2024-01-05 08:37:10\n",
|
|
"314 u32 1704411590 0 38 gggggggG 2024-01-05 08:39:50\n",
|
|
"315 u32 1704411590 1 39 gggggggr 2024-01-05 08:39:50\n",
|
|
"316 u32 1704411590 2 42 gggggggr 2024-01-05 08:39:50\n",
|
|
"317 u32 1704411590 3 21 gggggggr 2024-01-05 08:39:50"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"sigtable = make_sigtable(histids, node2init, net)\n",
|
|
"display(sigtable[sigtable.node_id=='u32'])"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 10,
|
|
"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>node_id</th>\n",
|
|
" <th>start_unix</th>\n",
|
|
" <th>phase_sumo</th>\n",
|
|
" <th>duration</th>\n",
|
|
" <th>state</th>\n",
|
|
" <th>start_dt</th>\n",
|
|
" </tr>\n",
|
|
" </thead>\n",
|
|
" <tbody>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>c30</td>\n",
|
|
" <td>1704410790</td>\n",
|
|
" <td>0_g</td>\n",
|
|
" <td>33</td>\n",
|
|
" <td>rrrrrr</td>\n",
|
|
" <td>2024-01-05 08:26:30</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>1</th>\n",
|
|
" <td>c30</td>\n",
|
|
" <td>1704410790</td>\n",
|
|
" <td>0_y</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>rrrrrr</td>\n",
|
|
" <td>2024-01-05 08:26:30</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>2</th>\n",
|
|
" <td>c30</td>\n",
|
|
" <td>1704410790</td>\n",
|
|
" <td>1__r</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>rrrrrr</td>\n",
|
|
" <td>2024-01-05 08:26:30</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>3</th>\n",
|
|
" <td>c30</td>\n",
|
|
" <td>1704410790</td>\n",
|
|
" <td>1_g</td>\n",
|
|
" <td>34</td>\n",
|
|
" <td>GGGGGG</td>\n",
|
|
" <td>2024-01-05 08:26:30</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>4</th>\n",
|
|
" <td>c30</td>\n",
|
|
" <td>1704410790</td>\n",
|
|
" <td>1_y</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>GGGGGG</td>\n",
|
|
" <td>2024-01-05 08:26:30</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",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>1011</th>\n",
|
|
" <td>u60</td>\n",
|
|
" <td>1704411609</td>\n",
|
|
" <td>3__r</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>ggggggggr</td>\n",
|
|
" <td>2024-01-05 08:40:09</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>1012</th>\n",
|
|
" <td>u60</td>\n",
|
|
" <td>1704411609</td>\n",
|
|
" <td>3_g</td>\n",
|
|
" <td>60</td>\n",
|
|
" <td>ggggggggr</td>\n",
|
|
" <td>2024-01-05 08:40:09</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>1013</th>\n",
|
|
" <td>u60</td>\n",
|
|
" <td>1704411609</td>\n",
|
|
" <td>3_y</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>ggggggggr</td>\n",
|
|
" <td>2024-01-05 08:40:09</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>1014</th>\n",
|
|
" <td>u60</td>\n",
|
|
" <td>1704411609</td>\n",
|
|
" <td>4__r</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>ggggggggr</td>\n",
|
|
" <td>2024-01-05 08:40:09</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>1015</th>\n",
|
|
" <td>u60</td>\n",
|
|
" <td>1704411609</td>\n",
|
|
" <td>4_g</td>\n",
|
|
" <td>18</td>\n",
|
|
" <td>ggggggggr</td>\n",
|
|
" <td>2024-01-05 08:40:09</td>\n",
|
|
" </tr>\n",
|
|
" </tbody>\n",
|
|
"</table>\n",
|
|
"<p>1016 rows × 6 columns</p>\n",
|
|
"</div>"
|
|
],
|
|
"text/plain": [
|
|
" node_id start_unix phase_sumo duration state start_dt\n",
|
|
"0 c30 1704410790 0_g 33 rrrrrr 2024-01-05 08:26:30\n",
|
|
"1 c30 1704410790 0_y 4 rrrrrr 2024-01-05 08:26:30\n",
|
|
"2 c30 1704410790 1__r 1 rrrrrr 2024-01-05 08:26:30\n",
|
|
"3 c30 1704410790 1_g 34 GGGGGG 2024-01-05 08:26:30\n",
|
|
"4 c30 1704410790 1_y 4 GGGGGG 2024-01-05 08:26:30\n",
|
|
"... ... ... ... ... ... ...\n",
|
|
"1011 u60 1704411609 3__r 1 ggggggggr 2024-01-05 08:40:09\n",
|
|
"1012 u60 1704411609 3_g 60 ggggggggr 2024-01-05 08:40:09\n",
|
|
"1013 u60 1704411609 3_y 4 ggggggggr 2024-01-05 08:40:09\n",
|
|
"1014 u60 1704411609 4__r 1 ggggggggr 2024-01-05 08:40:09\n",
|
|
"1015 u60 1704411609 4_g 18 ggggggggr 2024-01-05 08:40:09\n",
|
|
"\n",
|
|
"[1016 rows x 6 columns]"
|
|
]
|
|
},
|
|
"execution_count": 10,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"def make_Sigtable(sigtable):\n",
|
|
" Sigtable = []\n",
|
|
" for node_id, group in sigtable.groupby('node_id'):\n",
|
|
" new_rows_list = []\n",
|
|
" for i in range(1, len(group)):\n",
|
|
" prev_row = group.iloc[i-1:i].copy()\n",
|
|
" next_row = group.iloc[i:i+1].copy()\n",
|
|
" new_rows = pd.concat([prev_row, prev_row, next_row]).reset_index(drop=True)\n",
|
|
" new_rows.loc[0, 'phase_sumo'] = str(prev_row.phase_sumo.iloc[0]) + '_g'\n",
|
|
" new_rows.loc[0, 'duration'] = new_rows.loc[0, 'duration'] - 5\n",
|
|
" new_rows.loc[1, 'phase_sumo'] = str(prev_row.phase_sumo.iloc[0]) + '_y'\n",
|
|
" new_rows.loc[1, 'duration'] = 4\n",
|
|
" yellow_state = ''\n",
|
|
" red_state = ''\n",
|
|
" for a, b in zip(prev_row.state.iloc[0], next_row.state.iloc[0]):\n",
|
|
" if a == 'G' and b == 'r':\n",
|
|
" yellow_state += 'y'\n",
|
|
" red_state += 'r'\n",
|
|
" else:\n",
|
|
" yellow_state += a\n",
|
|
" red_state += a\n",
|
|
" new_rows.loc[2, 'phase_sumo'] = str(next_row.phase_sumo.iloc[0]) + '__r'\n",
|
|
" new_rows.loc[2, 'duration'] = 1\n",
|
|
" new_rows.loc[1, 'state'] = yellow_state\n",
|
|
" new_rows.loc[2, 'state'] = red_state\n",
|
|
" new_rows_list.append(new_rows)\n",
|
|
" next_row['phase_sumo'] = str(next_row.phase_sumo.iloc[0]) + '_g'\n",
|
|
" next_row['duration'] -= 5\n",
|
|
" # next_row.loc['duration'] -= 5\n",
|
|
" new_rows_list.append(next_row)\n",
|
|
" new_rows = pd.concat(new_rows_list)\n",
|
|
" Sigtable.append(new_rows)\n",
|
|
" Sigtable = pd.concat(Sigtable).sort_values(by=['node_id', 'start_unix', 'phase_sumo']).reset_index(drop=True)\n",
|
|
" return Sigtable\n",
|
|
"Sigtable = make_Sigtable(sigtable)\n",
|
|
"Sigtable"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 16,
|
|
"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>inter_type</th>\n",
|
|
" </tr>\n",
|
|
" </thead>\n",
|
|
" <tbody>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>175</td>\n",
|
|
" <td>i0</td>\n",
|
|
" <td>parent</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>1</th>\n",
|
|
" <td>175</td>\n",
|
|
" <td>u00</td>\n",
|
|
" <td>child</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>2</th>\n",
|
|
" <td>176</td>\n",
|
|
" <td>i1</td>\n",
|
|
" <td>parent</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>3</th>\n",
|
|
" <td>177</td>\n",
|
|
" <td>i2</td>\n",
|
|
" <td>parent</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>4</th>\n",
|
|
" <td>177</td>\n",
|
|
" <td>u20</td>\n",
|
|
" <td>child</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>5</th>\n",
|
|
" <td>178</td>\n",
|
|
" <td>i3</td>\n",
|
|
" <td>parent</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>6</th>\n",
|
|
" <td>178</td>\n",
|
|
" <td>u30</td>\n",
|
|
" <td>child</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>7</th>\n",
|
|
" <td>178</td>\n",
|
|
" <td>u31</td>\n",
|
|
" <td>child</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>8</th>\n",
|
|
" <td>178</td>\n",
|
|
" <td>u32</td>\n",
|
|
" <td>child</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>9</th>\n",
|
|
" <td>178</td>\n",
|
|
" <td>c30</td>\n",
|
|
" <td>child</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>10</th>\n",
|
|
" <td>210</td>\n",
|
|
" <td>i6</td>\n",
|
|
" <td>parent</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>11</th>\n",
|
|
" <td>210</td>\n",
|
|
" <td>u60</td>\n",
|
|
" <td>child</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>12</th>\n",
|
|
" <td>206</td>\n",
|
|
" <td>i7</td>\n",
|
|
" <td>parent</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>13</th>\n",
|
|
" <td>201</td>\n",
|
|
" <td>i8</td>\n",
|
|
" <td>parent</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>14</th>\n",
|
|
" <td>202</td>\n",
|
|
" <td>i9</td>\n",
|
|
" <td>parent</td>\n",
|
|
" </tr>\n",
|
|
" </tbody>\n",
|
|
"</table>\n",
|
|
"</div>"
|
|
],
|
|
"text/plain": [
|
|
" inter_no node_id inter_type\n",
|
|
"0 175 i0 parent\n",
|
|
"1 175 u00 child\n",
|
|
"2 176 i1 parent\n",
|
|
"3 177 i2 parent\n",
|
|
"4 177 u20 child\n",
|
|
"5 178 i3 parent\n",
|
|
"6 178 u30 child\n",
|
|
"7 178 u31 child\n",
|
|
"8 178 u32 child\n",
|
|
"9 178 c30 child\n",
|
|
"10 210 i6 parent\n",
|
|
"11 210 u60 child\n",
|
|
"12 206 i7 parent\n",
|
|
"13 201 i8 parent\n",
|
|
"14 202 i9 parent"
|
|
]
|
|
},
|
|
"execution_count": 16,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"inter_node"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 10,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"2024-01-05 08:25:00\n",
|
|
"2024-01-05 08:30:00\n",
|
|
"2024-01-05 08:35:00\n",
|
|
"2024-01-05 08:45:00\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"# sigtable 시작시각 : 현재시각 - 1200 = 08:25\n",
|
|
"# 시뮬레이션 시작시각 : 현재시각 - 900 = 08:30\n",
|
|
"# 시뮬레이션 종료시각 : 현재시각 - 600 = 08:35\n",
|
|
"# 현재시각 : 08:45\n",
|
|
"print(datetime.fromtimestamp(sigtable_start))\n",
|
|
"print(datetime.fromtimestamp(sim_start))\n",
|
|
"print(datetime.fromtimestamp(sim_end))\n",
|
|
"print(datetime.fromtimestamp(present_time))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 11,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"def make_SIGTABLE(Sigtable):\n",
|
|
" offsets = {}\n",
|
|
" SIGTABLE = []\n",
|
|
" for node_id, group in Sigtable.groupby('node_id'):\n",
|
|
" lsbs = group[group['start_unix'] < sim_start]['start_unix'].max() # the last start_unix before sim_start\n",
|
|
" offsets[node_id] = lsbs - sim_start\n",
|
|
" group = group[(group['start_unix'] < sim_end) & (group['start_unix'] >= lsbs)]\n",
|
|
" SIGTABLE.append(group)\n",
|
|
" SIGTABLE = pd.concat(SIGTABLE)\n",
|
|
"\n",
|
|
" strings = ['<additional>\\n']\n",
|
|
" for node_id, group in SIGTABLE.groupby('node_id'):\n",
|
|
" strings.append(f' <tlLogic id=\"{node_id}\" type=\"static\" programID=\"{node_id}_prog\" offset=\"{offsets[node_id]}\">\\n')\n",
|
|
" for i, row in group.iterrows():\n",
|
|
" duration = row.duration\n",
|
|
" state = row.state\n",
|
|
" strings.append(f' <phase duration=\"{duration}\" state=\"{state}\"/>\\n')\n",
|
|
" strings.append(' </tlLogic>\\n')\n",
|
|
" strings.append('</additional>')\n",
|
|
" strings = ''.join(strings)\n",
|
|
" # 저장\n",
|
|
" path_output = '../../Data/networks/sn.add.xml'\n",
|
|
" with open(path_output, 'w') as f:\n",
|
|
" f.write(strings)\n",
|
|
" return SIGTABLE, strings"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": []
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 12,
|
|
"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>node_id</th>\n",
|
|
" <th>start_unix</th>\n",
|
|
" <th>phase_sumo</th>\n",
|
|
" <th>duration</th>\n",
|
|
" <th>state</th>\n",
|
|
" <th>start_dt</th>\n",
|
|
" </tr>\n",
|
|
" </thead>\n",
|
|
" <tbody>\n",
|
|
" <tr>\n",
|
|
" <th>11</th>\n",
|
|
" <td>c30</td>\n",
|
|
" <td>1704410950</td>\n",
|
|
" <td>0__r</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>rrrrrr</td>\n",
|
|
" <td>2024-01-05 08:29:10</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>12</th>\n",
|
|
" <td>c30</td>\n",
|
|
" <td>1704410950</td>\n",
|
|
" <td>0_g</td>\n",
|
|
" <td>33</td>\n",
|
|
" <td>rrrrrr</td>\n",
|
|
" <td>2024-01-05 08:29:10</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>13</th>\n",
|
|
" <td>c30</td>\n",
|
|
" <td>1704410950</td>\n",
|
|
" <td>0_y</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>rrrrrr</td>\n",
|
|
" <td>2024-01-05 08:29:10</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>14</th>\n",
|
|
" <td>c30</td>\n",
|
|
" <td>1704410950</td>\n",
|
|
" <td>1__r</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>rrrrrr</td>\n",
|
|
" <td>2024-01-05 08:29:10</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>15</th>\n",
|
|
" <td>c30</td>\n",
|
|
" <td>1704410950</td>\n",
|
|
" <td>1_g</td>\n",
|
|
" <td>34</td>\n",
|
|
" <td>GGGGGG</td>\n",
|
|
" <td>2024-01-05 08:29:10</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>16</th>\n",
|
|
" <td>c30</td>\n",
|
|
" <td>1704410950</td>\n",
|
|
" <td>1_y</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>GGGGGG</td>\n",
|
|
" <td>2024-01-05 08:29:10</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>17</th>\n",
|
|
" <td>c30</td>\n",
|
|
" <td>1704410950</td>\n",
|
|
" <td>2__r</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>GGGGGG</td>\n",
|
|
" <td>2024-01-05 08:29:10</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>18</th>\n",
|
|
" <td>c30</td>\n",
|
|
" <td>1704410950</td>\n",
|
|
" <td>2_g</td>\n",
|
|
" <td>37</td>\n",
|
|
" <td>GGGGGG</td>\n",
|
|
" <td>2024-01-05 08:29:10</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>19</th>\n",
|
|
" <td>c30</td>\n",
|
|
" <td>1704410950</td>\n",
|
|
" <td>2_y</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>GGGGGG</td>\n",
|
|
" <td>2024-01-05 08:29:10</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>20</th>\n",
|
|
" <td>c30</td>\n",
|
|
" <td>1704410950</td>\n",
|
|
" <td>3__r</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>GGGGGG</td>\n",
|
|
" <td>2024-01-05 08:29:10</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>21</th>\n",
|
|
" <td>c30</td>\n",
|
|
" <td>1704410950</td>\n",
|
|
" <td>3_g</td>\n",
|
|
" <td>16</td>\n",
|
|
" <td>GGGGGG</td>\n",
|
|
" <td>2024-01-05 08:29:10</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>22</th>\n",
|
|
" <td>c30</td>\n",
|
|
" <td>1704410950</td>\n",
|
|
" <td>3_y</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>yyyyyy</td>\n",
|
|
" <td>2024-01-05 08:29:10</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>23</th>\n",
|
|
" <td>c30</td>\n",
|
|
" <td>1704411110</td>\n",
|
|
" <td>0__r</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>rrrrrr</td>\n",
|
|
" <td>2024-01-05 08:31:50</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>24</th>\n",
|
|
" <td>c30</td>\n",
|
|
" <td>1704411110</td>\n",
|
|
" <td>0_g</td>\n",
|
|
" <td>33</td>\n",
|
|
" <td>rrrrrr</td>\n",
|
|
" <td>2024-01-05 08:31:50</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>25</th>\n",
|
|
" <td>c30</td>\n",
|
|
" <td>1704411110</td>\n",
|
|
" <td>0_y</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>rrrrrr</td>\n",
|
|
" <td>2024-01-05 08:31:50</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>26</th>\n",
|
|
" <td>c30</td>\n",
|
|
" <td>1704411110</td>\n",
|
|
" <td>1__r</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>rrrrrr</td>\n",
|
|
" <td>2024-01-05 08:31:50</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>27</th>\n",
|
|
" <td>c30</td>\n",
|
|
" <td>1704411110</td>\n",
|
|
" <td>1_g</td>\n",
|
|
" <td>34</td>\n",
|
|
" <td>GGGGGG</td>\n",
|
|
" <td>2024-01-05 08:31:50</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>28</th>\n",
|
|
" <td>c30</td>\n",
|
|
" <td>1704411110</td>\n",
|
|
" <td>1_y</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>GGGGGG</td>\n",
|
|
" <td>2024-01-05 08:31:50</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>29</th>\n",
|
|
" <td>c30</td>\n",
|
|
" <td>1704411110</td>\n",
|
|
" <td>2__r</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>GGGGGG</td>\n",
|
|
" <td>2024-01-05 08:31:50</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>30</th>\n",
|
|
" <td>c30</td>\n",
|
|
" <td>1704411110</td>\n",
|
|
" <td>2_g</td>\n",
|
|
" <td>37</td>\n",
|
|
" <td>GGGGGG</td>\n",
|
|
" <td>2024-01-05 08:31:50</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>31</th>\n",
|
|
" <td>c30</td>\n",
|
|
" <td>1704411110</td>\n",
|
|
" <td>2_y</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>GGGGGG</td>\n",
|
|
" <td>2024-01-05 08:31:50</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>32</th>\n",
|
|
" <td>c30</td>\n",
|
|
" <td>1704411110</td>\n",
|
|
" <td>3__r</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>GGGGGG</td>\n",
|
|
" <td>2024-01-05 08:31:50</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>33</th>\n",
|
|
" <td>c30</td>\n",
|
|
" <td>1704411110</td>\n",
|
|
" <td>3_g</td>\n",
|
|
" <td>16</td>\n",
|
|
" <td>GGGGGG</td>\n",
|
|
" <td>2024-01-05 08:31:50</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>34</th>\n",
|
|
" <td>c30</td>\n",
|
|
" <td>1704411110</td>\n",
|
|
" <td>3_y</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>yyyyyy</td>\n",
|
|
" <td>2024-01-05 08:31:50</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>35</th>\n",
|
|
" <td>c30</td>\n",
|
|
" <td>1704411270</td>\n",
|
|
" <td>0__r</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>rrrrrr</td>\n",
|
|
" <td>2024-01-05 08:34:30</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>36</th>\n",
|
|
" <td>c30</td>\n",
|
|
" <td>1704411270</td>\n",
|
|
" <td>0_g</td>\n",
|
|
" <td>33</td>\n",
|
|
" <td>rrrrrr</td>\n",
|
|
" <td>2024-01-05 08:34:30</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>37</th>\n",
|
|
" <td>c30</td>\n",
|
|
" <td>1704411270</td>\n",
|
|
" <td>0_y</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>rrrrrr</td>\n",
|
|
" <td>2024-01-05 08:34:30</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>38</th>\n",
|
|
" <td>c30</td>\n",
|
|
" <td>1704411270</td>\n",
|
|
" <td>1__r</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>rrrrrr</td>\n",
|
|
" <td>2024-01-05 08:34:30</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>39</th>\n",
|
|
" <td>c30</td>\n",
|
|
" <td>1704411270</td>\n",
|
|
" <td>1_g</td>\n",
|
|
" <td>34</td>\n",
|
|
" <td>GGGGGG</td>\n",
|
|
" <td>2024-01-05 08:34:30</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>40</th>\n",
|
|
" <td>c30</td>\n",
|
|
" <td>1704411270</td>\n",
|
|
" <td>1_y</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>GGGGGG</td>\n",
|
|
" <td>2024-01-05 08:34:30</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>41</th>\n",
|
|
" <td>c30</td>\n",
|
|
" <td>1704411270</td>\n",
|
|
" <td>2__r</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>GGGGGG</td>\n",
|
|
" <td>2024-01-05 08:34:30</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>42</th>\n",
|
|
" <td>c30</td>\n",
|
|
" <td>1704411270</td>\n",
|
|
" <td>2_g</td>\n",
|
|
" <td>37</td>\n",
|
|
" <td>GGGGGG</td>\n",
|
|
" <td>2024-01-05 08:34:30</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>43</th>\n",
|
|
" <td>c30</td>\n",
|
|
" <td>1704411270</td>\n",
|
|
" <td>2_y</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>GGGGGG</td>\n",
|
|
" <td>2024-01-05 08:34:30</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>44</th>\n",
|
|
" <td>c30</td>\n",
|
|
" <td>1704411270</td>\n",
|
|
" <td>3__r</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>GGGGGG</td>\n",
|
|
" <td>2024-01-05 08:34:30</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>45</th>\n",
|
|
" <td>c30</td>\n",
|
|
" <td>1704411270</td>\n",
|
|
" <td>3_g</td>\n",
|
|
" <td>16</td>\n",
|
|
" <td>GGGGGG</td>\n",
|
|
" <td>2024-01-05 08:34:30</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>46</th>\n",
|
|
" <td>c30</td>\n",
|
|
" <td>1704411270</td>\n",
|
|
" <td>3_y</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>yyyyyy</td>\n",
|
|
" <td>2024-01-05 08:34:30</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>84</th>\n",
|
|
" <td>i0</td>\n",
|
|
" <td>1704410950</td>\n",
|
|
" <td>0__r</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>grrrgrrrgrrrrrgrr</td>\n",
|
|
" <td>2024-01-05 08:29:10</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>85</th>\n",
|
|
" <td>i0</td>\n",
|
|
" <td>1704410950</td>\n",
|
|
" <td>0_g</td>\n",
|
|
" <td>35</td>\n",
|
|
" <td>gGGrgrrrgGGGGrgrr</td>\n",
|
|
" <td>2024-01-05 08:29:10</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>86</th>\n",
|
|
" <td>i0</td>\n",
|
|
" <td>1704410950</td>\n",
|
|
" <td>0_y</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>gyyrgrrrgyyyyrgrr</td>\n",
|
|
" <td>2024-01-05 08:29:10</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>87</th>\n",
|
|
" <td>i0</td>\n",
|
|
" <td>1704410950</td>\n",
|
|
" <td>1__r</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>grrrgrrrgrrrrrgrr</td>\n",
|
|
" <td>2024-01-05 08:29:10</td>\n",
|
|
" </tr>\n",
|
|
" </tbody>\n",
|
|
"</table>\n",
|
|
"</div>"
|
|
],
|
|
"text/plain": [
|
|
" node_id start_unix phase_sumo duration state \\\n",
|
|
"11 c30 1704410950 0__r 1 rrrrrr \n",
|
|
"12 c30 1704410950 0_g 33 rrrrrr \n",
|
|
"13 c30 1704410950 0_y 4 rrrrrr \n",
|
|
"14 c30 1704410950 1__r 1 rrrrrr \n",
|
|
"15 c30 1704410950 1_g 34 GGGGGG \n",
|
|
"16 c30 1704410950 1_y 4 GGGGGG \n",
|
|
"17 c30 1704410950 2__r 1 GGGGGG \n",
|
|
"18 c30 1704410950 2_g 37 GGGGGG \n",
|
|
"19 c30 1704410950 2_y 4 GGGGGG \n",
|
|
"20 c30 1704410950 3__r 1 GGGGGG \n",
|
|
"21 c30 1704410950 3_g 16 GGGGGG \n",
|
|
"22 c30 1704410950 3_y 4 yyyyyy \n",
|
|
"23 c30 1704411110 0__r 1 rrrrrr \n",
|
|
"24 c30 1704411110 0_g 33 rrrrrr \n",
|
|
"25 c30 1704411110 0_y 4 rrrrrr \n",
|
|
"26 c30 1704411110 1__r 1 rrrrrr \n",
|
|
"27 c30 1704411110 1_g 34 GGGGGG \n",
|
|
"28 c30 1704411110 1_y 4 GGGGGG \n",
|
|
"29 c30 1704411110 2__r 1 GGGGGG \n",
|
|
"30 c30 1704411110 2_g 37 GGGGGG \n",
|
|
"31 c30 1704411110 2_y 4 GGGGGG \n",
|
|
"32 c30 1704411110 3__r 1 GGGGGG \n",
|
|
"33 c30 1704411110 3_g 16 GGGGGG \n",
|
|
"34 c30 1704411110 3_y 4 yyyyyy \n",
|
|
"35 c30 1704411270 0__r 1 rrrrrr \n",
|
|
"36 c30 1704411270 0_g 33 rrrrrr \n",
|
|
"37 c30 1704411270 0_y 4 rrrrrr \n",
|
|
"38 c30 1704411270 1__r 1 rrrrrr \n",
|
|
"39 c30 1704411270 1_g 34 GGGGGG \n",
|
|
"40 c30 1704411270 1_y 4 GGGGGG \n",
|
|
"41 c30 1704411270 2__r 1 GGGGGG \n",
|
|
"42 c30 1704411270 2_g 37 GGGGGG \n",
|
|
"43 c30 1704411270 2_y 4 GGGGGG \n",
|
|
"44 c30 1704411270 3__r 1 GGGGGG \n",
|
|
"45 c30 1704411270 3_g 16 GGGGGG \n",
|
|
"46 c30 1704411270 3_y 4 yyyyyy \n",
|
|
"84 i0 1704410950 0__r 1 grrrgrrrgrrrrrgrr \n",
|
|
"85 i0 1704410950 0_g 35 gGGrgrrrgGGGGrgrr \n",
|
|
"86 i0 1704410950 0_y 4 gyyrgrrrgyyyyrgrr \n",
|
|
"87 i0 1704410950 1__r 1 grrrgrrrgrrrrrgrr \n",
|
|
"\n",
|
|
" start_dt \n",
|
|
"11 2024-01-05 08:29:10 \n",
|
|
"12 2024-01-05 08:29:10 \n",
|
|
"13 2024-01-05 08:29:10 \n",
|
|
"14 2024-01-05 08:29:10 \n",
|
|
"15 2024-01-05 08:29:10 \n",
|
|
"16 2024-01-05 08:29:10 \n",
|
|
"17 2024-01-05 08:29:10 \n",
|
|
"18 2024-01-05 08:29:10 \n",
|
|
"19 2024-01-05 08:29:10 \n",
|
|
"20 2024-01-05 08:29:10 \n",
|
|
"21 2024-01-05 08:29:10 \n",
|
|
"22 2024-01-05 08:29:10 \n",
|
|
"23 2024-01-05 08:31:50 \n",
|
|
"24 2024-01-05 08:31:50 \n",
|
|
"25 2024-01-05 08:31:50 \n",
|
|
"26 2024-01-05 08:31:50 \n",
|
|
"27 2024-01-05 08:31:50 \n",
|
|
"28 2024-01-05 08:31:50 \n",
|
|
"29 2024-01-05 08:31:50 \n",
|
|
"30 2024-01-05 08:31:50 \n",
|
|
"31 2024-01-05 08:31:50 \n",
|
|
"32 2024-01-05 08:31:50 \n",
|
|
"33 2024-01-05 08:31:50 \n",
|
|
"34 2024-01-05 08:31:50 \n",
|
|
"35 2024-01-05 08:34:30 \n",
|
|
"36 2024-01-05 08:34:30 \n",
|
|
"37 2024-01-05 08:34:30 \n",
|
|
"38 2024-01-05 08:34:30 \n",
|
|
"39 2024-01-05 08:34:30 \n",
|
|
"40 2024-01-05 08:34:30 \n",
|
|
"41 2024-01-05 08:34:30 \n",
|
|
"42 2024-01-05 08:34:30 \n",
|
|
"43 2024-01-05 08:34:30 \n",
|
|
"44 2024-01-05 08:34:30 \n",
|
|
"45 2024-01-05 08:34:30 \n",
|
|
"46 2024-01-05 08:34:30 \n",
|
|
"84 2024-01-05 08:29:10 \n",
|
|
"85 2024-01-05 08:29:10 \n",
|
|
"86 2024-01-05 08:29:10 \n",
|
|
"87 2024-01-05 08:29:10 "
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
},
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"<additional>\n",
|
|
" <tlLogic id=\"c30\" type=\"static\" programID=\"c30_prog\" offset=\"-50\">\n",
|
|
" <phase duration=\"1\" state=\"rrrrrr\"/>\n",
|
|
" <phase duration=\"33\" state=\"rrrrrr\"/>\n",
|
|
" <phase duration=\"4\" state=\"rrrrrr\"/>\n",
|
|
" <phase duration=\"1\" state=\"rrrrrr\"/>\n",
|
|
" <phase duration=\"34\" state=\"GGGGGG\"/>\n",
|
|
" <phase duration=\"4\" state=\"GGGGGG\"/>\n",
|
|
" <phase duration=\"1\" state=\"GGGGGG\"/>\n",
|
|
" <phase duration=\"37\" state=\"GGGGGG\"/>\n",
|
|
" <phase duration=\"4\" state=\"GGGGGG\"/>\n",
|
|
" <phase duration=\"1\" state=\"GGGGGG\"/>\n",
|
|
" <phase duration=\"16\" state=\"GGGGGG\"/>\n",
|
|
" <phase duration=\"4\" state=\"yyyyyy\"/>\n",
|
|
" <phase duration=\"1\" state=\"rrrrrr\"/>\n",
|
|
" <phase duration=\"33\" state=\"rrrrrr\"/>\n",
|
|
" <phase duration=\"4\" state=\"rrrrrr\"/>\n",
|
|
" <phase duration=\"1\" state=\"rrrrrr\"/>\n",
|
|
" <phase duration=\"34\" state=\"GGGGGG\"/>\n",
|
|
" <phase duration=\"4\" state=\"GGGGGG\"/>\n",
|
|
" <phase duration=\"1\" state=\"GGGGGG\"/>\n",
|
|
" <phase duration=\"37\" state=\"GGGGGG\"/>\n",
|
|
" <phase duration=\"4\" state=\"GGGGGG\"/>\n",
|
|
" <phase duration=\"1\" state=\"GGGGGG\"/>\n",
|
|
" <phase duration=\"16\" state=\"GGGGGG\"/>\n",
|
|
" <phase duration=\"4\" state=\"yyyyyy\"/>\n",
|
|
" <phase duration=\"1\" state=\"rrrrrr\"/>\n",
|
|
" <phase duration=\"33\" state=\"rrrrrr\"/>\n",
|
|
" <phase duration=\"4\" state=\"rrrrrr\"/>\n",
|
|
" <phase duration=\"1\" state=\"rrrrrr\"/>\n",
|
|
" <phase duration=\"34\" state=\"GGGGGG\"/>\n",
|
|
" <phase duration=\"4\" state=\"GGGGGG\"/>\n",
|
|
" <phase duration=\"1\" state=\"GGGGGG\"/>\n",
|
|
" <phase duration=\"37\" state=\"GGGGGG\"/>\n",
|
|
" <phase duration=\"4\" state=\"GGGGGG\"/>\n",
|
|
" <phase duration=\"1\" state=\"GGGGGG\"/>\n",
|
|
" <phase duration=\"16\" state=\"GGGGGG\"/>\n",
|
|
" <phase duration=\"4\" state=\"yyyyyy\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i0\" type=\"static\" programID=\"i0_prog\" offset=\"-50\">\n",
|
|
" <phase duration=\"1\" state=\"grrrgrrrgrrrrrgrr\"/>\n",
|
|
" <phase duration=\"35\" state=\"gGGrgrrrgGGGGrgrr\"/>\n",
|
|
" <phase duration=\"4\" state=\"gyyrgrrrgyyyyrgrr\"/>\n",
|
|
" <phase duration=\"1\" state=\"grrrgrrrgrrrrrgrr\"/>\n",
|
|
" <phase duration=\"37\" state=\"grrGgrrrgrrrrGgrr\"/>\n",
|
|
" <phase duration=\"4\" state=\"grrygrrrgrrrrygrr\"/>\n",
|
|
" <phase duration=\"1\" state=\"grrrgrrrgrrrrrgrr\"/>\n",
|
|
" <phase duration=\"24\" state=\"grrrgGGGgrrrrrgrr\"/>\n",
|
|
" <phase duration=\"4\" state=\"grrrgGGygrrrrrgrr\"/>\n",
|
|
" <phase duration=\"1\" state=\"grrrgGGrgrrrrrgrr\"/>\n",
|
|
" <phase duration=\"21\" state=\"grrrgGGrgrrrrrgGr\"/>\n",
|
|
" <phase duration=\"4\" state=\"grrrgyyrgrrrrrgGr\"/>\n",
|
|
" <phase duration=\"1\" state=\"grrrgrrrgrrrrrgGr\"/>\n",
|
|
" <phase duration=\"28\" state=\"grrrgrrrgrrrrrgGG\"/>\n",
|
|
" <phase duration=\"4\" state=\"grrrgrrrgrrrrrgyy\"/>\n",
|
|
" <phase duration=\"1\" state=\"grrrgrrrgrrrrrgrr\"/>\n",
|
|
" <phase duration=\"35\" state=\"gGGrgrrrgGGGGrgrr\"/>\n",
|
|
" <phase duration=\"4\" state=\"gyyrgrrrgyyyyrgrr\"/>\n",
|
|
" <phase duration=\"1\" state=\"grrrgrrrgrrrrrgrr\"/>\n",
|
|
" <phase duration=\"37\" state=\"grrGgrrrgrrrrGgrr\"/>\n",
|
|
" <phase duration=\"4\" state=\"grrygrrrgrrrrygrr\"/>\n",
|
|
" <phase duration=\"1\" state=\"grrrgrrrgrrrrrgrr\"/>\n",
|
|
" <phase duration=\"24\" state=\"grrrgGGGgrrrrrgrr\"/>\n",
|
|
" <phase duration=\"4\" state=\"grrrgGGygrrrrrgrr\"/>\n",
|
|
" <phase duration=\"1\" state=\"grrrgGGrgrrrrrgrr\"/>\n",
|
|
" <phase duration=\"21\" state=\"grrrgGGrgrrrrrgGr\"/>\n",
|
|
" <phase duration=\"4\" state=\"grrrgyyrgrrrrrgGr\"/>\n",
|
|
" <phase duration=\"1\" state=\"grrrgrrrgrrrrrgGr\"/>\n",
|
|
" <phase duration=\"28\" state=\"grrrgrrrgrrrrrgGG\"/>\n",
|
|
" <phase duration=\"4\" state=\"grrrgrrrgrrrrrgyy\"/>\n",
|
|
" <phase duration=\"1\" state=\"grrrgrrrgrrrrrgrr\"/>\n",
|
|
" <phase duration=\"35\" state=\"gGGrgrrrgGGGGrgrr\"/>\n",
|
|
" <phase duration=\"4\" state=\"gyyrgrrrgyyyyrgrr\"/>\n",
|
|
" <phase duration=\"1\" state=\"grrrgrrrgrrrrrgrr\"/>\n",
|
|
" <phase duration=\"37\" state=\"grrGgrrrgrrrrGgrr\"/>\n",
|
|
" <phase duration=\"4\" state=\"grrygrrrgrrrrygrr\"/>\n",
|
|
" <phase duration=\"1\" state=\"grrrgrrrgrrrrrgrr\"/>\n",
|
|
" <phase duration=\"24\" state=\"grrrgGGGgrrrrrgrr\"/>\n",
|
|
" <phase duration=\"4\" state=\"grrrgGGygrrrrrgrr\"/>\n",
|
|
" <phase duration=\"1\" state=\"grrrgGGrgrrrrrgrr\"/>\n",
|
|
" <phase duration=\"21\" state=\"grrrgGGrgrrrrrgGr\"/>\n",
|
|
" <phase duration=\"4\" state=\"grrrgyyrgrrrrrgGr\"/>\n",
|
|
" <phase duration=\"1\" state=\"grrrgrrrgrrrrrgGr\"/>\n",
|
|
" <phase duration=\"28\" state=\"grrrgrrrgrrrrrgGG\"/>\n",
|
|
" <phase duration=\"4\" state=\"grrrgrrrgrrrrrgyy\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i1\" type=\"static\" programID=\"i1_prog\" offset=\"-10\">\n",
|
|
" <phase duration=\"1\" state=\"grrrrrrgrr\"/>\n",
|
|
" <phase duration=\"32\" state=\"gGGGGGrgrr\"/>\n",
|
|
" <phase duration=\"4\" state=\"gyyGGGrgrr\"/>\n",
|
|
" <phase duration=\"1\" state=\"grrGGGrgrr\"/>\n",
|
|
" <phase duration=\"88\" state=\"grrGGGGgrr\"/>\n",
|
|
" <phase duration=\"4\" state=\"grryyyygrr\"/>\n",
|
|
" <phase duration=\"1\" state=\"grrrrrrgrr\"/>\n",
|
|
" <phase duration=\"35\" state=\"grrrrrrgGG\"/>\n",
|
|
" <phase duration=\"4\" state=\"grrrrrrgyy\"/>\n",
|
|
" <phase duration=\"1\" state=\"grrrrrrgrr\"/>\n",
|
|
" <phase duration=\"32\" state=\"gGGGGGrgrr\"/>\n",
|
|
" <phase duration=\"4\" state=\"gyyGGGrgrr\"/>\n",
|
|
" <phase duration=\"1\" state=\"grrGGGrgrr\"/>\n",
|
|
" <phase duration=\"88\" state=\"grrGGGGgrr\"/>\n",
|
|
" <phase duration=\"4\" state=\"grryyyygrr\"/>\n",
|
|
" <phase duration=\"1\" state=\"grrrrrrgrr\"/>\n",
|
|
" <phase duration=\"35\" state=\"grrrrrrgGG\"/>\n",
|
|
" <phase duration=\"4\" state=\"grrrrrrgyy\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i2\" type=\"static\" programID=\"i2_prog\" offset=\"-90\">\n",
|
|
" <phase duration=\"1\" state=\"rrggGGG\"/>\n",
|
|
" <phase duration=\"35\" state=\"GGggGGG\"/>\n",
|
|
" <phase duration=\"4\" state=\"yyggyyy\"/>\n",
|
|
" <phase duration=\"1\" state=\"rrggrrr\"/>\n",
|
|
" <phase duration=\"20\" state=\"rrggrrr\"/>\n",
|
|
" <phase duration=\"4\" state=\"rrggrrr\"/>\n",
|
|
" <phase duration=\"1\" state=\"rrggrrr\"/>\n",
|
|
" <phase duration=\"66\" state=\"rrggrrr\"/>\n",
|
|
" <phase duration=\"4\" state=\"rrggrrr\"/>\n",
|
|
" <phase duration=\"1\" state=\"rrggrrr\"/>\n",
|
|
" <phase duration=\"29\" state=\"rrggGGG\"/>\n",
|
|
" <phase duration=\"4\" state=\"rrggGGG\"/>\n",
|
|
" <phase duration=\"1\" state=\"rrggGGG\"/>\n",
|
|
" <phase duration=\"35\" state=\"GGggGGG\"/>\n",
|
|
" <phase duration=\"4\" state=\"yyggyyy\"/>\n",
|
|
" <phase duration=\"1\" state=\"rrggrrr\"/>\n",
|
|
" <phase duration=\"20\" state=\"rrggrrr\"/>\n",
|
|
" <phase duration=\"4\" state=\"rrggrrr\"/>\n",
|
|
" <phase duration=\"1\" state=\"rrggrrr\"/>\n",
|
|
" <phase duration=\"66\" state=\"rrggrrr\"/>\n",
|
|
" <phase duration=\"4\" state=\"rrggrrr\"/>\n",
|
|
" <phase duration=\"1\" state=\"rrggrrr\"/>\n",
|
|
" <phase duration=\"29\" state=\"rrggGGG\"/>\n",
|
|
" <phase duration=\"4\" state=\"rrggGGG\"/>\n",
|
|
" <phase duration=\"1\" state=\"rrggGGG\"/>\n",
|
|
" <phase duration=\"35\" state=\"GGggGGG\"/>\n",
|
|
" <phase duration=\"4\" state=\"yyggyyy\"/>\n",
|
|
" <phase duration=\"1\" state=\"rrggrrr\"/>\n",
|
|
" <phase duration=\"20\" state=\"rrggrrr\"/>\n",
|
|
" <phase duration=\"4\" state=\"rrggrrr\"/>\n",
|
|
" <phase duration=\"1\" state=\"rrggrrr\"/>\n",
|
|
" <phase duration=\"66\" state=\"rrggrrr\"/>\n",
|
|
" <phase duration=\"4\" state=\"rrggrrr\"/>\n",
|
|
" <phase duration=\"1\" state=\"rrggrrr\"/>\n",
|
|
" <phase duration=\"29\" state=\"rrggGGG\"/>\n",
|
|
" <phase duration=\"4\" state=\"rrggGGG\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i3\" type=\"static\" programID=\"i3_prog\" offset=\"-50\">\n",
|
|
" <phase duration=\"1\" state=\"grrrrgrrrrgrrrrgrrrr\"/>\n",
|
|
" <phase duration=\"33\" state=\"gGGGrgrrrrgGGGrgrrrr\"/>\n",
|
|
" <phase duration=\"4\" state=\"gyyyrgrrrrgyyyrgrrrr\"/>\n",
|
|
" <phase duration=\"1\" state=\"grrrrgrrrrgrrrrgrrrr\"/>\n",
|
|
" <phase duration=\"34\" state=\"grrrGgrrrrgrrrGgrrrr\"/>\n",
|
|
" <phase duration=\"4\" state=\"grrrygrrrrgrrrygrrrr\"/>\n",
|
|
" <phase duration=\"1\" state=\"grrrrgrrrrgrrrrgrrrr\"/>\n",
|
|
" <phase duration=\"37\" state=\"grrrrgrrrrgrrrrgGGGG\"/>\n",
|
|
" <phase duration=\"4\" state=\"grrrrgrrrrgrrrrgyyyy\"/>\n",
|
|
" <phase duration=\"1\" state=\"grrrrgrrrrgrrrrgrrrr\"/>\n",
|
|
" <phase duration=\"16\" state=\"grrrrgGGGGgrrrrgrrrr\"/>\n",
|
|
" <phase duration=\"4\" state=\"grrrrgyyyygrrrrgrrrr\"/>\n",
|
|
" <phase duration=\"1\" state=\"grrrrgrrrrgrrrrgrrrr\"/>\n",
|
|
" <phase duration=\"33\" state=\"gGGGrgrrrrgGGGrgrrrr\"/>\n",
|
|
" <phase duration=\"4\" state=\"gyyyrgrrrrgyyyrgrrrr\"/>\n",
|
|
" <phase duration=\"1\" state=\"grrrrgrrrrgrrrrgrrrr\"/>\n",
|
|
" <phase duration=\"34\" state=\"grrrGgrrrrgrrrGgrrrr\"/>\n",
|
|
" <phase duration=\"4\" state=\"grrrygrrrrgrrrygrrrr\"/>\n",
|
|
" <phase duration=\"1\" state=\"grrrrgrrrrgrrrrgrrrr\"/>\n",
|
|
" <phase duration=\"37\" state=\"grrrrgrrrrgrrrrgGGGG\"/>\n",
|
|
" <phase duration=\"4\" state=\"grrrrgrrrrgrrrrgyyyy\"/>\n",
|
|
" <phase duration=\"1\" state=\"grrrrgrrrrgrrrrgrrrr\"/>\n",
|
|
" <phase duration=\"16\" state=\"grrrrgGGGGgrrrrgrrrr\"/>\n",
|
|
" <phase duration=\"4\" state=\"grrrrgyyyygrrrrgrrrr\"/>\n",
|
|
" <phase duration=\"1\" state=\"grrrrgrrrrgrrrrgrrrr\"/>\n",
|
|
" <phase duration=\"33\" state=\"gGGGrgrrrrgGGGrgrrrr\"/>\n",
|
|
" <phase duration=\"4\" state=\"gyyyrgrrrrgyyyrgrrrr\"/>\n",
|
|
" <phase duration=\"1\" state=\"grrrrgrrrrgrrrrgrrrr\"/>\n",
|
|
" <phase duration=\"34\" state=\"grrrGgrrrrgrrrGgrrrr\"/>\n",
|
|
" <phase duration=\"4\" state=\"grrrygrrrrgrrrygrrrr\"/>\n",
|
|
" <phase duration=\"1\" state=\"grrrrgrrrrgrrrrgrrrr\"/>\n",
|
|
" <phase duration=\"37\" state=\"grrrrgrrrrgrrrrgGGGG\"/>\n",
|
|
" <phase duration=\"4\" state=\"grrrrgrrrrgrrrrgyyyy\"/>\n",
|
|
" <phase duration=\"1\" state=\"grrrrgrrrrgrrrrgrrrr\"/>\n",
|
|
" <phase duration=\"16\" state=\"grrrrgGGGGgrrrrgrrrr\"/>\n",
|
|
" <phase duration=\"4\" state=\"grrrrgyyyygrrrrgrrrr\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i6\" type=\"static\" programID=\"i6_prog\" offset=\"-70\">\n",
|
|
" <phase duration=\"1\" state=\"grrrgrrrrgrrgrrr\"/>\n",
|
|
" <phase duration=\"19\" state=\"grrrgGGGrgrrgrrr\"/>\n",
|
|
" <phase duration=\"4\" state=\"grrrgGGGrgrrgrrr\"/>\n",
|
|
" <phase duration=\"1\" state=\"grrrgGGGrgrrgrrr\"/>\n",
|
|
" <phase duration=\"14\" state=\"grrrgGGGrgrrgGGr\"/>\n",
|
|
" <phase duration=\"4\" state=\"grrrgyyyrgrrgGGr\"/>\n",
|
|
" <phase duration=\"1\" state=\"grrrgrrrrgrrgGGr\"/>\n",
|
|
" <phase duration=\"34\" state=\"grrrgrrrrgrrgGGG\"/>\n",
|
|
" <phase duration=\"4\" state=\"grrrgrrrrgrrgyyy\"/>\n",
|
|
" <phase duration=\"1\" state=\"grrrgrrrrgrrgrrr\"/>\n",
|
|
" <phase duration=\"60\" state=\"gGGGgrrrrgrrgrrr\"/>\n",
|
|
" <phase duration=\"4\" state=\"gyyygrrrrgrrgrrr\"/>\n",
|
|
" <phase duration=\"1\" state=\"grrrgrrrrgrrgrrr\"/>\n",
|
|
" <phase duration=\"18\" state=\"grrrgrrrrgGGgrrr\"/>\n",
|
|
" <phase duration=\"4\" state=\"grrrgrrrrgyygrrr\"/>\n",
|
|
" <phase duration=\"1\" state=\"grrrgrrrrgrrgrrr\"/>\n",
|
|
" <phase duration=\"19\" state=\"grrrgGGGrgrrgrrr\"/>\n",
|
|
" <phase duration=\"4\" state=\"grrrgGGGrgrrgrrr\"/>\n",
|
|
" <phase duration=\"1\" state=\"grrrgGGGrgrrgrrr\"/>\n",
|
|
" <phase duration=\"14\" state=\"grrrgGGGrgrrgGGr\"/>\n",
|
|
" <phase duration=\"4\" state=\"grrrgyyyrgrrgGGr\"/>\n",
|
|
" <phase duration=\"1\" state=\"grrrgrrrrgrrgGGr\"/>\n",
|
|
" <phase duration=\"34\" state=\"grrrgrrrrgrrgGGG\"/>\n",
|
|
" <phase duration=\"4\" state=\"grrrgrrrrgrrgyyy\"/>\n",
|
|
" <phase duration=\"1\" state=\"grrrgrrrrgrrgrrr\"/>\n",
|
|
" <phase duration=\"60\" state=\"gGGGgrrrrgrrgrrr\"/>\n",
|
|
" <phase duration=\"4\" state=\"gyyygrrrrgrrgrrr\"/>\n",
|
|
" <phase duration=\"1\" state=\"grrrgrrrrgrrgrrr\"/>\n",
|
|
" <phase duration=\"18\" state=\"grrrgrrrrgGGgrrr\"/>\n",
|
|
" <phase duration=\"4\" state=\"grrrgrrrrgyygrrr\"/>\n",
|
|
" <phase duration=\"1\" state=\"grrrgrrrrgrrgrrr\"/>\n",
|
|
" <phase duration=\"19\" state=\"grrrgGGGrgrrgrrr\"/>\n",
|
|
" <phase duration=\"4\" state=\"grrrgGGGrgrrgrrr\"/>\n",
|
|
" <phase duration=\"1\" state=\"grrrgGGGrgrrgrrr\"/>\n",
|
|
" <phase duration=\"14\" state=\"grrrgGGGrgrrgGGr\"/>\n",
|
|
" <phase duration=\"4\" state=\"grrrgyyyrgrrgGGr\"/>\n",
|
|
" <phase duration=\"1\" state=\"grrrgrrrrgrrgGGr\"/>\n",
|
|
" <phase duration=\"34\" state=\"grrrgrrrrgrrgGGG\"/>\n",
|
|
" <phase duration=\"4\" state=\"grrrgrrrrgrrgyyy\"/>\n",
|
|
" <phase duration=\"1\" state=\"grrrgrrrrgrrgrrr\"/>\n",
|
|
" <phase duration=\"60\" state=\"gGGGgrrrrgrrgrrr\"/>\n",
|
|
" <phase duration=\"4\" state=\"gyyygrrrrgrrgrrr\"/>\n",
|
|
" <phase duration=\"1\" state=\"grrrgrrrrgrrgrrr\"/>\n",
|
|
" <phase duration=\"18\" state=\"grrrgrrrrgGGgrrr\"/>\n",
|
|
" <phase duration=\"4\" state=\"grrrgrrrrgyygrrr\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i8\" type=\"static\" programID=\"i8_prog\" offset=\"-20\">\n",
|
|
" <phase duration=\"1\" state=\"grrrrrrrgrrrgrrr\"/>\n",
|
|
" <phase duration=\"25\" state=\"grrrrrrrgGGGgrrr\"/>\n",
|
|
" <phase duration=\"4\" state=\"grrrrrrrgyyygrrr\"/>\n",
|
|
" <phase duration=\"1\" state=\"grrrrrrrgrrrgrrr\"/>\n",
|
|
" <phase duration=\"31\" state=\"grrrrrrrgrrrgGGG\"/>\n",
|
|
" <phase duration=\"4\" state=\"grrrrrrrgrrrgGGy\"/>\n",
|
|
" <phase duration=\"1\" state=\"grrrrrrrgrrrgGGr\"/>\n",
|
|
" <phase duration=\"13\" state=\"grrrGGGrgrrrgGGr\"/>\n",
|
|
" <phase duration=\"4\" state=\"grrrGGGrgrrrgyyr\"/>\n",
|
|
" <phase duration=\"1\" state=\"grrrGGGrgrrrgrrr\"/>\n",
|
|
" <phase duration=\"53\" state=\"grrrGGGGgrrrgrrr\"/>\n",
|
|
" <phase duration=\"4\" state=\"grrryyyygrrrgrrr\"/>\n",
|
|
" <phase duration=\"1\" state=\"grrrrrrrgrrrgrrr\"/>\n",
|
|
" <phase duration=\"13\" state=\"gGGGrrrrgrrrgrrr\"/>\n",
|
|
" <phase duration=\"4\" state=\"gyyyrrrrgrrrgrrr\"/>\n",
|
|
" <phase duration=\"1\" state=\"grrrrrrrgrrrgrrr\"/>\n",
|
|
" <phase duration=\"25\" state=\"grrrrrrrgGGGgrrr\"/>\n",
|
|
" <phase duration=\"4\" state=\"grrrrrrrgyyygrrr\"/>\n",
|
|
" <phase duration=\"1\" state=\"grrrrrrrgrrrgrrr\"/>\n",
|
|
" <phase duration=\"31\" state=\"grrrrrrrgrrrgGGG\"/>\n",
|
|
" <phase duration=\"4\" state=\"grrrrrrrgrrrgGGy\"/>\n",
|
|
" <phase duration=\"1\" state=\"grrrrrrrgrrrgGGr\"/>\n",
|
|
" <phase duration=\"13\" state=\"grrrGGGrgrrrgGGr\"/>\n",
|
|
" <phase duration=\"4\" state=\"grrrGGGrgrrrgyyr\"/>\n",
|
|
" <phase duration=\"1\" state=\"grrrGGGrgrrrgrrr\"/>\n",
|
|
" <phase duration=\"53\" state=\"grrrGGGGgrrrgrrr\"/>\n",
|
|
" <phase duration=\"4\" state=\"grrryyyygrrrgrrr\"/>\n",
|
|
" <phase duration=\"1\" state=\"grrrrrrrgrrrgrrr\"/>\n",
|
|
" <phase duration=\"13\" state=\"gGGGrrrrgrrrgrrr\"/>\n",
|
|
" <phase duration=\"4\" state=\"gyyyrrrrgrrrgrrr\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i9\" type=\"static\" programID=\"i9_prog\" offset=\"-40\">\n",
|
|
" <phase duration=\"1\" state=\"rrrr\"/>\n",
|
|
" <phase duration=\"41\" state=\"GGGG\"/>\n",
|
|
" <phase duration=\"4\" state=\"yyyy\"/>\n",
|
|
" <phase duration=\"1\" state=\"rrrr\"/>\n",
|
|
" <phase duration=\"109\" state=\"rrrr\"/>\n",
|
|
" <phase duration=\"4\" state=\"rrrr\"/>\n",
|
|
" <phase duration=\"1\" state=\"rrrr\"/>\n",
|
|
" <phase duration=\"41\" state=\"GGGG\"/>\n",
|
|
" <phase duration=\"4\" state=\"yyyy\"/>\n",
|
|
" <phase duration=\"1\" state=\"rrrr\"/>\n",
|
|
" <phase duration=\"109\" state=\"rrrr\"/>\n",
|
|
" <phase duration=\"4\" state=\"rrrr\"/>\n",
|
|
" <phase duration=\"1\" state=\"rrrr\"/>\n",
|
|
" <phase duration=\"41\" state=\"GGGG\"/>\n",
|
|
" <phase duration=\"4\" state=\"yyyy\"/>\n",
|
|
" <phase duration=\"1\" state=\"rrrr\"/>\n",
|
|
" <phase duration=\"108\" state=\"rrrr\"/>\n",
|
|
" <phase duration=\"4\" state=\"rrrr\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"u00\" type=\"static\" programID=\"u00_prog\" offset=\"-50\">\n",
|
|
" <phase duration=\"1\" state=\"ggggrgggg\"/>\n",
|
|
" <phase duration=\"35\" state=\"ggggrgggg\"/>\n",
|
|
" <phase duration=\"4\" state=\"ggggrgggg\"/>\n",
|
|
" <phase duration=\"1\" state=\"ggggrgggg\"/>\n",
|
|
" <phase duration=\"37\" state=\"ggggGgggg\"/>\n",
|
|
" <phase duration=\"4\" state=\"ggggygggg\"/>\n",
|
|
" <phase duration=\"1\" state=\"ggggrgggg\"/>\n",
|
|
" <phase duration=\"24\" state=\"ggggrgggg\"/>\n",
|
|
" <phase duration=\"4\" state=\"ggggrgggg\"/>\n",
|
|
" <phase duration=\"1\" state=\"ggggrgggg\"/>\n",
|
|
" <phase duration=\"21\" state=\"ggggrgggg\"/>\n",
|
|
" <phase duration=\"4\" state=\"ggggrgggg\"/>\n",
|
|
" <phase duration=\"1\" state=\"ggggrgggg\"/>\n",
|
|
" <phase duration=\"28\" state=\"ggggrgggg\"/>\n",
|
|
" <phase duration=\"4\" state=\"ggggrgggg\"/>\n",
|
|
" <phase duration=\"1\" state=\"ggggrgggg\"/>\n",
|
|
" <phase duration=\"35\" state=\"ggggrgggg\"/>\n",
|
|
" <phase duration=\"4\" state=\"ggggrgggg\"/>\n",
|
|
" <phase duration=\"1\" state=\"ggggrgggg\"/>\n",
|
|
" <phase duration=\"37\" state=\"ggggGgggg\"/>\n",
|
|
" <phase duration=\"4\" state=\"ggggygggg\"/>\n",
|
|
" <phase duration=\"1\" state=\"ggggrgggg\"/>\n",
|
|
" <phase duration=\"24\" state=\"ggggrgggg\"/>\n",
|
|
" <phase duration=\"4\" state=\"ggggrgggg\"/>\n",
|
|
" <phase duration=\"1\" state=\"ggggrgggg\"/>\n",
|
|
" <phase duration=\"21\" state=\"ggggrgggg\"/>\n",
|
|
" <phase duration=\"4\" state=\"ggggrgggg\"/>\n",
|
|
" <phase duration=\"1\" state=\"ggggrgggg\"/>\n",
|
|
" <phase duration=\"28\" state=\"ggggrgggg\"/>\n",
|
|
" <phase duration=\"4\" state=\"ggggrgggg\"/>\n",
|
|
" <phase duration=\"1\" state=\"ggggrgggg\"/>\n",
|
|
" <phase duration=\"35\" state=\"ggggrgggg\"/>\n",
|
|
" <phase duration=\"4\" state=\"ggggrgggg\"/>\n",
|
|
" <phase duration=\"1\" state=\"ggggrgggg\"/>\n",
|
|
" <phase duration=\"37\" state=\"ggggGgggg\"/>\n",
|
|
" <phase duration=\"4\" state=\"ggggygggg\"/>\n",
|
|
" <phase duration=\"1\" state=\"ggggrgggg\"/>\n",
|
|
" <phase duration=\"24\" state=\"ggggrgggg\"/>\n",
|
|
" <phase duration=\"4\" state=\"ggggrgggg\"/>\n",
|
|
" <phase duration=\"1\" state=\"ggggrgggg\"/>\n",
|
|
" <phase duration=\"21\" state=\"ggggrgggg\"/>\n",
|
|
" <phase duration=\"4\" state=\"ggggrgggg\"/>\n",
|
|
" <phase duration=\"1\" state=\"ggggrgggg\"/>\n",
|
|
" <phase duration=\"28\" state=\"ggggrgggg\"/>\n",
|
|
" <phase duration=\"4\" state=\"ggggrgggg\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"u20\" type=\"static\" programID=\"u20_prog\" offset=\"-90\">\n",
|
|
" <phase duration=\"1\" state=\"ggrggg\"/>\n",
|
|
" <phase duration=\"35\" state=\"ggrggg\"/>\n",
|
|
" <phase duration=\"4\" state=\"ggrggg\"/>\n",
|
|
" <phase duration=\"1\" state=\"ggrggg\"/>\n",
|
|
" <phase duration=\"20\" state=\"ggrggg\"/>\n",
|
|
" <phase duration=\"4\" state=\"ggrggg\"/>\n",
|
|
" <phase duration=\"1\" state=\"ggrggg\"/>\n",
|
|
" <phase duration=\"66\" state=\"ggGggg\"/>\n",
|
|
" <phase duration=\"4\" state=\"ggyggg\"/>\n",
|
|
" <phase duration=\"1\" state=\"ggrggg\"/>\n",
|
|
" <phase duration=\"29\" state=\"ggrggg\"/>\n",
|
|
" <phase duration=\"4\" state=\"ggrggg\"/>\n",
|
|
" <phase duration=\"1\" state=\"ggrggg\"/>\n",
|
|
" <phase duration=\"35\" state=\"ggrggg\"/>\n",
|
|
" <phase duration=\"4\" state=\"ggrggg\"/>\n",
|
|
" <phase duration=\"1\" state=\"ggrggg\"/>\n",
|
|
" <phase duration=\"20\" state=\"ggrggg\"/>\n",
|
|
" <phase duration=\"4\" state=\"ggrggg\"/>\n",
|
|
" <phase duration=\"1\" state=\"ggrggg\"/>\n",
|
|
" <phase duration=\"66\" state=\"ggGggg\"/>\n",
|
|
" <phase duration=\"4\" state=\"ggyggg\"/>\n",
|
|
" <phase duration=\"1\" state=\"ggrggg\"/>\n",
|
|
" <phase duration=\"29\" state=\"ggrggg\"/>\n",
|
|
" <phase duration=\"4\" state=\"ggrggg\"/>\n",
|
|
" <phase duration=\"1\" state=\"ggrggg\"/>\n",
|
|
" <phase duration=\"35\" state=\"ggrggg\"/>\n",
|
|
" <phase duration=\"4\" state=\"ggrggg\"/>\n",
|
|
" <phase duration=\"1\" state=\"ggrggg\"/>\n",
|
|
" <phase duration=\"20\" state=\"ggrggg\"/>\n",
|
|
" <phase duration=\"4\" state=\"ggrggg\"/>\n",
|
|
" <phase duration=\"1\" state=\"ggrggg\"/>\n",
|
|
" <phase duration=\"66\" state=\"ggGggg\"/>\n",
|
|
" <phase duration=\"4\" state=\"ggyggg\"/>\n",
|
|
" <phase duration=\"1\" state=\"ggrggg\"/>\n",
|
|
" <phase duration=\"29\" state=\"ggrggg\"/>\n",
|
|
" <phase duration=\"4\" state=\"ggrggg\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"u30\" type=\"static\" programID=\"u30_prog\" offset=\"-50\">\n",
|
|
" <phase duration=\"1\" state=\"ggggrggg\"/>\n",
|
|
" <phase duration=\"33\" state=\"ggggrggg\"/>\n",
|
|
" <phase duration=\"4\" state=\"ggggrggg\"/>\n",
|
|
" <phase duration=\"1\" state=\"ggggrggg\"/>\n",
|
|
" <phase duration=\"34\" state=\"ggggrggg\"/>\n",
|
|
" <phase duration=\"4\" state=\"ggggrggg\"/>\n",
|
|
" <phase duration=\"1\" state=\"ggggrggg\"/>\n",
|
|
" <phase duration=\"37\" state=\"ggggrggg\"/>\n",
|
|
" <phase duration=\"4\" state=\"ggggrggg\"/>\n",
|
|
" <phase duration=\"1\" state=\"ggggrggg\"/>\n",
|
|
" <phase duration=\"16\" state=\"ggggGggg\"/>\n",
|
|
" <phase duration=\"4\" state=\"ggggyggg\"/>\n",
|
|
" <phase duration=\"1\" state=\"ggggrggg\"/>\n",
|
|
" <phase duration=\"33\" state=\"ggggrggg\"/>\n",
|
|
" <phase duration=\"4\" state=\"ggggrggg\"/>\n",
|
|
" <phase duration=\"1\" state=\"ggggrggg\"/>\n",
|
|
" <phase duration=\"34\" state=\"ggggrggg\"/>\n",
|
|
" <phase duration=\"4\" state=\"ggggrggg\"/>\n",
|
|
" <phase duration=\"1\" state=\"ggggrggg\"/>\n",
|
|
" <phase duration=\"37\" state=\"ggggrggg\"/>\n",
|
|
" <phase duration=\"4\" state=\"ggggrggg\"/>\n",
|
|
" <phase duration=\"1\" state=\"ggggrggg\"/>\n",
|
|
" <phase duration=\"16\" state=\"ggggGggg\"/>\n",
|
|
" <phase duration=\"4\" state=\"ggggyggg\"/>\n",
|
|
" <phase duration=\"1\" state=\"ggggrggg\"/>\n",
|
|
" <phase duration=\"33\" state=\"ggggrggg\"/>\n",
|
|
" <phase duration=\"4\" state=\"ggggrggg\"/>\n",
|
|
" <phase duration=\"1\" state=\"ggggrggg\"/>\n",
|
|
" <phase duration=\"34\" state=\"ggggrggg\"/>\n",
|
|
" <phase duration=\"4\" state=\"ggggrggg\"/>\n",
|
|
" <phase duration=\"1\" state=\"ggggrggg\"/>\n",
|
|
" <phase duration=\"37\" state=\"ggggrggg\"/>\n",
|
|
" <phase duration=\"4\" state=\"ggggrggg\"/>\n",
|
|
" <phase duration=\"1\" state=\"ggggrggg\"/>\n",
|
|
" <phase duration=\"16\" state=\"ggggGggg\"/>\n",
|
|
" <phase duration=\"4\" state=\"ggggyggg\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"u31\" type=\"static\" programID=\"u31_prog\" offset=\"-50\">\n",
|
|
" <phase duration=\"1\" state=\"ggggrggg\"/>\n",
|
|
" <phase duration=\"33\" state=\"ggggGggg\"/>\n",
|
|
" <phase duration=\"4\" state=\"ggggyggg\"/>\n",
|
|
" <phase duration=\"1\" state=\"ggggrggg\"/>\n",
|
|
" <phase duration=\"34\" state=\"ggggrggg\"/>\n",
|
|
" <phase duration=\"4\" state=\"ggggrggg\"/>\n",
|
|
" <phase duration=\"1\" state=\"ggggrggg\"/>\n",
|
|
" <phase duration=\"37\" state=\"ggggrggg\"/>\n",
|
|
" <phase duration=\"4\" state=\"ggggrggg\"/>\n",
|
|
" <phase duration=\"1\" state=\"ggggrggg\"/>\n",
|
|
" <phase duration=\"16\" state=\"ggggrggg\"/>\n",
|
|
" <phase duration=\"4\" state=\"ggggrggg\"/>\n",
|
|
" <phase duration=\"1\" state=\"ggggrggg\"/>\n",
|
|
" <phase duration=\"33\" state=\"ggggGggg\"/>\n",
|
|
" <phase duration=\"4\" state=\"ggggyggg\"/>\n",
|
|
" <phase duration=\"1\" state=\"ggggrggg\"/>\n",
|
|
" <phase duration=\"34\" state=\"ggggrggg\"/>\n",
|
|
" <phase duration=\"4\" state=\"ggggrggg\"/>\n",
|
|
" <phase duration=\"1\" state=\"ggggrggg\"/>\n",
|
|
" <phase duration=\"37\" state=\"ggggrggg\"/>\n",
|
|
" <phase duration=\"4\" state=\"ggggrggg\"/>\n",
|
|
" <phase duration=\"1\" state=\"ggggrggg\"/>\n",
|
|
" <phase duration=\"16\" state=\"ggggrggg\"/>\n",
|
|
" <phase duration=\"4\" state=\"ggggrggg\"/>\n",
|
|
" <phase duration=\"1\" state=\"ggggrggg\"/>\n",
|
|
" <phase duration=\"33\" state=\"ggggGggg\"/>\n",
|
|
" <phase duration=\"4\" state=\"ggggyggg\"/>\n",
|
|
" <phase duration=\"1\" state=\"ggggrggg\"/>\n",
|
|
" <phase duration=\"34\" state=\"ggggrggg\"/>\n",
|
|
" <phase duration=\"4\" state=\"ggggrggg\"/>\n",
|
|
" <phase duration=\"1\" state=\"ggggrggg\"/>\n",
|
|
" <phase duration=\"37\" state=\"ggggrggg\"/>\n",
|
|
" <phase duration=\"4\" state=\"ggggrggg\"/>\n",
|
|
" <phase duration=\"1\" state=\"ggggrggg\"/>\n",
|
|
" <phase duration=\"16\" state=\"ggggrggg\"/>\n",
|
|
" <phase duration=\"4\" state=\"ggggrggg\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"u32\" type=\"static\" programID=\"u32_prog\" offset=\"-50\">\n",
|
|
" <phase duration=\"1\" state=\"gggggggr\"/>\n",
|
|
" <phase duration=\"33\" state=\"gggggggG\"/>\n",
|
|
" <phase duration=\"4\" state=\"gggggggy\"/>\n",
|
|
" <phase duration=\"1\" state=\"gggggggr\"/>\n",
|
|
" <phase duration=\"34\" state=\"gggggggr\"/>\n",
|
|
" <phase duration=\"4\" state=\"gggggggr\"/>\n",
|
|
" <phase duration=\"1\" state=\"gggggggr\"/>\n",
|
|
" <phase duration=\"37\" state=\"gggggggr\"/>\n",
|
|
" <phase duration=\"4\" state=\"gggggggr\"/>\n",
|
|
" <phase duration=\"1\" state=\"gggggggr\"/>\n",
|
|
" <phase duration=\"16\" state=\"gggggggr\"/>\n",
|
|
" <phase duration=\"4\" state=\"gggggggr\"/>\n",
|
|
" <phase duration=\"1\" state=\"gggggggr\"/>\n",
|
|
" <phase duration=\"33\" state=\"gggggggG\"/>\n",
|
|
" <phase duration=\"4\" state=\"gggggggy\"/>\n",
|
|
" <phase duration=\"1\" state=\"gggggggr\"/>\n",
|
|
" <phase duration=\"34\" state=\"gggggggr\"/>\n",
|
|
" <phase duration=\"4\" state=\"gggggggr\"/>\n",
|
|
" <phase duration=\"1\" state=\"gggggggr\"/>\n",
|
|
" <phase duration=\"37\" state=\"gggggggr\"/>\n",
|
|
" <phase duration=\"4\" state=\"gggggggr\"/>\n",
|
|
" <phase duration=\"1\" state=\"gggggggr\"/>\n",
|
|
" <phase duration=\"16\" state=\"gggggggr\"/>\n",
|
|
" <phase duration=\"4\" state=\"gggggggr\"/>\n",
|
|
" <phase duration=\"1\" state=\"gggggggr\"/>\n",
|
|
" <phase duration=\"33\" state=\"gggggggG\"/>\n",
|
|
" <phase duration=\"4\" state=\"gggggggy\"/>\n",
|
|
" <phase duration=\"1\" state=\"gggggggr\"/>\n",
|
|
" <phase duration=\"34\" state=\"gggggggr\"/>\n",
|
|
" <phase duration=\"4\" state=\"gggggggr\"/>\n",
|
|
" <phase duration=\"1\" state=\"gggggggr\"/>\n",
|
|
" <phase duration=\"37\" state=\"gggggggr\"/>\n",
|
|
" <phase duration=\"4\" state=\"gggggggr\"/>\n",
|
|
" <phase duration=\"1\" state=\"gggggggr\"/>\n",
|
|
" <phase duration=\"16\" state=\"gggggggr\"/>\n",
|
|
" <phase duration=\"4\" state=\"gggggggr\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"u60\" type=\"static\" programID=\"u60_prog\" offset=\"-70\">\n",
|
|
" <phase duration=\"1\" state=\"ggggggggr\"/>\n",
|
|
" <phase duration=\"19\" state=\"ggggggggr\"/>\n",
|
|
" <phase duration=\"4\" state=\"ggggggggr\"/>\n",
|
|
" <phase duration=\"1\" state=\"ggggggggr\"/>\n",
|
|
" <phase duration=\"14\" state=\"ggggggggr\"/>\n",
|
|
" <phase duration=\"4\" state=\"ggggggggr\"/>\n",
|
|
" <phase duration=\"1\" state=\"ggggggggr\"/>\n",
|
|
" <phase duration=\"34\" state=\"ggggggggG\"/>\n",
|
|
" <phase duration=\"4\" state=\"ggggggggy\"/>\n",
|
|
" <phase duration=\"1\" state=\"ggggggggr\"/>\n",
|
|
" <phase duration=\"60\" state=\"ggggggggr\"/>\n",
|
|
" <phase duration=\"4\" state=\"ggggggggr\"/>\n",
|
|
" <phase duration=\"1\" state=\"ggggggggr\"/>\n",
|
|
" <phase duration=\"18\" state=\"ggggggggr\"/>\n",
|
|
" <phase duration=\"4\" state=\"ggggggggr\"/>\n",
|
|
" <phase duration=\"1\" state=\"ggggggggr\"/>\n",
|
|
" <phase duration=\"19\" state=\"ggggggggr\"/>\n",
|
|
" <phase duration=\"4\" state=\"ggggggggr\"/>\n",
|
|
" <phase duration=\"1\" state=\"ggggggggr\"/>\n",
|
|
" <phase duration=\"14\" state=\"ggggggggr\"/>\n",
|
|
" <phase duration=\"4\" state=\"ggggggggr\"/>\n",
|
|
" <phase duration=\"1\" state=\"ggggggggr\"/>\n",
|
|
" <phase duration=\"34\" state=\"ggggggggG\"/>\n",
|
|
" <phase duration=\"4\" state=\"ggggggggy\"/>\n",
|
|
" <phase duration=\"1\" state=\"ggggggggr\"/>\n",
|
|
" <phase duration=\"60\" state=\"ggggggggr\"/>\n",
|
|
" <phase duration=\"4\" state=\"ggggggggr\"/>\n",
|
|
" <phase duration=\"1\" state=\"ggggggggr\"/>\n",
|
|
" <phase duration=\"18\" state=\"ggggggggr\"/>\n",
|
|
" <phase duration=\"4\" state=\"ggggggggr\"/>\n",
|
|
" <phase duration=\"1\" state=\"ggggggggr\"/>\n",
|
|
" <phase duration=\"19\" state=\"ggggggggr\"/>\n",
|
|
" <phase duration=\"4\" state=\"ggggggggr\"/>\n",
|
|
" <phase duration=\"1\" state=\"ggggggggr\"/>\n",
|
|
" <phase duration=\"14\" state=\"ggggggggr\"/>\n",
|
|
" <phase duration=\"4\" state=\"ggggggggr\"/>\n",
|
|
" <phase duration=\"1\" state=\"ggggggggr\"/>\n",
|
|
" <phase duration=\"34\" state=\"ggggggggG\"/>\n",
|
|
" <phase duration=\"4\" state=\"ggggggggy\"/>\n",
|
|
" <phase duration=\"1\" state=\"ggggggggr\"/>\n",
|
|
" <phase duration=\"60\" state=\"ggggggggr\"/>\n",
|
|
" <phase duration=\"4\" state=\"ggggggggr\"/>\n",
|
|
" <phase duration=\"1\" state=\"ggggggggr\"/>\n",
|
|
" <phase duration=\"18\" state=\"ggggggggr\"/>\n",
|
|
" <phase duration=\"4\" state=\"ggggggggr\"/>\n",
|
|
" </tlLogic>\n",
|
|
"</additional>\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"SIGTABLE, strings = make_SIGTABLE(Sigtable)\n",
|
|
"display(SIGTABLE[:40])\n",
|
|
"print(strings)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"def generate_signal():\n",
|
|
" "
|
|
]
|
|
}
|
|
],
|
|
"metadata": {
|
|
"kernelspec": {
|
|
"display_name": "rts",
|
|
"language": "python",
|
|
"name": "python3"
|
|
},
|
|
"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
|
|
}
|