Main Content

matlab.io.hdfeos.sw.defDataField

パッケージ: matlab.io.hdfeos.sw

swath 内での新しいデータ フィールドの定義

構文

defDataField(swathID,fieldname,dimlist,dtype)
defDataField(swathID,fieldname,dimlist,dtype,mergeCode)

説明

defDataField(swathID,fieldname,dimlist,dtype) は、swathID で指定された swath に格納されるデータ フィールドを定義します。

dimlist 入力は、次元名が格納された文字ベクトルの cell 配列または string 配列にできます。次元が 1 つしかない場合は 1 つの文字ベクトルまたは string スカラーにできます。dimlist は、最も速く変化する次元が最初にリストされるように並べられていなければなりません。これは、C API における次元の順序とは逆です。

dtype はフィールドのデータ型で、次のいずれかの値にできます。

  • 'double'

  • 'single'

  • 'int32'

  • 'uint32'

  • 'int16'

  • 'uint16'

  • 'int8'

  • 'uint8'

  • 'char'

defDataField(swathID,fieldname,dimlist,dtype,mergeCode) は、mergeCode の値に従って他のデータ フィールドとマージできるデータ フィールドを定義します。mergeCode 入力は、'automerge' または 'nomerge' のいずれかです。mergeCode'automerge' の場合、HDF-EOS ライブラリは、swath フィールドを 1 つのオブジェクトにマージしようとします。他のインターフェイスで swath フィールドに個別にアクセスする場合は、これを行ってはなりません。既定の設定では mergeCode'nomerge' です。

メモ

sw.defDataField で定義されるフィールドがファイル内で正しく確立されるように、swath の接続を解除して再接続してから、フィールドへの書き込みを行ってください。

この関数は HDF-EOS ライブラリ C API の関数 SWdefdatafield に相当しますが、MATLAB® は FORTRAN スタイルの並べ替えを使用するので、dimlist パラメーターは、C ライブラリ API とは逆の順序になります。

import matlab.io.hdfeos.*
swfid = sw.open('myfile.hdf','create');
swathID = sw.create(swfid,'MySwath');
sw.defDim(swathID,'GeoTrack',2000);
sw.defDim(swathID,'GeoXtrack',1000);
sw.defDim(swathID,'DataTrack',4000);
sw.defDim(swathID,'DataXtrack',2000);
sw.defDim(swathID,'Bands',3);
sw.defDimMap(swathID,'GeoTrack','DataTrack',0,2);
sw.defDimMap(swathID,'GeoXtrack','DataXtrack',1,2);
dims = {'GeoXtrack','GeoTrack'};
sw.defGeoField(swathID,'Longitude',dims,'float');
sw.defGeoField(swathID,'Latitude',dims,'float');
dims = {'DataXtrack','DataTrack','Bands'};
sw.defDataField(swathID,'Spectra',dims,'float');
sw.detach(swathID);
sw.close(swfid);