나는 시각적으로 위성을 예측하는 앱을 만들고 있습니다. 앱에서 'if'문을 사용하여 위성이 표시되는지 여부를 결정합니다.pyephem next_pass 함수가 다른 결과를 반환합니다.
;
if satellite.neverup is False and satellite.circumpolar is False:
observer.next_pass(satellite)
이 계산은 대부분의 LEO 인공위성에서 잘 작동합니다. 그러나 나는 호기심 많은 결과를 발견했습니다. satellite.compute(observer)
이전에 사용 된 next_pass 함수는 다른 값을 반환합니다.
다음 코드는 결과를 재현합니다.
import ephem
line_0 = '0 SL-3 R/B'
line_1 = '1 12904U 81103B 14252.72400340 .00001812 00000-0 13444-3 0 5754'
line_2 = '2 12904 081.1813 349.2718 0030677 147.5032 212.8569 15.02708918340741'
target = ephem.readtle(line_0,line_1,line_2)
site = ephem.Observer()
site.lon = '151:43:00'
site.lat = '-27:26:00'
site.elevation = 400
site.name = 'test facility'
site.horizon = '40:00:00'
site.date = '2014/9/20 00:29:10'
print ephem.__version__
print site.next_pass(target)
target.compute(site)
print [target.neverup,target.circumpolar]
print site.next_pass(target)
결과는 다음과 같습니다.
3.7.5.3
(2014/9/20 01:55:43, 303:49:09.6, 2014/9/20 00:25:02, 30:44:01.7, 2014/9/20 00:30:10, 164:08:09.1)
[False, False]
(None, None, None, None, None, None)
어떻게이 결과가 변경되는 것을 피할 수 있습니까? 어디서 잘못 되었나요?
미리 감사드립니다.
관련 없음 : x가 거짓 인 경우'x가 아닌'을 사용하십시오 : – jfs