diff --git a/modules/util/util.py b/modules/util/util.py
index 24983e1f266ccfa511fe2ba4150ed5ea7c593ce4..0ccb0c142f8b1b1ed1992b9f3b99f91fb28d300a 100644
--- a/modules/util/util.py
+++ b/modules/util/util.py
@@ -405,6 +405,29 @@ def normalize(data, param, mean_std_dict, add_noise=False, noise_scale=1.0, seed
     return data
 
 
+def scale(data, param, mean_std_dict):
+
+    if mean_std_dict.get(param) is None:
+        return data
+
+    shape = data.shape
+    data = data.flatten()
+
+    mean, std, lo, hi = mean_std_dict.get(param)
+    data -= mean
+    data /= std
+
+    data -= lo
+    data /= (hi - lo)
+
+    not_valid = np.isnan(data)
+    data[not_valid] = 0
+
+    data = np.reshape(data, shape)
+
+    return data
+
+
 f = open(ancillary_path+'geos_crs_goes16_FD.pkl', 'rb')
 geos_goes16_fd = pickle.load(f)
 f.close()