4

我发现当我将 (Alt, Az) 转换为 (Ra, Dec) 然后再使用 PyEphem 时,我没有得到我开始的内容。下面是一个简单的例子。

import ephem
print ephem.__version__
# '3.7.3.4'

gbt = ephem.Observer()
gbt.long = '-79:50:23.4'
gbt.lat = '38:25:59.23'
gbt.pressure = 0 # no refraction correction.
gbt.epoch = ephem.J2000
# Set the date to the epoch so there is nothing changing.
gbt.date = '2000/01/01 12:00:00'

# Should get the north pole right?
ra, dec = gbt.radec_of(0, '38:25:59.23')
# Not the north pole... error might be abberation.
print dec
# 89:59:30.5

# Now check internal consistancy by reversing the calculation.
pole = ephem.FixedBody()
pole._ra = ra
pole._dec = dec
pole._epoch = ephem.J2000
pole.compute(gbt)
# Should get what I started with right?
alt = pole.alt
# Not what I started with... error unknown.
print alt
# 38:26:26.7

正如评论中所指出的,虽然 30 英寸超过了维基百科规定的 20 英寸的最大效果,但没有准确地找到北极可能只是恒星像差。

当我做反向计算时,我没有得到同样的结果,这让我很困惑。有什么建议么?

4

2 回答 2

3

由于畸变章动,您得到的结果是关闭的。如果您要自己编译 PyEphem 并注释掉第 271 和 272 行,circum.h那么您会发现您得到的结果正是您所期望的——通过这些编辑,代码将如下所示:

    /* correct EOD equatoreal for nutation/aberation to form apparent 
     * geocentric
     */
    /* nut_eq(mjed, &ra, &dec); */
    /* ab_eq(mjed, lsn, &ra, &dec); */
    op->s_gaera = ra;
    op->s_gaedec = dec;

当您要求 PyEphem 从观察到的 RA“倒退”并减速到它们后面的天空位置时,它只会反转折射(您已经关闭)和进动来生成它的答案。

为什么会停在那里?为什么它不尝试扭​​转章动和畸变?(除了实际原因:这些数量是通过昂贵的多项式估计的,不能轻易反转!)

它不尝试对章动和畸变进行反向补偿的原因是它不知道位于 RA 和 dec 处的对象的范围。例如,如果您因为看到一颗卫星从头顶经过而询问 RA 和 dec,那么像差将是无关紧要的——地球卫星在与地球相同的相对论框架中运行——而章动也无关紧要,因为你不会对地球“理想”极点的位置感兴趣——你会对在你抬头观察卫星从头顶经过的特定夜晚极点指向的位置感兴趣。

因此,在不知道你看到的物体是地球卫星、月球还是太阳系不同相对论框架中的行星,或者更远的东西的情况下,“libastro”图书馆做了最简单的事情并停在那里,而不是用甚至可能不适用于您的情况的反向效果来混淆答案。不过,当我接近 PyEphem 的下一个版本时,我会记住这一点,并考虑多种radec_of()技术是否不合适。

于 2012-09-19T01:10:57.177 回答
0

我的版本是4.1。我刚刚测试了代码,得到了相同的结果。

alt:38:26:26.7

然后我将输入 alt 角调整到远离杆子 10' 处。然后它给出了更好的结果。

ra, dec = gbt.radec_of(0, '38:35:59.23')
alt: 38:35:59.2

也许在杆位附近,精度自然下降。而当它远离极点时,精度恢复正常。

于 2021-10-18T11:41:51.907 回答