diff --git a/modules/aeolus/aeolus_amv.py b/modules/aeolus/aeolus_amv.py index 1b136861d5030addcb75dbaef3547c8d345dbfa0..a3ccd1975b725aed4f0d6a377836da68c770d9e5 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 ac963a9b756d542b4eec15a16d1f68f226dc4b95..55eafd79aa943bdc8ab357853a5cf766b008e1bd 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()