Sounding:混合层CAPE计算

Sounding: mixed layer CAPE calculation

Metpy 提供了一个函数来计算基于表面的 CAPE (metpy.calc.surface_based_cape_cin) 或基于起始压力的 CAPE (metpy.calc.cape_cin)。参见:https://unidata.github.io/MetPy/latest/api/generated/metpy.calc.html#module-metpy.calc

但是是否有一种简单的方法或已经存在的特定模块来计算混合层 CAPE(CAPE 由上升的空气包裹产生,其起始属性 - 压力,温度,露点温度 - 是 100 hPa 厚度混合层的那些在表面之上)?

在此先感谢您的帮助。

MetPy 的 cape_cin 函数采用任意包裹剖面,表示空气包裹在大气中上升时的温度。为了获得表示在一定深度上混合的地块的配置文件,MetPy 还具有一个 mixed_parcel 函数,用于“确定作为给定大气层完全混合结果的气块的属性”。然后可以将这个混合包裹传递给 MetPy 的 parcel_profile 函数来计算任意包裹上升时的温度:

import mepty.calc as mpcalc

_, t_parcel, td_parcel = mpcalc.mixed_parcel(p, T, Td, depth=100 * units.hPa)
profile = mpcalc.parcel_profile(p, t_parcel, td_parcel)
mpcalc.cape_cin(p, T, Td, profile)

默认情况下 mixed_parcel 会将包裹和 return 混合到 p 中的第一个(假设 surface/starting)压力值。

MetPy 最终应该能够让这项工作更容易开箱即用,但这在今天有效。

同时我确实计算了混合包裹CAPE/CIN,通过将混合层mpcalc.mixed_parcel模块的输出传递给mpcalc.surface_based_cape_cin(替换原始探测的表面T和Td profile 分别由 T_mixed_parcel 和 mpcalc.mixed_parcel 返回的 Td_mixed_parcel)。所以这与@DopplerShift 建议的方式非常相似(唯一的细微差别是我不使用 mpcalc.parcel_profile 步骤,因为 mpcalc.surface_based_cape_cin 本身计算它:参见 https://unidata.github.io/MetPy/latest/_modules/metpy/calc/thermo.html#surface_based_cape_cin)。 所以:问题解决了(等待 MetPy 最终以更直接的方式实现特定模块的未来)。