gpt4 book ai didi

python - 将方向(矢量)转换为 R.A.和 12 月在 Skyfield

转载 作者:太空宇宙 更新时间:2023-11-03 16:41:30 25 4
gpt4 key购买 nike

Skyfield内,如果我有一个来自地球中心的向量 (x, y, z),我如何将其反向转换为“天球”上的点(即赤经和赤纬)?

出于示例目的,假设我在围绕地球的望远镜轨道上有几个点,并且我想计算轨道法线方向的精确 RA 和 Dec - 无论什么情况原因。

这里可以忽略像差和引力等影响 - 我只是想将 ICRF 中的方向转换为 RA 和 Dec。

伪代码:

from skyfield.api import load
import numpy as np

eph = load('de421.bsp')
ts = load.timescale()
now = ts.now()

vec = np.array([3141, 2718, 5820], dtype=float)
nvec = vec / np.sqrt((vec**2).sum()) # normalize for the heck of it

earth = eph['earth']
evec = earth.at(now).vector(vec) # pseudocode

print "It's pointing toward: ", evec.radec() # pseudocode

最佳答案

令人高兴的是,将 ICRF 中的方向矢量转换为赤经和赤纬完全独立于地球或其他任何位置的位置 - 这个问题只涉及一些 x,y,z 坐标如何表示为极坐标,也就是说这是一道几何快速题。

使用 Skyfield:

from skyfield.positionlib import ICRF

vec = ICRF([3141, 2718, 5820])
ra, dec, distance = vec.radec()
print(ra)
print(dec)

哪些输出:

02h 43m 28.94s
+54deg 29' 04.7"

这甚至可以避免手动导入 NumPy,因为 ICRF 类会自动检测是否已传递 Python 列表,并自动将其转换为 NumPy 数组。

关于python - 将方向(矢量)转换为 R.A.和 12 月在 Skyfield,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36740731/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com