Photo by Sebastian Unrau on Unsplash
潜在强度(Potential Intensity, PI)是一个理论模型,用于预测热带气旋(TC)强度的上限(俗称“速度极限”),这一上限由环境条件和能量约束决定(例如,Emanuel, 1986; Holland, 1997)。PI 具备多项特性,使其成为研究热带气旋的重要工具。
研究表明,PI 与实际观测到的风暴生命期内的最大强度具有统计关联(Emanuel, 2000),因此可用来分析和解释实际强度的变化趋势和波动(例如,Wing 等, 2007; Gilford 等, 2019; Shields 等, 2019)。 PI 可以通过标准的大气剖面(无论是模型数据还是观测数据)轻松计算,这使得它在不同应用场景和时空尺度中都具备极高的灵活性。 PI 能够分解为热力学和参数化的组成部分,这种分解方式方便进行收支分析和敏感性分析,并为研究实际风暴提供了直接的参考。 作为一个以气象数据为基础的理论模型,PI 非常适合用于增强强度的预测和诊断指标(如 Ventilation index, VI;Tang 和 Emanuel, 2012)、热带气旋生成的指标(如 Genesis potential index, GPI;Camargo 等, 2007,Tropical cyclone genesis index, TCGI;Tippett 等, 2011)以及衡量破坏潜力的指标(如 Power dissipation index, PDI;Emanuel, 2005)。
参考文献请参考
Gilford, D. M.: pyPI (v1.3): Tropical Cyclone Potential Intensity Calculations in Python, Geosci. Model Dev., 14, 2351–2369, https://doi.org/10.5194/gmd-14-2351-2021, 2021.
根据 Bister and Emanuel (1998) 式子(21)可知,
其中,和分别表示焓通量交换系数和动量通量交换系数;表示海表温度;表示平均外流温度;表示海表的饱和湿静力能;表示自由对流层的湿静力能。比值是一个具有不确定性的量,通常假定为常数(默认值为 0.9,详见 Emanuel 2003 及相关文献)。
热带气旋潜在强度(PI)的效率等同于卡诺效率。在热带地区,其典型值通常介于 50%至 70%之间。
PI 方程中的每一项可以通过对两边取自然对数进行分解,得到以下形式(Wing 等,2015;公式 2):
需要注意的是,代入公式的所有量(特别是温度)的单位必须保持一致。
Easy Climate 包对tcpyPI[1]包进一步抽象处理,现在只需要一步代码即可完成热带气旋潜在强度的计算。
💎 Easyclimate 版本需大于等于 2024.11.0
首先打开示例数据
# 导入必要的包
import xarray as xr
import easyclimate as ecl
import cartopy.crs as ccrs
# 打开示例数据
ds = xr.open_dataset('tcpi_sample_data.nc')
ds
示例数据可在公众号前台回复 easyclimate 获取。
使用easyclimate.field.mesoscale.calc_potential_intensity_Bister_Emanuel_2002
计算 TC 潜在强度和相关特征参数。
pi_result = ecl.field.mesoscale.calc_potential_intensity_Bister_Emanuel_2002(
sst_data = ds.sst,
sst_data_units = 'degC',
surface_pressure_data = ds.msl,
surface_pressure_data_units = 'hPa',
temperature_data = ds.t,
temperature_data_units = 'degC',
specific_humidity_data = ds.q,
specific_humidity_data_units = 'g/kg',
vertical_dim = 'level',
vertical_dim_units = 'hPa'
)
pi_result
相关参数如下
sst_data:海表面温度数据 sst_data_units:海表面温度数据对应的单位。可选值有 celsius
,kelvin
,fahrenheit
等符合 python pint 包定义的单位。surface_pressure_data: 平均海平面气压。 surface_pressure_data_units:平均海平面气压对应的单位。可选值有 hPa
,Pa
,mbar
等符合 python pint 包定义的单位。temperature_data:垂直大气温度数据。 temperature_data_units:垂直大气温度数据对应的单位。可选值有 celsius
,kelvin
,fahrenheit
等符合 python pint 包定义的单位。specific_humidity_data:垂直大气比湿数据。 specific_humidity_data_units:垂直大气比湿数据对应的单位。可选值有 kg/kg
,g/g
,g/kg
等符合 python pint 包定义的单位。vertical_dim:垂直坐标名称。例如 plev
或者level
。vertical_dim_units:垂直坐标对应的单位。例如 plev
常为Pa
,level
常为hPa
。
为确保正确计算,需确保传入的多个数据的水平维度保持一致。不一致的情形须通过插值至同一水平网格上计算。
其他参数,如CKCD
,V_reduc
等的使用请查阅https://doi.org/10.5194/gmd-14-2351-2021
.
接下来我们尝试绘制几个重要的参数
PI ()
fig, ax = ecl.plot.quick_draw_spatial_basemap(central_longitude = 200)
# 绘制 7 月数据
pi_result.vmax.sel(month = 7).plot(
ax = ax,
cbar_kwargs = {'location': 'bottom'},
transform = ccrs.PlateCarree(),
)
ax.set_title('PI ($V_{max}$)', size = 18)
Outflow Temperature ()
fig, ax = ecl.plot.quick_draw_spatial_basemap(central_longitude = 200)
pi_result.t0.sel(month = 7).plot(
ax = ax,
cbar_kwargs = {'location': 'bottom'},
transform = ccrs.PlateCarree(),
)
ax.set_title('Outflow Temperature ($T_0$)', size = 18)
Outflow Temperature Level (OTL)
fig, ax = ecl.plot.quick_draw_spatial_basemap(central_longitude = 200)
pi_result.otl.sel(month = 7).plot(
ax = ax,
cbar_kwargs = {'location': 'bottom'},
transform = ccrs.PlateCarree(),
vmax = 1050,
)
ax.set_title('Outflow Temperature Level (OTL)', size = 18)
TC Efficiency
fig, ax = ecl.plot.quick_draw_spatial_basemap(central_longitude = 200)
pi_result.eff.sel(month = 7).plot(
ax = ax,
cbar_kwargs = {'location': 'bottom'},
transform = ccrs.PlateCarree(),
)
ax.set_title('TC Efficiency $\\left(\\frac{T_{s} - T_{0}}{T_{0}}\\right)$', size = 18)
Disequlibrium ()
fig, ax = ecl.plot.quick_draw_spatial_basemap(central_longitude = 200)
pi_result.diseq.sel(month = 7).plot(
ax = ax,
cbar_kwargs = {'location': 'bottom'},
transform = ccrs.PlateCarree(),
vmin = 0,
vmax = 20000
)
ax.set_title('Disequlibrium ($h_0^* - h^*$)', size = 18)
参考资料
tcpyPI:https://github.com/dgilford/tcpyPI
easyclimate 专题资料下载可在公众号前台回复 easyclimate 获取。
安装方法
#在Python终端环境中输入
pip install easyclimate
#升级方法
pip install -U easyclimate
#无需下载,在线体验 Easy climate
看完啦,不妨花式点赞一下呗❤