33#include "moo_kernel.h"
85 const char* filename = cpl_frame_get_filename(frame);
86 cpl_ensure(filename != NULL, CPL_ERROR_NULL_INPUT,
89 cpl_errorstate prev_state = cpl_errorstate_get();
92 res->filename = cpl_strdup(filename);
94 if ( !cpl_errorstate_is_equal(prev_state)){
116 cpl_free(self->filename);
123 char* extname = NULL;
125 extname = cpl_sprintf(MOO_KERNEL_EXTNAME,detector,
145 cpl_propertylist* header = NULL;
148 char* extname = _moo_get_extname(type,ntas,rbn);
150 header = moo_fits_load_extension_header(self->filename,NULL,extname);
173 cpl_image* img = NULL;
174 cpl_matrix* matrix = NULL;
177 char* extname = _moo_get_extname(type,ntas,rbn);
180 cpl_size extnum = cpl_fits_find_extension(self->filename, extname);
182 img = cpl_image_load(self->filename, CPL_TYPE_DOUBLE, 0, extnum);
183 cpl_matrix *mat = cpl_matrix_wrap(
184 cpl_image_get_size_y(img),
185 cpl_image_get_size_x(img),
186 cpl_image_get_data_double(img));
187 matrix = cpl_matrix_duplicate(mat);
189 cpl_matrix_unwrap(mat);
190 cpl_image_delete(img);
const char * moo_detector_get_name(moo_detector_type type)
Get the extension name of a detector.
enum _moo_detector_type_ moo_detector_type
The type code type.
void moo_kernel_delete(moo_kernel *self)
Delete a moo_kernel.
cpl_propertylist * moo_kernel_get_header(moo_kernel *self, moo_detector_type type, int ntas, int rbn)
Get the header of the kernel for given idrbn or NULL.
moo_kernel * moo_kernel_new(void)
Create a new moo_kernel.
moo_kernel * moo_kernel_load(const cpl_frame *frame)
Load a new moo_kernel.
cpl_matrix * moo_kernel_get_matrix(moo_kernel *self, moo_detector_type type, int ntas, int rbn)
Get the mtarix of the kernel for given idrbn or NULL.