Skip to content
Snippets Groups Projects
Commit 3eea729f authored by tomrink's avatar tomrink
Browse files

snapshot...

parent 1e282db4
No related branches found
No related tags found
No related merge requests found
...@@ -18,47 +18,51 @@ solzen_name = group_name_m + 'solar_zenith' ...@@ -18,47 +18,51 @@ solzen_name = group_name_m + 'solar_zenith'
label_params = [group_name_i+target_param] label_params = [group_name_i+target_param]
data_params = [group_name_m+'temp_11_0um', group_name_m+'refl_0_65um', group_name_m+target_param] data_params = [group_name_m+'temp_11_0um', group_name_m+'refl_0_65um', group_name_m+target_param]
param_idx_m = data_params.index(group_name_m + target_param)
param_idx_i = data_params.index(group_name_i + target_param)
def keep_tile(param, param_s, tile): def is_missing(p_idx, tile):
k = param_s.index(param) keep = np.invert(np.isnan(tile[p_idx, ]))
grd_k = tile[k, ].copy() if np.sum(keep) / keep.size < 0.98:
return True
def keep_tile(p_idx, tile):
grd_k = tile[p_idx, ].copy()
if target_param == 'cloud_probability': if target_param == 'cloud_probability':
grd_k, bflag = process_cld_prob_(grd_k) grd_k = process_cld_prob(grd_k)
elif target_param == 'cld_opd_dcomp': elif target_param == 'cld_opd_dcomp':
grd_k, bflag = process_cld_opd_(grd_k) grd_k = process_cld_opd(grd_k)
if grd_k is not None: if grd_k is not None:
tile[k, ] = grd_k tile[p_idx, ] = grd_k
return tile, bflag return tile
else: else:
return None, bflag return None
def process_cld_prob_(grd_k): def process_cld_prob(grd_k):
keep = np.invert(np.isnan(grd_k)) keep = np.invert(np.isnan(grd_k))
num_keep = np.sum(keep) num_keep = np.sum(keep)
if num_keep / grd_k.size < 0.98:
return None, True
keep_clr = np.where(keep, grd_k < 0.20, False) keep_clr = np.where(keep, grd_k < 0.20, False)
frac_keep = np.sum(keep_clr)/num_keep frac_keep = np.sum(keep_clr)/num_keep
if not (0.38 < frac_keep < 0.62): if not (0.35 < frac_keep < 0.65):
return None, False return None
grd_k = np.where(np.invert(keep), 0, grd_k) # Convert NaNs to 0 grd_k = np.where(np.invert(keep), 0, grd_k) # Convert NaN to 0
return grd_k, False return grd_k
def process_cld_opd_(grd_k): def process_cld_opd(grd_k):
keep = np.invert(np.isnan(grd_k)) keep = np.invert(np.isnan(grd_k))
num_keep = np.sum(keep) num_keep = np.sum(keep)
if num_keep / grd_k.size < 0.98:
return None, True
grd_k = np.where(np.invert(keep), 0, grd_k) grd_k = np.where(np.invert(keep), 0, grd_k)
keep = np.where(keep, np.logical_and(0.1 < grd_k, grd_k < 158.0), False) keep = np.where(keep, np.logical_and(0.1 < grd_k, grd_k < 158.0), False)
if np.sum(keep)/num_keep < 0.50: frac_keep = np.sum(keep)/num_keep
return None, False if frac_keep < 0.50:
return grd_k, False return None
return grd_k
def run_all(directory, out_directory, day_night='ANY', pattern='clavrx_*.nc', start=10): def run_all(directory, out_directory, day_night='ANY', pattern='clavrx_*.nc', start=10):
...@@ -103,6 +107,8 @@ def run_all(directory, out_directory, day_night='ANY', pattern='clavrx_*.nc', st ...@@ -103,6 +107,8 @@ def run_all(directory, out_directory, day_night='ANY', pattern='clavrx_*.nc', st
f_cnt += 1 f_cnt += 1
h5f.close() h5f.close()
total_num_not_missing += num_not_missing
if len(data_train_tiles) == 0 and len(data_valid_tiles) == 0: if len(data_train_tiles) == 0 and len(data_valid_tiles) == 0:
continue continue
...@@ -131,7 +137,6 @@ def run_all(directory, out_directory, day_night='ANY', pattern='clavrx_*.nc', st ...@@ -131,7 +137,6 @@ def run_all(directory, out_directory, day_night='ANY', pattern='clavrx_*.nc', st
print(' num_train_samples, num_valid_samples, progress % : ', num_train_samples, num_valid_samples, int((f_cnt/num_files)*100)) print(' num_train_samples, num_valid_samples, progress % : ', num_train_samples, num_valid_samples, int((f_cnt/num_files)*100))
total_num_train_samples += num_train_samples total_num_train_samples += num_train_samples
total_num_valid_samples += num_valid_samples total_num_valid_samples += num_valid_samples
total_num_not_missing += num_not_missing
print('total_num_train_samples, total_num_valid_samples, total_num_not_missing: ', total_num_train_samples, print('total_num_train_samples, total_num_valid_samples, total_num_not_missing: ', total_num_train_samples,
total_num_valid_samples, total_num_not_missing) total_num_valid_samples, total_num_not_missing)
print('--------------------------------------------------') print('--------------------------------------------------')
...@@ -144,7 +149,7 @@ def run_all(directory, out_directory, day_night='ANY', pattern='clavrx_*.nc', st ...@@ -144,7 +149,7 @@ def run_all(directory, out_directory, day_night='ANY', pattern='clavrx_*.nc', st
# tile_width: Must be even! # tile_width: Must be even!
# kernel_size: Must be odd! # kernel_size: Must be odd!
def run(h5f, param_s, train_tiles, valid_tiles, lbl_param_s, lbl_train_tiles, lbl_valid_tiles, def run(h5f, param_s, train_tiles, valid_tiles, lbl_param_s, lbl_train_tiles, lbl_valid_tiles,
num_keep_x_tiles=8, tile_width=64, kernel_size=3, day_night='DAY'): num_keep_x_tiles=8, tile_width=64, kernel_size=3, day_night='ANY'):
border = int((kernel_size - 1)/2) + 1 # Need to add for interpolation with no edge effects border = int((kernel_size - 1)/2) + 1 # Need to add for interpolation with no edge effects
...@@ -153,7 +158,7 @@ def run(h5f, param_s, train_tiles, valid_tiles, lbl_param_s, lbl_train_tiles, lb ...@@ -153,7 +158,7 @@ def run(h5f, param_s, train_tiles, valid_tiles, lbl_param_s, lbl_train_tiles, lb
num_lines = h5f[param_name].shape[0] num_lines = h5f[param_name].shape[0]
num_pixels = h5f[param_name].shape[1] # Must be even num_pixels = h5f[param_name].shape[1] # Must be even
if day_night != 'BOTH': if day_night != 'ANY':
solzen = get_grid_values(h5f, solzen_name, 0, 0, None, num_lines, num_pixels) solzen = get_grid_values(h5f, solzen_name, 0, 0, None, num_lines, num_pixels)
grd_s = [] grd_s = []
...@@ -204,10 +209,11 @@ def run(h5f, param_s, train_tiles, valid_tiles, lbl_param_s, lbl_train_tiles, lb ...@@ -204,10 +209,11 @@ def run(h5f, param_s, train_tiles, valid_tiles, lbl_param_s, lbl_train_tiles, lb
nda = data[:, j_a:j_b, i_a:i_b] nda = data[:, j_a:j_b, i_a:i_b]
nda_lbl = label[:, j_a*2:j_b*2, i_a*2:i_b*2] nda_lbl = label[:, j_a*2:j_b*2, i_a*2:i_b*2]
nda_lbl, missing_flag = keep_tile(group_name_i+target_param, lbl_param_s, nda_lbl) if is_missing(param_idx_i, nda_lbl):
if not missing_flag: continue
num_not_missing += 1 num_not_missing += 1
nda_lbl = keep_tile(group_name_i+target_param, lbl_param_s, nda_lbl)
if nda_lbl is not None: if nda_lbl is not None:
data_tiles.append(nda) data_tiles.append(nda)
lbl_tiles.append(nda_lbl) lbl_tiles.append(nda_lbl)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment