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])
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")
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")