Вставьте таблицу ASCII после текущего HDU
insertATbl(fptr,rowlen,nrows,ttype,tbcol,tform,tunit,extname)
insertATbl(fptr,rowlen,nrows,ttype,tbcol,tform,tunit,extname)
вставляет новое расширение таблицы ASCII сразу после текущего HDU. Все следующие расширения перемещаются вниз, чтобы освободить место для нового расширения. Если других следующих расширений нет, то новое расширение таблицы просто добавляется в конец файла. Если файл FITS в данный момент пуст, эта стандартная программа создает фиктивный основной массив перед добавлением таблицы к нему. Новое расширение становится текущим HDU. Если rowlen
равен 0, затем CFITSIO вычисляет значение по умолчанию rowlen
на основе tbcol
и ttype
значения.
Задайте tform
как массив ячеек из векторов символов или строковые массивы, который может принимать следующие формы. В каждом случае 'w'
и 'ww'
представление ширины столбцов ASCII.
'Iw' | int16 столбец |
'Ай' | ASCII- столбца |
'Fww.dd' | Фиксированная точка с 'dd' цифры после десятичной точки |
'Eww.dd' | Одинарная точность с 'dd' цифры точности |
'Dww.dd' | Двойная точность с 'dd' цифры точности |
Вместо таблиц ASCII рекомендованы двоичные таблицы.
Эта функция соответствует fits_insert_atbl(ffitab)
функция в CFITSIO library C API.
Составьте таблицу 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');