From 4c72d54d5ef9a365232cc4ae99a97cebd5ba5077 Mon Sep 17 00:00:00 2001
From: tomrink <rink@ssec.wisc.edu>
Date: Tue, 15 Dec 2020 11:12:20 -0600
Subject: [PATCH] Use SpatialEarth2D

---
 modules/aeolus/aeolus_amv.py | 20 +++++++++++++-------
 modules/amv/intercompare.py  |  3 ++-
 2 files changed, 15 insertions(+), 8 deletions(-)

diff --git a/modules/aeolus/aeolus_amv.py b/modules/aeolus/aeolus_amv.py
index 1b136861..a3ccd197 100644
--- a/modules/aeolus/aeolus_amv.py
+++ b/modules/aeolus/aeolus_amv.py
@@ -5,7 +5,7 @@ import numpy as np
 import xarray as xr
 from netCDF4 import Dataset, Dimension, Variable
 from aeolus.geos_nav import GEOSNavigation
-from util.util import haversine_np
+from util.util import haversine_np, SpatialEarth2D
 from amv.intercompare import best_fit, bin_data_by, get_press_bin_ranges, spd_dir_from_uv, uv_from_spd_dir, \
     direction_difference
 import math
@@ -314,8 +314,8 @@ def match_amvs_to_raobs(raob_dict,  raob_time, amv_files, filepath=None):
         if raob is None:
             continue
 
-        lat = key[0]
-        lon = key[1]
+        lat = key.lat
+        lon = key.lon
 
         c_rng, l_rng = get_search_box(nav, lon, lat)
         if c_rng is None:
@@ -409,8 +409,8 @@ def create_file2(filename, raob_to_amv_dct, raob_dct, amv_files):
         prf_tmp[i_c:i_d] = prof[:, 1]
         i_c += nlevs
 
-        plat = key[0]
-        plon = key[1]
+        plat = key.lat
+        plon = key.lon
         prf_lat[idx::] = plat
         prf_lon[idx::] = plon
 
@@ -639,7 +639,10 @@ def run_best_fit(raob_to_amv_dct, raob_dct, gfs_filename=None, amvs_list=[], bf_
         gfs_press = gfs_press.values
         gfs_press = gfs_press[::-1]
 
-        uv_wind = get_vert_profile_s(xr_dataset, ['u-wind', 'v-wind'], locs[:, 1], locs[:, 0], method='nearest')
+        lon_idx = SpatialEarth2D._fields.index('lon')
+        lat_idx = SpatialEarth2D._fields.index('lat')
+
+        uv_wind = get_vert_profile_s(xr_dataset, ['u-wind', 'v-wind'], locs[:, lon_idx], locs[:, lat_idx], method='nearest')
         uv_wind = uv_wind.values
         wspd, wdir = spd_dir_from_uv(uv_wind[0, :, :], uv_wind[1, :, :])
         wspd = wspd.magnitude
@@ -1138,7 +1141,8 @@ def compare_amvs_bestfit(amvs_list, bfs_list, bin_size=200):
 
 
 def make_plot():
-    f = open('/Users/tomrink/amv_raob.pkl', 'rb')
+    # f = open('/Users/tomrink/amv_raob.pkl', 'rb')
+    f = open('/Users/tomrink/bf_bf_gfs.pkl', 'rb')
     tup_r = pickle.load(f)
     f.close()
 
@@ -1187,6 +1191,8 @@ def make_plot():
         spd_mad_g.append(np.average(np.abs(bin_spd_g[i])))
         spd_bias_g.append(np.average(bin_spd_g[i]))
 
+    #do_plot(x_values, [pres_mad_r], ['LBF'], ['blue'], title='RAOB-BFS', x_axis_label='MAD', y_axis_label='hPa', invert=True, flip=True)
+
     #do_plot(x_values, [pres_mad_r, pres_mad_g], ['RAOB', 'GFS'], ['blue', 'red'], title='ACHA - BestFit', x_axis_label='MAD', y_axis_label='hPa', invert=True, flip=True)
     #do_plot(x_values, [spd_mad_r, spd_mad_g], ['RAOB', 'GFS'], ['blue', 'red'], title='ACHA - BestFit', x_axis_label='MAE (m/s)', y_axis_label='hPa', invert=True, flip=True)
     #do_plot(x_values, [pres_bias_r, pres_bias_g], ['RAOB', 'GFS'], ['blue', 'red'], title='ACHA - BestFit', x_axis_label='BIAS', y_axis_label='hPa', invert=True, flip=True)
diff --git a/modules/amv/intercompare.py b/modules/amv/intercompare.py
index ac963a9b..55eafd79 100644
--- a/modules/amv/intercompare.py
+++ b/modules/amv/intercompare.py
@@ -17,6 +17,7 @@ from util.util import minimize_quadratic
 from netCDF4 import Dataset
 import datetime
 from datetime import timezone
+from util.util import SpatialEarth2D
 
 #-- AMV intercompare stuff ------------------------------------------
 
@@ -223,7 +224,7 @@ def get_raob_dict_cdf(pathname):
 
         raob = np.stack([all_levs._data, all_temp._data, all_spd._data, all_dir._data], axis=1)
 
-        raob_dct[(lat, lon)] = raob
+        raob_dct[SpatialEarth2D(lat=lat, lon=lon)] = raob
 
     rtgrp.close()
 
-- 
GitLab