
nom.tam.fits.header.extra.CXCExt Maven / Gradle / Ivy
package nom.tam.fits.header.extra;
import nom.tam.fits.header.DateTime;
/*
* #%L
* nom.tam FITS library
* %%
* Copyright (C) 1996 - 2024 nom-tam-fits
* %%
* This is free and unencumbered software released into the public domain.
*
* Anyone is free to copy, modify, publish, use, compile, sell, or
* distribute this software, either in source code form or as a compiled
* binary, for any purpose, commercial or non-commercial, and by any
* means.
*
* In jurisdictions that recognize copyright laws, the author or authors
* of this software dedicate any and all copyright interest in the
* software to the public domain. We make this dedication for the benefit
* of the public at large and to the detriment of our heirs and
* successors. We intend this dedication to be an overt act of
* relinquishment in perpetuity of all present and future rights to this
* software under copyright law.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
* IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
* OTHER DEALINGS IN THE SOFTWARE.
* #L%
*/
import nom.tam.fits.header.FitsKey;
import nom.tam.fits.header.IFitsHeader;
import nom.tam.fits.header.InstrumentDescription;
/**
* This is the file content.txt that presents a comprehensive compilation of all classes of data products in the Chandra
* Data Archive for the "flight" dataset. This file is the definitive authority on the values of various FITS header
* keywords.
*
* All files are identified by the CONTENT value of their principal HDUs.
*
* Originally based on the Guide to Chandra Data
* Products, with additional keyword entries added in 1.20.1 based on the
* FITS Keyword Conventions in CXC Data Model files
* SDS-7.3.
*
* @author Attila Kovacs and Richard van Nieuwenhoven
*/
public enum CXCExt implements IFitsHeader {
/**
* ASC-DS processing system revision (release)
*/
ASCDSVER(VALUE.STRING, "ASC-DS processing system revision (release)"),
/**
* Correction applied to Basic Time rate (s)
*/
BTIMCORR(VALUE.REAL, "[s] time rate correction"),
/**
* Basic Time clock drift (s / VCDUcount2)
*/
BTIMDRFT(VALUE.REAL, "'[s/ct**2] clock drift"),
/**
* Basic Time offset (s)
*/
BTIMNULL(VALUE.REAL, "[s] time offset"),
/**
* Basic Time clock rate (s / VCDUcount)
*/
BTIMRATE(VALUE.REAL, "[s/ct] clock rate"),
/**
* Data product identification
*/
CONTENT(VALUE.STRING, "data product identification"),
/**
* The format of the CONVERS keyword is 'i.j.k'. if missing, the default value will be '1.0.0'
*/
CONVERS(VALUE.STRING, "version info"),
/**
* Data class: 'observed' or 'simulated'
*
* @see #DATACLAS_OBSERVED
* @see #DATACLAS_SIMULATED
*/
DATACLAS(VALUE.STRING, "observed or simulated"),
/**
* Dead time correction factor [0.0:1.0].
*/
DTCOR(VALUE.REAL, "[s] dead time correction [0.0:1.0]"),
/**
* Assumed focal length, mm; Level 1 and up
*/
FOC_LEN(VALUE.REAL, "[mm] assumed focal length"),
/**
* ICD reference. E.g. 'HRC Level 1 Data Products ICD, Version 1.1'
*/
HDUSPEC(VALUE.STRING, "ICD reference"),
/**
* The OGIP long string convention may be used.
*/
LONGSTRN(VALUE.STRING, "The OGIP long string convention may be used."),
/**
* Mission specifier, e.g. 'AXAF'
*/
MISSION(VALUE.STRING, "mission identifier"),
/**
* Processing version of data
*/
REVISION(VALUE.STRING, "processing version of data"),
/**
* Nominal roll angle, deg
*/
ROLL_NOM(VALUE.REAL, "[deg] nominal roll angle"),
/**
* Sequence number
*/
SEQ_NUM(VALUE.INTEGER, "sequence number"),
/**
* SIM focus pos (mm)
*/
SIM_X(VALUE.REAL, "[mm] SIM focus pos"),
/**
* SIM orthogonal axis pos (mm)
*/
SIM_Y(VALUE.REAL, "[mm] SIM orthogonal axis pos"),
/**
* SIM translation stage pos (mm)
*/
SIM_Z(VALUE.REAL, "[mm] SIM translation stage pos"),
/**
* Major frame count at start
*/
STARTMJF(VALUE.INTEGER, "major frame count at start"),
/**
* Minor frame count at start
*/
STARTMNF(VALUE.INTEGER, "minor frame count at start"),
/**
* On-Board MET close to STARTMJF and STARTMNF
*/
STARTOBT(VALUE.INTEGER, "on-board MET close to STARTMJF and STARTMNF"),
/**
* Major frame count at stop
*/
STOPMJF(VALUE.INTEGER, "major frame count at stop"),
/**
* Minor frame count at stop
*/
STOPMNF(VALUE.INTEGER, "minor frame count at stop"),
/**
* Absolute timing error.
*/
TIERABSO(VALUE.REAL, "[s] absolute timing error"),
/**
* Clock rate error
*/
TIERRELA(VALUE.REAL, "[s/s] clock rate error"),
/**
* Time stamp reference as bin fraction
*/
TIMEPIXR(VALUE.REAL, "[bin] time stamp reference"),
/**
* Telemetry revision number (IP&CL)
*/
TLMVER(VALUE.STRING, "telemetry revision number (IP&CL)"),
// Inherited from CXCStscISharedExt ----------------------------------------->
/**
* Same as {@link STScIExt#CLOCKAPP}.
*
* @since 1.20.1
*/
CLOCKAPP(STScIExt.CLOCKAPP),
/**
* Same as {@link STScIExt#TASSIGN}.
*
* @since 1.20.1
*/
TASSIGN(STScIExt.TASSIGN),
/**
* Same as {@link DateTime#TIMEDEL}.
*
* @since 1.20.1
*/
TIMEDEL(DateTime.TIMEDEL),
/**
* Same as {@link STScIExt#TIMEREF}.
*
* @since 1.20.1
*
* @see #TIMEREF_LOCAL
* @see #TIMEREF_GEOCENTRIC
* @see #TIMEREF_HELIOCENTRIC
* @see #TIMEREF_SOLARSYSTEM
*/
TIMEREF(STScIExt.TIMEREF),
/**
* Same as {@link STScIExt#TIMEUNIT}.
*
* @since 1.20.1
*/
TIMEUNIT(STScIExt.TIMEUNIT),
/**
* Same as {@link STScIExt#TIMVERSN}.
*
* @since 1.20.1
*/
TIMVERSN(STScIExt.TIMVERSN),
/**
* Same as {@link STScIExt#TIMEZERO}.
*
* @since 1.20.1
*/
TIMEZERO(STScIExt.TIMEZERO),
/**
* Same as {@link STScIExt#TSTART}.
*/
TSTART(STScIExt.TSTART),
/**
* Same as {@link STScIExt#TSTOP}.
*/
TSTOP(STScIExt.TSTOP),
// ---- Added in 1.20.1 from the CXC Data Model specification ------------>
// Standard header keywords
// MISSION(VALUE.STRING, "Grouping of related telesopes"),
// SEQ_NUM(VALUE.INTEGER, "Sequence_number"),
// ASCDSVER(VALUE.STRING, "Processing system revision"),
/**
* Defocus distance of instrument in mm rel to best.
*
* @since 1.20.1
*/
DEFOCUS(VALUE.REAL, "[mm] Defocus distance from best"),
// FOC_LEN(VALUE.REAL, "Telessope focal length in mm"),
/**
* Configuration of instrument
*
* @since 1.20.1
*/
READMODE(VALUE.STRING, "instrument config"),
/** Data class "observed" or "simulated". */
// DATACLAS(VALUE.STRING, "observed or simulated"),
// ONTIME(VALUE.REAL, "Sum of GTIs"),
// DTCOR(VALUE.REAL, "Dead time corretion [0.0:1.0]"),
/**
* CALDB file for gain corretion
*
* @since 1.20.1
*/
GAINFILE(VALUE.STRING, "CALDB file for gain correction"),
/**
* CALDB file for grade correction
*
* @since 1.20.1
*/
GRD_FILE(VALUE.STRING, "CALDB file for grade correction"),
// Data model keywords
/**
* Override {@link nom.tam.fits.header.Standard#CTYPEn} image coordinate axis name
*
* @since 1.20.1
*/
CNAMEn(VALUE.STRING, HDU.IMAGE, "coordinate axis name"),
/**
* List of 'preferred cols' for making image from table
*
* @since 1.20.1
*/
CPREF(VALUE.STRING, HDU.TABLE, "list of image columns"),
/**
* Data Subspace column name for column n.
*
* @since 1.20.1
*/
DSTYPn(VALUE.STRING, HDU.TABLE, "data subspace column name"),
/**
* Data Subspace data type name (optional) for column n.
*
* @since 1.20.1
*/
DSFORMn(VALUE.STRING, HDU.TABLE, "data subspace data type"),
/**
* Data Subspace unit name (optional) for column n.
*
* @since 1.20.1
*/
DSUNITn(VALUE.STRING, "data subspace unit"),
/**
* Data Subspace filter list for column n.
*
* @since 1.20.1
*/
DSVALn(VALUE.STRING, HDU.TABLE, "data subspace filter list"),
/**
* Data Subspace filter list for component i (leading index) and column n (trailing index).
*
* @since 1.20.1
*
* @see #DSVALn
*/
nDSVALn(VALUE.STRING, HDU.TABLE, "data subspace filter list for component"),
/**
* Data Subspace table pointer for column n.
*
* @since 1.20.1
*/
DSREFn(VALUE.STRING, HDU.TABLE, "data subspace table pointer"),
/**
* Data Subspace table pointer for component i (leading index) and column n (trailing index).
*
* @since 1.20.1
*
* @see #DSVALn
*/
nDSREFn(VALUE.STRING, HDU.TABLE, "data subspace table pointer for component"),
/**
* Name for composite long-named keyword (f. CFITSIO HIERARCH) for column n. Also used to de ne array
* keywords.
*
* @since 1.20.1
*/
DTYPEn(VALUE.STRING, "composite keyword name"),
/**
* Unit for composite long-named keyword for column n.
*
* @since 1.20.1
*/
DUNITn(VALUE.STRING, "composite keyword unit"),
/**
* Value for composite long-named keyword for column n.
*
* @since 1.20.1
*/
DVALn(VALUE.ANY, HDU.TABLE, "composite keyword value"),
/**
* Gives a name to an HDU. If not present, you should use EXTNAME/EXTVER.
*
* @since 1.20.1
*/
HDUNAME(VALUE.STRING, "HDU name"),
/**
* Type of composite column (not yet supported)
*
* @since 1.20.1
*/
METYPn(VALUE.STRING, HDU.TABLE, "composite column type"),
/**
* Comma-separated list of column names making up composite col (with {@link #MTYPEn}).
*
* @since 1.20.1
*/
MFORMn(VALUE.STRING, HDU.TABLE, "column names for composite column"),
/**
* Composite column name (paired with {@link #MFORMn}).
*
* @since 1.20.1
*/
MTYPEn(VALUE.STRING, HDU.TABLE, "composite column name"),
/**
* Override {@link nom.tam.fits.header.WCS#TCTYPn} table oordinate axis name.
*
* @since 1.20.1
*/
TCNAMn(VALUE.STRING, HDU.TABLE, "column coordinate axis name"),
/**
* Default binning factor for table column
*
* @since 1.20.1
*/
TDBINn(VALUE.REAL, HDU.TABLE, "Default binning factor for table column"),
/**
* Floating point null
value other than NaN
*
* @since 1.20.1
*/
TDNULLn(VALUE.REAL, HDU.TABLE, "designated null value");
/**
* Standard {@link #DATACLAS} value 'observed'.
*
* @since 1.20.1
*/
public static final String DATACLAS_OBSERVED = "observed";
/**
* Standard {@link #DATACLAS} value 'simulated'.
*
* @since 1.20.1
*/
public static final String DATACLAS_SIMULATED = "simulated";
/**
* Standard {@link InstrumentDescription#OBS_MODE} value for pointing observations.
*
* @since 1.20.1
*/
public static final String OBS_MODE_POINTING = "pointing";
/**
* Standard {@link InstrumentDescription#OBS_MODE} value while slewing.
*
* @since 1.20.1
*/
public static final String OBS_MODE_SLEWING = "slewing";
/**
* Standard {@link InstrumentDescription#OBS_MODE} value for ground cal observations.
*
* @since 1.20.1
*/
public static final String OBS_MODE_GROUND_CAL = "ground cal";
/**
* Same as {@link STScIExt#TIMEREF_GEOCENTRIC}.
*
* @since 1.20.1
*/
public static final String TIMEREF_GEOCENTRIC = STScIExt.TIMEREF_GEOCENTRIC;
/**
* Same as {@link STScIExt#TIMEREF_HELIOCENTRIC}.
*
* @since 1.20.1
*/
public static final String TIMEREF_HELIOCENTRIC = STScIExt.TIMEREF_HELIOCENTRIC;
/**
* Same as {@link STScIExt#TIMEREF_SOLARSYSTEM}.
*
* @since 1.20.1
*/
public static final String TIMEREF_SOLARSYSTEM = STScIExt.TIMEREF_SOLARSYSTEM;
/**
* Same as {@link STScIExt#TIMEREF_LOCAL}.
*
* @since 1.20.1
*/
public static final String TIMEREF_LOCAL = STScIExt.TIMEREF_LOCAL;
private final FitsKey key;
CXCExt(IFitsHeader key) {
this.key = key.impl();
}
CXCExt(VALUE valueType, String comment) {
this(valueType, HDU.ANY, comment);
}
CXCExt(VALUE valueType, HDU hduType, String comment) {
key = new FitsKey(name(), IFitsHeader.SOURCE.CXC, hduType, valueType, comment);
}
@Override
public final FitsKey impl() {
return key;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy