2016-09-12 3 views
0

저는 PyEphem을 꽤 오랫동안 사용 해왔지만 며칠 (어쩌면 몇 주 전)부터 내 스크립트 중 하나가 더 이상 작동하지 않습니다. 스크립트는 다른 것들 중에서도 CALLHORIZONS을 사용하여 궤도 요소로부터 생성하는 소행성의 상승 및 정각을 계산합니다. 나는 PyEphem이 소행성의 고도를 제대로 계산하지 못한다는 것을 알았지 만, 태양에 대한 고도를 적절하게 계산합니다.왜 수동으로 생성 된 객체의 고도를 PyEhem이 계산하지 않습니까?

import ephem 
import numpy 
import callhorizons 

this_target = '3552' 
body = callhorizons.query(this_target) 
body.set_discreteepochs(2415730.0) 
body.get_elements() 
this_target = body.export2pyephem()[0] 

### works fine for the Sun 
#this_target = ephem.Sun() 

date = ephem.now() 

this_target.compute(date) 

obs = ephem.Observer() 
obs.epoch = 2000.0 
obs.lon = -111.653152/180.*numpy.pi 
obs.lat = 35.184108/180.*numpy.pi 
obs.elevation = 2738 # m 
obs.date = date 
obs.horizon = 0. 

# if target is '3552', this_target.alt stays constant 
for time in numpy.arange(date, date+1, 0.1): 
    obs.date = time 
    this_target.compute(obs) 
    print time, this_target.alt, this_target.ra 

### if this_target is '3552', this results in a segmentation fault 
print obs.next_rising(this_target) 

을 유도하려고 할 때, PyEphem 대상의 고도를 계산하고, 따라서 세그먼트 오류로 실행되지 않습니다 (이 경우 3552) 자기 정의 대상을 사용하여 : 여기

는 최소한의 스크립트입니다 이 목표의 상승/설정 시간.

PyEphem (3.7.6.0)의 최신 버전을 설치하려고했지만 도움이되지 않았습니다. 누구든지 복제 할 수 있습니까 (설명?)이 오류?

답변

0

R. J. Mathar의 대답에 의거하여이 문제를 다시 조사해 보니 문제가 사라진 것으로 나타났습니다. 파이썬 2.7과 3.5를 사용하여 정확한 결과를 얻었습니다. 둘 다 PyEphem 3.7.6.0을 사용합니다.

문제가 무엇인지 좀 더 자세히 알고 싶지만 잘 모르겠습니다. 내 시스템에서 중요한 변경 사항이 있는지 확실하지 않습니다. 일종의 설치 문제로 인한 것 같습니다.

0

위도가 35 도인이 개체는 목성에 약간 가까워 황도보다 약간 높고 기간은 8 년이지만 약 2 ~ 3 년이 지나야 상승하지 않을 수도 있습니다 통과했다.

+0

개체가 그 당시에는 관찰 가능했기 때문에 이유가 아닙니다. 또한 어떤 개체에서도 작동하지 않았습니다. 그러나 문제는 사라졌습니다 (내 대답은 아래 참조). – mommermi