pyEphem的RA/Dec和Alt/Azi转换困难

2024-09-30 20:24:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着从alt/azi到RA/Dec,在天空中的一个固定位置寻找一个点,尝试pyEphem。我尝试了几种不同的方法,我得到了一些正确的答案,在几度之内,但我期望更好,我不知道问题在哪里。在

我一直在使用Canopus作为测试用例(我不是特别喜欢星星,所以我不能使用内置目录)。就我而言,我知道

stn = ephem.Observer()
# yalgoo station, wa
stn.long = '116.6806'
stn.lat = '-28.3403'
stn.elevation = 328.0
stn.pressure = 0 # no refraction correction.
stn.epoch = ephem.J2000
stn.date = '2014/12/15 14:32:09' #UTC

查过其他网站告诉我Canopus应该在 azi,alt'138:53:5.1','56:09:52.6'或赤道RA 6h 23m 57.09s/十二月-52度41'44.6“ 但尝试:

^{pr2}$

大约3度。我也试过反过来

ra, dec = stn.radec_of('138:53:5.1', '56:09:52.6')
>>>(6:13:18.52, -49:46:09.5)

我预计6点23分不是6点13分。打开折射校正会有一点不同,但还不够,而且我一直都知道像差和章动的影响也比这个偏移小得多? 接下来,我尝试了手工计算,基于“用计算器计算实际天文学”;因此,12月:

LAT = math.radians(-28.340335)
LON = math.radians(116.680621667)
ALT = math.radians(56.16461)
AZ = math.radians(138.88475)

sinDEC = (math.sin( LAT)*math.sin( ALT) 
        + math.cos( LAT)*math.cos( ALT)*math.cos( AZ) )
DEC = math.asin( sinDEC)
DEC_deg = math.degrees(DEC)
print( 'dec = ', DEC_deg )
>>>('dec = ', -49.776032754148986)

再一次,与《56:09:52.6》完全不同,但与皮耶芬相当接近——所以现在我完全糊涂了!所以现在我怀疑问题出在我的理解上,而不是pyEphem-有人能告诉我正确的方法去做RADEC/ALTAZI转换,为什么事情没有排成一行?!在


Tags: 方法mathcosaltdecralatpyephem
1条回答
网友
1楼 · 发布于 2024-09-30 20:24:30

先做一些注释

  1. 大气散射和观察者与目标之间的相对速度

    使最大误差(近视界)达到0.6度,这与你的误差相差甚远。

  2. 海拔怎么能超过90度?

    您得到了azimutaltitude

  3. 我把你的观察者数据放到我的程序中,结果和你的差不多

    但我用视觉搜索那颗星,而不是把坐标。结果也在RA轴上偏离约3-4度

    RA=6.4h Dec=-52.6deg
    azi=142.4deg alt=53.9deg
    
    < P>内燃机采用C++开普勒方程

    < /LI>

现在有什么问题:

  1. 我的恒星目录可能会被错误地转换

    错误地旋转了一些边缘,但强烈怀疑它是3度。此外,透视变换在距观察者750AU距离处渲染时会添加一些错误。我从来没有测试过南方的天空(从我的地方看不到)。

  2. 我们使用的是不同的地球参考系,然后是您比较的数据

    我发现一些地点,如NASA Horizon使用不同的参考系,与我的观测结果不符。看这里

    在开始的答案是链接到2个不同参考帧的网站,当你比较结果,他们是关闭的。第二个环节与我的观测结果相对应,其余的部分(包括源代码)是基于开普勒方程的太阳系模拟。其他子链接也值得研究。

  3. 我的模拟/数据中可能有一个bug

    我已经引用了这个引擎的数据,它可以部分地隐藏我的观察者位置的任何计算错误,所以在处理上面的所有文本时要考虑到它。

  4. 你可能会使用错误的时间/朱利安日期到恒星时间的转换

    如果你的时间过了,那么角度将不匹配。。。

如何解决?

拿起你的望远镜,设置赤道坐标系/挂载,测量现实中已知(遥远)物体的Ra/Dec Azi/Alt,并与计算出的位置进行比较。只有这样你才能决定哪个值是好是错(对于你正在使用的参考系)。在恒星而不是行星上做这个!!!在不靠近地平线的高空角上做这个!!!在

如何在方位和赤道坐标之间转换

我计算出在日心坐标系中代表地球坐标系(右上角)的变换矩阵Eath作为全球坐标系(左),然后我计算另一个矩阵NEH,代表地球表面(北、东、高/高。。。右下角)。在

coordinate systems

在这之后,只需要矩阵和向量的乘法以及笛卡尔坐标系和球面坐标系之间的转换如下所示:

更深入地了解方位坐标。如果你用简单的等式,就像你的例子,那么你不能解释很多事情。。。地球位置由开普勒方程计算,自转由日自转、章动和岁差组成。在

我使用64位浮点值,可以创建舍入错误,但不是那么高。。。在

我使用几何北极作为观察者的参考(这可能会在极点附近增加一些严重的误差)。在

影响这一点的最大因素是光速,但这解释了近地“移动”的物体,如行星而不是恒星(除了太阳),因为它们的计算位置在一段时间后是可见的。。。例如,太阳与地球的距离是8光分,所以我们看到的是8分钟前的太阳。如果传出函数的数据是geomet如果计算不正确,这可能导致高误差。在

较新的出射器模型使用重力积分代替开普勒,因此它们的数据必须是几何的,然后通过时移校正最终输出。。。在

相关问题 更多 >