01234567890123456789012345678901234567890123456789012345678901234567890123456789
365366367368369370371372373374375376377378379380381382383384 385 386387388389390391392393394395396397398399400401402403404405 503450355036503750385039504050415042504350445045504650475048504950505051505250535054 50555056505750585059506050615062506350645065506650675068506950705071507250735074 |
<----SKIPPED LINES---->
AIRCRAFT_LENGTH['Canadair Challenger 350 (twin-jet)'] = 20.9
AIRCRAFT_LENGTH['Cessna Caravan (single-turboprop)'] = 11.46
AIRCRAFT_LENGTH['Cessna Citation CJ2+ (twin-jet)'] = 14.53
AIRCRAFT_LENGTH['Cessna Citation CJ3 (twin-jet)'] = 15.59
AIRCRAFT_LENGTH['Cessna Citation Excel/XLS (twin-jet)'] = 16.0
AIRCRAFT_LENGTH['Cessna Citation II (twin-jet)'] = 14.54
AIRCRAFT_LENGTH['Cessna Citation Latitude (twin-jet)'] = 18.97
AIRCRAFT_LENGTH['Cessna Citation Sovereign (twin-jet)'] = 19.35
AIRCRAFT_LENGTH['Cessna Citation V (twin-jet)'] = 14.91
AIRCRAFT_LENGTH['Cessna Citation X (twin-jet)'] = 22.04
AIRCRAFT_LENGTH['Cessna Citation Mustang (twin-jet)'] = 12.37
AIRCRAFT_LENGTH['Cessna Skyhawk (piston-single)'] = 8.28
AIRCRAFT_LENGTH['Cessna Skylane (piston-single)'] = 8.84
AIRCRAFT_LENGTH['Cessna T206 Turbo Stationair (piston-single)'] = 8.61
AIRCRAFT_LENGTH['Dassault Falcon 900 (tri-jet)'] = 20.21
AIRCRAFT_LENGTH['Embraer 170/175 (twin-jet)'] = (29.90 + 31.68) / 2
AIRCRAFT_LENGTH['Embraer Phenom 300 (twin-jet)'] = 15.9
AIRCRAFT_LENGTH['EMBRAER 175 (long wing) (twin-jet)'] = 31.68
AIRCRAFT_LENGTH['Embraer ERJ-135 (twin-jet)'] = 26.33
AIRCRAFT_LENGTH['Gulfstream Aerospace Gulfstream G550 (twin-jet)'] = 29.39
AIRCRAFT_LENGTH['Learjet 45 (twin-jet)'] = 17.68
AIRCRAFT_LENGTH['Pilatus PC-12 (single-turboprop)'] = 14.4
def Log(message, file=None, rolling=None):
"""Write a message to a logfile along with a timestamp.
Args:
message: string message to write
file: string representing file name and, if needed, path to the
file to write to
rolling: name of file that will keep only the last n files of file
"""
# can't define as a default parameter because LOGFILE name is potentially
# modified based on SIMULATION flag
if not file:
file = LOGFILE
# special case: for the main logfile, we always keep a rolling log
if not rolling and file == LOGFILE:
rolling = ROLLING_LOGFILE
<----SKIPPED LINES---->
histogram_settings['histogram'],
histogram_settings['histogram_history'],
filename_prefix=HISTOGRAM_IMAGE_PREFIX + epoch_string,
heartbeat=heartbeat)
histogram_id_sequence = [
'origin', 'destination',
'day_of_month', 'day_of_week', 'hour',
'bearing', 'distance', 'speed', 'vert_rate', 'altitude',
'airline', 'aircraft', 'aircraft_length']
path = WEBSERVER_PATH + WEBSERVER_IMAGE_RELATIVE_FOLDER
files = os.listdir(path)
lines = [
'<head>',
'<title>Flight Tracker: Histograms</title>',
'</head>',
'<body>',
'<?php include "nav.html" ?>',
'<div class="resp-iframe">'
]
for histogram_id in histogram_id_sequence:
matching_files = sorted([f for f in files if histogram_id in f])
# save the most recent; delete the others
lines.append('<img id="%s" src="images/%s"><p>' % (
histogram_id, matching_files[-1]))
for f in matching_files[:-1]:
RemoveFile(
os.path.join(WEBSERVER_PATH, WEBSERVER_IMAGE_RELATIVE_FOLDER, f))
lines.extend(['</div>', '</body>'])
html = '\n'.join(lines)
WriteFile(HISTOGRAM_IMAGE_HTML, html)
return histogram_messages
def SaveFlightsByAltitudeDistanceCSV(
flights,
max_days=0,
filename='flights_by_alt_dist.csv',
precision=100):
"""Generates CSV of hour of day, altitude, and distance.
<----SKIPPED LINES---->
|
01234567890123456789012345678901234567890123456789012345678901234567890123456789
365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407 5036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078 |
<----SKIPPED LINES---->
AIRCRAFT_LENGTH['Canadair Challenger 350 (twin-jet)'] = 20.9
AIRCRAFT_LENGTH['Cessna Caravan (single-turboprop)'] = 11.46
AIRCRAFT_LENGTH['Cessna Citation CJ2+ (twin-jet)'] = 14.53
AIRCRAFT_LENGTH['Cessna Citation CJ3 (twin-jet)'] = 15.59
AIRCRAFT_LENGTH['Cessna Citation Excel/XLS (twin-jet)'] = 16.0
AIRCRAFT_LENGTH['Cessna Citation II (twin-jet)'] = 14.54
AIRCRAFT_LENGTH['Cessna Citation Latitude (twin-jet)'] = 18.97
AIRCRAFT_LENGTH['Cessna Citation Sovereign (twin-jet)'] = 19.35
AIRCRAFT_LENGTH['Cessna Citation V (twin-jet)'] = 14.91
AIRCRAFT_LENGTH['Cessna Citation X (twin-jet)'] = 22.04
AIRCRAFT_LENGTH['Cessna Citation Mustang (twin-jet)'] = 12.37
AIRCRAFT_LENGTH['Cessna Skyhawk (piston-single)'] = 8.28
AIRCRAFT_LENGTH['Cessna Skylane (piston-single)'] = 8.84
AIRCRAFT_LENGTH['Cessna T206 Turbo Stationair (piston-single)'] = 8.61
AIRCRAFT_LENGTH['Dassault Falcon 900 (tri-jet)'] = 20.21
AIRCRAFT_LENGTH['Embraer 170/175 (twin-jet)'] = (29.90 + 31.68) / 2
AIRCRAFT_LENGTH['Embraer Phenom 300 (twin-jet)'] = 15.9
AIRCRAFT_LENGTH['EMBRAER 175 (long wing) (twin-jet)'] = 31.68
AIRCRAFT_LENGTH['Embraer ERJ-135 (twin-jet)'] = 26.33
AIRCRAFT_LENGTH['Gulfstream Aerospace Gulfstream G550 (twin-jet)'] = 29.39
AIRCRAFT_LENGTH['Gulfstream Aerospace Gulfstream IV (twin-jet)'] = 26.92
AIRCRAFT_LENGTH['Learjet 45 (twin-jet)'] = 17.68
AIRCRAFT_LENGTH['McDonnell Douglas MD-11 (tri-jet)'] = 61.6
AIRCRAFT_LENGTH['Pilatus PC-12 (single-turboprop)'] = 14.4
def Log(message, file=None, rolling=None):
"""Write a message to a logfile along with a timestamp.
Args:
message: string message to write
file: string representing file name and, if needed, path to the
file to write to
rolling: name of file that will keep only the last n files of file
"""
# can't define as a default parameter because LOGFILE name is potentially
# modified based on SIMULATION flag
if not file:
file = LOGFILE
# special case: for the main logfile, we always keep a rolling log
if not rolling and file == LOGFILE:
rolling = ROLLING_LOGFILE
<----SKIPPED LINES---->
histogram_settings['histogram'],
histogram_settings['histogram_history'],
filename_prefix=HISTOGRAM_IMAGE_PREFIX + epoch_string,
heartbeat=heartbeat)
histogram_id_sequence = [
'origin', 'destination',
'day_of_month', 'day_of_week', 'hour',
'bearing', 'distance', 'speed', 'vert_rate', 'altitude',
'airline', 'aircraft', 'aircraft_length']
path = WEBSERVER_PATH + WEBSERVER_IMAGE_RELATIVE_FOLDER
files = os.listdir(path)
lines = [
'<head>',
'<title>Flight Tracker: Histograms</title>',
'</head>',
'<body>',
'<?php include "nav.html" ?>',
'<div class="resp-iframe">'
]
for histogram_id in histogram_id_sequence:
pattern = re.compile('histogram[0-9_]*%s.png' % histogram_id)
matching_files = sorted(
[f for f in files if pattern.match(f)])
# save the most recent; delete the others
lines.append('<img id="%s" src="images/%s"><p>' % (
histogram_id, matching_files[-1]))
for f in matching_files[:-1]:
RemoveFile(
os.path.join(WEBSERVER_PATH, WEBSERVER_IMAGE_RELATIVE_FOLDER, f))
lines.extend(['</div>', '</body>'])
html = '\n'.join(lines)
WriteFile(HISTOGRAM_IMAGE_HTML, html)
return histogram_messages
def SaveFlightsByAltitudeDistanceCSV(
flights,
max_days=0,
filename='flights_by_alt_dist.csv',
precision=100):
"""Generates CSV of hour of day, altitude, and distance.
<----SKIPPED LINES---->
|