一、导语
一年前,我做了个Excel表格,只需填入参数(观测点经纬、日期),就能计算太阳的方位角和高度角、日出日落时间。现在,我将表格重新排版,增加了时区选择、平太阳时修正、单时刻太阳位置计算、月相计算等功能。(文末有下载链接,包括Excel表格和推导过程。公众号有修改限制,内容如有错误仅在文件里更新。)
本文中,我将介绍该Excel表格文件的使用方法。感兴趣的话,可以看看后面的推导过程。如果对你有帮助,希望能给文章点个赞!
二、详细推导过程
给定参数为:观测点经度,观测点纬度,太阳赤纬角δ(如何计算δ放到最后讲),某个时刻的时间点
输出结果为:太阳方位角,太阳高度角,当日日出日落时间及方位
下面进行详细的过程推导,需要具备高中数学知识。
(一)地球的公转和黄赤交角
地球绕太阳转叫公转,公转一周的时间是1年。
过地心并与地轴垂直的平面称为赤道平面,地球公转轨道平面称为黄道平面。赤道平面与黄道平面之间存在一个交角,叫作黄赤交角,约为23.5°.
由于黄赤交角的存在,太阳直射点(地表接受太阳垂直照射的点)在一年之中在南、北纬23.5°之间往返运动。夏至日,太阳直射23.5°N,冬至日23.5°S,春分、秋分直射赤道0°.

地球公转与黄赤交角(地理选必一)
(二)太阳的视运动
首先理解天球的概念:
把整个宇宙想象成一个巨大的、透明的空心球壳,这个球壳以地球为中心(假设地球不动),所有的星星、太阳、月亮、行星都被认为是镶嵌在这个透明球壳的内表面上。这个假想的球体就叫做天球。天球是研究太阳视运动的数学模型。
太阳的视运动:从地球上的观测者角度看,天体看起来的运动。太阳总是东升西落。

半个天球和北纬40度地区太阳的视运动(使用地方时,选必一插图)
这张图只画了半个天球,现在把天球的另外半边也补充完全:

天球与太阳的视运动
天赤道:地球赤道平面延伸与天球相交的大圆。
天顶和天底:位于观察者头顶正上方的天球点叫天顶;位于观察者脚底正下方的天球点叫天底。
天极:地球自转轴延伸与天球相交的点(北天极和南天极)
太阳赤纬角δ:太阳直射点的纬度(23.5°S~23.5°N)
正是由于太阳赤纬角δ一年之内的周期性变化,所以太阳的视运动也不断变化,才有了昼夜长短的改变、正午太阳高度的变化。
(三)建立时角坐标系
定义时角坐标系:以观测者为中心,建立x'y'z'时角坐标系,x'指向正东,y'在天赤道平面内垂直于于x'轴,z'指向北天极,如图。

