求格林威奇平均时间有问题的算法

时间:2013-10-21 17:15:54

标签: physics

我目前已经找到了一个算法来找到我当前位置的朱利安日,但是当使用这个值继续寻找格林威治标准时间时,我会得到一些非常时髦的数字。任何人都可以运行此脚本,并可能确定我的计算出错的地方?感谢。

#1/user/bin/python
import math
from time import gmtime, strftime

#Sidereal Time Program

#Julien Date Converter

seconds = (int(strftime("%S")) * .01)

JD1 = ((367 * (int(strftime("%Y")))) - ((7 * ((int(strftime("%Y")))
      + (((int(strftime("%m"))) + 9) / 12))) / 4)
      + ((275 * (int(strftime("%m")))) / 9) + (int(strftime("%d"))) + 1721013.5
      + ((int(strftime("%I")) + (seconds) + 4) / 24) - 0.5 + 0.5 + 1.46)

JD2 = ((367 * (int(strftime("%Y")))) - ((7 * ((int(strftime("%Y")))
      + (((int(strftime("%m"))) + 9) / 12))) / 4)
      + ((275 * (int(strftime("%m")))) / 9) + (int(strftime("%d"))) + 1721013.5
      + ((int(12) + 4) / 24) - 0.5 + 0.5 - 0.192361555)

H = JD1 - JD2
JD = JD2 + (H / 24)
D1 = JD1 - 2451545.0
D2 = JD2 - 2451545.0
T = D1 / 36525

GMST1 = 6.697374558 + (0.06570982441908 * D2) + (1.00273790935 * H) + (0.000026 * (T * T))

GMST2 = 18.697374558 + (24.06570982441908 * D1)

o =  125.04 - (0.052954 * D1)

L = 280.47 + (0.98565 * D1)

e = 23.4393 - (0.0000004 * D1)

x = 2 * L

sym = (-0.000319 * (math.sin (o))) - (0.000024 * (math.sin (x)))

eqeq = (sym * (math.cos (e)))

GAST1 = GMST1 + eqeq

GAST2 = GMST2 +eqeq

print (JD1)
print (T)
print (GAST1)
print (GAST2)

编辑:以下是我使用的公式:http://aa.usno.navy.mil/faq/docs/GAST.php

1 个答案:

答案 0 :(得分:1)

this似乎是一个可以满足您需求的包。例如,参见here