diff --git a/modules/deeplearning/cnn_cld_frac_mod_res.py b/modules/deeplearning/cnn_cld_frac_mod_res.py index b2278c5072eaec712819c7e56b35881c28bc4537..43ba6cc7d5d339e3ff6f87d9b6192099754970e5 100644 --- a/modules/deeplearning/cnn_cld_frac_mod_res.py +++ b/modules/deeplearning/cnn_cld_frac_mod_res.py @@ -902,84 +902,6 @@ def run_evaluate_static(in_file, out_file, ckpt_dir): return out_sr, hr_grd_a, hr_grd_b, hr_grd_c -def analyze(file='/Users/tomrink/cld_opd_out.npy'): - # Save this: - # nn.test_data_files = glob.glob('/Users/tomrink/data/clavrx_opd_valid_DAY/data_valid*.npy') - # idxs = np.arange(50) - # dat, lbl = nn.get_in_mem_data_batch(idxs, False) - # tmp = dat[:, 1:128, 1:128, 1] - # tmp = dat[:, 1:129, 1:129, 1] - - tup = np.load(file, allow_pickle=True) - lbls = tup[0] - pred = tup[1] - - lbls = lbls[:, :, :, 0] - pred = pred[:, :, :, 0] - print('Total num pixels: ', lbls.size) - - pred = pred.flatten() - pred = np.where(pred < 0.0, 0.0, pred) - lbls = lbls.flatten() - diff = pred - lbls - - mae = (np.sum(np.abs(diff))) / diff.size - print('MAE: ', mae) - - bin_edges = [] - bin_ranges = [] - - bin_ranges.append([0.0, 5.0]) - bin_edges.append(0.0) - - bin_ranges.append([5.0, 10.0]) - bin_edges.append(5.0) - - bin_ranges.append([10.0, 15.0]) - bin_edges.append(10.0) - - bin_ranges.append([15.0, 20.0]) - bin_edges.append(15.0) - - bin_ranges.append([20.0, 30.0]) - bin_edges.append(20.0) - - bin_ranges.append([30.0, 40.0]) - bin_edges.append(30.0) - - bin_ranges.append([40.0, 60.0]) - bin_edges.append(40.0) - - bin_ranges.append([60.0, 80.0]) - bin_edges.append(60.0) - - bin_ranges.append([80.0, 100.0]) - bin_edges.append(80.0) - - bin_ranges.append([100.0, 120.0]) - bin_edges.append(100.0) - - bin_ranges.append([120.0, 140.0]) - bin_edges.append(120.0) - - bin_ranges.append([140.0, 160.0]) - bin_edges.append(140.0) - - bin_edges.append(160.0) - - diff_by_value_bins = util.util.bin_data_by(diff, lbls, bin_ranges) - - values = [] - for k in range(len(bin_ranges)): - diff_k = diff_by_value_bins[k] - mae_k = (np.sum(np.abs(diff_k)) / diff_k.size) - values.append(int(mae_k/bin_ranges[k][1] * 100.0)) - - print('MAE: ', diff_k.size, bin_ranges[k], mae_k) - - return np.array(values), bin_edges - - def analyze2(nda_m, nda_i): n_imgs = nda_m.shape[0] nda_m = np.where(nda_m < 0.5, 0, 1) @@ -1017,6 +939,39 @@ def analyze2(nda_m, nda_i): return cf_m, cf_i +def helper(lbls, pred, file='/Users/tomrink/clavrx_surfrad_viirs_cld_prob_valid.npy'): + nda = np.load(file, allow_pickle=True) + + bt = nda[:, 0, :, :] + refl = nda[:, 1, :, :] + cp = nda[:, 2, :, :] + + bt = get_grid_cell_mean(bt) + bt = bt[:, 0:66, 0:66] + + lo, hi, std, avg = get_min_max_std(refl) + + cp = np.where(np.isnan(cp), 0, cp) + cp = get_grid_cell_mean(cp) + cp = np.where(np.isnan(cp), 0, cp) + cp = cp[:, 1:65, 1:65] + cp = cp.flatten() + + lbls = lbls.flatten() + pred = pred.flatten() + print(lbls.shape, pred.shape, cp.shape) + + cp_cm = np.zeros((5, 5)) + + for j in range(5): + for i in range(5): + keep = (lbls == j) & (pred == i) + cp_avg = np.sum(cp[keep])/ np.sum(keep) + cp_cm[j, i] = cp_avg + + return cp_cm + + if __name__ == "__main__": nn = SRCNN() nn.run('matchup_filename')