地平坐标系

地平坐标系（英语：Horizontal coordinate system），是天球坐标系统中的一种，以观测者所在地为中心点，所在地的地平线作为基础平面，将天球适当的分成能看见的上半球和看不见（被地球本身遮蔽）的下半球。上半球的顶点（最高点）称为天顶，下半球的顶点（最低点）称为地底。

地平坐标系统由两个夹角来定义一个天体位置的极座标：

- 高度角（Altitude, Alt）或仰角又称地平纬度，是天体和观测者所在地的地平线的夹角。
- 方位角（Azimuth, Az）又称地平经度，是沿着地平线测量的角度. 一般文献指称的方位角是以正北方为0度起点, 顺时钟向东方测量. 但对于某些观星者或航海家而言, 定义以南方为0度起点的方向角, 有其方便性. 因此以下将以 $A_N$ 及 $A_S$ 分别代表(以正北为0度的)北方位角及(以正南为0度的)南方位角。

因此地平坐标系有时也被称为高度/方位（Alt/Az）坐标系统。

## 简略的观测

地平坐标系统是固定在地球上而不是恒星，所以天体出现在天球上的高度和方位会随着时间，在天球上不停的改变。另一方面，因为基础平面是观测者所在地的地平面，所以相同的天体在相同的时间从不同的位置观察，也会有不同的高度和方位。

地平坐标系在测量天体的出没上非常的好用，当一个天体的高度为0°，就表示他位于地平线上。此时若其高度增加，就代表上升；若高度减少，便是下降。然而天球上所有天体的运动都受到由西向东的周日运动支配，所以与其笨拙的去观察高度是增加或减少，不如改为观察天体的方位更容易来判断是上升或是下降：

- 当天体的方位在0°～180°之间（北方—东方—南方，亦即子午线之东）是上升。
- 当天体的方位在180°～360°之间（南方—西方—北方，亦即子午线之西）是下降。

但在下面的特殊位置则例外：

- 在北极点，因为天顶就是北天极，所有的方向都是南方，所以无法定出方位，但这并不造成问题，因为所有天体的高度无论任何时间都不会改变，即既不升高也不降低，只绕北极星以逆时针转动。（头朝下感觉天星是顺时针转，抬头望天，才看见天星逆时针转）
- 在南极，地面上所有方向都是北方，也会有与北极相同情况，只是所有星星皆绕天顶的南天极顺时针转动。
- 在赤道，位于极点的天体会固定不动的永远停留在地平线上的那一个点。（但实际上由于天极很接近地平线，在该处天体未必能直接看到）

需要注意的是：前面所考虑的只是理论上的几何地平，即不考虑地球大气层对天体位置的影响，让观测者的地平线完全以理想的海平面构成。因为地球有弧度，实际上看见的视地平面会随着观测者的高度增加而降低（出现负值）。另一方面大气层也会将地平线下半度的天体折射到地平线上。

## 与赤道坐标系的互换

只要知道观测者的地理坐标与时间，就可以将地平坐标转换成赤道坐标，或是反过来将赤道坐标转换成地平坐标。

在以下公式中，以$A$代表方位，$a$代表高度。

以$\alpha$表示赤经，$\delta$表示赤纬，$H$表示时角。

φ为观测者所在地的纬度。

不管赤纬或地理纬度, 都是以北极点为+90°，在赤道是0°，南极点是-90°。

### 天体时角与本地恒星时

在地平座标转换前一般会先计算天体的本地时角 (Local Hour Angle, LHA) (或称地方时角)。天体的本地时角$H$为观测时通过本地子午圈的天球经线的赤经值$\alpha_L$ 与天体赤经 $\alpha$的差值 ($H \equiv \alpha_L - \alpha$), 也代表星体所在的赤经线与南方子午线在赤道面的夹角. 由于方位角是以南方(或北方)为基准, 所以用时角来转换到方位角颇为直觉. 上述的 $\alpha_L$ 正式名称为本地恒星时 (Local Sidereal Time, LST, $LST \equiv \alpha_L$). 想像当地球以稳定的自转速度旋转时, 在每个恒星日, 南方子午线上会陆续通过赤经为 $0^h, 1^h, ..., \alpha^h$, ..., $\alpha_L^h$, ..., $24^h (\equiv 0^h)$ 东昇西落的星星, 就可想像 $\alpha_L$ 可以当成观测本地的一个时钟, 上面显示的时钟刻度就是本地恒星时 ($LST$), 换算成一小时 15 度, 也就是观测地经线相对于天球赤道起点 (春分点, $\alpha_0 = 0^h$) 的旋转角度. 而天体的时角就代表从天体中天时刻到观测时刻所经历的时间或转动的角度. 显然, 本地恒星时由观测时间$t$及观测地经度$\lambda$决定 ($\alpha_L=\alpha_L(t, \lambda)$). 所以, 天体的时角也由天体的赤经$\alpha$及$t, \lambda$共同决定，故$H$有时也会写成$H (\alpha, t, \lambda)$ 或 $H (\alpha)$, 代表赤经在特定观测时地的替代表示方式. 这也是为什么在空间座标转换时, (星体座标)会用去除时地标志的天体时角(及赤纬)来代替其赤经(及赤纬)的原因. 总结上述说明, 星体的时角与本地恒星时的关系及计算公式为:

$$\begin{align} H(\alpha, t, \lambda) &= LST(t, \lambda) - \alpha &&\equiv \alpha_L - \alpha \\ LST(jd,\lambda) &= GST(jd) + \lambda &&\equiv \alpha_L (jd, \lambda)\\ GST(jd) &= 241.3872 + 360.9856091 \times (jd-2440000.5) &&\equiv LST(jd, 0^\circ) \\ GHA(\alpha, t) &\equiv H(\alpha, t, 0^\circ) &&= GST(t) - \alpha \\ H(\alpha, t, \lambda) &= GHA(\alpha, t) + \lambda &&= GST(t) + \lambda - \alpha \end{align}$$

如上所示, LST 可由 GST 加计本地地理经度求得. 其中, GST 为格林威治恒星时, 亦即 0 度经线上之观测站的 LST. 上述公式中, $\theta_0 =$241.3872 (度)代表在参考历元 $T_0 =$ 2440000.5 JD (儒略日, Julian Date) (相当于1968/5/24.0) 时, 经过格林威治本初子午线的遥远恒星的赤经.

