{-# LANGUAGE NamedFieldPuns #-}
module Web.OpenWeatherMap.Formulas
( absoluteHumidity
) where
import Web.OpenWeatherMap.Types.Main
absoluteHumidity :: Main -> Maybe Double
absoluteHumidity :: Main -> Maybe Double
absoluteHumidity Main {Double
temp :: Main -> Double
temp :: Double
temp, Double
humidity :: Main -> Double
humidity :: Double
humidity}
| Double
tC forall a. Ord a => a -> a -> Bool
> -Double
30 Bool -> Bool -> Bool
&& Double
tC forall a. Ord a => a -> a -> Bool
< Double
35 = forall a. a -> Maybe a
Just forall a b. (a -> b) -> a -> b
$ Double -> Double -> Double
ahBolton1980 Double
temp Double
humidity
| Bool
otherwise = forall a. Maybe a
Nothing
where
tC :: Double
tC = Double -> Double
k2c Double
temp
ahBolton1980 ::
Double
-> Double
-> Double
ahBolton1980 :: Double -> Double -> Double
ahBolton1980 Double
temp Double
humidity =
Double
13.25 forall a. Num a => a -> a -> a
* Double
humidity forall a. Num a => a -> a -> a
* forall a. Floating a => a -> a
exp (Double
17.67 forall a. Num a => a -> a -> a
* Double
tC forall a. Fractional a => a -> a -> a
/ (Double
tC forall a. Num a => a -> a -> a
+ Double
243.5)) forall a. Fractional a => a -> a -> a
/ Double
temp
where
tC :: Double
tC = Double -> Double
k2c Double
temp
k2c :: Double -> Double
k2c :: Double -> Double
k2c Double
t = Double
t forall a. Num a => a -> a -> a
- Double
273.15