Package uk.ac.starlink.fits
Class AbstractWideFits
java.lang.Object
uk.ac.starlink.fits.AbstractWideFits
- All Implemented Interfaces:
WideFits
Implementations of the WideFits interface.
This class fills in the details of the general idea defined in
WideFits. Static methods provide concrete implementations.
The Wide FITS convention is defined in the file (fits/src/docs/)wide-fits.txt
- Since:
- 27 Jul 2017
- Author:
- Mark Taylor
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final String
Index of container column hosting extended column data.static final String
Header key for extended column count - includes standard ones.Fields inherited from interface uk.ac.starlink.fits.WideFits
DEFAULT, MAX_NCOLSTD
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
AbstractWideFits
(int icolContainer, int extColMax, CardFactory cardFactory, String implName) Constructor. -
Method Summary
Modifier and TypeMethodDescriptionstatic WideFits
createAlphaWideFits
(int icolContainer) Returns a WideFits instance that uses normal TFORMaaa headers where aaa is a 3-digit base-26 integer (each digit is [A-Z]).static WideFits
createHierarchWideFits
(int icolContainer) Returns a WideFits instance that uses headers of the form HIERARCH XT TFORMnnnnn, using the ESO HIERARCH convention.getContainerColumnCards
(long nbyteExt, long nslice) Returns an array of per-HDU header cards that describe the single container column (with index icolContainer) used to implement this convention in a BINTABLE HDU.int
Returns the index of the column used (if any) by this specification for extended column data.int
Maximum extended number of columns that can be represented by this convention.int
getExtendedColumnCount
(FitsHeader hdr, int ncolStd) Returns the total number of columns, including extended ones, described by a FITS header according to this convention.getExtensionCards
(int ncolExt) Returns an array of per-HDU header cards that announce the operation of this convention in a BINTABLE HDU.static void
logWideRead
(Logger logger, int nStdcol, int nAllcol) Utility method to write a log message indicating that this convention is being used to read a FITS file.static void
logWideWrite
(Logger logger, int nStdcol, int nAllcol) Utility method to write a log message indicating that this convention is being used to write a FITS file.toString()
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface uk.ac.starlink.fits.WideFits
createExtendedHeader
-
Field Details
-
KEY_ICOL_CONTAINER
Index of container column hosting extended column data.- See Also:
-
KEY_NCOL_EXT
Header key for extended column count - includes standard ones.- See Also:
-
-
Constructor Details
-
AbstractWideFits
protected AbstractWideFits(int icolContainer, int extColMax, CardFactory cardFactory, String implName) Constructor.- Parameters:
icolContainer
- 1-based index of container column used for storing extended column data; usually 999extColMax
- maximum number of extended columns (including standard columns) that can be represented by this conventioncardFactory
- object which should be used to construct header cards associated with this implementationimplName
- base name of this implementation
-
-
Method Details
-
getContainerColumnIndex
public int getContainerColumnIndex()Description copied from interface:WideFits
Returns the index of the column used (if any) by this specification for extended column data. The result is the FITS column index, so the first column in the table is 1. This value is equal to the number of standard columns if extended columns are included.Under normal circumstances, this returns 999 (
WideFits.MAX_NCOLSTD
).- Specified by:
getContainerColumnIndex
in interfaceWideFits
- Returns:
- 1-based index of container column
-
getExtColumnMax
public int getExtColumnMax()Description copied from interface:WideFits
Maximum extended number of columns that can be represented by this convention. This value includes the standard columns.- Specified by:
getExtColumnMax
in interfaceWideFits
- Returns:
- maximum extended column count
-
getContainerColumnCards
Description copied from interface:WideFits
Returns an array of per-HDU header cards that describe the single container column (with index icolContainer) used to implement this convention in a BINTABLE HDU.- Specified by:
getContainerColumnCards
in interfaceWideFits
- Parameters:
nbyteExt
- number of bytes per row in container columnnslice
- if >0 this will result in a TDIMnnn header that gives a 2-element shape, with the supplied value being the second element; if you don't want TDIMnnn, use 0- Returns:
- cards to append to BINTABLE header
-
getExtensionCards
Description copied from interface:WideFits
Returns an array of per-HDU header cards that announce the operation of this convention in a BINTABLE HDU.- Specified by:
getExtensionCards
in interfaceWideFits
- Parameters:
ncolExt
- total column count including extended- Returns:
- cards to append to BINTABLE header
-
getExtendedColumnCount
Description copied from interface:WideFits
Returns the total number of columns, including extended ones, described by a FITS header according to this convention.- Specified by:
getExtendedColumnCount
in interfaceWideFits
- Parameters:
hdr
- FITS headerncolStd
- number of 'standard' BINTABLE columns, got from TFIELDS header- Returns:
- extended number of columns, includes standard ones
-
toString
-
createAlphaWideFits
Returns a WideFits instance that uses normal TFORMaaa headers where aaa is a 3-digit base-26 integer (each digit is [A-Z]).Note: this implementation is a historical relic. It could be removed if its maintenance becomes problematic.
- Parameters:
icolContainer
- 1-based index of container column used for storing extended column data; usually 999- Returns:
- WideFits implementation
-
createHierarchWideFits
Returns a WideFits instance that uses headers of the form HIERARCH XT TFORMnnnnn, using the ESO HIERARCH convention.- Parameters:
icolContainer
- 1-based index of container column used for storing extended column data; usually 999- Returns:
- WideFits implementation
-
logWideWrite
Utility method to write a log message indicating that this convention is being used to write a FITS file.- Parameters:
logger
- loggernStdcol
- number of standard FITS columnsnAllcol
- total number of columns including extended
-
logWideRead
Utility method to write a log message indicating that this convention is being used to read a FITS file.- Parameters:
logger
- loggernStdcol
- number of standard FITS columnsnAllcol
- total number of columns including extended
-