$R_0 =$360.9856091 (度/太阳日)代表一天 (一个平太阳日) 之内地球转动的度数. 乘以 $t$ (用儒略日 jd 表示) 与 $T_0$ 的差值, 代表至观测时间 $t$ 总共新增的转动度数.

当然, 这些角度都要调整到 0, 360 或 -180, +180 的范围. 由 LST 就可以知道观测时通过本地子午线的星体的赤经了.

一般导航用的天文年鉴或历书 (almanac), 并无法把主要天文导航天体(如太阳, 月亮, 行星, 及约 57 颗导航用亮星), 在所有城市的本地时角, 都刊印出来, 仅能打印他们在格林威治所观测到的天体时角, 即格林威治时角 (Greenwich Hour Angle, GHA), 再由领航员从 $LHA = GHA + \lambda$ 的关系中加计经度推算出 $LHA$. 因此, 上列公式也把 GHA 的相关式子列出来做为参考.

- 单位与惯例: 上列公式中的经度 $\lambda$, 以东经为正, 西经为负, 故亦称为东经度, 可表示为 $\lambda_E$. 某些地区习惯取西经为正, 东经为负, 称为西经度. 为示区别, 可表示为 $\lambda_W$ ($\lambda_W = - \lambda_E$). 本页所称经度概以东经度为主, 即 $\lambda \equiv \lambda_E$. 而公式中的夹角皆以角度(degree)为单位, 若改成弪度 (radian) 或时间, 则可用 $360^\circ \equiv 2\pi \text{ rad} \equiv 24^h$ 换算.

此外, 对同一观测目标 ($\alpha$), 在同一观测地 ($\lambda$)而言:

$$\begin{align} GST(jd) &= \theta_0 + R_0 \times (jd-T_0) &&= LST(jd,\lambda) - \lambda &&= H(\alpha, t,\lambda) - \alpha -\lambda \\ \Delta ST &\triangleq GST(jd1) - GST(jd0) &&= LST(jd1,\lambda) - LST(jd0,\lambda) \\ &= H(\alpha, jd1, \lambda) - H(\alpha, jd0, \lambda) && \triangleq \Delta H \\ \Delta ST &= R_0 \times (jd1-jd0) &&= \Delta t \times R_0 &&= \Delta H \\ \Delta t &\triangleq jd1-jd0 &&= \Delta ST / R_0 &&= \Delta H / R_0 \\ jd1 &= jd0 + \Delta ST / R_0 &&= jd0 + \Delta H /R_0 \\ \end{align}$$

也就时说, 在同一观测地, 恒星时差($\Delta ST$)与天体时角差($\Delta H$)是相同的, 且都跟观测时间差($\Delta t$)成正比. 只不过恒星时钟与太阳时钟的时间长度及速度不一样, 地球公转一周看到远处恒星的次数比看到近处太阳的次数正好多1次. 所以, 恒星时钟比太阳时钟走得快一点. 若要把恒星时差换算成手表上的时差(平太阳时), 就必须多除以 $R_0$ 这个系数 ($R_0 \approx (365.25+1)/365.25 \times 360^o$). 在许多有关天文事件时间 (jd1) 或时差(duration) (Δ t) 的计算问题上 (如日出时刻、日落时刻、星体中天时刻、曙暮光始末时刻、日照时间或白天长度)

, 要记得用这个比例常数来调整两种不同时间的刻度. 例如, 1 恒星日 ($\Delta ST = 360^0$) 的时间长度大约相当于 $\Delta t = 23^h 56^m 4.09^s$ (平太阳时), 与一天(太阳日)的长度差了约 4 分钟.

### 赤道坐标转为地平坐标

赤道坐标转为地平坐标时, 可以透过以下的关系, 由天体的赤经 ($\alpha$) 及赤纬 ($\delta$), 求得天体的方位角($A$) 及高度角 ($a$)。

$$\begin{align} Z_h &= \sin a &&= \sin \phi \cdot \sin \delta + \cos \phi \cdot \cos \delta \cdot \cos H \\ X_h &= \cos A \cdot \cos a &&= -\cos \phi \cdot \sin \delta + \sin \phi \cdot \cos \delta \cdot \cos H \\ Y_h &= \sin A \cdot \cos a &&= \cos \delta \cdot \sin H \\ \end{align}$$

根据以上关系式, $a = arcsin(Z_h)$. $A$ 则可由 $X_h, Y_h$ 求得.

有种方式是把 $Y_h, X_h$ 相除后消去$\cos a$项，而化简为$\tan A = Y_h/X_h$, 再用 $\arctan (Y_h/X_h)$ 来求 $A$。但是, $\arctan(Y_h/X_h)$ 使用的反正切函数的值域只在-90, 90 度之间, 无法完整涵盖 0, 360 (或 -180,+180) 度的方位角. 而在 0 到 360 (或 -180,+180) 度之间, $\tan$ 值相同的角度有两个 ($\tan A = \tan (A \mp 180) = Y_h/X_h$). 例如45°和225°是完全不同的方位, 但正切值相同。因此, 必须根据$X_h$ 及 $Y_h$ 的正负符号, 决定方位角落在哪个象限. 如果这些同值的角度落在非值域的第二及第三象限, 即 X 值为负时, $\arctan(Y/X)$ 必须 +/-180 度, 才会得到正确的 $A$. 若为 X=0 (Y/X 为无限大) 的特殊状况, 则依 $Y_h$ 的正负符号, 定义其方位角为 +90 或 -90 度。若 X, Y 皆为 0 (即天体在天顶), 则可依习惯定义方位。

$$\begin{align} \tan A & <pre> = \frac{\cos \delta \cdot \sin H}{-\cos \phi \cdot \sin \delta + \sin \phi \cdot \cos \delta \cdot \cos H} && = \frac{Y_h}{X_h} \\ &= \frac{\sin H}{-\cos \phi \cdot \tan \delta + \sin \phi \cdot \cos H} \\ </pre> A_0 &\triangleq \arctan \frac{Y_h}{X_h} && \in [-90,90] \\ A &= \begin{cases} A_0 & \qquad X_h > 0 & \in [-90,90] \\ A_0 + 180^\circ & \qquad Y_h \ge 0 , X_h < 0 & \in [90,180] \\ A_0 - 180^\circ & \qquad Y_h < 0 , X_h < 0 & \in [-90,-180] \\ <pre> + 90^\circ & \qquad Y_h > 0 , X_h = 0 \\ - 90^\circ & \qquad Y_h < 0 , X_h = 0 \\ </pre> \text{undefined} & \qquad Y_h = 0, X_h = 0 <pre> \end{cases} </pre> \end{align}$$

