41#include <libdap/AttrTable.h>
42#include <libdap/DAS.h>
44#include "fits_read_attributes.h"
49bool fits_handler::fits_read_attributes(DAS &das,
const string &filename,
string &error)
53 if (fits_open_file(&fptr, filename.c_str(), READONLY, &status)) {
54 error =
"Can not open fits file ";
60 for (
int ii = 1; !(fits_movabs_hdu(fptr, ii, &hdutype, &status)); ii++) {
61 AttrTable *at =
new AttrTable();
65 if (fits_get_hdrpos(fptr, &nkeys, &keypos, &status)) {
66 fits_close_file(fptr, &status);
70 for (
int jj = 1; jj <= nkeys; jj++) {
71 char name[FLEN_KEYWORD];
72 char value[FLEN_VALUE];
73 char comment[FLEN_COMMENT];
75 if (fits_read_keyn(fptr, jj, name, value, comment, &status)) {
76 fits_close_file(fptr, &status);
89 string s_comment =
"";
101 s_name = (string)
"key_" + tmp;
119 at->append_attr(s_name,
"String", com);
131 das.add_table(oss.str(), at);
134 if (status == END_OF_FILE)
138 fits_close_file(fptr, &status);
142 if (fits_close_file(fptr, &status))