From 1306bc1faaae0b6561dabc7f3d25bbb467c1e4e6 Mon Sep 17 00:00:00 2001 From: tomrink <rink@ssec.wisc.edu> Date: Wed, 3 Aug 2022 14:51:07 -0500 Subject: [PATCH] run one --- modules/util/viirs_l1b_l2.py | 133 +++++++++++++++++++++++++---------- 1 file changed, 95 insertions(+), 38 deletions(-) diff --git a/modules/util/viirs_l1b_l2.py b/modules/util/viirs_l1b_l2.py index dec7098f..1b7d2d6a 100644 --- a/modules/util/viirs_l1b_l2.py +++ b/modules/util/viirs_l1b_l2.py @@ -39,7 +39,8 @@ def run_all(directory, out_directory): continue print(p.name) - data_files = glob.glob(directory + p.name+'/'+'clavrx_snpp_viirs*.uwssec*.nc') + data_files = glob.glob(directory + p.name+'/'+'clavrx*highres*.nc') + # data_files = glob.glob(directory + p.name+'/'+'clavrx_snpp_viirs*.uwssec*.nc') # data_files = glob.glob(directory + p.name + '/' + 'VNP02MOD*.uwssec.nc') label_valid_tiles = [] @@ -51,13 +52,12 @@ def run_all(directory, out_directory): for idx, data_f in enumerate(data_files): # if idx % 8 == 0: # if we want to skip some files if True: - w_o_ext, ext = os.path.splitext(data_f) - # label_f = data_f - pname, fname = os.path.split(data_f) - toks = fname.split('.') - label_f = pname + '/' + 'clavrx_VNP02MOD.' + toks[1]+'.'+toks[2]+'.'+toks[3]+'.'+toks[4]+'.'+'uwssec.highres.nc.level2.nc' - if not os.path.exists(label_f): - continue + # w_o_ext, ext = os.path.splitext(data_f) + # pname, fname = os.path.split(data_f) + # toks = fname.split('.') + # label_f = pname + '/' + 'clavrx_VNP02MOD.' + toks[1]+'.'+toks[2]+'.'+toks[3]+'.'+toks[4]+'.'+'uwssec.highres.nc.level2.nc' + # if not os.path.exists(label_f): + # continue try: data_h5f = h5py.File(data_f, 'r') @@ -65,57 +65,61 @@ def run_all(directory, out_directory): print('cant open file: ', data_f) continue - try: - label_h5f = h5py.File(label_f, 'r') - except: - print('cant open file: ', label_f) - data_h5f.close() - continue + # try: + # label_h5f = h5py.File(label_f, 'r') + # except: + # print('cant open file: ', label_f) + # data_h5f.close() + # continue data_tiles = [] - label_tiles = [] + #label_tiles = [] try: - run(data_h5f, label_h5f, data_tiles, label_tiles, mod_tile_width=32, kernel_size=5) + # run(data_h5f, label_h5f, data_tiles, label_tiles, mod_tile_width=32, kernel_size=5) + run_one(data_h5f, data_tiles, mod_tile_width=64, kernel_size=5) except Exception as e: print(e) data_h5f.close() - label_h5f.close() + #label_h5f.close() continue data_h5f.close() - label_h5f.close() + #label_h5f.close() - if len(data_tiles) == 0 or len(label_tiles) == 0: - continue + # if len(data_tiles) == 0 or len(label_tiles) == 0: + # continue + # + # if len(data_tiles) != len(label_tiles): + # print('weirdness: ', data_f) + # continue - if len(data_tiles) != len(label_tiles): - print('weirdness: ', data_f) + if len(data_tiles): continue num = len(data_tiles) n_vld = int(num * 0.1) - [label_valid_tiles.append(label_tiles[k]) for k in range(n_vld)] - [label_train_tiles.append(label_tiles[k]) for k in range(n_vld, num)] + # [label_valid_tiles.append(label_tiles[k]) for k in range(n_vld)] + # [label_train_tiles.append(label_tiles[k]) for k in range(n_vld, num)] [data_valid_tiles.append(data_tiles[k]) for k in range(n_vld)] [data_train_tiles.append(data_tiles[k]) for k in range(n_vld, num)] if f_cnt == 10: cnt += 1 - label_valid = np.stack(label_valid_tiles) - label_train = np.stack(label_train_tiles) + #label_valid = np.stack(label_valid_tiles) + #label_train = np.stack(label_train_tiles) data_valid = np.stack(data_valid_tiles) data_train = np.stack(data_train_tiles) np.save(out_directory+'data_train_' + str(cnt), data_train) np.save(out_directory+'data_valid_' + str(cnt), data_valid) - np.save(out_directory+'label_train_' + str(cnt), label_train) - np.save(out_directory+'label_valid_' + str(cnt), label_valid) + #np.save(out_directory+'label_train_' + str(cnt), label_train) + #np.save(out_directory+'label_valid_' + str(cnt), label_valid) - label_valid_tiles = [] - label_train_tiles = [] + #label_valid_tiles = [] + #label_train_tiles = [] data_valid_tiles = [] data_train_tiles = [] @@ -125,22 +129,25 @@ def run_all(directory, out_directory): else: f_cnt += 1 - if len(label_train_tiles) == 0 or len(data_train_tiles) == 0: - continue - if len(label_train_tiles) != len(data_train_tiles): - print('weirdness') + # if len(label_train_tiles) == 0 or len(data_train_tiles) == 0: + # continue + # if len(label_train_tiles) != len(data_train_tiles): + # print('weirdness') + # continue + + if len(data_train_tiles) == 0: continue - label_valid = np.stack(label_valid_tiles) - label_train = np.stack(label_train_tiles) + #label_valid = np.stack(label_valid_tiles) + #label_train = np.stack(label_train_tiles) data_valid = np.stack(data_valid_tiles) data_train = np.stack(data_train_tiles) cnt += 1 np.save(out_directory+'data_train_' + str(cnt), data_train) np.save(out_directory+'data_valid_' + str(cnt), data_valid) - np.save(out_directory+'label_train_' + str(cnt), label_train) - np.save(out_directory+'label_valid_' + str(cnt), label_valid) + #np.save(out_directory+'label_train_' + str(cnt), label_train) + #np.save(out_directory+'label_valid_' + str(cnt), label_valid) num_train_samples += data_train.shape[0] num_valid_samples += data_valid.shape[0] @@ -226,6 +233,56 @@ def run(data_h5f, label_h5f, data_tiles, label_tiles, mod_tile_width=64, kernel_ label_tiles.append(nda) +def run_one(data_h5f, data_tiles, tile_width=64, kernel_size=9): + + border = int((kernel_size - 1)/2) + + param_name = data_params[0] + + num_lines = data_h5f[param_name].shape[0] + num_pixels = data_h5f[param_name].shape[1] + + grd_s = [] + + for param in data_params: + try: + grd = get_grid_values(data_h5f, param, 0, 0, None, num_lines, num_pixels, range_name=None) + grd_s.append(grd) + except Exception as e: + print(e) + return + + data = np.stack(grd_s) + + # num_keep_x_tiles = 2 + num_keep_x_tiles = 1 + #i_skip = num_keep_x_tiles * tile_width + i_skip = 1 + j_skip = 1 * tile_width + #i_start = int(num_pixels / 2) - int((num_keep_x_tiles * 2 * tile_width) / 2) + i_start = int(num_pixels / 2) - int((tile_width) / 2) + + num_keep_y_tiles = 96 + for j in range(num_keep_y_tiles): + j_c = j * j_skip + j_m = j_c + border + + for i in range(num_keep_x_tiles): + i_c = i * i_skip + i_start + i_m = i_c + border + + j_stop = j_m + tile_width + border + if j_stop > num_lines - 1: + continue + + i_stop = i_m + tile_width + border + if i_stop > num_pixels - 1: + continue + + nda = data[:, j_m-border:j_stop, i_m-border:i_stop] + data_tiles.append(nda) + + def scan(directory): data_src = CLAVRx_VIIRS(directory) -- GitLab