Skip to content

v0.44.0

Compare
Choose a tag to compare
@zebengberg zebengberg released this 23 Jun 18:54
· 1448 commits to main since this release

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 an engine_uid parameter is not included on the source. This itself is configurable via the use_default_engine_uid parameter on the Emissions model. The default mappings from aircraft types to engines is included in pycontrails/models/emissions/static/default-engine-uids.csv.

Breaking changes

  • Remove the Aircraft dataclass from Flight instantiation. Any code previously using this should instead directly pass additional attrs to the Flight constructor.
  • The load_factor is now required in AircraftPerformance models. The global DEFAULT_LOAD_FACTOR constant in pycontrails.models.aircraft_performance provides a reasonable default. This is currently set to 0.7.
  • Use a takeoff_mass parameter in AircraftPerformance models if provided in the source.attrs data.
  • No longer use a reference mass ref_mass in AircraftPerformance models. This is replaced by the takeoff_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 the Emissions model. This is inferred directly from the source parameter in Emissions.eval.
  • Fix edge cases in the jet.reserve_fuel_requirements implementation. The previous version would return nan for some combinations of fuel_flow and segment_phase variables.
  • Fix a spelling mistake: units.kelvin_to_celcius -> units.kelvin_to_celsius.

Internals

  • Use ruff in place of pydocstyle for linting docstrings.
  • Use ruff in place of isort for sorting imports.
  • Update the AircraftPerformance template based on the patterns used in the new PSModel class. This may change again in the future.