diff --git a/modules/deeplearning/cloud_fraction_fcn_abi.py b/modules/deeplearning/cloud_fraction_fcn_abi.py index 28f76db13c8e70d3f0c191c862ec141a95a1b0e9..f7d13225319d7209fad87fadc1c58adb865a4c46 100644 --- a/modules/deeplearning/cloud_fraction_fcn_abi.py +++ b/modules/deeplearning/cloud_fraction_fcn_abi.py @@ -119,20 +119,20 @@ def upsample_mean(grd): bsize, ylen, xlen = grd.shape up = np.zeros((bsize, ylen*2, xlen*2)) - up[:, ::2, ::2] = grd[:, ::2, ::2] - up[:, 1::2, ::2] = grd[:, ::2, ::2] - up[:, ::2, 1::2] = grd[:, ::2, ::2] - up[:, 1::2, 1::2] = grd[:, ::2, ::2] + up[:, ::4, ::4] = grd[:, ::4, ::4] + up[:, 1::4, ::4] = grd[:, ::4, ::4] + up[:, ::4, 1::4] = grd[:, ::4, ::4] + up[:, 1::4, 1::4] = grd[:, ::4, ::4] return up def get_grid_cell_mean(grd_k): grd_k = np.where(np.isnan(grd_k), 0, grd_k) - a = grd_k[:, 0::2, 0::2] - b = grd_k[:, 1::2, 0::2] - c = grd_k[:, 0::2, 1::2] - d = grd_k[:, 1::2, 1::2] + a = grd_k[:, 0::4, 0::4] + b = grd_k[:, 1::4, 0::4] + c = grd_k[:, 0::4, 1::4] + d = grd_k[:, 1::4, 1::4] mean = np.nanmean([a, b, c, d], axis=0) return mean @@ -140,10 +140,10 @@ def get_grid_cell_mean(grd_k): def get_min_max_std(grd_k): grd_k = np.where(np.isnan(grd_k), 0, grd_k) - a = grd_k[:, 0::2, 0::2] - b = grd_k[:, 1::2, 0::2] - c = grd_k[:, 0::2, 1::2] - d = grd_k[:, 1::2, 1::2] + a = grd_k[:, 0::4, 0::4] + b = grd_k[:, 1::4, 0::4] + c = grd_k[:, 0::4, 1::4] + d = grd_k[:, 1::4, 1::4] lo = np.nanmin([a, b, c, d], axis=0) hi = np.nanmax([a, b, c, d], axis=0) @@ -157,15 +157,15 @@ def get_label_data(grd_k): grd_k = np.where(np.isnan(grd_k), 0, grd_k) grd_k = np.where(grd_k < 0.50, 0, 1) - a = grd_k[:, 0::2, 0::2] - b = grd_k[:, 1::2, 0::2] - c = grd_k[:, 0::2, 1::2] - d = grd_k[:, 1::2, 1::2] + a = grd_k[:, 0::4, 0::4] + b = grd_k[:, 1::4, 0::4] + c = grd_k[:, 0::4, 1::4] + d = grd_k[:, 1::4, 1::4] s = a + b + c + d - cat_0 = (s == 0) - cat_1 = np.logical_and(s > 0, s < 4) - cat_2 = (s == 4) + cat_0 = (s <= 1) + cat_1 = np.logical_and(s > 1, s < 15) + cat_2 = (s >= 15) s[cat_0] = 0 s[cat_1] = 1 s[cat_2] = 2 @@ -175,20 +175,19 @@ def get_label_data(grd_k): def get_label_data_5cat(grd_k): grd_k = np.where(np.isnan(grd_k), 0, grd_k) - # grd_u = np.where(np.logical_and(grd_k > 0.45, grd_k < 0.55), 1, 0) grd_k = np.where(grd_k < 0.5, 0, 1) - a = grd_k[:, 0::2, 0::2] - b = grd_k[:, 1::2, 0::2] - c = grd_k[:, 0::2, 1::2] - d = grd_k[:, 1::2, 1::2] + a = grd_k[:, 0::4, 0::4] + b = grd_k[:, 1::4, 0::4] + c = grd_k[:, 0::4, 1::4] + d = grd_k[:, 1::4, 1::4] s = a + b + c + d - cat_0 = (s == 0) - cat_1 = (s == 1) - cat_2 = (s == 2) - cat_3 = (s == 3) - cat_4 = (s == 4) + cat_0 = (s <= 1) + cat_1 = (s > 1) & (s <= 4) + cat_2 = (s > 4) & (s <= 11) + cat_3 = (s > 11) & (s <= 14) + cat_4 = (s > 14) s[cat_0] = 0 s[cat_1] = 1 @@ -196,14 +195,6 @@ def get_label_data_5cat(grd_k): s[cat_3] = 3 s[cat_4] = 4 - # a = grd_u[:, 0::2, 0::2] - # b = grd_u[:, 1::2, 0::2] - # c = grd_u[:, 0::2, 1::2] - # d = grd_u[:, 1::2, 1::2] - # s_u = a + b + c + d - # cat_u = (s_u == 4) - # s[cat_u] = 5 - return s