其实不少程式语言(如 C, C++, Java, Python) 都有提供一个叫做 ATAN2(Y,X) (或 ATAN2(X,Y)) 的反三角函数 (atan2是已将象限纳入考量的反正切函数), 可算出 $\arctan(Y/X)$ 的值, 并根据 (X,Y) 的正负号判断所属象限, 从而决定 (X, Y) 向量与 X 轴的夹角, 让他的值域涵盖 360 度角. 这对决定方位角非常方便, 省掉自己编写程式码来判断象限的麻烦. 至于高度角 $a$ 的求解, 可令第一个公式等号右边的值为 $Z$, 用 $a = \arcsin(Z)$ 求 $a$ 值即可, 不必再做调整. 因为, $\arcsin$ 的值域为正负 90 度, 正好对应地平线上下夹角 (这状况同样适用于之后在计算赤经赤纬时对应北南半球纬度).

#### 两种方位角

需要特别注意的是, 上面计算出来的方位角 $A$ 其实指的是以南方为0度向西递增的方位角, 而不是一般文献指称的, 以北方为0度, 向东递增的方位角. 这种一般文献上所称的 (北)方位角 若表示成$A_N$, 则与上列计算出来的 $A$, 或特意表示成 $A_S$ 的 南方位角, 两者相差正好 180 度, 可以用 $A_N = A_S + 180$ 计算出来, 并调整到 0～360 度即可. 由于很多人不明白其间的差异, 因此由其他文献上抄录来的公式, 常因公式中某些项目的正负符号与其他来源(如维基网页)不同, 而误以为错误, 甚至错误更改维基百科的公式而不自知 (可察看本页历史编辑纪录). 其算出的结果也可能与预期有 180 度的差异. 所以, 参照不同来源公式时, 必须小心. 而之所以会有人定义这种南方为零的南方向角, 主要是一些北半球的观星者平时观测的星体以南方星体为主. 因此, 以南方为零度方位, 有其方便性.

### 赤平座标转换之矩阵转换式

上列公式并不容易理解其来由, 若移项重新整理, 并刻意以 $A_s$ 提醒此方位角为南方位角, 则可得:

$$\begin{align} X_h &= \cos a \cdot \cos A_S &&= \sin \phi \cdot \cos \delta \cdot \cos H -\cos \phi \cdot \sin \delta \\ Y_h &= \cos a \cdot \sin A_S &&= \cos \delta \cdot \sin H \\ Z_h &= \sin a &&= \cos \phi \cdot \cos \delta \cdot \cos H + \sin \phi \cdot \sin \delta \\ \end{align}$$

其矩阵形式则为:

$$\begin{bmatrix} X_h \\ Y_h \\ Z_h \end{bmatrix} = \begin{bmatrix} \cos a \cdot \cos A_S \\ \cos a \cdot \sin A_S \\ \sin a \\ \end{bmatrix} = \begin{bmatrix} \sin \phi & 0 & - \cos \phi \\ 0 & 1 & 0 \\ \cos \phi & 0 & \sin \phi \end{bmatrix} \times \begin{bmatrix} \cos \delta \cdot \cos H \\ \cos \delta \cdot \sin H \\ \sin \delta \end{bmatrix}$$

$A_S = atan2(Y_h, X_h)$, $a = \arcsin(Z_h)$

其中, 最右边要被转换的行向量表示赤道极座标 $(\alpha, \delta)$ 或 $(H, \delta)$ ($H = LST - \alpha$) 投影在赤道面某选定直角座标的三个分量 $(X_e, Y_e, Z_e)$, 等号左边的转换后所得行向量表示地平极座标 $(A_S, a)$ 投影在地平面某选定直角座标的三个分量 $(X_h, Y_h, Z_h)$. 中间的转换矩阵代表将赤道座标沿着子午线由天球北极 (Z 轴) 转向赤道面 (X轴) 转动 90-$\phi$ 度角的座标旋转矩阵. 这样的矩阵式说明了原公式的直觉意义, 对于需要时常计算的观星者,航海家或天文计算程式员而言比较不必硬记, 也较不容易弄错.

### 地平坐标转为赤道坐标

上列矩阵转换公式, 也让地平座标转赤道座标变得容易. 事实上, 只要把转换对象调换, 并进行逆转换即可. 换句话说, 前式的两个行向量只要互相调换, 并把原来的转换矩阵变成他的逆矩阵 (inverse matrix) 即可得到反向转换公式. 有趣的是, 座标转换的逆矩阵也是他的转置矩阵 (transpose matrix), 也就是行列互换的矩阵, 因此并不需要费力去求原转换矩阵的逆矩阵. 因此, 我们可以轻易得到:

$$\begin{bmatrix} X_e \\ Y_e \\ Z_e \end{bmatrix} = \begin{bmatrix} \cos \delta \cdot \cos H \\ \cos \delta \cdot \sin H \\ \sin \delta \end{bmatrix} = \begin{bmatrix} \sin \phi & 0 & \cos \phi \\ 0 & 1 & 0 \\ - \cos \phi & 0 & \sin \phi \end{bmatrix} \times \begin{bmatrix} \cos a \cdot \cos A_S \\ \cos a \cdot \sin A_S \\ \sin a \\ \end{bmatrix}$$

亦即

$$\begin{align} X_e &= \cos \delta \cdot \cos H &&= \sin \phi \cdot \cos a \cdot \cos A_S + \cos \phi \cdot \sin a \\ Y_e &= \cos \delta \cdot \sin H &&= \cos a \cdot \sin A_S \\ Z_e &= \sin \delta &&= - \cos \phi \cdot \cos a \cdot \cos A_S + \sin \phi \cdot \sin a \\ \end{align}$$

$H = atan2(Y_e, X_e)$, $\alpha = LST(t,\lambda) - H(\alpha)$, $\delta = \arcsin(Z_e)$.

