Main Content

ncread

NetCDF データ ソース内の変数からデータを読み取る

説明

vardata = ncread(source,varname) は、source 内の変数 varname からすべてのデータを読み取ります。ここで、source は NetCDF ファイル、OPeNDAP NetCDF データソース、またはリモート NetCDF ファイルの HTTP URL (バイト範囲読み取りのための #mode=bytes 接尾辞を含む) となります。

vardata = ncread(source,varname,start,count) は、start で指定された位置から始まるデータを読み取ります。count 引数は、各次元に沿って読み取る要素数を指定します。

vardata = ncread(source,varname,start,count,stride) は、stride で指定された変数の各次元のインデックス間の間隔でデータを返します。

すべて折りたたむ

example.nc ファイルから peaks という名前の変数を読み取り、プロットします。

peaksData  = ncread('example.nc','peaks');
whos peaksData
  Name            Size            Bytes  Class    Attributes

  peaksData      50x50             5000  int16              

peaksData をプロットして、タイトルを追加します。

surf(double(peaksData));
title('Peaks Data');

Figure contains an axes object. The axes object with title Peaks Data contains an object of type surface.

変数データのうち、位置 [25 17] から各次元の末尾までの部分のみを読み取ってプロットします。

startLoc = [25 17]; % Start location along each coordinate
count  = [Inf Inf]; % Read until the end of each dimension
peaksData  = ncread('example.nc','peaks',startLoc,count);
whos peaksData
  Name            Size            Bytes  Class    Attributes

  peaksData      26x34             1768  int16              

データをプロットします。

surf(double(peaksData));
title('Peaks Data Starting at [25 17]');

Figure contains an axes object. The axes object with title Peaks Data Starting at [25 17] contains an object of type surface.

データを読み取ってプロットします。ここで、データは各次元に沿って、指定された変数インデックス間の間隔でサンプリングされます。読み取りは startLoc の位置から開始し、stride で指定された間隔で変数データを読み取ります。stride の値が 1 の場合、対応する次元内の隣接する値にアクセスします。一方、値が 2 の場合、対応する次元内の値に 1 つおきにアクセスし、以降同様に繰り返されます。

startLoc = [1 1]; 
count  = [10 15]; 
stride = [2 3]; 
sampledPeaksData  = ncread('example.nc','peaks',startLoc,count,stride);
whos sampledPeaksData
  Name                   Size            Bytes  Class    Attributes

  sampledPeaksData      10x15              300  int16              

データをプロットします。

surf(double(sampledPeaksData));
title('Peaks Data Subsampled by [2 3]');

Figure contains an axes object. The axes object with title Peaks Data Subsampled by [2 3] contains an object of type surface.

入力引数

すべて折りたたむ

ソース名。NetCDF ファイルの名前、OPeNDAP NetCDF データ ソースの URL、またはバイト範囲読み取り用のリモート netCDF ファイルの HTTP URL を含む、文字ベクトルまたは string スカラーとして指定します。リモート データセットのバイト範囲読み取りを有効にするには、HTTP URL の末尾に #mode=bytes を追加します。バイト範囲読み取りの詳細については、NetCDF のドキュメンテーションを参照してください。

例: "myNetCDFfile.nc"

データ型: char | string

変数名。NetCDF ファイルまたは OPeNDAP NetCDF データ ソースの変数名を含む文字ベクトルまたは string スカラーとして指定します。

データ型: char | string

開始位置。正の整数の数値ベクトルとして指定します。N 次元の変数について、start は 1 ベースのインデックスを含む、長さ N のベクトルです。

start を指定しない場合、関数 ncread は各次元に沿って、最初のインデックスから変数の読み取りを開始します。

データ型: double

読み取る要素数。正の整数の数値ベクトルとして指定します。N 次元の変数について、count は長さが N のベクトルで、各次元に沿って読み取る要素数を指定します。count のいずれかの要素が Inf の場合、ncread は対応する次元の末尾まで読み取りを行います。

count を指定しない場合、関数 ncread は各次元の末尾まで変数データを読み取ります。

データ型: double

各次元に沿った変数インデックス間の間隔。整数の数値ベクトルとして指定します。N 次元の変数について、stride は長さが N のベクトルです。ベクトル stride の要素は、変数の次元に、同じ順序で対応しています。値が 1 の場合、対応する次元内の NetCDF 変数の隣接する値にアクセスします。一方、値が 2 の場合、対応する次元内の NetCDF 変数の値に 1 つおきにアクセスし、以降同様に繰り返されます。

stride を指定しない場合、関数 ncread は各次元に沿って既定の間隔 1 でデータを読み取ります。

データ型: double

出力引数

すべて折りたたむ

変数データ。数値データ型の場合は数値配列、テキスト データ型の場合はテキスト、ユーザー定義の可変長配列データ型の場合は cell 配列として返されます。

ほとんどの場合、関数 ncread は、対応する NetCDF データ型に最も近い MATLAB® データ型を使用します。

数値データ型で、_FillValuescale_factor、または add_offset の各変数属性のうち少なくとも 1 つが存在する場合、ncreaddouble 型の vardata を返します。さらに、ncread には以下の規則が適用されます。

  • _FillValue 属性が存在する場合、ncread_FillValue 値と等しい vardata 値を NaN に置き換えます。_FillValue 属性が存在しない場合、ncread は、NetCDF ライブラリに変数の埋め込み値をクエリします。

  • scale_factor 属性が存在する場合、ncread は、変数データに scale_factor 属性の値を乗算します。

  • add_offset 属性が存在する場合、ncread は、変数データに add_offset 属性の値を加算します。

メモ

NC_CHAR 型の変数について、関数 ncread は ASCII エンコード文字のみを含む vardata の読み取りをサポートしています。UTF-8 エンコード文字の読み取りは、NetCDF-4 ファイル内の NC_STRING 型の変数でサポートされています。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | cell | char | string

制限

  • バイト範囲読み取りのパフォーマンスは、他のソースからの読み取りよりも遅くなります。

バージョン履歴

R2011a で導入