pycontrails.ext.bada.BADAGridParams

class pycontrails.ext.bada.BADAGridParams(engine_deterioration_factor=0.025, copy_source=True, interpolation_method='linear', interpolation_bounds_error=False, interpolation_fill_value=nan, interpolation_localize=False, interpolation_use_indices=False, interpolation_q_method=None, verify_met=True, downselect_met=True, met_longitude_buffer=(0.0, 0.0), met_latitude_buffer=(0.0, 0.0), met_level_buffer=(0.0, 0.0), met_time_buffer=(np.timedelta64(0, 'h'), np.timedelta64(0, 'h')), fuel=<factory>, aircraft_type='B737', mach_number=None, aircraft_mass=None, correct_fuel_flow=True, n_iter=3, fill_low_altitude_with_isa_temperature=False, fill_low_altitude_with_zero_wind=False, bada3_path=None, bada4_path=None, bada_priority=4, model_choice='total_energy_model', engine_uid=None)

Bases: BADAParams, AircraftPerformanceGridParams

BADAGrid model parameters.

See also

BADAParams

__init__(engine_deterioration_factor=0.025, copy_source=True, interpolation_method='linear', interpolation_bounds_error=False, interpolation_fill_value=nan, interpolation_localize=False, interpolation_use_indices=False, interpolation_q_method=None, verify_met=True, downselect_met=True, met_longitude_buffer=(0.0, 0.0), met_latitude_buffer=(0.0, 0.0), met_level_buffer=(0.0, 0.0), met_time_buffer=(np.timedelta64(0, 'h'), np.timedelta64(0, 'h')), fuel=<factory>, aircraft_type='B737', mach_number=None, aircraft_mass=None, correct_fuel_flow=True, n_iter=3, fill_low_altitude_with_isa_temperature=False, fill_low_altitude_with_zero_wind=False, bada3_path=None, bada4_path=None, bada_priority=4, model_choice='total_energy_model', engine_uid=None)

Methods

__init__([engine_deterioration_factor, ...])

as_dict()

Convert object to dictionary.

Attributes

aircraft_mass

Aircraft mass, [\(kg\)] If None, a nominal value is determined by the implementation.

aircraft_type

ICAO code designating simulated aircraft type.

bada3_path

Default paths to BADA3 and BADA4 data directories Setting path to None will use default path on BADA3 and BADA4 instances

bada4_path

bada_priority

Default BADA database used to search for aircraft characteristics.

copy_source

Copy input source data on eval

correct_fuel_flow

Whether to correct fuel flow to ensure it remains within the operational limits of the aircraft type.

downselect_met

Downselect input MetDataset` to region around source.

engine_deterioration_factor

Account for "in-service" engine deterioration between maintenance cycles.

engine_uid

Engine unique identification number for the ICAO Aircraft Emissions Databank (EDB) If None, the assumed engine_uid from BADA is used.

fill_low_altitude_with_isa_temperature

Experimental.

fill_low_altitude_with_zero_wind

Experimental.

interpolation_bounds_error

If True, points lying outside interpolation will raise an error

interpolation_fill_value

Used for outside interpolation value if interpolation_bounds_error is False

interpolation_localize

Experimental.

interpolation_method

Interpolation method.

interpolation_q_method

Experimental.

interpolation_use_indices

Experimental.

mach_number

Mach number, [\(Ma\)] If None, a nominal cruise value is determined by the implementation.

met_latitude_buffer

Met latitude buffer for input to Flight.downselect_met(), in WGS84 coordinates.

met_level_buffer

Met level buffer for input to Flight.downselect_met(), in [\(hPa\)].

met_longitude_buffer

Met longitude buffer for input to Flight.downselect_met(), in WGS84 coordinates.

met_time_buffer

Met time buffer for input to Flight.downselect_met() Only applies when downselect_met is True.

model_choice

BADA3 and BADA4 fuel flow model choice

n_iter

The number of iterations used to calculate aircraft mass and fuel flow.

verify_met

Call _verify_met() on model instantiation.

fuel

Fuel type

aircraft_mass = None

Aircraft mass, [\(kg\)] If None, a nominal value is determined by the implementation. Can be overridden by including an aircraft_mass key in source data

aircraft_type = 'B737'

ICAO code designating simulated aircraft type. Can be overridden by including aircraft_type attribute in source data

as_dict()

Convert object to dictionary.

We use this method instead of dataclasses.asdict to use a shallow/unrecursive copy. This will return values as Any instead of dict.

Returns:

dict[str, Any] – Dictionary version of self.

bada3_path = None

Default paths to BADA3 and BADA4 data directories Setting path to None will use default path on BADA3 and BADA4 instances

bada4_path = None
bada_priority = 4

Default BADA database used to search for aircraft characteristics. At present, this parameter is expected to be 3 or 4.

copy_source = True

Copy input source data on eval

correct_fuel_flow = True

Whether to correct fuel flow to ensure it remains within the operational limits of the aircraft type.

downselect_met = True

Downselect input MetDataset` to region around source.

