pycontrails.models.emissions.gaseous

Calculate nitrogen oxide (NOx), carbon monoxide (CO) and hydrocarbon (HC) emissions.

This modules applies the Fuel Flow Method 2 (FFM2) from DuBois & Paynter (2006) for a given aircraft-engine pair.

References

Functions

co_hc_emissions_index_profile_ffm2(ff_idle, ...)

Create carbon monoxide (CO) and hydrocarbon (HC) emissions index (EI) profile.

ei_at_cruise(ei_sl, theta_amb, delta_amb, ...)

Convert the estimated EI at sea level to cruise conditions.

estimate_ei_co_hc_ffm2(log_ei_profile, ...)

Estimate carbon monoxide (CO) or hydrocarbon (HC) emissions index (EI).

estimate_nox_ffm2(log_ei_nox_profile, ...[, ...])

Estimate the nitrogen oxide (NOx) emissions index (EI) at cruise conditions.

nitrogen_oxide_emissions_index_profile_ffm2(...)

Create the nitrogen oxide (NOx) emissions index (EI) profile for the given engine type.

Classes

EDBGaseous(manufacturer, engine_name, ...)

Gaseous emissions data.

class pycontrails.models.emissions.gaseous.EDBGaseous(manufacturer, engine_name, combustor, bypass_ratio, pressure_ratio, rated_thrust, temp_min, temp_max, pressure_min, pressure_max, ff_7, ff_30, ff_85, ff_100, ei_nox_7, ei_nox_30, ei_nox_85, ei_nox_100, ei_co_7, ei_co_30, ei_co_85, ei_co_100, ei_hc_7, ei_hc_30, ei_hc_85, ei_hc_100, sn_7, sn_30, sn_85, sn_100, sn_max)

Bases: object

Gaseous emissions data.

ENGINE IDENTIFICATION AND TYPE:

manufacturer: str

engine manufacturer

engine_name: str

name of engine

combustor: str

description of engine combustor

ENGINE CHARACTERISTICS:

bypass_ratio: float

engine bypass ratio

pressure_ratio: float

engine pressure ratio

rated_thrust: float

rated thrust of engine, [\(kN\)]

FUEL CONSUMPTION:

ff_7: float

fuel mass flow rate at 7% thrust setting, [\(kg s^{-1}\)]

ff_30: float

fuel mass flow rate at 30% thrust setting, [\(kg s^{-1}\)]

ff_85: float

fuel mass flow rate at 85% thrust setting, [\(kg s^{-1}\)]

ff_100: float

fuel mass flow rate at 100% thrust setting, [\(kg s^{-1}\)]

EMISSIONS:

ei_nox_7: float

NOx emissions index at 7% thrust setting, [\(g_{NO_{X}}/kg_{fuel}\)]

ei_nox_30: float

NOx emissions index at 30% thrust setting, [\(g_{NO_{X}}/kg_{fuel}\)]

ei_nox_85: float

NOx emissions index at 85% thrust setting, [\(g_{NO_{X}}/kg_{fuel}\)]

ei_nox_100: float

NOx emissions index at 100% thrust setting, [\(g_{NO_{X}}/kg_{fuel}\)]

ei_co_7: float

CO emissions index at 7% thrust setting, [\(g_{CO}/kg_{fuel}\)]

ei_co_30: float

CO emissions index at 30% thrust setting, [\(g_{CO}/kg_{fuel}\)]

ei_co_85: float

CO emissions index at 85% thrust setting, [\(g_{CO}/kg_{fuel}\)]

ei_co_100: float

CO emissions index at 100% thrust setting, [\(g_{CO}/kg_{fuel}\)]

ei_hc_7: float

HC emissions index at 7% thrust setting, [\(g_{HC}/kg_{fuel}\)]

ei_hc_30: float

HC emissions index at 30% thrust setting, [\(g_{HC}/kg_{fuel}\)]

ei_hc_85: float

HC emissions index at 85% thrust setting, [\(g_{HC}/kg_{fuel}\)]

ei_hc_100: float

HC emissions index at 100% thrust setting, [\(g_{HC}/kg_{fuel}\)]

sn_7: float

smoke number at 7% thrust setting

sn_30: float

smoke number at 30% thrust setting

sn_85: float

smoke number at 85% thrust setting

sn_100: float

smoke number at 100% thrust setting

sn_max: float

maximum smoke number value across the range of thrust setting

bypass_ratio
combustor
ei_co_100
ei_co_30
ei_co_7
ei_co_85
ei_hc_100
ei_hc_30
ei_hc_7
ei_hc_85
ei_nox_100
ei_nox_30
ei_nox_7
ei_nox_85
engine_name
ff_100
ff_30
ff_7
ff_85
property log_ei_co_profile

Get the logarithmic emissions index profile for CO emissions.

property log_ei_hc_profile

Get the logarithmic emissions index profile for HC emissions.

property log_ei_nox_profile

Get the logarithmic emissions index profile for NOx emissions.

manufacturer
pressure_max
pressure_min
pressure_ratio
rated_thrust
sn_100
sn_30
sn_7
sn_85
sn_max
temp_max
temp_min
pycontrails.models.emissions.gaseous.co_hc_emissions_index_profile_ffm2(ff_idle, ff_approach, ff_climb, ff_take_off, ei_idle, ei_approach, ei_climb, ei_take_off)

Create carbon monoxide (CO) and hydrocarbon (HC) emissions index (EI) profile.

