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厚度的混合层的特性)。表面)?
预先感谢您的帮助。
答案 0 :(得分:0)
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
将混合包裹并将其返回到p
中的第一个(假定的表面/起始)压力值。
MetPy最终应具有使这项工作更容易使用的功能,但是今天仍然有效。
答案 1 :(得分:0)
同时,我确实通过将混合层mpcalc.mixed_parcel模块的输出传递到mpcalc.surface_based_cape_cin(通过分别返回的T_mixed_parcel和Td_mixed_parcel分别替换了原始探测剖面的表面T和Td来计算混合宗地CAPE / CIN)通过mpcalc.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将来最终实现特定模块以更直接的方式做到这一点)。