83 long naxes[3] = {1, 1, 1};
97 fits_get_img_param(fptr, 2, &bitpix, &naxis, naxes, &status);
98 if (status != 0 || (naxis != 2 && naxis != 3)) {
99 char error_message[32];
100 fits_get_errstatus(status, error_message);
102 <<
"Can't find 2D image or data cube in FITS file: " << filename <<
"[" <<
m_hdu_number <<
"]"
103 <<
" status: " << status <<
" = " << error_message;
108 m_depth = naxis >= 3 ? naxes[2] : 1;
110 if (image_type < 0) {
129 fitsfile* fptr =
nullptr;
140 assert(fptr !=
nullptr);
142 if (empty_primary && acc->m_fd.getImageHdus().empty()) {
143 fits_create_img(fptr, FLOAT_IMG, 0,
nullptr, &status);
145 char error_message[32];
146 fits_get_errstatus(status, error_message);
148 <<
" status: " << status <<
" = " << error_message;
152 long naxes[2] = {width, height};
153 fits_create_img(fptr,
getImageType(), 2, naxes, &status);
156 char error_message[32];
157 fits_get_errstatus(status, error_message);
159 <<
" status: " << status <<
" = " << error_message;
166 auto headers = coord_system->getFitsHeaders();
167 for (
const auto& h : headers) {
172 auto str = serializer.
str();
174 fits_update_card(fptr, padded_key.
str().c_str(), str.c_str(), &status);
176 char error_message[32];
177 fits_get_errstatus(status, error_message);
179 <<
" status: " << status <<
" = " << error_message;
185 for (
int i = 0; i < height; i++) {
186 long first_pixel[2] = {1, i + 1};
187 fits_write_pix(fptr,
getDataType(), first_pixel, width, &buffer[0], &status);
191 char error_message[32];
192 fits_get_errstatus(status, error_message);
194 <<
" status: " << status <<
" = " << error_message;
219 long increment[3] = {1, 1, 1};
222 fits_read_subset(fptr,
getDataType(), first_pixel, last_pixel, increment,
223 nullptr, tile->getDataPtr(),
nullptr, &status);
225 char error_message[32];
226 fits_get_errstatus(status, error_message);
228 <<
" status: " << status <<
" = " << error_message;
244 long first_pixel[2] = {x + 1, y + 1};
245 long last_pixel[2] = {x + width, y + height};
250 char error_message[32];
251 fits_get_errstatus(status, error_message);
253 <<
" status: " << status <<
" = " << error_message;
255 fits_flush_buffer(fptr, 0, &status);