|
|
@ -7,9 +7,8 @@ from tqdm import tqdm |
|
|
|
from datetime import datetime, timedelta |
|
|
|
|
|
|
|
class SignalGenerator(): |
|
|
|
def __init__(self, config_name='test_0721', file_net = 'sn.net.xml', month=7, day=22, hour=9, minute=25): |
|
|
|
def __init__(self, config_name='test_0721', month=7, day=22, hour=9, minute=25): |
|
|
|
self.config_name = config_name |
|
|
|
self.flie_net = file_net |
|
|
|
self.month, self.day, self.hour, self.minute = month, day, hour, minute |
|
|
|
|
|
|
|
# 루트폴더 지정 |
|
|
@ -23,7 +22,7 @@ class SignalGenerator(): |
|
|
|
self.path_intermediates = os.path.join(self.path_root, *self.paths['intermediates']) |
|
|
|
self.path_results = os.path.join(self.path_root, *self.paths['results']) |
|
|
|
self.path_tables = os.path.join(self.path_root, *self.paths['tables']) |
|
|
|
self.path_networks = os.path.join(self.path_root, *self.paths['networks']) |
|
|
|
self.path_network = os.path.join(self.path_root, *self.paths['network']) |
|
|
|
self.path_scripts = os.path.join(self.path_root, *self.paths['scripts']) |
|
|
|
|
|
|
|
# 이슈사항 목록 |
|
|
@ -31,9 +30,6 @@ class SignalGenerator(): |
|
|
|
|
|
|
|
self.midnight = int(datetime(2024, self.month, self.day, 0, 0, 0).timestamp()) |
|
|
|
self.next_day = int((datetime(2024, self.month, self.day, 0, 0, 0) + timedelta(days=1)).timestamp()) |
|
|
|
# self.next_day = int(datetime(2024, self.month, self.day+1, 0, 0, 0).timestamp()) |
|
|
|
self.fsecs = range(self.midnight, self.next_day, 5) # fsecs : unix time by Five SECondS |
|
|
|
self.fmins = range(self.midnight, self.next_day, 300) # fmins : unix time by Five MINuteS |
|
|
|
|
|
|
|
self.present_time = int(datetime(2024, self.month, self.day, self.hour, self.minute).timestamp()) |
|
|
|
self.present_time = max([fmin for fmin in list(self.fmins) if fmin <= self.present_time]) |
|
|
@ -70,7 +66,7 @@ class SignalGenerator(): |
|
|
|
|
|
|
|
# 1-1. 네트워크 불러오기 |
|
|
|
def load_networks(self): |
|
|
|
self.net = sumolib.net.readNet(os.path.join(self.path_networks, 'sn.net.xml')) |
|
|
|
self.net = sumolib.net.readNet(os.path.join(self.path_network)) |
|
|
|
print("1-1. 네트워크가 로드되었습니다.") |
|
|
|
|
|
|
|
|
|
|
@ -210,7 +206,7 @@ class SignalGenerator(): |
|
|
|
sys.path.append(tools) |
|
|
|
else: |
|
|
|
raise EnvironmentError("please declare environment variable 'SUMO_HOME'") |
|
|
|
traci.start([sumolib.checkBinary('sumo'), "-n", os.path.join(self.path_networks, 'sn.net.xml')]) |
|
|
|
traci.start([sumolib.checkBinary('sumo'), "-n", os.path.join(self.path_network)]) |
|
|
|
nodes = [node for node in self.net.getNodes() if node.getType()=='traffic_light'] |
|
|
|
for node in nodes: |
|
|
|
node_id = node.getID() |
|
|
|