Main Content

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

hdfpt

HDF-EOS 점 객체에 대한 인터페이스

구문

[out1,...,outN] = hdfpt(funcstr,input1,...,inputN)

설명

hdfpt는 EOSDIS(Earth Observing System Data and Information System)에 의해 개발 및 유지되는 HDF-EOS C 라이브러리의 점 함수에 대한 MATLAB® 게이트웨이입니다. 점 데이터 세트는 산포된 지리적 위치에서 불규칙한 시간 간격으로 포착한 일련의 데이터 레코드로 구성됩니다. 각 데이터 레코드는 시간 및/또는 공간 내에서 점의 상태를 나타내는 일련의 데이터 값으로 이루어집니다.

[out1,...,outN] = hdfpt(funcstr,input1,...,inputN)functstr로 지정된 HDF-EOS 라이브러리의 Point 함수에 해당하는 하나 이상의 출력을 반환합니다.

HDF-EOS C 라이브러리의 PT 함수와 funcstr의 유효한 값 사이에는 일대일의 대응 관계가 있습니다. 예를 들어, hdfpt('detach',point_id)는 C 라이브러리 호출 PTdetach(point_id)에 해당됩니다.

프로그래밍 모델

hdfpt를 통해 점 데이터 세트에 액세스하기 위한 프로그래밍 모델은 다음과 같습니다.

  1. 파일을 열고 파일 이름에서 파일 ID를 가져와 PT 인터페이스를 초기화합니다.

  2. 점 이름에서 점 ID를 가져와 점 데이터 세트를 열거나 생성합니다.

  3. 데이터 세트에서 원하는 작업을 수행합니다.

  4. 점 ID를 삭제하여 점 데이터 세트를 닫습니다.

  5. 파일 ID를 삭제하여 파일에 대한 점 액세스를 종료합니다.

HDF-EOS 파일에 이미 존재하는 단일 점 데이터 세트에 액세스하려면 다음 MATLAB 명령을 사용합니다.

fileid = hdfpt('open',filename,access);
pointid = hdfpt('attach',fileid,pointname);
    
% Optional operations on the data set...
    
status = hdfpt('detach',pointid);
status = hdfpt('close',fileid);

여러 파일에 동시에 액세스하려면 열려는 각 파일에 대한 별도의 파일 ID를 얻습니다. 둘 이상의 점 데이터 세트에 액세스하려면 각 데이터 세트에 대한 별도의 점 ID를 얻습니다.

버퍼링된 작업이 디스크에 완전히 기록될 수 있도록 점 ID와 파일 ID를 적절히 삭제하는 것이 중요합니다. PT 식별자가 아직 열려 있는 상태에서 MATLAB을 종료하거나 모든 MEX 파일을 지우면 MATLAB이 경고를 표시하고 이들을 자동으로 삭제합니다.

참고로, hdfpt가 반환한 파일 ID는 다른 HDF-EOS 또는 HDF 함수가 반환한 파일 ID와 교체가 불가능합니다.

액세스 루틴

액세스 루틴은 (파일 열기 및 닫기를 포함하여) PT 인터페이스 및 점 데이터 세트에 대한 액세스를 초기화하고 종료합니다.

funcstr의 값함수 구문설명
'open'file_id = hdfpt('open',filename,access)파일 이름과 원하는 액세스 모드가 주어지면 점을 생성하고, 읽어 들이거나, 작성하기 위해 HDF 파일을 열거나 생성합니다. access'read', 'readwrite', 'create' 중 하나일 수 있습니다. 작업이 실패할 경우 file_id는 -1이 됩니다.
'create'point_id = hdfpt('create',file_id,pointname)지정된 이름의 점 데이터 세트를 생성합니다. pointname은 점 데이터 세트의 이름을 포함하는 문자형 벡터 또는 string형 스칼라입니다. 작업이 실패할 경우 point_id는 -1입니다.
'attach'point_id = hdfpt('attach',file_id,pointname)파일 내의 기존 점 데이터 세트에 추가합니다. 작업이 실패할 경우 point_id는 -1입니다.
'detach'status = hdfpt('detach',point_id)점 데이터 세트에서 분리합니다.
'close'status = hdfpt('close',file_id)파일을 닫습니다.

