2017-10-19 119 views

回答

0

解释性补充天文年历第三版第239所指出,地方平均太阳时,LMSoT,由

与UT和观察者的东经LMSoT = UT +ƛ

UT通常认为是指UT1。要将UTC转换为UT1,请参阅公告A https://www.iers.org/IERS/EN/DataProducts/EarthOrientationData/eop.html

对于2016/08/27 UT1 - UTC = -0.243031。原始的海报只能工作到毫秒,所以到-0.243。 2016/08/27 19:19:00.000 UTC = 19:18:59.757 UT1。

波士顿纬度,-71.03°,转换为时间,= -4ħ44米7.200小号

波士顿LMSoT = 19:18:59.757 - 4:44:7.2000 = 14:34:52.557

原始海报可以简化程序,具体取决于所需的实际精度。尤其是,UTC始终在UT1的0.9 s内,因此如果不需要精确到秒,则可以跳过查找UT1 - UTC的步骤。

+0

你如何将经度转换为时间? ƛ符号代表什么? – Rose

+0

ƛ代表经度。由于一个完整的旋转可以被认为是360°或24小时,并且360/24 = 15,所以度数除以15以获得小时数。 –

0

我找到了一个解决方案here使用pyephem。如果这是一个问题,它会考虑夏令时。

from ephem import Sun, Observer, pi, hours 

dt = '2016/08/27 19:19' 

sun = Sun() 
sun.compute(dt) 

boston = Observer() 
boston.lat = '42.37' 
boston.lon = '-71.03' 
boston.date = dt 
ra, dec = boston.radec_of('0', '-90') 

print 'Sun right ascension:', sun.ra 
print 'Boston nadir right ascension:', ra 
print 'Solar time:', hours((ra - sun.ra) % (2 * pi)), 'hours'