基本概念
太阳时(Solar Time)
基于太阳在太阳正午时穿过天空的视角运动的时间太阳穿过观察者的子午线的时间。
太阳时是用于所有太阳角度关系的时间;它与本地时间不一致。有必要通过两次修正将标准时间(本地时间)转换为太阳时。首先,对观察者的子午线(经度)和当地标准时间所依据的子午线之间的经度差进行不断的修正。太阳横穿经度1°需要4分钟。第二个修正来自时间方程,它考虑了地球自转率的扰动,这些扰动影响了太阳穿过观察者子午线的时间。太阳时间和标准时间的分钟差是
太阳时 - 标准时 = 4(Lst - Lloc)+ E (min)
经度每相差1°,在时间上就相差4min。
standard_time —— 当地时间(当地所用时区的时间);
Lst —— the standard meridian for the local time zone;当地时区(GMT)的标准子午线
(寻找局部标准子午线,将局部标准时钟时间与格林尼治标准时间的时差乘以15。北京时间,Lst = -120°)
标准时区(GMT,格林尼治标准时间),全球划分东西十二区,北京是东八区,伦敦是0区,纽约是西五区。北京的Lst=(-8-0)×15°=-120°,纽约的Lst=(5-0)×15°=75°
Lloc —— the longitude of the location in question, and longitudes are in degrees west, that is, 0° < L < 360°;当地经度,经度单位为西度,即0°<L<360°。
所在地点在东半球取负号,西半球取正号。同样东区取负号,西区取正号。
The parameter E —— the equation of time (in minutes) from Figure 1.5.1 or Equation 1.5.3。参数E是图1.5.1中的时间方程(以分钟为单位)或方程1.5.36
所有方程都使用度,而不是弧度
B is found from Equation 1.4.2
n is the day of the year(n是一年里的第几天). Thus 1 ≤ n ≤ 365.
【请注意时间单位】:标准子午线的时间和位移方程均以分钟为单位,并且夏令时和标准时间之间存在60分钟的差异。时间通常以小时和分钟为单位。应用修正时必须小心,总修正时间可能超过60分钟。
太阳时例题
代码:
#太阳时
#以美国 威斯康星州 麦迪逊(Madison , Wisconsin)为例
#威斯康星州 麦迪逊位于89°23' W, 43°05' N。西6区
from sympy import *
L_loc = 89.4 #当地经度,东经度取负号,西经度取正号
L_st = (6-0)*15 #局部标准时钟时间与格林尼治标准时间的时差乘以15
month = 2
day = 3
#n()是一年里的第几天
def n():
d_num = 0
for m in range(1,