本文作为【MATLAB】高塔观测数据通量梯度法计算感热及潜热通量
的后续,利用波文比法计算感热和潜热通量并作图
- 数据导入
参考上文
此处我们忽略土壤热通量Qs - 代码
Bowen.m
T1 =Ta_20m_Avg;
T2 =Ta_60m_Avg;%tempurature(C)
Tmean=mean([T1,T2],2);
theta1 =T1 +273;
theta2 =T2 +273;%potential temperature(K)
Rn=Rn_Avg;
Qs=0;
p =amb_press_Avg *10;%air pressure(kPa->hPa)
e1 =e_20m_Avg *10;
e2 =e_60m_Avg*10;%vapor preesure(kPa->hPa)
q1 =0.622.*(e1 ./(p -0.378*e1 ));
q2 =0.622*(e2 ./(p -0.378*e2 ));%Specific humidity(kg/kg)
qmean=mean([q1,q2],2);
Cp=1004.67*(1+0.84*qmean );%constant pressure specific heat capacity
lambda =(2.501-0.00237*Tmean )*10^6;%latent heat of vaporization
Bowen=Cp.*(theta2-theta1)./(lambda.*(q2-q1));
Heat_B=Bowen.*(Rn-Qs)./(1+Bowen);
LHeat_B=(Rn-Qs)./(1+Bowen);
- 要点
和上篇不同的是,本文采用的都是列向量之间的运算(因为本身带有时间序列),得到的结果也都是列向量。而上篇因为涉及到迭代L的判定,因此只能使用数值间计算,外面套一个遍历每一行数据
区别在于,向量之间互相计算需要用到特殊的运算符,这一点在上篇也提到过,
特别地,本篇采用mean函数计算两列向量按行平均的功能
比如
Tmean=mean([T1,T2],2);
另外,上篇输出的值是行向量,本篇则是列向量,在进行两个数据画图对比时要格外注意