其中, $LST(t, \lambda)$ 为观测者所在经度 $\lambda$ 于观测时间 $t$ 的本地恒星时.

### 方位角以北为零时的赤平座标相互转换

前面已提到, 实用上有两种方位角, 前面计算的其实是南方位角 $A_S$. 一般官方文献所提的方位角为北方位角 $A_N$. 为了避免混淆, 以下将使用 $A_N$时的座标转换公式也一并列出, 以便相互对照.

#### 赤道转北地平

赤道转地平, 求 $A_N$ 的方法除了用先前方法算出 $A_S$ 再加 180 度之外, 也可以将原来的转换公式中的 $X_h$ 跟 $Y_h$等号右侧方程式都加负号, 并把等号左侧的 $A_S$ 改成 $A_N$ 即可. 其结果是:

$$\begin{align} X_{hN} &= \cos a \cdot \cos A_N &&= - \sin \phi \cdot \cos \delta \cdot \cos H +\cos \phi \cdot \sin \delta &&= - X_h\\ Y_{hN} &= \cos a \cdot \sin A_N &&= - \cos \delta \cdot \sin H &&= - Y_h\\ Z_{hN} &= \sin a &&= \cos \phi \cdot \cos \delta \cdot \cos H + \sin \phi \cdot \sin \delta &&= + Z_h\\ \end{align}$$

$A_N = atan2(Y_{hN}, X_{hN})$, $a = \arcsin(Z_{hN})$, 或者$A_N = atan2(-Y_{h}, -X_{h})$, $a = \arcsin(Z_{h})$.

同时:

$$\begin{align} \tan A_N &= \frac{Y_{hN}}{X_{hN}} = \frac{-Y_{h}}{-X_{h}} = \frac{Y_{h}}{X_{h}} = \tan A_S = \tan A \\ \end{align}$$

两者相除后，除正负号的区别外，形式完全一样，已无法区分这里的方位角是南方位角或北方位角。且已失去判断象限的讯息，必须由分子分母的正负来辅助判断。这跟之前讨论如何由 $\tan A$ (即 $\tan A_S$) 求 $A$ 的情况一样。

有兴趣者可以把他转成矩阵转换式, 会发现这样的转换是经过两道转换手续, 即先转成原先的南地平, 再把 X 轴转 180 度, 也就是 X 值跟 Y 值都取负号.

$$\begin{bmatrix} X_{hN} \\ Y_{hN} \\ Z_{hN} \end{bmatrix} = \begin{bmatrix} \cos a \cdot \cos A_N \\ \cos a \cdot \sin A_N \\ \sin a \\ \end{bmatrix} = \begin{bmatrix} -1 & 0 & 0 \\ 0 & -1 & 0 \\ 0 & 0 & 1 \end{bmatrix} \times \begin{bmatrix} \sin \phi & 0 & - \cos \phi \\ 0 & 1 & 0 \\ \cos \phi & 0 & \sin \phi \end{bmatrix} \times \begin{bmatrix} \cos \delta \cdot \cos H \\ \cos \delta \cdot \sin H \\ \sin \delta \end{bmatrix}$$

#### 北地平转赤道

要得到使用 $A_N$ 时的地平转赤道座标转换公式, 只要将 $A_S = A_N - 180$代入原来的南地平转赤道的转换公式即可. 此代换会得出, $\cos(A_S) = \cos(A_N - 180) = -\cos(A_N)$, $\sin(A_S) = \sin(A_N - 180) = -\sin(A_N)$, 因此, 有以下转换公式:

$$\begin{align} X_{eN} &= \cos \delta \cdot \cos H &&= - \sin \phi \cdot \cos a \cdot \cos A_N + \cos \phi \cdot \sin a &&=X_e\\ Y_{eN} &= \cos \delta \cdot \sin H &&= - \cos a \cdot \sin A_N &&=Y_e\\ Z_{eN} &= \sin \delta &&= \cos \phi \cdot \cos a \cdot \cos A_N + \sin \phi \cdot \sin a &&=Z_e\\ \end{align}$$

$H = atan2(Y_{eN}, X_{eN})$, $\alpha = LST(t,\lambda) - H(\alpha)$, $\delta = \arcsin(Z_{eN})$.

其中, $LST(t, \lambda)$ 为观测者所在经度 $\lambda$ 于观测时间 $t$ 的本地恒星时.

注意，$(X_{eN}, Y_{eN}, Z_{eN})$ 其实与 $(X_{e}, Y_{e}, Z_{e})$ 是相同的两组赤道座标，只是以 $A_S$ 及 $A_N$ 表达时，形式不同而已。

比较 $(X_{eN}, Y_{eN}, Z_{eN})$ 跟 $(X_{hN}, Y_{hN}, Z_{hN})$ 会发现, 两者的转换公式长得完全一样, 不同的只是符号的代换. 把 $H$ 跟 $\delta$ 分别与 $A_N$ 跟 $a$ 互相代换就会得到另一组转换公式. 这是因为赤道转北地平的转换矩阵(即矩阵式中的两个矩阵相乘)是对称矩阵, 所以它的逆矩阵 (已知等于转置矩阵) 跟原转换矩阵是一样的. 所以, 除了符号互相替换之外, 公式的形式完全相同. 这个有趣的结果可以有两个应用. 第一,是可以由两个方向的转换矩阵或转换公式的形式是否一样来判断公式里的方位角到底是不是以北方为零度的方位角. 第二,如果采用 $A_N$ 为方位角, 则撰写转换程式码时其实只需要写一个函数.

## 赤道座标与地平座标转换之应用

赤道座标与地平座标之转换, 牵涉到观测时间 $t$ 或 $GST(t)$ 或 $LST(t,\lambda)$, 观测位置($\lambda, \phi$), 观测天体座标 ($\alpha, \delta$) 或 ($H(\alpha, t, \lambda), \delta)$ 和观测者地面量测的视角及数据$(a, A)$. 透过这些相依关系, 只要固定某些变数或进行相关测量, 就可以求得其他感兴趣的变数, 进行预测或量测. 这在天体追踪, 观测活动规划, 个人位置定位, 天文导航 (celestial navigation) 等方面, 应用极为广泛. 举例而言:

