Main Content

ncread

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

    説明

    vardata = ncread(source,varname) は、source に含まれる netCDF 変数 varname のデータをすべて読み取ります。返される変数の値 vardata は、varname の netCDF データ型に最良に適合する MATLAB® データ型の値です。

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

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

    すべて折りたたむ

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

    peaksData = ncread("example.nc","peaks");
    whos peaksData
      Name            Size            Bytes  Class    Attributes
    
      peaksData      50x50             5000  int16              
    

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

    surf(peaksData)
    title("Peaks Data")

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

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

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

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

    surf(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.

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

    start  = [1 1]; 
    count  = [10 15]; 
    stride = [2 3]; 
    sampledPeaksData = ncread("example.nc","peaks",start,count,stride);
    whos sampledPeaksData
      Name                   Size            Bytes  Class    Attributes
    
      sampledPeaksData      10x15              300  int16              
    

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

    surf(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 データ ソースの名前。string スカラーまたは文字ベクトルとして指定します。引数 source には、次の値のいずれかを指定できます。

    • ローカルの netCDF ソースのパス

    • リモートの OPeNDAP netCDF データ ソースの OPeNDAP URL

    • リモートの netCDF ソースの HTTP URL。その URL の末尾に #mode=bytes を付け加えてバイト範囲読み取りを有効にする

      メモ

      バイト範囲読み取りは、他のソースからの読み取りよりも遅くなります。バイト範囲読み取りの詳細については、netCDF のドキュメンテーションを参照してください。

    例: "myNetCDFfile.nc"

    例: "http://host_name/netcdf_filename#mode=bytes"

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

    sourcenetcdf4 形式のファイルを指定した場合、varname を完全修飾名として指定することで、グループ階層内の変数の位置を指定できます。

    例: "myVar"

    例: "/myGrp/mySubGrp/myNestedVar"

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

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

    例: [2 1 3]

    データ型: double

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

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

    例: [Inf 10 50]

    データ型: double

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

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

    例: [2 10 1]

    データ型: double

    出力引数

    すべて折りたたむ

    変数データ。varname の netCDF データ型に最良に適合する MATLAB データ型の数値配列、テキスト、または cell 配列として返されます。MATLAB による最良の適合の判別方法の詳細については、NetCDF から MATLAB データ型への変換を参照してください。

    数値変数で、_FillValuescale_factor、または add_offset の各属性のうち少なくとも 1 つが存在する場合、vardatadouble 型になります。また、ncread は、vardata を返す前に、次の属性の規則を順番に適用します。

    1. _FillValue 属性が存在する場合は、以下のようにします。

      • vardatadouble 型または single 型の場合、ncread_FillValue 属性の値に等しい vardata 値を NaN 値に置き換えます。

      • vardata がその他の数値型の場合、ncread は、_FillValue 属性の値に等しい vardata 値および NaNvardata 値を 0 値に置き換えます。

    2. scale_factor 属性が存在する場合、ncread は、vardata の値に scale_factor 属性の値を乗算します。

    3. add_offset 属性が存在する場合、ncread は、vardata の値に add_offset 属性の値を加算します。

    メモ

    varnameNC_STRING 型の場合、UTF-8 エンコード文字を含めることができます。varnameNC_CHAR 型の場合、ASCII エンコード文字のみを含めることができます。

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

    詳細

    すべて折りたたむ

    NetCDF から MATLAB データ型への変換

    netCDF 関連の MATLAB 関数は、次の表に従って、netCDF データ型に最良に適合する MATLAB データ型を自動的に選択します。

    NetCDF データ型MATLAB データ型
    NC_DOUBLEdouble
    NC_FLOATsingle
    NC_INTint32
    NC_SHORTint16
    NC_BYTEint8
    NC_CHARchar
    NC_STRING (*)string
    NC_INT64 (*)int64
    NC_UINT64 (*)uint64
    NC_UINT (*)uint32
    NC_USHORT (*)uint16
    NC_UBYTE (*)uint8
    ユーザー定義の NC_VLEN 型 (*)cell

    (*) これらの netCDF データ型は netcdf4 形式のファイルでのみ使用可能です。

    ヒント

    • MATLAB は多次元データを列優先として解釈しますが、netCDF C API は多次元データを行優先として解釈します。netCDF C API の多次元データは、MATLAB で示される順序の逆順で次元を示すため、結果として転置されて表示されます。

    バージョン履歴

    R2011a で導入

    すべて展開する