Newer
Older
mod_res_params = ['M07', 'M08', 'M10', 'M12', 'M13', 'M14', 'M15', 'M16']
img_res_params = ['M07_highres', 'M08_highres', 'M10_highres', 'M12_highres', 'M13_highres', 'M14_highres', 'M15_highres', 'M16_highres']
def run_all(directory):
cnt = 0
for p in os.scandir(directory):
if not p.is_dir():
continue
cnt += 1
mod_tiles = []
img_tiles = []
for idx, mfile in enumerate(mod_files):
w_o_ext, ext = os.path.splitext(mfile)
ifile = w_o_ext+'.highres'+ext
if not os.path.exists(ifile):
continue
print(mfile)
run(mfile, ifile, mod_tiles, img_tiles)
np.save('/data/Personal/rink/viirs/mod_res_'+str(cnt), mod_nda)
np.save('/data/Personal/rink/viirs/img_res_'+str(cnt), img_nda)
def run(mod_res_filename, img_res_filename, mod_tiles, img_tiles):
mod_h5f = h5py.File(mod_res_filename, 'r')
img_h5f = h5py.File(img_res_filename, 'r')
mod_tile_width = 64
img_tile_width = mod_tile_width * 2
mod_param = 'observation_data/M15'
img_param = 'observation_data/M15_highres'
mod_num_lines = mod_h5f[mod_param].shape[0]
mod_num_pixels = mod_h5f[mod_param].shape[1]
img_num_lines = img_h5f[img_param].shape[0]
img_num_pixels = img_h5f[img_param].shape[1]
mod_num_y_tiles = int(mod_num_lines / mod_tile_width)
mod_num_x_tiles = int(mod_num_pixels / mod_tile_width)
mod_data = get_grid_values(mod_h5f, mod_param, 0, 0, None, mod_num_lines, mod_num_pixels, range_name=None)
img_data = get_grid_values(img_h5f, img_param, 0, 0, None, img_num_lines, img_num_pixels, range_name=None)
i_c = int(mod_num_pixels / num_cntr_tiles) # center
j_skip = int(mod_num_y_tiles / num_cntr_tiles) * mod_tile_width
for k in range(num_cntr_tiles):
j_c = k * j_skip
j_m = j_c
i_m = i_c
i_i = i_m * 2
nda = mod_data[j_m:j_m + mod_tile_width, i_m:i_m + mod_tile_width]
mod_tiles.append(nda)
nda = img_data[j_i:j_i + img_tile_width, i_i:i_i + img_tile_width]
img_tiles.append(nda)
# for j in range(mod_num_y_tiles):
# j_m = j * mod_tile_width
# j_i = j_m * 2
# for i in range(mod_num_x_tiles):
# i_m = i * mod_tile_width
# i_i = i_m * 2
#
# nda = mod_data[j_m:j_m+mod_tile_width, i_m:i_m+mod_tile_width]
# mod_tiles.append(nda)
# nda = img_data[j_i:j_i+img_tile_width, i_i:i_i+img_tile_width]
# img_tiles.append(nda)
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
def run_mean_std(directory):
data_dct = {name: [] for name in mod_res_params}
mean_dct = {name: 0 for name in mod_res_params}
std_dct = {name: 0 for name in mod_res_params}
cnt = 0
for p in os.scandir(directory):
if not p.is_dir():
continue
cnt += 1
mod_files = glob.glob(directory+p.name+'/'+'*.uwssec.nc')
for idx, mfile in enumerate(mod_files):
if idx % 8 == 0:
h5f = h5py.File(mfile, 'r')
for param in mod_res_params:
gvals = get_grid_values_all(h5f, param, range_name=None, stride=10)
data_dct[param].append(gvals.flatten())
print(mfile)
h5f.close()
for param in mod_res_params:
data = data_dct[param]
data = np.concatenate(data)
mean_dct[param] = np.nanmean(data)
std_dct[param] = np.nanstd(data)
print(mean_dct)
print(std_dct)
# files = glob.glob(directory + 'clavrx_snpp_viirs*.h5')
files = Path(directory).rglob('clavrx_snpp_viirs*.h5')
try:
opd_nl = get_grid_values_all(h5f, 'cld_opd_nlcomp')
reff_nl = get_grid_values_all(h5f, 'cld_reff_nlcomp')
except:
continue
if np.sum(np.isnan(opd_nl)) < opd_nl.size and np.sum(np.isnan(reff_nl)) < reff_nl.size:
print(file)