casacore
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Types | Static Public Member Functions | List of all members
casacore::FITSDateUtil Class Reference

A class with static functions to help deal with FITS dates. More...

#include <FITSDateUtil.h>

Public Types

enum  DateStyle {
  OLD,
  NEW_DATEONLY,
  NEW_DATEANDTIME,
  AUTO_PICK
}
 

Static Public Member Functions

static void toFITS (String &date, String &timesys, 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. More...
 
static Bool fromFITS (MVTime &time, MEpoch::Types &system, const String &date, const String &timesys)
 Convert a FITS date string and TIMESYS keyword value into an MVTime and system. More...
 
static Bool convertDateString (String &out, const String &in)
 Convert a FITS Date string to the current format. More...
 
static uInt findPrecision (const String &fitsDate)
 Determine the precision in a FITS date string. More...
 

Detailed Description

A class with static functions to help deal with FITS dates.

Intended use:

Public interface

Review Status

Reviewed By:
Eric Sessoms
Date Reviewed:
2002/08/19
Test programs:
tFITSDateUtil

Prerequisite

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 Casacore MVTimes.

Definition at line 73 of file FITSDateUtil.h.

Member Enumeration Documentation

Enumerator
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.

Definition at line 76 of file FITSDateUtil.h.

Member Function Documentation

static Bool casacore::FITSDateUtil::convertDateString ( String out,
const String in 
)
static

Convert a FITS Date string to the current format.

If the "in" format is already correct it is just copied through.

static uInt casacore::FITSDateUtil::findPrecision ( const String fitsDate)
static

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.

static Bool casacore::FITSDateUtil::fromFITS ( MVTime time,
MEpoch::Types system,
const String date,
const String timesys 
)
static

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.

static void casacore::FITSDateUtil::toFITS ( String date,
String timesys,
const MVTime time,
MEpoch::Types  system = MEpoch::UTC,
DateStyle  style = AUTO_PICK,
uInt  precision = 12 
)
static

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).


The documentation for this class was generated from the following file: