From 525e67d9d8f48c21527be5bfd088d9aa21c87d26 Mon Sep 17 00:00:00 2001
From: XANTRONIX Industrial <xan@xantronix.com>
Date: Tue, 18 Mar 2025 14:44:01 -0400
Subject: [PATCH] Initial implementation of bulk shear

---
 lib/xmet/sounding.py | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/lib/xmet/sounding.py b/lib/xmet/sounding.py
index f996a1f..9e20731 100644
--- a/lib/xmet/sounding.py
+++ b/lib/xmet/sounding.py
@@ -229,6 +229,23 @@ class Sounding(DatabaseTable):
             90 - deg(math.atan(vd / ud))
         )
 
+    def bulk_shear(self):
+        levels = len(self.samples) - 1
+
+        shear_speed = 0.0
+        shear_dir   = 0.0
+
+        for level in range(0, levels):
+            shear = self.shear(level)
+
+            shear_speed += shear[0]
+            shear_dir   += shear[1]
+
+        return (
+            shear_speed / levels,
+            shear_dir   / levels
+        )
+
 def between(n, a, b):
     return n > a and n < b