次の TLE を計算しようとすると、計算結果が不完全になります。
FENGYUN 1C DEB
1 31034U 99025BEC 12293.69998868 .02147743 29582-2 52063-2 0 1666
2 31034 099.0270 256.6567 0044344 106.5074 254.5558 15.95183245303888
この TLE は次を使用して読み取られます。
obj = readtle(line0, line1, line2) #where line0 is the 0th line, line1 is the 1st line etc.
次のようにオブザーバーを設定しました。
#Observatory Data
obs = ephem.Observer()
obs.lat = '32.345010'
obs.lon = '-111.011647'
obs.elevation = 400
obs.name = 'myObs'
obs.date = '2012/11/9 01:52:48'
私が使うとき
obj.compute(obs)
この関数は obj.ra や obj.elevation などに適切な値を入力できませんが、クラッシュしたりハングしたりしません (これもときどき発生します)。これはおそらく、オブジェクトが最近大気中に崩壊したという事実によるものですが、 、不完全な結果が私のプログラムの残りの部分をクラッシュさせます。この例外をキャッチする方法を見つけたいだけですが、失敗しました。
私は試した
try:
obj.compute(obs) # no exception is thrown by compute
except:
print 'bad computation'
continue
も試した
if ~obj.elevation: continue
これにより、~ 演算子が obj.elevation データ型 (またはそのようなもの) で使用できないことを示す別のエラーが発生しました。
Body.compute() に起因するこれらの例外をキャッチする方法はありますか?