世界座標初期化軸を用いて

基本初期化

以下のツールを用いて描画を作成するには、以下の操作を実行してください WCSAxes, we first read in the data using astropy.io.fits WCS情報を解析する.本例では、http://data.astterpy.orgサーバからの例示FITSファイル(http://data.asterpy.orgサーバ)を使用する get_pkg_data_filename() 関数はファイルをダウンロードしてファイル名を返す):

from astropy.wcs import WCS
from astropy.io import fits
from astropy.utils.data import get_pkg_data_filename

filename = get_pkg_data_filename('galactic_center/gc_msx_e.fits')

hdu = fits.open(filename)[0]
wcs = WCS(hdu.header)

そしてMatplotlibを使って図形を作成し WCS 上で作成されたオブジェクトです。以下の例は、Axesオブジェクトへの参照を保持しながら、Matplotlib‘pylot’インターフェースを使用してこの動作を実行する方法を示す。

import matplotlib.pyplot as plt
ax = plt.subplot(projection=wcs)

(png, svg, pdf)

../../_images/initializing_axes-2.png

♪the ax 作成の対象は WCSAxes 級友たち。WCS変換が指定されていない場合、変換はデフォルトでIdentityとなり、これは、世界座標が画素座標に一致することを意味することに留意されたい。

標準matplotlib軸の場合、示される視野は、画素座標において両方の方向において0~1である。画像が表示されると(参照) 画像と等高線を描く )は、制限を調整しますが、必要であれば、手動で制限を調整することもできます。調整制約は,通常のMatplotlib描画と同じ関数/方法を用いる:

ax.set_xlim(-0.5, hdu.data.shape[1] - 0.5)
ax.set_ylim(-0.5, hdu.data.shape[0] - 0.5)

(png, svg, pdf)

../../_images/initializing_axes-3.png

注釈

Pylotインタフェースを用いれば,置き換えることも可能である. ax.set_xlim そして ax.set_ylim vt.から. plt.xlim そして plt.ylim それがそうです。

選択可能な方法

Matplotlibのように実際に初期化できる方法はいくつかあります WCSAxes それがそうです。

以上のように,最も簡単な方法は利用である. WCS 分類して伝えることができます plt.subplot それがそうです。Matplotlibのオブジェクト指向インタフェースを一般的に使用する場合、以下の動作を実行することもできます。

fig = plt.figure()
ax = fig.add_subplot(1, 1, 1, projection=wcs)

これはこれにも適用されます add_axes() そして axes() 例えば、:

ax = fig.add_axes([0.1, 0.1, 0.8, 0.8], projection=wcs)

あるいは:

plt.axes([0.1, 0.1, 0.8, 0.8], projection=wcs)

Any additional arguments passed to add_subplot(), add_axes(), subplot(), or axes(), such as slices or frame_class, will be passed on to the WCSAxes class.

WCSAxを直接初期化します

上記の初期化方法の代替方法として WCSAxes 現実化することもできます WCSAxes これを直接図に追加します:

from astropy.wcs import WCS
from astropy.visualization.wcsaxes import WCSAxes
import matplotlib.pyplot as plt

wcs = WCS(...)

fig = plt.figure()
ax = WCSAxes(fig, [0.1, 0.1, 0.8, 0.8], wcs=wcs)
fig.add_axes(ax)  # note that the axes have to be explicitly added to the figure