feels
v3.0.0
Published
Feels allow you to calculate apparent temperature using heat index, approximate wet-bulb globe temperature, humidex, australian apparent temperature and wind chill.
Downloads
231
Maintainers
Readme
feels
Feels
allow you to calculate apparent temperature using heat index, approximate wet-bulb globe temperature, humidex, australian apparent temperature and wind chill.
Combinations of this methods also named as Feels like
, Real feel
etc.
You can also convert temperature, speed and calculate relative humidity
, dew point
, frost point
, water vapour pressure
using class or standalone methods.
Usage
$ npm install feels --save
const Feels = require('feels');
const config = {
temp: 20,
humidity: 85,
speed: 20,
units: {
temp: 'c',
speed: 'mps'
}
};
new Feels(config).like();
Quick navigation
API
Class methods
Most of the class methods also available as standalone methods.
new Feels(options)
Constructor.
Params:
- options (Object) - Feels options:
- temp (Float) - Temperature in
Celsius
,Fahrenheit
orKelvin
, depends on units type. - humidity (Float) - Relative humidity in percent.
- speed (Float) - Wind speed in meters per second, miles per hour or kilometers per hour, depends on units type.
- dewPoint (Float) - Dew point in
Celsius
,Fahrenheit
,Kelvin
depends on units type. - wvp (Float) - Water vapour pressure in
hPa
. - round (Boolean|Function) - The function that will be used to round the result. If
true
, rounds the result usingMath.round
. - units (Object) - Units type:
- temp (String) -
c
,f
,k
(by defaultc
). - speed (String) -
mps
,mph
,kph
(by defaultmps
).
- temp (String) -
- temp (Float) - Temperature in
const Feels = require('feels');
new Feels({ temp: 20, humidity: 80.9 }).toF().humidex();
.setOptions(options)
Sets the options.
Params:
- options (Object) - Feels options:
- temp (Float) - Temperature in
Celsius
,Fahrenheit
orKelvin
, depends on units type. - humidity (Float) - Relative humidity in percent.
- speed (Float) - Wind speed in meters per second, miles per hour or kilometers per hour, depends on units type.
- dewPoint (Float) - Dew point in
Celsius
,Fahrenheit
,Kelvin
depends on units type. - wvp (Float) - Water vapour pressure in
hPa
. - round (Boolean|Function) - The function that will be used to round the result. If
true
, rounds the result usingMath.round
. - units (Object) - Units type:
- temp (String) -
c
,f
,k
(by defaultc
). - speed (String) -
mps
,mph
,kph
(by defaultmps
).
- temp (String) -
- temp (Float) - Temperature in
const Feels = require('feels');
const feels = new Feels();
const config = {
temp: 20,
humidity: 85,
speed: 20,
units: {
temp: 'c',
speed: 'mps'
}
};
feels.setOptions(config);
feels.AAT();
.like([methods])
Calculates apparent temperature using specified methods.
If methods aren't provided returns an index which is calculated with ['HI', 'HI_CA', 'AAT', 'WCI']
.
Params:
- [methods] (String|Array) - String or array with one of the apparent temperature acronyms.
Acronyms
- HI - Heat index (Feels().heatIndex() or heatIndex()).
- AWBGT - Approximate wet-bulb globe temperature (Feels().AWBGT() or AWBGT()).
- HI_CA - Humidex (Feels().humidex() or humidex()).
- AAT - Australian apparent temperature (Feels().AAT() or AAT()).
- WCI - Wind chill (Feels().windChill() or windChill()).
If you want to convert temperature from one to other temperature scale, you can place .toC()
, .toF()
or .toK()
before target method.
new Feels(config).toF().like(['AAT', 'HI_CA']);
.addMethod(name, method)
Adds new method, which can be used by itself or in .like()
.
Params:
- name (String) - Method name.
- method (Function) - The method itself.
const feels = new Feels();
feels.addMethod('newbie', () => (feels.heatIndex() + feels.humidex()) / 2);
feels.addMethod('newbie2', function () {
return (this.heatIndex() + this.humidex()) / 2;
});
feels.setOptions({ temp: 20, dewPoint: 18 });
feels.newbie();
feels.like(['AAT', 'newbie2']);
.registerMethod(method)
Params:
- method (String) - Method name.
.registerMethods(methods)
Allows you to create your own methods which can be used in .like()
, by inheriting the base class.
Params:
- methods (Array) - Method names.
class NewFeels extends Feels {
constructor(opts) {
super(opts);
this.registerMethods(['newbie', 'newbie2']);
}
newbie() {
return (this.heatIndex() + this.humidex()) / 2;
}
newbie2() {
return (this.heatIndex() + this.humidex()) / 2;
}
}
const feels = new NewFeels({ temp: 20, dewPoint: 18 });
feels.newbie();
feels.like(['AAT', 'newbie2']);
.heatIndex()
Params:
- options (Object) - Constructor options:
- temp (Float)
- humidity|dewPoint (Float)
.AWBGT()
Params:
- options (Object) - Constructor options:
- temp (Float)
- humidity|dewPoint (Float)
.humidex()
Params:
- options (Object) - Constructor options:
- temp (Float)
- humidity|dewPoint (Float)
.AAT()
Params:
- options (Object) - Constructor options:
- temp (Float)
- speed (Float)
- humidity|dewPoint (Float)
.windChill()
Params:
- options (Object) - Constructor options:
- temp (Float)
- speed (Float)
.getWVP()
Params:
- options (Object) - Constructor options:
- humidity (Float)
- temp (Float)
.getWVPbyDP()
Params:
- options (Object) - Constructor options:
- dewPoint (Float)
.getARH()
Params:
- options (Object) - Constructor options:
- temp (Float)
- dewPoint (Float)
.getRH()
Params:
- options (Object) - Constructor options:
- temp (Float)
- wvp|dewPoint (Float)
.getADP()
Params:
- options (Object) - Constructor options:
- temp (Float)
- humidity (Float)
.getDP()
Params:
- options (Object) - Constructor options:
- temp (Float)
- humidity (Float)
.getFP()
Params:
- options (Object) - Constructor options:
- temp (Float)
- humidity (Float)
Aliases
- toC() - toCelsius()
- toF() - toFahrenheit()
- toK() - toKelvin()
- getWVP() - getWaterVapourPressure()
- getWVPbyDP() - getWaterVapourPressureByDewPoint()
- getARH() - getAproximateRelativeHumidity()
- getRH() - getRelativeHumidity()
- getADP() - getAproximateDewPoint()
- getDP() - getDewPoint()
- getFP() - getFrostPoint()
Standalone methods
All standalone methods use temperature in Celsius, humidity in percent and wind speed in meters per second.
const Feels = require('feels');
Feels.humidex(20, 80.9);
Temperature convert
Feels.tempConvert(temp, from, to, round)
Params:
- temp (Float) - Temperature.
- from (String) -
c
- Celsius,f
- Fahrenheit,k
- Kelvin. - to (String) -
c
- Celsius,f
- Fahrenheit,k
- Kelvin. - round (Boolean|Function) - The function that will be used to round the result. If
true
, rounds the result usingMath.round
.
const Feels = require('feels');
const humidex = Feels.humidex(20, 80.9);
Feels.tempConvert(humidex, 'c', 'f');
Speed convert
Feels.speedConvert(speed, from, to, round)
Params:
- speed (Float) - Speed.
- from (String) -
mps
- Metre per second,mph
- Miles per hour,kph
- Kilometre per hour. - to (String) -
mps
- Metre per second,mph
- Miles per hour,kph
- Kilometre per hour. - round (Boolean|Function) - The function that will be used to round the result. If
true
, rounds the result usingMath.round
.
const Feels = require('feels');
const speed = Feels.speedConvert(36, 'kph', 'mps');
Feels.AAT(20, speed, 89);
Heat index
The heat index is an index that combines air temperature and relative humidity in an attempt to determine the human-perceived equivalent temperature. Wiki
Note: The heat index is used for temperatures more than 20 Celsius.
Feels.heatIndex(temp, humidity|dewPoint, [options])
Params:
- temp (Float) - Temperature in Celsius.
- humidity|dewPoint (Float) - Humidity in percent (0 > humidity <= 100) or Dew point in Celsius.
- [options] (Object) - Object with options:
- dewPoint (True) - Must be
true
for dew point usage. - round (Boolean|Function) - The function that will be used to round the result. If
true
, rounds the result usingMath.round
.
- dewPoint (True) - Must be
Approximate WBGT
The approximate wet-bulb globe temperature is a composite temperature used to estimate the effect of temperature, humidity, wind speed on humans. Unlike WBGT, AWBGT not take into account radiation effect. Wiki
Note: The AWBGT is used for temperatures more than 15 Celsius.
Feels.AWBGT(temp, humidity|dewPoint, [options])
Params:
- temp (Float) - Temperature in Celsius.
- humidity|dewPoint (Float) - Humidity in percent (0 > humidity <= 100) or Dew point in Celsius.
- [options] (Object) - Object with options:
- dewPoint (True) - Must be
true
for dew point usage. - round (Boolean|Function) - The function that will be used to round the result. If
true
, rounds the result usingMath.round
.
- dewPoint (True) - Must be
Humidex
The humidex is an index number used by Canadian meteorologists to describe how hot the weather feels to the average person, by combining the effect of heat and humidity. Wiki
Note: The humidex is used for temperatures more than 0 Celsius.
Feels.humidex(temp, humidity|dewPoint, [options])
Params:
- temp (Float) - Temperature in Celsius.
- humidity|dewPoint (Float) - Humidity in percent (0 > humidity <= 100) or Dew point in Celsius.
- [options] (Object) - Object with options:
- dewPoint (True) - Must be
true
for dew point usage. - round (Boolean|Function) - The function that will be used to round the result. If
true
, rounds the result usingMath.round
.
- dewPoint (True) - Must be
Australian Apparent Temperature
The AAT is an index number used by the Australian Bureau of Meteorology to describe heat balance in the human body. Wiki
Feels.AAT(temp, speed, humidity|dewPoint, [options])
Params:
- temp (Float) - Temperature in Celsius.
- speed (Float) - Speed in meters per second.
- humidity|dewPoint (Float) - Humidity in percent (0 > humidity <= 100) or Dew point in Celsius.
- [options] (Object) - Object with options:
- dewPoint (True) - Must be
true
for dew point usage. - round (Boolean|Function) - The function that will be used to round the result. If
true
, rounds the result usingMath.round
.
- dewPoint (True) - Must be
Wind chill
Wind chill is the perceived decrease in air temperature felt by the body on exposed skin due to the flow of air. Wiki
Note: The humidex is used for temperatures less than 0 Celsius.
Feels.windChill(temp, speed, [options])
Params:
- temp (Float) - Temperature in Celsius.
- speed (Float) - Speed in meters per second.
- [options] (Object) - Object with options:
- round (Boolean|Function) - The function that will be used to round the result. If
true
, rounds the result usingMath.round
.
- round (Boolean|Function) - The function that will be used to round the result. If
Water vapour pressure
Feels.getWVP(temp, humidity, [options])
Params:
- temp (Float) - Temperature in Celsius.
- humidity (Integer) - Humidity in percent (0 > humidity <= 100).
- [options] (Object) - Object with options:
- round (Boolean|Function) - The function that will be used to round the result. If
true
, rounds the result usingMath.round
.
- round (Boolean|Function) - The function that will be used to round the result. If
Feels.getWVPbyDP(dewPoint, [options])
Params:
- dewPoint (Float) - Dew point in Celsius.
- [options] (Object) - Object with options:
- round (Boolean|Function) - The function that will be used to round the result. If
true
, rounds the result usingMath.round
.
- round (Boolean|Function) - The function that will be used to round the result. If
Approximate relative humidity
Feels.getARH(temp, dewPoint, [options])
Params:
- temp (Float) - Temperature in Celsius.
- dewPoint (Float) - Dew point in Celsius.
- [options] (Object) - Object with options:
- round (Boolean|Function) - The function that will be used to round the result. If
true
, rounds the result usingMath.round
.
- round (Boolean|Function) - The function that will be used to round the result. If
Relative humidity
Feels.getRH(temp, WVP|dewPoint, [options])
Params:
- temp (Float) - Temperature in Celsius.
- WVP|dewPoint (Float) - Water vapour pressure or Dew point in Celsius.
- [options] (Object) - Object with options:
- dewPoint (True) - Must be
true
for dew point usage. - round (Boolean|Function) - The function that will be used to round the result. If
true
, rounds the result usingMath.round
.
- dewPoint (True) - Must be
Approximate dew point
Feels.getADP(temp, humidity, [options])
Params:
- temp (Float) - Temperature in Celsius.
- humidity (Integer) - Humidity in percent (0 > humidity <= 100).
- [options] (Object) - Object with options:
- round (Boolean|Function) - The function that will be used to round the result. If
true
, rounds the result usingMath.round
.
- round (Boolean|Function) - The function that will be used to round the result. If
Dew point
Feels.getDP(temp, humidity, [options])
Params:
- temp (Float) - Temperature in Celsius.
- humidity (Integer) - Humidity in percent (0 > humidity <= 100).
- [options] (Object) - Object with options:
- round (Boolean|Function) - The function that will be used to round the result. If
true
, rounds the result usingMath.round
.
- round (Boolean|Function) - The function that will be used to round the result. If
Frost point
Feels.getFP(temp, humidity, [options])
Params:
- temp (Float) - Temperature in Celsius.
- humidity (Integer) - Humidity in percent (0 > humidity <= 100).
- [options] (Object) - Object with options:
- round (Boolean|Function) - The function that will be used to round the result. If
true
, rounds the result usingMath.round
.
- round (Boolean|Function) - The function that will be used to round the result. If
License
The MIT License (MIT) Copyright (c) 2015-2018 Alexey Bystrov