Skip to content
Snippets Groups Projects
Commit 5e7a0802 authored by tomrink's avatar tomrink
Browse files

snaphot...

parent d9563b0a
No related branches found
No related tags found
No related merge requests found
......@@ -7,6 +7,7 @@ from netCDF4 import Dataset
from aeolus.datasource import get_datasource, CLAVRx_CALIPSO, get_parameters_caliop_clavrx
from util.util import haversine_np
from amv.intercompare import *
from util.util import pressure_to_altitude
amv_file_duration = 60 # minutes
half_width = 30 # search box centered on CALIOP profile (FGF coordinates)
......@@ -40,7 +41,7 @@ def get_search_box(cc, ll):
return c_rng, l_rng
def match_calipso_clavrx_to_amvs(calipso_clavrx_ds, calipso_clavrx_file, amv_files, calipso_clavrx_params):
def match_calipso_clavrx_to_amvs(calipso_clavrx_ds, calipso_clavrx_file, amv_files, calipso_clavrx_params, gfs_ds):
nav = amv_files.get_navigation()
amv_params = amv_files.get_parameters()
all_params = [amv_files.lon_name, amv_files.lat_name, amv_files.elem_name, amv_files.line_name] + amv_params
......@@ -55,6 +56,14 @@ def match_calipso_clavrx_to_amvs(calipso_clavrx_ds, calipso_clavrx_file, amv_fil
if f_idx is None:
return None
gfs_fname, _, _ = gfs_ds.get_file(nom_time)
if gfs_fname is None:
return None
gfs_xr = xr.open_dataset(gfs_fname)
gfs_press = gfs_xr['pressure levels']
gfs_press = gfs_press.values
gfs_press = gfs_press[::-1]
match_dict[nom_time] = []
amvs_nd = get_amv_nd(amv_fname, delimiter=',')
......@@ -116,6 +125,19 @@ def match_calipso_clavrx_to_amvs(calipso_clavrx_ds, calipso_clavrx_file, amv_fil
match_dict[nom_time].append((cc, ll, lon, lat, f_idx, data_da, amvs_da, dist_to_amvs))
lons = amv_lons[in_box]
lats = amv_lats[in_box]
lons = lons[s_idxs]
lats = lats[s_idxs]
temp_prof = get_vert_profile_s(gfs_ds, ['temperature'], lons, lats, method='nearest')
temp_prof = temp_prof.values
temp_prof_s = temp_prof[0, :, :]
temp_prof_s = temp_prof_s[:, ::-1]
for k in range(num_amvs):
alt = pressure_to_altitude(param_s[4, k], None, gfs_press, temp_prof_s[k, :])
print(alt)
return match_dict
......@@ -282,7 +304,7 @@ def create_file(match_dct, output_path, target_filepath, caliop_clavrx_params, a
rootgrp.close()
def run_caliop_clavrx_amv_match(output_path, path_to_caliop_clavrx, path_to_amvs, amv_source='OPS', band='14'):
def run_caliop_clavrx_amv_match(output_path, path_to_caliop_clavrx, path_to_amvs, path_to_gfs, amv_source='OPS', band='14'):
caliop_clavrx_params = get_parameters_caliop_clavrx(filename=caliop_clvrx_exmpl_file)
caliop_clavrx_ds = CLAVRx_CALIPSO(path_to_caliop_clavrx)
......@@ -291,8 +313,10 @@ def run_caliop_clavrx_amv_match(output_path, path_to_caliop_clavrx, path_to_amvs
amv_params = amv_ds.get_parameters()
amv_filenames = amv_ds.flist
gfs_ds = get_datasource(path_to_gfs, 'GFS')
for file in caliop_clavrx_ds.flist:
match_dict = match_calipso_clavrx_to_amvs(caliop_clavrx_ds, file, amv_ds, caliop_clavrx_params)
match_dict = match_calipso_clavrx_to_amvs(caliop_clavrx_ds, file, amv_ds, caliop_clavrx_params, gfs_ds)
if match_dict is None:
continue
......
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