我试图从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
Stellarium,与其他网站核实告诉我Canopus应该在 azi,alt' 138:53:5.1',' 56:09:52.6'或在赤道RA 6h 23m 57.09s / Dec. -52deg 41' 44.6" 但是尝试:
cano = ephem.FixedBody()
cano._ra = '6:23:57.1'
cano._dec = '-52:41:44.0'
cano._epoch = ephem.J2000
cano.compute( stn)
print( cano.az, cano.alt)
>>>(53:22:44.0, 142:08:03.0)
大约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。开启折射校正会产生一些小的差异,但还不够,而且我总是理解像差和章动也比这个偏差小得多? 作为后续行动,我已经尝试过手动计算,基于实用天文学与您的计算器&#39 ;;所以对于dec:
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相当接近 - 所以现在我彻底搞糊涂了!所以现在我怀疑问题是我的理解,而不是pyEphem - 有人可以告诉我关于RADEC / ALTAZI转换的正确方法,以及为什么事情没有排队?!
答案 0 :(得分:1)
首先注意一些
大气散射和观察者与物体之间的相对速度
最大误差(近地平线)最高0.6
度,这远不及你的错误。
海拔如何超过90度?
您获得了azimut
和altitude
我将您的观察员数据放入我的程序中,结果与您的相似
但我在视觉上搜索那颗星而不是放置坐标。在 RA 轴
中,结果也约为3-4度RA=6.4h Dec=-52.6deg
azi=142.4deg alt=53.9deg
我的引擎是C ++,使用Kepler方程式
现在可能出现了什么问题:
我的恒星目录可能被错误转换
错误地旋转了一些余量,但强烈怀疑它是3度。透视变换也可以在距观察者750AU
距离渲染时添加一些错误。我从未测试过南方的天空(从我的地方看不到)。
我们使用不同的地球参考框架,然后使用您比较的数据
我发现像 NASA Horizon 这样的网站使用不同的参考框架,这与我的观察结果不符。看这里
在答案开始时,是指在比较结果时,链接到具有不同参考帧的2个站点。第二个链接与矿井观测相对应,其余的正在处理(包括源代码)和基于开普勒方程的太阳系统模拟。其他子链接也值得研究。
我可能在我的模拟/数据中有错误
我已经引用了这个引擎的数据,它可以部分隐藏来自我的观察者位置的任何计算错误,因此处理所有上面的文本并考虑到它。
您可以使用错误的时间/朱利安日期来进行恒星时间转换
如果你的时间关闭,则角度将不匹配......
如何解决此问题?
拿起你的望远镜,设置等距坐标系统/安装到它并测量实际中已知(远距离)物体的Ra/Dec Azi/Alt
并与计算位置进行比较。只有这样,您才能确定哪个值是好还是错(对于您正在使用的参考系)。在明星而不是星球上这样做!在地平线附近的高海拔角度做这个!!!
如何在方位角和等长坐标之间进行转换
我计算在日心坐标系中表示地球坐标系(右上角)的变换矩阵Eath
作为全局坐标系(左)然后我计算另一个表示地球表面观测者的矩阵NEH
(北,东) ,高/海拔......右下)。
在此之后,它只是矩阵和向量乘法的问题,笛卡尔坐标系和球坐标系之间的转换在这里看:
更深入地了解方位角坐标。如果你只使用你的例子中的那个简单的等式,那么你就不会考虑很多事情......地球的位置是由开普勒方程计算出来的,旋转是通过每日轮换,章动和进动来给出的。
我使用64位浮点值,可以创建圆形错误但不会那么高......
我使用几何北极作为观察者参考(这可能会在极点附近增加一些严重错误)。
影响这一点的最重要的事情是光速,但这可以解释近地'移动'物体,如行星而不是星星(太阳除外),因为它们的计算位置在一段时间后可见。 ..例如,太阳 - 地球距离约为8分钟,所以我们看到太阳在8分钟前的位置。如果有效数据仅为几何数据(不考虑这一点),那么如果计算不当,这可能会导致高误差。
较新的有效性模型使用重力积分代替开普勒,因此它们的数据必须是几何的,然后通过时移校正最终输出......