Main Content

fitsread

FITS ファイルからデータを読み取る

説明

data = fitsread(filename) は、filename で指定された Flexible Image Transport System (FITS) ファイルのプライマリ データを読み取り、調整された配列として返します。この関数は、未定義のデータ値を NaN で置き換え、数値データを勾配値と切片の値でスケーリングし、常に倍精度値を返します。

data = fitsread(filename,'raw') は、FITS ファイルのプライマリ データを調整なしで読み取ります。この構文では、ファイルから読み取られたデータがスケーリングされず、未定義値の NaN への置き換えも行われません。ファイルで指定されているクラス タイプが返されるデータで維持されます。

data = fitsread(filename,extname) は、extname で指定された FITS ファイル拡張からデータを読み取ります。FITS ファイルはプライマリ データを含んでおり、任意の数のオプション コンポーネントを含むことができます。これは、FITS 用語で "拡張" と呼ばれます。

data = fitsread(filename,extname,index) は、同じタイプの拡張が複数存在する場合に追加でインデックスを指定します。

data = fitsread(filename,___,Name,Value) は、1 つ以上の名前と値の引数で指定された追加オプションを使用して FITS ファイルからデータを読み取ります。たとえば、TableColumns は読み取る列を指定します。

すべて折りたたむ

FITS ファイルからプライマリ データを読み取ります。

data = fitsread('tst0012.fits');

出力変数 data を調べます。

whos data
  Name        Size             Bytes  Class     Attributes

  data      109x102            88944  double              

FITS ファイルからプライマリ データを生データとして読み取ります。

data = fitsread('tst0012.fits', 'raw');

出力変数 data を調べます。

whos data
  Name        Size             Bytes  Class     Attributes

  data      109x102            44472  single              

FITS ファイルの拡張を調べ、イメージ拡張からデータを読み取ります。

拡張が存在する場合はそれも含めて、FITS ファイルの内容をリストします。

info = fitsinfo('tst0012.fits');
disp(info.Contents);
    {'Primary'}    {'Binary Table'}    {'Unknown'}    {'Image'}    {'ASCII Table'}

FITS ファイルのイメージ拡張からデータを読み取ります。

imageData = fitsread('tst0012.fits','image');

FITS ファイルからデータのサブサンプルを読み取ります。

最初に、FITS ファイルに関する情報を取得します。

info = fitsinfo('tst0012.fits')
info = struct with fields:
       Filename: '/mathworks/devel/bat/filer/batfs1904-0/Bdoc24a.2511836/build/matlab/toolbox/matlab/demos/tst0012.fits'
    FileModDate: '12-Mar-2001 18:37:46'
       FileSize: 109440
       Contents: {'Primary'  'Binary Table'  'Unknown'  'Image'  'ASCII Table'}
    PrimaryData: [1x1 struct]
    BinaryTable: [1x1 struct]
        Unknown: [1x1 struct]
          Image: [1x1 struct]
     AsciiTable: [1x1 struct]

イメージ拡張の各次元のサイズをクエリします。

info.Image.Size
ans = 1×3

    31    73     5

行と列のサイズを格納します。

rowend = info.Image.Size(1);
colend = info.Image.Size(2);

FITS ファイルの 3 番目の次元の 5 番目の要素を 1 行および 1 列おきに読み取ります。

 primaryData = fitsread('tst0012.fits','image', ...
              'Info', info,...
              'PixelRegion',{[1 2 rowend], [1 2 colend], 5 });

FITS ファイルの ASCII テーブルを 1 行おきに読み取ります。

ASCII テーブルの行数を調べます。

info = fitsinfo('tst0012.fits');
rowend = info.AsciiTable.Rows;

ASCII テーブルを 1 行おきに読み取ります。

tableData = fitsread('tst0012.fits','asciitable',...
                    'Info',info,...
                    'TableRows',[1:2:rowend]);

FITS ファイルのバイナリ テーブルの 1 列目、2 列目、および 5 列目のデータをすべて読み取ります。

