利用pvlib计算太阳方位角、高度角、天顶角、时角以及赤纬度
输入信息:
经度:114.05;纬度22.544;时间:'2023-08-05 11:37:46';时区:'Asia/Shanghai'
在线计算器得到的结果
链接:[http://www.atoolbox.net/Tool.php?Id=1060]
python代码实现
import math
import pvlib
import pandas as pd
# 设置时区为北京
tz = 'Asia/Shanghai'
# 设置观测时间
time_str = '2023-08-05 11:37:46'
# 设置观测位置,经度和纬度(以度为单位)
latitude = 22.544
longitude = 114.05
time = pd.Timestamp(time_str, tz=tz)
# 获取太阳位置信息
solar_position = pvlib.solarposition.get_solarposition(time, latitude, longitude)
# 获取太阳天顶角(以度为单位)
solar_zenith = solar_position['apparent_zenith']
# 太阳高度角(以度为单位)
solar_altitude = solar_position['elevation']
# 太阳方位角
solar_azimuth = solar_position['azimuth']
# # 太阳时角(以度为单位)
solar_hour_angle = pvlib.solarposition.hour_angle(solar_position.index, longitude, solar_position['equation_of_time'])
# 计算太阳赤纬度
solar_declination = pvlib.solarposition.declination_cooper69(time.dayofyear) # 返回的是弧度
# 输出结果
print("太阳天顶角:", solar_zenith.values[0])
print("太阳高度角:", solar_altitude.values[0])
print("太阳方位角:", solar_azimuth.values[0])
print("太阳时角:", solar_hour_angle[0])
print("太阳赤纬度:",math.degrees(solar_declination))
'''
得到的结果如下:
太阳天顶角: 13.420333551688927
太阳高度角: 76.57566372730878
太阳方位角: 111.80348780254673
太阳时角: -13.029009563575642
太阳赤纬度: 16.82952362570134
'''