From 3e7f2de837cd1e0fb9cec6990fa7b0435bccd62e Mon Sep 17 00:00:00 2001 From: kgoebber Date: Sun, 9 Jul 2023 16:34:10 -0500 Subject: [PATCH 1/2] add function to find and plot local extrema --- docs/_templates/overrides/metpy.calc.rst | 1 + src/metpy/calc/tools.py | 35 ++++++++++++ src/metpy/plots/__init__.py | 4 +- src/metpy/plots/_util.py | 63 +++++++++++++++++++++ tests/calc/test_calc_tools.py | 51 +++++++++++++++-- tests/plots/baseline/test_plot_extrema.png | Bin 0 -> 165393 bytes tests/plots/test_util.py | 27 ++++++++- 7 files changed, 174 insertions(+), 7 deletions(-) create mode 100644 tests/plots/baseline/test_plot_extrema.png diff --git a/docs/_templates/overrides/metpy.calc.rst b/docs/_templates/overrides/metpy.calc.rst index c5920a81505..6df3dd542fa 100644 --- a/docs/_templates/overrides/metpy.calc.rst +++ b/docs/_templates/overrides/metpy.calc.rst @@ -205,6 +205,7 @@ Other azimuth_range_to_lat_lon find_bounding_indices find_intersections + find_local_extrema get_layer get_layer_heights get_perturbation diff --git a/src/metpy/calc/tools.py b/src/metpy/calc/tools.py index 895ad216d7f..0c43103edad 100644 --- a/src/metpy/calc/tools.py +++ b/src/metpy/calc/tools.py @@ -781,6 +781,41 @@ def take(indexer): return take +@exporter.export +def find_local_extrema(var, nsize, extrema): + r"""Find the local extreme (max/min) values of a 2D array. + + Parameters + ---------- + var : `xarray.DataArray` + The variable to locate the local extrema using the nearest method + from the maximum_filter or minimum_filter from the scipy.ndimage module. + nsize : int + The minimum number of grid points between each local extrema. + extrema: str + The value 'max' for local maxima or 'min' for local minima. + + Returns + ------- + var_extrema: `xarray.DataArray` + The values of the local extrema with other values as NaNs + + See Also + -------- + :func:`~metpy.plots.plot_local_extrema` + + """ + from scipy.ndimage import maximum_filter, minimum_filter + if extrema not in ['max', 'min']: + raise ValueError('Invalid input for "extrema". Valid options are "max" or "min".') + + if extrema == 'max': + extreme_val = maximum_filter(var.values, nsize, mode='nearest') + elif extrema == 'min': + extreme_val = minimum_filter(var.values, nsize, mode='nearest') + return var.where(extreme_val == var.values) + + @exporter.export @preprocess_and_wrap() def lat_lon_grid_deltas(longitude, latitude, x_dim=-1, y_dim=-2, geod=None): diff --git a/src/metpy/plots/__init__.py b/src/metpy/plots/__init__.py index e9b61e7ff96..c105f0d90d0 100644 --- a/src/metpy/plots/__init__.py +++ b/src/metpy/plots/__init__.py @@ -7,7 +7,7 @@ from . import _mpl # noqa: F401 from . import cartopy_utils, plot_areas from ._util import (add_metpy_logo, add_timestamp, add_unidata_logo, # noqa: F401 - convert_gempak_color) + convert_gempak_color, plot_local_extrema) from .ctables import * # noqa: F403 from .declarative import * # noqa: F403 from .patheffects import * # noqa: F403 @@ -23,7 +23,7 @@ __all__.extend(station_plot.__all__) # pylint: disable=undefined-variable __all__.extend(wx_symbols.__all__) # pylint: disable=undefined-variable __all__.extend(['add_metpy_logo', 'add_timestamp', 'add_unidata_logo', - 'convert_gempak_color']) + 'convert_gempak_color', 'plot_local_extrema']) set_module(globals()) diff --git a/src/metpy/plots/_util.py b/src/metpy/plots/_util.py index 1135d538e65..829c5f775fc 100644 --- a/src/metpy/plots/_util.py +++ b/src/metpy/plots/_util.py @@ -283,3 +283,66 @@ def normalize(x): except TypeError: res = cols[normalize(c)] return res + + +def plot_local_extrema(ax, extreme_vals, symbol, plot_val=True, **kwargs): + """Plot the local extreme (max/min) values of an array. + + The behavior of the plotting will have the symbol horizontal/vertical alignment + be center/bottom and any value plotted will be center/top. The text size of plotted + values is 0.65 of the symbol size. + + Parameters + ---------- + ax : `matplotlib.axes` + The axes which to plot the local extrema + extreme_vals : `xarray.DataArray` + The DataArray that contains the variable local extrema + symbol : str + The text or other string to plot at the local extrema location + plot_val : bool + Whether to plot the local extreme value (default is True) + + Returns + ------- + Plots local extrema on the plot axes + + Other Parameters + ---------------- + kwargs : `matplotlib.pyplot.text` properties. + Other valid `matplotlib.pyplot.text` kwargs can be specified + except verticalalalignment if plotting both a symbol and the value. + + Default kwargs: + size : 20 + color : 'black' + fontweight : 'bold' + horizontalalignment : 'center' + verticalalignment : 'center' + transform : None + + See Also + -------- + :func:`~metpy.calc.find_local_extrema` + + """ + defaultkwargs = {'size': 20, 'color': 'black', 'fontweight': 'bold', + 'horizontalalignment': 'center', 'verticalalignment': 'center'} + kwargs = {**defaultkwargs, **kwargs} + if plot_val: + kwargs.pop('verticalalignment') + size = kwargs.pop('size') + textsize = size * .65 + + stack_vals = extreme_vals.stack(x=[extreme_vals.metpy.x.name, extreme_vals.metpy.y.name]) + for extrema in stack_vals[stack_vals.notnull()]: + x = extrema[extreme_vals.metpy.x.name].values + y = extrema[extreme_vals.metpy.y.name].values + if plot_val: + ax.text(x, y, symbol, clip_on=True, clip_box=ax.bbox, size=size, + verticalalignment='bottom', **kwargs) + ax.text(x, y, f'{extrema.values:.0f}', clip_on=True, clip_box=ax.bbox, + size=textsize, verticalalignment='top', **kwargs) + else: + ax.text(x, y, symbol, clip_on=True, clip_box=ax.bbox, size=size, + **kwargs) diff --git a/tests/calc/test_calc_tools.py b/tests/calc/test_calc_tools.py index 4eeda3f40fe..7b3f2dbebce 100644 --- a/tests/calc/test_calc_tools.py +++ b/tests/calc/test_calc_tools.py @@ -13,10 +13,11 @@ import xarray as xr from metpy.calc import (angle_to_direction, find_bounding_indices, find_intersections, - first_derivative, geospatial_gradient, get_layer, get_layer_heights, - gradient, laplacian, lat_lon_grid_deltas, nearest_intersection_idx, - parse_angle, pressure_to_height_std, reduce_point_density, - resample_nn_1d, second_derivative, vector_derivative) + find_local_extrema, first_derivative, geospatial_gradient, get_layer, + get_layer_heights, gradient, laplacian, lat_lon_grid_deltas, + nearest_intersection_idx, parse_angle, pressure_to_height_std, + reduce_point_density, resample_nn_1d, second_derivative, + vector_derivative) from metpy.calc.tools import (_delete_masked_points, _get_bound_pressure_height, _greater_or_close, _less_or_close, _next_non_masked_element, _remove_nans, azimuth_range_to_lat_lon, BASE_DEGREE_MULTIPLIER, @@ -475,6 +476,48 @@ def test_get_layer_heights_agl_bottom_no_interp(): assert_array_almost_equal(data_true, data, 6) +@pytest.fixture +def local_extrema_data(): + """Test data for local extrema finding.""" + data = xr.DataArray( + np.array([[101628.24, 101483.67, 101366.06, 101287.55, 101233.45], + [101637.19, 101515.555, 101387.164, 101280.32, 101210.15], + [101581.78, 101465.234, 101342., 101233.22, 101180.25], + [101404.31, 101318.4, 101233.18, 101166.445, 101159.93], + [101280.586, 101238.445, 101195.234, 101183.34, 101212.8]]), + name='mslp', + dims=('lat', 'lon'), + coords={'lat': xr.DataArray(np.array([45., 43., 41., 39., 37.]), + dims=('lat',), attrs={'units': 'degrees_north'}), + 'lon': xr.DataArray(np.array([265., 267., 269., 271., 273.]), + dims=('lon',), attrs={'units': 'degrees_east'})}, + attrs={'units': 'Pa'} + ) + return data + + +def test_find_local_extrema(local_extrema_data): + """Test find_local_extrema function for maximum.""" + local_max = find_local_extrema(local_extrema_data, 3, 'max') + local_min = find_local_extrema(local_extrema_data, 3, 'min') + + max_truth = np.array([[np.nan, np.nan, np.nan, np.nan, np.nan], + [101637.19, np.nan, np.nan, np.nan, np.nan], + [np.nan, np.nan, np.nan, np.nan, np.nan], + [np.nan, np.nan, np.nan, np.nan, np.nan], + [np.nan, np.nan, np.nan, np.nan, 101212.8]]) + min_truth = np.array([[np.nan, np.nan, np.nan, np.nan, np.nan], + [np.nan, np.nan, np.nan, np.nan, np.nan], + [np.nan, np.nan, np.nan, np.nan, np.nan], + [np.nan, np.nan, np.nan, np.nan, 101159.93], + [np.nan, np.nan, np.nan, np.nan, np.nan]]) + assert_array_almost_equal(local_max.data, max_truth) + assert_array_almost_equal(local_min.data, min_truth) + + with pytest.raises(ValueError): + find_local_extrema(local_extrema_data, 3, 'large') + + def test_lat_lon_grid_deltas_1d(): """Test for lat_lon_grid_deltas for variable grid.""" lat = np.arange(40, 50, 2.5) diff --git a/tests/plots/baseline/test_plot_extrema.png b/tests/plots/baseline/test_plot_extrema.png new file mode 100644 index 0000000000000000000000000000000000000000..0ef47eefbb4b49e33523f1c1bbed808e0d18d957 GIT binary patch literal 165393 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

