空間運動会計¶
♪the SkyCoord
オブジェクトは、ソースの位置を更新し、ソースの空間的動きを与え、新しい位置の時間(または座標の現在の時間と新しい時間との間の差)を評価することをサポートする。これは使用です apply_space_motion()
方法です。
例を引く¶
まず私たちは SkyCoord
指定のある obstime
**
>>> import astropy.units as u
>>> from astropy.time import Time
>>> from astropy.coordinates import SkyCoord
>>> c = SkyCoord(l=10*u.degree, b=45*u.degree, distance=100*u.pc,
... pm_l_cosb=34*u.mas/u.yr, pm_b=-117*u.mas/u.yr,
... frame='galactic',
... obstime=Time('1988-12-18 05:11:23.5'))
空間運動を考慮して、私たちは今他の時間に位置を見つけることができる。観測時間と所要時間の時間差を指定することができる:
>>> c.apply_space_motion(dt=10. * u.year)
<SkyCoord (Galactic): (l, b, distance) in (deg, deg, pc)
( 10.00013356, 44.999675, 99.99999994)
(pm_l_cosb, pm_b, radial_velocity) in (mas / yr, mas / yr, km / s)
( 33.99980714, -117.00005604, 0.00034117)>
>>> c.apply_space_motion(dt=-10. * u.year)
<SkyCoord (Galactic): (l, b, distance) in (deg, deg, pc)
( 9.99986643, 45.000325, 100.00000006)
(pm_l_cosb, pm_b, radial_velocity) in (mas / yr, mas / yr, km / s)
( 34.00019286, -116.99994395, -0.00034117)>
あるいは、以下の時間に評価職の新しい時間を指定することができます。
>>> c.apply_space_motion(new_obstime=Time('2017-12-18 01:12:07.3'))
<SkyCoord (Galactic): (l, b, distance) in (deg, deg, pc)
( 10.00038732, 44.99905754, 99.99999985)
(pm_l_cosb, pm_b, radial_velocity) in (mas / yr, mas / yr, km / s)
( 33.99944073, -117.00016248, 0.00098937)>
もし SkyCoord
対象は指定されていない径方向速度(RV)であり,RVを0とする.震源が慣性系で等速直線運動を行うと仮定し,震源の新たな位置を決定する。これが超えているので、より複雑な進化(例えば、非慣性系またはより複雑な進化)を支持する計画はありません。 astropy
コアパッケージ(様々な付属パケットの範囲内にある可能性が高いにもかかわらず)。
例:速度を用いて異なる暦の空位置を計算する.¶
この例では Gaia TGAS 2 MASSが近くの恒星を観測した日に天体測定を行い,震源の空位置を計算した。TGAS天体測定は参考暦J 2015.0で提供されたが、2 MASS測定は1990年代末に行われた。興味のある恒星については、2回測定した空の位置に有意差があるほど自分で十分に大きい。
ソースの以前の位置を計算した後,ソースと2 MASSスターを交差マッチングして計算を行う. Gaia この対像源の−2 MASS色。
注釈
この例は Gaia TGASと2 MASS星表です。以下の便利さと迅速さのために、データを含む辞書オブジェクトを作成しました。Astropy付属ソフトウェアパッケージを用いてデータを検索します astroquery 以下のクエリを使用します。
import astropy.coordinates as coord
import astropy.units as u
from astroquery.gaia import Gaia
from astroquery.vizier import Vizier
job = Gaia.launch_job("SELECT TOP 1 * FROM gaiadr1.tgas_source \
WHERE parallax_error < 0.3 AND parallax > 5 AND pmra > 100 \
ORDER BY random_index")
result_tgas = job.get_results()[0]
c_tgas = coord.SkyCoord(ra=result_tgas['ra'] * u.deg,
dec=result_tgas['dec'] * u.deg)
v = Vizier(columns=["**"], catalog="II/246/out")
result_2mass = v.query_region(c, radius=1*u.arcmin)['II/246/out']
このソース関連列のTGASデータ(上記の注釈のクエリを参照):
>>> result_tgas = dict(ra=66.44280212823296,
... dec=-69.99366255906372,
... parallax=22.764078749733947,
... pmra=144.91354358297048,
... pmdec=5.445648092997134,
... ref_epoch=2015.0,
... phot_g_mean_mag=7.657174523348196)
上記の位置の周囲1角分以内のすべての震源の2 MASSデータ(上記の注釈のクエリを参照):
>>> result_2mass = dict(RAJ2000=[66.421970000000002, 66.433521999999996,
... 66.420564999999996, 66.485068999999996,
... 66.467928999999998, 66.440815000000001,
... 66.440454000000003],
... DEJ2000=[-70.003722999999994, -69.990768000000003,
... -69.992255999999998, -69.994881000000007,
... -69.994926000000007, -69.993613999999994,
... -69.990836999999999],
... Jmag=[16.35, 13.663, 16.171, 16.184, 16.292,
... 6.6420002, 12.275],
... Hmag=[15.879, 13.955, 15.154, 15.856, 15.642,
... 6.3660002, 12.185],
... Kmag=[15.581, 14.238, 14.622, 15.398, 15.123,
... 6.2839999, 12.106],
... Date=['1998-10-24', '1998-10-24', '1998-10-24',
... '1998-10-24', '1998-10-24', '1998-10-24',
... '1998-10-24'])
まず最初に SkyCoord
オブジェクトはTGASディレクトリから提供された情報から削除する.注意してください obstime
TGASディレクトリ(J 2015.0)で提供される参照紀元のオブジェクト:
>>> import astropy.units as u
>>> from astropy.coordinates import SkyCoord, Distance
>>> from astropy.time import Time
>>> c = SkyCoord(ra=result_tgas['ra'] * u.deg,
... dec=result_tgas['dec'] * u.deg,
... distance=Distance(parallax=result_tgas['parallax'] * u.mas),
... pm_ra_cosdec=result_tgas['pmra'] * u.mas/u.yr,
... pm_dec=result_tgas['pmdec'] * u.mas/u.yr,
... obstime=Time(result_tgas['ref_epoch'], format='jyear'))
次に私たちは SkyCoord
2 MASSディレクトリからの空の位置を持つオブジェクト,および Time
2 MASS星表で提供される2 MASS観測日の対象(この領域中のデータについては,観測日は同じであるので,0番目の値のみをとる):
>>> catalog_2mass = SkyCoord(ra=result_2mass['RAJ2000'] * u.deg,
... dec=result_2mass['DEJ2000'] * u.deg)
>>> epoch_2mass = Time(result_2mass['Date'][0])
私たちは今使用することができます apply_space_motion()
方法:別の期間におけるTGASソースの位置を計算する。これは、直線運動のソースの位置を仮定するために、適切な動きおよび視差情報を使用して進化する:
>>> c_2mass_epoch = c.apply_space_motion(epoch_2mass)
現在はTGAS源の2 MASS暦元の座標があり、交差マッチングを行うことができます(なお参照 色分解、オフセット、ディレクトリマッチング、および関連機能 ):
>>> idx, sep, _ = c_2mass_epoch.match_to_catalog_sky(catalog_2mass)
>>> sep[0].to_string()
'0d00m00.2818s'
>>> idx
array(5)
それによって見つかった最も近いソース距離は、2 MASSディレクトリ内の行リード5に対応する0.2818コーナー秒である。そして例えば計算することができます Gaia -2 MASS色::
>>> G = result_tgas['phot_g_mean_mag']
>>> J = result_2mass['Jmag'][idx]
>>> K = result_2mass['Kmag'][idx]
>>> G - J, G - K
(1.0151743233481962, 1.3731746233481958)