All Projects â†’ strikeentco â†’ feels

strikeentco / feels

Licence: MIT license
🌀 Calculate apparent temperature using heat index, approximate wet-bulb globe temperature, humidex, australian apparent temperature and wind chill.

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to feels

EnviroMonitorStation
Arduino compatible software for ESP8266 based environmental monitoring station. Includes temperature, humidity, barometric pressure and PM2.5, PM10 dust monitoring
Stars: ✭ 71 (+184%)
Mutual labels:  temperature, humidity
ioTank
Indoor environment monitor based on Esp8266
Stars: ✭ 15 (-40%)
Mutual labels:  temperature, humidity
thermal comfort
Thermal Comfort sensor for HA (absolute humidity, heat index, dew point, thermal perception)
Stars: ✭ 322 (+1188%)
Mutual labels:  heat-index, dew-point
arduino-esp8266-mh-z19-serial
CO2, humidity and temperature sensor on ESP8266
Stars: ✭ 57 (+128%)
Mutual labels:  temperature, humidity
Devices
All the Candle Arduino code
Stars: ✭ 18 (-28%)
Mutual labels:  temperature, humidity
Weather Shield
Barometric pressure, temperature, humidity and light sensing weather shield for Arduino.
Stars: ✭ 62 (+148%)
Mutual labels:  temperature, humidity
micropython-am2320
MicroPython driver for the Aosong AM2320 temperature and humidity sensor
Stars: ✭ 22 (-12%)
Mutual labels:  temperature, humidity
getCRUCLdata
CRU CL v. 2.0 Climatology Client for R
Stars: ✭ 17 (-32%)
Mutual labels:  temperature, wind
SHT31
Arduino library for the SHT31 temperature and humidity sensor
Stars: ✭ 26 (+4%)
Mutual labels:  temperature, humidity
embedded-sht
Embedded SHT Drivers for Sensirion Temperature and Humidity Sensors - Download the Zip Package from the Release Page
Stars: ✭ 53 (+112%)
Mutual labels:  temperature, humidity
arduino-bme280
💧 Arduino library for Bosch Sensortec BME280 – combined temperature, pressure, humidity sensor. The library allows using the sensor over I2C or SPI on any board that supports Arduino.
Stars: ✭ 25 (+0%)
Mutual labels:  temperature, humidity
homebridge-tion
Homebridge plugin to control Tion breezers
Stars: ✭ 32 (+28%)
Mutual labels:  temperature, humidity
BME680
Arduino Library to access the Bosch BME680 - temperature, pressure, humidity and gas sensor
Stars: ✭ 30 (+20%)
Mutual labels:  temperature, humidity
TempRa
Monitors the temperature, the humidity and the pressure in your room on Raspberry Pi.
Stars: ✭ 16 (-36%)
Mutual labels:  temperature, humidity
sht31
sht31 full function driver
Stars: ✭ 28 (+12%)
Mutual labels:  temperature, humidity
SQLFlow
SQLFlow is a bridge that connects a SQL engine, e.g. MySQL, Hive, SparkSQL or SQL Server, with TensorFlow and other machine learning toolkits. SQLFlow extends the SQL language to enable model training, prediction and inference.
Stars: ✭ 72 (+188%)
Mutual labels:  index
charles-rest
Github chatbot and web-content indexer/searcher
Stars: ✭ 24 (-4%)
Mutual labels:  index
wind-js-server
Service to expose Grib2 wind forecast data as JSON
Stars: ✭ 98 (+292%)
Mutual labels:  wind
ninja automator
Acquire data with honour and wisdom — using the way of the ninja.
Stars: ✭ 21 (-16%)
Mutual labels:  wind
markdown-index
Generate a global index for multiple markdown files recursively
Stars: ✭ 15 (-40%)
Mutual labels:  index

feels License npm

Build Status node Test Coverage bitHound Score

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 or Kelvin, 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 using Math.round.
    • units (Object) - Units type:
      • temp (String) - c, f, k (by default c).
      • speed (String) - mps, mph, kph (by default mps).
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 or Kelvin, 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 using Math.round.
    • units (Object) - Units type:
      • temp (String) - c, f, k (by default c).
      • speed (String) - mps, mph, kph (by default mps).
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

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 using Math.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 using Math.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 using Math.round.

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 using Math.round.

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 using Math.round.

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 using Math.round.

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 using Math.round.

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 using Math.round.

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 using Math.round.

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 using Math.round.

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 using Math.round.

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 using Math.round.

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 using Math.round.

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 using Math.round.

License

The MIT License (MIT)
Copyright (c) 2015-2018 Alexey Bystrov

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].