2017-08-08 4 views
2

TAIのJulian Dayをdatetimeに変換しようとしています(逆も同様です)。TAIからJulian Dayを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

を参照してくださいIパラメータscale='tai'Timeオブジェクトの宣言に追加して遊んだが、何も変更されていないようだ。

誰かが不安定なオフセットを説明する方法を見ていますか?

は役に立つだろう - http://docs.astropy.org/en/stable/time/

答えて

3

あなたはTAIとUTCの時間スケールを混合しているように見えます。デフォルト時間scaleastropy.time.Timeで、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) 
+1

ありがとうございます!あなたは「iso」が何であるか説明できますか? –

+1

'.iso'プロパティは[' TimeISO'](http://docs.astropy.org/en/stable/api/astropy.time.TimeISO.html#astropy.time.TimeISO)インスタンスを返します。 – MSeifert