2016-09-12 6 views
0

PyEphemはかなり長い間使用されていましたが、数日前(おそらく数週間前)には私のスクリプトの1つがもう使えなくなりました。このスクリプトは、とりわけ、軌道要素から作成する小惑星の上昇時間と設定時間をCALLHORIZONSを使って計算します。私は、PyEphemが小惑星の高度を正しく計算していないことを知った - しかし、それは太陽の高度を適切に計算する。なぜPyEphemは手動で生成されたオブジェクトの標高を計算しませんか?

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の答えをトリガに、私はこれをもう一度見て、問題が消えていることを発見しました。私は今Python 2.7と3.5を使って正しい結果を得ています。どちらもPyEphem 3.7.6.0を使用しています。

私は問題の内容をさらに深く理解したいと思っていますが、わかりません。私のシステム上で何か重要な変更があったかどうかはわかりません。これは何らかのインストール上の問題が原因であるようです。

0

緯度が35度の場合、このオブジェクトが黄道の少し上の木星に近く、周期が8年であることを考えると、約2年または3年以上前に起きないことがあります合格。

+0

オブジェクトはその時点で観測可能でしたので、理由はありませんでした。また、どのオブジェクトでも機能しませんでした。しかし、問題は消えています(下記の私の答えを参照)。 – mommermi