1.利用python中库ephem实现计算
import ephem
import datetime as datetime
import math
def calculate_solar_zenith_angle(latitude, longitude, elevation, date_time):
# 创建观测者对象
observer = ephem.Observer()
observer.lat = str(latitude)
observer.lon = str(longitude)
observer.elev = elevation
# 设置观测时间
observer.date = date_time
# 创建太阳对象
sun = ephem.Sun()
# 计算太阳天顶角
sun.compute(observer)
solar_alt_angle = math.degrees(sun.alt) #高度角
solar_azimuth = math.degrees(sun.az)#方位角
solar_zenith_angle=90-solar_alt_angle #天顶角
return solar_zenith_angle,solar_azimuth,solar_alt_angle
latitude =36.729 # 纬度
longitude =101.752 # 经度
elevation = 2262 # 观测者的海拔高度(单位:米)
# 设置日期和时间
date_time = datetime.datetime(2021, 7, 18,0, 0, 0) #世界时
# 计算太阳天顶角
solar_angle = calculate_solar_zenith_angle(latitude, longitude, elevation, date_time)
print(f"天顶角: {solar_angle[0]:.2f} degrees",f"方位角: {solar_angle[1]:.2f} degrees",f"高度角: {solar_angle[2]:.2f} degrees")
2.SPA计算器计算(转载)
SPA Calculator (nrel.gov)https://midcdmz.nrel.gov/solpos/spa.html