Description:
The ARPM climbSpeed and descentSpeed methods use fixed altitude thresholds (1500ft, 3000ft, 6000ft, 10000ft) based on absolute altitude (MSL) rather than height Above Field Elevation (AFE).
This causes incorrect speed schedule transitions when operating from high-elevation airports. For example, when landing at La Paz (SLLP) with a field elevation of approximately 4000m (13,000ft):
- The 10000ft threshold (3048m) is below the runway
- The 6000ft, 3000ft, and 1500ft thresholds are also below the runway
- The aircraft would never transition through these thresholds during descent
- Approach/landing configuration and speed changes that should occur relative to the runway would not be triggered
Expected behavior:
The ARPM thresholds should be computed relative to the departure/destination field elevation:
- 1500ft AFE = field_elevation + 457m
- 3000ft AFE = field_elevation + 914m
- etc.
This would ensure proper speed schedule transitions regardless of airport elevation.
Questions:
- Is this the intended behavior, or is it a known limitation?
- Should the climbSpeed/descentSpeed methods accept an optional field_elevation parameter to compute AFE-relative thresholds?
- Are there any existing workarounds for high-altitude airport operations?
Affected code:
pyBADA/bada3.py lines ~2940-3120 (climbSpeed) and ~3350-3420 (descentSpeed) where the altitude thresholds are hardcoded as absolute values.
Description:
The ARPM climbSpeed and descentSpeed methods use fixed altitude thresholds (1500ft, 3000ft, 6000ft, 10000ft) based on absolute altitude (MSL) rather than height Above Field Elevation (AFE).
This causes incorrect speed schedule transitions when operating from high-elevation airports. For example, when landing at La Paz (SLLP) with a field elevation of approximately 4000m (13,000ft):
Expected behavior:
The ARPM thresholds should be computed relative to the departure/destination field elevation:
This would ensure proper speed schedule transitions regardless of airport elevation.
Questions:
Affected code:
pyBADA/bada3.py lines ~2940-3120 (climbSpeed) and ~3350-3420 (descentSpeed) where the altitude thresholds are hardcoded as absolute values.