matlab.io.fits.insertATbl

Вставьте таблицу 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 по умолчанию на основе значений ttype и tbcol.

Задайте tform как массив ячеек из символьных векторов или массив строк, который может принять следующие формы. В каждом случае 'w' и 'ww' представляют ширины столбцов ASCII.

'Iw'Столбец int16
'Ай'Столбец ASCII
'Fww.dd'Фиксированная точка с цифрами 'dd' после десятичной точки
'Eww.dd'Одинарная точность с цифрами 'dd' точности
'Dww.dd'Двойная точность с цифрами 'dd' точности

Бинарные таблицы рекомендуются вместо таблиц ASCII.

Эта функция соответствует функции fits_insert_atbl(ffitab) в API библиотеки CFITSIO C.

Примеры

Создайте таблицу 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');

Смотрите также

|

Была ли эта тема полезной?