4

私は PyEphem が初めてで、何ができるのか、どのように機能するのかを理解しようとしています。それをブラックボックスとして使用したくなく、得られた数値を盲目的に信頼したくないので、ここで説明されている例を再現したいと思いました。

この例では、1998 年 8 月 10 日 23:10 UT の特定のオブザーバーのオブジェクトの方位角と高度を計算します。次のパラメータが与えられます。

RA = 16時間41.7分、DEC = 36日28分

観測者の緯度は北緯 52 日 30 分、西経 1 日 55 分です。

例 (Excel で再現できます) によると、正解は AZ = 269.14634 度、ALT = 49.169122 度です。

同じ結果を得るために、pyephem を使用して次のコードを作成しました。

day = '1998/8/10 23:10:00'
longitude = ephem.degrees('-1.91667')
latitude = ephem.degrees('52.5')

star = ephem.FixedBody()
star._ra = '16:41:42.0'
star._dec = '36:28:00.0'

observer = ephem.Observer()
observer.date = day
observer.lon = longitude
observer.lat = latitude

star.compute(observer)

print 'Observer', observer
print 'RA', star.ra, 'DEC', star.dec
print 'AZ', star.az, 'ALT', star.alt

プログラムを実行すると、次の出力が得られます。

>>> 
Observer <ephem.Observer date='1998/8/10 23:10:00' epoch='2000/1/1 12:00:00' lon=-1:55:00.0 lat=52:30:00.0 elevation=0.0m horizon=0:00:00.0 temp=15.0C pressure=1010.0mBar>
RA 16:41:39.23 DEC 36:28:33.5
AZ 269:09:54.9 ALT 49:10:57.7

AZ + ALT の結果は明らかにこの例とほぼ同じですが、まったく同じではありません。また、RA と DEC が、入力したものと比較して印刷物でわずかに変更されているという事実にも困惑しています。

結果が異なる理由と、結果を再現するために私ができること、またはすべきことを誰かが明らかにするのを手伝ってくれるなら、私はそれを大いに感謝します. ありがとう。

編集:以下の回答で指摘されたタイプミスを修正しました。質問はまだ有効です。

EDIT2 :OK、このリンクからPyEphemによって赤経と赤緯が調整される理由を読みました(そしてある程度理解しました)。私が理解していないのは、大気の屈折を無視させるのと同じように、PyEphem に光の相対論的たわみ章動収差の調整を無視させる方法があるかどうかということです。Azimuth の違いは RA と DEC の調整によるものだと推測していますが、確認していただければ幸いです。

4

3 に答える 3

2

観測者に「temp=15.0C pressure=1010.0mBar」が含まれているという事実は、計算に屈折が含まれることを意味します。屈折をオフにしたい

ヘルプに記載されているとおり:

これらの見かけの位置には、観測者の温度と圧力に対する大気の屈折をシミュレートするための調整が含まれます。屈折を無視するには、観察者の圧力をゼロに設定します。

于 2012-09-04T15:38:49.660 に答える
2

PyEphem の基礎となる C ライブラリには、たわみ、収差、または章動をオフにする方法がありません。おそらく、自然がこれらの効果をオフにすることを許可していないためですが、よくわかりません! 地球を周回する衛星に対してはこれらの計算は行わないことに注意してください。ただし、PyEphemに尋ねることができるように、衛星を正確な赤経および赤緯に配置する簡単な方法は思いつきません。その場所。

私は実際に今週 DjangoCon で API についての講演に行っており、これらの興味深いステップをすべて C コード内に閉じ込めておくのではなく、PyEphem がいつの日か Python からアクセスしやすいようにする方法について考えています。ただし、別の方法を用意するまでは、ソース ファイルを開いcircum.cて次の行をコメント アウトするしかありません。

/* allow for relativistic light bending near the sun */
deflect (mjed, lam, bet, lsn, rsn, 1e10, &ra, &dec);

/* TODO: correction for annual parallax would go here */

/* correct EOD equatoreal for nutation/aberation to form apparent 
 * geocentric
 */
nut_eq(mjed, &ra, &dec);
ab_eq(mjed, lsn, &ra, &dec);

これら 3 つの呼び出し ( deflect()nut_eq()、およびab_eq()263 行目以降) をコメント アウトすると、この記事で作成したものに近い答えが得られる可能性があります。これらの変更を次の方法で適用します。

  • .tar.gzPyEphem 用をダウンロードしています。
  • アーカイブを抽出してファイルを生成します。
  • 上記で提案した編集を行います。
  • 実行python setup.py installして、ソフトウェアのカスタム バージョンをインストールします。
  • やってみて!

歳差運動が何らかの形で発生している場合は、別の障害がある可能性があります — その場合、starオブジェクトのエポックを正確'1998/8/10 23:10:00'に設定する必要があるかもしれません — ただし、最初に 3 つのライト効果呼び出しをオフにして、それが近づくかどうかを確認してください!

于 2012-09-05T11:32:31.520 に答える
1

あなたが入力したかった : RA = 16 時間 41.7 分

しかし、次のように入力しました: star._ra = '16:41.42.0'

star._ra = '16:41:42.0' の代わりに

于 2012-09-04T15:13:16.243 に答える