관찰자 수평 속성을 조정하면 지구 위성의 상승/정각 시간에는 영향을 미치지 않는 것으로 보입니다. 또한 나는 libastro 코드에서 이것을 발견했습니다 :지구 위성의 수평선
/* we don't implement a minimum horizon altitude cutoff
SiteMinElev = 0;
*/
수평선 컷오프가 구현되지 않은 이유가 있습니까? 예를 들어 위성 표고를 마스킹하는 것이 유용 할 것입니다.
관찰자 수평 속성을 조정하면 지구 위성의 상승/정각 시간에는 영향을 미치지 않는 것으로 보입니다. 또한 나는 libastro 코드에서 이것을 발견했습니다 :지구 위성의 수평선
/* we don't implement a minimum horizon altitude cutoff
SiteMinElev = 0;
*/
수평선 컷오프가 구현되지 않은 이유가 있습니까? 예를 들어 위성 표고를 마스킹하는 것이 유용 할 것입니다.
좋은 소식 : 위성 상승 및 설정은 PyEphem이 지구에 사용하는 수평선을 조절하는 능력이 부족 것을 의미하지 않습니다 libastro
저자의 소스 코드에서 발견 그래서 earthsat.c
주석의 일이 아니다 위성. 그들이 일하는 방법에 대해 궁금하다면 상승 및 설정 루틴은 그의 riset_cir.c
파일에서 찾을 수 있습니다.
나쁜 소식 :보고있는 동작은 PyEphem의 버그입니다! 사실, PyEphem은 지구 위성의 상승 및 기울임 계산을 실행할 때 관찰자의 수평선 설정을 사용하려고 시도하지만 잘못된 위치에서 수평선을 당깁니다. (자세한 내용은 _next_pass()
함수를 _libastro.c
에 참조하십시오.) 관찰자의 지평선을 사용하는 대신 위성에서 마지막으로 compute()
을 호출했을 때의 수평 값을 사용합니다.
나는이 버그를 PyEhem 할 일 목록에 추가 할 것이다. 한편 위성을 sat.compute(observer)
으로 먼저 호출하여 사용하고자하는 수평선 값을 "확인"하고 나서 다음 번 통과 오버 헤드를 묻습니다. 다음은 예입니다
import ephem
iss = ephem.readtle(
'ISS (ZARYA)',
'1 25544U 98067A 12286.88755895 .00013766 00000-0 24141-3 0 4559',
'2 25544 51.6478 256.6034 0017425 159.6565 253.2565 15.50708155796305',
)
boston = ephem.city('Boston')
rising_time = boston.next_pass(iss)[0]
print 'Horizon = 0 rising:', rising_time
boston.horizon = '-5'
iss.compute(boston)
rising_time = boston.next_pass(iss)[0]
print 'Horizon = -5 rising:', rising_time
우리가 순수하게 기하학적 수평선 아래 수평선을 아래로 밀어 이후이 스크립트는 당신에게 이전 상승 시간을 표시해야하고, 실제로 나는 그 답을 얻을; 네가 그렇게한다면 나에게 알려줘!
Horizon = 0 rising: 2012/10/13 05:14:28
Horizon = -5 rising: 2012/10/13 05:12:58
브랜든,이게 정확히 내가 필요했던 것입니다. – user1739051
이 질문은 아마도 패키지 작성자에게 가장 적합 할 것입니다. – Richard
리차드, 우리는 실제적으로 사용자가 여기에서 질문하는 것을 선호합니다. 그런 식으로 응답이 오래 가지 않더라도 커뮤니티가 변경 될 수 있습니다. :) –