By author /

如果每天在同一时间同一地点以同一角度拍摄太阳的位置,一年后就可以得到太阳的日行迹

一个小的绘图项目:projects/analemma。一开始是作为一门课的作业写的。处理流程:

  • 从 JPL 提供的星历表得到太阳相对地球的位置(使用 DE440 星历表,截取切比雪夫多项式的前七项)。考虑周年光行差后得到太阳在 ICRF 参考系中的赤经 α 和赤纬 δ

  • 利用 https://iers-conventions.obspm.fr/content/chapter5/icc5.pdf 中的公式 5.15 得到 Earth Rotation Angle(ERA)

  • 再由公式 5.32 得到 Greenwich Mean Sidereal Time(GMST)

  • 得到时角 h=GMST+Longitudeα

  • 将赤经赤纬转换为地平坐标系中的方位角 Az 和高度角 Alt

    tanAz=sinhcoshsin(Latitude)tanδcos(Latitude),sinAlt=sinδsin(Latitude)+cosδcos(Latitude)cosh.

但以上过程未考虑地球自转轴的进动、章动和极移等运动,也未对周日光行差、大气折射和光线的引力偏折等效应做校正,因此结果存在一些偏差。

以上计算过程均在 rust 中实现,连同 1990 年至 2059 年的星历表一同编译在 WebAssembly 文件中,绘图使用 D3.js。