- 天体位置追踪: 由观测时地 $t, (\lambda, \phi)$ 及天体座标 $(\alpha, \delta)$ 求其高度及方位 $(a, A)$.
- 标定天体的方位及高度, 以规划适当的观测场地, 设置观测仪器, 进行观测活动.
- 将地面或太空船上的太阳光电模组、太阳热能模组对准阳光方向, 以获得最大日照强度及能量.
- 日蚀时, 由太阳及月球相对方位及高度绘制模拟过程. 提供太阳能设备特殊处理所需的位置资讯.
- 事件时程预测: 由观测地位置 $(\lambda, \phi)$ 及天体座标 $(\alpha, \delta)$ 求天体特殊事件发生的时刻 $t$, 持续时间 $\Delta t$ 及方位高度 $(a, A)$.
- 可由$Z_h (\equiv Z_{hN})$ 推算时间 (隐藏在时角变数$H$及恒星时$GST$内), 由 $Z_{e}$ 或 $(Z_{eN})$ 推算方位.
- 星起(rise)、星落(set)、中天(transit)时刻、可观测时间(duration).
- 曙光开始及暮光终止(twilight)时间: 决定最佳观测或活动时间窗口.
- 计算日出(sunrise)、日落(sunset)、中天时间、方位, 及时启动及关闭太阳能装置, 适时启动备用储能系统或其他发电系统.
- 计算日照时间, 预测太阳光电全年发电量, 规划与其他发电装置及储能系统的最佳搭配.
- 由太阳及月亮位置, 预测日蚀发生时间. 提前预警太阳能设备进行特殊处理所需的时间资讯.
- 预测人造卫星进入地影时间.
- 观测者地理位置定位(positioning)及天文导航 (celestial navigation) 应用:
- 定位: 由一个或多个已知星体 $(\alpha, \delta)$ (或 $(H(\alpha, t, \lambda), \delta)$) 在不同时间 $t$ 的量测高度与方位 $(a, A)$ 决定观测者(或船舶及飞行器)所在地理位置 $(\lambda, \phi)$. 理论上, 同一时间三个星体或同一星体三个不同时间的测量, 可以决定观测者所在的经纬度.
- 原理: 所有位置中, 会观测到天体的高度角为 $a$ 的所有经纬度的集合, 是一个以天体星下点地理位置 GP 为中心(半径为余高, co-altitude, $90^\circ - a$) 的圆圈, 称为等高度角圈 (简称等高圈) (circle of equal altitude) 或称该观测高度角对应的位置圈. 观测者的经纬度必在其中. 若观测两个天体的两个高度角, 可以绘出两个位置圈, 其交点仅剩两个, 观测者的位置必在其中之一. 通常这时就可以轻易排除其一, 而猜到正确经纬度. 若再观察另一天体并绘出其位置圈, 则三个天体的三个位置圈的交点为唯一, 即为观测者所在的经纬度.
- 公式: 利用地平座标中的参数 $Z_h$ 的角度与位置关系, 给定高度角 $a$ 及时间 ($t$, 即可算出天体等高度角圈 (circle of equal altitude), 即位置圈 (Circle of Positions, COP) 中的所有经纬度. 位置圈中的一小段弧线, 约可视为一直线, 称为位置线 (Line of Positions, LOP). LOP 是天文导航中常用来决定船舶或飞机位置的重要资讯. 用越多的 LOP 的交点所决定的经纬度越精确.
- 导航: 由假设的地理位置 (AP, Assumed Position) ($\lambda_{AP}, \phi_{AP}$) 计算天体在 AP 应有的高度角及方位 ($a_{AP}, A_{AP}$), 并将计算值与实际量测到的天体高度角 ($a$) 比较, 推定航行器的适当航向及航程. 这是用 LOP 概念的一种直觉导航方法, 称为截距法 (intercept method, IM). 可用来修正航位推测 (Dead reckoning) 的误差.
- 计算天体于特定时间 $t$ 向地心投影的地面投影点(称为星下点 Substellar point)的地理位置 (GP, Geographic Position) (以经纬度表示).
- $GP(\alpha, \delta, t) \triangleq (\lambda_{GP}, \phi_{GP})$ = ($- GHA(\alpha, t), \delta$) = ($\alpha - GST(t), \delta$).
- GHA: 天体的格林威治时角 (向西为正向东为负).
- 此处经度($\lambda_{GP}$)为东经度($\lambda\equiv\lambda_E$). 若以西经度($\lambda_W$)表示, 则 -GHA 前的负号应去除, 改为 +GHA.
- 计算天体及人造卫星的地面轨迹 (ground track).
- 绘制太阳所定义出来的晨昏线 (circle of illumination, Terminator (solar)).
- 绘制日全蚀的地面的全蚀路径 (path of totality).
- 天体轨道测定 (orbit determination): 由移动天体或人造卫星在不同时间 $t$ 的地面观测数据 $(a, A)$ (或 $(\alpha, \delta)$) 及雷达测距等数据, 推算天体的位置及速度向量 (状态向量), 并透过轨道力学公式, 推测天体的 轨道要素 (Orbital elements), 以便预测其后续在任意时间点 $t$ 的位置 ($(\alpha, \delta)$ 或 $(a,A)$).

## 日出方程式

天体的出没及持续时间，可以由前述$Z_h$中的高度角$a$及时角$H(\alpha,t,\lambda)$的关系推导出来。其中, 时角隐藏时间($t (jd)$)、观测地经度($\lambda$)、观测天体赤经($\alpha$), 是计算与时间相关的问题时，会被检视的变数。

### 天体出没高度的修正因素

天体出没于地平线时，按理说其高度角$a_0$应该为$0^\circ$。但由于某些天体视直径($d$)很可观，或观测地的气候条件(如大气折射效应, Refraction)影响天体出没时间，或周遭地理状况(如海拔及障碍物)影响出没高度，或观察对象为较近地球的天体，地表及地心视差不容忽略，因此，天体出没时的高度角$a_0$未必为零。

- 比如说，太阳的视直径 $d$ 约有半度角。因此，当太阳中心还在地平面下半个视直径的时候，太阳圆盘的上沿 (superior limb) 就已经碰到地平面，日出就算发生了。要计算这种状况，就必须令 $a_0 = -{d}/{2}$。其中的负号，表示还在地平面以下，出没就发生的状况。
- 又比如，天体在地平面之下时，由于大气折射的关系，视位置会被拉高某个角度 $R$，而导致还没浮出地平面，就已经被看到。那么，就必须令 $a_0 = -R$。
- 若两效应都考虑，就应把这两个视角度加总。一般计算日出日落时间时，$a_0 = -{d}/{2} - R = -50'$ 是很常用的修正条件。
- 观测站如果位于高海拔，其效应等同降低地平面高度，会提早看到真正地平面下的天体。若该角度为 $\eta_1$，可令 $a_0 = -\eta_1$ 予以补偿。
- 如果有天体浮出地平面后还看不到的情况，比如被地平面上的高山或建筑挡到了，而该障碍物的视角度为 $\eta_2$，那就该在高度角上加计这样的角度 $a_0 = +\eta_2$。
- 当观测天体为月球时，因地月平均距离$D_{EM}$仅约为地球半径$R_E$的60倍(约直径的30倍)。这比其它天体都要近得多。所以，由地心观看的月球高度角与由地表观测的高度角，会出现显著的地心视差 (geocentric parallax) P。这个视差在月球出没于地平线时达最大$P_{max} = \arcsin(R_E/D_{EM}) \approx 1/60 \text{rad} = 0.955^\circ = 57'$。亦即月亮中心的地心高度角必需昇到 $57'$时，地表的观察者才会由地平线看到其中心昇上地平线。故计算月出及月没时间时，令$a_0 = +P_{max}$，可让因地心视差之因素而造成的月出月没时间延迟，得以修正。又因 57' 的视差约为月亮直径 (32') 的两倍。故地心人看到月昇大约2个月亮高时，地表人才看得到月亮升起。
- 有时，我们关心的并非天体实体而是它引发的效应所发生的时间。比如，曙光(太阳的光线而不是太阳实体)开始出现或暮光结束的时间。这时，可以设定一个惯用的高度角 $TW$ (twilight angle)，来计算此类事件的起始及终止时间，而令 $a_0 = -TW$。由于曙暮光计算所用的角度远大于其他修正角度，因此其他修正项基本上可以忽略。

