From 9b257830717d048c84a4f360b41115ec97ae10e2 Mon Sep 17 00:00:00 2001 From: tomrink <rink@ssec.wisc.edu> Date: Fri, 21 May 2021 10:24:29 -0500 Subject: [PATCH] minor... --- modules/util/util.py | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/modules/util/util.py b/modules/util/util.py index ae662b08..e1dfd9cc 100644 --- a/modules/util/util.py +++ b/modules/util/util.py @@ -16,6 +16,36 @@ class GenericException(Exception): self.message = message +class EarlyStop: + def __init__(self, window_length=3, patience=5): + self.patience = patience + self.min = np.finfo(np.single) + self.cnt = 0 + self.cnt_wait = 0 + self.window = np.zeros(window_length, dtype=np.single) + self.window.fill(np.nan) + + def check_stop(self, value): + self.window[:-1] = self.window[1:] + self.window[-1] = value + + if np.any(np.isnan(self.window)): + return False + + ave = np.mean(self.window) + if ave < self.min: + self.min = ave + self.cnt_wait = 0 + return False + else: + self.cnt_wait += 1 + + if self.cnt_wait > self.patience: + return True + else: + return False + + def get_time_tuple_utc(timestamp): dt_obj = datetime.datetime.fromtimestamp(timestamp, timezone.utc) return dt_obj, dt_obj.timetuple() -- GitLab