我正在尝试使用pyephem计算卫星位置。
在大多数情况下,它似乎提供了有效的数据。但是,对于约10%的太空轨道TLE,其结果是错误的。例如:
tlelines = [
'0 SCOUT X-4 DEB',
'1 00722U 63053C 18107.73853716 .10519988 29718+0 80827-1 0 9998',
'2 00722 78.3737 228.3264 0048420 261.5483 98.0279 15.81271626581437'
]
sat = ephem.readtle(*tlelines)
now = ephem.now() # 43314.17601851852
sat.compute(now)
print sat.elevation # computed altitude, according to documentation
结果为9.793773380577526e+18
,这绝对是错误的。根据太空轨道,远地点和近地点分别为359公里和294公里。
怎么了?我该如何解决这个问题?
PS。 Python v.2,pyephem v.3.7.6.0
答案 0 :(得分:1)
问题似乎是您的坐标太旧;卫星坐标通常仅在发布后的两周内准确。在这种情况下:
Scanner scan = new Scanner(System.in);
String url;
do{
System.out.println("Please enter your url");
url = scan.nextLine();
}while(!isValidUrl(url));
System.out.println("The Url was successfull"); //executs only if when the conditions is not met
}
您尝试使用的坐标是4个月大:
print(sat._epoch)
如果您尝试使用2018/4/17 17:43:30
之类的值,我认为您会得到一个更合理的数字。