python 计算风向矢量平均值

python 计算风向矢量平均值

Fre_soe 193 2022-08-03
"""
@File    :   cal_data.py
@Time    :   2022/08/29 17:13:16
@Author  :   JuYongkang
@Version :   1.0
@Contact :   j_juyongkang@163.com
@Desc    :   计算风向矢量平均值
"""
import os
from math import sin, cos, atan, pi

def main():
    # met_dir = [259, 259, 259, 259, 259, 259, 259, 259, 259, 259]
    met_dir = [297, 317, 356, 23, 21, 19, 26, 32, 28, 30]
    sinsum = 0
    cossum = 0
    for i in range(len(met_dir)):
        if met_dir[i] == 0:
            continue
        sinsum += sin(met_dir[i] / 180.00 * pi)
        cossum += cos(met_dir[i] / 180.00 * pi)

    dir_avg = sinsum / cossum
    dir_avg = round(atan(sinsum / cossum) / pi * 180.00, 2)
    if sinsum > 0 and cossum > 0:
        dir_avg += 0
    elif sinsum > 0 and cossum < 0:
        dir_avg += 180
    elif sinsum < 0 and cossum < 0:
        dir_avg += 180
    elif sinsum < 0 and cossum > 0:
        dir_avg += 360
    print('平均风向为{}'.format(dir_avg))

if __name__ == '__main__':
    main()