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

refactor

parent db7d24d7
No related branches found
No related tags found
No related merge requests found
import numpy as np
import xarray as xr
import datetime
from datetime import timezone
from metpy.units import units
from metpy.calc import thickness_hydrostatic
from collections import namedtuple
import os
import h5py
LatLonTuple = namedtuple('LatLonTuple', ['lat', 'lon'])
......@@ -350,4 +352,69 @@ def normalize(data, param, mean_std_dict, add_noise=False, noise_scale=1.0, seed
data = np.reshape(data, shape)
return data
\ No newline at end of file
return data
# ------------ This code will not be needed when we implement a Fully Connected CNN -----------------------------------
# Example GOES file to retrieve GEOS parameters in MetPy form (CONUS)
exmp_file_conus = '/Users/tomrink/data/OR_ABI-L1b-RadC-M6C14_G16_s20193140811215_e20193140813588_c20193140814070.nc'
# Full Disk
exmp_file_fd = '/Users/tomrink/data/OR_ABI-L1b-RadF-M6C16_G16_s20212521800223_e20212521809542_c20212521809596.nc'
def make_for_full_domain_predict(clvrx_file, name_list=None, domain='FD'):
w_x = 16
w_y = 16
if domain == 'CONUS':
exmpl_ds = xr.open_dataset(exmp_file_conus)
elif domain == 'FD':
exmpl_ds = xr.open_dataset(exmp_file_fd)
mdat = exmpl_ds.metpy.parse_cf('Rad')
geos = mdat.metpy.cartopy_crs
xlen = mdat.x.values.size
ylen = mdat.y.values.size
exmpl_ds.close()
h5f = h5py.File(clvrx_file, 'r')
grd_dct = {name: None for name in name_list}
cnt_a = 0
for didx, ds_name in enumerate(name_list):
gvals = get_grid_values_all(h5f, ds_name)
if gvals is not None:
grd_dct[ds_name] = gvals
cnt_a += 1
if cnt_a > 0 and cnt_a != len(name_list):
raise GenericException('weirdness')
grd_dct_n = {name: [] for name in name_list}
n_x = int(xlen/w_x)
n_y = int(ylen/w_y)
i_0 = 0
j_0 = 0
cc = []
ll = []
for didx, ds_name in enumerate(name_list):
for j in range(4, n_y-4, 1):
j_ul = j_0 + j * w_y
for i in range(4, n_x-4, 1):
i_ul = i_0 + i * w_x
if didx == 0:
ll.append(j_ul)
cc.append(i_ul)
grd_dct_n[ds_name].append(grd_dct[ds_name][j_ul:j_ul+w_y, i_ul:i_ul+w_x])
grd_dct = {name: None for name in name_list}
for didx, ds_name in enumerate(name_list):
grd_dct[ds_name] = np.stack(grd_dct_n[ds_name])
h5f.close()
return grd_dct, ll, cc
# -------------------------------------------------------------------------------------------
\ No newline at end of file
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