python - 如何使用 skyfied 将 SGP4 TEME 坐标转换为 ECEF?

标签 python skyfield sgp4

我想在 map 上绘制卫星跟踪。所以我将 SGP4 1.4 与 python 一起使用。输入 TLE 数据,但输出数据不是我想要的。所以我想把输出数据转换成ECEF数据,得到经纬度。

我知道 skyfied 可以将 TEME 转换为 ECEF,但我不知道如何使用它。

https://github.com/skyfielders/python-skyfield/blob/master/skyfield/sgp4lib.py

而我使用skyfield遇到了错误:

from skyfield.api import load
ts=load.timescale()

错误是:

File "D:\Anaconda2\lib\site-packages\skyfield\iokit.py", line 213, in timescale
    data = self('deltat.data')

File "D:\Anaconda2\lib\site-packages\skyfield\iokit.py", line 166, in __call__
    download(url, path, self.verbose)

File "D:\Anaconda2\lib\site-packages\skyfield\iokit.py", line 329, in download
    raise IOError('cannot get {0} because {1}'.format(url, e))

IOError: cannot get http://maia.usno.navy.mil/ser7/deltat.data because <urlopen error [Errno 10060] >

最佳答案

我已经通过添加一些代码解决了这个问题。 在 iokit.py 'function download() 335 行

 try:
    print (url)  #original

    try:
        connection = urlopen(url)
    except:
       import urllib2
       user_agent ='"Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 Safari/537.36"' #cxh
       headers = { 'User-Agent' : user_agent }
       proxy = urllib2.ProxyHandler({}) 
       opener = urllib2.build_opener(proxy) 
       urllib2.install_opener(opener) 
       req ,= urllib2.Request(url, headers = headers) 
       response = urllib2.urlopen(url) 
       connection= response
       print ('get data successfully')

except Exception as e:
    raise IOError('cannot get {0} because {1}'.format(url, e))

关于python - 如何使用 skyfied 将 SGP4 TEME 坐标转换为 ECEF?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40216183/

相关文章:

astronomy - 使用 PyEphem 在世界地图上获取太阳的纬度和经度

python - sgp4 轨道计算中的单位

Java代码在android上给出了不同的结果

Python - 函数返回问题

python - 用 python 抓取 digg rss 提要

python - 如何使用雪球的加泰罗尼亚语词干分析器?

python - 创建 pygame.Color 有时会抛出 ValueError : invalid color argument

python - 为什么 scipy.optimize.minimize(默认)报告成功而不用 Skyfield 移动?

python - Skyfield 中地球的形状似乎不对 - 我的 python 正确吗?