Звучание: расчет CAPE смешанного слоя
Metpy предоставляет функцию для расчета CAPE на основе поверхности (metpy.calc.surface_based_cape_cin) или CAPE на основе начального давления (metpy.calc.cape_cin). См.: https://unidata.github.io/MetPy/latest/api/generated/metpy.calc.html.
Но существует ли простой способ или уже существующий конкретный модуль для расчета CAPE смешанного слоя (CAPE, полученный в результате восходящего воздушного участка, чьи начальные свойства - давление, температура, температура точки росы - являются свойствами смешанного слоя толщиной 100 гПа над поверхностью)?
Заранее спасибо за помощь.
2 ответа
MetPy-х cape_cin
Функция принимает произвольный профиль участка, представляющий температуру воздушного участка при его повышении в атмосфере. Чтобы получить профиль, представляющий участок, смешанный на глубине, у MetPy также есть mixed_parcel
функция, которая "Определяет свойства воздушного участка, который является результатом полного смешивания данного атмосферного слоя". Эта смешанная посылка может быть передана в MetPy's 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 должен в конечном итоге получить возможность готовить эту работу из коробки, но сегодня это работает.
Тем временем я действительно рассчитал смешанную посылку CAPE/CIN, передавая выходной сигнал модуля mpcalc.mixed_parcel смешанного слоя в mpcalc.surface_based_cape_cin (заменяя поверхности T и Td исходного профиля звучания соответственно T_mixed_parcel и Td_mixed_parcel, возвращаемыми mpcalc.mixed_parcel). Так что это очень похоже на способ, предложенный @DopplerShift (единственное небольшое отличие в том, что я не использую шаг mpcalc.parcel_profile, потому что mpcalc.surface_based_cape_cin вычисляет его сам по себе: см. https://unidata.github.io/MetPy/latest/_modules/metpy/calc/thermo.html). Итак: проблема решена (в ожидании возможной будущей реализации конкретного модуля MetPy, чтобы сделать это более простым способом).