1

以下は、Pyephemのドキュメントで提供されている例です。

    iss = ephem.readtle("ISS (ZARYA)","1 25544U 98067A   03097.78853147  .00021906  00000-0  28403-3 0  8652","2 25544  51.6361  13.7980 0004256  35.6671  59.2566 15.58778559250029")
    gatech = ephem.Observer()
    gatech.lon, gatech.lat = '-84.39733', '33.775867'
    gatech.date = '2003/3/23'
    iss.compute(gatech)
    print iss.rise_time, iss.transit_time, iss.set_time
    2003/3/23 00:00:44 2003/3/23 00:03:22 2003/3/23 00:06:00

例を実行したときにまったく同じ結果が得られたので、少なくともこの部分は正しく実行されていると思います。私が知りたいのは、J2000座標での衛星の位置天文位置であるため、星図と比較することができます。次のコードを試しましたが、a_raとraは同じであるため、答えは疑わしいです。J2000の位置天文ソリューションであるa_raではなく、a_raとraの両方がエポックオブデートで指定されていると思います。

    print iss.a_ra, iss.ra, iss.g_ra
    8:50:10.99 8:50:10.99 6:54:40.64

歳差運動/章動運動をpyephemのトポセントリックraとdecに適用する方法はありますか?

4

1 に答える 1

1

素晴らしい質問です!PyEphem の根底にある C コードを確認したところ、との両方の値が既にオブザーバー オブジェクトのエポック (この場合は J2000 のデフォルト) に歳差しているように見えます。参考までに、これはからの問題のコードです。raa_ralibastroearthsat.c

if (epoch != EOD && mjd != epoch)
    precess (mjd, epoch, &ra, &dec);
op->s_ra = ra;
op->s_dec = dec;

私にはこのように見え.ra.dec値はすでに歳差運動になっています。このコードをそのままにしておいたのは、おそらく私の手抜きでした。私が実際にすべきだったのは、当時見落としていたのですが、これらの割り当てステートメントをステートメントのの位置に移動ifして、それらが歳差処理されず、したがって天文の RA および dec とは区別されるようにすることであった可能性があります。私自身が追加したコードによって数行後に設定されます。

つまり、今のところ、実際には — 私が PyEphem を正しく理解していれば — 必要な RA と DEC を正確に取得しており、プロジェクトを進めることができます。その間、私はそのチケットを追求し、取得しようとし、 と とは.ra異なる番号.decを与え始めます!.a_ra.a_dec

于 2013-03-02T05:44:37.593 に答える