A Dart library to perform standard and non-standard atmosphere property calculations and speed conversions. Based on the 1976 US Standard Atmosphere (NASA-TM-X-74335) methodologies and valid through 20 km (stratopause) for atmospheric flight calculations (identical to ICAO and International Standard Atmosphere definitions through 20 km).
Features
- Define an atmospheric point in terms of pressure altitude and temperature (either as delta ISA or OAT) and for that point:
- Calculate pressure, temperature and density ratios
- Calculate speed of sound
- Calculate Outside Air Temperature (OAT), standard temperature (ISA) or deviation form standard (delta ISA)
- Define a speed point condition in terms of speed value and speed type (EAS, CAS, TAS or Mach) and for that point:
- Convert to the other speed types at a defined atmospheric point
- Convert between different speed units
- Calculate pressure altitude from airport elevation and altimeter setting
- Units default to feet (altitude), Celsius (temperature) and knots (speed), but Atmospeed offers unit choice flexibility
Getting started
No prerequisites, simply add Atmospeed to the pubspec.yaml
file:
dependencies:
atmospeed: ^1.0.0
Usage
- Define one or more
Atmo
point condition:
// 18455 ft pressure alt, ISA+13C temperature
Atmo atmo = Atmo(hp: 18455, temperature: 13);
// 11249 m pressure alt, -51.5 OATC temperature
Atmo atmo1 = Atmo(hp: 11249, unitAltitude: LengthUnit.m, temperature: -51.5, temperatureIsDeltaISA: false);
- Calculate atmospheric properties on the atmo conditions:
atmo.getDelta(); // δ = 0.4901
atmo.getTheta(); // θ = 0.9182
atmo1.getSigma(); // σ = 0.2792
atmo1.getDeltaISA(); // ISA+5C
- Or, define a
Speed
point and convert to another speed type for anAtmo
point condition:
// Define CAS as 255.6 knots
Speed kcas = Speed(value: 255.6, type: SpeedType.cas);
// Calculate EAS, TAS and Mach at atmo point
kcas.toEAS(atmo); // 251.1 KEAS
kcas.toTAS(atmo); // 343.7 KTAS
kcas.toMach(atmo); // Mach 0.5422
- Additional convenience methods exist:
// Convert a Speed object's speed to another unit; example knots to mph conversion
var mph_cas = kcas.convertSpeed(SpeedUnit.kts, SpeedUnit.mph);
// Or convert any double value between any two speed units
174.6.convertSpeed(SpeedUnit.kmh, SpeedUnit.fps); // 159.1 ft/sec
// Calculate pressure altitude form airport elevation and altimer setting
Altitude.pressureAltitude(airportElevation: 3456, airportAltimeter: 29.73); // 3632.2 ft
See additional examples in the /example
folder.
Library Limitation
This library limits calculations to an altitude of 20km (65617 ft) and is intended for atmospheric flight calculations below the stratopause.
Libraries
- atmospeed
- Atmospeed library