예제 #1
0
def runRoutesOverDays(s, dates, routesFile):
    messageLimit = 10
    warningLimit = 10

    rawInstructions = Serialization.loadInstructionsFromFile(routesFile)
    #    if Array.length parseWarnings > 0 then
    #        printfn "%d instruction parse warnings" (Array.length parseWarnings)
    routes = InstructionParser.ConvertRawInstructions(s.projection,
                                                      rawInstructions)
    flightCountsAndCosts = {}

    for date in dates:
        #        weather = s.weather[date]
        flights = s.flights[date]
        airports = s.airports  #.[date]
        airspace = s.airspace[date]

        print "Simulating " + str(date)
        #        airports = None
        #        print routes
        #        raw_input('routes')
        weather = None
        results = Simulator.simulateFlights(s.simulationParameters, airports,
                                            airspace, weather, flights, routes)
        # return a map of FlightId to
        #   print results
        #   raw_input('next')
        #        countArrived = [ x.ReachedDestination for x in results]
        #        cost = [x.Cost for x in results]
        flightCosts = {}
        cost = []
        countArrived = 0
        for k, v in results.iteritems():
            flightCosts[k] = v['CostDetail']
            countArrived += 1 if v['ReachedDestination'] else 0
            cost.append(v['Cost'])
        print 'countArrived'
        print countArrived
        print 'cost'
        print cost
        flightCountsAndCosts[date] = {
            'date': date,
            'flightCount': countArrived,
            'meanCost': sum(cost) / len(cost),
            #flightLogs = logs
            'flightCosts': flightCosts
        }
    return flightCountsAndCosts
예제 #2
0
파일: Main.py 프로젝트: Cesarbre/ge_contest
airports = Serialization.loadAirportsFromFile(airportsFile) #, landingFile, taxiFile)

#    timeStampPrint sw "Loading date-specific info "
(flightsDates, airspaceDates) =  Serialization.loadDateMaps(
     flightPattern, restrictedAirspace, turbulentZonesPattern, dates)

#    // config contains references to pre-loaded objects/maps
configL = config.Config(projection, airports,
                        flightsDates, airspaceDates, simulationParameters)

submission = config.settings['submissions']
print submission
routesFile = basePath + '/' + submission
rawInstructions = Serialization.loadInstructionsFromFile(routesFile)
# rawInstructions is a dict
routes = InstructionParser.ConvertRawInstructions(configL.projection, rawInstructions)
weather = None
airports = configL.airports 
airportEnvironment = None
fullCoreFunctions = SimulationTypes.SimulationCoreFunctions(
    FuelModel.fuelBurn,
    WeightModel.grossWeight,
    AirSpeedLimiter.limitAirSpeed,
    AirSpeedLimiter.limitAltitude,
    Arrival.arrivalModel)

output_file = basePath + "USTC9600_final_submission.csv'
with open(output_file, "w") as f:
    f.write("FlightId,Ordinal,Latitude,Longitude,Altitude,AirSpeed\n")

count_miss =0