所以，计算天体(含太阳及月亮)的实体或虚像出现或隐没时，高度角一般由以下几个可选的参数决定：

$$a_0 = P - R - d/2 - \eta_1 + \eta_2 - TW$$

其中。

P: 地心视差修正 (月亮: 57')

R: 海平面折射角度 (地球: 34')

d/2: 天体视半径 (Apparent semi-diameter) (太阳/月亮: 16')

$\eta_1 = \arccos(\frac{R_E}{R_E + H_{obs}})$: 观测站海拔高度修正

$H_{obs}$: 观测站海拔高度 (Height of Observatory above sea level in meters)

$R_E$: 地球半径 (Radius of Earth) (6,378,140 m)

$\approx 1' 56'' \sqrt{H_{obs}}$ (地球上的观测站)

$\eta_2 = \arctan(\frac{H_M}{D_M})$: 高山障碍物角度修正

($H_M$: 高山障碍物高度, $D_M$: 高山与观测站距离)

TW: 曙/暮光 (Twilight) 开始/终止时的太阳角度 (海平面下)

民用曙暮光 (Civil twilight): $6^\circ$

航海曙暮光 (Nautical twilight:) $12^\circ$

天文曙暮光 (Astronomical twilight:) $18^\circ$

曙暮光的标准并非依据客观的太阳物理数据，而是依据不同人群受日光出现之影响程度所订定的经验标准。因此有民用曙暮光 (civil twilight)、航海曙暮光 (nautical twilight) 及天文曙暮光 (astronomical twilight) 的订定。天文观测一般不愿受日光影响，所以希望太阳于地平线下 18 度以下的期间才进行观测。船只航行只要清楚看得到海天之交的弧线就可以安心航行，所以用较宽松的地平面下 12 度，作为航海曙暮光的标准。至于一般人民，只要天将亮夜未深之际进行作息即可，所以民用曙暮光的标准是更宽松的地平面下 6 度。

### 天体出没的时间计算

给定出没时的天体高度角$a_0$后，假设$H_0$ 为对应的时角，则计算日(星)出、日(星)落、曙暮光等事件的时间可摘要如下：

$$\begin{align} \sin a_0 &= \cos \phi \cdot \cos \delta \cdot \cos H_0 + \sin \phi \cdot \sin \delta &&(\triangleq Z_h^0)\\ \Rightarrow \cos H_0 &= \frac{\sin a_0 - \sin \phi \cdot \sin \delta}{\cos \phi \cdot \cos \delta} <pre> = \frac{\sin a_0}{\cos \phi \cdot \cos \delta} - \tan \phi \cdot \tan \delta && \text{(if } a_0 \ne 0 \text{)}\\ &= - \tan \phi \cdot \tan \delta && \text{(if } a_0 = 0 \text{)}\\ </pre> \text{Let } H_0 &= \arccos(\frac{\sin a_0 - \sin \phi \cdot \sin \delta}{\cos \phi \cdot \cos \delta}) &&\text{if } cos H_0 \in [-1,+1] \\ \Rightarrow H_{0R} &= -H_0 \equiv 360^\circ - H_0 &&\text{(HA at Rise time)}\\ <pre> H_{0S} &= +H_0 &&\text{(HA at Set time)} \\ </pre> \end{align}$$

此处, 天体出现时的天体时角为$H_{0R} = -H_0$，隐没时的时角为$H_{0S} = +H_0$。由于$cos(A)=cos(-A)$ 且 $\arccos(\cdot) \in [0,180^\circ]$，故满足 $cos(A)=B$ 且在 $A \in$ -180,180 或 0,360 的角度有两个, 即 $A = \mp \arccos(B)$。因此，其中一个为天体出现时的时角，另一个为隐没时的时角。

- 注意, 如果 $\cos H_0 > +1 (\approx \tan \phi \cdot tan \delta < -1)$ 则该天体永远不会上升，若 $\cos H_0 < -1 (\approx \tan \phi \cdot tan \delta > +1)$ 则该天体永远不会下沉，便没有所谓的天体出没时间。在高纬度 (高$\tan \phi$) 观察高赤纬 (高$\tan \delta$) 的天体时，这种情况就可能发生。所以，北半球较高纬度的人可能永远看不到南十字星(crux)上升到地平线上，但会看到北极星(pole star)终年不断出现在北天极附近，永不落下。对行星及太阳等赤纬会随时间变化的天体而言，这种现象还跟季节或时间有关。比如，北半球高纬度圈的人在夏至前后会有日不落的永昼现象，到了冬至则看不到太阳升起而有永夜的情境。这都可以由以上公式精确算出来。

若无永昼永夜之类的极端情况，则可由$H_0$分别先求出星体出没的本地恒星时，及格林威治恒星时。并以当日子夜零点的GST ($GST_{0h}$) 为基准，求恒星时差异。当然也可以由两个 LST 求恒星时差异。随后将恒星时差异调为太阳时差异。必要时将以日为单位的太阳时差异，以每日24小时换算为时:分:秒，就可求出星体出没的时间。以下公式概括所有步骤：

$$\begin{align} LST_0 &= \alpha \mp H_0 && \text{(LST for Rise/Set)} \\ GST_0 &= LST_0 - \lambda && \text{(GST for Rise/Set)}\\ \Delta ST_{0h} &= GST_0 - GST_{0h} && \text{(}\Delta ST \text{ as } \Delta GST\text{ w.r.t. midnight)} \\ <pre> &= LST_0 - LST_{0h} && \text{(or as }\Delta LST \text{, both in Degrees)}\\ </pre> \Delta t &= \Delta ST_{0h} / R_0 && \text{(difference in Solar time, in Days)}\\ t_{RS} &= t_{0h} + \Delta t \times {24^h} = \Delta ST_{0h} / R_0 \times {24^h} && \text{(Rise/Set times, in Hour)}\\ \end{align}$$

- 注意，以上计算是假设天体的位置 ($\alpha, \delta$) 在关注的日期不会变动。一般恒星基本上可以使用这样的假设。至于移动的天体，如太阳及行星甚至移动速度甚快的人造卫星，可能必须反复校正，才能得到更精确的估算。

### 白昼时间长短及天体可观测时间

天体出现在地平线上的时间$\Delta T_{RS}$，即从上升到下沉所经历的时间，其实就是相当于两倍 $H_0$ 的时间。如果天体是指太阳的话，这就是白天的时间或日照时间。对其他天体而言，就是最长可观测的时间 (不考虑曙暮光的影响的话)。

$$\begin{align} \Delta T_{RS} &= 2 H_0 / R_0 \times {24^h} && \text{= twice the time for } H_0 \\ <pre> &= 24^h && \text{if} \cos H_0 < -1 (\approx \tan \phi \cdot tan \delta > +1) \text{(never set)} \\ &= 0^h && \text{if} \cos H_0 > +1 (\approx \tan \phi \cdot tan \delta < -1) \text{(never rise)} \\ </pre> \end{align}$$

### 天体出没的方位计算

天体出没的方位角，显然只跟天体所在的赤纬平行圈及观测地纬度有关，与出没时间无关。所有赤纬相同的天体都在同一天球赤纬平行圈上，该平行圈与地平线交于相同的两点，其方位即天体出或没时的方位。给定出没时的天体高度角$a_0$ 及观测地纬度 $\phi$，假设$A_{S0}$ 及 $A_{N0}$ 分别为对应的南方位角及北方位角，则该方位角可计算如下 (如果有出没状况的话)：

$$\begin{align} \sin \delta &= - \cos \phi \cdot \cos a_0 \cdot \cos A_{S0} + \sin \phi \cdot \sin a_0 &&(\triangleq Z_e^0) \\ \Rightarrow \cos A_{S0} &= \frac{\sin \delta - \sin \phi \cdot \sin a_0}{- \cos \phi \cdot \cos a_0} <pre> && \text{(if } a_0 \ne 0 \text{)} \\ &= \frac{\sin \delta}{- \cos \phi} && \text{(if } a_0 = 0 \text{)} \\ </pre> \text{Let } A_{S0} &= \arccos (\frac{\sin \delta - \sin \phi \cdot \sin a_0}{- \cos \phi \cdot \cos a_0}) &&\text{if } cos H_0 \in [-1,+1], \text{has rise/set} \\ \Rightarrow A_{S0R} &= -A_{S0} \equiv 360^\circ -A_{S0} && H_0 \in [-0,-180] \text{ (South Azimuth for Rise)}\\ <pre> A_{S0S} &= +A_{S0} && H_0 \in [+0,+180] \text{ (South Azimuth for Set)}\\ </pre> \text{and, } A_{N0} &= A_{S0} + 180^\circ && \text{(North Azimuth)}\\ \end{align}$$

另外, 也可以直接由 $A_N$ 的公式, 求解日出日落时的北方位角,

$$\begin{align} \sin \delta &= \cos \phi \cdot \cos a_0 \cdot \cos A_{N0} + \sin \phi \cdot \sin a_0 &&(\triangleq Z_{eN}^0)\\ \Rightarrow \cos A_{N0} &= \frac{\sin \delta - \sin \phi \cdot \sin a_0}{\cos \phi \cdot \cos a_0} <pre> && \text{(if } a_0 \ne 0 \text{)} \\ &= \frac{\sin \delta}{\cos \phi} && \text{(if } a_0 = 0 \text{)} \\ </pre> \text{Let } A_{N0} &= \arccos (\frac{\sin \delta - \sin \phi \cdot \sin a_0}{\cos \phi \cdot \cos a_0}) &&\text{if } cos H_0 \in [-1,+1], \text{has rise/set} \\ \Rightarrow A_{N0R} &= +A_{N0} && H_0 \in [-0,-180] \text{ (North Azimuth for Rise)}\\ <pre> A_{N0S} &= -A_{N0} \equiv 360^\circ -A_{N0} && H_0 \in [+0,+180] \text{ (North Azimuth for Set)}\\ </pre> \text{and, } A_{S0} &= A_{N0} - 180^\circ && \text{(South Azimuth)}\\ \end{align}$$

## 天体导航截距法

以上，$a_0 \ne 0$ 的公式，不只可以求解日升日落(星升星落)(即 $a_0 \approx 0$) 的状况，也可以求一般状况下的天体高度及方位角。

这时常应用在天文航海或天体导航 (Celestial Navigation) 中的截距法 (Intercept Method)。在此法中，领航员为了确定自身的经纬度，必须计算在某个假设的地理位置 (AP, Assumed Position) 上，导航天体会被观测到的计算高度 (通常记为 $Hc$, 相当于公式中的 $a_0$) 及方位角 (北方位角通常记为 $Zn$, 相当于公式中的 $A_{N0}$)，再与实际观测到的高度角 (通常记为 $Ho$) 比较，来决定应该将 AP 往天体的地理位置 (GP, Geographic Position, 即天体在地球表面的星下点位置) 方向前进或后退若干海里，以得到航行器本身实际的经纬度。

如果观测到的高度角大于在 AP 的计算高度 ($H_o > H_c$)，代表航行器比假设位置更靠近天体。这就好像面对远方导航的灯塔(天体)时，越靠近灯塔，所测量到的塔顶高度角越大。在此情况下，就应把 AP 的座标点，沿计算方位角 Zn 的方向，往天体(GP)方向推进，以推得航行器本身的位置。反之，若 $H_o < H_c$，就应把 AP 的座标往 Zn 的相反方向后退，远离天体，来推得航行器本身的位置。这种直观的位置修正法则，一般简记为 HoMoTo 法则 (if HO is MOre than Hc, move AP TOward GP for a fix.)

以上所选的 AP 通常是利用其他航位推测法 (如航速及水流/风的速度) 所获得的大略位置，故与实际位置所推算的导航天体方位角及高度角不会相差太多。但透过星体导航，可以得到更精确的位置，因为星体的位置可以精密推算得到，变成所有航行器都可以参考的 '灯塔'。至于 AP 往前推进(或后退)的距离，称为截距距离 (intercept distance)，可以由 $(H_o - H_c) \times 1 nm/arcmin$ 推得。这是因为观测地与 GP 的角距离为 $90^\circ - H_o$, 等于天体的天顶距 (ZD, Zenith Distance)。所以，观测地与 AP 的角距离为 $H_o - H_c$。而 1 海里 (nautical mile, nm) 的定义为地表航行 1 分角的平均距离 (约 1.852 km)。故可换算截距距离为高度角差距乘以每一分角度一海里(或每一度60海里)。

### 恒星追踪仪与弹道导弹导航

火箭、人造卫星、弹道导弹、航天飞机、太空船也可以用明亮的恒星执行导航任务。执行此类导航的装置通常称为恒星追踪仪 (Star Tracker)，或恒星追踪器、跟星仪、星象仪、星光探测器等等。多数的恒星追踪仪内部存有已知位置的亮星赤经赤纬数据库。航行途中，追踪仪透过一个或一个以上的相机镜头或望远镜获取视野内的星空影像，并将所拍摄的影像与数据库里的亮星比对，辨识出视野内的恒星或星座。并从镜头感光器上的恒星亮点与镜头的相对角度，求出飞行器的姿态(altitude)及定位。就像人类从天空辨识到北斗七星及相对高度方位，从而了解所在位置一样。

对于固定轨道的弹道导弹而言，则可预先计算每个预订时刻在预定位置可以观察到的亮星，及其相对于飞行路径的假想地平面的高度角及方位角。并从实际的观测值与计算值的差距，产生错误修正讯号，以修正其飞行轨迹，最终将导弹导引至目的地。其原理类似前述的截距法。但所有修正都由飞行电脑及导航机构自动完成。

在实际运用上，天体导航有时会与其他导航系统结合，截长补短，以提高导航的精确度。例如，恒星追踪仪可能跟惯性导航系统 (INS, Inertial Navigation System) 结合，形成所谓的星光惯性导航系统 (Stellar Inertial Navigation Systems)。

## 太阳的位置

在地平坐标系统中，有好几种方法可以计算太阳的视位置。

完整和精确的计算方法可以参考比利时天文学家简米斯的天文计算（Astronomical Algorithms）

下面是一种简单的近似计算法的例子：

已知：

- 在一年中的日期和当天的时间
- 观测者的地理坐标（经度、纬度）和时区

以下的公式可以算出太阳的赤纬：

- $$\delta = -23.45^\circ \cdot \cos \left(\frac{360^\circ}{365} \cdot \left( N + 10 \right)\right)$$
- 此处的$N$是自1月1日开始的天数。
- 用以下步骤可以计算太阳时角 $H$。此处的真时角是观测者因为地球的自转与太阳之间相对应的角度。
- 令hh:mm为观测者由计时器所得到的时间。
- 将时与分结合成一个变数$T$ = hh + mm/60，单位为时。
- hh:mm是官方（公众）在时区中所使用的时间，与观测者所需要的地方时（真正以太阳的位置定出的时间）是不同的，$T$必须依照经度来修正＋（经度/15－时区），这是时区内的标准时间和观测者在地的真太阳时之间的差异。
- 如果在夏季有使用日光节约时间（或称夏令时），还要从官方时间减一小时，才是当地的标准时。
- 当天的均时差也要加入，由于$T$的单位是时，均时差需要除以60，由分转为时之后才能并入。
- 现在已经可以算出太阳的时角了。事实上这个角度是由下面的算式直接得到：
- $$H =(12 - T)\cdot 15$$
- 由于$T$是以时来计算，而地球每小时转动15度，所以$H$的单位是度。如果要转成径度量，只要成上2π/360就可以了。
- 使用赤道座标转地平座标的公式，由 ($H, \delta$) 计算太阳的高度与方位：($A_S, a$) 或 ($A_N, a$)。
- 这样的讯息，可以用来自动追踪太阳，让以太阳驱动的能源装置，如地面或太空中的太阳能光电模组，能对准太阳光来向，获取最大的日照强度及太阳能。

## 天体的位置

其他移动的天体，如行星、彗星、小行星、月亮、行星的卫星、人造卫星、太空船等，也可以透过解开普勒方程式，求得它们在其轨道面的即时位置，再透过适当的座标转换，将轨道面座标转换到赤道座标，再转换到水平座标。这样就可以预测它们的方位角及高度角，再以人工或自动的方式，加以追踪。(太阳系行星位置计算及行星轨道要素

可参考 NASA 外部链接.)

## 外部链接

- Kstars, Jason Harris, Celestial Coordinate Systems
- 适合Linux/KDE和Windows/OsX的天象仪程式KStars
- Rise and Set of a Celestial Body
- JPL, NASA, Approximate Positions of the Planets
- Celestial Navigation (+Intercept Methods)
- WWII U.S. Army Air Force Training Film - Celestial Navigation