时角坐标系建立
时角变化量(T):一日内太阳的视运动轨迹,围绕z'轴顺时针转过的角度,用T表示。地方时0时T=0°,6时T=90°,12时T=180°,18时T=270°. 同时,1°=4min,1h=15°.
太阳赤纬角(δ)的值等于太阳与地心的连线与天赤道平面的夹角。(如何计算δ放到最后讲)
我们假设天球的半径为1,天球上任意一点设为P(x', y', z'),则有:

(四)转换为地平坐标系
定义地平坐标系:以观测者为中心,建立xyz地平坐标系,地面作为xy平面,x指向正东,y指向正北,z指向天顶。
观测点纬度(φ):天顶与天赤道之间的夹角即为观测点的纬度(φ)。同时可知,天顶与北天极的夹角为 90°-φ.

地平坐标系建立
现在将时角坐标系转换为地平坐标系:
计算东分量x:x直接和x'是一样的,有
计算北分量y和天顶分量z:注意到y'Oz'平面坐标系逆时针旋转 后,得到yOz平面坐标系。
然后,我们要推导坐标轴的旋转公式(可以直接套用公式)。

坐标系旋转示意图
设点P固定,P在原坐标系y'Oz'上的极坐标为(r, ρ),对应的直角坐标为:
将坐标轴逆时针旋转θ,得到新坐标系yOz,P在yOz的坐标为(r, ρ-θ),对应直角坐标系为:
用三角函数两角和差公式将x, y展开,将x', y'代入,得到坐标轴的旋转公式:
现在,回到太阳坐标系的转换上。将上式中x', y', z'是时角坐标系的参数,分别是
由于yOz坐标系是逆时针旋转了 ,故以 代θ,整理得:
这样,我们就将时角坐标系转换成了地平坐标系。
(五)计算太阳高度角、方位角
太阳高度角(H):太阳入射光和地面的夹角。太阳方位角(A):太阳相对于正北方向的顺时针转过的角度,正北=0°,正东=90°,正南=180°,正西=270°
计算太阳高度角(H):(勘误:此公式中 cos δ 前应为减号"-"。公众号文章编辑有限制,无法修改公式,特此说明。)
计算太阳方位角(A):
在Excel中计算A,可使用ATAN2函数,避免象限误判。
(六)计算日出日落时间、方位
6.1 日出日落时间计算:
日出日落时,H=0,即z=0,易得
得到T后,由1h=15°可知道地方时间。
6.2 日出日落方位(A)计算:
你可以在算出T后,代入方位角A的计算公式,但是这样做化简比较麻烦,我不太会,所以这里使用几何方法推导。

太阳视运动及日出日落计算
如上图,太阳的视运动轨迹是圆O'-RLTM,太阳视运动轨迹与地平面的交点L和M,即为日出和日落的位置. LM与y轴交于点K. 天球的半径为1. 由赤纬角(δ)和纬度(φ)的定义知:
(七)如何计算太阳赤纬角
计算 δ 的方法很多,这里介绍两种。
7.1 Cooper算子(低精度,文献[1])
Cooper算子的公式如下:
其中 n 为该年第几天,如2月3日,n=34.
Cooper算子的前提是:地球的公转是以太阳为中心的匀速圆周运动。数学上可以证明,赤纬角 δ 随日期的变化是一个正弦函数。

黄赤交角及二分二至日地球的位置
设这个正弦函数为:
其中,
当春分日(3月21日前后)时,取n=80,此时δ=0,正弦函数的相位为 0,即
由此计算得到的 λ 值为 284 左右,可能会在个位上有差别。
7.2 Spencer算子(高精度,文献[1])
这种算法精度较高. δ 的单位是弧度,θ 为日角,公式如下:
日角的计算公式如下,n 同样为该年第几天:
(八)其它说明
上面计算得到的均为当地时间,转换成北京时间还需减去地理时差。
由于地球绕太阳公转实际上是个椭圆也不等速,所以日中时刻并不是12时整。要得到更准确的时间,还要将真太阳时转换成平太阳时。
三、Excel表格下载
(一)表格下载与使用
表格文件下载方式:关注我的公众号,私信“2581”获取文件。

太阳位置计算.xlsx
打开工作表2,工作表分为五个区域:基本设置区、参数设定区、结果输出区、单时刻太阳位置计算、当日时间序列。
填写“基本设置”和“参数设定”中的六个参数,表格文件里附有说明,这里不再赘述。填写完参数后,表格会自动输出结果。
太阳赤纬角:即太阳入射光与地球赤道之间的角度;
太阳方位角:太阳相对于正北方向的顺时针转过的角度,正北=0°,正东=90°,正南=180°,正西=270°;
太阳高度角:太阳入射光和地面的夹角。
对准刻度:可利用手表确定方位。将表盘上该数字对准太阳,此时表盘上的“12”刻度指向北方,“6”刻度指向南方。(比如某一时刻的“对准刻度”为7.5,那么就将表盘上7和8的中间刻度对准太阳,此时“12”刻度就指向正北方向。)
(二)误差分析比较
以下是我所制作的表格的误差分析,基本设置里的“时间基准”选择“平太阳时”。
可通过与网络上查得的日出日落时间进行比较,来看看表格计算误差大不大。
以2025/7/1,110°E,28°N为例,比较误差,发现误差在4分钟以内。

事实上,经过多次比较,误差均在5分钟以内,且表格计算的日出会滞后约3分钟左右,计算的日中基本没有误差,计算的日落会提前3分钟左右。这并非模型不够精确造成,而是因为网络上查找到的数据还考虑了大气折射、太阳视半径等次要因素,它们的影响微乎其微,表格并没有把它们纳入考虑。
参考文献
[1] 虞炳文, 等. 光学观测中几种太阳夹角计算方法及精度分析[J]. 计算机测量与控制, 2022, 30(12): 306-318.
如果对你有帮助,请点赞支持我!
END
夜雨聆风