gpt4 book ai didi

python - 使用天空场的 ECEF 到 J2000

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

假设我有(ECEF)某个物体在某个时间的纬度、经度和到地球的距离。我需要获取它的 J2000 坐标。我正在做的是

import skyfield.api
planets = skyfield.api.load('de421.bsp')
earth = planets['earth']
ts = skyfield.api.load.timescale()
sat = earth + skyfield.api.Topos(latitude_degrees=latitude, longitude_degrees=longitude)
obs = earth.at(ts.utc(time)).observe(sat)
x, y, z = obs.km

然后,我将标准化[x, y, z]并将其乘以到地球的距离。这里涉及两个问题:

  1. 这样做正确吗?
  2. 有没有更快的方法而不加载“de421.bsp”?

最佳答案

结果应该是准确的,但确实有一个更简单的方法——你应该问的预感在这里确实是正确的!尝试阅读地球卫星文档的“生成卫星位置”部分:

http://rhodesmill.org/skyfield/earth-satellites.html#generating-a-satellite-position

我想你会发现你可以做这样的事情来达到相同的结果:

sat = skyfield.api.Topos(latitude_degrees=latitude, longitude_degrees=longitude)
x, y, z = sat.at(ts.utc(time)).position.km

但是我不确定您的代码到底是什么样子,因为我在代码中没有看到您所说的到地球的距离,并且您的代码引用了 sa 变量不以其他方式使用(也许您的意思是 sat?) - 但希望文档能让您动起来!

关于python - 使用天空场的 ECEF 到 J2000,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45035936/

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