python - PyEphem:RA 和分离问题
问题描述
我正在尝试使用 PyEphem 天文学库,并尝试重新创建/理解那里的一些基本计算。
有一个称为分离的函数,给定两个行星和一个日期/时间,它计算这两个行星之间相对于它们在平面中的“x”投影的分离(角度)。
所以对于 2018/1/1 行星水星和火星,我们有:
import ephem
import math
mercury = ephem.Mercury('2018/1/1')
mars = ephem.Mars('2018/1/1')
s1 = ephem.separation(mercury, mars)
print(math.degrees(s1))
哪个返回
33.792384499568264
但是如果我想在没有分离函数的情况下计算这个,那么计算就像 1 的“赤经”减去另一个的“赤经”一样简单:
math.degrees(mercury.ra) - math.degrees(mars.ra)
哪个返回
35.114532008671574
为什么角度不一样?根据 PyEphem 的说法,由于我不包括观察者的纬度和经度,因此所有计算都应该以地为中心。
是否有人熟悉 PyEphem 背后的计算,或者另一个具有内置星历表的库,可以产生一致的分离结果?
解决方案
好问题!您将需要查阅有关球面三角学的教科书。正如你不能仅仅从它们的经度预测两个地点之间的英里数——因为它们可能都在赤道上并且相距很远,或者靠近北极并且彼此相距几英尺——所以你无法预测仅从赤经(=“天经”)分离两个物体,但必须添加(a)两个物体的偏角,以及(b)使用计算球体上两个位置之间的弧线的特殊公式沿着一个大圆圈路线。
推荐阅读
- javascript - 我正在使用 `react-i18next` 进行翻译,我需要为字符串的某个部分赋予样式,我该怎么做?
- java - 随机 nextInt() 作为 For 循环语句产生预期随机值的一半
- javascript - 有什么办法可以缩短这个 jQuery 代码?
- c# - 如何在 Shader 图形的自定义函数中使用 TEXCOORD0?
- fluent-assertions - FluentAssertions Should().BeOfType() 还是派生类型?
- tsql - 用光标停留在 SQL 上的 SP
- json - Spring Integration ObjectToJsonTransformer 和响应中的标头传播
- python - 检查 pandas 字符串列是否包含多个单词,以任何顺序
- java - springboot 中的 Grabfood 集成
- python - 将一个 df 的值与另一个 Pandas 的第一个值连接和比较