Skip to content

Commit 8e644cf

Browse files
first commit
1 parent 0a7d25a commit 8e644cf

File tree

54 files changed

+1291
-2302
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

54 files changed

+1291
-2302
lines changed

README.md

+43-9
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,29 @@
11
# DynamicPlacementGenerator
22

3-
## Installations
3+
The DynamicPlacementGenerator is a Python program used to generate the best spare engine placement for a specific aircraft fleet.
44

5-
Install `python3`. Check the version and you should see the same as the output below or a more recent version.
5+
## Background
6+
7+
Delta Air Lines is an industry-leading, globally operating United States airline servicing over 300 destinations with a fleet of approximately 900 aircraft. Delta’s Engine Demand Planning team (EDP), which falls under Delta TechOps, is responsible for planning engine removals, assigning spare engines to seven designated hubs, and setting up the logistics of the removals and repairs of these engines.
8+
9+
The objective of this project is to assist Delta’s EDP team with improving the allocation of spare engines across the contiguous United States. To assist Delta in decreasing both transportation and AOS costs incurred throughout the year, the solution determines the optimal configuration of all spare engines on a monthly basis through a Markov Decision Process. The solution outputs a configuration recommendation for the upcoming month associated with the minimal cost of all possible options. Delta’s EDP team can use the model to make data-informed, cost-driven decisions with the added benefit of reducing required labor hours.
10+
11+
## Installations and Setup
12+
13+
Instructions to install the required installations are outlined below with provided terminal commands.
14+
15+
### Before Cloning this Repository
16+
17+
Install `python3`. Check that your version matches the one below or is more recent.
618
```
719
python3 --version
820
Python 3.7.6
921
```
1022

11-
Install `pip3`. Check that you have it by running the command below to check the version.
23+
Install `pip3`. Check that you have it by running the command below to check the version. You should see a response similar to the one below.
1224
```
1325
pip3 -V
26+
pip 19.3.1 from /usr/local/lib/python3.7/site-packages/pip (python 3.7)
1427
```
1528

1629
Install `numpy` using `pip3`.
@@ -28,27 +41,35 @@ Install `scipy` using `pip3`.
2841
pip3 install scipy
2942
```
3043

31-
Clone this repository.
44+
### After Cloning this Repository
3245

33-
After doing that, navigate to the `DynamicPlacementGenerator` directory (wherever you cloned it on your machine) and clone the Git repository for `pymdptoolbox` with the following terminal command:
46+
Navigate to the `DynamicPlacementGenerator` directory (wherever you cloned it on your machine).
47+
48+
This application uses the [`pymdptoolbox` module](https://github.com/sawcordwell/pymdptoolbox "Markov Decision Process (MDP) Toolbox for Python"). Clone the repository for it with the following command. **Make sure you are cloning the repository while in the `DynamicPlacementGenerator` directory.**
3449
```
3550
git clone https://github.com/sawcordwell/pymdptoolbox.git
3651
```
3752

38-
Navigate to the `pymdptoolbox`.
53+
Navigate to the `pymdptoolbox` folder, which now resides in the `DynamicPlacementGenerator` directory.
3954
```
4055
cd pymdptoolbox
4156
```
4257

43-
Install `pymdptoolbox` using the following terminal command (while in the `pymdptoolbox` directory):
58+
Setup and install `pymdptoolbox` using the following terminal command (while in the `pymdptoolbox` directory):
4459
```
4560
python3 setup.py install
4661
```
4762

48-
## To run locally
63+
## Usage
64+
65+
### First Run
66+
67+
Some files will need to be created to use for all subsequent runs. Most of these tasks will only need to be completed once.
68+
69+
### Subsequent Runs
4970

50-
Clone this repository onto your local machine.
5171
Navigate to the `DynamicPlacementGenerator` directory.
72+
5273
In your terminal, run the following command:
5374
```
5475
python3 app.py
@@ -65,3 +86,16 @@ max removals total that can occur = 10
6586
max total working engines = 5
6687

6788
changing all inputs and re-running all possible removal situations adds time to the run time. It took me about 1 hour and 30 minutes to generate all possible removal situations for all fleets.# DynamicPlacementGenerator
89+
90+
## Authors
91+
92+
**Industrial and Systems Engineering, Georgia Institute of Technology**, Spring 2020
93+
94+
**Team 10**
95+
Samantha Davanzo
96+
Brian Davis
97+
Mary Elizabeth Davis
98+
Bella Jackson
99+
Meredith Thacker
100+
Miles Trumbauer
101+

