metpy.calc.lfc(pressure, temperature, dewpoint, parcel_temperature_profile=None, dewpoint_start=None, which='top')[source]

Calculate the level of free convection (LFC).

This works by finding the first intersection of the ideal parcel path and the measured parcel temperature. If this intersection occurs below the LCL, the LFC is determined to be the same as the LCL, based upon the conditions set forth in [USAF1990], pg 4-14, where a parcel must be lifted dry adiabatically to saturation before it can freely rise.

  • pressure (pint.Quantity) – Atmospheric pressure

  • temperature (pint.Quantity) – Temperature at the levels given by pressure

  • dewpoint (pint.Quantity) – Dewpoint at the levels given by pressure

  • parcel_temperature_profile (pint.Quantity, optional) – The parcel’s temperature profile from which to calculate the LFC. Defaults to the surface parcel profile.

  • dewpoint_start (pint.Quantity, optional) – Dewpoint of the parcel for which to calculate the LFC. Defaults to the surface dewpoint.

  • which (str, optional) – Pick which LFC to return. Options are ‘top’, ‘bottom’, ‘wide’, ‘most_cape’, and ‘all’; ‘top’ returns the lowest-pressure LFC (default), ‘bottom’ returns the highest-pressure LFC, ‘wide’ returns the LFC whose corresponding EL is farthest away, ‘most_cape’ returns the LFC that results in the most CAPE in the profile.


  • pint.Quantity – LFC pressure, or array of same if which=’all’

  • pint.Quantity – LFC temperature, or array of same if which=’all’

See also



Only functions on 1D profiles (not higher-dimension vertical cross sections or grids). Since this function returns scalar values when given a profile, this will return Pint Quantities even when given xarray DataArray profiles.

Changed in version 1.0: Renamed dewpt,``dewpoint_start`` parameters to dewpoint, dewpoint_start