이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.
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
를 통해 점 데이터 세트에 액세스하기 위한 프로그래밍 모델은 다음과 같습니다.
파일을 열고 파일 이름에서 파일 ID를 가져와 PT 인터페이스를 초기화합니다.
점 이름에서 점 ID를 가져와 점 데이터 세트를 열거나 생성합니다.
데이터 세트에서 원하는 작업을 수행합니다.
점 ID를 삭제하여 점 데이터 세트를 닫습니다.
파일 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,... | 점 데이터 세트 내의 새 레벨을 정의합니다. levelname 은 정의할 레벨의 이름입니다. fieldList 는 새 레벨의 필드 이름을 포함하는 문자형 벡터로 구성된 셀형 배열 또는 string형 배열입니다. fieldTypes 도 fieldList 의 각 필드에 대한 숫자 유형을 포함하는 문자형 벡터로 구성된 셀형 배열 또는 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부터 시작)입니다. data 는 P ×1 셀형 배열이어야 합니다. 여기서 P 는 지정된 레벨의 정의된 필드 수입니다. data 의 각 셀은 데이터의 M(k) ×N 행렬을 가져야 합니다. 여기서 M(k) 는 k 번째 필드의 순서(필드의 스칼라 값의 수)이고, N 은 레코드의 수입니다. 셀의 MATLAB 클래스는 해당 필드에 정의된 HDF 데이터형과 일치해야 합니다. MATLAB의 텍스트 데이터는 HDF의 어떤 문자형이든 일치하도록 자동으로 변환됩니다. 다른 데이터형은 정확하게 일치해야 합니다. |
'readlevel' | [data,status] = hdfpt('readlevel',point_id,... | 점 데이터 세트의 지정된 레벨에서 데이터를 읽어 들입니다. level 은 원하는 레벨의 인덱스(0부터 시작)입니다. fieldList 는 읽어 들일 필드의 목록을 지정하는 문자형 벡터로 구성된 셀형 배열 또는 string형 배열입니다. records 는 읽어 들일 레코드의 인덱스(0부터 시작)를 포함하는 벡터입니다. data 는 P ×1 셀형 배열입니다. 여기서 P 는 요청된 필드의 개수입니다. data 의 각 셀은 데이터의 M(k) ×N 행렬을 가집니다. 여기서 M(k) 는 k 번째 필드의 순서이고, N 은 레코드의 수 또는 length(records) 입니다. |
'updatelevel' | status = hdfpt('updatelevel',point_id,... | 점 데이터 세트의 지정된 레벨에서 데이터를 업데이트(수정)합니다. level 은 원하는 레벨의 인덱스(0부터 시작)입니다. fieldList 는 업데이트할 필드 이름의 목록을 지정하는 문자형 벡터로 구성된 셀형 배열 또는 string형 배열입니다. records 는 업데이트할 레코드의 인덱스(0부터 시작)를 포함한 벡터입니다. data 는 P ×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] = ... | 지정된 레벨에 대한 필드 정보를 반환합니다. 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] = ... | 지정된 특성의 숫자 유형과 크기를 반환합니다(단위: 바이트). attrname 은 특성의 이름입니다. numberType 은 특성에 대응하는 HDF 데이터형의 이름을 포함한 문자형 벡터입니다. count 는 특성 데이터에 의해 사용되는 바이트의 수입니다. 작업이 실패할 경우 status 은 -1이고 numberType 과 count 는 [] 입니다. |
'inqattrs' | [nattrs,attrnames] = hdfpt('inqattrs',point_id) | 점 데이터 세트에 정의된 특성에 대한 정보를 가져옵니다. nattrs 와 attrnames 는 각각 정의된 모든 특성의 숫자와 이름입니다. 작업이 실패할 경우 nattrs 는 -1이고 attrnames 는 [] 이 됩니다. |
'inqpoint' | [numpoints,pointnames] = hdfpt('inqpoint',filename) | HDF-EOS 파일에 정의된 점 데이터 세트의 개수와 이름을 가져옵니다. pointnames 는 점 이름을 포함한 문자형 벡터로 구성된 셀형 배열입니다. 작업이 실패할 경우 numpoints 는 -1이고 pointnames 는 [] 이 됩니다. |
유틸리티 루틴
자리 표시자입니다.
funcstr 의 값 | 함수 구문 | 설명 |
---|---|---|
'getrecnums' | [outRecords,status] = hdfpt('getrecnums',... | 레벨 inLevel 의 inRecords 로 지정된 레코드 그룹에 대응하는 outLevel 의 레코드 수를 반환합니다. inLevel 과 outLevel 인수는 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 는 최소 및 최대 수직 값을 포함한 요소를 2개 가진 벡터입니다. 작업이 실패할 경우 period_id 는 -1입니다. |
'regioninfo' | [byteSize,status] = hdfpt('regioninfo',point_id,... | 지정된 레벨의 서브셋 기간 데이터 크기(단위: 바이트)를 반환합니다. fieldlist 는 추출할 필드의 목록을 지정하는 문자형 벡터로 구성된 셀형 배열 또는 string형 배열입니다. 작업이 실패할 경우 status 와 byteSize 는 -1입니다. |
'regionrecs' | [numRec,recNumbers,status] = hdfpt('regionrecs',... | 지정된 레벨의 서브셋 영역 내 레코드 번호를 반환합니다. 작업이 실패할 경우 status 와 numrec 은 -1이고 recNumbers 는 [] 입니다. |
'extractregion' | [data,status] = hdfpt('extractregion',point_id,... | 지정된 서브셋 영역에서 데이터를 읽어 들입니다. fieldList 는 요청된 필드의 목록을 지정하는 문자형 벡터로 구성된 셀형 배열 또는 string형 배열입니다. data 는 P ×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,... | 서브셋 기간의 크기(단위: 바이트)를 가져옵니다. fieldList 는 필드 이름의 목록을 지정하는 문자형 벡터로 구성된 셀형 배열 또는 string형 배열입니다. 작업이 실패할 경우 byteSize 와 status 는 -1입니다. |
'periodrecs' | [numRec,recNumbers,status] = hdfpt('periodrecs',... | 지정된 레벨의 서브셋 기간 내의 레코드 번호를 반환합니다. 작업이 실패할 경우 numRec 와 status 는 -1입니다. |
'extractperiod' | [data,status] = hdfpt('extractperiod',... | 지정된 서브셋 기간에서 데이터를 읽어 들입니다. fieldList 는 요청된 필드의 목록을 지정하는 문자형 벡터로 구성된 셀형 배열 또는 string형 배열입니다. data 는 P ×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)
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 이전에 개발됨