UNPKG

weather-formulas

Version:

A collection of atmospheric, meteorological weather calculations

238 lines (237 loc) 8.48 kB
import { Reading } from '../common'; export interface IValuationSet { a: number; b: number; c: number; d: number; } /** * * @param {number} temperature Temperature in K (Kelvin) * @param {number} humidity Humidity in RH (Relative Humidity) * @param {IValuationSet} valuationSet The valuation set to use in the calculation * @returns {number} Dew Point in Kelvin */ declare function dewPointMagnusFormula(temperature: number, humidity: number, valuationSet?: IValuationSet): number; /** * * @param {number} temperature Temperature in K (Kelvin) * @param {number} humidity Humidity in RH (Relative Humidity) * @param {IValuationSet} valuationSet The valuation set to use in the calculation * @returns {number} Dew Point in Kelvin */ declare function dewPointArdenBuckEquation(temperature: number, humidity: number, valuationSet?: IValuationSet): number; /** * Calculate Potential Temperature * @param {number} temperature Temperature in K (Kelvin) * @param {number} pressure Pressure in Pa (Pascal) * @returns {number} Potential Temperature in K (Kelvin) */ declare function potentialTemperature(temperature: number, pressure: number): number; /** * Calculate Virtual Temperature * @param {number} temperature Temperature in K (Kelvin) * @param {number} mixingRatio Mixing Ratio in g/kg (grams per kilogram) * @returns {number} Virtual Temperature in K (Kelvin) */ declare function virtualTemperature(temperature: number, mixingRatio: number): number; /** * * @param {number} temperature Temperature in K (Kelvin) * @param {number} windSpeed Windspeed in M/S (meter per second) * @returns {number} Wind Chill Index in Kelvin */ declare function windChillIndex(temperature: number, windSpeed: number): number; /** * @param {number} temperature Temperature in K (Kelvin) * @param {number} humidity Humidity in RH (Relative Humidity) * @param {number} windspeed Windspeed in M/S (meter per second) * @returns {number} Apparent Temperature in Kelvin */ declare function australianAapparentTemperature(temperature: number, humidity: number, windspeed: number): number; /** * * @param {number} temperature Temperature in K (Kelvin) * @param {number} humidity Humidity in RH (Relative Humidity) * @returns {number} Heat Index in Kelvin */ declare function heatIndex(temperature: number, humidity: number): number; /** * * @param {number} heatIndexTemperature Temperature in K (Kelvin) * @returns {string} Heat Index Warning */ declare function heatIndexText(heatIndexTemperature: number): null | { lowerLimit: number; text: string; warning: string; }; /** * Gets the Humidex temperature * @param {number} temperature Temperature in K (Kelvin) * @param {number} humidity Humidity in RH (Relative Humidity) * @returns {number} Humidex in Kelvin */ declare function humidex(temperature: number, humidity: number): number; /** * Gets the Humidex test warning * @param {number} humidex Temperature in K (Kelvin) * @returns {string} Humidex Warning */ declare function humidexText(humidex: number): null | { lowerLimit: number; text: string; }; /** * Calculate the lapse rate * @param altitude1 Lower or higher altitude 1 * @param T1 Temperature at altitude 1 * @param altitude2 Lower or higher altitude 2 * @param T2 Temperature at altitude 2 * @returns Lapse rate */ declare function calculateLapseRate(altitude1: number, T1: number, altitude2: number, T2: number): number; /** * Calculate dynamic lapse rate based on a range of altitude and temperature data * @param readings Readings data * @param hours Number of hours to read * @param filterByLastReading Filter by the datetime in the most recent reading * @returns Dynamic lapse rate, or default. */ declare function calculateDynamicLapseRate(readings: Reading[], hours?: number, filterByLastReading?: boolean): number; /** * * @param readings Readings data * @param hours Hours to filter * @returns Weighted average temperature */ declare function calculateWeightedAverageTemperature(readings: Reading[], hours?: number): number; /** * * @param altitude1 Lower or higher altitude 1 * @param T1 Temperature at altitude 1 * @param altitude2 Lower og higher altitude 2 * @param T2 Temperature at altitude 2 * @returns True if inversion is detected */ declare function isTemperatureInversion(altitude1: number, T1: number, altitude2: number, T2: number): boolean; /** * Adjust pressure to sea level by fixed lapse ratio. * @param {number} altitude altitude in meters. * @param {number} temperature temperature at altitude in Celcius|Kelvin|Fahrenheit. * @param {number} lapseRate Custom lapse rate. Defaults to standard lapse rate. * @returns Adjusted pressure */ declare function adjustTemperatureByLapseRate(altitude: number, temperature: number, lapseRate?: number): number; /** * Convert Kelvin to Celcius * @param {number} temperature Temperature in K (Kelvin) * @returns {number} Celcius */ declare function kelvinToCelcius(temperature: number): number; /** * Convert Celcius to Kelvin * @param {number} temperature Temperature in C (Celcius) * @returns {number} Kelvin */ declare function celciusToKelvin(temperature: number): number; /** * * @param celcius Celcius degrees * @returns Fahrenheit degrees */ declare function celciusToFahrenheit(celcius: number): number; /** * * @param fahrenheit Fahrenheit degrees * @returns Celcius degrees */ declare function fahrenheitToCelcius(fahrenheit: number): number; /** * * @param kelvin Kelvin degrees * @returns Fahrenheit degrees */ declare function kelvinToFahrenheit(kelvin: number): number; /** * * @param fahrenheit Fahrenheit degrees * @returns Kelvin degrees */ declare function fahrenheitToKelvin(fahrenheit: number): number; /** * Round decimal number to two decimals * @param {number} num Number * @returns {number} num rounded to two decimals */ declare function roundToTwoDecimals(num: number): number; /** * Convert M/S to KM/H * @param {number} mps Meter Per Second * @returns {number} KM/H */ declare function meterPerSecondToKilometerPerHour(mps: number): number; declare const _default: { dewPointMagnusFormula: typeof dewPointMagnusFormula; dewPointArdenBuckEquation: typeof dewPointArdenBuckEquation; windChillIndex: typeof windChillIndex; australianAapparentTemperature: typeof australianAapparentTemperature; heatIndex: typeof heatIndex; heatIndexText: typeof heatIndexText; humidex: typeof humidex; humidexText: typeof humidexText; roundToTwoDecimals: typeof roundToTwoDecimals; kelvinToCelcius: typeof kelvinToCelcius; celciusToKelvin: typeof celciusToKelvin; celciusToFahrenheit: typeof celciusToFahrenheit; fahrenheitToCelcius: typeof fahrenheitToCelcius; kelvinToFahrenheit: typeof kelvinToFahrenheit; fahrenheitToKelvin: typeof fahrenheitToKelvin; meterPerSecondToKilometerPerHour: typeof meterPerSecondToKilometerPerHour; potentialTemperature: typeof potentialTemperature; virtualTemperature: typeof virtualTemperature; DEW_POINT_VALUATIONS: { readonly ARDENBUCK_DEFAULT: { readonly a: 6.1121; readonly b: 18.678; readonly c: 257.14; readonly d: 234.5; }; readonly DAVID_BOLTON: { readonly a: 6.112; readonly b: 17.67; readonly c: 234.5; readonly d: 234.5; }; readonly SONNTAG1990: { readonly a: 6.112; readonly b: 17.62; readonly c: 243.12; readonly d: 234.5; }; readonly PAROSCIENTIFIC: { readonly a: 6.105; readonly b: 17.27; readonly c: 237.7; readonly d: 234.5; }; readonly ARDENBUCK_PLUS: { readonly a: 6.1121; readonly b: 17.368; readonly c: 238.88; readonly d: 234.5; }; readonly ARDENBUCK_MINUS: { readonly a: 6.1121; readonly b: 17.966; readonly c: 247.15; readonly d: 234.5; }; }; calculateLapseRate: typeof calculateLapseRate; calculateDynamicLapseRate: typeof calculateDynamicLapseRate; calculateWeightedAverageTemperature: typeof calculateWeightedAverageTemperature; isTemperatureInversion: typeof isTemperatureInversion; adjustTemperatureByLapseRate: typeof adjustTemperatureByLapseRate; }; export default _default;