Aviation-aware unit conversion and formatting utilities. Conversions and formatters for speed, distance, altitude, pressure, temperature, fuel, and angle, plus ISA standard atmosphere calculations and compressible-flow aerodynamics.
Part of the @squawk aviation library suite. See all packages on npm.
npm install @squawk/units
All exports are organized by domain namespace to keep call sites self-documenting:
import {
speed,
distance,
altitude,
pressure,
temperature,
fuel,
angle,
isa,
format,
} from '@squawk/units';
// Speed conversions
const kmh = speed.knotsToKilometersPerHour(250);
// Distance conversions
const meters = distance.nauticalMilesToMeters(5);
// Altitude conversions
const feet = altitude.metersToFeet(3000);
// Pressure conversions and QNH/QFE
const hpa = pressure.inchesOfMercuryToHectopascals(29.92);
const kpa = pressure.hectopascalsToKilopascals(hpa);
const qfe = pressure.qnhToQfe(1013.25, 5280); // Denver elevation
// Temperature conversions
const celsius = temperature.fahrenheitToCelsius(59);
// Fuel conversions (density-aware volume <-> mass)
const jetALbs = fuel.gallonsToPounds(40, fuel.FUEL_DENSITY['Jet A']);
const avgasKg = fuel.litersToKilograms(200, fuel.FUEL_DENSITY['100LL']);
// Angle conversions
const radians = angle.degreesToRadians(45);
// ISA standard atmosphere
const isaTemp = isa.isaTemperatureCelsius(35000);
const tas = isa.trueAirspeedFromCalibratedKt(250, 35000); // CAS to TAS at altitude
const da = isa.densityAltitudeFt(5000, 30); // Pressure altitude + OAT
// Formatting with locale support
const altLabel = format.formatAltitude(3500); // "3,500 ft"
const flLabel = format.formatAltitude(35000); // "FL350"
const speedLabel = format.formatSpeed(0.82, 'mach'); // "M0.82"
const tempLabel = format.formatTemperature(15, 'C', {
showISADeviation: true,
altitudeFt: 0,
}); // "15°C (+0 ISA)"