2017-08-08 44 views
2

我試圖從TAI修改的Julian日轉換爲datetime(反之亦然)。從TAI修改的Julian日轉換爲Datetime

我已經經歷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對象的聲明,但這似乎沒有改變任何內容。

有沒有人看到解決不穩定偏移量的方法?

可能是有益的 - http://docs.astropy.org/en/stable/time/

回答

3

它看起來像你混合TAI和UTC時間尺度。 astropy.time.Time中的默認時間scaleUTC,但是您正在以相對於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) 
+1

謝謝!你能解釋一下'iso'是什麼嗎? –

+1

'.iso'屬性只返回['TimeISO'](http://docs.astropy.org/en/stable/api/astropy.time.TimeISO.html#astropy.time.TimeISO)實例。 – MSeifert