__init__.py

Whitespace-only changes.

app.py

+34-37
Original file line numberDiff line numberDiff line change
@@ -1,61 +1,58 @@
1-
from util import reader_util, writer_util, data_util
2-
import data, solve, generate_removal_situations
1+
from util import reader_util, writer_util, data_util, config
2+
from services import data_generator, solve
3+
import data
34
import pprint, logging
4-
from solve import FiniteHorizonMDPSolver
55

66
if __name__ == '__main__':
77
data.init()
8-
logging.basicConfig(level=logging.INFO)
9-
new_removal_data = False
8+
9+
if config.first_run:
10+
logging.info("FIRST_RUN is set to TRUE. All possible states and actions are going to be generated. This may take awhile.")
11+
data_generator.generate_all_possible_states()
12+
data_generator.generate_all_possible_actions()
13+
14+
# Import removal information
15+
data.removals_info, data.aos_cost = reader_util.import_removal_info(
16+
filepath='data_to_read/removal_info.csv',
17+
removals_data_storage=data.removals_info,
18+
aos_cost_data_storage=data.aos_cost)
19+
20+
# Import engine information
21+
data.engines_info = reader_util.import_engine_info(
22+
filepath='data_to_read/engine_info.csv',
23+
data_storage=data.engines_info)
24+
25+
# Import engine subtype data
26+
reader_util.import_engine_subtype_data()
27+
28+
# Generate all possible removal situations if removal info has been updated
29+
for engine_subtype in data.engine_subtypes:
30+
if data.need_to_update_removal_info[engine_subtype]:
31+
data_generator.generate_all_possible_removal_situations(
32+
engine_subtype=engine_subtype)
1033

1134
# Import all possible states
1235
data.all_possible_states = reader_util.import_all_possible_states(
13-
filepath='data_to_read/general/all_possible_states.csv',
36+
filepath='data_to_read/all_possible_states.csv',
1437
data_storage=data.all_possible_states)
1538

1639
# Import all possible actions
1740
data.all_possible_actions = reader_util.import_all_possible_actions(
1841
data_storage=data.all_possible_actions)
1942

20-
# Import engine removal information
21-
data.num_engines_info, data.num_removals_info, data.aos_cost = reader_util.import_engine_removal_info(
22-
filepath='data_to_read/general/engine_removal_info.csv',
23-
engines_data_storage=data.num_engines_info,
24-
removals_data_storage=data.num_removals_info,
25-
aos_cost_data_storage=data.aos_cost)
26-
27-
# Import engine subtype data
28-
reader_util.import_engine_subtype_data()
29-
30-
# Generate all possible removal situations
31-
if new_removal_data:
32-
for engine_subtype in data.engine_subtypes:
33-
generate_removal_situations.find_all_removal_situations(
34-
engine_subtype=engine_subtype,
35-
removals_info=data.num_removals_info[engine_subtype])
43+
data_util.minimize_states_and_actions_to_iterate()
3644

3745
# Import all possible removal situations
3846
data.all_possible_removal_situations = reader_util.import_all_possible_removal_situations(
3947
data_storage=data.all_possible_removal_situations)
4048

4149
# Import future data for regression
4250
reader_util.import_future_data()
43-
44-
havent_done = ['CFM56-5A']
45-
for month_to_run in range(1, 11):
46-
for engine_subtype in data.engine_subtypes:
47-
if engine_subtype in ['PW2000-2037', 'V2500-D5']:
48-
num_engines = data.num_engines_info[engine_subtype]['NUM_WORKING_ENGINES']
49-
if num_engines >= 5:
50-
all_possible_actions_for_subtype = data_util.find_all_possible_actions_for_subtype(
51-
num_engines=num_engines,
52-
num_removals_info=data.num_removals_info[engine_subtype])
53-
solver = FiniteHorizonMDPSolver(engine_subtype, all_possible_actions_for_subtype, month_to_run)
54-
solver.solve_MDP()
55-
else:
56-
solver = FiniteHorizonMDPSolver(engine_subtype, data.all_possible_actions[num_engines][:], month_to_run)
57-
solver.solve_MDP()
5851

52+
# Solve Finite Horizon MDP
53+
for engine_subtype in data.engine_subtypes:
54+
solver = solve.FiniteHorizonMDPSolver(engine_subtype)
55+
solver.solve_MDP()
5956

6057

6158

data.py

+13-4
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,9 @@ def init():
4141
global all_possible_states
4242
all_possible_states = {}
4343

