Note
Go to the end to download the full example code.
Current aircraft data analysis#
general
Age at retirement statistics (1st quart, median, 3rd quart):
11.2
22.200000000000003
33.8
MJ/ASK (1st quart, median, 3rd quart):
2.735594960482418
1.9140598242312703
1.470981857919096
------------------------------------------------------------
commuter
Age at retirement statistics (1st quart, median, 3rd quart):
18.6
21.9
26.5
MJ/ASK (1st quart, median, 3rd quart):
1.2471671395733899
1.01437246745532
0.8806477276064654
------------------------------------------------------------
regional
Age at retirement statistics (1st quart, median, 3rd quart):
9.2
15.3
20.5
MJ/ASK (1st quart, median, 3rd quart):
0.8721712110881066
0.8049654507545625
0.7304370665787618
------------------------------------------------------------
short_medium
Age at retirement statistics (1st quart, median, 3rd quart):
12.350000000000001
24.8
33.849999999999994
MJ/ASK (1st quart, median, 3rd quart):
1.0041689022458484
0.8710610850660572
0.8223602688087988
------------------------------------------------------------
long_range
Age at retirement statistics (1st quart, median, 3rd quart):
18.7
23.65
29.5
MJ/ASK (1st quart, median, 3rd quart):
1.0371275806478637
0.9195083747903917
0.8283353494454628
------------------------------------------------------------
from matplotlib.pyplot import subplots
from numpy import array
from numpy import full_like
from numpy import isfinite
from numpy import nan
from pandas import read_csv
from pandas.errors import EmptyDataError
retirement_ages = {
"general": [
16.2,
23,
22.7,
14.5,
11.2,
22.3,
10.1,
41.9,
42.5,
34.4,
51.5,
3.8,
37.2,
37.6,
43.9,
18.9,
28,
25.9,
9.1,
28.2,
1.1,
6.8,
3.3,
9.4,
15.9,
30.6,
11.2,
43,
22.1,
57.7,
5.7,
11.6,
33.6,
24,
16.2,
6.9,
24.5,
11.8,
54.7,
21.3,
],
"commuter": [
33.7,
46.2,
32,
5.7,
25,
26.5,
23.2,
29.8,
28.2,
17.9,
27,
21.3,
30.2,
30,
15.8,
29.7,
26.6,
14.2,
29.7,
24.9,
27.4,
29.6,
17.8,
22.7,
25.7,
16.5,
19.2,
29.3,
26.8,
25.9,
19.3,
28.3,
28,
8.5,
22.6,
29.9,
27.5,
23.3,
25.4,
22.6,
27.2,
27.7,
18.8,
26.7,
26.6,
26.1,
16.4,
27.8,
27.3,
19.3,
26.9,
26.5,
28.1,
27.6,
19.9,
27.4,
26.6,
0.6,
26.9,
22.5,
23.4,
27.7,
22.7,
27.6,
22.6,
20.6,
20.5,
24.1,
21.6,
27.1,
22.8,
26.8,
22.7,
21.6,
27.5,
19.3,
21.4,
27.1,
30.1,
30.1,
21.7,
14.8,
40.1,
28.1,
16,
20.5,
20.5,
28.1,
21.7,
33,
21.6,
25.1,
25.1,
21.5,
26.1,
27.1,
20.6,
27.1,
21.1,
22.8,
22.6,
21.2,
21.2,
25.1,
28.1,
25.1,
28.1,
21.5,
31.6,
22.6,
31.2,
18.3,
26.1,
20.5,
23.6,
20.6,
21.7,
25.1,
28.1,
27.1,
24.1,
21.5,
20.4,
23.5,
17,
21.6,
21.9,
21.9,
21.6,
21.6,
23.4,
22.7,
23.2,
23.4,
23,
23.4,
23,
22.9,
22.9,
22.6,
21.9,
13.1,
7.6,
25,
9.6,
28.7,
28.1,
21.8,
28.2,
28.6,
28.5,
22.7,
25.2,
13.1,
30.2,
12.1,
28.3,
23.7,
23.5,
21.4,
3.5,
23,
22.3,
22.3,
20.6,
21.1,
20.9,
21.2,
21.6,
25.8,
27.9,
27.4,
26.4,
12.3,
25.2,
25.5,
16.1,
23.5,
26,
22.5,
42.6,
46,
26.2,
17.1,
16.1,
26.9,
27,
27.8,
13.9,
26,
28.8,
27,
25.9,
14.8,
22.6,
22.6,
23.5,
23,
23,
21.8,
21.6,
20.9,
33.9,
21.6,
27.5,
22.3,
22.1,
22.5,
22.5,
20.6,
23,
21.6,
21.1,
21.6,
22.1,
13.1,
22.5,
22.6,
22.7,
23,
23.2,
23.8,
23,
21.6,
21.8,
20.6,
21.6,
7.7,
23.4,
21.6,
12,
30.2,
28,
5.9,
36.9,
34.7,
9.3,
33.1,
33,
32.6,
32.2,
32.8,
33.8,
22.7,
32.3,
35.2,
32.8,
24.3,
15.2,
34.3,
26.3,
26.3,
30.9,
30.8,
30.9,
29.3,
17.2,
30.4,
26.7,
30.7,
31.1,
24.8,
27.1,
35.4,
25.5,
24.3,
26.7,
12.9,
33.3,
26.6,
25.5,
26,
16.9,
5,
25,
25,
30.3,
6.4,
25.4,
25.9,
31,
31.2,
26.6,
26.1,
23.7,
25.2,
32.4,
32.4,
31.9,
32.4,
27.8,
14,
15.3,
14.7,
26.5,
26.5,
30.8,
26,
31,
31,
34,
34.8,
9,
27.3,
25.2,
24.9,
28.6,
28.8,
20.4,
26.5,
27.2,
26.7,
34.9,
27,
29.6,
35.9,
37.5,
31.9,
18.4,
19.2,
36.8,
32.7,
32.3,
38.6,
30.6,
24.1,
36.2,
26.9,
16.4,
29.7,
36.1,
1.3,
36,
22.1,
33.5,
37,
33.2,
36.5,
22.9,
24.6,
24.7,
22.3,
24.8,
30.1,
2.8,
18.2,
30.8,
36.3,
23,
36.1,
35.9,
15.8,
30.7,
17,
34.9,
34.7,
34.5,
34.9,
34.5,
17.5,
34.5,
34.2,
23,
14.8,
18,
27,
33.8,
14.9,
15.8,
34.8,
33,
31.4,
35.7,
32,
26.4,
16.2,
35.7,
21.5,
21.5,
8.7,
22.3,
21.8,
24.2,
23.7,
24.9,
24.8,
24.8,
24.6,
25.9,
10.3,
24.2,
26.5,
29.7,
21.7,
14.8,
18.5,
22,
10.6,
31.6,
14.6,
32.9,
30.7,
32.7,
33,
1.2,
23,
33.4,
33.7,
15.7,
16.6,
34.3,
34,
34.4,
21.5,
17.9,
17.5,
35.2,
18.5,
23.4,
35.7,
13.7,
34.7,
20.6,
35.9,
9.7,
29.2,
26.6,
28.7,
47.7,
5,
4.7,
3.5,
4.2,
8.5,
4.2,
8.3,
2.1,
4.1,
3,
48.3,
13,
5.3,
20,
21.5,
21.5,
21,
21,
21.1,
20.5,
20.9,
21.3,
20.5,
20.6,
20.9,
20.5,
21.3,
20.5,
20,
21,
20,
20.3,
20.1,
20.2,
19.5,
19.5,
19.5,
20.6,
16.6,
16.8,
9.9,
19.4,
19.5,
19.6,
19.5,
19.6,
19.7,
20.3,
20,
20.3,
20.5,
20.3,
20.5,
20.5,
20.7,
20.8,
20.8,
20.9,
20.9,
20.9,
21.1,
21.2,
18.3,
17,
21.3,
18.2,
21.5,
21.4,
21.6,
21.4,
21,
9.9,
13.6,
19.9,
12.3,
63.2,
19.9,
19.8,
25.3,
25.1,
27.3,
33.5,
25.7,
25.8,
24.2,
24.3,
21.9,
24.9,
13.6,
27.7,
16.6,
29.9,
15.6,
28.9,
30.1,
31,
28.7,
30.3,
26.3,
32.6,
33.8,
16.5,
17.4,
16.4,
27.1,
14.8,
32.6,
22.7,
21.7,
36.8,
0.5,
29.2,
16.3,
36,
15,
11.3,
21.3,
17.2,
36.7,
23,
33.3,
13.6,
34.7,
30.9,
26.4,
10.7,
30.8,
24.7,
34.8,
18.6,
18.6,
16.4,
34.3,
15.3,
16.2,
33,
17.6,
15.1,
12.2,
14.9,
16.6,
29.3,
15.6,
15.9,
7.3,
11.6,
24.4,
13,
33.9,
13.2,
24.7,
4.5,
33.7,
11.1,
30.3,
2.9,
6.3,
1.9,
12.1,
18.8,
23.4,
10.2,
9.6,
25.2,
21.6,
14.6,
26.6,
24.2,
24.3,
29.8,
22.9,
27.2,
27.6,
30.8,
25.4,
22.9,
24.3,
28.4,
17.7,
19.9,
16,
35.9,
33,
27.4,
30.3,
35.3,
35,
16.8,
32.1,
6.9,
30.1,
20.2,
27.9,
27.8,
21.2,
22.4,
1.5,
20.3,
25.1,
20.2,
23.4,
23.5,
23.9,
23.1,
22.7,
18.7,
24.5,
22.1,
17,
17.3,
13.8,
12.2,
10.1,
5.7,
15.8,
36.9,
20.3,
20.4,
27.1,
21,
21,
33.1,
21.3,
19.7,
29.8,
29.9,
30,
32.9,
14.2,
34.1,
34.6,
22.3,
22.4,
22.5,
17.5,
22.6,
25.1,
13.5,
25.2,
23,
23,
19.1,
23.7,
24.3,
21.5,
24.3,
21.6,
24.6,
21.9,
22,
22.2,
22.4,
22.4,
22.5,
22.7,
19.1,
18.2,
9.6,
22.7,
18.3,
22.6,
12.3,
4.5,
18.3,
22.8,
20,
18.3,
25,
22.9,
23,
14.4,
11.8,
9.9,
18.4,
10,
23.1,
23.1,
18.4,
18.5,
25,
23.1,
20.1,
18.5,
23.2,
18.5,
12.2,
23.3,
23.3,
18.6,
18.5,
23.3,
12.3,
18.6,
10.3,
23.5,
18.5,
23.6,
23.6,
13.3,
18.6,
18.7,
18.6,
25,
18.7,
12.3,
11.7,
18.7,
20.4,
23.9,
23.9,
13.4,
18.7,
18.8,
23.9,
13.8,
18.8,
18.2,
13.6,
18.8,
24.7,
18,
24.1,
16.6,
18.9,
18.4,
18.1,
19,
11.1,
24.2,
19,
24.2,
24.4,
19.1,
19,
24.4,
14.3,
19,
16.3,
23.4,
11.3,
19.3,
13.3,
17.4,
17.4,
24.5,
19.6,
19.7,
17.6,
25.1,
24.6,
24.6,
19.7,
17.6,
19.9,
22.9,
24.7,
13.6,
24.8,
24.8,
19.9,
24.8,
17,
19.9,
16.8,
25,
19.9,
23.5,
9.2,
19.1,
17.2,
17,
20,
18.9,
17.2,
25.7,
25.2,
23.4,
17.3,
20,
12.8,
20,
19.2,
23.5,
17.7,
25.4,
20,
20,
17.7,
17.7,
19.3,
17.8,
17.8,
19.3,
20,
17.8,
18.1,
22.2,
18.1,
18.2,
17.3,
20.1,
18.2,
18.4,
18.4,
18.4,
25.6,
18.4,
18.4,
18.5,
18.5,
25.7,
20.1,
20.1,
17.2,
18.6,
18.7,
32.2,
18.7,
18.7,
25.9,
20.2,
18.7,
18.7,
18.8,
18.8,
12.8,
20.2,
18.8,
18.8,
26,
18.9,
18.9,
16.1,
18.9,
19,
26.2,
19.1,
19.1,
13.3,
20.2,
18.5,
19.1,
19.1,
14.3,
19.1,
19.2,
13.4,
20.2,
19.2,
19.3,
14,
19.4,
19.4,
27,
20.3,
19.5,
19.5,
14.3,
19.5,
19.6,
5.7,
20.3,
19.7,
19.7,
12.1,
19.8,
19.8,
22.2,
20.3,
23.6,
23.7,
19.8,
19.9,
11.1,
19.9,
19.9,
22.3,
20.3,
20,
20.1,
22.3,
20.1,
20.1,
20.3,
20.1,
20.1,
22.5,
20.2,
20.2,
9.6,
20.3,
20.3,
13.3,
20.4,
20.4,
8.6,
20.3,
23.7,
20.4,
20.5,
22.9,
13.6,
14.2,
3.5,
20.3,
14.4,
15.9,
23.1,
16.1,
16.4,
23.3,
],
"regional": [
23.5,
24.5,
25.1,
27.8,
24.6,
23.4,
24.1,
32.1,
33.6,
44.7,
32.9,
17.8,
16.8,
18.8,
16,
15.9,
16.3,
16.8,
16,
70.6,
17,
14.2,
17.1,
16.6,
16.3,
19,
11.2,
15,
32.1,
15.4,
54.8,
24.5,
21.1,
34.8,
33.8,
15,
25,
25,
24.7,
25.6,
20.8,
35.1,
25,
24.2,
7.3,
19.7,
19.7,
19.3,
19.4,
19.6,
21.8,
18.9,
20.6,
20.7,
18.6,
21.6,
21,
29.1,
0.7,
25.5,
31.4,
9,
30.2,
17.8,
20.3,
31.1,
18.8,
26.5,
24.5,
22,
15.3,
9.4,
21.9,
23.9,
16.6,
33.3,
30,
28.4,
23.5,
20.8,
25.3,
17.8,
21.3,
28,
35.5,
16.3,
12.1,
11.3,
12.4,
18.3,
11.3,
18.5,
18.2,
16.1,
11.5,
18.3,
17.8,
18.2,
18.3,
19.2,
18.3,
17.8,
18.3,
18.6,
18.3,
19,
18.4,
17.7,
18.1,
19,
18.1,
18.5,
18.3,
18.3,
19.9,
18.5,
17.8,
18.2,
20.8,
12.7,
16.1,
27,
24.8,
32.6,
21.4,
29.3,
25,
19,
20.8,
16.5,
22.2,
13,
12.7,
25.5,
15.6,
23.1,
15.4,
23.2,
14.1,
26.3,
16.7,
21.5,
26.7,
26.9,
32.4,
15.8,
21.3,
16.8,
17.8,
16,
14.2,
16.1,
17,
11,
3.5,
30.7,
24.7,
16.3,
22.1,
28.4,
26.6,
32.9,
33,
8.5,
0.5,
18.2,
30.5,
10.9,
10.1,
2.6,
12.5,
8.5,
12.4,
4.6,
5.4,
6,
6,
6,
8.1,
4.6,
7.5,
8.7,
17.4,
10.4,
12,
13,
12.4,
9.1,
13.1,
0.9,
12.9,
12.8,
19.3,
5.4,
17.6,
22.2,
21.2,
21.6,
5,
19.6,
1.2,
11.9,
10.2,
24.3,
14.7,
36.9,
5.1,
12.4,
5.1,
14.6,
33.5,
15.9,
31.1,
9,
10.5,
2.8,
31.5,
21.7,
10.8,
18.5,
19.1,
16.3,
18.2,
18.3,
18.6,
16.5,
16.8,
19.3,
19.8,
20.2,
20.3,
20.5,
3.3,
16.5,
21.3,
10.8,
21.3,
11.1,
21.5,
3.5,
4.2,
17.6,
6.4,
17.8,
11.5,
3.9,
4.3,
4.2,
22.3,
5.2,
5.3,
15.2,
15.3,
6,
6.3,
6.3,
17.9,
6.5,
6.7,
18.3,
1.6,
6.9,
7,
7.2,
7.6,
1.7,
1.7,
7.8,
7.9,
7.9,
1.9,
2.2,
18.4,
8.3,
2.2,
2.3,
8.7,
8.7,
2.4,
8.8,
9.1,
9.2,
7,
2.4,
2.4,
2.5,
9.6,
0.6,
2.5,
10.6,
2.5,
2.4,
11.7,
18.4,
2.3,
2.4,
2.2,
14.6,
8.2,
6.8,
15.5,
19.5,
19.7,
20.2,
20.5,
21.3,
8.2,
4.1,
8.2,
23.7,
24.1,
24.2,
26.6,
24.5,
19.7,
26.7,
15,
14.3,
5.5,
29.1,
14.3,
18.3,
28.7,
24.3,
17,
20.9,
6.8,
28,
7.8,
30.2,
30.2,
19.5,
30.3,
7.9,
30.4,
11.7,
7.7,
26.3,
12.1,
7.8,
12.9,
30.8,
12.7,
6,
0.5,
14.4,
20.6,
12.6,
17.1,
32.5,
24.4,
12.9,
3.7,
32.8,
7.4,
10.7,
13.2,
2.2,
2.7,
3,
3.6,
4.7,
4.9,
5.5,
5.9,
5.9,
6.1,
6.6,
7.5,
7.7,
7.6,
7.6,
7.9,
8.1,
8.1,
8.2,
8.2,
8.3,
8.3,
8.5,
8.6,
8.7,
8.7,
8.8,
0.9,
8.8,
9.1,
9.5,
9.5,
9.5,
9.5,
9.8,
10.1,
10.1,
11.6,
11.9,
11.9,
12.2,
12.6,
12.7,
12.9,
8.1,
14,
14.8,
14.9,
15.9,
8.1,
1.1,
17.2,
1.4,
14.1,
24,
1.6,
14.3,
10.7,
6.7,
31.2,
7.4,
14.1,
17.6,
13.9,
15.6,
15.9,
27.1,
36.3,
31.5,
12,
14.3,
0.7,
0.2,
2.7,
6.1,
7.7,
8.2,
12,
23.2,
13.2,
22.1,
13.7,
1,
0.3,
15.6,
15.7,
6.6,
0.8,
15.7,
15.4,
15.7,
19.2,
15.5,
10.3,
36,
20.5,
32.9,
10.3,
12.2,
3.7,
14,
14.1,
7.3,
7.3,
7.3,
10.3,
11.5,
10.8,
11.3,
11.6,
53.9,
54,
4.1,
32.4,
34,
17.6,
17.7,
15.1,
3.6,
3.7,
15.2,
5.6,
5.9,
6,
15.6,
6.1,
7.6,
8.9,
9.2,
9.6,
15.3,
15.6,
14.2,
14.4,
14.5,
14.6,
17.3,
14.7,
0.2,
15,
0.3,
15,
15.1,
1.5,
15.3,
15.4,
15.4,
0.3,
13.7,
13.9,
16.1,
14,
16.1,
16.3,
16.6,
14,
16.6,
16.8,
14.2,
14,
15.4,
15.5,
15.7,
15.8,
2.9,
18.8,
4.8,
9.3,
6.5,
5.9,
7.2,
7.8,
7.9,
7.8,
9.3,
9.4,
9.7,
7.9,
3.2,
6.4,
10.7,
7.9,
8,
8.1,
13.4,
11.9,
11.9,
12.1,
12.1,
12.1,
12.2,
12.2,
8.2,
12.8,
13.1,
8.2,
5.7,
14.1,
14.1,
14.2,
14.3,
8.2,
8.2,
8.3,
8.3,
15.7,
15.7,
15.8,
15.9,
15.9,
16,
16.1,
16.2,
10.4,
19,
16.5,
19.6,
8.4,
8.4,
20.8,
20.7,
20.7,
21.1,
18,
21.2,
9.2,
9.4,
14,
21.3,
21.9,
22,
21.9,
21.9,
17.2,
11.8,
22.1,
22.1,
22.1,
22.1,
15.4,
18.5,
22.7,
23.7,
14,
9.4,
8.3,
14.3,
35.8,
14.6,
29.3,
12.2,
31.9,
10.4,
11.2,
15,
15,
0.3,
0.7,
31.6,
6.4,
6,
9,
12.1,
13.4,
12.5,
12.3,
11.8,
6.7,
12.8,
73,
12.6,
10.9,
18.5,
4.3,
46.5,
24,
34.1,
32.4,
18.9,
37,
56.6,
31.8,
56.8,
57.1,
27.1,
6.1,
6.6,
11.8,
19.6,
9.5,
9.7,
9.7,
10.6,
10.6,
10.7,
10.8,
10.8,
10.9,
10.9,
11,
11.1,
11.1,
11.2,
11.2,
11.3,
11.4,
4.4,
3.9,
11.7,
12.2,
12.3,
12.2,
12.4,
12.4,
6.2,
12.5,
13,
13.1,
13.2,
13.4,
13.6,
13.7,
14.5,
14.7,
14.8,
15.3,
13.1,
15.5,
16,
16.1,
16.1,
16.2,
16.3,
20.5,
20.5,
21.2,
4.1,
14.1,
17.2,
17.4,
34.9,
35,
25.7,
21.4,
56.4,
30.9,
32.1,
26.8,
19.6,
17.3,
17.6,
17.6,
17.8,
17.9,
17.9,
18.1,
18.4,
18.7,
18.7,
18.7,
18.9,
19,
19,
19.1,
19.1,
19.1,
19.2,
19.3,
19.4,
19.5,
22.2,
3.9,
28.7,
22.8,
24.4,
19.9,
25.9,
27.1,
24,
26.8,
27,
27.2,
19.7,
27.2,
25.3,
27.4,
22.2,
27.5,
26,
21.5,
23.9,
27.9,
56.4,
57.6,
34.6,
30.8,
],
"short_medium": [
32.4,
0.1,
25.7,
27.2,
8.6,
20.6,
30.4,
19.9,
21.1,
35.7,
18.5,
26.7,
21.2,
21.2,
21,
36.8,
36.7,
23.6,
15.5,
29.6,
17,
36.5,
24.9,
19.3,
34.4,
46.9,
21.5,
38.8,
7.8,
13,
20.1,
45.3,
38,
37.7,
13.5,
21.7,
51.9,
56.4,
56.7,
12.5,
23.2,
25.2,
21.5,
21.7,
47.4,
21.6,
21.3,
20.7,
37.6,
29.1,
57,
20.2,
20.8,
25.1,
12.4,
26.5,
36.2,
25.3,
25.7,
32.6,
35.1,
32.7,
46.8,
27,
46.5,
25.4,
19.8,
2.9,
24.1,
35.8,
16.5,
4.5,
25.8,
24.7,
33.4,
16.5,
33.6,
33.5,
57.5,
37.6,
55.8,
25.8,
52.4,
51.7,
56.1,
56.6,
30.6,
57.7,
45.1,
3,
56.7,
54.3,
58.4,
63.5,
55.2,
55.9,
30,
19.8,
29.9,
37.3,
15.2,
30.2,
7.5,
51.2,
31.6,
54.9,
4.2,
15.3,
30.2,
55.7,
30.1,
30.3,
32.8,
5.2,
9.6,
8.9,
5.3,
10.7,
11,
8.2,
10.8,
8.2,
52.3,
5.5,
1.9,
12.1,
38.6,
54.6,
11.5,
8.8,
9.7,
8.4,
5.6,
4.9,
10.7,
37.5,
38.6,
13.9,
37.1,
11,
20.9,
13.8,
37.3,
38.7,
35.4,
11,
5.7,
11.3,
14,
37.5,
56,
45.5,
33.4,
30.2,
49,
3.6,
16.8,
19.3,
16.9,
40,
0.2,
13,
16.4,
14.6,
4.1,
16.5,
16,
16,
10.9,
16.6,
3.7,
11.8,
16.2,
17.2,
6.8,
13.7,
16.3,
35.2,
4.1,
38.1,
2.6,
23,
2.6,
4,
2,
0.2,
1.8,
0.1,
0.3,
3.8,
3.2,
2.6,
4.2,
3.9,
21.5,
8.2,
17.5,
51.8,
64.1,
16.6,
8.3,
14.1,
22,
40,
19.9,
4.3,
31.6,
5.7,
36.1,
27.4,
31.2,
32.1,
3.1,
29.5,
9.2,
21,
55.3,
9.8,
10.3,
10.6,
10.1,
6.2,
26.9,
27,
9.3,
9.2,
8.1,
10.1,
9.6,
8.1,
8.5,
12.1,
8.5,
27.1,
30.9,
9,
8.3,
26,
30.1,
7.9,
8.8,
37.5,
30.9,
23.2,
33.9,
8.7,
9,
10.5,
9.4,
8.9,
9.2,
9.1,
8.1,
8.5,
10.9,
30.7,
29.9,
25.8,
30.1,
34.7,
30,
24.7,
31.7,
30.8,
16,
32.6,
22.9,
34.6,
23.9,
30.7,
13.5,
5.7,
15.2,
30.6,
30.6,
30.5,
29.9,
28.7,
24.8,
24.9,
1.2,
25,
16.4,
30,
26.6,
42.6,
21.9,
42.9,
23.7,
24.7,
23.1,
20,
43,
22.5,
17.7,
37.2,
19,
42.6,
17.1,
23.6,
37.2,
27.6,
25.4,
26.3,
22.8,
23.7,
23.1,
9.7,
9.8,
32.5,
9.7,
9.8,
9,
6.2,
0.1,
10.3,
7.2,
9.7,
9.6,
38.6,
10.2,
41.7,
11.4,
36.5,
10.1,
8.7,
7.2,
10.3,
8.1,
9.4,
11.4,
7.4,
11.5,
11.5,
12.2,
12.3,
12.4,
12.6,
35.7,
13.8,
32.2,
11.1,
14.3,
10.2,
12.1,
6.9,
22,
14.5,
12.3,
12.2,
12.2,
7.5,
41.3,
41.5,
10,
11.8,
8.6,
42.9,
15.6,
10.5,
12.5,
10.3,
41.8,
24.9,
19.5,
30.4,
20.3,
21.9,
30.4,
19.1,
26.1,
30.4,
21.5,
46.7,
20.9,
27.2,
24.4,
15.3,
5,
50.2,
32.1,
31.1,
20.9,
36.2,
28.9,
15.3,
16.2,
15.6,
28.4,
29.5,
28.2,
26.7,
33.2,
39.1,
17.7,
17.6,
18.9,
24.1,
18.8,
24.2,
20.1,
19.9,
21.6,
5.3,
26.7,
26.8,
19.9,
20.8,
20.8,
19.9,
4.5,
15.4,
26.8,
34.4,
18.4,
55.4,
27,
31.9,
11.2,
24.5,
15.2,
29.3,
12.5,
37.7,
13.6,
21.5,
1.9,
14.5,
14.9,
38.8,
10.6,
12.2,
54.3,
8.9,
3.9,
44,
36.4,
27.3,
16.1,
29.4,
29.5,
31.1,
30.5,
44,
32.6,
27.6,
35.5,
1.2,
7.2,
19.9,
40.9,
10.3,
8.5,
32.4,
32.5,
32.5,
41.6,
32.6,
32.6,
7.7,
9.4,
8.8,
9.6,
9.8,
23.5,
24.5,
24.3,
20.8,
21.5,
26.6,
25.4,
44.2,
35.6,
45.5,
26.2,
41.4,
40.5,
34.6,
43.6,
40.4,
40.3,
45.4,
6.5,
43.1,
55.5,
27.6,
42.7,
28.9,
29,
26.2,
27,
56,
29.6,
27.7,
29.9,
9.5,
3.7,
30.1,
30.3,
26.4,
24.8,
29.7,
30.8,
31,
31.2,
20.6,
31.3,
14.9,
37.8,
34.6,
31,
31.9,
5.8,
31.8,
32.1,
31.7,
32.2,
32.4,
21.3,
32.5,
30,
30.6,
27.2,
55,
27.2,
33.3,
32.6,
55.2,
55.1,
18.9,
54,
30.3,
6.1,
11.5,
24.6,
40.1,
5.9,
2.9,
11.6,
11.4,
38.4,
12.6,
24.1,
36.7,
38.3,
26.6,
9.7,
38.8,
39.7,
24.9,
39,
10.4,
25.1,
10.9,
40.2,
24.1,
40,
11.1,
39.6,
27.8,
12.1,
11.3,
18,
11.4,
12,
13,
13.1,
13.1,
13.6,
13.6,
40.1,
8,
34.5,
52.7,
14,
10.5,
14.4,
4.3,
14.6,
14.8,
14.9,
12.1,
12.1,
44.3,
38.2,
16.2,
35.9,
17.3,
18.5,
33.7,
39.7,
34.1,
36.7,
40.4,
32,
40,
42.6,
11.1,
41.2,
20.5,
56,
40.1,
27.3,
41.1,
41.2,
51,
9.6,
43.9,
12,
43.7,
55.6,
25.3,
43.9,
40.3,
21,
27.7,
29.6,
32.1,
32.3,
40.2,
20.6,
11,
7.2,
42.7,
43.8,
44.4,
41.5,
22.1,
21.8,
21.9,
22.1,
31.4,
31.7,
32.1,
52.6,
33.7,
34,
34.1,
49,
48.9,
37.7,
48,
22.4,
33,
24.2,
29.7,
54,
23.8,
25.7,
29.8,
35.2,
34.3,
30,
31,
31,
26.9,
26.8,
28.2,
30.8,
5,
9.1,
32.2,
48.8,
21.4,
21.6,
20.3,
33.6,
20.6,
21.6,
21.7,
21.8,
21.4,
33.9,
22.2,
21.5,
20.9,
33.8,
21,
37.1,
44.7,
26,
8.2,
8.5,
30.5,
37.8,
27.6,
22.6,
36.3,
15.9,
35.8,
38.2,
31.8,
32.7,
32.9,
33.5,
45.8,
35.3,
33.8,
31.3,
32.8,
54,
34.6,
54.3,
33.3,
33.8,
34.7,
31.9,
26.9,
21.9,
18.6,
29.9,
29.9,
17.7,
18.7,
12.8,
47.9,
28.2,
17.3,
32.2,
32.6,
52.9,
7.5,
54,
36.8,
55.6,
25.1,
54.1,
55.3,
29.4,
9.3,
9.4,
43,
9.7,
9.8,
9.9,
10.2,
11.1,
11,
11.1,
11.2,
11.2,
51.4,
5.8,
32.9,
14.7,
15.2,
15.2,
53.5,
5.6,
54.4,
1,
27.4,
20.2,
20.3,
20.4,
20.4,
20.4,
17.5,
53.7,
31.3,
33,
13.6,
31.7,
33.8,
31.4,
35.6,
54.9,
51.9,
34.7,
52.9,
27.9,
35.8,
12.7,
54.3,
30,
33.6,
31.7,
54.3,
5.2,
21,
45.8,
13.7,
5.5,
9.5,
9.6,
33.2,
11.2,
11.4,
11.7,
12.1,
34.4,
30.6,
13,
40.2,
7.9,
29.2,
13.1,
13.2,
40.3,
],
"long_range": [
21.6,
24,
24,
54,
12.2,
12.1,
10.4,
23.9,
7.1,
6.7,
24.2,
21.4,
23,
18.2,
13.9,
13.4,
35.4,
25.4,
24.2,
24.2,
40.7,
15.2,
36.4,
23.6,
23.4,
39.1,
12.6,
30.8,
22.7,
39.5,
39.6,
41.1,
13.3,
22.6,
38.9,
21.5,
17,
43,
21.2,
36.5,
14.2,
23.6,
10.3,
40.1,
23.1,
8.6,
24.7,
33.4,
22.9,
23.7,
14.3,
13.1,
35.4,
36.4,
24.3,
13,
15.1,
27,
7.9,
36.7,
14.4,
54.5,
34.2,
23.6,
14.4,
14,
40.2,
30.7,
23.6,
22.1,
32.5,
13.4,
34.4,
38.5,
38.4,
53.8,
18.1,
17.7,
40.9,
19.2,
27.7,
6.6,
44.2,
19,
26.2,
17.6,
47,
16.5,
13.6,
13.3,
16.4,
18.1,
23.8,
23.1,
33.4,
25.6,
41.2,
22.5,
43.8,
21.6,
16.2,
41.1,
22.3,
22.9,
22.1,
14.4,
23.4,
13.4,
2.9,
22.2,
22.3,
26.5,
13.1,
12.9,
43.7,
19.4,
15.6,
21.8,
13.3,
42.7,
42.8,
25.7,
22.6,
50.3,
20.6,
22.6,
21.8,
23.9,
23.9,
42.8,
19.3,
20.9,
18.5,
14,
19,
30.1,
41.8,
21.6,
24.2,
46.9,
27.6,
3.6,
22.6,
21.8,
30.4,
53,
22.7,
33.2,
50.5,
53.9,
43.2,
33,
46.8,
44.3,
50.4,
45.9,
26.2,
7.9,
28.2,
47.6,
50.8,
32.9,
5.9,
46.4,
50.1,
24.6,
30.8,
47.6,
26,
37.3,
5.9,
22.7,
21.4,
17,
35.1,
34,
18.3,
27,
25.4,
25.6,
21.1,
27.9,
33.5,
21.1,
36.7,
33.3,
25.7,
25.5,
26.1,
27.8,
23.7,
23.6,
28,
13.8,
37.6,
24.8,
20.1,
23.5,
36.8,
25.2,
20,
22.7,
16.8,
33.9,
22.8,
30.4,
38.6,
16.8,
20.4,
24.3,
23.7,
25,
25.3,
41.9,
32.9,
4.5,
31.8,
13.5,
27.7,
28.6,
28.8,
28.9,
38.4,
14.9,
21.3,
29.1,
30.4,
16.8,
21.4,
22.1,
38.7,
41.8,
23.3,
22.7,
18.4,
18.6,
28.5,
23.6,
32.2,
49.1,
22.7,
13.2,
22.7,
38.4,
38.3,
21.8,
22.3,
22.3,
10.5,
17.1,
30.8,
25.1,
17.1,
21.1,
28.9,
31.7,
30.9,
25.9,
19.9,
33.1,
28.9,
23.9,
28.8,
37.3,
40.1,
23.7,
23.5,
17.8,
31.8,
17.9,
26.6,
42.4,
18.1,
32.4,
31.8,
18,
16.7,
22.6,
29.7,
22.9,
13.4,
23.6,
5.7,
13.9,
21.9,
21.8,
26.1,
24,
20.2,
24.1,
36,
38,
12,
38.1,
14,
24.2,
21.2,
20.5,
25.7,
36.6,
24.2,
20.2,
31.9,
9.3,
17.1,
19.3,
25.5,
19.3,
25,
25,
26,
20.6,
36.7,
16.5,
20.7,
25.9,
14.7,
9.3,
9.5,
9.5,
22.5,
22.2,
24.2,
21.6,
22.2,
37.8,
22.7,
21.2,
26.1,
20.2,
15.7,
20.4,
17.5,
25.8,
16.8,
27.4,
20.1,
9.6,
23.2,
26,
23.2,
18.1,
27.8,
27.8,
16.4,
28.4,
28.8,
23.6,
7,
22.1,
23.6,
23.6,
17,
17,
36.8,
5.4,
21.2,
33.1,
22.2,
22.4,
26.7,
25.7,
43.5,
21.1,
21,
35.6,
34,
41.1,
29.8,
54.4,
54.4,
24,
26.5,
0.1,
25.6,
22.7,
12,
12.1,
13.2,
24.3,
23.1,
11.7,
35.9,
32.6,
4.5,
54.4,
28.1,
54.4,
53.6,
34.9,
25.2,
48.5,
47.6,
20.1,
42.5,
20.4,
22.6,
21.7,
35.4,
23.8,
31.8,
39.5,
20.6,
31.9,
31.9,
21.1,
21.2,
19.3,
22.4,
18.3,
40.9,
18.2,
15.8,
18.2,
19,
14.8,
15.8,
28.9,
30.2,
18.5,
0.4,
0.1,
0.9,
0.1,
19.4,
1.7,
22,
20.4,
35.3,
1.2,
0.1,
2,
22.4,
1.8,
12.6,
4.1,
0,
33.4,
0.8,
30.7,
12,
0.8,
0.7,
17.1,
21.8,
12.1,
0.4,
30.9,
11.5,
12.3,
0.3,
12.4,
12.3,
9.6,
12.2,
28.3,
2.4,
0.8,
24.3,
15.2,
14.6,
19.1,
18.2,
20.1,
23.5,
19.2,
44.7,
4.3,
19.3,
29,
23.6,
25.1,
23.6,
17.1,
23.8,
23.9,
37.5,
23.9,
23.2,
19.5,
24.2,
36.2,
24.2,
15.4,
32.8,
29.3,
20.4,
15.8,
23.4,
28.3,
28.2,
35.3,
37.2,
17.4,
29.3,
29.4,
15.7,
24.1,
46.8,
35.2,
47,
31,
44.5,
47,
46.3,
47.6,
35.5,
29.9,
27.7,
30.9,
13.2,
13.4,
18.4,
31.7,
25.6,
22.9,
18.7,
26.1,
18.1,
37.4,
18.6,
34.3,
20,
38.5,
33.3,
38.4,
21.4,
20.3,
32.7,
39.3,
26.8,
20.1,
32.3,
7.8,
21.1,
19.8,
8.4,
8.6,
22.5,
23.4,
19,
14.2,
19.3,
11.5,
25.4,
34.3,
23.2,
28.8,
12.1,
12.2,
23.3,
14.2,
34.2,
35.5,
21.2,
13.3,
28,
27.1,
23.3,
24.7,
26.4,
23.4,
25.2,
24.5,
24.5,
23.7,
21.3,
20.5,
25.3,
21.8,
25.4,
23.5,
46.9,
25.6,
23.4,
25.8,
29.5,
27.7,
27.7,
22.8,
23.5,
31.5,
29.5,
25.5,
29.9,
25.6,
20.6,
37.7,
26.1,
23.4,
3.1,
23.2,
27.7,
25.4,
26,
24.7,
23.3,
23.6,
33.9,
2.1,
28,
0,
22.6,
26.7,
23.5,
29.3,
25.6,
27.5,
27.6,
25.7,
24.6,
26.8,
24.6,
13.8,
15.2,
23.5,
23.1,
24,
24.2,
21.3,
25.5,
24.5,
29.2,
24.2,
26.9,
27.6,
25.6,
36.7,
23.8,
38.4,
24.6,
24.9,
25,
32.8,
37.7,
26.1,
18.2,
23.8,
29.7,
29.9,
22.2,
27.2,
22.3,
22.4,
28,
25.6,
26.5,
24.5,
25.4,
23,
18.5,
25.4,
25.9,
26,
7.8,
24.4,
16.1,
22.8,
11.5,
23.1,
23.2,
26.5,
26.6,
23.1,
11.9,
24.4,
33.8,
15.3,
21.7,
12.1,
11.4,
32.7,
22.9,
13.2,
16.1,
11.5,
18.7,
26.8,
21.9,
12.5,
24.3,
21.7,
15.3,
14.7,
20.4,
20.3,
16.1,
15.1,
17.3,
17.3,
17.3,
17.6,
21,
23.1,
24.1,
25.3,
31.2,
8.7,
23.8,
24.9,
25.1,
30.4,
21.3,
20.9,
13.7,
22.9,
27.3,
11,
31.7,
15,
13.7,
14.9,
13.2,
13.8,
13.8,
14.5,
35.1,
36.2,
23.3,
26.3,
26.3,
22.8,
22.8,
22.8,
25.5,
23,
22.9,
23,
18.5,
22.8,
22.9,
37.5,
37.5,
27.2,
35.5,
24.1,
35.5,
23.4,
29.2,
16.5,
24.3,
29.2,
29.1,
28.3,
1.4,
28.3,
2.9,
3,
3.1,
39.3,
2.4,
39.7,
39.9,
23.7,
40,
35,
3.2,
24.3,
39.8,
23.1,
23.2,
23.2,
30,
3.4,
23.2,
23.2,
23.2,
23.1,
23.4,
23.5,
23.4,
23.5,
23.5,
23.6,
23.6,
23.7,
23.3,
23.6,
23.7,
24.1,
23.8,
24,
23.2,
24.3,
25.8,
23.8,
24.4,
24.5,
3.3,
4.7,
25.3,
24.4,
21.3,
16,
26,
7.8,
17.8,
25.6,
17.8,
31.6,
31.8,
31.5,
32.2,
32.3,
25.8,
21.7,
33.5,
26,
27.8,
35.7,
31.5,
25.5,
31.6,
31.7,
31.6,
31.8,
32.3,
32.4,
32.5,
31.6,
32.6,
25.4,
32.6,
26.4,
11.3,
31.5,
11.5,
31.2,
],
}
retirement_data = [array(ages) for ages in retirement_ages.values()]
fig1, ax1 = subplots(1, 1, figsize=(4.2, 4.2), layout="constrained")
retirement_post = ax1.boxplot(retirement_data, showmeans=True)
ax1.set_title("Aircraft age at retirement")
ax1.set_ylabel("years")
ax1.set_ylim(0, 75)
ax1.set_xticks([1, 2, 3, 4, 5], labels=["<20", "20-50", "50-80", "80-120", "120-250"])
ax1.set_xlabel("Number of seats")
fig1.savefig("current_aircraft_lifetime.pdf")
fig2, ax2 = subplots(1, 1, figsize=(4.2, 4.2), layout="constrained")
# The AeroSCOPE dataset is not distributed with the repository: place the
# per-route 2019 export (columns distance_km, ask, rpk, co2) next to this
# script to reproduce the passenger-efficiency distribution.
energy_post = None
try:
aeroscope_df = read_csv("./AeroSCOPE_dataset.csv")
except EmptyDataError:
print("AeroSCOPE_dataset.csv is empty - skipping passenger efficiency figure.")
else:
distances = aeroscope_df["distance_km"].to_numpy()
asks = aeroscope_df["ask"].to_numpy()
rpks = aeroscope_df["rpk"].to_numpy()
co2 = aeroscope_df["co2"].to_numpy()
valid = (
isfinite(distances) & isfinite(asks) & isfinite(co2) & (asks != 0) & (co2 > 0)
)
co2_per_ask = full_like(asks, nan, dtype=float)
co2_per_ask[valid] = co2[valid] / asks[valid]
ask_per_mj_categories = [
((1.0e3 / 88.7) * co2_per_ask[(valid) & (distances <= 500)]) ** (-1),
(
(1.0e3 / 88.7)
* co2_per_ask[(valid) & (distances > 500) & (distances <= 1500)]
)
** (-1),
(
(1.0e3 / 88.7)
* co2_per_ask[(valid) & (distances > 1500) & (distances <= 4500)]
)
** (-1),
(
(1.0e3 / 88.7)
* co2_per_ask[(valid) & (distances > 4500) & (distances <= 8000)]
)
** (-1),
(
(1.0e3 / 88.7)
* co2_per_ask[(valid) & (distances > 8000) & (distances <= 15000)]
)
** (-1),
]
energy_post = ax2.boxplot(ask_per_mj_categories, showmeans=True)
ax2.set_title("Aircraft passenger efficiency")
ax2.set_ylabel("seat-km / MJ")
ax2.set_ylim(0, 2.5)
ax2.set_xticks(
[1, 2, 3, 4, 5], labels=["<0.5", "0.5-1.5", "1.5-4.5", "4.5-8", "8-15"]
)
ax2.set_xlabel("Flight distance (thousand km)")
fig2.savefig("current_aircraft_energy.pdf")
for i, market in enumerate(retirement_ages.keys()):
print(market)
print("Age at retirement statistics (1st quart, median, 3rd quart):")
print(min(retirement_post["boxes"][i].get_ydata()))
print(min(retirement_post["medians"][i].get_ydata()))
print(max(retirement_post["boxes"][i].get_ydata()))
if energy_post is not None:
print("MJ/ASK (1st quart, median, 3rd quart):")
print((min(energy_post["boxes"][i].get_ydata())) ** -1)
print((min(energy_post["medians"][i].get_ydata())) ** -1)
print((max(energy_post["boxes"][i].get_ydata())) ** -1)
print()
print("------------------------------------------------------------")
Total running time of the script: (0 minutes 0.695 seconds)

