在Python中获取地球上某个位置的J2000 XYZ坐标

时间:2012-08-14 17:29:30

标签: python coordinate-transformation astronomy pyephem

编辑:刚发现我需要将地球上某个位置的纬度,经度和海拔转换为J2000坐标,与ra / dec或月亮无关。非常遗憾。你的答案确实给了我很多见解。请参阅下面的编辑问题。

问题:如何将纬度,经度和海拔转换为J2000坐标(XYZ)。在ephem中是否存在转换?我检查了文档,但我找不到我需要的东西(或者由于我在这个领域缺乏知识而可能忽略了一些东西)。感谢

** * ** * ** * 的** * ** * ** OLD(忽视) ** * ** * ** * ** * ** * ***

我在右升天(RA)和赤纬(Dec)中有月亮位置,我想将它们转换为X Y Z坐标。是否有内置的PyEphem功能?还有,背后的数学是什么?感谢。

编辑:我正在使用J2000坐标系(我认为这是赤道仪,这是我第一次使用天文学)。我有距离月球的距离。 ra / dec值已经在J2000(赤道)坐标中。

X指向北方

Y指向西方

Z指向天空

1 个答案:

答案 0 :(得分:0)

我建议您查看PyEphem documentationcoordinate conversion

基本上,PyEphem只处理三个坐标系 - 赤道,黄道和银河系 - 每个坐标系由两个角度和一个时期(极地进展的调整偏移)定义。

根据您的坐标方案的样子,您应该能够使用三角函数转换为如果您还有对象的距离。

编辑:您的“X-Y-Z”坐标似乎是黄道坐标左侧。

from ephem import Equatorial, Ecliptic, degree

def convert_equatorial_to_XYZ(ra, dec, dist=1.0, epoch='2000'):
    """
    Given
        ra     right ascension (in hours)
        dec    declination     (in degrees)
        dist   distance        (optional, defaults to 1.0)
        epoch  epoch           (optional, assumes J2000)
    Return
        degrees North, degrees West, distance
    """
    eq = Equatorial(ra, dec, epoch=epoch)
    ec = Ecliptic(eq)
    return ec.lat/degree, 360.0 - ec.lon/degree, dist