44+
global states_by_subtype
45+
states_by_subtype = {}
46+
4447
'''
4548
A dictionary that holds all possible actions in the MDP as a list of lists for each engine subtype.
4649
@@ -51,6 +54,9 @@ def init():
5154
global all_possible_actions
5255
all_possible_actions = {}
5356

57+
global actions_by_subtype
58+
actions_by_subtype = {}
59+
5460
'''
5561
A dictionary that holds all possible removal situations as a list of lists for each engine subtype.
5662
@@ -78,8 +84,8 @@ def init():
7884
'NUM_WORKING_ENGINES': 4,
7985
'TOTAL_NUM_ENGINES': 4}, ...}
8086
'''
81-
global num_engines_info
82-
num_engines_info = {}
87+
global engines_info
88+
engines_info = {}
8389

8490
'''
8591
A dictionary that holds information for the number of removals for each engine subtype.
@@ -108,8 +114,8 @@ def init():
108114
'MAX_NUM_REMOVALS_MONTHLY_SLC': 1,
109115
'MAX_NUM_REMOVALS_MONTHLY_TOTAL': 2}, ...}
110116
'''
111-
global num_removals_info
112-
num_removals_info = {}
117+
global removals_info
118+
removals_info = {}
113119

114120
'''
115121
A dictionary that holds the default expected AOS cost for each engine subtype.
@@ -224,5 +230,8 @@ def init():
224230
global total_RONSRADS_ground_time_by_hub_monthly
225231
total_RONSRADS_ground_time_by_hub_monthly = {}
226232

233+
global need_to_update_removal_info
234+
need_to_update_removal_info = {}
235+
227236

