From 863360e5e8400febb68b54a3627ebd69de5752d3 Mon Sep 17 00:00:00 2001
From: XANTRONIX Industrial <xan@xantronix.com>
Date: Wed, 26 Feb 2025 19:45:01 -0500
Subject: [PATCH] Initial commit of thermo.py

---
 lib/xmet/thermo.py | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)
 create mode 100644 lib/xmet/thermo.py

diff --git a/lib/xmet/thermo.py b/lib/xmet/thermo.py
new file mode 100644
index 0000000..4f76597
--- /dev/null
+++ b/lib/xmet/thermo.py
@@ -0,0 +1,22 @@
+def vapor_pressure(dewpoint: float) -> float:
+    return 6.11 * 10 * (
+        (7.5 * dewpoint) / (237.3 * dewpoint)
+    )
+
+def saturated_vapor_pressure(temp: float) -> float:
+    return 6.11 * 10 * (
+        (7.5 * temp) / (237.3 * temp)
+    )
+
+def mixing_ratio(dewpoint: float, pressure: float) -> float:
+    e = vapor_pressure(dewpoint)
+
+    return 621.97 * (e / (pressure - e))
+
+def saturated_mixing_ratio(temp: float, pressure: float) -> float:
+    es = saturated_vapor_pressure(temp)
+
+    return 621.97 * (es / (pressure - es))
+
+def lcl(temp: float, dewpoint: float) -> float:
+    return (temp - dewpoint) / 0.008