2016-04-20 8 views
1

Skyfieldの中に、地球の中心からベクトル(x、y、z)を持っていれば、それをどのように「天球」上の点に逆変換できますか(すなわち右の上昇と下降)?例示の目的のために方向(ベクトル)をR.Aに変換します。スカイフィールドの12月

、私は地球の周り望遠鏡の軌道上にいくつかのポイントを持っている、と私は軌道に方向通常の正確なRAおよび12月を計算するとします - 何らかの理由で。収差や重力などの

効果は、ここでは無視することができる - 私は擬似コードではRAと12月にICRFで

を方向を変換するために探しています:

from skyfield.api import load 
import numpy as np 

eph = load('de421.bsp') 
ts = load.timescale() 
now = ts.now() 

vec  = np.array([3141, 2718, 5820], dtype=float) 
nvec = vec/np.sqrt((vec**2).sum()) # normalize for the heck of it 

earth = eph['earth'] 
evec = earth.at(now).vector(vec) # pseudocode 

print "It's pointing toward: ", evec.radec() # pseudocode 

答えて

1

幸いなことに、方向ベクトルを変換しますICRFの右肩上がりには、地球や他の何かの位置から完全に独立しています - x座標、y座標、z座標のどれが極座標として表現されるかということだけを含む質問です。ジオメトリの迅速な問題です。

出力
from skyfield.positionlib import ICRF 

vec = ICRF([3141, 2718, 5820]) 
ra, dec, distance = vec.radec() 
print(ra) 
print(dec) 

02h 43m 28.94s 
+54deg 29' 04.7" 

を、それはPythonのリストを渡され、自動的にされている場合、これがさえICRFクラスの自動検出するので、手動でnumpyのをインポートする必要がなくなりをSkyfieldを使用して

NumPy配列に変換します。

+0

信じられないほど!それは私が必要としていたものです。私は、重力のたわみや収差を計算する必要がある場合にのみ役立ちます。これは私が必要とするものではありません。ありがとう! – uhoh

+0

ああ、私は見る - それはすべてここにある:[http://rhodesmill.org/skyfield/api.html](http://rhodesmill.org/skyfield/api.html)これは楽しく見える! – uhoh

+0

ちょうどこれを確認するには、これはJ2000の座標ですか?私はICRFがJ2000に結びついていると信じています。 – barrycarter

関連する問題