- 积分
- 542
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2020-11-15
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 圈圈圆圆 于 2025-5-8 16:55 编辑
计算得出的cape、cin和micaps的结果差别比较大,请问问题出在哪里?分别附上我的代码,绘制的探空图,micaps探空图:
import matplotlib.pyplot as plt
from mpl_toolkits.axes_grid1.inset_locator import inset_axes
import pandas as pd
import metpy.calc as mpcalc
from metpy.plots import Hodograph, SkewT
from metpy.units import units
import re # 导入正则表达式模块
# 读取文件
file_path = '南宁(59431)层结资料.csv'
data = pd.read_csv(file_path, delimiter=',', na_values='-')
# 按气压从高到低排序并去除NaN值
sorted_data = data.sort_values(by='层次', ascending=False).dropna(subset=['层次', '温度', '露点', '风速', '风向'])
p = sorted_data['层次'].values * units.hPa
T = sorted_data['温度'].values * units.degC
Td = sorted_data['露点'].values * units.degC
wind_speed = sorted_data['风速'].values * units.knots
wind_dir = sorted_data['风向'].values * units.degrees
u, v = mpcalc.wind_components(wind_speed, wind_dir)
# 计算凝结抬升高度 (LCL)
lcl_pressure, lcl_temperature = mpcalc.lcl(p[0], T[0], Td[0])
# 计算气块状态曲线
parcel_prof = mpcalc.parcel_profile(p, T[0], Td[0]).to('degC')
# 计算 CAPE 和 CIN
cape, cin = mpcalc.cape_cin(p, T, Td, parcel_prof, which_lfc='bottom', which_el='top')
print(cape,cin)
# 创建 SkewT 图
fig = plt.figure(figsize=(9, 9))
skew = SkewT(fig, rotation=30)
# 绘制层结曲线和露点曲线
skew.plot(p, T, 'r', linewidth=2) # 绘制层结曲线(红色实线)
skew.plot(p, Td, 'g', linewidth=2) # 绘制等饱和混合比线(绿色实线)
# 绘制风羽
skew.plot_barbs(p, u, v)
# 绘制凝结抬升高度(黑点)
skew.plot(lcl_pressure, lcl_temperature, 'ko', markerfacecolor='black')
# 绘制气块状态曲线(黑线)
skew.plot(p, parcel_prof, 'k', linewidth=2)
# 阴影绘制 CIN 和 CAPE
skew.shade_cin(p, T, parcel_prof, Td, color='blue', alpha=0.2) # CIN 阴影(蓝色)
skew.shade_cape(p, T, parcel_prof, color='red', alpha=0.2) # CAPE 阴影(红色)
# 添加参考曲线
skew.plot_dry_adiabats(color='orangered', linestyle='--', linewidth=1) # 干绝热线(红色虚线)
skew.plot_moist_adiabats(color='dodgerblue', linestyle='--', linewidth=1) # 湿绝热线(蓝色虚线)
skew.plot_mixing_lines(color='mediumseagreen', linestyle='--', linewidth=1) # 等饱和混合比线(绿色虚线)
# 设置坐标轴范围
skew.ax.set_ylim(1000, 200)
skew.ax.set_xlim(-40, 40)
# 添加网格线
skew.ax.grid(True)
# 添加标题和注释
#plt.title("Sounding Chart for Station 59211 (BAISE, China) at 00 UTC 27 May 2024")
plt.text(-13.5, 1300, f'CAPE = {cape:.2f} J/kg', fontsize=12, color='red')
plt.text(-15, 1200, f'CIN = {cin:.2f} J/kg', fontsize=12, color='blue')
# 显示图像
output_path = r'D:\python\dyy\5_27rainstorm\TInp.png'
plt.savefig(output_path)
plt.show()
|
-
-
micaps探空
|