From 5f0c832bbac5224bdf340780c26228073e13562f Mon Sep 17 00:00:00 2001
From: Alex Wernle <awernle@usgs.gov>
Date: Tue, 26 Nov 2024 11:27:42 -0700
Subject: [PATCH] Added error handling for if window>period.

---
 geomagio/algorithm/SpikesAlgorithm.py | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/geomagio/algorithm/SpikesAlgorithm.py b/geomagio/algorithm/SpikesAlgorithm.py
index 5a4cfa19..185b5023 100644
--- a/geomagio/algorithm/SpikesAlgorithm.py
+++ b/geomagio/algorithm/SpikesAlgorithm.py
@@ -99,7 +99,13 @@ class SpikesAlgorithm(MetadataAlgorithm):
 
         timestamps = trace.times("UTCDateTime")
         signal = trace.data
-        # TODO: throw error if singal len < window!
+
+        # throw error if singal len < window
+        if len(signal) < self.window_size:
+            raise ValueError(
+                f"Signal length ({len(signal)}) must be at least as large as the window size ({self.window_size})."
+            )
+
         spike_timestamps = self._despike(signal, timestamps)
 
         # check existing metadata
@@ -119,7 +125,7 @@ class SpikesAlgorithm(MetadataAlgorithm):
 
         return None
 
-    def check_existing_spike_metadata(self, trace: Trace) -> str | None:
+    def check_existing_spike_metadata(self, trace: Trace) -> Optional[str] | None:
         """
         Find existing spike metadata for a specified period.
 
-- 
GitLab