我试着从alt/azi到RA/Dec,在一个固定的位置,在天空中寻找一个点,试着找到pyEphem。我尝试了几种不同的方法,在几度之内,我得到了某种正确的答案,但我期待更好的结果,我无法找出问题所在。
我一直在使用Canopus作为测试用例(我没有特别关注stars,所以我不能使用内置目录)。所以就我而言,我知道
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
星宫,查过其他网站告诉我卡诺普斯应该在
azi,alt'138:53:5.1','56:09:52.6'或赤道RA 6h 23m 57.09s/Dec.-52度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。打开折射校正会有一个很小的区别,但还不够,我一直都知道像差和章动的影响也比这个偏移小得多?
作为后续行动,我尝试了基于“实用天文学与计算器”的手工计算;因此对于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”大不相同,但相当接近于毕节-所以现在我完全困惑了!所以现在我怀疑的问题是我的理解,而不是毕节-有人能告诉我正确的方式去做RADEC/ALTAZI转换,为什么事情没有排成一队?!
最佳答案
先说几句话
大气散射与观测者与目标的相对速度
最大误差(接近地平线)达到0.6
度,这远不及你的误差。
高度怎么能超过90度?
您已交换azimut
和altitude
的数据
我把你的观察者数据输入我的程序结果和你的相似
但我在视觉上寻找那颗星而不是放置坐标。结果在RA轴上也有3~4度的脱落。
RA=6.4h Dec=-52.6deg
azi=142.4deg alt=53.9deg
矿用发动机采用C++开普勒方程
现在可能有什么问题:
我的恒星目录可能会被错误地转换
错误地旋转了一些边缘,但强烈怀疑它是3度透视变换也会在渲染到距观察者
750AU
的距离时添加一些错误。我从未测试过南方天空(从我的地方看不到)。我们使用的是不同的地球参考系
我发现像NASA地平线这样的一些地点使用不同的参考坐标系,这与我的观测结果不符。看这里
calculate the time when the sun is X degrees below/above the Horizon
在答案的开始是链接到2个不同参考帧的网站,当你比较他们关闭的结果。第二个环节与矿井观测相对应,其余部分(包括源代码)处理开普勒基于方程的太阳系模拟。其他子链接也值得研究。
我的模拟/数据可能有漏洞
我已经引用了这个引擎的数据,它可以部分地隐藏我的观察者位置上的任何计算错误,所以请记住处理上面的所有文本。
你可以使用错误的时间/儒略日期到恒星的时间转换
如果你的时间过了,那么角度就不匹配了。。。
如何解决这个问题?
拿起你的望远镜,设置等距坐标系/安装到它上面,测量现实中已知(遥远)物体的
Ra/Dec Azi/Alt
,并与计算的位置进行比较。只有这样你才能决定哪个值是好的还是错的(对于你正在使用的参考框架)。在恒星而不是行星上做这个!!! 在不靠近地平线的高空角度进行此操作!!!方位坐标与等距坐标的转换
我计算了在日心坐标系中表示地球坐标系(右上)的变换矩阵
Eath
作为全球坐标系(左),然后计算了另一个表示地球表面(北、东、高/高)上的观察者的矩阵NEH
。。。右下角)。在这之后,这只是一个矩阵和向量乘法的问题,笛卡尔坐标系和球面坐标系之间的转换,请看这里:
Representing Points on a Circular Radar Math approach
以便更深入地了解方位坐标。如果你只是在你的例子中使用简单的等式,那么你就不能解释很多事情。。。地球位置由开普勒方程计算,自转由日自转、章动和进动给出。
我使用64位浮点值,它可以创建舍入错误,但不是那么高。。。
我使用几何北极作为观测参考(这可能会在北极附近增加一些严重的误差)。
影响这一点的最大因素是光速,但这也解释了近地天体的运动,比如行星,而不是恒星(太阳除外),因为它们的计算位置在一段时间后是可见的。。。例如,太阳与地球的距离约为8光分钟,所以我们可以看到太阳在8分钟前的位置。如果影响的数据仅是几何数据(不考虑这一点),那么如果计算不当,这可能会导致高误差。
较新的效应模型使用重力积分而不是开普勒,因此它们的数据必须是几何的,最终的输出然后由时移修正。。。