Пример #1
0
    def __init__(self, date, lin_reg_coef_filename):
        lin_reg_coef_file = open(lin_reg_coef_filename)
        self.coef_ = pickle.load(lin_reg_coef_file)
        self.date_ = date
        self.flight_graph_ = centralities.gen_daily(date)
        self.flight_network_info_ = FlightNetworkInfo()
        self.conn_ = sqlite3.connect("Flights.sqlite")
        self.cursor_ = self.conn_.cursor()

        depDelayMap, arrDelayMap = self.flight_network_info_.AvgDelaysByAirport()
        self.airportDepDelays_ = depDelayMap
        self.airportArrDelays_ = arrDelayMap
        depDelayMap, arrDelayMap = self.flight_network_info_.AvgDelaysByCarrier()
        self.carrierDepDelays_ = depDelayMap
        self.carrierArrDelays_ = arrDelayMap

        self.centralities_ = centralities.gen_node_info(date)

        ymd = self.date_.split("-")
        self.year_ = int(ymd[0])
        self.month_ = int(ymd[1])
        self.day_ = int(ymd[2])
Пример #2
0
    def __init__(self, date, lin_reg_coef_filename):
        lin_reg_coef_file = open(lin_reg_coef_filename)
        self.coef_ = pickle.load(lin_reg_coef_file)
        self.date_ = date
        self.flight_graph_ = centralities.gen_daily(date)
        self.flight_network_info_ = FlightNetworkInfo()
        self.conn_ = sqlite3.connect('Flights.sqlite')
        self.cursor_ = self.conn_.cursor()

        depDelayMap, arrDelayMap = self.flight_network_info_.AvgDelaysByAirport(
        )
        self.airportDepDelays_ = depDelayMap
        self.airportArrDelays_ = arrDelayMap
        depDelayMap, arrDelayMap = self.flight_network_info_.AvgDelaysByCarrier(
        )
        self.carrierDepDelays_ = depDelayMap
        self.carrierArrDelays_ = arrDelayMap

        self.centralities_ = centralities.gen_node_info(date)

        ymd = self.date_.split('-')
        self.year_ = int(ymd[0])
        self.month_ = int(ymd[1])
        self.day_ = int(ymd[2])
  pts = []
  log_degs = [log(int(v[0]) + int(v[1])) for k, v in  airport_info.items()]
  max_log_deg = max(x for x in log_degs)
  for key, val in airports.iteritems():
    if key in airport_info.keys():
      log_deg = log(int(airport_info[key][0])+int(airport_info[key][1]))
      normalized_log_deg = int(heatmap_scale*float(log_deg)/max_log_deg) + 1
      for i in range(normalized_log_deg):
        pts.append(val)
    else:
      pts.append(val)
  return pts

airports = read_in_airports()
daily_flights = c.gen_daily('2010-12-23')
airport_info = c.gen_node_info('2010-12-23', daily_flights)
arr_delays, dep_delays = read_in_delays()
avg_delays = calculate_normalised_delays(arr_delays, dep_delays)

del_pts = generate_delay_heatmap_points(airports, avg_delays)
deg_pts = generate_degree_heatmap_points(airports, airport_info)
del_deg_pts = generate_delay_over_degree(airports, avg_delays, airport_info)
del_bc_pts = generate_delay_times_betw_centrality(airports, avg_delays, airport_info)


kml = simplekml.Kml()
for airport in daily_flights.nodes():
  for neighbor in nx.all_neighbors(daily_flights, airport):
    flightpath = (airports[airport], airports[neighbor])
    path = kml.newlinestring(name='flightpath', coords=flightpath)
