From 30bf31feb7f963b0955a9b8962e2c7f68672ba7f Mon Sep 17 00:00:00 2001
From: tomrink <rink@ssec.wisc.edu>
Date: Wed, 2 Jun 2021 14:28:41 -0500
Subject: [PATCH] new methods

---
 modules/aeolus/aeolus_amv.py | 54 +++++++++++++++++++++++++++++++++++-
 1 file changed, 53 insertions(+), 1 deletion(-)

diff --git a/modules/aeolus/aeolus_amv.py b/modules/aeolus/aeolus_amv.py
index 345794d1..df6542fa 100644
--- a/modules/aeolus/aeolus_amv.py
+++ b/modules/aeolus/aeolus_amv.py
@@ -4,7 +4,7 @@ import glob
 import numpy as np
 import xarray as xr
 from netCDF4 import Dataset
-from aeolus.geos_nav import GEOSNavigation
+from aeolus.geos_nav import GEOSNavigation, get_navigation
 from aeolus.datasource import get_datasource
 from util.util import haversine_np, LatLonTuple, GenericException
 from amv.intercompare import best_fit, bin_data_by, get_press_bin_ranges, spd_dir_from_uv, uv_from_spd_dir, \
@@ -1416,6 +1416,58 @@ def get_cloud_layers_dict_s(aeolus_files_dir, lon360=False):
     return cld_lyr_dct
 
 
+def match_aeolus_to_clavrx(aeolus_dict, clvrx_files):
+    nav = get_navigation()
+    #clvrx_params = clvrx_files.get_parameters()
+    clrvx_params = ['cld_height_acha', 'cld_press_acha', 'cld_temp_acha']
+    match_dict = {}
+
+    keys = list(aeolus_dict.keys())
+
+    last_f_idx = -1
+    cnt = 0
+    param_nd = None
+
+    for key in keys:
+        fname, ftime, f_idx = clvrx_files.get_file_containing_time(key)
+        if f_idx is None:
+            continue
+
+        prof_s = aeolus_dict.get(key)
+        if prof_s is None:
+            continue
+
+        if f_idx != last_f_idx:
+            last_f_idx = f_idx
+            ds = Dataset(fname)
+
+            param_s = []
+            for param in amv_params:
+                param_s.append(ds[param][:,:])
+            param_nd = np.vstack(param_s)
+
+            ds.close()
+
+        for prof in prof_s:
+            lat = prof[0, 0]
+            lon = prof[0, 1]
+
+            cc, ll = nav.earth_to_lc(lon, lat)
+            if cc < 0:
+                continue
+
+            # c_rng, l_rng = get_search_box(nav, lon, lat)
+            # if c_rng is None:
+            #     continue
+
+            param_nd = param_nd[:, cc-6:cc+7, ll-6:ll+7]
+            match_dict[cnt] = (key, cc, ll, f_idx, prof, param_nd)
+
+            cnt += 1
+
+    return match_dict
+
+
 def get_search_box(nav, lon, lat):
     cc, ll = nav.earth_to_lc(lon, lat)
     if cc is None:
-- 
GitLab