Package nom.tam.fits
Class Header
java.lang.Object
nom.tam.fits.Header
- All Implemented Interfaces:
FitsElement
This class describes methods to access and manipulate the header for a FITS
HDU. This class does not include code specific to particular types of HDU. As
of version 1.1 this class supports the long keyword convention which allows
long string keyword values to be split among multiple keywords
KEY = 'ABC&' /A comment CONTINUE 'DEF&' / Another comment CONTINUE 'GHIJKL 'The methods getStringValue(key), addValue(key,value,comment) and deleteCard(key) will get, create/update and delete long string values if the longStringsEnabled flag is set. This flag is set automatically when a FITS header with a LONGSTRN card is found. The value is not checked. It may also be set/unset using the static method setLongStringsEnabled(boolean). [So if a user wishes to ensure that it is not set, it should be unset after any header is read] When long strings are found in the FITS header users should be careful not to interpose new header cards within a long value sequence. When writing long strings, the comment is included in the last card. If a user is writing long strings, a the keyword LONGSTRN = 'OGIP 1.0' should be added to the FITS header, but this is not done automatically for the user.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final HashedList<HeaderCard>
The actual header data stored as a HashedList of HeaderCard's.private List<HeaderCard>
private long
Offset of this Header in the FITS fileprivate Comparator<String>
the sorter used to sort the header cards defore writing the header.private ArrayDataInput
Input descriptor last time header was readprivate Cursor<String,
HeaderCard> This iterator allows one to run through the list.private static final Logger
private static final int
private static final int
private int
Number of cards in header before duplicates were removed. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate void
addDuplicate
(HeaderCard dup) private void
addHeaderCard
(String key, HeaderCard card) void
addLine
(HeaderCard fcard) Add a card image to the header.void
Add or replace a key with the given boolean value and comment.void
Add or replace a key with the given double value and comment.void
Add or replace a key with the given double value and comment.void
Add or replace a key with the given long value and comment.void
Add or replace a key with the given string value and comment.void
addValue
(String key, BigDecimal val, String comment) Add or replace a key with the given bigdecimal value and comment.void
addValue
(String key, BigInteger val, String comment) Add or replace a key with the given BigInteger value and comment.void
addValue
(IFitsHeader key, boolean val) Add or replace a key with the given boolean value and comment.void
addValue
(IFitsHeader key, double val) Add or replace a key with the given double value and comment.void
addValue
(IFitsHeader key, int val) Add or replace a key with the given long value and comment.void
addValue
(IFitsHeader key, long val) Add or replace a key with the given long value and comment.void
addValue
(IFitsHeader key, String val) Add or replace a key with the given string value and comment.(package private) void
Move after the EXTEND keyword in images.card
(IFitsHeader key) get a builder for filling the header cards using the builder pattern.private void
Check if the given key is the next one available in the header.private void
cardCheck
(IFitsHeader key) Check if the given key is the next one available in the header.(package private) void
Ensure that the header begins with a valid set of keywords.(package private) void
checkEnd()
Ensure that the header has exactly one END keyword in the appropriate location.private void
checkFirstCard
(String key) final boolean
containsKey
(String key) Tests if the specified keyword is present in this table.final boolean
containsKey
(IFitsHeader key) Tests if the specified keyword is present in this table.void
Delete the card associated with the given key.void
deleteKey
(IFitsHeader key) Delete the card associated with the given key.private void
doCardChecks
(boolean isTable, boolean isExtension) void
Print the header to a given stream.Find the card associated with a given key.findCard
(IFitsHeader key) Find the card associated with a given key.Find the card associated with a given key.getBigDecimalValue
(String key) Get thedouble
value associated with the given key.getBigDecimalValue
(String key, BigDecimal dft) Get thedouble
value associated with the given key.Get thedouble
value associated with the given key.getBigIntegerValue
(String key) Get thelong
value associated with the given key.getBigIntegerValue
(String key, BigInteger dft) Get thelong
value associated with the given key.getBigIntegerValue
(IFitsHeader key, BigInteger dft) Get thelong
value associated with the given key.boolean
getBooleanValue
(String key) Get theboolean
value associated with the given key.boolean
getBooleanValue
(String key, boolean dft) Get theboolean
value associated with the given key.boolean
Get theboolean
value associated with the given key.boolean
getBooleanValue
(IFitsHeader key, boolean dft) Get theboolean
value associated with the given key.getCard
(int n) Deprecated.long
Return the size of the data including any needed padding.double
getDoubleValue
(String key) Get thedouble
value associated with the given key.double
getDoubleValue
(String key, double dft) Get thedouble
value associated with the given key.double
Get thedouble
value associated with the given key.double
getDoubleValue
(IFitsHeader key, double dft) Get thedouble
value associated with the given key.long
float
getFloatValue
(String key) Get thefloat
value associated with the given key.float
getFloatValue
(String key, float dft) float
getFloatValue
(IFitsHeader key) Get thefloat
value associated with the given key.float
getFloatValue
(IFitsHeader key, float dft) int
getIntValue
(String key) Get theint
value associated with the given key.int
getIntValue
(String key, int dft) int
getIntValue
(IFitsHeader key) Get theint
value associated with the given key.int
getIntValue
(IFitsHeader key, int dft) getKey
(int n) Deprecated.An iterator fromiterator(int)
oriterator()
should be used for sequential access to the header.long
getLongValue
(String key) Get thelong
value associated with the given key.long
getLongValue
(String key, long dft) Get thelong
value associated with the given key.long
getLongValue
(IFitsHeader key) Get thelong
value associated with the given key.long
getLongValue
(IFitsHeader key, long dft) Get thelong
value associated with the given key.int
int
long
long
getSize()
getStringValue
(String key) Get theString
value associated with the given key.getStringValue
(IFitsHeader header) boolean
(package private) int
Return the size of the header data including padding.void
insertComment
(String value) Add a COMMENT line.void
insertCommentStyle
(String header, String value) Add a line to the header using the COMMENT style, i.e., no '=' in column 9.void
insertHistory
(String value) Add a HISTORY line.(package private) boolean
Is this a valid header.iterator()
iterator
(int index) makeData()
nextCard()
(package private) void
Create a header for a null image.void
pointToData
(Data o) Deprecated.Use the appropriate Header constructor.(package private) Cursor<String,
HeaderCard> positionAfterIndex
(IFitsHeader prefix, int col) Find the end of a set of keywords describing a column or axis (or anything else terminated by an index.void
read
(ArrayDataInput dis) Read a stream for header data.static Header
readHeader
(ArrayDataInput dis) Create a header by reading the information from the input stream.void
removeCard
(String key) Deprecated.(package private) boolean
replaceKey
(String oldKey, String newKey) Replace the key with a new key.(package private) boolean
replaceKey
(IFitsHeader oldKey, IFitsHeader newKey) Replace the key with a new key.boolean
reset()
Reset the file pointer to the beginning of the headervoid
Indicate that we can use the current internal size of the Header as the 'original' size (e.g., perhaps we've rewritten the header to disk).void
rewrite()
Rewrite the header.boolean
void
setBitpix
(int val) Set the BITPIX value for the header.void
setHeaderSorter
(Comparator<String> headerSorter) Overwite the default header card sorter.static void
setLongStringsEnabled
(boolean flag) Deprecated.void
setNaxes
(int val) Set the value of the NAXIS keywordvoid
setNaxis
(int axis, int dim) Set the dimension for a given axis.void
setSimple
(boolean val) Set the SIMPLE keyword to the given value.void
setXtension
(String val) Set the XTENSION keyword to the given value.int
size()
Deprecated.usegetNumberOfCards()
.(package private) long
Calculate the unpadded size of the data segment from the header information.void
updateLine
(String key, HeaderCard card) Update a line in the headervoid
updateLine
(IFitsHeader key, HeaderCard card) Update a line in the headervoid
updateLines
(Header newHdr) Overwrite the lines in the header.void
write
(ArrayDataOutput dos) Write the current header (including any needed padding) to the output stream.
-
Field Details
-
MIN_NUMBER_OF_CARDS_FOR_VALID_HEADER
private static final int MIN_NUMBER_OF_CARDS_FOR_VALID_HEADER- See Also:
-
MAX_CARDS_PER_HEADER
private static final int MAX_CARDS_PER_HEADER- See Also:
-
LOG
-
cards
The actual header data stored as a HashedList of HeaderCard's. -
iter
This iterator allows one to run through the list. -
fileOffset
private long fileOffsetOffset of this Header in the FITS file -
duplicates
-
input
Input descriptor last time header was read -
originalCardCount
private int originalCardCountNumber of cards in header before duplicates were removed. A user may want to know how large the actual FITS header was on input. Since the keyword hash removes duplicate keys the internal size may be smaller. Added by Booth Hartley (IPAC/Caltech). -
headerSorter
the sorter used to sort the header cards defore writing the header.
-
-
Constructor Details
-
Header
public Header()Create an empty header -
Header
Create a header and populate it from the input stream- Parameters:
is
- The input stream where header information is expected.- Throws:
IOException
- if the header could not be read.TruncatedFileException
- if the stream ended prematurely
-
Header
Create a header which points to the given data object.- Parameters:
o
- The data object to be described.- Throws:
FitsException
- if the data was not valid for this header.
-
Header
Create a header and initialize it with a vector of strings.- Parameters:
newCards
- Card images to be placed in the header.
-
-
Method Details
-
readHeader
Create a header by reading the information from the input stream.- Parameters:
dis
- The input stream to read the data from.- Returns:
null
if there was a problem with the header; otherwise return the header read from the input stream.- Throws:
TruncatedFileException
- if the stream ended prematurelyIOException
- if the header could not be read.
-
setLongStringsEnabled
Deprecated.please useFitsFactory.setLongStringsEnabled(boolean)
instead.- Parameters:
flag
- the new value for long-string enabling.
-
addLine
Add a card image to the header.- Parameters:
fcard
- The card to be added.
-
addValue
Add or replace a key with the given boolean value and comment.- Parameters:
key
- The header key.val
- The boolean value.- Throws:
HeaderCardException
- If the parameters cannot build a valid FITS card.
-
addValue
Add or replace a key with the given double value and comment. Note that float values will be promoted to doubles.- Parameters:
key
- The header key.val
- The double value.- Throws:
HeaderCardException
- If the parameters cannot build a valid FITS card.
-
addValue
Add or replace a key with the given long value and comment. Note that int's will be promoted to long's.- Parameters:
key
- The header key.val
- The long value.- Throws:
HeaderCardException
- If the parameters cannot build a valid FITS card.
-
addValue
Add or replace a key with the given long value and comment. Note that int's will be promoted to long's.- Parameters:
key
- The header key.val
- The long value.- Throws:
HeaderCardException
- If the parameters cannot build a valid FITS card.
-
addValue
Add or replace a key with the given string value and comment.- Parameters:
key
- The header key.val
- The string value.- Throws:
HeaderCardException
- If the parameters cannot build a valid FITS card.
-
addValue
Add or replace a key with the given bigdecimal value and comment. Note that float values will be promoted to doubles.- Parameters:
key
- The header key.val
- The bigDecimal value.comment
- A comment to append to the card.- Throws:
HeaderCardException
- If the parameters cannot build a valid FITS card.
-
addValue
Add or replace a key with the given BigInteger value and comment. Note that float values will be promoted to doubles.- Parameters:
key
- The header key.val
- The BigInteger value.comment
- A comment to append to the card.- Throws:
HeaderCardException
- If the parameters cannot build a valid FITS card.
-
addValue
Add or replace a key with the given boolean value and comment.- Parameters:
key
- The header key.val
- The boolean value.comment
- A comment to append to the card.- Throws:
HeaderCardException
- If the parameters cannot build a valid FITS card.
-
addValue
public void addValue(String key, double val, int precision, String comment) throws HeaderCardException Add or replace a key with the given double value and comment. Note that float values will be promoted to doubles.- Parameters:
key
- The header key.val
- The double value.precision
- The fixed number of decimal places to show.comment
- A comment to append to the card.- Throws:
HeaderCardException
- If the parameters cannot build a valid FITS card.
-
addValue
Add or replace a key with the given double value and comment. Note that float values will be promoted to doubles.- Parameters:
key
- The header key.val
- The double value.comment
- A comment to append to the card.- Throws:
HeaderCardException
- If the parameters cannot build a valid FITS card.
-
addValue
Add or replace a key with the given long value and comment. Note that int's will be promoted to long's.- Parameters:
key
- The header key.val
- The long value.comment
- A comment to append to the card.- Throws:
HeaderCardException
- If the parameters cannot build a valid FITS card.
-
addValue
Add or replace a key with the given string value and comment.- Parameters:
key
- The header key.val
- The string value.comment
- A comment to append to the card.- Throws:
HeaderCardException
- If the parameters cannot build a valid FITS card.
-
card
get a builder for filling the header cards using the builder pattern.- Parameters:
key
- the key for the first card.- Returns:
- the builder for header cards.
-
containsKey
Tests if the specified keyword is present in this table.- Parameters:
key
- the keyword to be found.- Returns:
true
if the specified keyword is present in this table;false
otherwise.
-
containsKey
Tests if the specified keyword is present in this table.- Parameters:
key
- the keyword to be found.- Returns:
true
if the specified keyword is present in this table;false
otherwise.
-
deleteKey
Delete the card associated with the given key. Nothing occurs if the key is not found.- Parameters:
key
- The header key.
-
deleteKey
Delete the card associated with the given key. Nothing occurs if the key is not found.- Parameters:
key
- The header key.
-
dumpHeader
Print the header to a given stream.- Parameters:
ps
- the stream to which the card images are dumped.
-
findCard
Find the card associated with a given key. If found this sets the mark to the card, otherwise it unsets the mark.- Parameters:
key
- The header key.- Returns:
null
if the keyword could not be found; return the HeaderCard object otherwise.
-
findCard
Find the card associated with a given key. If found this sets the mark to the card, otherwise it unsets the mark.- Parameters:
key
- The header key.- Returns:
null
if the keyword could not be found; return the HeaderCard object otherwise.
-
findKey
Find the card associated with a given key.- Parameters:
key
- The header key.- Returns:
null
if the keyword could not be found; return the card image otherwise.
-
getBigDecimalValue
Get thedouble
value associated with the given key.- Parameters:
key
- The header key.- Returns:
- The associated value or 0.0 if not found.
-
getBigDecimalValue
Get thedouble
value associated with the given key.- Parameters:
key
- The header key.- Returns:
- The associated value or 0.0 if not found.
-
getBigDecimalValue
Get thedouble
value associated with the given key.- Parameters:
key
- The header key.dft
- The default value to return if the key cannot be found.- Returns:
- the associated value.
-
getBigIntegerValue
Get thelong
value associated with the given key.- Parameters:
key
- The header key.dft
- The default value to be returned if the key cannot be found.- Returns:
- the associated value.
-
getBigIntegerValue
Get thelong
value associated with the given key.- Parameters:
key
- The header key.- Returns:
- The associated value or 0 if not found.
-
getBigIntegerValue
Get thelong
value associated with the given key.- Parameters:
key
- The header key.dft
- The default value to be returned if the key cannot be found.- Returns:
- the associated value.
-
getBooleanValue
Get theboolean
value associated with the given key.- Parameters:
key
- The header key.- Returns:
- The value found, or false if not found or if the keyword is not a logical keyword.
-
getBooleanValue
Get theboolean
value associated with the given key.- Parameters:
key
- The header key.dft
- The value to be returned if the key cannot be found or if the parameter does not seem to be a boolean.- Returns:
- the associated value.
-
getBooleanValue
Get theboolean
value associated with the given key.- Parameters:
key
- The header key.- Returns:
- The value found, or false if not found or if the keyword is not a logical keyword.
-
getBooleanValue
Get theboolean
value associated with the given key.- Parameters:
key
- The header key.dft
- The value to be returned if the key cannot be found or if the parameter does not seem to be a boolean.- Returns:
- the associated value.
-
getCard
Deprecated.An iterator fromiterator(int)
oriterator()
should be used for sequential access to the header.Get the n'th card image in the header- Parameters:
n
- the card index to get- Returns:
- the card image; return
null
if the n'th card does not exist.
-
getDataSize
public long getDataSize()Return the size of the data including any needed padding.- Returns:
- the data segment size including any needed padding.
-
getDoubleValue
Get thedouble
value associated with the given key.- Parameters:
key
- The header key.- Returns:
- The associated value or 0.0 if not found.
-
getDoubleValue
Get thedouble
value associated with the given key.- Parameters:
key
- The header key.dft
- The default value to return if the key cannot be found.- Returns:
- the associated value.
-
getDoubleValue
Get thedouble
value associated with the given key.- Parameters:
key
- The header key.- Returns:
- The associated value or 0.0 if not found.
-
getDoubleValue
Get thedouble
value associated with the given key.- Parameters:
key
- The header key.dft
- The default value to return if the key cannot be found.- Returns:
- the associated value.
-
getDuplicates
- Returns:
- the list of duplicate cards. Note that when the header is read in, only the last entry for a given keyword is retained in the active header. This method returns earlier cards that have been discarded in the order in which they were encountered in the header. It is possible for there to be many cards with the same keyword in this list.
-
getFileOffset
public long getFileOffset()- Specified by:
getFileOffset
in interfaceFitsElement
- Returns:
- Get the offset of this header
-
getFloatValue
Get thefloat
value associated with the given key.- Parameters:
key
- The header key.- Returns:
- The associated value or 0.0 if not found.
-
getFloatValue
- Parameters:
key
- The header key.dft
- The value to be returned if the key is not found.- Returns:
- the
float
value associated with the given key.
-
getFloatValue
Get thefloat
value associated with the given key.- Parameters:
key
- The header key.- Returns:
- The associated value or 0.0 if not found.
-
getFloatValue
- Parameters:
key
- The header key.dft
- The value to be returned if the key is not found.- Returns:
- the
float
value associated with the given key.
-
getIntValue
Get theint
value associated with the given key.- Parameters:
key
- The header key.- Returns:
- The associated value or 0 if not found.
-
getIntValue
- Parameters:
key
- The header key.dft
- The value to be returned if the key is not found.- Returns:
- the value associated with the key as an int.
-
getIntValue
Get theint
value associated with the given key.- Parameters:
key
- The header key.- Returns:
- The associated value or 0 if not found.
-
getIntValue
- Parameters:
key
- The header key.dft
- The value to be returned if the key is not found.- Returns:
- the value associated with the key as an int.
-
getKey
Deprecated.An iterator fromiterator(int)
oriterator()
should be used for sequential access to the header.Get the n'th key in the header.- Parameters:
n
- the index of the key- Returns:
- the card image; return
null
if the n'th key does not exist.
-
getLongValue
Get thelong
value associated with the given key.- Parameters:
key
- The header key.- Returns:
- The associated value or 0 if not found.
-
getLongValue
Get thelong
value associated with the given key.- Parameters:
key
- The header key.dft
- The default value to be returned if the key cannot be found.- Returns:
- the associated value.
-
getLongValue
Get thelong
value associated with the given key.- Parameters:
key
- The header key.- Returns:
- The associated value or 0 if not found.
-
getLongValue
Get thelong
value associated with the given key.- Parameters:
key
- The header key.dft
- The default value to be returned if the key cannot be found.- Returns:
- the associated value.
-
getNumberOfCards
public int getNumberOfCards()- Returns:
- the number of cards in the header
-
getNumberOfPhysicalCards
public int getNumberOfPhysicalCards()- Returns:
- the number of physical cards in the header.
-
getOriginalSize
public long getOriginalSize()- Returns:
- the size of the original header in bytes.
-
getSize
public long getSize()- Specified by:
getSize
in interfaceFitsElement
- Returns:
- the size of the header in bytes
-
getStringValue
-
getStringValue
Get theString
value associated with the given key.- Parameters:
key
- The header key.- Returns:
- The associated value or null if not found or if the value is not a string.
-
hadDuplicates
public boolean hadDuplicates()- Returns:
- Were duplicate header keys found when this record was read in?
-
insertComment
Add a COMMENT line.- Parameters:
value
- The comment.- Throws:
HeaderCardException
- If the parameter is not a valid FITS comment.
-
insertCommentStyle
Add a line to the header using the COMMENT style, i.e., no '=' in column 9.- Parameters:
header
- The comment style header.value
- A string to follow the header.
-
insertHistory
Add a HISTORY line.- Parameters:
value
- The history record.- Throws:
HeaderCardException
- If the parameter is not a valid FITS comment.
-
iterator
- Returns:
- an iterator over the header cards
-
iterator
- Parameters:
index
- the card index to start the iterator- Returns:
- an iterator over the header cards starting at an index
-
makeData
- Returns:
- Create the data element corresponding to the current header
- Throws:
FitsException
- if the header did not contain enough information to detect the type of the data
-
nextCard
- Returns:
- the next card in the Header using the current iterator
-
pointToData
Deprecated.Use the appropriate Header constructor.Create a header which points to the given data object.- Parameters:
o
- The data object to be described.- Throws:
FitsException
- if the data was not valid for this header.
-
read
Read a stream for header data.- Specified by:
read
in interfaceFitsElement
- Parameters:
dis
- The input stream to read the data from.- Throws:
TruncatedFileException
- the the stream ended prematurelyIOException
- if the operation failed
-
removeCard
Deprecated.Delete a key.- Parameters:
key
- The header key.- Throws:
HeaderCardException
- if the operation failed
-
reset
public boolean reset()Reset the file pointer to the beginning of the header- Specified by:
reset
in interfaceFitsElement
- Returns:
- True if the reset succeeded.
-
resetOriginalSize
public void resetOriginalSize()Indicate that we can use the current internal size of the Header as the 'original' size (e.g., perhaps we've rewritten the header to disk). Note that affects the results of rewriteable(), so users should not call this method unless the underlying data has actually been updated. -
rewrite
Rewrite the header.- Specified by:
rewrite
in interfaceFitsElement
- Throws:
FitsException
- if the rewrite was unsuccessful.IOException
- if the rewrite was unsuccessful.
-
rewriteable
public boolean rewriteable()- Specified by:
rewriteable
in interfaceFitsElement
- Returns:
true
if this element can be rewritten?
-
setBitpix
public void setBitpix(int val) Set the BITPIX value for the header. The following values are permitted by FITS conventions:- 8 -- signed byte data. Also used for tables.
- 16 -- signed short data.
- 32 -- signed int data.
- 64 -- signed long data.
- -32 -- IEEE 32 bit floating point numbers.
- -64 -- IEEE 64 bit floating point numbers.
- Parameters:
val
- The value set by the user.
-
setHeaderSorter
Overwite the default header card sorter.- Parameters:
headerSorter
- the sorter tu use or null to disable sorting
-
setNaxes
public void setNaxes(int val) Set the value of the NAXIS keyword- Parameters:
val
- The dimensionality of the data.
-
setNaxis
public void setNaxis(int axis, int dim) Set the dimension for a given axis.- Parameters:
axis
- The axis being set.dim
- The dimension
-
setSimple
public void setSimple(boolean val) Set the SIMPLE keyword to the given value.- Parameters:
val
- The boolean value -- Should be true for FITS data.
-
setXtension
Set the XTENSION keyword to the given value.- Parameters:
val
- The name of the extension.
-
size
Deprecated.usegetNumberOfCards()
. The units of the size of the header may be unclear.- Returns:
- the number of cards in the header
-
updateLine
Update a line in the header- Parameters:
key
- The key of the card to be replaced.card
- A new card- Throws:
HeaderCardException
- if the operation failed
-
updateLine
Update a line in the header- Parameters:
key
- The key of the card to be replaced.card
- A new card- Throws:
HeaderCardException
- if the operation failed
-
updateLines
Overwrite the lines in the header. Add the new PHDU header to the current one. If keywords appear twice, the new value and comment overwrite the current contents. By Richard J Mathar.- Parameters:
newHdr
- the list of new header data lines to replace the current ones.- Throws:
HeaderCardException
- if the operation failed
-
write
Write the current header (including any needed padding) to the output stream.- Specified by:
write
in interfaceFitsElement
- Parameters:
dos
- The output stream to which the data is to be written.- Throws:
FitsException
- if the header could not be written.
-
addDuplicate
-
addHeaderCard
-
cardCheck
Check if the given key is the next one available in the header.- Throws:
FitsException
-
cardCheck
Check if the given key is the next one available in the header.- Throws:
FitsException
-
checkFirstCard
- Throws:
IOException
-
doCardChecks
- Throws:
FitsException
-
afterExtend
void afterExtend()Move after the EXTEND keyword in images. Used in bug fix noted by V. Forchi -
checkBeginning
Ensure that the header begins with a valid set of keywords. Note that we do not check the values of these keywords.- Throws:
FitsException
-
checkEnd
void checkEnd()Ensure that the header has exactly one END keyword in the appropriate location. -
headerSize
int headerSize()Return the size of the header data including padding.- Returns:
- the header size including any needed padding.
-
isValidHeader
boolean isValidHeader()Is this a valid header.- Returns:
true
for a valid header,false
otherwise.
-
nullImage
void nullImage()Create a header for a null image. -
positionAfterIndex
Find the end of a set of keywords describing a column or axis (or anything else terminated by an index. This routine leaves the header ready to add keywords after any existing keywords with the index specified. The user should specify a prefix to a keyword that is guaranteed to be present. -
replaceKey
Replace the key with a new key. Typically this is used when deleting or inserting columns so that TFORMx -> TFORMx-1- Parameters:
oldKey
- The old header keyword.newKey
- the new header keyword.- Returns:
true
if the card was replaced.- Throws:
HeaderCardException
- IfnewKey
is not a valid FITS keyword.
-
replaceKey
Replace the key with a new key. Typically this is used when deleting or inserting columns so that TFORMx -> TFORMx-1- Parameters:
oldKey
- The old header keyword.newKey
- the new header keyword.- Returns:
true
if the card was replaced.- Throws:
HeaderCardException
- IfnewKey
is not a valid FITS keyword.
-
trueDataSize
long trueDataSize()Calculate the unpadded size of the data segment from the header information.- Returns:
- the unpadded data segment size.
-
iterator(int)
oriterator()
should be used for sequential access to the header.