From 373fabe61abd7367198d8b56eb180add626938ce Mon Sep 17 00:00:00 2001
From: tomrink <rink@ssec.wisc.edu>
Date: Wed, 7 Jun 2023 13:59:12 -0500
Subject: [PATCH] snapshot...

---
 modules/util/util.py | 150 +++++++++++++++++++++----------------------
 1 file changed, 75 insertions(+), 75 deletions(-)

diff --git a/modules/util/util.py b/modules/util/util.py
index 93ae51c3..76a9090c 100644
--- a/modules/util/util.py
+++ b/modules/util/util.py
@@ -333,6 +333,81 @@ def get_median(tile_2d):
     return np.nanmedian(tile)
 
 
+def get_grid_values(h5f, grid_name, j_c, i_c, half_width, num_j=None, num_i=None, scale_factor_name='scale_factor', add_offset_name='add_offset',
+                    fill_value_name='_FillValue', valid_range_name='valid_range', actual_range_name='actual_range', fill_value=None):
+    hfds = h5f[grid_name]
+    attrs = hfds.attrs
+    if attrs is None:
+        raise GenericException('No attributes object for: '+grid_name)
+
+    ylen, xlen = hfds.shape
+
+    if half_width is not None:
+        j_l = j_c-half_width
+        i_l = i_c-half_width
+        if j_l < 0 or i_l < 0:
+            return None
+
+        j_r = j_c+half_width+1
+        i_r = i_c+half_width+1
+        if j_r >= ylen or i_r >= xlen:
+            return None
+    else:
+        j_l = j_c
+        j_r = j_c + num_j + 1
+        i_l = i_c
+        i_r = i_c + num_i + 1
+
+    grd_vals = hfds[j_l:j_r, i_l:i_r]
+
+    if fill_value_name is not None:
+        attr = attrs.get(fill_value_name)
+        if attr is not None:
+            if np.isscalar(attr):
+                fill_value = attr
+            else:
+                fill_value = attr[0]
+            grd_vals = np.where(grd_vals == fill_value, np.nan, grd_vals)
+    elif fill_value is not None:
+        grd_vals = np.where(grd_vals == fill_value, np.nan, grd_vals)
+
+    if valid_range_name is not None:
+        attr = attrs.get(valid_range_name)
+        if attr is not None:
+            low = attr[0]
+            high = attr[1]
+            grd_vals = np.where(grd_vals < low, np.nan, grd_vals)
+            grd_vals = np.where(grd_vals > high, np.nan, grd_vals)
+
+    if scale_factor_name is not None:
+        attr = attrs.get(scale_factor_name)
+        if attr is not None:
+            if np.isscalar(attr):
+                scale_factor = attr
+            else:
+                scale_factor = attr[0]
+            grd_vals = grd_vals * scale_factor
+
+    if add_offset_name is not None:
+        attr = attrs.get(add_offset_name)
+        if attr is not None:
+            if np.isscalar(attr):
+                add_offset = attr
+            else:
+                add_offset = attr[0]
+            grd_vals = grd_vals + add_offset
+
+    if actual_range_name is not None:
+        attr = attrs.get(actual_range_name)
+        if attr is not None:
+            low = attr[0]
+            high = attr[1]
+            grd_vals = np.where(grd_vals < low, np.nan, grd_vals)
+            grd_vals = np.where(grd_vals > high, np.nan, grd_vals)
+
+    return grd_vals
+
+
 def get_grid_values_all(h5f, grid_name, scale_factor_name='scale_factor', add_offset_name='add_offset',
                         fill_value_name='_FillValue', valid_range_name='valid_range', actual_range_name='actual_range', fill_value=None, stride=None):
     hfds = h5f[grid_name]
@@ -588,81 +663,6 @@ def get_cartopy_crs(satellite, domain):
     return geos, xlen, xmin, xmax, ylen, ymin, ymax
 
 
-def get_grid_values(h5f, grid_name, j_c, i_c, half_width, num_j=None, num_i=None, scale_factor_name='scale_factor', add_offset_name='add_offset',
-                    fill_value_name='_FillValue', valid_range_name='valid_range', actual_range_name='actual_range', fill_value=None):
-    hfds = h5f[grid_name]
-    attrs = hfds.attrs
-    if attrs is None:
-        raise GenericException('No attributes object for: '+grid_name)
-
-    ylen, xlen = hfds.shape
-
-    if half_width is not None:
-        j_l = j_c-half_width
-        i_l = i_c-half_width
-        if j_l < 0 or i_l < 0:
-            return None
-
-        j_r = j_c+half_width+1
-        i_r = i_c+half_width+1
-        if j_r >= ylen or i_r >= xlen:
-            return None
-    else:
-        j_l = j_c
-        j_r = j_c + num_j + 1
-        i_l = i_c
-        i_r = i_c + num_i + 1
-
-    grd_vals = hfds[j_l:j_r, i_l:i_r]
-
-    if fill_value_name is not None:
-        attr = attrs.get(fill_value_name)
-        if attr is not None:
-            if np.isscalar(attr):
-                fill_value = attr
-            else:
-                fill_value = attr[0]
-            grd_vals = np.where(grd_vals == fill_value, np.nan, grd_vals)
-    elif fill_value is not None:
-        grd_vals = np.where(grd_vals == fill_value, np.nan, grd_vals)
-
-    if valid_range_name is not None:
-        attr = attrs.get(valid_range_name)
-        if attr is not None:
-            low = attr[0]
-            high = attr[1]
-            grd_vals = np.where(grd_vals < low, np.nan, grd_vals)
-            grd_vals = np.where(grd_vals > high, np.nan, grd_vals)
-
-    if scale_factor_name is not None:
-        attr = attrs.get(scale_factor_name)
-        if attr is not None:
-            if np.isscalar(attr):
-                scale_factor = attr
-            else:
-                scale_factor = attr[0]
-            grd_vals = grd_vals * scale_factor
-
-    if add_offset_name is not None:
-        attr = attrs.get(add_offset_name)
-        if attr is not None:
-            if np.isscalar(attr):
-                add_offset = attr
-            else:
-                add_offset = attr[0]
-            grd_vals = grd_vals + add_offset
-
-    if actual_range_name is not None:
-        attr = attrs.get(actual_range_name)
-        if attr is not None:
-            low = attr[0]
-            high = attr[1]
-            grd_vals = np.where(grd_vals < low, np.nan, grd_vals)
-            grd_vals = np.where(grd_vals > high, np.nan, grd_vals)
-
-    return grd_vals
-
-
 def concat_dict_s(t_dct_0, t_dct_1):
     keys_0 = list(t_dct_0.keys())
     nda_0 = np.array(keys_0)
-- 
GitLab