Loading data-access/engine/src/common/include/fitsfiles.hpp +3 −0 Original line number Diff line number Diff line Loading @@ -39,9 +39,12 @@ namespace fitsfiles key_values_by_type key_values; }; std::vector<Hdu> fname2hdrstr(std::string filename, const std::vector<std::string> extra_cards, unsigned int maxHduPos, unsigned int minHduPos = 1, const keys_by_type *keys = nullptr); std::vector<Hdu> fname2hdrstr(std::string filename, unsigned int maxHduPos, unsigned int minHduPos = 1, const keys_by_type *keys = nullptr); // for services std::string read_header(std::string pathname, unsigned int hdunum); Loading data-access/engine/src/common/src/fitsfiles.cpp +39 −1 Original line number Diff line number Diff line Loading @@ -362,8 +362,28 @@ string fitsfiles::append_card_if_not_in_header(string header, const vector<fits_ // deprecated void append_cards(string& hdr, vector<string> cards) { LOG_trace(__func__); static const string end_card{"END "}; size_t hdr_len = hdr.length(); if(hdr_len > 80) { if(end_card.compare(hdr.substr(hdr_len-80 ,80)) == 0) hdr.erase(hdr_len-80,80); for(long unsigned int i=0; i<cards.size(); i++) hdr += cards[i]; hdr += end_card; } } vector<fitsfiles::Hdu> fitsfiles::fname2hdrstr( string filename, unsigned int maxHduPos, unsigned int minHduPos, string filename, const vector<string> extra_cards, unsigned int maxHduPos, unsigned int minHduPos, const keys_by_type* keys) { LOG_trace(__func__); Loading @@ -384,6 +404,14 @@ vector<fitsfiles::Hdu> fitsfiles::fname2hdrstr( const bool apply_fixes = true; string header_str{hdr.get_header(apply_fixes)}; // append extra cards bool extra_cards_given = (extra_cards.size() > 0); if(extra_cards_given) { // FIXME check for duplicates before appending append_cards(header_str, extra_cards); } key_values_by_type key_values; if(keys != nullptr) Loading @@ -397,3 +425,13 @@ vector<fitsfiles::Hdu> fitsfiles::fname2hdrstr( return vec_hdrs; } vector<fitsfiles::Hdu> fitsfiles::fname2hdrstr( string filename, unsigned int maxHduPos, unsigned int minHduPos, const keys_by_type* keys) { LOG_trace(__func__); const vector<string> extra_cards; //no cards return fitsfiles::fname2hdrstr(filename, extra_cards, maxHduPos, minHduPos, keys); } Loading
data-access/engine/src/common/include/fitsfiles.hpp +3 −0 Original line number Diff line number Diff line Loading @@ -39,9 +39,12 @@ namespace fitsfiles key_values_by_type key_values; }; std::vector<Hdu> fname2hdrstr(std::string filename, const std::vector<std::string> extra_cards, unsigned int maxHduPos, unsigned int minHduPos = 1, const keys_by_type *keys = nullptr); std::vector<Hdu> fname2hdrstr(std::string filename, unsigned int maxHduPos, unsigned int minHduPos = 1, const keys_by_type *keys = nullptr); // for services std::string read_header(std::string pathname, unsigned int hdunum); Loading
data-access/engine/src/common/src/fitsfiles.cpp +39 −1 Original line number Diff line number Diff line Loading @@ -362,8 +362,28 @@ string fitsfiles::append_card_if_not_in_header(string header, const vector<fits_ // deprecated void append_cards(string& hdr, vector<string> cards) { LOG_trace(__func__); static const string end_card{"END "}; size_t hdr_len = hdr.length(); if(hdr_len > 80) { if(end_card.compare(hdr.substr(hdr_len-80 ,80)) == 0) hdr.erase(hdr_len-80,80); for(long unsigned int i=0; i<cards.size(); i++) hdr += cards[i]; hdr += end_card; } } vector<fitsfiles::Hdu> fitsfiles::fname2hdrstr( string filename, unsigned int maxHduPos, unsigned int minHduPos, string filename, const vector<string> extra_cards, unsigned int maxHduPos, unsigned int minHduPos, const keys_by_type* keys) { LOG_trace(__func__); Loading @@ -384,6 +404,14 @@ vector<fitsfiles::Hdu> fitsfiles::fname2hdrstr( const bool apply_fixes = true; string header_str{hdr.get_header(apply_fixes)}; // append extra cards bool extra_cards_given = (extra_cards.size() > 0); if(extra_cards_given) { // FIXME check for duplicates before appending append_cards(header_str, extra_cards); } key_values_by_type key_values; if(keys != nullptr) Loading @@ -397,3 +425,13 @@ vector<fitsfiles::Hdu> fitsfiles::fname2hdrstr( return vec_hdrs; } vector<fitsfiles::Hdu> fitsfiles::fname2hdrstr( string filename, unsigned int maxHduPos, unsigned int minHduPos, const keys_by_type* keys) { LOG_trace(__func__); const vector<string> extra_cards; //no cards return fitsfiles::fname2hdrstr(filename, extra_cards, maxHduPos, minHduPos, keys); }