我想在地图上绘制卫星跟踪图。所以我使用SGP4 1.4和python。输入TLE数据,out outdata不是我想要的。所以我想将输出数据转换为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] >
答案 0 :(得分:1)
我通过添加一些代码解决了这个问题。 在iokit.py'功能下载()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))