engine_deterioration_factor = 0.025

Account for “in-service” engine deterioration between maintenance cycles. Default value is set to +2.5% increase in fuel consumption. Reference: Gurrola Arrieta, M.D.J., Botez, R.M. and Lasne, A., 2024. An Engine Deterioration Model for Predicting Fuel Consumption Impact in a Regional Aircraft. Aerospace, 11(6), p.426.

engine_uid = None

Engine unique identification number for the ICAO Aircraft Emissions Databank (EDB) If None, the assumed engine_uid from BADA is used.

fill_low_altitude_with_isa_temperature = False

Experimental. If True, fill waypoints below the lowest altitude met level with ISA temperature when interpolating “air_temperature” or “t”. If the met data is not provided, the entire air temperature array is approximated with the ISA temperature. Enabling this does NOT remove any NaN values in the met data itself.

fill_low_altitude_with_zero_wind = False

Experimental. If True, fill waypoints below the lowest altitude met level with zero wind when computing true airspeed. In other words, approximate low-altitude true airspeed with the ground speed. Enabling this does NOT remove any NaN values in the met data itself.

fuel

Fuel type

interpolation_bounds_error = False

If True, points lying outside interpolation will raise an error

interpolation_fill_value = nan

Used for outside interpolation value if interpolation_bounds_error is False

interpolation_localize = False

Experimental. See pycontrails.core.interpolation.

interpolation_method = 'linear'

Interpolation method. Supported methods include “linear”, “nearest”, “slinear”, “cubic”, and “quintic”. See scipy.interpolate.RegularGridInterpolator for the description of each method. Not all methods are supported by all met grids. For example, the “cubic” method requires at least 4 points per dimension.

interpolation_q_method = None

Experimental. Alternative interpolation method to account for specific humidity lapse rate bias. Must be one of None, "cubic-spline", or "log-q-log-p". If None, no special interpolation is used for specific humidity. The "cubic-spline" method applies a custom stretching of the met interpolation table to account for the specific humidity lapse rate bias. The "log-q-log-p" method interpolates in the log of specific humidity and pressure, then converts back to specific humidity. Only used by models calling to interpolate_met().

interpolation_use_indices = False

Experimental. See pycontrails.core.interpolation.

mach_number = None

Mach number, [\(Ma\)] If None, a nominal cruise value is determined by the implementation. Can be overridden by including a mach_number key in source data

met_latitude_buffer = (0.0, 0.0)

Met latitude buffer for input to Flight.downselect_met(), in WGS84 coordinates. Only applies when downselect_met is True.

met_level_buffer = (0.0, 0.0)

Met level buffer for input to Flight.downselect_met(), in [\(hPa\)]. Only applies when downselect_met is True.

met_longitude_buffer = (0.0, 0.0)

Met longitude buffer for input to Flight.downselect_met(), in WGS84 coordinates. Only applies when downselect_met is True.

met_time_buffer = (np.timedelta64(0,'h'), np.timedelta64(0,'h'))

Met time buffer for input to Flight.downselect_met() Only applies when downselect_met is True.

model_choice = 'total_energy_model'

BADA3 and BADA4 fuel flow model choice

n_iter = 3

The number of iterations used to calculate aircraft mass and fuel flow. The default value of 3 is sufficient for most cases.

verify_met = True

Call _verify_met() on model instantiation.