|
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 12,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"import pandas as pd\n",
|
|
"import numpy as numpy\n",
|
|
"import os\n",
|
|
"import sumolib\n",
|
|
"import copy\n",
|
|
"from tqdm import tqdm\n",
|
|
"from datetime import datetime"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 13,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"1704406800\n"
|
|
]
|
|
},
|
|
{
|
|
"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>inc_edge_B</th>\n",
|
|
" <th>out_edge_A</th>\n",
|
|
" <th>out_edge_B</th>\n",
|
|
" <th>move_A</th>\n",
|
|
" <th>move_B</th>\n",
|
|
" </tr>\n",
|
|
" </thead>\n",
|
|
" <tbody>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>i9</td>\n",
|
|
" <td>1704403210</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>39</td>\n",
|
|
" <td>571510152_02</td>\n",
|
|
" <td>571510152_01</td>\n",
|
|
" <td>-571510152_01</td>\n",
|
|
" <td>571510152_01.65</td>\n",
|
|
" <td>6</td>\n",
|
|
" <td>2</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>1</th>\n",
|
|
" <td>i9</td>\n",
|
|
" <td>1704403210</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>101</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>17</td>\n",
|
|
" <td>18</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>2</th>\n",
|
|
" <td>i6</td>\n",
|
|
" <td>1704403210</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>24</td>\n",
|
|
" <td>-571542115_01</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>571500535_01</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>6</td>\n",
|
|
" <td>18</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>3</th>\n",
|
|
" <td>i6</td>\n",
|
|
" <td>1704403210</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>19</td>\n",
|
|
" <td>-571542115_01</td>\n",
|
|
" <td>571500535_02.18</td>\n",
|
|
" <td>571500535_01</td>\n",
|
|
" <td>571542115_01</td>\n",
|
|
" <td>6</td>\n",
|
|
" <td>2</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>4</th>\n",
|
|
" <td>i6</td>\n",
|
|
" <td>1704403210</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>29</td>\n",
|
|
" <td>571500535_02.18</td>\n",
|
|
" <td>571500535_02.18</td>\n",
|
|
" <td>571511538_01</td>\n",
|
|
" <td>571542115_01</td>\n",
|
|
" <td>5</td>\n",
|
|
" <td>2</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",
|
|
" <td>...</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>417</th>\n",
|
|
" <td>i8</td>\n",
|
|
" <td>1704406590</td>\n",
|
|
" <td>5</td>\n",
|
|
" <td>5</td>\n",
|
|
" <td>18</td>\n",
|
|
" <td>571500583_01</td>\n",
|
|
" <td>571500583_01</td>\n",
|
|
" <td>571500617_01</td>\n",
|
|
" <td>571500569_01</td>\n",
|
|
" <td>7</td>\n",
|
|
" <td>4</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>418</th>\n",
|
|
" <td>i7</td>\n",
|
|
" <td>1704406630</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>44</td>\n",
|
|
" <td>-571511538_02</td>\n",
|
|
" <td>571542073_01</td>\n",
|
|
" <td>571542073_02</td>\n",
|
|
" <td>571511538_02</td>\n",
|
|
" <td>8</td>\n",
|
|
" <td>4</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>419</th>\n",
|
|
" <td>i7</td>\n",
|
|
" <td>1704406630</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>44</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>17</td>\n",
|
|
" <td>18</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>420</th>\n",
|
|
" <td>i7</td>\n",
|
|
" <td>1704406630</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>26</td>\n",
|
|
" <td>-571511538_02</td>\n",
|
|
" <td>571542073_01</td>\n",
|
|
" <td>571542073_02</td>\n",
|
|
" <td>571511538_02</td>\n",
|
|
" <td>8</td>\n",
|
|
" <td>4</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>421</th>\n",
|
|
" <td>i7</td>\n",
|
|
" <td>1704406630</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>26</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>17</td>\n",
|
|
" <td>18</td>\n",
|
|
" </tr>\n",
|
|
" </tbody>\n",
|
|
"</table>\n",
|
|
"<p>422 rows × 11 columns</p>\n",
|
|
"</div>"
|
|
],
|
|
"text/plain": [
|
|
" node_id start_unix phas_A phas_B duration inc_edge_A \\\n",
|
|
"0 i9 1704403210 1 1 39 571510152_02 \n",
|
|
"1 i9 1704403210 2 2 101 NaN \n",
|
|
"2 i6 1704403210 1 1 24 -571542115_01 \n",
|
|
"3 i6 1704403210 1 2 19 -571542115_01 \n",
|
|
"4 i6 1704403210 2 2 29 571500535_02.18 \n",
|
|
".. ... ... ... ... ... ... \n",
|
|
"417 i8 1704406590 5 5 18 571500583_01 \n",
|
|
"418 i7 1704406630 1 1 44 -571511538_02 \n",
|
|
"419 i7 1704406630 2 2 44 NaN \n",
|
|
"420 i7 1704406630 3 3 26 -571511538_02 \n",
|
|
"421 i7 1704406630 4 4 26 NaN \n",
|
|
"\n",
|
|
" inc_edge_B out_edge_A out_edge_B move_A move_B \n",
|
|
"0 571510152_01 -571510152_01 571510152_01.65 6 2 \n",
|
|
"1 NaN NaN NaN 17 18 \n",
|
|
"2 NaN 571500535_01 NaN 6 18 \n",
|
|
"3 571500535_02.18 571500535_01 571542115_01 6 2 \n",
|
|
"4 571500535_02.18 571511538_01 571542115_01 5 2 \n",
|
|
".. ... ... ... ... ... \n",
|
|
"417 571500583_01 571500617_01 571500569_01 7 4 \n",
|
|
"418 571542073_01 571542073_02 571511538_02 8 4 \n",
|
|
"419 NaN NaN NaN 17 18 \n",
|
|
"420 571542073_01 571542073_02 571511538_02 8 4 \n",
|
|
"421 NaN NaN NaN 17 18 \n",
|
|
"\n",
|
|
"[422 rows x 11 columns]"
|
|
]
|
|
},
|
|
"execution_count": 13,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"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 = 88 # m ranges from 26 to 287\n",
|
|
"print(fmins[m])\n",
|
|
"net = sumolib.net.readNet('../../Data/networks/SN_sample.net.xml')\n",
|
|
"inter_node = pd.read_csv('../../data/tables/inter_node.csv', index_col=0)\n",
|
|
"inter_node = inter_node[inter_node.inter_type=='parent']\n",
|
|
"histid = pd.read_csv(f'../../Data/tables/histids/histids_{fmins[m]}.csv', index_col=0)\n",
|
|
"histid = histid[histid.inter_no.isin(inter_node.inter_no.unique())]\n",
|
|
"inter2node = dict(zip(inter_node['inter_no'], inter_node['node_id']))\n",
|
|
"histid['node_id'] = histid['inter_no'].map(inter2node)\n",
|
|
"histid = histid[['node_id', 'start_unix', 'phas_A', 'phas_B', 'duration', 'inc_edge_A', 'inc_edge_B', 'out_edge_A', 'out_edge_B', 'move_A', 'move_B']]\n",
|
|
"histid = histid.reset_index(drop=True)\n",
|
|
"histid"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 14,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"['i0', 'i1', 'i2', 'i3', 'i6', 'i7', 'i8', 'i9']\n",
|
|
"[<junction id=\"i0\"/>, <junction id=\"i1\"/>, <junction id=\"i2\"/>, <junction id=\"i3\"/>, <junction id=\"i6\"/>, <junction id=\"i7\"/>, <junction id=\"i8\"/>, <junction id=\"i9\"/>]\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"sigtable = histid.copy()\n",
|
|
"node_ids = sorted(sigtable.node_id.unique())\n",
|
|
"nodes = [net.getNode(node_id) for node_id in node_ids]\n",
|
|
"print(node_ids)\n",
|
|
"print(nodes)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 15,
|
|
"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>inc_edge_B</th>\n",
|
|
" <th>out_edge_A</th>\n",
|
|
" <th>out_edge_B</th>\n",
|
|
" <th>move_A</th>\n",
|
|
" <th>move_B</th>\n",
|
|
" </tr>\n",
|
|
" </thead>\n",
|
|
" <tbody>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>i9</td>\n",
|
|
" <td>1704403210</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>39</td>\n",
|
|
" <td>571510152_02</td>\n",
|
|
" <td>571510152_01</td>\n",
|
|
" <td>-571510152_01</td>\n",
|
|
" <td>571510152_01.65</td>\n",
|
|
" <td>6</td>\n",
|
|
" <td>2</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>1</th>\n",
|
|
" <td>i9</td>\n",
|
|
" <td>1704403210</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>101</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>17</td>\n",
|
|
" <td>18</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>2</th>\n",
|
|
" <td>i6</td>\n",
|
|
" <td>1704403210</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>24</td>\n",
|
|
" <td>-571542115_01</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>571500535_01</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>6</td>\n",
|
|
" <td>18</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>3</th>\n",
|
|
" <td>i6</td>\n",
|
|
" <td>1704403210</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>19</td>\n",
|
|
" <td>-571542115_01</td>\n",
|
|
" <td>571500535_02.18</td>\n",
|
|
" <td>571500535_01</td>\n",
|
|
" <td>571542115_01</td>\n",
|
|
" <td>6</td>\n",
|
|
" <td>2</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>4</th>\n",
|
|
" <td>i6</td>\n",
|
|
" <td>1704403210</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>29</td>\n",
|
|
" <td>571500535_02.18</td>\n",
|
|
" <td>571500535_02.18</td>\n",
|
|
" <td>571511538_01</td>\n",
|
|
" <td>571542115_01</td>\n",
|
|
" <td>5</td>\n",
|
|
" <td>2</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",
|
|
" <td>...</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>417</th>\n",
|
|
" <td>i8</td>\n",
|
|
" <td>1704406590</td>\n",
|
|
" <td>5</td>\n",
|
|
" <td>5</td>\n",
|
|
" <td>18</td>\n",
|
|
" <td>571500583_01</td>\n",
|
|
" <td>571500583_01</td>\n",
|
|
" <td>571500617_01</td>\n",
|
|
" <td>571500569_01</td>\n",
|
|
" <td>7</td>\n",
|
|
" <td>4</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>418</th>\n",
|
|
" <td>i7</td>\n",
|
|
" <td>1704406630</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>44</td>\n",
|
|
" <td>-571511538_02</td>\n",
|
|
" <td>571542073_01</td>\n",
|
|
" <td>571542073_02</td>\n",
|
|
" <td>571511538_02</td>\n",
|
|
" <td>8</td>\n",
|
|
" <td>4</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>419</th>\n",
|
|
" <td>i7</td>\n",
|
|
" <td>1704406630</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>44</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>17</td>\n",
|
|
" <td>18</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>420</th>\n",
|
|
" <td>i7</td>\n",
|
|
" <td>1704406630</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>26</td>\n",
|
|
" <td>-571511538_02</td>\n",
|
|
" <td>571542073_01</td>\n",
|
|
" <td>571542073_02</td>\n",
|
|
" <td>571511538_02</td>\n",
|
|
" <td>8</td>\n",
|
|
" <td>4</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>421</th>\n",
|
|
" <td>i7</td>\n",
|
|
" <td>1704406630</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>26</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>17</td>\n",
|
|
" <td>18</td>\n",
|
|
" </tr>\n",
|
|
" </tbody>\n",
|
|
"</table>\n",
|
|
"<p>422 rows × 11 columns</p>\n",
|
|
"</div>"
|
|
],
|
|
"text/plain": [
|
|
" node_id start_unix phas_A phas_B duration inc_edge_A \\\n",
|
|
"0 i9 1704403210 1 1 39 571510152_02 \n",
|
|
"1 i9 1704403210 2 2 101 NaN \n",
|
|
"2 i6 1704403210 1 1 24 -571542115_01 \n",
|
|
"3 i6 1704403210 1 2 19 -571542115_01 \n",
|
|
"4 i6 1704403210 2 2 29 571500535_02.18 \n",
|
|
".. ... ... ... ... ... ... \n",
|
|
"417 i8 1704406590 5 5 18 571500583_01 \n",
|
|
"418 i7 1704406630 1 1 44 -571511538_02 \n",
|
|
"419 i7 1704406630 2 2 44 NaN \n",
|
|
"420 i7 1704406630 3 3 26 -571511538_02 \n",
|
|
"421 i7 1704406630 4 4 26 NaN \n",
|
|
"\n",
|
|
" inc_edge_B out_edge_A out_edge_B move_A move_B \n",
|
|
"0 571510152_01 -571510152_01 571510152_01.65 6 2 \n",
|
|
"1 NaN NaN NaN 17 18 \n",
|
|
"2 NaN 571500535_01 NaN 6 18 \n",
|
|
"3 571500535_02.18 571500535_01 571542115_01 6 2 \n",
|
|
"4 571500535_02.18 571511538_01 571542115_01 5 2 \n",
|
|
".. ... ... ... ... ... \n",
|
|
"417 571500583_01 571500617_01 571500569_01 7 4 \n",
|
|
"418 571542073_01 571542073_02 571511538_02 8 4 \n",
|
|
"419 NaN NaN NaN 17 18 \n",
|
|
"420 571542073_01 571542073_02 571511538_02 8 4 \n",
|
|
"421 NaN NaN NaN 17 18 \n",
|
|
"\n",
|
|
"[422 rows x 11 columns]"
|
|
]
|
|
},
|
|
"execution_count": 15,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"sigtable"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 16,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"i0 grrrgrrrgrrrrrgrr\n",
|
|
"i1 grrrrrrgrr\n",
|
|
"i2 rrggrrr\n",
|
|
"i3 grrrrgrrrrgrrrrgrrrr\n",
|
|
"i6 grrrgrrrrgrrgrrr\n",
|
|
"i7 rrrggrr\n",
|
|
"i8 grrrrrrrgrrrgrrr\n",
|
|
"i9 rrrr\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"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 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",
|
|
" move_A = row['move_A']\n",
|
|
" move_B = row['move_B']\n",
|
|
"\n",
|
|
" if pd.isna(inc_edge_A) or pd.isna(out_edge_A):\n",
|
|
" continue\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",
|
|
" continue\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",
|
|
"for node_id in node_ids:\n",
|
|
" print(node_id, \"\".join(node2init[node_id]))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 17,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"['g', 'r', 'r', 'r', 'g', 'r', 'r', 'r', 'r', 'g', 'r', 'r', 'g', 'r', 'r', 'r']\n",
|
|
"['G', 'r', 'r', 'r', 'g', 'r', 'r', 'r', 'r', 'g', 'r', 'r', 'g', 'r', 'r', 'r']\n",
|
|
"['g', 'r', 'r', 'r', 'g', 'r', 'r', 'r', 'r', 'g', 'r', 'r', 'g', 'r', 'r', 'r']\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"print(node2init['i6'])\n",
|
|
"state = copy.deepcopy(node2init)['i6']\n",
|
|
"state[0] = 'G'\n",
|
|
"print(state)\n",
|
|
"print(node2init['i6'])"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 28,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"2024-01-05 07:20:00\n"
|
|
]
|
|
},
|
|
{
|
|
"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",
|
|
" </tr>\n",
|
|
" </thead>\n",
|
|
" <tbody>\n",
|
|
" <tr>\n",
|
|
" <th>1</th>\n",
|
|
" <td>i6</td>\n",
|
|
" <td>1704403210</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>24</td>\n",
|
|
" <td>grrrgGGGrgrrgrrr</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>2</th>\n",
|
|
" <td>i6</td>\n",
|
|
" <td>1704403210</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>19</td>\n",
|
|
" <td>grrrgGGGrgrrgGGr</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>3</th>\n",
|
|
" <td>i6</td>\n",
|
|
" <td>1704403210</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>29</td>\n",
|
|
" <td>grrrgrrrrgrrgGGG</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>4</th>\n",
|
|
" <td>i6</td>\n",
|
|
" <td>1704403210</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>56</td>\n",
|
|
" <td>gGGGgrrrrgrrgrrr</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>5</th>\n",
|
|
" <td>i6</td>\n",
|
|
" <td>1704403210</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>22</td>\n",
|
|
" <td>grrrgrrrrgGGgrrr</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>i9</td>\n",
|
|
" <td>1704403210</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>39</td>\n",
|
|
" <td>GGGG</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>6</th>\n",
|
|
" <td>i3</td>\n",
|
|
" <td>1704403220</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>38</td>\n",
|
|
" <td>gGGGrgrrrrgGGGrgrrrr</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>7</th>\n",
|
|
" <td>i3</td>\n",
|
|
" <td>1704403220</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>39</td>\n",
|
|
" <td>grrrGgrrrrgrrrGgrrrr</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>8</th>\n",
|
|
" <td>i3</td>\n",
|
|
" <td>1704403220</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>40</td>\n",
|
|
" <td>grrrrgrrrrgrrrrgGGGG</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>9</th>\n",
|
|
" <td>i3</td>\n",
|
|
" <td>1704403220</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>23</td>\n",
|
|
" <td>grrrrgGGGGgrrrrgrrrr</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>10</th>\n",
|
|
" <td>i2</td>\n",
|
|
" <td>1704403230</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>36</td>\n",
|
|
" <td>GGggGGG</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>11</th>\n",
|
|
" <td>i2</td>\n",
|
|
" <td>1704403230</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>20</td>\n",
|
|
" <td>rrggrrr</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>12</th>\n",
|
|
" <td>i2</td>\n",
|
|
" <td>1704403230</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>26</td>\n",
|
|
" <td>rrggGGG</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>13</th>\n",
|
|
" <td>i1</td>\n",
|
|
" <td>1704403250</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>37</td>\n",
|
|
" <td>gGGGGGrgrr</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>14</th>\n",
|
|
" <td>i1</td>\n",
|
|
" <td>1704403250</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>73</td>\n",
|
|
" <td>grrGGGGgrr</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>15</th>\n",
|
|
" <td>i1</td>\n",
|
|
" <td>1704403250</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>40</td>\n",
|
|
" <td>grrrrrrgGG</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>16</th>\n",
|
|
" <td>i0</td>\n",
|
|
" <td>1704403270</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>37</td>\n",
|
|
" <td>gGGrgrrrgGGGGrgrr</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>17</th>\n",
|
|
" <td>i0</td>\n",
|
|
" <td>1704403270</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>39</td>\n",
|
|
" <td>grrGgrrrgrrrrGgrr</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>18</th>\n",
|
|
" <td>i0</td>\n",
|
|
" <td>1704403270</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>25</td>\n",
|
|
" <td>grrrgGGGgrrrrrgrr</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>19</th>\n",
|
|
" <td>i0</td>\n",
|
|
" <td>1704403270</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>30</td>\n",
|
|
" <td>grrrgGGrgrrrrrgGr</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>20</th>\n",
|
|
" <td>i0</td>\n",
|
|
" <td>1704403270</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>29</td>\n",
|
|
" <td>grrrgrrrgrrrrrgGG</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>21</th>\n",
|
|
" <td>i7</td>\n",
|
|
" <td>1704403320</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>33</td>\n",
|
|
" <td>GGrggGG</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>22</th>\n",
|
|
" <td>i7</td>\n",
|
|
" <td>1704403320</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>26</td>\n",
|
|
" <td>GGrggGG</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>23</th>\n",
|
|
" <td>i9</td>\n",
|
|
" <td>1704403350</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>39</td>\n",
|
|
" <td>GGGG</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>24</th>\n",
|
|
" <td>i3</td>\n",
|
|
" <td>1704403360</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>38</td>\n",
|
|
" <td>gGGGrgrrrrgGGGrgrrrr</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>25</th>\n",
|
|
" <td>i3</td>\n",
|
|
" <td>1704403360</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>39</td>\n",
|
|
" <td>grrrGgrrrrgrrrGgrrrr</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>26</th>\n",
|
|
" <td>i3</td>\n",
|
|
" <td>1704403360</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>40</td>\n",
|
|
" <td>grrrrgrrrrgrrrrgGGGG</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>27</th>\n",
|
|
" <td>i3</td>\n",
|
|
" <td>1704403360</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>23</td>\n",
|
|
" <td>grrrrgGGGGgrrrrgrrrr</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>28</th>\n",
|
|
" <td>i6</td>\n",
|
|
" <td>1704403360</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>24</td>\n",
|
|
" <td>grrrgGGGrgrrgrrr</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>29</th>\n",
|
|
" <td>i6</td>\n",
|
|
" <td>1704403360</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>19</td>\n",
|
|
" <td>grrrgGGGrgrrgGGr</td>\n",
|
|
" </tr>\n",
|
|
" </tbody>\n",
|
|
"</table>\n",
|
|
"</div>"
|
|
],
|
|
"text/plain": [
|
|
" node_id start_unix phase_sumo duration state\n",
|
|
"1 i6 1704403210 0 24 grrrgGGGrgrrgrrr\n",
|
|
"2 i6 1704403210 1 19 grrrgGGGrgrrgGGr\n",
|
|
"3 i6 1704403210 2 29 grrrgrrrrgrrgGGG\n",
|
|
"4 i6 1704403210 3 56 gGGGgrrrrgrrgrrr\n",
|
|
"5 i6 1704403210 4 22 grrrgrrrrgGGgrrr\n",
|
|
"0 i9 1704403210 0 39 GGGG\n",
|
|
"6 i3 1704403220 0 38 gGGGrgrrrrgGGGrgrrrr\n",
|
|
"7 i3 1704403220 1 39 grrrGgrrrrgrrrGgrrrr\n",
|
|
"8 i3 1704403220 2 40 grrrrgrrrrgrrrrgGGGG\n",
|
|
"9 i3 1704403220 3 23 grrrrgGGGGgrrrrgrrrr\n",
|
|
"10 i2 1704403230 0 36 GGggGGG\n",
|
|
"11 i2 1704403230 1 20 rrggrrr\n",
|
|
"12 i2 1704403230 2 26 rrggGGG\n",
|
|
"13 i1 1704403250 0 37 gGGGGGrgrr\n",
|
|
"14 i1 1704403250 1 73 grrGGGGgrr\n",
|
|
"15 i1 1704403250 2 40 grrrrrrgGG\n",
|
|
"16 i0 1704403270 0 37 gGGrgrrrgGGGGrgrr\n",
|
|
"17 i0 1704403270 1 39 grrGgrrrgrrrrGgrr\n",
|
|
"18 i0 1704403270 2 25 grrrgGGGgrrrrrgrr\n",
|
|
"19 i0 1704403270 3 30 grrrgGGrgrrrrrgGr\n",
|
|
"20 i0 1704403270 4 29 grrrgrrrgrrrrrgGG\n",
|
|
"21 i7 1704403320 0 33 GGrggGG\n",
|
|
"22 i7 1704403320 1 26 GGrggGG\n",
|
|
"23 i9 1704403350 0 39 GGGG\n",
|
|
"24 i3 1704403360 0 38 gGGGrgrrrrgGGGrgrrrr\n",
|
|
"25 i3 1704403360 1 39 grrrGgrrrrgrrrGgrrrr\n",
|
|
"26 i3 1704403360 2 40 grrrrgrrrrgrrrrgGGGG\n",
|
|
"27 i3 1704403360 3 23 grrrrgGGGGgrrrrgrrrr\n",
|
|
"28 i6 1704403360 0 24 grrrgGGGrgrrgrrr\n",
|
|
"29 i6 1704403360 1 19 grrrgGGGrgrrgGGr"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"sigtable = histid.copy()\n",
|
|
"sigtable['init_state'] = sigtable['node_id'].map(node2init)\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",
|
|
"\n",
|
|
" if pd.isna(inc_edge_A) or pd.isna(out_edge_A):\n",
|
|
" continue\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",
|
|
" continue\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[['node_id', 'start_unix', 'phase_sumo', 'duration', 'state']]\n",
|
|
"sigtable = sigtable.sort_values(by=['start_unix', 'node_id'])\n",
|
|
"print(datetime.fromtimestamp(fmins[m]))\n",
|
|
"display(sigtable[:30])"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 8,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"<tlLogics>\n",
|
|
" <tlLogic id=\"i6\" type=\"traffic_light\" programID=\"(1704403210, 'i6')\" offset=\"1704403210\">\n",
|
|
" <phase duration=\"24\" state=\"grrrgGGGrgrrgrrr\"/>\n",
|
|
" <phase duration=\"19\" state=\"grrrgGGGrgrrgGGr\"/>\n",
|
|
" <phase duration=\"29\" state=\"grrrgrrrrgrrgGGG\"/>\n",
|
|
" <phase duration=\"56\" state=\"gGGGgrrrrgrrgrrr\"/>\n",
|
|
" <phase duration=\"22\" state=\"grrrgrrrrgGGgrrr\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i9\" type=\"traffic_light\" programID=\"(1704403210, 'i9')\" offset=\"1704403210\">\n",
|
|
" <phase duration=\"39\" state=\"GGGG\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i3\" type=\"traffic_light\" programID=\"(1704403220, 'i3')\" offset=\"1704403220\">\n",
|
|
" <phase duration=\"38\" state=\"gGGGrgrrrrgGGGrgrrrr\"/>\n",
|
|
" <phase duration=\"39\" state=\"grrrGgrrrrgrrrGgrrrr\"/>\n",
|
|
" <phase duration=\"40\" state=\"grrrrgrrrrgrrrrgGGGG\"/>\n",
|
|
" <phase duration=\"23\" state=\"grrrrgGGGGgrrrrgrrrr\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i2\" type=\"traffic_light\" programID=\"(1704403230, 'i2')\" offset=\"1704403230\">\n",
|
|
" <phase duration=\"36\" state=\"GGggGGG\"/>\n",
|
|
" <phase duration=\"20\" state=\"rrggrrr\"/>\n",
|
|
" <phase duration=\"26\" state=\"rrggGGG\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i1\" type=\"traffic_light\" programID=\"(1704403250, 'i1')\" offset=\"1704403250\">\n",
|
|
" <phase duration=\"37\" state=\"gGGGGGrgrr\"/>\n",
|
|
" <phase duration=\"73\" state=\"grrGGGGgrr\"/>\n",
|
|
" <phase duration=\"40\" state=\"grrrrrrgGG\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i0\" type=\"traffic_light\" programID=\"(1704403270, 'i0')\" offset=\"1704403270\">\n",
|
|
" <phase duration=\"37\" state=\"gGGrgrrrgGGGGrgrr\"/>\n",
|
|
" <phase duration=\"39\" state=\"grrGgrrrgrrrrGgrr\"/>\n",
|
|
" <phase duration=\"25\" state=\"grrrgGGGgrrrrrgrr\"/>\n",
|
|
" <phase duration=\"30\" state=\"grrrgGGrgrrrrrgGr\"/>\n",
|
|
" <phase duration=\"29\" state=\"grrrgrrrgrrrrrgGG\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i7\" type=\"traffic_light\" programID=\"(1704403320, 'i7')\" offset=\"1704403320\">\n",
|
|
" <phase duration=\"33\" state=\"GGrggGG\"/>\n",
|
|
" <phase duration=\"26\" state=\"GGrggGG\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i9\" type=\"traffic_light\" programID=\"(1704403350, 'i9')\" offset=\"1704403350\">\n",
|
|
" <phase duration=\"39\" state=\"GGGG\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i3\" type=\"traffic_light\" programID=\"(1704403360, 'i3')\" offset=\"1704403360\">\n",
|
|
" <phase duration=\"38\" state=\"gGGGrgrrrrgGGGrgrrrr\"/>\n",
|
|
" <phase duration=\"39\" state=\"grrrGgrrrrgrrrGgrrrr\"/>\n",
|
|
" <phase duration=\"40\" state=\"grrrrgrrrrgrrrrgGGGG\"/>\n",
|
|
" <phase duration=\"23\" state=\"grrrrgGGGGgrrrrgrrrr\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i6\" type=\"traffic_light\" programID=\"(1704403360, 'i6')\" offset=\"1704403360\">\n",
|
|
" <phase duration=\"24\" state=\"grrrgGGGrgrrgrrr\"/>\n",
|
|
" <phase duration=\"19\" state=\"grrrgGGGrgrrgGGr\"/>\n",
|
|
" <phase duration=\"29\" state=\"grrrgrrrrgrrgGGG\"/>\n",
|
|
" <phase duration=\"56\" state=\"gGGGgrrrrgrrgrrr\"/>\n",
|
|
" <phase duration=\"22\" state=\"grrrgrrrrgGGgrrr\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i1\" type=\"traffic_light\" programID=\"(1704403400, 'i1')\" offset=\"1704403400\">\n",
|
|
" <phase duration=\"37\" state=\"gGGGGGrgrr\"/>\n",
|
|
" <phase duration=\"73\" state=\"grrGGGGgrr\"/>\n",
|
|
" <phase duration=\"40\" state=\"grrrrrrgGG\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i0\" type=\"traffic_light\" programID=\"(1704403430, 'i0')\" offset=\"1704403430\">\n",
|
|
" <phase duration=\"37\" state=\"gGGrgrrrgGGGGrgrr\"/>\n",
|
|
" <phase duration=\"39\" state=\"grrGgrrrgrrrrGgrr\"/>\n",
|
|
" <phase duration=\"25\" state=\"grrrgGGGgrrrrrgrr\"/>\n",
|
|
" <phase duration=\"30\" state=\"grrrgGGrgrrrrrgGr\"/>\n",
|
|
" <phase duration=\"29\" state=\"grrrgrrrgrrrrrgGG\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i7\" type=\"traffic_light\" programID=\"(1704403440, 'i7')\" offset=\"1704403440\">\n",
|
|
" <phase duration=\"33\" state=\"GGrggGG\"/>\n",
|
|
" <phase duration=\"26\" state=\"GGrggGG\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i9\" type=\"traffic_light\" programID=\"(1704403490, 'i9')\" offset=\"1704403490\">\n",
|
|
" <phase duration=\"39\" state=\"GGGG\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i3\" type=\"traffic_light\" programID=\"(1704403500, 'i3')\" offset=\"1704403500\">\n",
|
|
" <phase duration=\"38\" state=\"gGGGrgrrrrgGGGrgrrrr\"/>\n",
|
|
" <phase duration=\"39\" state=\"grrrGgrrrrgrrrGgrrrr\"/>\n",
|
|
" <phase duration=\"40\" state=\"grrrrgrrrrgrrrrgGGGG\"/>\n",
|
|
" <phase duration=\"23\" state=\"grrrrgGGGGgrrrrgrrrr\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i6\" type=\"traffic_light\" programID=\"(1704403510, 'i6')\" offset=\"1704403510\">\n",
|
|
" <phase duration=\"24\" state=\"grrrgGGGrgrrgrrr\"/>\n",
|
|
" <phase duration=\"19\" state=\"grrrgGGGrgrrgGGr\"/>\n",
|
|
" <phase duration=\"29\" state=\"grrrgrrrrgrrgGGG\"/>\n",
|
|
" <phase duration=\"56\" state=\"gGGGgrrrrgrrgrrr\"/>\n",
|
|
" <phase duration=\"22\" state=\"grrrgrrrrgGGgrrr\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i1\" type=\"traffic_light\" programID=\"(1704403550, 'i1')\" offset=\"1704403550\">\n",
|
|
" <phase duration=\"37\" state=\"gGGGGGrgrr\"/>\n",
|
|
" <phase duration=\"73\" state=\"grrGGGGgrr\"/>\n",
|
|
" <phase duration=\"40\" state=\"grrrrrrgGG\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i0\" type=\"traffic_light\" programID=\"(1704403590, 'i0')\" offset=\"1704403590\">\n",
|
|
" <phase duration=\"37\" state=\"gGGrgrrrgGGGGrgrr\"/>\n",
|
|
" <phase duration=\"39\" state=\"grrGgrrrgrrrrGgrr\"/>\n",
|
|
" <phase duration=\"25\" state=\"grrrgGGGgrrrrrgrr\"/>\n",
|
|
" <phase duration=\"30\" state=\"grrrgGGrgrrrrrgGr\"/>\n",
|
|
" <phase duration=\"29\" state=\"grrrgrrrgrrrrrgGG\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i9\" type=\"traffic_light\" programID=\"(1704403630, 'i9')\" offset=\"1704403630\">\n",
|
|
" <phase duration=\"39\" state=\"GGGG\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i3\" type=\"traffic_light\" programID=\"(1704403640, 'i3')\" offset=\"1704403640\">\n",
|
|
" <phase duration=\"38\" state=\"gGGGrgrrrrgGGGrgrrrr\"/>\n",
|
|
" <phase duration=\"39\" state=\"grrrGgrrrrgrrrGgrrrr\"/>\n",
|
|
" <phase duration=\"40\" state=\"grrrrgrrrrgrrrrgGGGG\"/>\n",
|
|
" <phase duration=\"23\" state=\"grrrrgGGGGgrrrrgrrrr\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i6\" type=\"traffic_light\" programID=\"(1704403660, 'i6')\" offset=\"1704403660\">\n",
|
|
" <phase duration=\"24\" state=\"grrrgGGGrgrrgrrr\"/>\n",
|
|
" <phase duration=\"19\" state=\"grrrgGGGrgrrgGGr\"/>\n",
|
|
" <phase duration=\"29\" state=\"grrrgrrrrgrrgGGG\"/>\n",
|
|
" <phase duration=\"56\" state=\"gGGGgrrrrgrrgrrr\"/>\n",
|
|
" <phase duration=\"22\" state=\"grrrgrrrrgGGgrrr\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i1\" type=\"traffic_light\" programID=\"(1704403700, 'i1')\" offset=\"1704403700\">\n",
|
|
" <phase duration=\"37\" state=\"gGGGGGrgrr\"/>\n",
|
|
" <phase duration=\"73\" state=\"grrGGGGgrr\"/>\n",
|
|
" <phase duration=\"40\" state=\"grrrrrrgGG\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i0\" type=\"traffic_light\" programID=\"(1704403750, 'i0')\" offset=\"1704403750\">\n",
|
|
" <phase duration=\"37\" state=\"gGGrgrrrgGGGGrgrr\"/>\n",
|
|
" <phase duration=\"39\" state=\"grrGgrrrgrrrrGgrr\"/>\n",
|
|
" <phase duration=\"25\" state=\"grrrgGGGgrrrrrgrr\"/>\n",
|
|
" <phase duration=\"30\" state=\"grrrgGGrgrrrrrgGr\"/>\n",
|
|
" <phase duration=\"29\" state=\"grrrgrrrgrrrrrgGG\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i9\" type=\"traffic_light\" programID=\"(1704403770, 'i9')\" offset=\"1704403770\">\n",
|
|
" <phase duration=\"39\" state=\"GGGG\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i3\" type=\"traffic_light\" programID=\"(1704403780, 'i3')\" offset=\"1704403780\">\n",
|
|
" <phase duration=\"38\" state=\"gGGGrgrrrrgGGGrgrrrr\"/>\n",
|
|
" <phase duration=\"39\" state=\"grrrGgrrrrgrrrGgrrrr\"/>\n",
|
|
" <phase duration=\"40\" state=\"grrrrgrrrrgrrrrgGGGG\"/>\n",
|
|
" <phase duration=\"23\" state=\"grrrrgGGGGgrrrrgrrrr\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i8\" type=\"traffic_light\" programID=\"(1704403810, 'i8')\" offset=\"1704403810\">\n",
|
|
" <phase duration=\"24\" state=\"grrrrrrrgGGGgrrr\"/>\n",
|
|
" <phase duration=\"24\" state=\"grrrrrrrgrrrgGGG\"/>\n",
|
|
" <phase duration=\"17\" state=\"grrrGGGrgrrrgGGr\"/>\n",
|
|
" <phase duration=\"58\" state=\"grrrGGGGgrrrgrrr\"/>\n",
|
|
" <phase duration=\"17\" state=\"gGGGrrrrgrrrgrrr\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i1\" type=\"traffic_light\" programID=\"(1704403850, 'i1')\" offset=\"1704403850\">\n",
|
|
" <phase duration=\"37\" state=\"gGGGGGrgrr\"/>\n",
|
|
" <phase duration=\"73\" state=\"grrGGGGgrr\"/>\n",
|
|
" <phase duration=\"40\" state=\"grrrrrrgGG\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i0\" type=\"traffic_light\" programID=\"(1704403910, 'i0')\" offset=\"1704403910\">\n",
|
|
" <phase duration=\"37\" state=\"gGGrgrrrgGGGGrgrr\"/>\n",
|
|
" <phase duration=\"39\" state=\"grrGgrrrgrrrrGgrr\"/>\n",
|
|
" <phase duration=\"25\" state=\"grrrgGGGgrrrrrgrr\"/>\n",
|
|
" <phase duration=\"30\" state=\"grrrgGGrgrrrrrgGr\"/>\n",
|
|
" <phase duration=\"29\" state=\"grrrgrrrgrrrrrgGG\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i9\" type=\"traffic_light\" programID=\"(1704403910, 'i9')\" offset=\"1704403910\">\n",
|
|
" <phase duration=\"39\" state=\"GGGG\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i3\" type=\"traffic_light\" programID=\"(1704403920, 'i3')\" offset=\"1704403920\">\n",
|
|
" <phase duration=\"38\" state=\"gGGGrgrrrrgGGGrgrrrr\"/>\n",
|
|
" <phase duration=\"39\" state=\"grrrGgrrrrgrrrGgrrrr\"/>\n",
|
|
" <phase duration=\"40\" state=\"grrrrgrrrrgrrrrgGGGG\"/>\n",
|
|
" <phase duration=\"23\" state=\"grrrrgGGGGgrrrrgrrrr\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i8\" type=\"traffic_light\" programID=\"(1704403950, 'i8')\" offset=\"1704403950\">\n",
|
|
" <phase duration=\"24\" state=\"grrrrrrrgGGGgrrr\"/>\n",
|
|
" <phase duration=\"24\" state=\"grrrrrrrgrrrgGGG\"/>\n",
|
|
" <phase duration=\"17\" state=\"grrrGGGrgrrrgGGr\"/>\n",
|
|
" <phase duration=\"58\" state=\"grrrGGGGgrrrgrrr\"/>\n",
|
|
" <phase duration=\"17\" state=\"gGGGrrrrgrrrgrrr\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i2\" type=\"traffic_light\" programID=\"(1704403980, 'i2')\" offset=\"1704403980\">\n",
|
|
" <phase duration=\"36\" state=\"GGggGGG\"/>\n",
|
|
" <phase duration=\"20\" state=\"rrggrrr\"/>\n",
|
|
" <phase duration=\"26\" state=\"rrggGGG\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i1\" type=\"traffic_light\" programID=\"(1704404000, 'i1')\" offset=\"1704404000\">\n",
|
|
" <phase duration=\"37\" state=\"gGGGGGrgrr\"/>\n",
|
|
" <phase duration=\"73\" state=\"grrGGGGgrr\"/>\n",
|
|
" <phase duration=\"40\" state=\"grrrrrrgGG\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i9\" type=\"traffic_light\" programID=\"(1704404050, 'i9')\" offset=\"1704404050\">\n",
|
|
" <phase duration=\"39\" state=\"GGGG\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i3\" type=\"traffic_light\" programID=\"(1704404060, 'i3')\" offset=\"1704404060\">\n",
|
|
" <phase duration=\"38\" state=\"gGGGrgrrrrgGGGrgrrrr\"/>\n",
|
|
" <phase duration=\"39\" state=\"grrrGgrrrrgrrrGgrrrr\"/>\n",
|
|
" <phase duration=\"40\" state=\"grrrrgrrrrgrrrrgGGGG\"/>\n",
|
|
" <phase duration=\"23\" state=\"grrrrgGGGGgrrrrgrrrr\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i0\" type=\"traffic_light\" programID=\"(1704404070, 'i0')\" offset=\"1704404070\">\n",
|
|
" <phase duration=\"37\" state=\"gGGrgrrrgGGGGrgrr\"/>\n",
|
|
" <phase duration=\"39\" state=\"grrGgrrrgrrrrGgrr\"/>\n",
|
|
" <phase duration=\"25\" state=\"grrrgGGGgrrrrrgrr\"/>\n",
|
|
" <phase duration=\"30\" state=\"grrrgGGrgrrrrrgGr\"/>\n",
|
|
" <phase duration=\"29\" state=\"grrrgrrrgrrrrrgGG\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i8\" type=\"traffic_light\" programID=\"(1704404090, 'i8')\" offset=\"1704404090\">\n",
|
|
" <phase duration=\"24\" state=\"grrrrrrrgGGGgrrr\"/>\n",
|
|
" <phase duration=\"24\" state=\"grrrrrrrgrrrgGGG\"/>\n",
|
|
" <phase duration=\"17\" state=\"grrrGGGrgrrrgGGr\"/>\n",
|
|
" <phase duration=\"58\" state=\"grrrGGGGgrrrgrrr\"/>\n",
|
|
" <phase duration=\"17\" state=\"gGGGrrrrgrrrgrrr\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i2\" type=\"traffic_light\" programID=\"(1704404130, 'i2')\" offset=\"1704404130\">\n",
|
|
" <phase duration=\"36\" state=\"GGggGGG\"/>\n",
|
|
" <phase duration=\"20\" state=\"rrggrrr\"/>\n",
|
|
" <phase duration=\"26\" state=\"rrggGGG\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i1\" type=\"traffic_light\" programID=\"(1704404150, 'i1')\" offset=\"1704404150\">\n",
|
|
" <phase duration=\"37\" state=\"gGGGGGrgrr\"/>\n",
|
|
" <phase duration=\"73\" state=\"grrGGGGgrr\"/>\n",
|
|
" <phase duration=\"40\" state=\"grrrrrrgGG\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i3\" type=\"traffic_light\" programID=\"(1704404200, 'i3')\" offset=\"1704404200\">\n",
|
|
" <phase duration=\"38\" state=\"gGGGrgrrrrgGGGrgrrrr\"/>\n",
|
|
" <phase duration=\"39\" state=\"grrrGgrrrrgrrrGgrrrr\"/>\n",
|
|
" <phase duration=\"40\" state=\"grrrrgrrrrgrrrrgGGGG\"/>\n",
|
|
" <phase duration=\"23\" state=\"grrrrgGGGGgrrrrgrrrr\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i8\" type=\"traffic_light\" programID=\"(1704404230, 'i8')\" offset=\"1704404230\">\n",
|
|
" <phase duration=\"24\" state=\"grrrrrrrgGGGgrrr\"/>\n",
|
|
" <phase duration=\"24\" state=\"grrrrrrrgrrrgGGG\"/>\n",
|
|
" <phase duration=\"17\" state=\"grrrGGGrgrrrgGGr\"/>\n",
|
|
" <phase duration=\"58\" state=\"grrrGGGGgrrrgrrr\"/>\n",
|
|
" <phase duration=\"17\" state=\"gGGGrrrrgrrrgrrr\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i2\" type=\"traffic_light\" programID=\"(1704404280, 'i2')\" offset=\"1704404280\">\n",
|
|
" <phase duration=\"36\" state=\"GGggGGG\"/>\n",
|
|
" <phase duration=\"20\" state=\"rrggrrr\"/>\n",
|
|
" <phase duration=\"26\" state=\"rrggGGG\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i1\" type=\"traffic_light\" programID=\"(1704404300, 'i1')\" offset=\"1704404300\">\n",
|
|
" <phase duration=\"37\" state=\"gGGGGGrgrr\"/>\n",
|
|
" <phase duration=\"73\" state=\"grrGGGGgrr\"/>\n",
|
|
" <phase duration=\"40\" state=\"grrrrrrgGG\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i3\" type=\"traffic_light\" programID=\"(1704404340, 'i3')\" offset=\"1704404340\">\n",
|
|
" <phase duration=\"38\" state=\"gGGGrgrrrrgGGGrgrrrr\"/>\n",
|
|
" <phase duration=\"39\" state=\"grrrGgrrrrgrrrGgrrrr\"/>\n",
|
|
" <phase duration=\"40\" state=\"grrrrgrrrrgrrrrgGGGG\"/>\n",
|
|
" <phase duration=\"23\" state=\"grrrrgGGGGgrrrrgrrrr\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i8\" type=\"traffic_light\" programID=\"(1704404370, 'i8')\" offset=\"1704404370\">\n",
|
|
" <phase duration=\"24\" state=\"grrrrrrrgGGGgrrr\"/>\n",
|
|
" <phase duration=\"24\" state=\"grrrrrrrgrrrgGGG\"/>\n",
|
|
" <phase duration=\"17\" state=\"grrrGGGrgrrrgGGr\"/>\n",
|
|
" <phase duration=\"58\" state=\"grrrGGGGgrrrgrrr\"/>\n",
|
|
" <phase duration=\"17\" state=\"gGGGrrrrgrrrgrrr\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i2\" type=\"traffic_light\" programID=\"(1704404430, 'i2')\" offset=\"1704404430\">\n",
|
|
" <phase duration=\"36\" state=\"GGggGGG\"/>\n",
|
|
" <phase duration=\"20\" state=\"rrggrrr\"/>\n",
|
|
" <phase duration=\"26\" state=\"rrggGGG\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i1\" type=\"traffic_light\" programID=\"(1704404450, 'i1')\" offset=\"1704404450\">\n",
|
|
" <phase duration=\"37\" state=\"gGGGGGrgrr\"/>\n",
|
|
" <phase duration=\"73\" state=\"grrGGGGgrr\"/>\n",
|
|
" <phase duration=\"40\" state=\"grrrrrrgGG\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i3\" type=\"traffic_light\" programID=\"(1704404480, 'i3')\" offset=\"1704404480\">\n",
|
|
" <phase duration=\"38\" state=\"gGGGrgrrrrgGGGrgrrrr\"/>\n",
|
|
" <phase duration=\"39\" state=\"grrrGgrrrrgrrrGgrrrr\"/>\n",
|
|
" <phase duration=\"40\" state=\"grrrrgrrrrgrrrrgGGGG\"/>\n",
|
|
" <phase duration=\"23\" state=\"grrrrgGGGGgrrrrgrrrr\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i8\" type=\"traffic_light\" programID=\"(1704404510, 'i8')\" offset=\"1704404510\">\n",
|
|
" <phase duration=\"24\" state=\"grrrrrrrgGGGgrrr\"/>\n",
|
|
" <phase duration=\"24\" state=\"grrrrrrrgrrrgGGG\"/>\n",
|
|
" <phase duration=\"17\" state=\"grrrGGGrgrrrgGGr\"/>\n",
|
|
" <phase duration=\"58\" state=\"grrrGGGGgrrrgrrr\"/>\n",
|
|
" <phase duration=\"17\" state=\"gGGGrrrrgrrrgrrr\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i2\" type=\"traffic_light\" programID=\"(1704404580, 'i2')\" offset=\"1704404580\">\n",
|
|
" <phase duration=\"36\" state=\"GGggGGG\"/>\n",
|
|
" <phase duration=\"20\" state=\"rrggrrr\"/>\n",
|
|
" <phase duration=\"26\" state=\"rrggGGG\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i1\" type=\"traffic_light\" programID=\"(1704404600, 'i1')\" offset=\"1704404600\">\n",
|
|
" <phase duration=\"37\" state=\"gGGGGGrgrr\"/>\n",
|
|
" <phase duration=\"73\" state=\"grrGGGGgrr\"/>\n",
|
|
" <phase duration=\"40\" state=\"grrrrrrgGG\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i8\" type=\"traffic_light\" programID=\"(1704404650, 'i8')\" offset=\"1704404650\">\n",
|
|
" <phase duration=\"24\" state=\"grrrrrrrgGGGgrrr\"/>\n",
|
|
" <phase duration=\"24\" state=\"grrrrrrrgrrrgGGG\"/>\n",
|
|
" <phase duration=\"17\" state=\"grrrGGGrgrrrgGGr\"/>\n",
|
|
" <phase duration=\"58\" state=\"grrrGGGGgrrrgrrr\"/>\n",
|
|
" <phase duration=\"17\" state=\"gGGGrrrrgrrrgrrr\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i6\" type=\"traffic_light\" programID=\"(1704404710, 'i6')\" offset=\"1704404710\">\n",
|
|
" <phase duration=\"24\" state=\"grrrgGGGrgrrgrrr\"/>\n",
|
|
" <phase duration=\"19\" state=\"grrrgGGGrgrrgGGr\"/>\n",
|
|
" <phase duration=\"29\" state=\"grrrgrrrrgrrgGGG\"/>\n",
|
|
" <phase duration=\"56\" state=\"gGGGgrrrrgrrgrrr\"/>\n",
|
|
" <phase duration=\"22\" state=\"grrrgrrrrgGGgrrr\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i2\" type=\"traffic_light\" programID=\"(1704404730, 'i2')\" offset=\"1704404730\">\n",
|
|
" <phase duration=\"36\" state=\"GGggGGG\"/>\n",
|
|
" <phase duration=\"20\" state=\"rrggrrr\"/>\n",
|
|
" <phase duration=\"26\" state=\"rrggGGG\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i1\" type=\"traffic_light\" programID=\"(1704404750, 'i1')\" offset=\"1704404750\">\n",
|
|
" <phase duration=\"37\" state=\"gGGGGGrgrr\"/>\n",
|
|
" <phase duration=\"73\" state=\"grrGGGGgrr\"/>\n",
|
|
" <phase duration=\"40\" state=\"grrrrrrgGG\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i8\" type=\"traffic_light\" programID=\"(1704404790, 'i8')\" offset=\"1704404790\">\n",
|
|
" <phase duration=\"24\" state=\"grrrrrrrgGGGgrrr\"/>\n",
|
|
" <phase duration=\"24\" state=\"grrrrrrrgrrrgGGG\"/>\n",
|
|
" <phase duration=\"17\" state=\"grrrGGGrgrrrgGGr\"/>\n",
|
|
" <phase duration=\"58\" state=\"grrrGGGGgrrrgrrr\"/>\n",
|
|
" <phase duration=\"17\" state=\"gGGGrrrrgrrrgrrr\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i2\" type=\"traffic_light\" programID=\"(1704404880, 'i2')\" offset=\"1704404880\">\n",
|
|
" <phase duration=\"36\" state=\"GGggGGG\"/>\n",
|
|
" <phase duration=\"20\" state=\"rrggrrr\"/>\n",
|
|
" <phase duration=\"26\" state=\"rrggGGG\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i1\" type=\"traffic_light\" programID=\"(1704404900, 'i1')\" offset=\"1704404900\">\n",
|
|
" <phase duration=\"37\" state=\"gGGGGGrgrr\"/>\n",
|
|
" <phase duration=\"73\" state=\"grrGGGGgrr\"/>\n",
|
|
" <phase duration=\"40\" state=\"grrrrrrgGG\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i3\" type=\"traffic_light\" programID=\"(1704404900, 'i3')\" offset=\"1704404900\">\n",
|
|
" <phase duration=\"38\" state=\"gGGGrgrrrrgGGGrgrrrr\"/>\n",
|
|
" <phase duration=\"39\" state=\"grrrGgrrrrgrrrGgrrrr\"/>\n",
|
|
" <phase duration=\"40\" state=\"grrrrgrrrrgrrrrgGGGG\"/>\n",
|
|
" <phase duration=\"23\" state=\"grrrrgGGGGgrrrrgrrrr\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i8\" type=\"traffic_light\" programID=\"(1704404930, 'i8')\" offset=\"1704404930\">\n",
|
|
" <phase duration=\"24\" state=\"grrrrrrrgGGGgrrr\"/>\n",
|
|
" <phase duration=\"24\" state=\"grrrrrrrgrrrgGGG\"/>\n",
|
|
" <phase duration=\"17\" state=\"grrrGGGrgrrrgGGr\"/>\n",
|
|
" <phase duration=\"58\" state=\"grrrGGGGgrrrgrrr\"/>\n",
|
|
" <phase duration=\"17\" state=\"gGGGrrrrgrrrgrrr\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i3\" type=\"traffic_light\" programID=\"(1704405040, 'i3')\" offset=\"1704405040\">\n",
|
|
" <phase duration=\"38\" state=\"gGGGrgrrrrgGGGrgrrrr\"/>\n",
|
|
" <phase duration=\"39\" state=\"grrrGgrrrrgrrrGgrrrr\"/>\n",
|
|
" <phase duration=\"40\" state=\"grrrrgrrrrgrrrrgGGGG\"/>\n",
|
|
" <phase duration=\"23\" state=\"grrrrgGGGGgrrrrgrrrr\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i8\" type=\"traffic_light\" programID=\"(1704405070, 'i8')\" offset=\"1704405070\">\n",
|
|
" <phase duration=\"24\" state=\"grrrrrrrgGGGgrrr\"/>\n",
|
|
" <phase duration=\"24\" state=\"grrrrrrrgrrrgGGG\"/>\n",
|
|
" <phase duration=\"17\" state=\"grrrGGGrgrrrgGGr\"/>\n",
|
|
" <phase duration=\"58\" state=\"grrrGGGGgrrrgrrr\"/>\n",
|
|
" <phase duration=\"17\" state=\"gGGGrrrrgrrrgrrr\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i6\" type=\"traffic_light\" programID=\"(1704405160, 'i6')\" offset=\"1704405160\">\n",
|
|
" <phase duration=\"24\" state=\"grrrgGGGrgrrgrrr\"/>\n",
|
|
" <phase duration=\"19\" state=\"grrrgGGGrgrrgGGr\"/>\n",
|
|
" <phase duration=\"29\" state=\"grrrgrrrrgrrgGGG\"/>\n",
|
|
" <phase duration=\"56\" state=\"gGGGgrrrrgrrgrrr\"/>\n",
|
|
" <phase duration=\"22\" state=\"grrrgrrrrgGGgrrr\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i8\" type=\"traffic_light\" programID=\"(1704405210, 'i8')\" offset=\"1704405210\">\n",
|
|
" <phase duration=\"24\" state=\"grrrrrrrgGGGgrrr\"/>\n",
|
|
" <phase duration=\"24\" state=\"grrrrrrrgrrrgGGG\"/>\n",
|
|
" <phase duration=\"17\" state=\"grrrGGGrgrrrgGGr\"/>\n",
|
|
" <phase duration=\"58\" state=\"grrrGGGGgrrrgrrr\"/>\n",
|
|
" <phase duration=\"17\" state=\"gGGGrrrrgrrrgrrr\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i6\" type=\"traffic_light\" programID=\"(1704405310, 'i6')\" offset=\"1704405310\">\n",
|
|
" <phase duration=\"24\" state=\"grrrgGGGrgrrgrrr\"/>\n",
|
|
" <phase duration=\"19\" state=\"grrrgGGGrgrrgGGr\"/>\n",
|
|
" <phase duration=\"29\" state=\"grrrgrrrrgrrgGGG\"/>\n",
|
|
" <phase duration=\"56\" state=\"gGGGgrrrrgrrgrrr\"/>\n",
|
|
" <phase duration=\"22\" state=\"grrrgrrrrgGGgrrr\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i2\" type=\"traffic_light\" programID=\"(1704405330, 'i2')\" offset=\"1704405330\">\n",
|
|
" <phase duration=\"36\" state=\"GGggGGG\"/>\n",
|
|
" <phase duration=\"20\" state=\"rrggrrr\"/>\n",
|
|
" <phase duration=\"26\" state=\"rrggGGG\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i1\" type=\"traffic_light\" programID=\"(1704405350, 'i1')\" offset=\"1704405350\">\n",
|
|
" <phase duration=\"37\" state=\"gGGGGGrgrr\"/>\n",
|
|
" <phase duration=\"73\" state=\"grrGGGGgrr\"/>\n",
|
|
" <phase duration=\"40\" state=\"grrrrrrgGG\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i3\" type=\"traffic_light\" programID=\"(1704405460, 'i3')\" offset=\"1704405460\">\n",
|
|
" <phase duration=\"38\" state=\"gGGGrgrrrrgGGGrgrrrr\"/>\n",
|
|
" <phase duration=\"39\" state=\"grrrGgrrrrgrrrGgrrrr\"/>\n",
|
|
" <phase duration=\"40\" state=\"grrrrgrrrrgrrrrgGGGG\"/>\n",
|
|
" <phase duration=\"23\" state=\"grrrrgGGGGgrrrrgrrrr\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i9\" type=\"traffic_light\" programID=\"(1704405550, 'i9')\" offset=\"1704405550\">\n",
|
|
" <phase duration=\"47\" state=\"GGGG\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i3\" type=\"traffic_light\" programID=\"(1704405600, 'i3')\" offset=\"1704405600\">\n",
|
|
" <phase duration=\"38\" state=\"gGGGrgrrrrgGGGrgrrrr\"/>\n",
|
|
" <phase duration=\"39\" state=\"grrrGgrrrrgrrrGgrrrr\"/>\n",
|
|
" <phase duration=\"40\" state=\"grrrrgrrrrgrrrrgGGGG\"/>\n",
|
|
" <phase duration=\"0\" state=\"grrrrgGGGGgrrrrgrrrr\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i8\" type=\"traffic_light\" programID=\"(1704405630, 'i8')\" offset=\"1704405630\">\n",
|
|
" <phase duration=\"30\" state=\"grrrrrrrgGGGgrrr\"/>\n",
|
|
" <phase duration=\"36\" state=\"grrrrrrrgrrrgGGG\"/>\n",
|
|
" <phase duration=\"18\" state=\"grrrGGGrgrrrgGGr\"/>\n",
|
|
" <phase duration=\"58\" state=\"grrrGGGGgrrrgrrr\"/>\n",
|
|
" <phase duration=\"18\" state=\"gGGGrrrrgrrrgrrr\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i9\" type=\"traffic_light\" programID=\"(1704405713, 'i9')\" offset=\"1704405713\">\n",
|
|
" <phase duration=\"45\" state=\"GGGG\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i3\" type=\"traffic_light\" programID=\"(1704405740, 'i3')\" offset=\"1704405740\">\n",
|
|
" <phase duration=\"38\" state=\"gGGGrgrrrrgGGGrgrrrr\"/>\n",
|
|
" <phase duration=\"39\" state=\"grrrGgrrrrgrrrGgrrrr\"/>\n",
|
|
" <phase duration=\"42\" state=\"grrrrgrrrrgrrrrgGGGG\"/>\n",
|
|
" <phase duration=\"21\" state=\"grrrrgGGGGgrrrrgrrrr\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i6\" type=\"traffic_light\" programID=\"(1704405780, 'i6')\" offset=\"1704405780\">\n",
|
|
" <phase duration=\"24\" state=\"grrrgGGGrgrrgrrr\"/>\n",
|
|
" <phase duration=\"19\" state=\"grrrgGGGrgrrgGGr\"/>\n",
|
|
" <phase duration=\"39\" state=\"grrrgrrrrgrrgGGG\"/>\n",
|
|
" <phase duration=\"65\" state=\"gGGGgrrrrgrrgrrr\"/>\n",
|
|
" <phase duration=\"23\" state=\"grrrgrrrrgGGgrrr\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i7\" type=\"traffic_light\" programID=\"(1704405790, 'i7')\" offset=\"1704405790\">\n",
|
|
" <phase duration=\"44\" state=\"GGrggGG\"/>\n",
|
|
" <phase duration=\"26\" state=\"GGrggGG\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i8\" type=\"traffic_light\" programID=\"(1704405790, 'i8')\" offset=\"1704405790\">\n",
|
|
" <phase duration=\"30\" state=\"grrrrrrrgGGGgrrr\"/>\n",
|
|
" <phase duration=\"36\" state=\"grrrrrrrgrrrgGGG\"/>\n",
|
|
" <phase duration=\"18\" state=\"grrrGGGrgrrrgGGr\"/>\n",
|
|
" <phase duration=\"58\" state=\"grrrGGGGgrrrgrrr\"/>\n",
|
|
" <phase duration=\"18\" state=\"gGGGrrrrgrrrgrrr\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i2\" type=\"traffic_light\" programID=\"(1704405800, 'i2')\" offset=\"1704405800\">\n",
|
|
" <phase duration=\"40\" state=\"GGggGGG\"/>\n",
|
|
" <phase duration=\"25\" state=\"rrggrrr\"/>\n",
|
|
" <phase duration=\"34\" state=\"rrggGGG\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i1\" type=\"traffic_light\" programID=\"(1704405820, 'i1')\" offset=\"1704405820\">\n",
|
|
" <phase duration=\"37\" state=\"gGGGGGrgrr\"/>\n",
|
|
" <phase duration=\"93\" state=\"grrGGGGgrr\"/>\n",
|
|
" <phase duration=\"40\" state=\"grrrrrrgGG\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i9\" type=\"traffic_light\" programID=\"(1704405870, 'i9')\" offset=\"1704405870\">\n",
|
|
" <phase duration=\"52\" state=\"GGGG\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i3\" type=\"traffic_light\" programID=\"(1704405900, 'i3')\" offset=\"1704405900\">\n",
|
|
" <phase duration=\"38\" state=\"gGGGrgrrrrgGGGrgrrrr\"/>\n",
|
|
" <phase duration=\"39\" state=\"grrrGgrrrrgrrrGgrrrr\"/>\n",
|
|
" <phase duration=\"42\" state=\"grrrrgrrrrgrrrrgGGGG\"/>\n",
|
|
" <phase duration=\"21\" state=\"grrrrgGGGGgrrrrgrrrr\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i7\" type=\"traffic_light\" programID=\"(1704405930, 'i7')\" offset=\"1704405930\">\n",
|
|
" <phase duration=\"44\" state=\"GGrggGG\"/>\n",
|
|
" <phase duration=\"26\" state=\"GGrggGG\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i6\" type=\"traffic_light\" programID=\"(1704405950, 'i6')\" offset=\"1704405950\">\n",
|
|
" <phase duration=\"24\" state=\"grrrgGGGrgrrgrrr\"/>\n",
|
|
" <phase duration=\"19\" state=\"grrrgGGGrgrrgGGr\"/>\n",
|
|
" <phase duration=\"39\" state=\"grrrgrrrrgrrgGGG\"/>\n",
|
|
" <phase duration=\"65\" state=\"gGGGgrrrrgrrgrrr\"/>\n",
|
|
" <phase duration=\"23\" state=\"grrrgrrrrgGGgrrr\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i8\" type=\"traffic_light\" programID=\"(1704405950, 'i8')\" offset=\"1704405950\">\n",
|
|
" <phase duration=\"30\" state=\"grrrrrrrgGGGgrrr\"/>\n",
|
|
" <phase duration=\"36\" state=\"grrrrrrrgrrrgGGG\"/>\n",
|
|
" <phase duration=\"18\" state=\"grrrGGGrgrrrgGGr\"/>\n",
|
|
" <phase duration=\"58\" state=\"grrrGGGGgrrrgrrr\"/>\n",
|
|
" <phase duration=\"18\" state=\"gGGGrrrrgrrrgrrr\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i2\" type=\"traffic_light\" programID=\"(1704405970, 'i2')\" offset=\"1704405970\">\n",
|
|
" <phase duration=\"40\" state=\"GGggGGG\"/>\n",
|
|
" <phase duration=\"25\" state=\"rrggrrr\"/>\n",
|
|
" <phase duration=\"34\" state=\"rrggGGG\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i1\" type=\"traffic_light\" programID=\"(1704405990, 'i1')\" offset=\"1704405990\">\n",
|
|
" <phase duration=\"37\" state=\"gGGGGGrgrr\"/>\n",
|
|
" <phase duration=\"93\" state=\"grrGGGGgrr\"/>\n",
|
|
" <phase duration=\"40\" state=\"grrrrrrgGG\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i9\" type=\"traffic_light\" programID=\"(1704406050, 'i9')\" offset=\"1704406050\">\n",
|
|
" <phase duration=\"46\" state=\"GGGG\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i3\" type=\"traffic_light\" programID=\"(1704406060, 'i3')\" offset=\"1704406060\">\n",
|
|
" <phase duration=\"38\" state=\"gGGGrgrrrrgGGGrgrrrr\"/>\n",
|
|
" <phase duration=\"39\" state=\"grrrGgrrrrgrrrGgrrrr\"/>\n",
|
|
" <phase duration=\"42\" state=\"grrrrgrrrrgrrrrgGGGG\"/>\n",
|
|
" <phase duration=\"21\" state=\"grrrrgGGGGgrrrrgrrrr\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i7\" type=\"traffic_light\" programID=\"(1704406070, 'i7')\" offset=\"1704406070\">\n",
|
|
" <phase duration=\"44\" state=\"GGrggGG\"/>\n",
|
|
" <phase duration=\"26\" state=\"GGrggGG\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i8\" type=\"traffic_light\" programID=\"(1704406110, 'i8')\" offset=\"1704406110\">\n",
|
|
" <phase duration=\"30\" state=\"grrrrrrrgGGGgrrr\"/>\n",
|
|
" <phase duration=\"36\" state=\"grrrrrrrgrrrgGGG\"/>\n",
|
|
" <phase duration=\"18\" state=\"grrrGGGrgrrrgGGr\"/>\n",
|
|
" <phase duration=\"58\" state=\"grrrGGGGgrrrgrrr\"/>\n",
|
|
" <phase duration=\"18\" state=\"gGGGrrrrgrrrgrrr\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i6\" type=\"traffic_light\" programID=\"(1704406120, 'i6')\" offset=\"1704406120\">\n",
|
|
" <phase duration=\"24\" state=\"grrrgGGGrgrrgrrr\"/>\n",
|
|
" <phase duration=\"19\" state=\"grrrgGGGrgrrgGGr\"/>\n",
|
|
" <phase duration=\"39\" state=\"grrrgrrrrgrrgGGG\"/>\n",
|
|
" <phase duration=\"65\" state=\"gGGGgrrrrgrrgrrr\"/>\n",
|
|
" <phase duration=\"23\" state=\"grrrgrrrrgGGgrrr\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i2\" type=\"traffic_light\" programID=\"(1704406140, 'i2')\" offset=\"1704406140\">\n",
|
|
" <phase duration=\"40\" state=\"GGggGGG\"/>\n",
|
|
" <phase duration=\"25\" state=\"rrggrrr\"/>\n",
|
|
" <phase duration=\"34\" state=\"rrggGGG\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i1\" type=\"traffic_light\" programID=\"(1704406160, 'i1')\" offset=\"1704406160\">\n",
|
|
" <phase duration=\"37\" state=\"gGGGGGrgrr\"/>\n",
|
|
" <phase duration=\"93\" state=\"grrGGGGgrr\"/>\n",
|
|
" <phase duration=\"40\" state=\"grrrrrrgGG\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i7\" type=\"traffic_light\" programID=\"(1704406210, 'i7')\" offset=\"1704406210\">\n",
|
|
" <phase duration=\"44\" state=\"GGrggGG\"/>\n",
|
|
" <phase duration=\"26\" state=\"GGrggGG\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i9\" type=\"traffic_light\" programID=\"(1704406210, 'i9')\" offset=\"1704406210\">\n",
|
|
" <phase duration=\"46\" state=\"GGGG\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i3\" type=\"traffic_light\" programID=\"(1704406220, 'i3')\" offset=\"1704406220\">\n",
|
|
" <phase duration=\"38\" state=\"gGGGrgrrrrgGGGrgrrrr\"/>\n",
|
|
" <phase duration=\"39\" state=\"grrrGgrrrrgrrrGgrrrr\"/>\n",
|
|
" <phase duration=\"42\" state=\"grrrrgrrrrgrrrrgGGGG\"/>\n",
|
|
" <phase duration=\"21\" state=\"grrrrgGGGGgrrrrgrrrr\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i8\" type=\"traffic_light\" programID=\"(1704406270, 'i8')\" offset=\"1704406270\">\n",
|
|
" <phase duration=\"30\" state=\"grrrrrrrgGGGgrrr\"/>\n",
|
|
" <phase duration=\"36\" state=\"grrrrrrrgrrrgGGG\"/>\n",
|
|
" <phase duration=\"18\" state=\"grrrGGGrgrrrgGGr\"/>\n",
|
|
" <phase duration=\"58\" state=\"grrrGGGGgrrrgrrr\"/>\n",
|
|
" <phase duration=\"18\" state=\"gGGGrrrrgrrrgrrr\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i2\" type=\"traffic_light\" programID=\"(1704406310, 'i2')\" offset=\"1704406310\">\n",
|
|
" <phase duration=\"40\" state=\"GGggGGG\"/>\n",
|
|
" <phase duration=\"25\" state=\"rrggrrr\"/>\n",
|
|
" <phase duration=\"34\" state=\"rrggGGG\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i1\" type=\"traffic_light\" programID=\"(1704406330, 'i1')\" offset=\"1704406330\">\n",
|
|
" <phase duration=\"37\" state=\"gGGGGGrgrr\"/>\n",
|
|
" <phase duration=\"93\" state=\"grrGGGGgrr\"/>\n",
|
|
" <phase duration=\"40\" state=\"grrrrrrgGG\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i7\" type=\"traffic_light\" programID=\"(1704406350, 'i7')\" offset=\"1704406350\">\n",
|
|
" <phase duration=\"44\" state=\"GGrggGG\"/>\n",
|
|
" <phase duration=\"26\" state=\"GGrggGG\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i9\" type=\"traffic_light\" programID=\"(1704406370, 'i9')\" offset=\"1704406370\">\n",
|
|
" <phase duration=\"46\" state=\"GGGG\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i3\" type=\"traffic_light\" programID=\"(1704406380, 'i3')\" offset=\"1704406380\">\n",
|
|
" <phase duration=\"38\" state=\"gGGGrgrrrrgGGGrgrrrr\"/>\n",
|
|
" <phase duration=\"39\" state=\"grrrGgrrrrgrrrGgrrrr\"/>\n",
|
|
" <phase duration=\"42\" state=\"grrrrgrrrrgrrrrgGGGG\"/>\n",
|
|
" <phase duration=\"21\" state=\"grrrrgGGGGgrrrrgrrrr\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i8\" type=\"traffic_light\" programID=\"(1704406430, 'i8')\" offset=\"1704406430\">\n",
|
|
" <phase duration=\"30\" state=\"grrrrrrrgGGGgrrr\"/>\n",
|
|
" <phase duration=\"36\" state=\"grrrrrrrgrrrgGGG\"/>\n",
|
|
" <phase duration=\"18\" state=\"grrrGGGrgrrrgGGr\"/>\n",
|
|
" <phase duration=\"58\" state=\"grrrGGGGgrrrgrrr\"/>\n",
|
|
" <phase duration=\"18\" state=\"gGGGrrrrgrrrgrrr\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i2\" type=\"traffic_light\" programID=\"(1704406480, 'i2')\" offset=\"1704406480\">\n",
|
|
" <phase duration=\"40\" state=\"GGggGGG\"/>\n",
|
|
" <phase duration=\"25\" state=\"rrggrrr\"/>\n",
|
|
" <phase duration=\"34\" state=\"rrggGGG\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i7\" type=\"traffic_light\" programID=\"(1704406490, 'i7')\" offset=\"1704406490\">\n",
|
|
" <phase duration=\"44\" state=\"GGrggGG\"/>\n",
|
|
" <phase duration=\"26\" state=\"GGrggGG\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i1\" type=\"traffic_light\" programID=\"(1704406500, 'i1')\" offset=\"1704406500\">\n",
|
|
" <phase duration=\"37\" state=\"gGGGGGrgrr\"/>\n",
|
|
" <phase duration=\"93\" state=\"grrGGGGgrr\"/>\n",
|
|
" <phase duration=\"40\" state=\"grrrrrrgGG\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i3\" type=\"traffic_light\" programID=\"(1704406540, 'i3')\" offset=\"1704406540\">\n",
|
|
" <phase duration=\"38\" state=\"gGGGrgrrrrgGGGrgrrrr\"/>\n",
|
|
" <phase duration=\"39\" state=\"grrrGgrrrrgrrrGgrrrr\"/>\n",
|
|
" <phase duration=\"42\" state=\"grrrrgrrrrgrrrrgGGGG\"/>\n",
|
|
" <phase duration=\"21\" state=\"grrrrgGGGGgrrrrgrrrr\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i8\" type=\"traffic_light\" programID=\"(1704406590, 'i8')\" offset=\"1704406590\">\n",
|
|
" <phase duration=\"30\" state=\"grrrrrrrgGGGgrrr\"/>\n",
|
|
" <phase duration=\"36\" state=\"grrrrrrrgrrrgGGG\"/>\n",
|
|
" <phase duration=\"18\" state=\"grrrGGGrgrrrgGGr\"/>\n",
|
|
" <phase duration=\"58\" state=\"grrrGGGGgrrrgrrr\"/>\n",
|
|
" <phase duration=\"18\" state=\"gGGGrrrrgrrrgrrr\"/>\n",
|
|
" </tlLogic>\n",
|
|
" <tlLogic id=\"i7\" type=\"traffic_light\" programID=\"(1704406630, 'i7')\" offset=\"1704406630\">\n",
|
|
" <phase duration=\"44\" state=\"GGrggGG\"/>\n",
|
|
" <phase duration=\"26\" state=\"GGrggGG\"/>\n",
|
|
" </tlLogic>\n",
|
|
"</tlLogics>\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"strings = ['<tlLogics>\\n']\n",
|
|
"for key, group in sigtable.groupby(['start_unix', 'node_id']):\n",
|
|
" start_unix = key[0]\n",
|
|
" node_id = key[1]\n",
|
|
" strings.append(f' <tlLogic id=\"{node_id}\" type=\"traffic_light\" programID=\"{key}\" offset=\"{start_unix}\">\\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('</tlLogics>')\n",
|
|
"strings = ''.join(strings)\n",
|
|
"# 저장\n",
|
|
"path_output = '../../Data/networks/SN_sample.tll.xml'\n",
|
|
"with open(path_output, 'w') as f:\n",
|
|
" f.write(strings)\n",
|
|
"print(strings)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 9,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"ename": "FileNotFoundError",
|
|
"evalue": "[Errno 2] No such file or directory: 'one_cycle.csv'",
|
|
"output_type": "error",
|
|
"traceback": [
|
|
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
|
|
"\u001b[1;31mFileNotFoundError\u001b[0m Traceback (most recent call last)",
|
|
"Cell \u001b[1;32mIn[9], line 3\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[38;5;28;01mimport\u001b[39;00m \u001b[38;5;21;01mpandas\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m \u001b[38;5;21;01mpd\u001b[39;00m\n\u001b[0;32m 2\u001b[0m path \u001b[38;5;241m=\u001b[39m \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mone_cycle.csv\u001b[39m\u001b[38;5;124m'\u001b[39m\n\u001b[1;32m----> 3\u001b[0m df \u001b[38;5;241m=\u001b[39m \u001b[43mpd\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mread_csv\u001b[49m\u001b[43m(\u001b[49m\u001b[43mpath\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 5\u001b[0m \u001b[38;5;66;03m# 적당히 지정하세요\u001b[39;00m\n\u001b[0;32m 6\u001b[0m node_id \u001b[38;5;241m=\u001b[39m df[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mnode_id\u001b[39m\u001b[38;5;124m'\u001b[39m][\u001b[38;5;241m0\u001b[39m]\n",
|
|
"File \u001b[1;32mc:\\Github\\SNITS_RealTimeSignals\\rts\\lib\\site-packages\\pandas\\io\\parsers\\readers.py:912\u001b[0m, in \u001b[0;36mread_csv\u001b[1;34m(filepath_or_buffer, sep, delimiter, header, names, index_col, usecols, dtype, engine, converters, true_values, false_values, skipinitialspace, skiprows, skipfooter, nrows, na_values, keep_default_na, na_filter, verbose, skip_blank_lines, parse_dates, infer_datetime_format, keep_date_col, date_parser, date_format, dayfirst, cache_dates, iterator, chunksize, compression, thousands, decimal, lineterminator, quotechar, quoting, doublequote, escapechar, comment, encoding, encoding_errors, dialect, on_bad_lines, delim_whitespace, low_memory, memory_map, float_precision, storage_options, dtype_backend)\u001b[0m\n\u001b[0;32m 899\u001b[0m kwds_defaults \u001b[38;5;241m=\u001b[39m _refine_defaults_read(\n\u001b[0;32m 900\u001b[0m dialect,\n\u001b[0;32m 901\u001b[0m delimiter,\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 908\u001b[0m dtype_backend\u001b[38;5;241m=\u001b[39mdtype_backend,\n\u001b[0;32m 909\u001b[0m )\n\u001b[0;32m 910\u001b[0m kwds\u001b[38;5;241m.\u001b[39mupdate(kwds_defaults)\n\u001b[1;32m--> 912\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43m_read\u001b[49m\u001b[43m(\u001b[49m\u001b[43mfilepath_or_buffer\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mkwds\u001b[49m\u001b[43m)\u001b[49m\n",
|
|
"File \u001b[1;32mc:\\Github\\SNITS_RealTimeSignals\\rts\\lib\\site-packages\\pandas\\io\\parsers\\readers.py:577\u001b[0m, in \u001b[0;36m_read\u001b[1;34m(filepath_or_buffer, kwds)\u001b[0m\n\u001b[0;32m 574\u001b[0m _validate_names(kwds\u001b[38;5;241m.\u001b[39mget(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mnames\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;28;01mNone\u001b[39;00m))\n\u001b[0;32m 576\u001b[0m \u001b[38;5;66;03m# Create the parser.\u001b[39;00m\n\u001b[1;32m--> 577\u001b[0m parser \u001b[38;5;241m=\u001b[39m \u001b[43mTextFileReader\u001b[49m\u001b[43m(\u001b[49m\u001b[43mfilepath_or_buffer\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwds\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 579\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m chunksize \u001b[38;5;129;01mor\u001b[39;00m iterator:\n\u001b[0;32m 580\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m parser\n",
|
|
"File \u001b[1;32mc:\\Github\\SNITS_RealTimeSignals\\rts\\lib\\site-packages\\pandas\\io\\parsers\\readers.py:1407\u001b[0m, in \u001b[0;36mTextFileReader.__init__\u001b[1;34m(self, f, engine, **kwds)\u001b[0m\n\u001b[0;32m 1404\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39moptions[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mhas_index_names\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;241m=\u001b[39m kwds[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mhas_index_names\u001b[39m\u001b[38;5;124m\"\u001b[39m]\n\u001b[0;32m 1406\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mhandles: IOHandles \u001b[38;5;241m|\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[1;32m-> 1407\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_engine \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_make_engine\u001b[49m\u001b[43m(\u001b[49m\u001b[43mf\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mengine\u001b[49m\u001b[43m)\u001b[49m\n",
|
|
"File \u001b[1;32mc:\\Github\\SNITS_RealTimeSignals\\rts\\lib\\site-packages\\pandas\\io\\parsers\\readers.py:1661\u001b[0m, in \u001b[0;36mTextFileReader._make_engine\u001b[1;34m(self, f, engine)\u001b[0m\n\u001b[0;32m 1659\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mb\u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;129;01min\u001b[39;00m mode:\n\u001b[0;32m 1660\u001b[0m mode \u001b[38;5;241m+\u001b[39m\u001b[38;5;241m=\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mb\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m-> 1661\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mhandles \u001b[38;5;241m=\u001b[39m \u001b[43mget_handle\u001b[49m\u001b[43m(\u001b[49m\n\u001b[0;32m 1662\u001b[0m \u001b[43m \u001b[49m\u001b[43mf\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1663\u001b[0m \u001b[43m \u001b[49m\u001b[43mmode\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1664\u001b[0m \u001b[43m \u001b[49m\u001b[43mencoding\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43moptions\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mencoding\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mNone\u001b[39;49;00m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1665\u001b[0m \u001b[43m \u001b[49m\u001b[43mcompression\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43moptions\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mcompression\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mNone\u001b[39;49;00m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1666\u001b[0m \u001b[43m \u001b[49m\u001b[43mmemory_map\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43moptions\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mmemory_map\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mFalse\u001b[39;49;00m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1667\u001b[0m \u001b[43m \u001b[49m\u001b[43mis_text\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mis_text\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1668\u001b[0m \u001b[43m \u001b[49m\u001b[43merrors\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43moptions\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mencoding_errors\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mstrict\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1669\u001b[0m \u001b[43m \u001b[49m\u001b[43mstorage_options\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43moptions\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mstorage_options\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mNone\u001b[39;49;00m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 1670\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 1671\u001b[0m \u001b[38;5;28;01massert\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mhandles \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[0;32m 1672\u001b[0m f \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mhandles\u001b[38;5;241m.\u001b[39mhandle\n",
|
|
"File \u001b[1;32mc:\\Github\\SNITS_RealTimeSignals\\rts\\lib\\site-packages\\pandas\\io\\common.py:859\u001b[0m, in \u001b[0;36mget_handle\u001b[1;34m(path_or_buf, mode, encoding, compression, memory_map, is_text, errors, storage_options)\u001b[0m\n\u001b[0;32m 854\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(handle, \u001b[38;5;28mstr\u001b[39m):\n\u001b[0;32m 855\u001b[0m \u001b[38;5;66;03m# Check whether the filename is to be opened in binary mode.\u001b[39;00m\n\u001b[0;32m 856\u001b[0m \u001b[38;5;66;03m# Binary mode does not support 'encoding' and 'newline'.\u001b[39;00m\n\u001b[0;32m 857\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m ioargs\u001b[38;5;241m.\u001b[39mencoding \u001b[38;5;129;01mand\u001b[39;00m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mb\u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;129;01min\u001b[39;00m ioargs\u001b[38;5;241m.\u001b[39mmode:\n\u001b[0;32m 858\u001b[0m \u001b[38;5;66;03m# Encoding\u001b[39;00m\n\u001b[1;32m--> 859\u001b[0m handle \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mopen\u001b[39;49m\u001b[43m(\u001b[49m\n\u001b[0;32m 860\u001b[0m \u001b[43m \u001b[49m\u001b[43mhandle\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 861\u001b[0m \u001b[43m \u001b[49m\u001b[43mioargs\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mmode\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 862\u001b[0m \u001b[43m \u001b[49m\u001b[43mencoding\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mioargs\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mencoding\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 863\u001b[0m \u001b[43m \u001b[49m\u001b[43merrors\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43merrors\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 864\u001b[0m \u001b[43m \u001b[49m\u001b[43mnewline\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[0;32m 865\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 866\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m 867\u001b[0m \u001b[38;5;66;03m# Binary mode\u001b[39;00m\n\u001b[0;32m 868\u001b[0m handle \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mopen\u001b[39m(handle, ioargs\u001b[38;5;241m.\u001b[39mmode)\n",
|
|
"\u001b[1;31mFileNotFoundError\u001b[0m: [Errno 2] No such file or directory: 'one_cycle.csv'"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"import pandas as pd\n",
|
|
"path = 'one_cycle.csv'\n",
|
|
"df = pd.read_csv(path)\n",
|
|
"\n",
|
|
"# 적당히 지정하세요\n",
|
|
"node_id = df['node_id'][0]\n",
|
|
"offset = 999\n",
|
|
"\n",
|
|
"# xml양식대로 작성\n",
|
|
"strings = ['<tlLogics>\\n']\n",
|
|
"strings.append(f' <tlLogic id=\"{node_id}\" type=\"static\" programID=\"{node_id}\" offset=\"{offset}\">\\n')\n",
|
|
"for i, row in df.iterrows():\n",
|
|
" dur = row['dura']\n",
|
|
" state = row['signal']\n",
|
|
" strings.append(f' <phase duration=\"{dur}\" state=\"{state}\"/>\\n')\n",
|
|
"strings.append(' </tlLogic>\\n')\n",
|
|
"strings.append('</tlLogics>')\n",
|
|
"strings = ''.join(strings)\n",
|
|
"print(strings)\n",
|
|
"\n",
|
|
"# 저장\n",
|
|
"path_output = 'example.tll.xml'\n",
|
|
"with open(path_output, 'w') as f:\n",
|
|
" f.write(strings)"
|
|
]
|
|
}
|
|
],
|
|
"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
|
|
}
|