Now with (apparently) working absolute humidity
This commit is contained in:
parent
3874a37a86
commit
ccfc47eb79
3 changed files with 9 additions and 23 deletions
|
|
@ -1,3 +1,5 @@
|
||||||
# humidity
|
# humidity
|
||||||
|
|
||||||
Functions to compute relative humidity, absolute humidity, wet bulb temperature, given pressure and absolute temperature.
|
Functions to compute relative humidity, absolute humidity, wet bulb
|
||||||
|
temperature, and other values related to humidity of air, given
|
||||||
|
partial data
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@
|
||||||
(defn resolve-humidity
|
(defn resolve-humidity
|
||||||
"Resolve humidity equations given the data in this packet."
|
"Resolve humidity equations given the data in this packet."
|
||||||
[& {:keys [temperature temperature-celsius temperature-kelvin relative-humidity
|
[& {:keys [temperature temperature-celsius temperature-kelvin relative-humidity
|
||||||
pressure-kilopascals pressure-millibars] :as packet}]
|
pressure-kilopascals pressure-millibars saturation-pressure] :as packet}]
|
||||||
(println packet)
|
(println packet)
|
||||||
(if temperature (resolve-humidity (assoc (dissoc packet :temperature) :temperature-celsius temperature))
|
(if temperature (resolve-humidity (assoc (dissoc packet :temperature) :temperature-celsius temperature))
|
||||||
(?assoc packet
|
(?assoc packet
|
||||||
|
|
@ -21,8 +21,9 @@
|
||||||
:wet-bulb-temperature (when
|
:wet-bulb-temperature (when
|
||||||
(and temperature-celsius relative-humidity)
|
(and temperature-celsius relative-humidity)
|
||||||
(wet-bulb-temperature temperature-celsius relative-humidity))
|
(wet-bulb-temperature temperature-celsius relative-humidity))
|
||||||
:absolute-humidity (when (and temperature-celsius relative-humidity)
|
:absolute-humidity (abs-humidity :relative-humidity relative-humidity
|
||||||
(abs-humidity temperature-celsius relative-humidity))
|
:saturation-pressure saturation-pressure
|
||||||
|
:temperature-kelvin temperature-kelvin)
|
||||||
:pressure-kilopascals (when-not pressure-kilopascals
|
:pressure-kilopascals (when-not pressure-kilopascals
|
||||||
(if pressure-millibars (/ pressure-millibars 10) 100))
|
(if pressure-millibars (/ pressure-millibars 10) 100))
|
||||||
:pressure-millibars (when-not pressure-millibars
|
:pressure-millibars (when-not pressure-millibars
|
||||||
|
|
@ -30,15 +31,6 @@
|
||||||
:saturation-pressure (saturation-vp/saturation-vp packet))))
|
:saturation-pressure (saturation-vp/saturation-vp packet))))
|
||||||
|
|
||||||
|
|
||||||
;; the example in the paper gives this as 13.7
|
|
||||||
(wet-bulb-temperature 20 50)
|
|
||||||
;; by definition, this must equal 35
|
|
||||||
(wet-bulb-temperature 35 100)
|
|
||||||
;; from published graphs, I interpolatethis in the range 33...35
|
|
||||||
(wet-bulb-temperature 40 70)
|
|
||||||
|
|
||||||
;; (resolve-humidity {:relative-humidity 100 :temperature 35})
|
|
||||||
|
|
||||||
(defn resolution
|
(defn resolution
|
||||||
"Repeatedly run `resolve-humidity`, q.v., until we can infer no further
|
"Repeatedly run `resolve-humidity`, q.v., until we can infer no further
|
||||||
information."
|
information."
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,6 @@
|
||||||
(ns ^{:doc "Utility functions for humidity calculation"} humidity.utils
|
(ns ^{:doc "Utility functions for humidity calculation"} humidity.utils
|
||||||
(:require [clojure.math :refer [pow]]))
|
(:require [clojure.math :refer [pow]]))
|
||||||
|
|
||||||
(def ^:const celsius-offset
|
|
||||||
"Value of 0° Celsius in ° Kelvin"
|
|
||||||
273.15)
|
|
||||||
|
|
||||||
(def ^:const e
|
|
||||||
"Base of natural logarithms"
|
|
||||||
2.71828)
|
|
||||||
|
|
||||||
|
|
||||||
(defmacro expt
|
(defmacro expt
|
||||||
"Clojure.math `pow` function does not allow ratios as exponents;
|
"Clojure.math `pow` function does not allow ratios as exponents;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue