matlab.io.fits.insertATbl
현재 HDU 다음에 ASCII 테이블 삽입
구문
insertATbl(fptr,rowlen,nrows,ttype,tbcol,tform,tunit,extname)
설명
insertATbl(fptr,rowlen,nrows,ttype,tbcol,tform,tunit,extname)
은 현재 HDU 바로 다음에 새 ASCII 테이블 확장을 삽입합니다. 이후의 모든 확장은 새 확장을 위한 공간을 만들기 위해 아래쪽으로 이동됩니다. 이후의 확장이 더 없는 경우 새 테이블 확장은 단순히 파일 끝에 추가됩니다. FITS 파일이 현재 비어 있는 경우 이 루틴은 더미 주 배열(Primary Array)을 만들고 그 끝에 테이블을 추가합니다. 새 확장이 현재 HDU가 됩니다. rowlen
이 0이면 CFITSIO는 tbcol
값과 ttype
값을 기반으로 하여 디폴트 rowlen
을 계산합니다.
tform
을 다음 형식을 가질 수 있는 문자형 벡터로 구성된 셀형 배열 또는 string형 배열로 지정합니다. 각각의 경우 'w'
와 'ww'
는 ASCII 열의 너비를 나타냅니다.
'Iw' | int16 형 열 |
'Aw' | ASCII 열 |
'Fww.dd' | 고정소수점(소수점 이하 'dd' 자리) |
'Eww.dd' | 'dd' 자리 정밀도를 가지는 단정밀도 |
'Dww.dd' | 'dd' 자리 정밀도를 가지는 배정밀도 |
ASCII 테이블 보다는 Binary 테이블이 권장됩니다.
이 함수는 CFITSIO 라이브러리 C API의 fits_insert_atbl(ffitab)
함수에 대응합니다.
예제
두 이미지 사이에 ASCII 테이블을 만듭니다.
import matlab.io.* fptr = fits.createFile('myfile.fits'); fits.createImg(fptr,'uint8',[20 30]); fits.createImg(fptr,'int16',[30 40]); fits.movRelHDU(fptr,-1); ttype = {'Name','Short','Fix','Double'}; tbcol = [1 17 28 43]; tform = {'A15','I10','F14.2','D12.4'}; tunit = {'','m**2','cm','km/s'}; fits.insertATbl(fptr,0,0,ttype,tbcol,tform,tunit,'my-table'); fits.writeCol(fptr,1,1,char('abracadabra','hocus-pocus')); fits.writeCol(fptr,2,1,int16([0; 1])); fits.writeCol(fptr,3,1,[12.4; 4/3]); fits.writeCol(fptr,4,1,[12.4; 4e8/3]); fits.closeFile(fptr); fitsdisp('myfile.fits','mode','min');