def execute(): sink.init(config.sink_dir) # Construct flight list (for aircraft lookup) planes = generators.get_via_stdin() runs = 10 for i in xrange(1, runs + 1): # Construct flight list once more for the sim runs # Very little performance drawback due to caching single_run(generators.get_via_stdin()) print 'Completed run %d of %d...' % (i, runs) #print calibrate.vars rows = [] for label, value in calibrate.vars.items(): # Lookup of aircraft belonging to key plane = next((a for a in planes if a.label == label), None) rows.append([ plane.departure_time_scheduled, label, '%s-%s' % (plane.origin, plane.destination), plane.aircraft_type, '%.2f' % value ]) sink.dump_rows(rows)
def execute(): sink.init(config.sink_dir) reldata = [] absdata = [] runs = range(0, 25) config.simhubs = np.arange(1, 11) for n in config.simhubs: fuelsavings_list = [] fuelsavings_abs_list = [] for run in runs: config.count_hubs = n fuel_savings, fuel_savings_abs = single_run() fuelsavings_list.append(fuel_savings) fuelsavings_abs_list.append(fuel_savings_abs) reldata.append(np.array(fuelsavings_list)) absdata.append(np.array(fuelsavings_abs_list)) print '#################################' print '############ NOTICE #############' print 'This run has a built-in plotter.' print '#################################' for i in range(0, len(reldata)): abs_mean = np.mean(absdata[i]) abs_std = np.std(absdata[i]) rel_mean = np.mean(reldata[i]) rel_std = np.std(reldata[i]) print r'%d & %.4f & %.4f & %d & %d \\' % ( i+1, rel_mean, rel_std, abs_mean, abs_std ) do_plot( absdata, filename = 'fuel_saved_abs', title = r'Fuel Saved [$10^6$ kg]', ylabel = r'Fuel Saved [$10^6$ kg]', formatter = fuel_saved_abs_formatter ) do_plot( reldata, filename = 'fuel_saved_rel', title = r'Fuel Saved [%]', ylabel = r'Fuel Saved [%]' )
def execute(): print 'init sink %s' % config.sink_dir sink.init(config.sink_dir) for hub in config.hubs: print 'Progress: %d of %d iterations' % ( config.hubs.index(hub)+1, len(config.hubs) ) sim.init() aircraft_handlers.init() formation_handlers.init() statistics.init() # Construct flight list planes = generators.get_via_stdin() # Allocate hubs to flights for flight in planes: # Assign hub by injecting into route flight.route.waypoints = [ flight.route.waypoints[0], hub, flight.route.waypoints[1] ] flight.route.init_segments() for flight in planes: sim.events.append(sim.Event('aircraft-init', flight, 0)) sim.run() # Prepare data matrix d = { 'hub_lat' : hub.lat, 'hub_lon' : hub.lon, 'distance_total' : float(statistics.vars['distance_total']), 'distance_formation' : float(statistics.vars['distance_formation']), 'distance_solo' : float(statistics.vars['distance_solo']), 'formation_count' : float(statistics.vars['formation_count']), 'formation_success_rate' : float(statistics.vars['formation_success_rate']), 'alpha_eff' : float(statistics.vars['alpha_effective']), 'distance_success_rate' : float(statistics.vars['distance_success_rate']), 'avg_formation_size' : float(statistics.vars['avg_formation_size']), 'fuel_saved' : float(statistics.vars['fuel_saved']), 'distance_penalty' : float(statistics.vars['distance_penalty']), } sink.push(d) debug.print_dictionary(d)
def execute(): sink.init(config.sink_dir) reldata = [] absdata = [] runs = range(0, 25) config.simhubs = np.arange(1, 11) for n in config.simhubs: fuelsavings_list = [] fuelsavings_abs_list = [] for run in runs: config.count_hubs = n fuel_savings, fuel_savings_abs = single_run() fuelsavings_list.append(fuel_savings) fuelsavings_abs_list.append(fuel_savings_abs) reldata.append(np.array(fuelsavings_list)) absdata.append(np.array(fuelsavings_abs_list)) print '#################################' print '############ NOTICE #############' print 'This run has a built-in plotter.' print '#################################' for i in range(0, len(reldata)): abs_mean = np.mean(absdata[i]) abs_std = np.std(absdata[i]) rel_mean = np.mean(reldata[i]) rel_std = np.std(reldata[i]) print r'%d & %.4f & %.4f & %d & %d \\' % (i + 1, rel_mean, rel_std, abs_mean, abs_std) do_plot(absdata, filename='fuel_saved_abs', title=r'Fuel Saved [$10^6$ kg]', ylabel=r'Fuel Saved [$10^6$ kg]', formatter=fuel_saved_abs_formatter) do_plot(reldata, filename='fuel_saved_rel', title=r'Fuel Saved [%]', ylabel=r'Fuel Saved [%]')
def execute(): print 'init sink %s' % config.sink_dir sink.init(config.sink_dir) for hub in config.hubs: print 'Progress: %d of %d iterations' % (config.hubs.index(hub) + 1, len(config.hubs)) sim.init() aircraft_handlers.init() formation_handlers.init() statistics.init() # Construct flight list planes = generators.get_via_stdin() # Allocate hubs to flights for flight in planes: # Assign hub by injecting into route flight.route.waypoints = [ flight.route.waypoints[0], hub, flight.route.waypoints[1] ] flight.route.init_segments() for flight in planes: sim.events.append(sim.Event('aircraft-init', flight, 0)) sim.run() # Prepare data matrix d = { 'hub_lat': hub.lat, 'hub_lon': hub.lon, 'distance_total': float(statistics.vars['distance_total']), 'distance_formation': float(statistics.vars['distance_formation']), 'distance_solo': float(statistics.vars['distance_solo']), 'formation_count': float(statistics.vars['formation_count']), 'formation_success_rate': float(statistics.vars['formation_success_rate']), 'alpha_eff': float(statistics.vars['alpha_effective']), 'distance_success_rate': float(statistics.vars['distance_success_rate']), 'avg_formation_size': float(statistics.vars['avg_formation_size']), 'fuel_saved': float(statistics.vars['fuel_saved']), 'distance_penalty': float(statistics.vars['distance_penalty']), } sink.push(d) debug.print_dictionary(d)
def init(): sink.init(config.sink_dir)