从 TAI 修改儒略日转换为日期时间
Converting from TAI modified Julian Day to Datetime
我正在尝试将 TAI 修改儒略日转换为日期时间(反之亦然)。
我一直在浏览 astropy 的 Time()
文档,我已经接近了:
from astropy.time import Time
constantOffset = 2430000
input1 = 27754.500428240735 # corresponds to 2017-01-01 00:00:00 in TAIMJD
input2 = 27253.500416666669 # corresponds to 2015-08-19 00:00:00 in TAIMJD
t1 = Time(input1 + constantOffset, format='jd')
print(t1.datetime) # 2017-01-01 00:00:37
t2 = Time(input2 + constantOffset, format='jd')
print(t2.datetime) # 2015-08-19 00:00:36
这里出了什么问题是基于年份的偏移量发生变化 - 请参阅 http://maia.usno.navy.mil/ser7/tai-utc.dat
我试过将参数 scale='tai'
添加到 Time
对象的声明中,但这似乎没有任何改变。
有人知道解决不稳定偏移的方法吗?
您似乎在混合使用 TAI 和 UTC 时标。 astropy.time.Time
中的默认时间 scale
是 UTC
,但您输入的是相对于 TAI
的 JD 时间。这是您可能期望的结果:
>>> t1 = Time(input1 + constantOffset, format='jd', scale='tai')
>>> t1_utc = t1.utc
>>> t1_utc.iso
'2017-01-01 00:00:00.000'
>>> t1_utc.datetime
datetime.datetime(2017, 1, 1, 0, 0)
我正在尝试将 TAI 修改儒略日转换为日期时间(反之亦然)。
我一直在浏览 astropy 的 Time()
文档,我已经接近了:
from astropy.time import Time
constantOffset = 2430000
input1 = 27754.500428240735 # corresponds to 2017-01-01 00:00:00 in TAIMJD
input2 = 27253.500416666669 # corresponds to 2015-08-19 00:00:00 in TAIMJD
t1 = Time(input1 + constantOffset, format='jd')
print(t1.datetime) # 2017-01-01 00:00:37
t2 = Time(input2 + constantOffset, format='jd')
print(t2.datetime) # 2015-08-19 00:00:36
这里出了什么问题是基于年份的偏移量发生变化 - 请参阅 http://maia.usno.navy.mil/ser7/tai-utc.dat
我试过将参数 scale='tai'
添加到 Time
对象的声明中,但这似乎没有任何改变。
有人知道解决不稳定偏移的方法吗?
您似乎在混合使用 TAI 和 UTC 时标。 astropy.time.Time
中的默认时间 scale
是 UTC
,但您输入的是相对于 TAI
的 JD 时间。这是您可能期望的结果:
>>> t1 = Time(input1 + constantOffset, format='jd', scale='tai')
>>> t1_utc = t1.utc
>>> t1_utc.iso
'2017-01-01 00:00:00.000'
>>> t1_utc.datetime
datetime.datetime(2017, 1, 1, 0, 0)