v0.44.0
Support for the Poll-Schumann aircraft performance model.
Features
-
Implement a basic working version of the Poll-Schumann (PS) aircraft performance model. This is experimental and may undergo revision in future releases. The PS Model currently supports the following 53 aircraft types:
- A30B
- A306
- A310
- A313
- A318
- A319
- A320
- A321
- A332
- A333
- A342
- A343
- A345
- A346
- A359
- A388
- B712
- B732
- B733
- B734
- B735
- B736
- B737
- B738
- B739
- B742
- B743
- B744
- B748
- B752
- B753
- B762
- B763
- B764
- B77L
- B772
- B77W
- B773
- B788
- B789
- E135
- E145
- E170
- E195
- MD82
- MD83
- GLF5
- CRJ9
- DC93
- RJ1H
- B722
- A20N
- A21N
The "gridded" version of this model is not yet implemented. This will be added in a future release.
-
Improve the runtime of instantiating the
Emissions
model by a factor of 10-15x. This translates to a time savings of several hundred milliseconds on modern hardware. This improvement is achieved by more efficient parsing of the underlying static data and by deferring the construction of the interpolation artifacts until they are needed. -
Automatically use a default engine type from the aircraft type in the
Emissions
model if anengine_uid
parameter is not included on thesource
. This itself is configurable via theuse_default_engine_uid
parameter on theEmissions
model. The default mappings from aircraft types to engines is included inpycontrails/models/emissions/static/default-engine-uids.csv
.
Breaking changes
- Remove the
Aircraft
dataclass fromFlight
instantiation. Any code previously using this should instead directly pass additionalattrs
to theFlight
constructor. - The
load_factor
is now required inAircraftPerformance
models. The globalDEFAULT_LOAD_FACTOR
constant inpycontrails.models.aircraft_performance
provides a reasonable default. This is currently set to 0.7. - Use a
takeoff_mass
parameter inAircraftPerformance
models if provided in thesource.attrs
data. - No longer use a reference mass
ref_mass
inAircraftPerformance
models. This is replaced by thetakeoff_mass
parameter if provided, or calculated from operating empty operating mass, max payload mass, total fuel consumption mass, reserve fuel mass, and the load factor.
Fixes
- Remove the
fuel
parameter from theEmissions
model. This is inferred directly from thesource
parameter inEmissions.eval
. - Fix edge cases in the
jet.reserve_fuel_requirements
implementation. The previous version would returnnan
for some combinations offuel_flow
andsegment_phase
variables. - Fix a spelling mistake:
units.kelvin_to_celcius
->units.kelvin_to_celsius
.
Internals
- Use
ruff
in place ofpydocstyle
for linting docstrings. - Use
ruff
in place ofisort
for sorting imports. - Update the
AircraftPerformance
template based on the patterns used in the newPSModel
class. This may change again in the future.