정의 루틴

정의 루틴을 통해 사용자는 점 데이터 세트의 키 기능을 설정할 수 있습니다.

funcstr의 값함수 구문설명
'deflevel'status = hdfpt('deflevel',point_id,levelname,...
fieldList,fieldTypes,fieldOrders)
점 데이터 세트 내의 새 레벨을 정의합니다. levelname은 정의할 레벨의 이름입니다. fieldList는 새 레벨의 필드 이름을 포함하는 문자형 벡터로 구성된 셀형 배열 또는 string형 배열입니다. fieldTypesfieldList의 각 필드에 대한 숫자 유형을 포함하는 문자형 벡터로 구성된 셀형 배열 또는 string형 배열입니다. 유효한 숫자 형식은 'uchar8', 'uchar', 'char8', 'char', 'double', 'uint8', 'uint16', 'uint32', 'float', 'int8', 'int16', 'int32'입니다. fieldOrders는 각 필드의 순서를 포함하는 벡터입니다.
'deflinkage'status = hdfpt('deflinkage',point_id,parent,child,linkfield)두 인접 레벨 간의 링크 필드를 정의합니다. parent는 부모 레벨의 이름입니다. child는 자식 레벨의 이름입니다. linkfield는 두 레벨 모두에서 정의된 필드의 이름입니다.

기본 I/O 루틴

기본 I/O 루틴은 데이터 및 메타데이터를 읽어 들이고 점 데이터 세트에 씁니다.

funcstr의 값함수 구문설명
'writelevel'status = hdfpt('writelevel',point_id,level,data)점 데이터 세트의 지정된 레벨에 새 레코드를 추가합니다. level은 원하는 레벨의 인덱스(0부터 시작)입니다. dataP×1 셀형 배열이어야 합니다. 여기서 P는 지정된 레벨의 정의된 필드 수입니다. data의 각 셀은 데이터의 M(k)×N 행렬을 가져야 합니다. 여기서 M(k)k번째 필드의 순서(필드의 스칼라 값의 수)이고, N은 레코드의 수입니다. 셀의 MATLAB 클래스는 해당 필드에 정의된 HDF 데이터형과 일치해야 합니다. MATLAB의 텍스트 데이터는 HDF의 어떤 문자형이든 일치하도록 자동으로 변환됩니다. 다른 데이터형은 정확하게 일치해야 합니다.
'readlevel'[data,status] = hdfpt('readlevel',point_id,...
level,fieldList,records)
점 데이터 세트의 지정된 레벨에서 데이터를 읽어 들입니다. level은 원하는 레벨의 인덱스(0부터 시작)입니다. fieldList는 읽어 들일 필드의 목록을 지정하는 문자형 벡터로 구성된 셀형 배열 또는 string형 배열입니다. records는 읽어 들일 레코드의 인덱스(0부터 시작)를 포함하는 벡터입니다. dataP×1 셀형 배열입니다. 여기서 P는 요청된 필드의 개수입니다. data의 각 셀은 데이터의 M(k)×N 행렬을 가집니다. 여기서 M(k)k번째 필드의 순서이고, N은 레코드의 수 또는 length(records)입니다.
'updatelevel'status = hdfpt('updatelevel',point_id,...
level,fieldList,records,data)
점 데이터 세트의 지정된 레벨에서 데이터를 업데이트(수정)합니다. level은 원하는 레벨의 인덱스(0부터 시작)입니다. fieldList는 업데이트할 필드 이름의 목록을 지정하는 문자형 벡터로 구성된 셀형 배열 또는 string형 배열입니다. records는 업데이트할 레코드의 인덱스(0부터 시작)를 포함한 벡터입니다. dataP×1 셀형 배열입니다. 여기서 P는 지정된 필드의 수입니다. data의 각 셀은 데이터의 M(k)×N 행렬을 가져야 합니다. 여기서 M(k)k번째 필드의 순서(필드의 스칼라 값 수)이고, N은 레코드의 수 또는 length(records)입니다. 셀의 MATLAB 클래스는 해당 필드에 정의된 HDF 데이터형과 일치해야 합니다. MATLAB의 텍스트 데이터는 HDF의 어떤 문자형이든 일치하도록 자동으로 변환됩니다. 다른 데이터형은 정확하게 일치해야 합니다.
'writeattr'status = hdfpt('writeattr',point_id,attrname,data)점 데이터 세트 특성을 지정된 이름으로 쓰거나 업데이트합니다. 특성이 존재하지 않으면 새로 생성됩니다.
'readattr'[data,status] = hdfpt('readattr',point_id,attrname)지정된 특성에서 특성 데이터를 읽습니다.

