diff --git a/modules/util/util.py b/modules/util/util.py
index 7cbed72c11dfb8532390cbab95d7618ba31aa467..618c66765a1c2a595c7a45d097c9f63e3292e708 100644
--- a/modules/util/util.py
+++ b/modules/util/util.py
@@ -202,4 +202,27 @@ def is_night(solzen, test_angle=100.0):
     if len(solzen) == 0 or np.sum(solzen >= test_angle) < len(solzen):
         return False
     else:
-        return True
\ No newline at end of file
+        return True
+
+
+def get_grid_values_all(h5f, grid_name, scale_factor_name='scale_factor', add_offset_name='add_offset'):
+    hfds = h5f[grid_name]
+    attrs = hfds.attrs
+
+    grd_vals = hfds[:,:]
+    grd_vals = np.where(grd_vals == -999, np.nan, grd_vals)
+    grd_vals = np.where(grd_vals == -127, np.nan, grd_vals)
+    grd_vals = np.where(grd_vals == -32768, np.nan, grd_vals)
+
+    if attrs is None:
+        return grd_vals
+
+    if scale_factor_name is not None:
+        scale_factor = attrs.get(scale_factor_name)[0]
+        grd_vals = grd_vals * scale_factor
+
+    if add_offset_name is not None:
+        add_offset = attrs.get(add_offset_name)[0]
+        grd_vals = grd_vals + add_offset
+
+    return grd_vals