0

我目前有一个算法可以为我当前的位置找到儒略日,但是当使用这个值来继续寻找格林威治平均恒星时时,我得到了一些非常时髦的数字。任何人都可以运行此脚本并确定我的计算出错的地方吗?谢谢。

#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

4

1 回答 1

1

看来是一个可以满足您需求的软件包。参见,例如,here

于 2013-10-22T00:03:49.243 回答