pycontrails.models.ps_model.PSFlightParams

class pycontrails.models.ps_model.PSFlightParams(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')), correct_fuel_flow=True, n_iter=3, fill_low_altitude_with_isa_temperature=False, fill_low_altitude_with_zero_wind=False, eta_over_eta_b_min=0.5)

Bases: AircraftPerformanceParams

Default parameters for PSFlight.

__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')), correct_fuel_flow=True, n_iter=3, fill_low_altitude_with_isa_temperature=False, fill_low_altitude_with_zero_wind=False, eta_over_eta_b_min=0.5)

Methods

__init__([engine_deterioration_factor, ...])

as_dict()

Convert object to dictionary.

Attributes

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.

eta_over_eta_b_min

Clip the ratio of the overall propulsion efficiency to the maximum propulsion efficiency to always exceed this value.

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.

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.

n_iter

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

verify_met

Call _verify_met() on model instantiation.

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.

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.

eta_over_eta_b_min = 0.5

Clip the ratio of the overall propulsion efficiency to the maximum propulsion efficiency to always exceed this value.

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.

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.

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.

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.