我想将我的UTC时间和经度转换为python中的平均太阳能本地时间。如何转换UTC和经度来表示太阳能当地时间python
输入:
utc = ['2000-08-20 07:15:12.000'] #utc time
lon = [-89.91054415] #longitude
我用astropy.time让我的UTC时间是一个字符串。
我想将我的UTC时间和经度转换为python中的平均太阳能本地时间。如何转换UTC和经度来表示太阳能当地时间python
输入:
utc = ['2000-08-20 07:15:12.000'] #utc time
lon = [-89.91054415] #longitude
我用astropy.time让我的UTC时间是一个字符串。
解释性补充天文年历第三版第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的步骤。
我找到了一个解决方案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'
你如何将经度转换为时间? ƛ符号代表什么? – Rose
ƛ代表经度。由于一个完整的旋转可以被认为是360°或24小时,并且360/24 = 15,所以度数除以15以获得小时数。 –