Search packages, repositories and app categories

GitHub repositoryaeroperf/atmospeed

atmospeed

A Dart package for standard and non-standard atmosphere properties and speed calculations, as well as speed conversions.

atmospeed project cover
Stars
1
Forks
0
Last push (UTC)
May 19, 2022
Project status
Active

Original README

English project snapshot. Visit GitHub for the latest content.

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

  1. 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); 
  1. Calculate atmospheric properties on the atmo conditions:
atmo.getDelta(); // δ = 0.4901
atmo.getTheta(); // θ = 0.9182
atmo1.getSigma(); // σ = 0.2792
atmo1.getDeltaISA(); // ISA+5C
  1. Or, define a Speed point and convert to another speed type for an Atmo 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
  1. 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.

Michael Vogt GitHub avatar
GitHub author

Michael Vogt ↗

LanguagesDart

Packages published by this repository

Dependencies used

Dependency list 2 items

How do I choose a repository?

Start with your use case, compare repository activity, and check the original project before adopting it.

  1. Search by repository name, owner or description, then narrow the results by topic.
  2. Compare stars, forks and recent pushes. Stars show community interest, not a guarantee of quality.
  3. Read the README, license and issues on GitHub before using a project.

Sources and maintenance

“A repository is the most basic element of GitHub.”

GitHub Docs — About repositories ↗