조회 루틴

조회 루틴은 점 데이터 세트에 포함된 데이터 세트에 대한 정보를 반환합니다.

funcstr의 값함수 구문설명
'nlevels'nlevels = hdfpt('nlevels',point_id)점 데이터 세트의 레벨 수를 반환합니다. 작업이 실패할 경우 nlevels는 -1입니다.
'nrecs'nrecs = hdfpt('nrecs',point_id,level)지정된 레벨의 레코드 수를 반환합니다. 작업이 실패할 경우 nrecs는 -1입니다.
'nfields'[numfields,strbufsize] = hdfpt('nfields',point_id,level)지정된 레벨의 필드 수를 반환합니다. strbufsize는 필드 이름을 포함한 배열의 길이입니다. 작업이 실패할 경우 numfields는 -1이고 strbufsize[]입니다.
'levelinfo'[numfields,fieldList,field Type,fieldOrder] = ...
hdfpt('levelinfo',point_id,level)
지정된 레벨에 대한 필드 정보를 반환합니다. fieldList는 필드 이름을 포함한 문자형 벡터로 구성된 셀형 배열 또는 string형 배열입니다. fieldType은 각 필드의 데이터형을 정의한 문자형 벡터로 구성된 셀형 배열입니다. fieldOrder는 각 필드에 대한 순서(스칼라 값의 수)를 포함한 벡터입니다. 작업이 실패할 경우 numfields는 -1이고 다른 출력은 비어 있습니다.
'levelindx'level = hdfpt('levelindx',point_id,levelname)레벨의 레벨 인덱스(0부터 시작)를 지정된 이름으로 반환합니다. 작업이 실패할 경우 level은 -1입니다.
'bcklinkinfo'[linkfield,status] = hdfpt('bcklinkinfo',point_id,level)이전 레벨에 대한 링크 필드를 반환합니다. 작업이 실패할 경우 status는 -1이고 linkfield[]입니다.
'fwdlinkinfo'[linkfield,status] = hdfpt('fwdlinkinfo',point_id,level)다음 레벨에 대한 링크 필드를 반환합니다. 작업이 실패할 경우 status는 -1이고 linkfield[]입니다.
'getlevelname'[levelname,status] = hdfpt('getlevelname',point_id,level)레벨 인덱스가 주어졌을 때 레벨의 이름을 반환합니다. 작업이 실패할 경우 status는 -1이고 levelname[]입니다.
'sizeof'[byteSize,fieldLevels] = hdfpt('sizeof',point_id,fieldList)지정된 필드의 크기(단위: 바이트)와 필드 레벨을 반환합니다. fieldList는 필드 이름을 포함하는 문자형 벡터로 구성된 셀형 배열 또는 string형 배열입니다. byteSize는 지정된 필드의 전체 크기(단위: 바이트)이고, fieldLevels는 각 필드에 대응하는 레벨 인덱스를 포함하는 벡터입니다. 작업이 실패할 경우 byteSize는 -1이고 fieldLevels[]입니다.
'attrinfo'[numberType,count,status] = ...
hdfpt('attrinfo',point_id,attrname)
지정된 특성의 숫자 유형과 크기를 반환합니다(단위: 바이트). attrname은 특성의 이름입니다. numberType은 특성에 대응하는 HDF 데이터형의 이름을 포함한 문자형 벡터입니다. count는 특성 데이터에 의해 사용되는 바이트의 수입니다. 작업이 실패할 경우 status은 -1이고 numberTypecount[]입니다.
'inqattrs'[nattrs,attrnames] = hdfpt('inqattrs',point_id)점 데이터 세트에 정의된 특성에 대한 정보를 가져옵니다. nattrsattrnames는 각각 정의된 모든 특성의 숫자와 이름입니다. 작업이 실패할 경우 nattrs는 -1이고 attrnames[]이 됩니다.
'inqpoint'[numpoints,pointnames] = hdfpt('inqpoint',filename)HDF-EOS 파일에 정의된 점 데이터 세트의 개수와 이름을 가져옵니다. pointnames는 점 이름을 포함한 문자형 벡터로 구성된 셀형 배열입니다. 작업이 실패할 경우 numpoints는 -1이고 pointnames[]이 됩니다.

