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
입력값은 차원 이름을 포함하는 문자형 벡터로 구성된 셀형 또는 string형 배열이 될 수 있습니다. 차원이 하나만 있는 경우, 단일 문자형 벡터 또는 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 라이브러리는 주사 필드를 단일 객체로 병합하려고 시도합니다. 다른 인터페이스를 사용하여 주사 필드에 개별적으로 액세스하려는 경우에는 이를 수행해서는 안 됩니다. 기본적으로 mergeCode
는 'nomerge'
입니다.
참고
sw.defDataField
로 정의된 필드가 파일에서 제대로 설정되도록 하려면 임의의 필드에 쓰기 전에 주사를 분리했다가 다시 연결해야 합니다.
이 함수는 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);