tK#y@xE&X3)5< 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 Date: Mon, 24 Jul 2023 08:55:09 -0500 Subject: [PATCH 2/2] make recommended changes --- src/metpy/calc/tools.py | 21 +++++++++-------- src/metpy/plots/_util.py | 43 +++++++++++++++++++++++------------ tests/calc/test_calc_tools.py | 30 ++++++++++++------------ tests/plots/test_util.py | 14 +++++++----- 4 files changed, 63 insertions(+), 45 deletions(-) diff --git a/src/metpy/calc/tools.py b/src/metpy/calc/tools.py index 0c43103edad..648aad4b2ca 100644 --- a/src/metpy/calc/tools.py +++ b/src/metpy/calc/tools.py @@ -782,23 +782,25 @@ def take(indexer): @exporter.export -def find_local_extrema(var, nsize, extrema): +def find_local_extrema(var, nsize=15, extrema='max'): r"""Find the local extreme (max/min) values of a 2D array. Parameters ---------- - var : `xarray.DataArray` + var : `numpy.array` The variable to locate the local extrema using the nearest method from the maximum_filter or minimum_filter from the scipy.ndimage module. nsize : int The minimum number of grid points between each local extrema. + Default value is 15. extrema: str The value 'max' for local maxima or 'min' for local minima. + Default value is 'max'. Returns ------- - var_extrema: `xarray.DataArray` - The values of the local extrema with other values as NaNs + extrema_mask: `numpy.array` + The boolean array of the local extrema. See Also -------- @@ -806,14 +808,15 @@ def find_local_extrema(var, nsize, extrema): """ from scipy.ndimage import maximum_filter, minimum_filter - if extrema not in ['max', 'min']: - raise ValueError('Invalid input for "extrema". Valid options are "max" or "min".') if extrema == 'max': - extreme_val = maximum_filter(var.values, nsize, mode='nearest') + extreme_val = maximum_filter(var, nsize, mode='nearest') elif extrema == 'min': - extreme_val = minimum_filter(var.values, nsize, mode='nearest') - return var.where(extreme_val == var.values) + extreme_val = minimum_filter(var, nsize, mode='nearest') + else: + raise ValueError(f'Invalid value for "extrema": {extrema}. ' + 'Valid options are "max" or "min".') + return var == extreme_val @exporter.export diff --git a/src/metpy/plots/_util.py b/src/metpy/plots/_util.py index 829c5f775fc..28f2605e5fb 100644 --- a/src/metpy/plots/_util.py +++ b/src/metpy/plots/_util.py @@ -285,23 +285,31 @@ def normalize(x): return res -def plot_local_extrema(ax, extreme_vals, symbol, plot_val=True, **kwargs): - """Plot the local extreme (max/min) values of an array. +def plot_local_extrema(ax, extrema_mask, vals, x, y, symbol, plot_val=True, **kwargs): + """Plot the local extreme (max/min) values of a 2D array. The behavior of the plotting will have the symbol horizontal/vertical alignment - be center/bottom and any value plotted will be center/top. The text size of plotted + be center/bottom and any value plotted will be center/top. The default text size of plotted values is 0.65 of the symbol size. Parameters ---------- - ax : `matplotlib.axes` + ax: `matplotlib.axes` The axes which to plot the local extrema - extreme_vals : `xarray.DataArray` - The DataArray that contains the variable local extrema + extrema_mask : `numpy.array` + A boolean array that contains the variable local extrema + vals : `numpy.array` + The variable associated with the extrema_mask + x : `numpy.array` + The x-dimension variable associated with the extrema_vals + y : `numpy.array` + The y-dimension variable associated with the extrema_vals symbol : str The text or other string to plot at the local extrema location - plot_val : bool + plot_val: bool Whether to plot the local extreme value (default is True) + textsize: int (optional) + Size of plotted extreme values, Default is 0.65 * size Returns ------- @@ -332,17 +340,22 @@ def plot_local_extrema(ax, extreme_vals, symbol, plot_val=True, **kwargs): if plot_val: kwargs.pop('verticalalignment') size = kwargs.pop('size') - textsize = size * .65 + textsize = kwargs.pop('textsize', size * 0.65) - stack_vals = extreme_vals.stack(x=[extreme_vals.metpy.x.name, extreme_vals.metpy.y.name]) - for extrema in stack_vals[stack_vals.notnull()]: - x = extrema[extreme_vals.metpy.x.name].values - y = extrema[extreme_vals.metpy.y.name].values + extreme_vals = vals[extrema_mask] + if x.ndim == 1: + xx, yy = np.meshgrid(x, y) + else: + xx = x + yy = y + extreme_x = xx[extrema_mask] + extreme_y = yy[extrema_mask] + for extrema, ex_x, ex_y in zip(extreme_vals, extreme_x, extreme_y): if plot_val: - ax.text(x, y, symbol, clip_on=True, clip_box=ax.bbox, size=size, + ax.text(ex_x, ex_y, symbol, clip_on=True, clip_box=ax.bbox, size=size, verticalalignment='bottom', **kwargs) - ax.text(x, y, f'{extrema.values:.0f}', clip_on=True, clip_box=ax.bbox, + ax.text(ex_x, ex_y, f'{extrema:.0f}', clip_on=True, clip_box=ax.bbox, size=textsize, verticalalignment='top', **kwargs) else: - ax.text(x, y, symbol, clip_on=True, clip_box=ax.bbox, size=size, + ax.text(ex_x, ex_y, symbol, clip_on=True, clip_box=ax.bbox, size=size, **kwargs) diff --git a/tests/calc/test_calc_tools.py b/tests/calc/test_calc_tools.py index 7b3f2dbebce..7e493fe91d2 100644 --- a/tests/calc/test_calc_tools.py +++ b/tests/calc/test_calc_tools.py @@ -498,21 +498,21 @@ def local_extrema_data(): def test_find_local_extrema(local_extrema_data): """Test find_local_extrema function for maximum.""" - local_max = find_local_extrema(local_extrema_data, 3, 'max') - local_min = find_local_extrema(local_extrema_data, 3, 'min') - - max_truth = np.array([[np.nan, np.nan, np.nan, np.nan, np.nan], - [101637.19, np.nan, np.nan, np.nan, np.nan], - [np.nan, np.nan, np.nan, np.nan, np.nan], - [np.nan, np.nan, np.nan, np.nan, np.nan], - [np.nan, np.nan, np.nan, np.nan, 101212.8]]) - min_truth = np.array([[np.nan, np.nan, np.nan, np.nan, np.nan], - [np.nan, np.nan, np.nan, np.nan, np.nan], - [np.nan, np.nan, np.nan, np.nan, np.nan], - [np.nan, np.nan, np.nan, np.nan, 101159.93], - [np.nan, np.nan, np.nan, np.nan, np.nan]]) - assert_array_almost_equal(local_max.data, max_truth) - assert_array_almost_equal(local_min.data, min_truth) + local_max = find_local_extrema(local_extrema_data.values, 3, 'max') + local_min = find_local_extrema(local_extrema_data.values, 3, 'min') + + max_truth = np.array([[False, False, False, False, False], + [True, False, False, False, False], + [False, False, False, False, False], + [False, False, False, False, False], + [False, False, False, False, True]]) + min_truth = np.array([[False, False, False, False, False], + [False, False, False, False, False], + [False, False, False, False, False], + [False, False, False, False, True], + [False, False, False, False, False]]) + assert_array_almost_equal(local_max, max_truth) + assert_array_almost_equal(local_min, min_truth) with pytest.raises(ValueError): find_local_extrema(local_extrema_data, 3, 'large') diff --git a/tests/plots/test_util.py b/tests/plots/test_util.py index 7ab3a5b3e21..6aee06ba4c5 100644 --- a/tests/plots/test_util.py +++ b/tests/plots/test_util.py @@ -163,19 +163,21 @@ def test_plot_extrema(): """Test plotting of local max/min values.""" data = xr.open_dataset(get_test_data('GFS_test.nc', as_file_obj=False)) - mslp = data.Pressure_reduced_to_MSL_msl.squeeze() - relmax2d = find_local_extrema(mslp, 10, 'max').metpy.convert_units('hPa') - relmin2d = find_local_extrema(mslp, 15, 'min').metpy.convert_units('hPa') + mslp = data.Pressure_reduced_to_MSL_msl.squeeze().metpy.convert_units('hPa') + relmax2d = find_local_extrema(mslp.values, 10, 'max') + relmin2d = find_local_extrema(mslp.values, 15, 'min') fig = plt.figure(figsize=(8., 8.)) ax = fig.add_subplot(1, 1, 1) # Plot MSLP clevmslp = np.arange(800., 1120., 4) - ax.contour(mslp.lon, mslp.lat, mslp.metpy.convert_units('hPa'), + ax.contour(mslp.lon, mslp.lat, mslp, clevmslp, colors='k', linewidths=1.25, linestyles='solid') - plot_local_extrema(ax, relmax2d, 'H', plot_val=False, color='tab:red') - plot_local_extrema(ax, relmin2d, 'L', color='tab:blue') + plot_local_extrema(ax, relmax2d, mslp.values, mslp.lon, mslp.lat, + 'H', plot_val=False, color='tab:red') + plot_local_extrema(ax, relmin2d, mslp.values, mslp.lon, mslp.lat, + 'L', color='tab:blue') return fig