メインコンテンツ

fitsread

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

説明

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

data = fitsread(filename,"raw") では、ファイルから読み取られたデータがスケーリングされず、未定義値のデータ値も NaN 値に置き換えられません。ファイルで指定されているクラス タイプが返されるデータで維持されます。

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

data = fitsread(filename,extname,index) は、extname および index で指定された FITS ファイル拡張からデータを読み取ります。

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

すべて折りたたむ

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");
whos imageData
  Name            Size              Bytes  Class     Attributes

  imageData      31x73x5            90520  double              

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

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

info = fitsinfo("tst0012.fits");

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

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});
 size(primaryData)
ans = 1×2

    16    37

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

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

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

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

tableData = fitsread("tst0012.fits","asciitable",Info=info, ...
                     TableRows=[1:2:rowend])
tableData=1×8 cell array
    {27×1 cell}    {27×1 double}    {27×1 double}    {27×1 double}    {27×1 double}    {27×1 cell}    {27×1 cell}    {27×1 double}

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

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

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

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

tableData = fitsread("tst0012.fits","binarytable",Info=info, ...
                     TableColumns=[1 2 5])
tableData=1×3 cell array
    {11×1 cell}    {11×13 double}    {11×3 double}

入力引数

すべて折りたたむ

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

  • ファイルが現在のフォルダーまたは MATLAB® パス上のフォルダーにある場合は、filename にファイルの名前を指定します。

  • ファイルが現在のフォルダーまたは MATLAB パス上のフォルダーにない場合は、filename に絶対パスまたは相対パスを指定します。

例: "myFile.fits"

例: "C:\myFolder\myFile.fits"

例: "myFolder\myFile.fits"

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

extname

説明

"primary"

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

"asciitable"

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

"binarytable"

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

"image"

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

"unknown"

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

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

名前と値の引数

すべて折りたたむ

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

例: 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 より前に導入