public class FitsConstants
extends java.lang.Object
Modifier and Type | Field | Description |
---|---|---|
static nom.tam.fits.HeaderCard |
END_CARD |
Image of end-of-header card.
|
static int |
FITS_BLOCK |
Standard size of a FITS block in bytes.
|
static int |
MAX_NCOLSTD |
Maximum number of columns in standard FITS BINTABLE extension.
|
static java.lang.String |
NDARRAY_ORIGIN |
FITS header card for indicating NDArray origin values.
|
static java.lang.String |
NDARRAY_PREFIX |
Prefix for NDArray-related FITS header cards.
|
static java.lang.String |
NDX_PREFIX |
Prefix for NDX-related FITS header cards.
|
static java.lang.String |
NDX_XML |
FITS header card for location (relative URL) of XML representation.
|
static boolean |
REQUIRE_HIERARCH |
Whether HIERARCH convention is used; true by default.
|
static java.lang.String |
WCS_ENCODING |
Default encoding used for writing WCS into FITS headers.
|
Constructor | Description |
---|---|
FitsConstants() |
Modifier and Type | Method | Description |
---|---|---|
static void |
addTrimmedValue(nom.tam.fits.Header hdr,
java.lang.String key,
java.lang.String value,
java.lang.String comment) |
Adds a string-valued card to the header.
|
static void |
checkColumnCount(WideFits wide,
int ncol) |
Checks that a table with the given number of columns can be written.
|
static void |
configureHierarch() |
Ensures that use of the HIERARCH convention when dealing with
FITS headers is set to the state expected for STIL operation.
|
static nom.tam.fits.HeaderCard |
createHeaderCard(java.lang.String cardImage) |
Create a HeaderCard from a FITS card image.
|
static nom.tam.fits.Header |
createUnsortedHeader() |
Creates a Header instance which does not perform any unsolicited
reordering of the header cards.
|
static java.util.List |
defaultFitsExtensions() |
Gets the default permitted list of extensions which identify a
FITS resource in the path part of a URL.
|
static long |
getDataSize(nom.tam.fits.Header hdr) |
Utility function to find the number of bytes in the data segment
of an HDU.
|
static nom.tam.util.ArrayDataInput |
getInputStreamStart(uk.ac.starlink.util.DataSource datsrc) |
Returns an input stream which can be used with the various FITS
classes based on a given DataSource object, positioned at the
start of the stream.
|
static boolean |
isMagic(byte[] buffer) |
Indicates whether the supplied buffer is the start of a FITS file.
|
static int |
readHeader(nom.tam.fits.Header hdr,
nom.tam.util.ArrayDataInput strm) |
Populates a header from an input stream, reporting its length in bytes.
|
static long |
skipHDUs(nom.tam.util.ArrayDataInput stream,
int nskip) |
Skips forward over a given number of HDUs in the supplied stream.
|
static void |
writeEmptyPrimary(java.io.DataOutput strm) |
Writes a null header representing an empty primary HDU to a stream.
|
static void |
writeHeader(java.io.DataOutput strm,
nom.tam.fits.Header hdr) |
Writes a header object to a DataOutput.
|
public static final java.lang.String NDARRAY_PREFIX
public static final nom.tam.fits.HeaderCard END_CARD
public static final java.lang.String NDARRAY_ORIGIN
public static final java.lang.String NDX_PREFIX
public static final java.lang.String NDX_XML
public static final java.lang.String WCS_ENCODING
public static final int FITS_BLOCK
public static final int MAX_NCOLSTD
public static boolean REQUIRE_HIERARCH
public static java.util.List defaultFitsExtensions()
public static void configureHierarch()
The general idea is that this is only issued once per JVM. If other components are resetting the hierarch handling that might not be enough, but there's no mechanism to ensure that it stays set anyway.
The main reason this is necessary is that WideFits handling requires HIERARCH, but there is no per-call configuration of whether the convention is in use, so it has to be set on a global basis.
public static nom.tam.fits.Header createUnsortedHeader()
public static nom.tam.fits.HeaderCard createHeaderCard(java.lang.String cardImage)
cardImage
- the 80 character card imagepublic static long skipHDUs(nom.tam.util.ArrayDataInput stream, int nskip) throws java.io.IOException
stream
- the stream to skip throughnskip
- the number of HDUs to skipjava.io.IOException
public static boolean isMagic(byte[] buffer)
buffer
- a byte buffer containing
the start of a file to testpublic static nom.tam.util.ArrayDataInput getInputStreamStart(uk.ac.starlink.util.DataSource datsrc) throws java.io.IOException
datsrc
- the DataSource pointing to the file/HDU requiredjava.io.IOException
public static int readHeader(nom.tam.fits.Header hdr, nom.tam.util.ArrayDataInput strm) throws nom.tam.fits.TruncatedFileException, java.io.IOException
Header.read(nom.tam.util.ArrayDataInput)
, but
it returns the number of bytes read from the input stream in order
to populate the header (including any padding bytes). There is
no way to retrieve this information from the Header class
in general; though Header.getSize()
will sometimes give you the right answer, in the case of
duplicated header keywords it can give an underestimate.
This could be seen as a bug in nom.tam.fits classes,
but there may be code somewhere which relies on that behaviour.
You can make a Header from scratch by doing
Header hdr = new Header(); int headsize = read( hdr, strm );This method also differs from the Header implementation in that it does not print warnings to standard output about duplicate keywords.
hdr
- the header to populatestrm
- the input stream supplying the datanom.tam.fits.TruncatedFileException
java.io.IOException
Header.read(nom.tam.util.ArrayDataInput)
public static void writeHeader(java.io.DataOutput strm, nom.tam.fits.Header hdr) throws java.io.IOException
strm
- destination streamhdr
- the header to writejava.io.IOException
public static void writeEmptyPrimary(java.io.DataOutput strm) throws java.io.IOException
strm
- stream to write tojava.io.IOException
public static long getDataSize(nom.tam.fits.Header hdr)
hdr
- the Headerpublic static void addTrimmedValue(nom.tam.fits.Header hdr, java.lang.String key, java.lang.String value, java.lang.String comment) throws nom.tam.fits.HeaderCardException
hdr
- headerkey
- card keyvalue
- card valuecomment
- card commentnom.tam.fits.HeaderCardException
public static void checkColumnCount(WideFits wide, int ncol) throws java.io.IOException
wide
- extended column convention
- may be null for FITS standard behaviour onlyncol
- number of columns to writejava.io.IOException
- if there are too many columnsCopyright © 2018 Central Laboratory of the Research Councils. All Rights Reserved.