Source code for pyart.graph.convstrat_scheme_plot

import matplotlib.pyplot as plt
import numpy as np


[docs]def plot_convstrat_scheme( always_core_thres, use_cosine, max_diff=None, zero_diff_cos_val=None, use_addition=False, scalar_diff=None, ): """ Plots the scheme used in the convective stratiform classification Parameters ---------- always_core_thres : float All values above this threshold considered to be convective use_cosine : bool Boolean used to determine if cosine scheme should be used for identifying convective cores (True) or a scalar scheme (False) max_diff : float, optional Maximum difference between background average and reflectivity in order to be classified as convective. "a" value in Eqn. B1 in Yuter and Houze (1997) zero_diff_cos_val : float, optional Value where difference between background average and reflectivity is zero in the cosine function "b" value in Eqn. B1 in Yuter and Houze (1997) use_addition : bool, optional Determines if a multiplier (False) or addition (True) in the scalar difference scheme should be used scalar_diff : float, optional If using a scalar difference scheme, this value is the multiplier or addition to the background average """ # create array of background values bkg_vals = np.linspace(0, 60, 100) # create difference array if use_cosine: # cosine scheme diff = max_diff * np.cos(np.pi * bkg_vals / (2 * zero_diff_cos_val)) else: if use_addition: # scalar addition scheme diff = (bkg_vals + scalar_diff) - bkg_vals else: # scalar multiplier scheme diff = (bkg_vals * scalar_diff) - bkg_vals # if values are less than zero, set to zero diff[diff < 0] = 0 # background values greater than always core thres, set to zero diff[bkg_vals > always_core_thres] = 0 # Now plot ax = plt.gca() # plot difference line ax.plot(bkg_vals, diff, lw=2, color="black") # plot always core thres ax.axvline(x=always_core_thres, lw=1, ls="--", color="red") ax.text(always_core_thres + 2, 1, "Always Core Thres.", color="red") if use_cosine: # plot zero difference cosine value ax.axvline(x=zero_diff_cos_val, lw=1, ls="--", color="green") ax.text(zero_diff_cos_val + 2, 0.75, "Zero Diff. Cosine Val.", color="green") # plot max difference ax.axhline(y=max_diff, lw=1, ls="--", color="blue") ax.text(10, max_diff + 0.05, "Max. Diff.", color="blue") elif use_addition: # plot scalar ax.axhline(y=scalar_diff, lw=1, ls="--", color="orange") ax.text(10, scalar_diff + 0.05, "Scalar Diff.", color="orange") # add grid ax.grid() # set axis limits ax.set_ylim([0, np.max(diff) + 0.2]) ax.set_xlim([np.min(bkg_vals), np.max(bkg_vals)]) # set axis labels and title ax.set_ylabel("Difference (dBZ - dBZ$_{background}$)") ax.set_xlabel("Background Value (dBZ$_{background}$)") ax.set_title("Convective Stratiform Equation")