================= Advanced Sounding ================= `Notebook `_ .. code:: ipython3 import matplotlib.pyplot as plt import numpy as np from metpy.cbook import get_test_data from metpy.calc import get_wind_components, lcl, dry_lapse, parcel_profile from metpy.plots import SkewT from metpy.units import units, concatenate .. code:: ipython3 # Parse the data p, T, Td, direc, spd = np.loadtxt(get_test_data('may3_sounding.txt'), usecols=(0, 2, 3, 6, 7), unpack=True) .. code:: ipython3 # Add units to the data arrays p = p * units.mbar T = T * units.degC Td = Td * units.degC spd = spd * units.knot direc = direc * units.deg .. code:: ipython3 # Convert wind speed and direction to components u, v = get_wind_components(spd, direc) .. code:: ipython3 # Create a new figure. The dimensions here give a good aspect ratio fig = plt.figure(figsize=(9, 9)) skew = SkewT(fig, rotation=45) # Plot the data using normal plotting functions, in this case using # log scaling in Y, as dictated by the typical meteorological plot skew.plot(p, T, 'r') skew.plot(p, Td, 'g') skew.plot_barbs(p, u, v) skew.ax.set_ylim(1000, 100) skew.ax.set_xlim(-40, 60) # Calculate LCL height and plot as black dot l = lcl(p[0], T[0], Td[0]) lcl_temp = dry_lapse(concatenate((p[0], l)), T[0])[-1].to('degC') skew.plot(l, lcl_temp, 'ko', markerfacecolor='black') # Calculate full parcel profile and add to plot as black line prof = parcel_profile(p, T[0], Td[0]).to('degC') skew.plot(p, prof, 'k', linewidth=2) # Example of coloring area between profiles skew.ax.fill_betweenx(p, T, prof, where=T>=prof, facecolor='blue', alpha=0.4) skew.ax.fill_betweenx(p, T, prof, where=T