半径方向速度を銀河系静止基準(GSR)に変換する

震源の半径方向または視線速度は、通常、日心または太陽系重心参照系で報告されている。一般的な変換の1つは、太陽運動を視線に沿って目標に投影し、それを銀河系静止フレーム(銀河系静止基準、GSRと呼ばれることがある)に変換することである。この変換は,双星または日心フレーム方向に対する銀河系フレームの仮定に依存する。これは仮定した太陽速度ベクトルにも依存する。ここでは,空位置と重心半径方向速度を用いてこの変換を行う方法を示す.

By: Adrian Price-Whelan

ライセンス:BSD

すべてのバージョンのPythonで印刷ジョブを同じにし、必要なAstropyパッケージをインポートします:

import astropy.units as u
import astropy.coordinates as coord

銀心座標を使った最新の約束

出て:

<ScienceState galactocentric_frame_defaults: {'galcen_coord': <ICRS Coordinate: (ra, dec) in deg...>

この例では恒星HD 155967の座標と重心径方向速度を使って Simbad

icrs = coord.SkyCoord(ra=258.58356362*u.deg, dec=14.55255619*u.deg,
                      radial_velocity=-16.1*u.km/u.s, frame='icrs')

次に,仮定したGSRフレームにおける太陽の速度を決定する必要がある.私たちが使うのは Galactocentric フレームを変換して CartesianRepresentation 対象使用 .to_cartesian() 方法 CartesianDifferential 客体. galcen_v_sun

v_sun = coord.Galactocentric().galcen_v_sun.to_cartesian()

我々は現在,上のICRS座標系における空位置からの単位ベクトルを仮想的な銀河系座標系で得る必要がある.この単位ベクトルを用いて太陽速度を視線に投影します

この単位ベクトルを使って太陽速度を投影します

最後に,太陽速度の投影を径方向速度に加算し,GSR径方向速度を得た。

出て:

123.3046008737976 km / s

太陽速度を制御し、上のコードを再利用することができる関数にカプセル化することができます

def rv_to_gsr(c, v_sun=None):
    """Transform a barycentric radial velocity to the Galactic Standard of Rest
    (GSR).

    The input radial velocity must be passed in as a

    Parameters
    ----------
    c : `~astropy.coordinates.BaseCoordinateFrame` subclass instance
        The radial velocity, associated with a sky coordinates, to be
        transformed.
    v_sun : `~astropy.units.Quantity`, optional
        The 3D velocity of the solar system barycenter in the GSR frame.
        Defaults to the same solar motion as in the
        `~astropy.coordinates.Galactocentric` frame.

    Returns
    -------
    v_gsr : `~astropy.units.Quantity`
        The input radial velocity transformed to a GSR frame.

    """
    if v_sun is None:
        v_sun = coord.Galactocentric().galcen_v_sun.to_cartesian()

    gal = c.transform_to(coord.Galactic)
    cart_data = gal.data.to_cartesian()
    unit_vector = cart_data / cart_data.norm()

    v_proj = v_sun.dot(unit_vector)

    return c.radial_velocity + v_proj

rv_gsr = rv_to_gsr(icrs)
print(rv_gsr)

出て:

123.3046008737976 km / s

スクリプトの総実行時間: (0分0.016秒)

Gallery generated by Sphinx-Gallery