join_skycoord

astropy.table.join_skycoord(distance, distance_func='search_around_sky')[ソース]

距離マッチングを用いてSkyCoord列を接続するブースタ関数を用いる.

この関数は table.join() キー列が同時に存在する場合にテーブル接続を実行することを許可する場合は、以下の操作を実行してください SkyCoord 対象は,点間の距離を計算し,以下の値を受け取ることでマッチングを行う. distance それがそうです。

距離交差マッチングは以下のいずれかの方法を用いて行われる. search_around_sky あるいは…。 search_around_3d 具体的には distance_func それがそうです。黙認する. 'search_around_sky' それがそうです。

以下のオブジェクトに関数オブジェクトを提供することも可能である. distance_func この場合、同じ入出力APIに従う関数でなければならない。 search_around_sky それがそうです。本例では,この関数を呼び出す際に使用する. (skycoord1, skycoord2, distance) 論拠として。

パラメータ
distance量 [“角度”“長さ”]

マッチングされた点間の最大距離を接続すると見なす.角度や距離単位が必要です。

distance_func文字列や関数

交差マッチングを実行するための関数を指定し、この関数は distance それがそうです。文字列形式で提供される場合は、指定 astropy.coordinates それがそうです。関数として与えられれば,その関数を直接呼び出す.

返品
join_func機能

関数,この関数は2つを受け取る SkyCoord 列(coll 1,coll 2)は、一致する一意の識別子のペアになるタプル(ids 1,ids 2)を返す。

実例.

この例は2つを示しています SkyCoord カラムは,いずれの0.2度以内のソースも一致している。新しいのに注意してください sc_id 列は、追加され、一致項に一意のソース識別子を提供する。

>>> from astropy.coordinates import SkyCoord
>>> import astropy.units as u
>>> from astropy.table import Table, join_skycoord
>>> from astropy import table
>>> sc1 = SkyCoord([0, 1, 1.1, 2], [0, 0, 0, 0], unit='deg')
>>> sc2 = SkyCoord([0.5, 1.05, 2.1], [0, 0, 0], unit='deg')
>>> join_func = join_skycoord(0.2 * u.deg)
>>> join_func(sc1, sc2)  # Associate each coordinate with unique source ID
(array([3, 1, 1, 2]), array([4, 1, 2]))
>>> t1 = Table([sc1], names=['sc'])
>>> t2 = Table([sc2], names=['sc'])
>>> t12 = table.join(t1, t2, join_funcs={'sc': join_skycoord(0.2 * u.deg)})
>>> print(t12)  # Note new `sc_id` column with the IDs from join_func()
sc_id   sc_1    sc_2
      deg,deg deg,deg
----- ------- --------
    1 1.0,0.0 1.05,0.0
    1 1.1,0.0 1.05,0.0
    2 2.0,0.0  2.1,0.0