kml.save("KMLs/air_travel_network.kml")
Пример #4
0
    def __calculateLinearRegressionInput(self):
        inputRows = []
        outputRows = []

        flightNetworkInfoByDate = {}

        # isolationDate = '2009-03-04'
        self.cursor_.execute(
            'select OriginAirportID, DestAirportID, Carrier, FlightDate, AirTime, Distance, \
			DepTime, ArrTime, ArrDelayMin from Flight where Cancelled = 0 and Diverted = 0 and FlightDate < ?',
            (self.ISOLATION_DATE, ))
        for OriginAirportID, DestAirportID, Carrier, FlightDate, AirTime, Distance, DepTime, ArrTime, ArrDelayMin in self.cursor_.fetchall(
        ):

            if FlightDate not in flightNetworkInfoByDate:
                flightNetworkInfoByDate[
                    FlightDate] = centralities.gen_node_info(FlightDate)
            flightNetworkInfo = flightNetworkInfoByDate[FlightDate]

            CarrierAvgDepDelay = self.avgDepDelaysByCarrier_[Carrier]
            CarrierAvgArrDelay = self.avgArrDelaysByCarrier_[Carrier]
            AirportAvgDepDelay = self.avgDepDelaysByAirport_[OriginAirportID]
            AirportAvgArrDelay = self.avgArrDelaysByAirport_[DestAirportID]

            if not CarrierAvgDepDelay:
                CarrierAvgDepDelay = 0.0
            if not CarrierAvgArrDelay:
                CarrierAvgArrDelay = 0.0
            if not AirportAvgDepDelay:
                AirportAvgDepDelay = 0.0
            if not AirportAvgArrDelay:
                AirportAvgArrDelay = 0.0

            OriginAirportInfo = flightNetworkInfo[OriginAirportID]
            DestAirportInfo = flightNetworkInfo[DestAirportID]

            OriginOutDeg = OriginAirportInfo[0]
            OriginInDeg = OriginAirportInfo[1]
            OriginBtwCentrality = OriginAirportInfo[2]
            OriginCloseCentrality = OriginAirportInfo[3]

            DestOutDeg = DestAirportInfo[0]
            DestInDeg = DestAirportInfo[1]
            DestBtwCentrality = DestAirportInfo[2]
            DestCloseCentrality = DestAirportInfo[3]

            # missing: AirTime, DepTime, ArrTime
            inputRow = (CarrierAvgDepDelay, CarrierAvgArrDelay, AirportAvgDepDelay, AirportAvgArrDelay, Distance, \
             OriginOutDeg, OriginInDeg, OriginBtwCentrality, OriginCloseCentrality, DestOutDeg, DestInDeg, DestBtwCentrality, \
             DestCloseCentrality)

            inputRows.append(inputRow)
            if ArrDelayMin is None:
                ArrDelayMin = 0
            outputRows.append(ArrDelayMin)

        self.linRegInputRows_ = inputRows
        self.linRegOutputRows_ = outputRows

        inputRowsFile = open('extra_data/inputRows.pickle', 'w')
        outputRowsFile = open('extra_data/outputRows.pickle', 'w')

        pickle.dump(inputRows, inputRowsFile)
        pickle.dump(outputRows, outputRowsFile)

        return inputRows, outputRows
	def __calculateLinearRegressionInput(self):
		inputRows = []
		outputRows = []

		flightNetworkInfoByDate = {}

		# isolationDate = '2009-03-04'
		self.cursor_.execute('select OriginAirportID, DestAirportID, Carrier, FlightDate, AirTime, Distance, \
			DepTime, ArrTime, ArrDelayMin from Flight where Cancelled = 0 and Diverted = 0 and FlightDate < ?', (self.ISOLATION_DATE, ))
		for OriginAirportID, DestAirportID, Carrier, FlightDate, AirTime, Distance, DepTime, ArrTime, ArrDelayMin in self.cursor_.fetchall():

			if FlightDate not in flightNetworkInfoByDate:
				flightNetworkInfoByDate[FlightDate] = centralities.gen_node_info(FlightDate)
			flightNetworkInfo = flightNetworkInfoByDate[FlightDate]

			CarrierAvgDepDelay = self.avgDepDelaysByCarrier_[Carrier]
			CarrierAvgArrDelay = self.avgArrDelaysByCarrier_[Carrier]
			AirportAvgDepDelay = self.avgDepDelaysByAirport_[OriginAirportID]
			AirportAvgArrDelay = self.avgArrDelaysByAirport_[DestAirportID]

			if not CarrierAvgDepDelay:
				CarrierAvgDepDelay = 0.0
			if not CarrierAvgArrDelay:
				CarrierAvgArrDelay = 0.0
			if not AirportAvgDepDelay:
				AirportAvgDepDelay = 0.0
			if not AirportAvgArrDelay:
				AirportAvgArrDelay = 0.0

			OriginAirportInfo = flightNetworkInfo[OriginAirportID]
			DestAirportInfo = flightNetworkInfo[DestAirportID]

			OriginOutDeg = OriginAirportInfo[0]
			OriginInDeg = OriginAirportInfo[1]
			OriginBtwCentrality = OriginAirportInfo[2]
			OriginCloseCentrality = OriginAirportInfo[3]

			DestOutDeg = DestAirportInfo[0]
			DestInDeg = DestAirportInfo[1]
			DestBtwCentrality = DestAirportInfo[2]
			DestCloseCentrality = DestAirportInfo[3]

			# missing: AirTime, DepTime, ArrTime
			inputRow = (CarrierAvgDepDelay, CarrierAvgArrDelay, AirportAvgDepDelay, AirportAvgArrDelay, Distance, \
				OriginOutDeg, OriginInDeg, OriginBtwCentrality, OriginCloseCentrality, DestOutDeg, DestInDeg, DestBtwCentrality, \
				DestCloseCentrality)

			inputRows.append(inputRow)
			if ArrDelayMin is None:
				ArrDelayMin = 0
			outputRows.append(ArrDelayMin)

		self.linRegInputRows_ = inputRows
		self.linRegOutputRows_ = outputRows

		inputRowsFile = open('extra_data/inputRows.pickle', 'w')
		outputRowsFile = open('extra_data/outputRows.pickle', 'w')

		pickle.dump(inputRows, inputRowsFile)
		pickle.dump(outputRows, outputRowsFile)

		return inputRows, outputRows
    for key, val in airports.iteritems():
        if key in airport_info.keys():
            log_deg = log(
                int(airport_info[key][0]) + int(airport_info[key][1]))
            normalized_log_deg = int(
                heatmap_scale * float(log_deg) / max_log_deg) + 1
            for i in range(normalized_log_deg):
                pts.append(val)
        else:
            pts.append(val)
    return pts


airports = read_in_airports()
daily_flights = c.gen_daily('2010-12-23')
airport_info = c.gen_node_info('2010-12-23', daily_flights)
arr_delays, dep_delays = read_in_delays()
avg_delays = calculate_normalised_delays(arr_delays, dep_delays)

del_pts = generate_delay_heatmap_points(airports, avg_delays)
deg_pts = generate_degree_heatmap_points(airports, airport_info)
del_deg_pts = generate_delay_over_degree(airports, avg_delays, airport_info)
del_bc_pts = generate_delay_times_betw_centrality(airports, avg_delays,
                                                  airport_info)

kml = simplekml.Kml()
for airport in daily_flights.nodes():
    for neighbor in nx.all_neighbors(daily_flights, airport):
        flightpath = (airports[airport], airports[neighbor])
        path = kml.newlinestring(name='flightpath', coords=flightpath)
kml.save("KMLs/air_travel_network.kml")