Note that it is not necessary to construct a FITSKeywordUtil object since you can use its static functions directly.
Record rec;
rec.define("hello", 6.5);
rec.define("world", True);
Vector<Int> naxis(5);
naxis(0) = 128;
naxis(1) = 64;
naxis(2) = 32;
naxis(3) = 16;
naxis(4) = 8;
rec.define("naxis", naxis);
// fields can have comments
rec.setComment("hello","A comment for HELLO");
// Add a comment to the rec
FITSKeywordUtil::addComment(rec,"My comment goes here");
// Create an empty FitsKeywordList, containing only "SIMPLE=T"
FitsKeywordList kwl = FITSKeywordUtil::makeKeywordList();
// and add the fields in rec to this list
FITSKeywordUtil::addKeywords(kwl, rec);
Record rec;
FitsKeywordList kwl;
ConstFitsKeywordList kwlRO;
Vector<String> ignore(1);
ignore(1)= "simple"; // ignore the SIMPLE keyword
FITSKeywordUtil::getKeywords(rec, kwlRO, ignore);
Add the fields from in to the out FitsKeywordList as keywords. Upcases field names, turns arrays into indexed keywords, tries to interleave e.g. crval, crpix, etc. COMMENT* are standalone comments, and HISTORY* are history cards. (COMMENT and HISTORY may be of any capitalization). Note however that you will generally add History keywords with the class FITSHistoryUtil. Returns False in the following instances:
Extract keywords from in and define them in out. Output field names are downcased. Keywords matching the names in ignore (which are treated as regular expressions) are not created in out. This test happens after the field names have been downcased. All indexed keywords will be ignored if the root name is in the ignore vector (e.g. NAXIS implies NAXIS4 and other indexed NAXIS keywords are ignored). By default history keywords are ignored, since they should be handled in class FITSHistoryUtil. This always returns True.
Remove some keywords from a record. This can be useful if, e.g., you first need to construct a coordinate system from the header, but you later want to remove CROTA etc. The strings in the ignore vector are treated as regular expressions.
Convert a TDIMnnn keyword value into an IPosition. This returns False if the tdim string has an invalid format.
Convert an IPosition to a String appropriate for use as the value of a TDIMnnn keyword. This returns False if the converted string has more than 71 characters (making it impossible to be used as a string keyword value).
Add a comment/history to the supplied record. It will automatically figure out a unique name and add it to the end. If the comment contains embedded newlines this function will break the string across multiple FITS comment entries. At present it will not however make sure that the strings are short enough (i.e. <= 72 characters per line).
Note that while you can add history anywhere into header, in the actual keyword list they will always appear after the END keyword.
Note however that you will generally manipulate History keywords with the class FITSHistoryUtil.