1
0
mirror of https://github.com/Ahp06/SUMO_Emissions.git synced 2024-11-22 03:26:30 +00:00

Added data to csv export

This commit is contained in:
Ahp06 2018-12-16 15:33:10 +01:00
parent 86f694756d
commit c76eea9d76
3 changed files with 38 additions and 6 deletions

View File

@ -10,6 +10,7 @@ import sys
from model import Emission
class Config:
# Total of emissions of all pollutants in mg for n steps of simulation without acting on areas

View File

@ -1,9 +1,12 @@
import argparse
import csv
import sys
import time
from traci import trafficlight
import traci
from typing import List
import datetime
import os
from parse import search
from shapely.geometry import LineString
@ -122,6 +125,33 @@ def get_emissions(grid: List[Area], vehicles: List[Vehicle], current_step, confi
def get_reduction_percentage(ref,total):
return (ref - total) / ref * 100
def export_data_to_csv(config, grid):
now = datetime.datetime.now()
current_date = now.strftime("%Y_%m_%d_%H_%M_%S")
'''if not os.path.exists(f'csv/{current_date}'):
os.makedirs(f'csv/{current_date}')'''
'''with open(f'test.csv', mode='w', newline = '') as emission_file:
try:
csv_writer = csv.writer(emission_file, delimiter = '', quoting=csv.QUOTE_MINIMAL)
a = list(range(config.n_steps))
csv_writer.writerow(['steps'])
for item in a:
csv_writer.writerow([item])
for area in grid:
writer = csv.writer(emission_file, delimiter = ' ', quoting=csv.QUOTE_MINIMAL)
writer.writerow([f'{area.name}'])
for emission in area.emissions_by_step:
writer.writerow([emission.value()])
finally:
emission_file.close()'''
def run(config, logger):
grid = list()
try:
@ -131,6 +161,7 @@ def run(config, logger):
start = time.perf_counter()
grid = init_grid(traci.simulation.getNetBoundary(), config.areas_number, config.window_size)
export_data_to_csv(config,grid)
add_data_to_areas(grid)
loading_time = round(time.perf_counter() - start, 2)
@ -149,8 +180,10 @@ def run(config, logger):
finally:
traci.close(False)
simulation_time = round(time.perf_counter() - start, 2)
logger.info(f'End of the simulation ({simulation_time}s)')
logger.info(f'Real-time factor : {config.n_steps/simulation_time}')
total_emissions = Emission()
for area in grid:
@ -207,7 +240,7 @@ def main(args):
config.check_config()
logger.info(f'Loaded configuration file : {args.configfile}')
logger.info(f'Simulated time : {args.steps}')
logger.info(f'Simulated time : {args.steps}s')
run(config, logger)
if __name__ == '__main__':

View File

@ -1,3 +1,4 @@
import collections
from traci._trafficlight import Logic as SUMO_Logic
from typing import Tuple, Set
@ -5,8 +6,6 @@ from shapely.geometry import Point, LineString
from shapely.geometry import Polygon
from shapely.geometry.base import BaseGeometry
import collections
class Lane:
@ -107,9 +106,8 @@ class Area:
return sum
def sum_emissions_into_window(self, current_step, window_size):
#print(self.emissions_by_step)
em_obj = self.emissions_by_step[current_step]
self.window.appendleft(em_obj.value())
self.window.appendleft(self.emissions_by_step[current_step].value())
sum = 0
for i in range(self.window.__len__()):