以下是代码:
from astropy.coordinates import EarthLocation, AltAz, get_sun
from astropy.time import Time
from astropy import units as u
# 观测点的经纬度(例如,长春)
latitude = 43.976850 * u.deg # 纬度
longitude = 125.394173 * u.deg # 经度
elevation = 0 * u.m # 海拔,单位:米
# 创建一个观测点对象
observatory = EarthLocation(lat=latitude, lon=longitude, height=elevation)
# 当前的日期和时间(确保是UTC时间或者转换为UTC时间)
utc_time = Time.now().utc # 当前UTC时间
# 获取太阳在ICRS坐标系中的位置
sun_icrs = get_sun(utc_time)
# 将太阳的位置从ICRS坐标系转换到观测点的地平坐标系(AltAz)
# 这里需要传入观测点的位置和时间
sun_altaz = sun_icrs.transform_to(AltAz(location=observatory, obstime=utc_time))
# 获取方位角和高度角
azimuth = sun_altaz.az.to_string(unit=u.degree, sep=':', pad=True)
altitude = sun_altaz.alt.to_string(unit=u.degree, sep=':', pad=True)
print(f"方位角: {azimuth}")
print(f"高度角: {altitude}")
计算结果:
方位角: 355:31:09.27999862
高度角: -22:33:15.72880593
结果正确