From 22a9313aa3bdb04c372e169661626505cccfaabc Mon Sep 17 00:00:00 2001
From: tomrink <rink@ssec.wisc.edu>
Date: Tue, 28 Sep 2021 09:37:05 -0500
Subject: [PATCH] Fix hanlding of out-of-domain earth loc in earth_to_lc_s

---
 modules/icing/pirep_goes.py | 18 ++++++++++++++----
 1 file changed, 14 insertions(+), 4 deletions(-)

diff --git a/modules/icing/pirep_goes.py b/modules/icing/pirep_goes.py
index df7a2cd9..ea95b664 100644
--- a/modules/icing/pirep_goes.py
+++ b/modules/icing/pirep_goes.py
@@ -1417,6 +1417,9 @@ def run_mean_std(check_cloudy=False, no_icing_to_icing_ratio=5):
         mean_i = np.nanmean(data_i)
         data_i -= mean_i
         std_i = np.nanstd(data_i)
+        lo_i = np.nanmin(data_i)
+        hi_i = np.nammax(data_i)
+        cnt_i = np.sum(np.invert(np.isnan(data_i)))
 
         data_ni = np.concatenate(data_ni)
         if check_cloudy:
@@ -1425,18 +1428,26 @@ def run_mean_std(check_cloudy=False, no_icing_to_icing_ratio=5):
         mean_ni = np.nanmean(data_ni)
         data_ni -= mean_ni
         std_ni = np.nanstd(data_ni)
+        lo_ni = np.nanmin(data_ni)
+        hi_ni = np.nammax(data_ni)
+        cnt_ni = np.sum(np.invert(np.isnan(data_ni)))
+
+        no_icing_to_icing_ratio = cnt_ni/cnt_i
 
         mean = (mean_i + no_icing_to_icing_ratio*mean_ni)/(no_icing_to_icing_ratio + 1)
         std = (std_i + no_icing_to_icing_ratio*std_ni)/(no_icing_to_icing_ratio + 1)
+        lo = (lo_i + no_icing_to_icing_ratio*lo_ni)/(no_icing_to_icing_ratio + 1)
+        hi = (hi_i + no_icing_to_icing_ratio*hi_ni)/(no_icing_to_icing_ratio + 1)
 
-        print(dname,': (', mean, mean_i, mean_ni, ') (', std, std_i, std_ni, ')')
+        print(dname,': (', mean, mean_i, mean_ni, ') (', std, std_i, std_ni, ') ratio: ', no_icing_to_icing_ratio)
+        print(dname,': (', lo, lo_i, lo_ni, ') (', hi, hi_i, hi_ni, ') ratio: ', no_icing_to_icing_ratio)
 
-        mean_std_dct[dname] = (mean_ni, std_ni)
+        mean_std_dct[dname] = (mean_ni, std_ni, lo_ni, hi_ni)
 
     [h5f.close() for h5f in ice_h5f_lst]
     [h5f.close() for h5f in no_ice_h5f_lst]
 
-    f = open('/home/rink/data/icing_ml/mean_std.pkl', 'wb')
+    f = open('/home/rink/data/icing_ml/mean_std_lo_hi.pkl', 'wb')
     pickle.dump(mean_std_dct, f)
     f.close()
 
@@ -1496,7 +1507,6 @@ def run_mean_std_3(train_file_path, check_cloudy=False, params=train_params_day)
     params = ['temp_10_4um_nom', 'temp_11_0um_nom', 'temp_12_0um_nom', 'temp_13_3um_nom', 'temp_3_75um_nom',
                'temp_6_2um_nom', 'temp_6_7um_nom', 'temp_7_3um_nom', 'temp_8_5um_nom', 'temp_9_7um_nom',
                'refl_0_47um_nom', 'refl_0_65um_nom', 'refl_0_86um_nom', 'refl_1_38um_nom', 'refl_1_60um_nom']
-    check_cloudy = False
 
     mean_std_lo_hi_dct = {}
 
-- 
GitLab