Weather
来自Jack's Lab
(版本间的差异)
(→Overview) |
(→Heat Index) |
||
(未显示1个用户的10个中间版本) | |||
第11行: | 第11行: | ||
== Heat Index == | == Heat Index == | ||
+ | |||
+ | 体感温度 (Felt Air Temperature),是指人体感受空气的温度。 | ||
+ | |||
+ | 这是因为其他与气候相关的状况,使空气和人体之间的热对流受到影响,从而使人感觉的度与实际有分别,因此又称表观气温(Apparent Air Temperature)。 | ||
+ | |||
+ | 空气对热的吸收会受到相对湿度及其密度影响;而风速会影响到与人体表面可以接触到的空气的分量,当风速增加时,与人体所接触的空气会增加,所以其所带走或带来的热量亦相应地增加,这现象便是“风寒指数” | ||
+ | |||
* NOAA 计算器: https://www.wpc.ncep.noaa.gov/html/heatindex.shtml 或者:https://www.weather.gov/epz/wxcalc_heatindex | * NOAA 计算器: https://www.wpc.ncep.noaa.gov/html/heatindex.shtml 或者:https://www.weather.gov/epz/wxcalc_heatindex | ||
− | * | + | * 原理:https://www.weather.gov/ama/heatindex |
+ | |||
+ | |||
+ | [[文件:Heat-index-equation.png]] | ||
+ | |||
+ | |||
+ | 其中,T 为气温,℃、e 为水汽压,hPa、V 为风速,m/sec、RH 为相对湿度 % | ||
+ | |||
+ | <source lang=python> | ||
+ | import math | ||
+ | |||
+ | '''NOAA计算体感温度 参数为气温(摄氏度)和相对湿度(0~100或者0~1)''' | ||
+ | |||
+ | def heat_index(T, RH): | ||
+ | if RH < 1: | ||
+ | RH *= 100 | ||
+ | T = 1.8 * T + 32 | ||
+ | HI = 0.5 * (T + 61 + (T - 68) * 1.2 + RH * 0.094) | ||
+ | if HI >= 80: # 如果不小于 80华氏度 则用完整公式重新计算 | ||
+ | HI = -42.379 + 2.04901523 * T + 10.14333127 * RH - .22475541 * T * RH \ | ||
+ | - .00683783 * T * T - .05481717 * RH * RH + .00122874 * T * T * RH \ | ||
+ | + .00085282 * T * RH * RH - .00000199 * T * T * RH * RH | ||
+ | if RH < 13 and 80 < T < 112: | ||
+ | ADJ = (13 - RH) / 4 * math.sqrt((17 - abs(T - 95)) / 17) | ||
+ | HI -= ADJ | ||
+ | elif RH > 85 and 80 < T < 87: | ||
+ | ADJ = (RH - 85) * (87 - T) / 50 | ||
+ | HI += ADJ | ||
+ | return round((HI - 32) / 1.8, 2) | ||
+ | |||
+ | def heat_idx(T, RH, V): | ||
+ | e = RH / 100.0 * 6.105 * math.exp((17.27 * T)/(237.27 + T)) | ||
+ | hi = 1.07 * T + 0.2 * e - 0.065 * V - 2.7 | ||
+ | return round(hi, 2) | ||
+ | |||
+ | print (heat_index(10, 20)) | ||
+ | print (heat_index(10, 90)) | ||
+ | print (heat_idx(10, 20, 0)) | ||
+ | print (heat_idx(10, 90, 0)) | ||
+ | </source> | ||
+ | |||
+ | <source lang=bash> | ||
+ | 7.58 | ||
+ | 9.41 | ||
+ | 8.49 | ||
+ | 10.21 | ||
+ | </source> | ||
+ | |||
+ | <br><br> | ||
== 风力及风寒效应 == | == 风力及风寒效应 == |
2020年11月4日 (三) 15:09的最后版本
目录 |
[编辑] 1 Overview
- ECMWF (European Centre for Medium-Range Weather Forecasts): https://www.ecmwf.int/
- https://www.instantweathermaps.com
- http://www.nmc.cn/publish/observations/china/dm/weatherchart-h500.htm
[编辑] 2 Heat Index
体感温度 (Felt Air Temperature),是指人体感受空气的温度。
这是因为其他与气候相关的状况,使空气和人体之间的热对流受到影响,从而使人感觉的度与实际有分别,因此又称表观气温(Apparent Air Temperature)。
空气对热的吸收会受到相对湿度及其密度影响;而风速会影响到与人体表面可以接触到的空气的分量,当风速增加时,与人体所接触的空气会增加,所以其所带走或带来的热量亦相应地增加,这现象便是“风寒指数”
- NOAA 计算器: https://www.wpc.ncep.noaa.gov/html/heatindex.shtml 或者:https://www.weather.gov/epz/wxcalc_heatindex
其中,T 为气温,℃、e 为水汽压,hPa、V 为风速,m/sec、RH 为相对湿度 %
import math '''NOAA计算体感温度 参数为气温(摄氏度)和相对湿度(0~100或者0~1)''' def heat_index(T, RH): if RH < 1: RH *= 100 T = 1.8 * T + 32 HI = 0.5 * (T + 61 + (T - 68) * 1.2 + RH * 0.094) if HI >= 80: # 如果不小于 80华氏度 则用完整公式重新计算 HI = -42.379 + 2.04901523 * T + 10.14333127 * RH - .22475541 * T * RH \ - .00683783 * T * T - .05481717 * RH * RH + .00122874 * T * T * RH \ + .00085282 * T * RH * RH - .00000199 * T * T * RH * RH if RH < 13 and 80 < T < 112: ADJ = (13 - RH) / 4 * math.sqrt((17 - abs(T - 95)) / 17) HI -= ADJ elif RH > 85 and 80 < T < 87: ADJ = (RH - 85) * (87 - T) / 50 HI += ADJ return round((HI - 32) / 1.8, 2) def heat_idx(T, RH, V): e = RH / 100.0 * 6.105 * math.exp((17.27 * T)/(237.27 + T)) hi = 1.07 * T + 0.2 * e - 0.065 * V - 2.7 return round(hi, 2) print (heat_index(10, 20)) print (heat_index(10, 90)) print (heat_idx(10, 20, 0)) print (heat_idx(10, 90, 0))
7.58 9.41 8.49 10.21
[编辑] 3 风力及风寒效应
风力表 (表中速度单位为节,即海里每小时,1节=1.852公里每小时):
[编辑] 4 Reference
化学分子式生成: https://avogadr.io