一、实习内容
已知南京站某一时次的相对湿度(92.8%)、气温(14.1ºC)、气压(1017.4, hPa)及站点高度(35.2m),请利用迭代法求出:
(1) 该站的露点温度
(2) 凝结高度和凝结温度
二、算法原理
露点温度计算:
凝结高度,凝结温度计算:
![在这里插入图片描述](https://img-blog.csdnimg.cn/9ec11368b40b478b9d6dca89a522a405.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAbWdsNjY2,size_15,color_FFFFFF,t_70,g_se,x_16
三、代码实现
import math
##露点温度函数
def td(rhum,air,hgt,P):
'''露点温度'''
e_s=6.1078*math.exp(17.26*air/(273.16+air-35.86))
e=e_s*rhum/100
while e<e_s:
air=air-0.05#迭代步长
e_s=6.1078*math.exp(17.26*air/(273.16+air-35.86))
td=air
return td
##凝结高度,凝结温度函数
def ZT(hgt,air,td,P):
e_z=6.1078*math.exp(17.26*td/(273.16+td-35.86))
theta_z=(air+273)*(1000/P)**0.286
q_Z=0.622*e_z/(P-0.378*e_z)
P_L=300#迭代初值
T_L=theta_z*(P_L/1000)**0.286
e_L=6.1078*math.exp(17.26*(T_L-273.16)/(T_L-35.86))
q_L=0.622*e_L/(P_L-0.378*e_L)
while q_L<q_Z:
P_L=P_L+1#迭代步长
T_L=theta_z*(P_L/1000)**0.286
e_L=6.1078*math.exp(17.26*(T_L-273.16)/(T_L-35.86))
q_L=0.622*e_L/(P_L-0.378*e_L)
Z_L=(9.8*hgt+(1004*(air+273.16))-1004*T_L)/9.8
T_L=T_L-273.16
return [Z_L,T_L,P_L]
rhum=92.8 ###湿度,不加百分号
air=14.1 ###温度,摄氏度气温
hgt=35.2 ###高度,单位米
P=1017.4 ###气压,单位hPa
td=td(rhum,air,hgt,P)
zt=ZT(hgt,air,td,P)
print('该站点温度为:%lf\n凝结高度为:%lf\n凝结温度为:%lf'%(td,zt[0],zt[1]))