From 0e171119ac1c18f9ef500197510c5ae4cbcc85c1 Mon Sep 17 00:00:00 2001
From: tomrink <rink@ssec.wisc.edu>
Date: Tue, 27 Dec 2022 12:37:07 -0600
Subject: [PATCH] snapshot...

---
 modules/util/viirs_l1b_l2.py | 38 +++++++++++++++++++++++++-----------
 1 file changed, 27 insertions(+), 11 deletions(-)

diff --git a/modules/util/viirs_l1b_l2.py b/modules/util/viirs_l1b_l2.py
index 5e2d0ea3..f91fc528 100644
--- a/modules/util/viirs_l1b_l2.py
+++ b/modules/util/viirs_l1b_l2.py
@@ -52,8 +52,8 @@ emis_params = ['temp_10_4um_nom', 'temp_11_0um_nom', 'temp_12_0um_nom', 'temp_13
 # data_params = emis_params
 
 # l2_params = ['temp_11_0um_nom', 'temp_12_0um_nom', 'cloud_fraction']
-# l2_params = ['temp_11_0um_nom', 'temp_12_0um_nom', 'refl_0_65um_nom', 'cld_opd_dcomp']
-l2_params = ['temp_11_0um_nom', 'temp_12_0um_nom', 'refl_0_65um_nom', 'cloud_probability']
+l2_params = ['temp_11_0um_nom', 'temp_12_0um_nom', 'refl_0_65um_nom', 'cld_opd_dcomp']
+# l2_params = ['temp_11_0um_nom', 'temp_12_0um_nom', 'refl_0_65um_nom', 'cloud_probability']
 # l2_params = ['temp_11_0um_nom', 'temp_12_0um_nom', 'refl_0_65um_nom', 'cloud_fraction']
 
 label_params = l2_params
@@ -99,6 +99,29 @@ def process_cld_prob_(grd_k):
     return grd_k
 
 
+def process_cld_opd(param_s, tile):
+    k = param_s.index('cld_opd_dcomp')
+    grd_k = tile[k, ].copy()
+    grd_k = process_cld_opd_(grd_k)
+    if grd_k is not None:
+        tile[k, ] = grd_k
+        return tile
+    else:
+        return None
+
+
+def process_cld_opd_(grd_k):
+    keep = np.invert(np.isnan(grd_k))
+    num_keep = np.sum(keep)
+    if num_keep / grd_k.size < 0.98:
+        return None
+    grd_k = np.where(np.invert(keep), 0, grd_k)
+    keep = np.where(keep, np.logical_and(0.1 < grd_k, grd_k < 158.0), False)
+    if np.sum(keep)/num_keep < 0.50:
+        return None
+    return grd_k
+
+
 def run_all(directory, out_directory, day_night='ANY', start=10):
     cnt = start
     total_num_train_samples = 0
@@ -149,7 +172,6 @@ def run_all(directory, out_directory, day_night='ANY', start=10):
 
             try:
                 run(data_h5f, data_params, data_train_tiles, data_valid_tiles, num_keep_x_tiles=num_keep_x_tiles, tile_width=128, kernel_size=11, day_night=day_night)
-                # run(data_h5f, label_params, label_data_tiles, label_valid_tiles, tile_width=128, kernel_size=7, day_night=day_night)
             except Exception as e:
                 print(e)
                 data_h5f.close()
@@ -242,10 +264,7 @@ def run(data_h5f, param_s, train_tiles, valid_tiles, num_keep_x_tiles=8, tile_wi
                 continue
 
             nda = data[:, j_a:j_b, i_a:i_b]
-            # if not keep_tile(param_s, nda):
-            #     continue
-
-            nda = process_cld_prob(param_s, nda)
+            nda = process_cld_opd(param_s, nda)
             if nda is not None:
                 train_tiles.append(nda)
 
@@ -264,10 +283,7 @@ def run(data_h5f, param_s, train_tiles, valid_tiles, num_keep_x_tiles=8, tile_wi
                 continue
 
             nda = data[:, j_a:j_b, i_a:i_b]
-            # if not keep_tile(param_s, nda):
-            #     continue
-
-            nda = process_cld_prob(param_s, nda)
+            nda = process_cld_opd(param_s, nda)
             if nda is not None:
                 valid_tiles.append(nda)
 
-- 
GitLab