Parameters:
  • ff_idle (float) – ICAO EDB fuel mass flow rate at idle conditions (7% power), [\(kg s^{-1}\)]

  • ff_approach (float) – ICAO EDB fuel mass flow rate at approach (30% power), [\(kg s^{-1}\)]

  • ff_climb (float) – ICAO EDB fuel mass flow rate at climb out (85% power), [\(kg s^{-1}\)]

  • ff_take_off (float) – ICAO EDB fuel mass flow rate at take-off (100% power), [\(kg s^{-1}\)]

  • ei_idle (float) – ICAO EDB CO or HC emissions index at idle conditions (7% power), [\(g_{pollutant}/kg_{fuel}\)]

  • ei_approach (float) – ICAO EDB CO or HC emissions index at approach (30% power), [\(g_{pollutant}/kg_{fuel}\)]

  • ei_climb (float) – ICAO EDB CO or HC emissions index at climb out (85% power), [\(g_{pollutant}/kg_{fuel}\)]

  • ei_take_off (float) – ICAO EDB CO or HC emissions index at take-off (100% power), [\(g_{pollutant}/kg_{fuel}\)]

Returns:

EmissionsProfileInterpolator – log of CO or HC emissions index versus the log of fuel mass flow rate for a given engine type

pycontrails.models.emissions.gaseous.ei_at_cruise(ei_sl, theta_amb, delta_amb, ei_type)

Convert the estimated EI at sea level to cruise conditions.

Refer to Eqs. (15) and (16) in DuBois & Paynter (2006).

Parameters:
  • ei_sl (npt.NDArray[np.floating]) – Sea level EI values.

  • theta_amb (npt.NDArray[np.floating]) – Ratio of the ambient temperature to the temperature at mean sea-level.

  • delta_amb (npt.NDArray[np.floating]) – Ratio of the pressure altitude to the surface pressure.

  • ei_type (str) – One of {“HC”, “CO”, “NOX”}

Returns:

npt.NDArray[np.floating] – Estimated cruise EI values.

References

pycontrails.models.emissions.gaseous.estimate_ei_co_hc_ffm2(log_ei_profile, fuel_flow_per_engine, true_airspeed, air_pressure, air_temperature)

Estimate carbon monoxide (CO) or hydrocarbon (HC) emissions index (EI).

Parameters:
  • log_ei_profile (EmissionsProfileInterpolator) – emissions profile containing the log of EI CO or EI HC versus log of fuel flow.

  • fuel_flow_per_engine (npt.NDArray[np.floating]) – fuel mass flow rate per engine, [\(kg s^{-1}\)]

  • true_airspeed (npt.NDArray[np.floating]) – true airspeed for each waypoint, [\(m s^{-1}\)]

  • air_pressure (npt.NDArray[np.floating]) – pressure altitude at each waypoint, [\(Pa\)]

  • air_temperature (npt.NDArray[np.floating]) – ambient temperature for each waypoint, [\(K\)]

pycontrails.models.emissions.gaseous.estimate_nox_ffm2(log_ei_nox_profile, fuel_flow_per_engine, true_airspeed, air_pressure, air_temperature, specific_humidity=None)

Estimate the nitrogen oxide (NOx) emissions index (EI) at cruise conditions.

Parameters:
  • log_ei_nox_profile (EmissionsProfileInterpolator) – emissions profile containing the log of EI NOx versus log of fuel flow.

  • fuel_flow_per_engine (npt.NDArray[np.floating]) – fuel mass flow rate per engine, [\(kg s^{-1}\)]

  • true_airspeed (npt.NDArray[np.floating]) – true airspeed for each waypoint, [\(m s^{-1}\)]

  • air_pressure (npt.NDArray[np.floating]) – pressure altitude at each waypoint, [\(Pa\)]

  • air_temperature (npt.NDArray[np.floating]) – ambient temperature for each waypoint, [\(K\)]

  • specific_humidity (npt.NDArray[np.floating] | None) – specific humidity for each waypoint, [\(kg_{H_{2}O}/kg_{air}\)]

pycontrails.models.emissions.gaseous.nitrogen_oxide_emissions_index_profile_ffm2(ff_idle, ff_approach, ff_climb, ff_take_off, ei_nox_idle, ei_nox_approach, ei_nox_climb, ei_nox_take_off)

Create the nitrogen oxide (NOx) emissions index (EI) profile for the given engine type.

Parameters:
  • ff_idle (float) – ICAO EDB fuel mass flow rate at idle conditions (7% power), [\(kg s^{-1}\)]

  • ff_approach (float) – ICAO EDB fuel mass flow rate at approach (30% power), [\(kg s^{-1}\)]

  • ff_climb (float) – ICAO EDB fuel mass flow rate at climb out (85% power), [\(kg s^{-1}\)]

  • ff_take_off (float) – ICAO EDB fuel mass flow rate at take-off (100% power), [\(kg s^{-1}\)]

  • ei_nox_idle (float) – ICAO EDB NOx emissions index at idle conditions (7% power), [\(g_{NO_{X}}/kg_{fuel}\)]

  • ei_nox_approach (float) – ICAO EDB NOx emissions index at approach (30% power), [\(g_{NO_{X}}/kg_{fuel}\)]

  • ei_nox_climb (float) – ICAO EDB NOx emissions index at climb out (85% power), [\(g_{NO_{X}}/kg_{fuel}\)]

  • ei_nox_take_off (float) – ICAO EDB NOx emissions index at take-off (100% power), [\(g_{NO_{X}}/kg_{fuel}\)]

Returns:

EmissionsProfileInterpolator – log of NOx emissions index versus the log of fuel mass flow rate for a given engine type

Raises:

ValueError – If any EI nox values are non-positive.