Python 如何将UTC和经度转换为平均太阳当地时间

Python 如何将UTC和经度转换为平均太阳当地时间,python,python-2.7,datetime,utc,astropy,Python,Python 2.7,Datetime,Utc,Astropy,我正在尝试将UTC时间和经度转换为python中的平均太阳本地时间 投入: utc = ['2000-08-20 07:15:12.000'] #utc time lon = [-89.91054415] #longitude 我使用astropy.time来获取utc时间,它是一个字符串。我使用pyephem找到了一个解决方案。如果考虑到夏令时,它也会考虑到夏令时 from ephem import Sun, Observer, pi, hours dt =

我正在尝试将UTC时间和经度转换为python中的平均太阳本地时间

投入:

utc = ['2000-08-20 07:15:12.000']  #utc time

lon = [-89.91054415]               #longitude
我使用astropy.time来获取utc时间,它是一个字符串。

我使用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'
我用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'
《天文年鉴》第三版第239页的解释性补充说明指出,当地平均太阳时LMSoT与UT和观测者的东经之间的关系为:

LMSoT=UT+ƛ

UT通常指UT1。要将UTC转换为UT1,请参阅

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的步骤。

天文年鉴第3版的解释性补充。第239页指出,当地平均太阳时LMSoT与UT和观察者的东经相关

LMSoT=UT+ƛ

UT通常指UT1。要将UTC转换为UT1,请参阅

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秒内,因此如果不需要精确到秒,则可以跳过查找UT1-UTC的步骤。

如何将经度转换为时间?符号代表什么?代表经度。由于一次完整的旋转可以被视为360°或24小时,并且360/24=15,因此度数除以15即可获得小时数。无法编辑您的帖子,因为正确的“经度”和“纬度”是不够的。波士顿的经度实际上是-71°03',而它的纬度是42°36'。你能做到吗?你怎么把经度转换成时间?符号代表什么?代表经度。由于一次完整的旋转可以被视为360°或24小时,并且360/24=15,因此度数除以15即可获得小时数。无法编辑您的帖子,因为正确的“经度”和“纬度”是不够的。波士顿的经度实际上是-71°03',而它的纬度是42°36'。你能做吗?