유틸리티 루틴

자리 표시자입니다.

funcstr의 값함수 구문설명
'getrecnums'[outRecords,status] = hdfpt('getrecnums',...
point_id,inLevel,outLevel,inRecords)
레벨 inLevelinRecords로 지정된 레코드 그룹에 대응하는 outLevel의 레코드 수를 반환합니다. inLeveloutLevel 인수는 0부터 시작되는 레벨 인덱스입니다. inRecords는 0부터 시작되는 레코드 인덱스의 벡터입니다. 작업이 실패할 경우 status는 -1이고 outRecords[]입니다.

서브셋 루틴

서브셋 루틴을 통해 지정된 지리적 영역에서 데이터를 읽을 수 있습니다.

funcstr의 값함수 구문설명
'defboxregion'region_id = hdfpt('defboxregion',point_id,cornerLon,cornerLat)점의 경도-위도 영역을 정의합니다. cornerLon은 반대편 상자 코너의 경도를 포함한, 요소를 2개 가진 벡터입니다. cornerLat은 반대편 상자 코너의 위도를 포함한, 요소를 2개 가진 벡터입니다. 작업이 실패할 경우 region_id는 -1입니다.
'defvrtregion'period_id = hdfpt('defvrtregion',point_id,region_id,...
vert_field,range)
점의 수직 영역을 정의합니다. vert_field는 서브셋에 대한 필드의 이름입니다. range는 최소 및 최대 수직 값을 포함한 요소를 2개 가진 벡터입니다. 작업이 실패할 경우 period_id는 -1입니다.
'regioninfo'[byteSize,status] = hdfpt('regioninfo',point_id,...
region_id,level,fieldList)
지정된 레벨의 서브셋 기간 데이터 크기(단위: 바이트)를 반환합니다. fieldlist는 추출할 필드의 목록을 지정하는 문자형 벡터로 구성된 셀형 배열 또는 string형 배열입니다. 작업이 실패할 경우 statusbyteSize는 -1입니다.
'regionrecs'[numRec,recNumbers,status] = hdfpt('regionrecs',...
point_id,region_id,level)
지정된 레벨의 서브셋 영역 내 레코드 번호를 반환합니다. 작업이 실패할 경우 statusnumrec은 -1이고 recNumbers[]입니다.
'extractregion'[data,status] = hdfpt('extractregion',point_id,...
region_id,level,fieldList)
지정된 서브셋 영역에서 데이터를 읽어 들입니다. fieldList는 요청된 필드의 목록을 지정하는 문자형 벡터로 구성된 셀형 배열 또는 string형 배열입니다. dataP×1 셀형 배열입니다. 여기서 P는 요청된 필드의 개수입니다. data의 각 셀은 데이터의 M(k)×N 행렬을 가집니다. 여기서 M(k)k번째 필드의 순서이고, N은 레코드의 수입니다. 작업이 실패할 경우 status는 -1이고 data[]입니다.
'deftimeperiod'period_id = hdfpt('deftimeperiod',point_id,startTime,stopTime)점 데이터 세트의 기간을 정의합니다. 작업이 실패할 경우 period_id는 -1입니다.
'periodinfo'[byteSize,status] = hdfpt('periodinfo',point_id,...
period_id,level,fieldList)
서브셋 기간의 크기(단위: 바이트)를 가져옵니다. fieldList는 필드 이름의 목록을 지정하는 문자형 벡터로 구성된 셀형 배열 또는 string형 배열입니다. 작업이 실패할 경우 byteSizestatus는 -1입니다.
'periodrecs'[numRec,recNumbers,status] = hdfpt('periodrecs',...
point_id,period_id,level)
지정된 레벨의 서브셋 기간 내의 레코드 번호를 반환합니다. 작업이 실패할 경우 numRecstatus는 -1입니다.
'extractperiod'[data,status] = hdfpt('extractperiod',...
point_id,period_id,level,fieldList)
지정된 서브셋 기간에서 데이터를 읽어 들입니다. fieldList는 요청된 필드의 목록을 지정하는 문자형 벡터로 구성된 셀형 배열 또는 string형 배열입니다. dataP×1 셀형 배열입니다. 여기서 P는 요청된 필드의 개수입니다. data의 각 셀은 데이터의 M(k)×N 행렬을 가집니다. 여기서 M(k)k번째 필드의 순서이고, N은 레코드의 수입니다. 작업이 실패할 경우 status는 -1이고 data[]입니다.

