这段 MATLAB 代码的功能是基于 Monteith & Unsworth (2013) 的方法,估算天空温度(sky temperature)。以下是代码的详细解释:
输入参数:
-
airTemp
:空气温度,单位为摄氏度(℃)。 -
cloud
:云量,范围为 [0, 1],0 表示晴天,1 表示完全阴天。
输出参数:
-
skyTemp
:估算的天空温度,单位为摄氏度(℃)。
代码逻辑:
-
定义常数:
-
SIGMA
:斯特藩-玻尔兹曼常数(Stefan-Boltzmann constant),值为 。 -
C2K
:摄氏温度转换为开尔文温度的偏移量,值为 273.15。
-
-
计算晴天的长波辐射:
-
使用公式 5.26 计算晴天的长波辐射 :
-
-
计算晴天的发射率:
-
使用公式 5.22 计算晴天的发射率 :
其中, 是斯特藩-玻尔兹曼常数。
-
-
计算阴天的发射率:
-
使用公式 5.32 计算阴天的发射率 :
-
-
计算阴天的长波辐射:
-
使用公式 5.22 计算阴天的长波辐射 :
-
-
计算天空温度:
-
使用公式 5.22 的反函数计算天空温度 :
-
代码功能总结:
-
根据空气温度和云量,估算天空温度。
-
基于 Monteith & Unsworth (2013) 的物理模型,考虑了晴天和阴天的不同辐射特性。
-
输出结果为天空温度,单位为摄氏度(℃)。
示例:
假设空气温度为 20℃,云量为 0.5(半阴天),可以调用:
skyTemp = skyTempMonteith(20, 0.5);
返回的 skyTemp
即为估算的天空温度。