228237

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
YEAR-MONTH,ATL,CVG,DTW,LAX,MSP,SEA,SLC,OTHER
2+
2019-01,2158,10,1006,561,927,421,599,6459
3+
2019-02,1819,1,946,497,903,361,569,5728
4+
2019-03,2636,0,1092,458,1098,334,484,6966
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
YEAR-MONTH,ATL,CVG,DTW,LAX,MSP,SEA,SLC,OTHER
2+
2019-01,26159,2606,42975,11590,28155,38375,34586,975834
3+
2019-02,26186,0,38942,13302,23726,41318,24810,864140
4+
2019-03,19740,0,41651,11578,32192,22765,21517,921071
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
YEAR-MONTH,ATL,DTW,SEA,MSP,SLC,CVG,LAX,WA,OR,ID-MT,NCA,SCA,NV-AZ-TX,NM-CO,WY,MT,ID,NV-UT,ND,MN,SD-NE,KS-MO,IA-IL,AR-OK,WI-MI,WI,TX,AR-LA,LA,MS,AL,GA,SC,TN,NC,VA,NFL,SFL,IL,IN,MO-AR,KY-OH,WV-VA,IL-IN-MI,MI,OH,MD-VA-PA,DE-NJ-PA,PA,SNY,NNY,CT-RI-MA,NH-VT-ME
2+
2019-01,157097,115222,70440,104894,74945,3661,45939,12329,21345,0,97561,37653,60299,49201,0,12931,0,0,15084,0,44,37808,2145,6993,1499,7212,104258,0,32057,3194,5586,42597,66194,50401,155196,587,17104,11180,0,16022,12778,22248,28929,67347,0,4694,9424,66253,15631,148156,20819,85768,633
3+
2019-02,133533,102218,62830,91832,64801,454,40464,10008,17812,0,89436,34502,58938,44570,0,13414,0,0,16394,0,39,36400,0,14637,0,4300,91256,0,31089,1045,3341,48170,61552,49821,152226,0,10594,1559,0,12146,12536,16087,32948,48699,0,0,7233,61377,13128,109544,15032,85838,0
4+
2019-03,183058,114291,45626,108003,50719,0,34862,9652,8162,0,70190,23735,42546,37389,0,30505,0,0,28530,0,13695,40698,0,31573,29501,4160,142667,0,35787,1877,24593,130,53058,30514,150990,0,42905,15709,0,15847,5061,0,20040,88830,0,0,17227,99306,14396,120820,39984,19442,446
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
YEAR-MONTH,ATL,CVG,DTW,LAX,MSP,SEA,SLC,OTHER
2+
2019-01,210,0,0,87,0,0,3,257
3+
2019-02,177,0,0,77,2,0,1,247
4+
2019-03,230,0,0,73,10,0,0,269
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
YEAR-MONTH,ATL,CVG,DTW,LAX,MSP,SEA,SLC,OTHER
2+
2019-01,95821,0,0,25505,0,0,0,80561
3+
2019-02,65275,0,0,20298,0,0,0,105855
4+
2019-03,70246,0,0,24571,8932,0,0,57819
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
YEAR-MONTH,ATL,DTW,SEA,MSP,SLC,CVG,LAX,WA,OR,ID-MT,NCA,SCA,NV-AZ-TX,NM-CO,WY,MT,ID,NV-UT,ND,MN,SD-NE,KS-MO,IA-IL,AR-OK,WI-MI,WI,TX,AR-LA,LA,MS,AL,GA,SC,TN,NC,VA,NFL,SFL,IL,IN,MO-AR,KY-OH,WV-VA,IL-IN-MI,MI,OH,MD-VA-PA,DE-NJ-PA,PA,SNY,NNY,CT-RI-MA,NH-VT-ME
2+
2019-01,129740,0,0,0,231,0,43036,0,0,0,3618,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,109820,0,0,0
3+
2019-02,87964,0,0,180,64,0,30825,0,0,0,1526,210,150,900,0,0,0,0,0,0,0,0,0,0,0,0,0,0,180,90,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,131421,0,200,0
4+
2019-03,102458,0,0,9025,0,0,30505,0,122,0,1803,195,1170,0,0,0,0,0,0,0,0,120,0,0,0,0,0,0,120,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,82881,0,0,0
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
STATE REGION,ATL,CVG,DTW,LAX,MSP,SEA,SLC
2+
ATL,0,5838.06,6369.27,8939.58,6824.16,9455.82,7920.22
3+
CVG,5978.16,0,5534.79,8920.22,6208.56,8931.26,7546.3
4+
DTW,6487.02,5502.06,0,9068.06,6158.34,8941.22,7564.54
5+
LAX,9403.56,8742.78,9225.9,0,8189.82,6925.98,6131.18
6+
MSP,7219.62,6242.94,6294.24,8464.38,0,7834,6944.38
7+
SEA,10300.5,8972.94,9332.04,7037.02,7765.38,0,6327.26
8+
SLC,8789.76,7805.34,8078.49,6303.1,7070.4,6462.84,0
9+
AL,5482.31,5942.46,6484.04,8666.53,6768.85,9337.96,7794.93
10+
AR-LA,6177.74,6245.63,6769.31,7963.84,6485.9,8817.38,7257.5
11+
AR-OK,6696.9,6418.5,6842.33,7543.02,6260.81,8379.73,6874.84
12+
CT-RI-MA,7218.77,6528.3,6446.91,10344.56,7333.3,10145.19,8665.67
13+
DE-NJ-PA,6678.68,6061.5,6092.21,9880.12,6952.14,9754.95,8308.12
14+
GA,5442.72,6109.47,6635.64,9194.58,7125.66,9764.03,8203.78
15+
IA-IL,6760.26,5924.16,5989.09,8226.78,5468.63,8085.08,6836.84
16+
ID,9118.04,8084.22,8381.9,6555.13,7187.04,6154.74,5431.68
17+
ID-MT,9560.64,8317.18,8596.38,7196.01,7114.14,5787.22,5953.34
18+
IL,6246.78,5623.02,5931.9,8384.01,5870.52,8494.13,7085.74
19+
IL-IN-MI,6511.44,5549.66,5416.45,8781.18,5882.67,8658.74,7316.02
20+
IN,6090.62,5339.1,5668.01,8673.47,6056.6,8741.69,7349.31
21+
KS-MO,6803.82,6187.5,6565.08,7784.67,5882.94,8092.3,6643.72
22+
KY-OH,6003.9,5260.62,5590.74,8888.54,6278.91,9014.02,7563.24
23+
LA,6091.42,6477.47,7066.5,8288.03,6939.5,9237.7,7595.24
24+
MD-VA-PA,6415.34,5955.32,6020.84,9791.07,6889.28,9690.21,8248.84
25+
MI,6760.7,5737.26,5355.06,9150.78,6080.04,8793.66,7634.97
26+
MN,7565.84,6479.1,6551.49,8516.93,5386.97,7746.02,7014.3
27+
MO-AR,6245.46,5830.92,6237.51,8168.26,5994.32,8524.15,7068.26
28+
MS,5747.35,6099.42,6654.23,8438.48,6695.95,9218.91,7638.8
29+
MT,9005.58,7873.38,8111.43,7095.69,6685.92,6185.62,5752.95
30+
NC,5812.43,5947.76,6322.06,9528.65,7055.66,9847.91,8309.19
31+
NCA,9877.18,8998.48,9402.68,5660.7,8264.02,6409.06,6183.77
32+
ND,8039.84,6864.12,6970.88,8105.78,5675.99,7233.5,6655.2
33+
NFL,5733.9,6376.27,6930.25,9200.54,7308.69,9923.49,8328.69
34+
NH-VT-ME,7433.46,6672.6,6495.54,10451.42,7431.66,10245.98,8758.12
35+
NM-CO,7974.99,7258.08,7635.4,6703.28,6797.23,7242.63,5794.31
36+
NNY,6920.64,6022.86,5863.93,9771.05,6805.41,9604.51,8170.8
37+
NV-AZ-TX,8555.38,8098.29,8594.32,5918.76,7645.7,7393.89,6055.18
38+
NV-UT,9139.03,8176.96,8505.25,5984.89,7490.3,6574.72,5470.68
39+
OH,6488.01,5502.9,5380.61,9246.26,6322.37,9109.3,7717.68
40+
OR,10174.77,8981.76,9358.58,6542.9,8001.09,5540.71,6178.3
41+
PA,6566.62,5755.4,5715.59,9538.68,6619.07,9413.32,7995.61
42+
SC,5574.74,5982.12,6425.09,9372.1,7090.65,9832.23,8266.02
43+
SCA,9335.84,8660.63,9184.18,139.66,8153.53,7018.94,6096.52
44+
SD-NE,7379.67,6532.74,6638.89,7780.62,5664.51,7545.44,6424.54
45+
SFL,6214.18,6811.62,7422.8,9760.27,7762.63,10417.29,8801.52
46+
SNY,6859.66,6208,6196.52,10030.43,7044.48,9849.24,8394.76
47+
TN,5556.42,5601.46,6111.55,8735.71,6529.59,9178.32,7667.14
48+
TX,6742.66,6824.97,7426.6,7650.48,6890.58,8707.16,7114.28
49+
VA,6205.46,6035.63,6284.36,9805.5,7121.92,9928.59,8413.61
50+
WA,10090.62,8804.38,9148.43,7088.65,7603.38,5315.12,6245.69
51+
WI,6868.37,5872.33,5890.54,8629.12,5450.4,8203.85,7165.69
52+
WI-MI,7078.64,6061.84,5937.76,8918.11,5556.02,8283.86,7411.63
53+
WV-VA,6072.8,5604.2,5885.05,9386.27,6714.97,9511.93,8018.11
54+
WY,8454.35,7507.64,7730.42,6909.95,6563.99,6688.6,5626.84
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
YEAR-MONTH,ATL,CVG,DTW,LAX,MSP,SEA,SLC,OTHER
2+
2019-01,1513,130,855,374,1152,372,735,6107
3+
2019-02,1470,137,782,342,1108,343,654,5818
4+
2019-03,1725,90,1186,508,1328,383,816,7562
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
,1,2,3,4,5,6,7
2+
0,0.60653066,0.367879441,0.22313016,0.135335283,0.082084999,0.049787068,0.030197383
3+
1,0.39346934,0.367879441,0.33469524,0.270670566,0.205212497,0.149361205,0.105690842
4+
2,,0.264241118,0.25102143,0.270670566,0.256515621,0.224041808,0.184958973
5+
3,,,0.19115317,0.180447044,0.213763017,0.224041808,0.215785469
6+
4,,,,0.142876541,0.133601886,0.168031356,0.188812285
7+
5,,,,,0.10882198,0.100818813,0.1321686
8+
6,,,,,,0.083917942,0.07709835
9+
7,,,,,,,0.065288098
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
Hub/Region,RR coeff,D coeff,intercept
2+
ATL,0.000041,-0.001463,-0.933
3+
CVG,0.00008,0.0081,-5.56
4+
DTW,0.00003,-0.00175,-0.51
5+
LAX,,,
6+
MSP,-0.000005,0.001299,-1.86
7+
SEA,,,
8+
SLC,-0.000004,0.001359,-1.37
9+
OTHER,0.000011,0.00062,-21.5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
YEAR-MONTH,ATL,CVG,DTW,LAX,MSP,SEA,SLC,OTHER
2+
2019-01,65178,67662,78108,10627,114088,45846,51596,1118704
3+
2019-02,67848,68424,75257,3974,113285,43551,44902,1081240
4+
2019-03,32241,28926,79431,19168,88770,20231,26558,1215234
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
YEAR-MONTH,ATL,DTW,SEA,MSP,SLC,CVG,LAX,WA,OR,ID-MT,NCA,SCA,NV-AZ-TX,NM-CO,WY,MT,ID,NV-UT,ND,MN,SD-NE,KS-MO,IA-IL,AR-OK,WI-MI,WI,TX,AR-LA,LA,MS,AL,GA,SC,TN,NC,VA,NFL,SFL,IL,IN,MO-AR,KY-OH,WV-VA,IL-IN-MI,MI,OH,MD-VA-PA,DE-NJ-PA,PA,SNY,NNY,CT-RI-MA,NH-VT-ME
2+
2019-01,177923,152216,70208,205060,112142,81676,35493,2317,17334,33335,22578,38272,6021,30442,21295,15858,0,124,0,0,26580,19215,10785,0,0,40,226263,0,34367,0,0,0,0,15389,45626,0,48633,162624,0,21928,1734,24141,20351,37715,0,558,146965,9800,30187,332073,2326,145925,0
3+
2019-02,183060,142653,67983,199343,97002,83835,27493,2284,16016,31414,20816,36520,5448,29551,20914,14901,0,0,0,0,23807,17944,434,0,0,0,218947,0,34891,0,0,0,0,10938,44052,0,35574,170463,0,20634,1825,28425,19332,42289,0,0,152039,9800,28599,316094,0,141381,0
4+
2019-03,161088,171583,44509,192652,82028,38592,49499,20333,24392,23538,34441,37492,25848,18018,25832,18407,0,0,19054,0,25698,18296,13800,0,0,12073,211500,0,44482,0,0,0,12645,39432,71098,0,35065,163976,0,21292,13212,14640,19650,69543,0,24770,111075,447,16566,341387,22380,142864,13515
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
YEAR-MONTH,ATL,CVG,DTW,LAX,MSP,SEA,SLC,OTHER
2+
2019-01,2221,0,590,230,476,1,344,3716
3+
2019-02,2061,0,550,189,427,0,292,3444
4+
2019-03,2135,30,737,272,727,0,374,4705
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
YEAR-MONTH,ATL,CVG,DTW,LAX,MSP,SEA,SLC,OTHER
2+
2019-01,134902,0,66137,27900,65575,0,36456,611406
3+
2019-02,129284,0,62172,26555,48930,0,39243,571919
4+
2019-03,91396,431,32773,21107,60068,0,40568,664282
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
YEAR-MONTH,ATL,DTW,SEA,MSP,SLC,CVG,LAX,WA,OR,ID-MT,NCA,SCA,NV-AZ-TX,NM-CO,WY,MT,ID,NV-UT,ND,MN,SD-NE,KS-MO,IA-IL,AR-OK,WI-MI,WI,TX,AR-LA,LA,MS,AL,GA,SC,TN,NC,VA,NFL,SFL,IL,IN,MO-AR,KY-OH,WV-VA,IL-IN-MI,MI,OH,MD-VA-PA,DE-NJ-PA,PA,SNY,NNY,CT-RI-MA,NH-VT-ME
2+
2019-01,296967,117668,75,105997,69660,0,51574,0,0,0,0,47062,140419,0,0,12604,0,0,0,0,0,0,0,0,0,1218,64391,0,0,0,0,0,0,0,4301,0,47303,243236,0,0,0,0,0,0,0,0,40113,0,0,208063,0,86580,0
3+
2019-02,282130,106349,0,86604,66348,0,45686,0,0,0,0,40112,124806,0,0,11388,0,0,0,0,0,0,0,0,0,1276,67148,0,0,0,0,0,0,0,0,0,44300,228143,0,0,0,0,0,0,0,0,36705,0,0,198544,0,90023,0
4+
2019-03,245478,89102,0,110454,69233,2385,38947,0,0,0,0,91350,164983,0,0,12640,0,0,0,0,0,540,0,0,0,20007,74522,0,0,0,0,0,0,2052,27513,0,77956,170183,0,12625,0,0,0,0,0,0,42015,0,0,199984,0,99529,0
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
YEAR-MONTH,ATL,CVG,DTW,LAX,MSP,SEA,SLC,OTHER
2+
2019-01,1131,240,216,810,364,698,1015,2883
3+
2019-02,1013,217,198,764,371,637,912,2542
4+
2019-03,1525,407,174,681,593,783,945,3422

0 commit comments

Comments
 (0)