Skip to content

aeromaps.models.air_transport.air_traffic.total_aircraft_distance

total_aircraft_distance

Module for computing total aircraft distance flown.

TotalAircraftDistance

TotalAircraftDistance(name='total_aircraft_distance', *args, **kwargs)

Bases: AeroMAPSModel

Class to compute total aircraft distance flown for all commercial air transport.

Parameters:

Name Type Description Default
name str

Name of the model instance ('total_aircraft_distance' by default).

'total_aircraft_distance'
Source code in aeromaps/models/air_transport/air_traffic/total_aircraft_distance.py
22
23
24
def __init__(self, name="total_aircraft_distance", *args, **kwargs):
    super().__init__(name=name, *args, **kwargs)
    self.climate_historical_data = None

compute

compute(rtk, ask, ask_dropin_fuel, ask_hydrogen, ask_electric, total_aircraft_distance_init)

Total aircraft distance calculation.

Parameters:

Name Type Description Default
rtk Series

Number of Revenue Tonne Kilometer (RTK) for freight air transport [RTK].

required
ask Series

Number of (ASK) for all commercial air transport [ASK].

required
ask_dropin_fuel Series

Number of (ASK) for drop-in fuel aircraft [ASK].

required
ask_hydrogen Series

Number of (ASK) for hydrogen aircraft [ASK].

required
ask_electric Series

Number of (ASK) for electric aircraft [ASK].

required
total_aircraft_distance_init Series

Historical total distance travelled by aircraft over 2000-2019 [km].

required

Returns:

Type Description
total_aircraft_distance

Total distance flown by all aircraft [km].

total_aircraft_distance_dropin_fuel

Total aircraft distance flown by drop-in fuel aircraft [km].

total_aircraft_distance_hydrogen

Total aircraft distance flown by hydrogen aircraft [km].

total_aircraft_distance_electric

Total aircraft distance flown by electric aircraft [km].

Source code in aeromaps/models/air_transport/air_traffic/total_aircraft_distance.py
 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
def compute(
    self,
    rtk: pd.Series,
    ask: pd.Series,
    ask_dropin_fuel: pd.Series,
    ask_hydrogen: pd.Series,
    ask_electric: pd.Series,
    total_aircraft_distance_init: pd.Series,
) -> Tuple[pd.Series, pd.Series, pd.Series, pd.Series]:
    """
    Total aircraft distance calculation.

    Parameters
    ----------
    rtk
        Number of Revenue Tonne Kilometer (RTK) for freight air transport [RTK].
    ask
        Number of (ASK) for all commercial air transport [ASK].
    ask_dropin_fuel
        Number of (ASK) for drop-in fuel aircraft [ASK].
    ask_hydrogen
        Number of (ASK) for hydrogen aircraft [ASK].
    ask_electric
        Number of (ASK) for electric aircraft [ASK].
    total_aircraft_distance_init
        Historical total distance travelled by aircraft over 2000-2019 [km].

    Returns
    -------
    total_aircraft_distance
        Total distance flown by all aircraft [km].
    total_aircraft_distance_dropin_fuel
        Total aircraft distance flown by drop-in fuel aircraft [km].
    total_aircraft_distance_hydrogen
        Total aircraft distance flown by hydrogen aircraft [km].
    total_aircraft_distance_electric
        Total aircraft distance flown by electric aircraft [km].
    """

    historical_distance_for_temperature = self.climate_historical_data[:, 6]

    for k in range(self.climate_historic_start_year, self.historic_start_year):
        self.df_climate.loc[k, "total_aircraft_distance"] = historical_distance_for_temperature[
            k - self.climate_historic_start_year
        ]

    for k in range(self.historic_start_year, self.prospection_start_year):
        self.df_climate.loc[k, "total_aircraft_distance"] = total_aircraft_distance_init.loc[k]

    # Assumption: 1 RTK = 10 ASK
    for k in range(self.prospection_start_year, self.end_year + 1):
        self.df_climate.loc[k, "total_aircraft_distance"] = (
            (ask.loc[k] + 10 * rtk.loc[k])
            / (
                ask.loc[self.prospection_start_year - 1]
                + 10 * rtk.loc[self.prospection_start_year - 1]
            )
            * self.df_climate.loc[self.prospection_start_year - 1, "total_aircraft_distance"]
        )

    total_aircraft_distance = self.df_climate["total_aircraft_distance"]

    # Assumption: distribution proportional to ASK
    total_aircraft_distance_dropin_fuel = total_aircraft_distance * ask_dropin_fuel / ask
    total_aircraft_distance_hydrogen = total_aircraft_distance * ask_hydrogen / ask
    total_aircraft_distance_electric = total_aircraft_distance * ask_electric / ask
    self.df.loc[:, "total_aircraft_distance_dropin_fuel"] = total_aircraft_distance_dropin_fuel
    self.df.loc[:, "total_aircraft_distance_hydrogen"] = total_aircraft_distance_hydrogen
    self.df.loc[:, "total_aircraft_distance_electric"] = total_aircraft_distance_electric

    return (
        total_aircraft_distance,
        total_aircraft_distance_dropin_fuel,
        total_aircraft_distance_hydrogen,
        total_aircraft_distance_electric,
    )