白晝時間和日出日沒時刻的粗略計算


本文將使用非常理想化的模型粗略地計算白晝時間和正午時刻,並以此算出日出、日沒的時間。


 

怎么算白晝時間?或者說,怎么算白晝時間占一天時間中的比例?算出太陽的周日平行圈(太陽在天球上運動的軌跡)有多大一部分在地平線以上就可以了(忽略太陽一天之內的公轉以及地球自轉的不均勻)。

想要算出這個比例,需要這兩個量:

符號 含義 Why?
\( \delta \) 太陽赤緯(太陽直射點緯度,北緯為正) 夏天晝長,冬天晝短
\( \varphi \) 當地緯度(北緯為正) 北極極晝,南極極夜

 

 

如圖,以北半球冬季為例,把天球、地平線和平行圈畫出來,再作幾條輔助線,通過幾何關系來用 \( \delta \) 和 \( \varphi \) 表示要求的比例:

設天球的球心為 \(O\), 半徑為 \(1\), 平行圈的圓心為 \(O'\), 太陽從 \(A\) 點升起,從 \(B\) 點落下,觀察者不在極點。連接 \(AB\), \(AO\), \(AO'\), \(BO\), \(BO'\).

取 \(AB\) 的中點 \(M\), 連接 \(MO\), \(MO'\). 易知 \( \angle{OAO'} = -\delta \), \( \angle{MOO'} = \varphi \).

設 \( \angle{MO'A} = \theta \), 則所求比例為 \( \frac{2\theta}{360^{\circ}} = \frac{\theta}{180^{\circ}} \).

\( \because OO'\perp 平面 O'AB \)

\( \therefore OO'\perp O'M, OO'\perp O'A \)

\( \therefore O'O = \sin{(-\delta)}, O'A = \cos{(-\delta)} \)

\( \therefore O'M = O'O \cdot \tan{\varphi} = \sin{(-\delta)}\tan{\varphi} \)

\( \therefore \cos{\theta} = \frac{O'M}{O'A} = \frac{\sin{(-\delta)}\tan{\varphi}}{\cos{(-\delta)}} = \tan{(-\delta)}\tan{\varphi} \)

\( \therefore \theta = \arccos{(\tan{(-\delta)}\tan{\varphi})} \)

\( \therefore \frac{\theta}{{180}^{\circ}} = \frac{\arccos{(\tan{(-\delta)}\tan{\varphi})}}{{180}^{\circ}} \)

得到晝長關於 \( \delta \) 和 \( \varphi \) 的表達式:

\( \mathrm{daytime} = \frac{\arccos{(\tan{(-\delta)}\tan{\varphi})}}{{180}^{\circ}} \cdot {24}^{\mathrm{h}} \) \( (\varphi \neq \pm {90}^{\circ}) \)

雖然這個式子是從「北半球冬季」這一種情況推出來的,但也適用於南半球和夏季(代入 \( -\delta \) 和 \( -\varphi \) 容易看出)。

……

那么問題來了:\( \delta \) 怎么求?還得畫個球:

如圖,天球的中心是地球,黃道和赤道相交,設春分點為 \(E\),  秋分點為 \(E'\), 太陽為 \(S\), 黃赤交角為 \( \varepsilon \), 太陽地心黃經為 \( \lambda \).

通過幾何關系用 \( \varepsilon \) 和 \( \lambda \) 表示 \( \delta \):

過 \(S\) 作大圓弧 \(SS'\) 垂直於赤道交赤道於 \(S'\) ( 圖示位罝 ).

跟據球面三角形正弦定理,在球面 \( \triangle{SES'} \) 中,有:

\( \frac{\sin{(-\delta)}}{\sin{\varepsilon}}=\frac{\sin{(-\lambda)}}{\sin{{90}^{\circ}}} \)

\( \sin{\delta} = \sin{\lambda}\sin{\varepsilon} \)

\( \delta = \arcsin{(\sin{\lambda}\sin{\varepsilon})} \)

這個式子也是適用於各種情況的。

……

問題又來了,\( \lambda \) 怎么求?這就不用畫球了,也沒球可畫了。一是可以直接用軌道參數去算,二是可以先搞到各節氣的日期,然后在鄰近的兩個節氣間進行線性插值。

聯立以上各式,可得白晝時間關於緯度和太陽黃經的表達式:

\( \mathrm{daytime} = {24}^{\mathrm{h}}\cdot\frac{\arccos{(\tan{(-\arcsin{(sin{\lambda}sin{\varepsilon})})}\tan{\varphi})}}{{180}^{\circ}} \) \( (\varphi \neq \pm {90}^{\circ}) \)

\( \mathrm{daytime} = {24}^{\mathrm{h}}\cdot(1-\frac{\arccos{(\tan{(\arcsin{(sin{\lambda}sin{\varepsilon})})}\tan{\varphi})}}{{180}^{\circ}}) \) \( (\varphi \neq \pm {90}^{\circ}) \)

\( \mathrm{daytime} = {24}^{\mathrm{h}}\cdot(1-\frac{\arccos{\frac{\sin{\lambda}\sin{\varepsilon}\tan{\varphi}}{\sqrt{1-\sin^2{\lambda}\sin^2{\varepsilon}}}}}{{180}^{\circ}}) \) \( (\varphi \neq \pm {90}^{\circ}) \)

北緯 \( {36.5}^{\circ} \) 的白晝時間關於太陽黃經的變化情況如下圖:


 看起來特別像正弦曲線,嘗試擬合一下:

\( \mathrm{daytime} \approx {12}^{\mathrm{h}} \cdot [(1-\frac{\arccos{(\tan{\varepsilon}\tan{\varphi})}}{{90}^{\circ}})\cdot sin{\lambda} + 1] \) \( (\varphi \neq \pm {90}^{\circ}) \)

看看誤差:

最大誤差 \( \pm 6 \mathrm{min} \), 效果比較一般,表達式也沒簡化多少,看來還是得用原式。


有了白晝時間,日出日沒時刻可用下面兩式計算:

\( T_{sunrise} = T_{noon} - \frac{\mathrm{daytime}}{2} \) (1)

\( T_{sunset} = T_{noon} + \frac{\mathrm{daytime}}{2} \) (2)

問題又來了,正午 \( T_{noon} \) 不一定是 12:00:

首先,區時和地方時之間有可能會差不少,這會導致正午時刻偏離 12:00.

其次,由於太陽運動的不均勻(均時差),正午時刻也會偏離 12:00.

這兩個效應會疊加。第一個問題好解決,只要知道時區中央經線的經度和當地的經度,就萬事大吉了。第二個就不大好算了。《天文算法》中給出了一個近似公式(我把高階項都扔掉了):

\( E' = T_{mean}-T_{true} = 4 \cdot [ \tan^2{(\frac{\varepsilon}{2})}\cdot \sin{2L}+2e\cdot \sin{(L-\varpi)} ] \) ( E' 的單位為分鍾 )

其中 \(L\) 為太陽平黃經(即平太陽黃經,(假想的)平太陽以一個回歸年為周期在黃道上做勻速圓周運動。可以近似地認為它等於上個春分和今天之間差的天數(或再乘以平太陽的角速度 \( \frac{{360}^{\circ}}{{365.2422}^{\mathrm{d}}} \) )),\(e\) 為地球軌道離心率,\( \varpi \) 為地球近日點(日心)黃經。\(e \approx 0.0167 \) 和 \( \varpi\approx {102.982}^{\circ} \) 在短時間內可看作常數。

作圖(\(E\) 關於 \(L\) 的變化情況):

現在要求正午時間,令 \( T_{true} = 12:00 \), 解得:

\( T_{mean}=12:00+E' \)

補上區時和地方時的偏差,最終得到:

 \( T_{noon}=12:00 + 4^{\mathrm{m}}\cdot(L_{zone}-L_{local}) + 4^{\mathrm{m}} \cdot [ \tan^2{(\frac{\varepsilon}{2})}\cdot \sin{2L}+2e\cdot \sin{(L-\varpi)} ] \)

其中 \( L_{zone} \) 和 \( L_{local} \) 分別為時區中央經線的經度和當地的經度(東經為正)。

至此,大功告成,用 (1) 和 (2) 計算日出日沒就可以了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM