-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathutil.py
More file actions
128 lines (95 loc) · 4.43 KB
/
Copy pathutil.py
File metadata and controls
128 lines (95 loc) · 4.43 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
# %%
# setup
import pandas as pd
import random
from datetime import datetime
def create_flight_data():
## %%
# load original flight data set, skipping description in first 7 lines
FAA_df = pd.read_csv('Detailed_Statistics_Departures.csv', skiprows=7, nrows=100)
FAA_LAX_df = pd.read_csv('Detailed_Statistics_Departures_LAX.csv', skiprows=7, nrows=100)
## %%
# inspect
#FAA_df.head()
#FAA_LAX_df.head()
## %%
# clean data
# drop N/A from relevant columns
FAA_df = FAA_df.dropna(axis=0,subset=['Carrier Code', 'Flight Number'])
FAA_LAX_df = FAA_LAX_df.dropna(axis=0,subset=['Carrier Code', 'Flight Number'])
# convert column 'Flight Number'
FAA_df['Flight Number'] = FAA_df['Flight Number'].astype('int')
FAA_LAX_df['Flight Number'] = FAA_LAX_df['Flight Number'].astype('int')
## %%
# create flight data datatrame
# estimate
Terminals = ['Terminal 1', 'Terminal 2']
GatesTerminal1 = ['A1', 'A2', 'A3', 'A4']
GatesTerminal2 = ['B1', 'B2', 'B3', 'B4']
flight_data_df = pd.DataFrame(columns=['Code', 'Date (MM/DD/YYYY)', 'Departure', 'Terminal', 'Gate', 'BoardingStarts'])
flight_data_df['Code'] = FAA_df['Carrier Code'].astype(str) + FAA_df['Flight Number'].astype(str)
flight_data_df['Departure'] = FAA_df['Scheduled departure time']
flight_data_df['Date (MM/DD/YYYY)'] = FAA_df['Date (MM/DD/YYYY)']
flight_data_df['Destination'] = FAA_df['Destination Airport']
flight_data_df['Origin'] = "GRR"
for i in range(len(flight_data_df['Departure'])):
flight_data_df['BoardingStarts'][i] = datetime.strptime(flight_data_df['Departure'][i], '%H:%M') - datetime.strptime("00:30", '%H:%M')
flight_data_LAX_df = pd.DataFrame(columns=['Code', 'Date (MM/DD/YYYY)', 'Departure', 'Terminal', 'Gate', 'BoardingStarts'])
flight_data_LAX_df['Code'] = FAA_df['Carrier Code'].astype(str) + FAA_df['Flight Number'].astype(str)
flight_data_LAX_df['Departure'] = FAA_df['Scheduled departure time']
flight_data_LAX_df['Date (MM/DD/YYYY)'] = FAA_df['Date (MM/DD/YYYY)']
flight_data_LAX_df['Destination'] = FAA_LAX_df['Destination Airport']
flight_data_LAX_df['Origin'] = "LAX"
for i in range(len(flight_data_LAX_df['Departure'])):
flight_data_LAX_df['BoardingStarts'][i] = datetime.strptime(flight_data_LAX_df['Departure'][i], '%H:%M') - datetime.strptime("00:30", '%H:%M')
# fill
for i in range(len(flight_data_df['Departure'])):
flight_data_df['Terminal'][i] = random.choice(Terminals)
if flight_data_df['Terminal'][i] == 'Terminal 1':
flight_data_df['Gate'][i] = random.choice(GatesTerminal1)
elif flight_data_df['Terminal'][i] == 'Terminal 2':
flight_data_df['Gate'][i] = random.choice(GatesTerminal2)
else: flight_data_df['Gate'][i] = 'unknown'
for i in range(len(flight_data_LAX_df['Departure'])):
flight_data_LAX_df['Terminal'][i] = random.choice(Terminals)
if flight_data_LAX_df['Terminal'][i] == 'Terminal 1':
flight_data_LAX_df['Gate'][i] = random.choice(GatesTerminal1)
elif flight_data_LAX_df['Terminal'][i] == 'Terminal 2':
flight_data_LAX_df['Gate'][i] = random.choice(GatesTerminal2)
else: flight_data_LAX_df['Gate'][i] = 'unknown'
flight_data_df = pd.concat([flight_data_df,flight_data_LAX_df])
return flight_data_df
# estimate security
def estimate_time_security(time, time_df, airport):
time = time
data = time_df
airport = airport
# convert time format
time = str(time)
hours = time[:2]
# check airport
if airport == "GRR":
data.drop(data[data['Identifier'] != "GRR"].index)
else:
data.drop(data[data['Identifier'] == "GRR"].index)
mean_idx = data.index[data['Time_From'] == float(hours)][0]
mean = float(data['Security'][mean_idx])
security = random.gauss(mu=mean,sigma=0.5)
return abs(security)
def estimate_time_checkin(time, time_df, airport):
time = time
data = time_df
airport = airport
# convert time format
time = str(time)
hours = time[:2]
# check airport
if airport == "GRR":
data.drop(data[data['Identifier'] != "GRR"].index)
else:
data.drop(data[data['Identifier'] == "GRR"].index)
mean_idx = data.index[data['Time_From'] == float(hours)][0]
mean = float(data['Check-In'][mean_idx])
security = random.gauss(mu=mean,sigma=0.8)
return abs(security)
# %%