假设我在某一时刻有一个物体的纬度、经度和距离。我需要得到它的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]
归一化并乘以它到地球的距离。其中涉及两个问题:
发布于 2017-07-12 03:05:54
结果应该是准确的,但是确实有一个更简单的方法--你应该问的直觉在这里确实是正确的!试着阅读地球卫星文件中的“生成卫星位置”一节:
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
?) --但是希望文档能够帮助您移动!
https://stackoverflow.com/questions/45035936
复制相似问题