コード例 #1
0
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)
コード例 #2
0
ファイル: run.py プロジェクト: mauzeh/formation-flight
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)
コード例 #3
0
ファイル: run.py プロジェクト: mauzeh/formation-flight
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 [%]'
    )
コード例 #4
0
ファイル: run.py プロジェクト: mauzeh/formation-flight
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)
コード例 #5
0
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 [%]')
コード例 #6
0
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)
コード例 #7
0
def init():    
    sink.init(config.sink_dir)