バイナリ テーブルの行数を調べます。

info      = fitsinfo('tst0012.fits');
rowend    = info.BinaryTable.Rows;

バイナリ テーブルの 1 列目、2 列目、および 5 列目を読み取ります。

tableData = fitsread('tst0012.fits','binarytable', ...
                    'Info',info,...
                    'TableColumns',[1 2 5]);

入力引数

すべて折りたたむ

ファイル名。文字ベクトルまたは string スカラーとして指定します。

データ配列または拡張の名前。文字ベクトルまたは string スカラーとして指定します。FITS ファイルはプライマリ データを含んでおり、任意の数のオプション コンポーネントを含むことができます。これは、FITS 用語で "拡張" と呼ばれます。FITS ファイルの内容を調べるには、fitsinfo によって返される構造体の Contents フィールドを確認します。

Extname

説明

'primary'

プライマリ データ配列からデータを読み込みます。

'asciitable'

ASCII テーブル拡張から 1 次元 cell 配列としてデータを読み取ります。

'binarytable'

バイナリ テーブル拡張から 1 次元 cell 配列としてデータを読み取ります。

'image'

イメージ拡張からデータを読み取ります。

'unknown'

不明な拡張からデータを読み取ります。

インデックス。同じタイプの拡張が複数存在する場合に読み取る拡張を示すスカラーとして指定します。

名前と値の引数

引数のオプションのペアを Name1=Value1,...,NameN=ValueN として指定します。ここで Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後になければなりませんが、ペアの順序は重要ではありません。

R2021a より前では、コンマを使用してそれぞれの名前と値を区切り、Name を引用符で囲みます。

例: data = fitsread('tst0012.fits','PixelRegion',{[1 2 100],[1 2 100]})

情報。読み取るデータの位置を指定する構造体配列として指定します。情報の構造体配列は fitsinfo から取得できます。Info を指定すると、特にファイルから複数のイメージを読み取る場合に、パフォーマンスが著しく向上します。

ピクセル領域。ベクトルの cell 配列として指定します。各ベクトルがデータの次元に対応します。N 番目の次元から読み取る部分領域を指定するには、cell 配列の N 番目のベクトルを使用します。cell 配列の各ベクトルの形式は次のいずれかでなければなりません。

ベクトルの形式

説明

start

次元内の開始点。既定の停止点は次元の末尾です。

[start stop]

次元内の開始点と停止点。

[start increment stop]

次元内の開始点と停止点、および読み取りを行うインクリメント。

ピクセル領域のパラメーターは、プライマリまたはイメージ拡張の場合にのみ有効です。

読み取る列。ASCII またはバイナリ テーブル拡張から読み取る列のインデックスを含む 1 次元配列として指定します。ベクトルには、昇順で指定されたテーブル データへの一意の有効なインデックスが含まれていなければなりません。このパラメーターは、ASCII またはバイナリ テーブル拡張の場合にのみ有効です。

読み取る行。ASCII またはバイナリ テーブル拡張から読み取る行のインデックスを含む 1 次元配列として指定します。ベクトルには、昇順で指定されたテーブル データへの一意の有効なインデックスが含まれていなければなりません。このパラメーターは、ASCII またはバイナリ テーブル拡張の場合にのみ有効です。

ヒント

  • MATLAB® は FITS イメージ データをファイルに出現する順番で読み取りますが、FITS イメージ データの読み取りと書き込みを行うソフトウェア パッケージの中には、イメージ データがイメージの最下行から順番に格納されていることを前提としているものがあります。その結果、MATLAB で表示される FITS イメージ データは、他のソフトウェア パッケージを使用して表示される同じデータと比較すると、上下方向、すなわち水平軸回りに反転して表示されることがあります。MATLAB でイメージを反転させるには、fitsread の出力に対して関数 flipud を使用してからイメージを表示します。

バージョン履歴

R2006a より前に導入