입력/출력 인수

대부분의 루틴은 루틴이 성공할 경우 0을, 실패할 경우 -1인 플래그 status를 반환합니다. status를 포함하지 않는 구문을 갖는 루틴은 함수 구문에 표기된 대로 출력값 중 하나에 실패 정보를 반환합니다.

levelName은 문자형 벡터 또는 string형 스칼라입니다.

일부 C 라이브러리 함수는 C 매크로와 관련해 정의된 입력값을 받아들입니다. 예를 들어, C PTopen() 함수는 DFACC_READ, DFACC_RDWR, DFACC_CREATE와 같은 액세스 모드 입력값을 필요로 합니다. 이러한 기호는 관련된 C 헤더 파일에 정의되어 있습니다. 매크로 정의가 C 라이브러리에서 사용되는 경우 해당 MATLAB 구문은 매크로 이름에서 파생된 텍스트를 사용합니다. 사용자는 전체 매크로 이름을 포함한 텍스트를 사용하거나 공통의 접두사를 생략할 수 있습니다. 대문자 또는 소문자를 사용할 수 있습니다. 예를 들어, 다음 C 함수 호출은

status = PTopen("PointFile.hdf",DFACC_CREATE)
다음과 같은 MATLAB 함수 호출에 해당합니다.
status = hdfpt('open','PointFile.hdf','DFACC_CREATE')
status = hdfpt('open','PointFile.hdf','dfacc_create')
status = hdfpt('open','PointFile.hdf','CREATE')
status = hdfpt('open','PointFile.hdf','create')

C 함수가 매크로 정의와 함께 값을 반환할 경우 이에 상응하는 MATLAB 함수는 매크로의 소문자 축약형을 포함하는 텍스트로 값을 반환합니다.

HDF 숫자 유형은 'uchar8', 'uchar', 'char8', 'char', 'double', 'uint8', 'uint16', 'uint32', 'float', 'int8', 'int16', 'int32'로 지정됩니다.

HDF-EOS 라이브러리가 NULL을 허용하는 경우 빈 행렬([])을 사용해야 합니다.

버전 내역

R2006a 이전에 개발됨

참고 항목