FITSDateUtil.h
Classes
- FITSDateUtil -- A class with static functions to help deal with FITS dates (full description)
Types
- OLD
-
dd/mm/yy
- NEW_DATEONLY
-
yyyy-mm-dd
- NEW_DATEANDTIME
-
yyyy-mm-ddThh:mm:ss[.ss...]
- AUTO_PICK
-
OLD if the current year is before 1998 AND "time" is before 1998,
otherwise NEW_DATEANDTIME.
Interface
- Public Members
- static void toFITS(String &date, String ×ys, const MVTime &time, MEpoch::Types system = MEpoch::UTC, DateStyle style= AUTO_PICK, uInt precision=12)
- static Bool fromFITS(MVTime &time, MEpoch::Types &system, const String &date, const String ×ys)
- static Bool convertDateString(String &out, const String &in)
- static uInt findPrecision(const String &fitsDate)
Review Status
- Reviewed By:
- Eric Sessoms
- Date Reviewed:
- 2002/08/19
- Programs:
- Tests:
Prerequisite
- General knowledge of FITS, particularly FITS date keywords,
is assumed.
Etymology
This is a collection of static utility functions for creating and
interpreting FITS date keywords (e.g. DATE-OBS).
Synopsis
Its never necessary to construct a FITSDateUtil, just use the
static functions to help handle FITS dates.
Motivation
The strings that make up the value of FITS dates have a
precise format. This class encompasses knowlege of the formats
used and hopefully simplifies their creation and conversion
to and from aips++ MVTimes.
Member Description
static void toFITS(String &date, String ×ys, const MVTime &time, MEpoch::Types system = MEpoch::UTC, DateStyle style= AUTO_PICK, uInt precision=12)
Convert an MVTime to a FITS date string and timesys string. The
time system must also be supplied.
Precision is only used when the time as well as the date is used
(NEW_DATEANDTIME or AUTO_PICK).
The default (16) gives 10^(-10) second accuracy, 6 gives second level
accuracy. Default is 10^(-6)s (1 micro-s) accuracy. 0 means date only,
no time (equivalent to NEW_DATEONLY).
static Bool fromFITS(MVTime &time, MEpoch::Types &system, const String &date, const String ×ys)
Convert a FITS date string and TIMESYS keyword value into an MVTime and system.
Returns False if it can't decode date and timesys. It tries to convert as
much as possible, for example if it can't decode timesys it still
attempts to decode the time. It sets the date to Jan 1/1900 if it can't
decode the time, and UTC if it can't decode timesys. If timesys is the
empty string then UTC is assumed.
Convert a FITS Date string to the current format. If the "in" format is
already correct it is just copied through.
Determine the precision in a FITS date string.
Old style dates or no time returns 0, New style + time returns 6 + the number
of decimal points, i.e. if we have a time at all we assume it is at least
accurate to the second level. The result of this can be used in the call
to toFITS, i.e. it has the same meaning.
This is mostly meant to be a helper function for convertDateString, but
it may be called by anyone.