Loading...
Searching...
No Matches
FITSMultiTable.h
Go to the documentation of this file.
//# FITSMultiTable.h: View multiple FITS files as a single table
//# Copyright (C) 1995,1996,1997
//# Associated Universities, Inc. Washington DC, USA.
//#
//# This library is free software; you can redistribute it and/or modify it
//# under the terms of the GNU Library General Public License as published by
//# the Free Software Foundation; either version 2 of the License, or (at your
//# option) any later version.
//#
//# This library is distributed in the hope that it will be useful, but WITHOUT
//# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
//# FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public
//# License for more details.
//#
//# You should have received a copy of the GNU Library General Public License
//# along with this library; if not, write to the Free Software Foundation,
//# Inc., 675 Massachusetts Ave, Cambridge, MA 02139, USA.
//#
//# Correspondence concerning AIPS++ should be addressed as follows:
//# Internet email: casa-feedback@nrao.edu.
//# Postal address: AIPS++ Project Office
//# National Radio Astronomy Observatory
//# 520 Edgemont Road
//# Charlottesville, VA 22903-2475 USA
#ifndef FITS_FITSMULTITABLE_H
#define FITS_FITSMULTITABLE_H
#include <casacore/casa/aips.h>
#include <casacore/fits/FITS/FITSTable.h>
#include <casacore/casa/OS/Time.h>
#include <casacore/casa/BasicSL/String.h>
#include <casacore/casa/Arrays/Vector.h>
namespace casacore { //# NAMESPACE CASACORE - BEGIN
// <summary>
// View multiple FITS files as a single table
// </summary>
// <use visibility=local>
// <reviewed reviewer="" date="yyyy/mm/dd" tests="" demos="">
// </reviewed>
// <synopsis>
// A FITSMultiTable is used to view a collection of FITS files on disk as a
// single Table. That is, when next() is called, when one Table ends the next
// is reopened until all files are exhausted. The FITS files must all have the
// same description. Something clever should be done about the keywords.
// </synopsis>
//
// <example>
// </example>
//
// <motivation>
// </motivation>
//
// <todo asof="yyyy/mm/dd">
// </todo>
class FITSMultiTable : public FITSTabular
{
public:
// The FITS files associated with the fileNames must all have the same
// description, the second argument is a function to generate the
// FITSTabular If not specified, a generic FITSTable is assumed.
// The returned pointer IS controlled by this object.
FITSMultiTable(const Vector<String> &fileNames,
FITSTabular* (*tabMaker)(const String &) = 0);
~FITSMultiTable();
virtual Bool isValid() const;
virtual const TableRecord &keywords() const;
virtual const RecordDesc &description() const;
virtual const Record &units() const;
virtual const Record &displayFormats() const;
virtual const Record &nulls() const;
virtual const String &name() const { return table_p->name(); }
// Only returns True when all files are exhausted.
virtual Bool pastEnd() const;
// When end of data is hit on the current file, the next file is opened
// automatically.
virtual void next();
virtual const Record &currentRow() const;
// get the list of file names
const Vector<String>& fileNames() const { return file_names_p;}
// Has the descriptor changed from when the file was opened
virtual Bool hasChanged() const { return hasChanged_p;}
// set hasChanged to False - used after hasChanged has been checked
void resetChangedFlag() { hasChanged_p = False;}
// A helper function to generate a list of fileNames. This function returns
// all the files in "directoryName" which have the form
// yyyy_mm_dd_hh:mm:ss_*.fits and which are (even partially)
// in the time range specified by startTime and endTime. It is used to
// generate a set of file names for use in the FITSMultiTable constructor.
// If verboseStatus is True, some status messages appear on cout.
// If verboseErrors is True improperly named files names (not matching the above
// pattern) are named on cerrt.
static Vector<String> filesInTimeRange(const String &directoryName,
const Time &startTime, const Time &endTime,
Bool verboseErrors = False,
Bool verboseStatus = False);
// return the time as found in the given string using the form given above
// There are no sanity checks in this subroutine
static Time timeFromFile(const String &fileName);
private:
// Undefined and inaccessible
FITSMultiTable();
FITSMultiTable(const FITSMultiTable &other);
FITSMultiTable &operator=(const FITSMultiTable &other);
FITSTabular *table_p;
Vector<String> file_names_p;
uInt nfiles_p;
uInt which_file_p;
Bool hasChanged_p;
Record row_p;
FITSTabular* defaultMaker(const String& fileName);
};
} //# NAMESPACE CASACORE - END
#endif
casacore::FITSMultiTable::FITSMultiTable
FITSMultiTable()
Undefined and inaccessible.
casacore::FITSMultiTable::operator=
FITSMultiTable & operator=(const FITSMultiTable &other)
casacore::FITSMultiTable::isValid
virtual Bool isValid() const
isValid() returns False if this object isn't a valid Tabular data structure.
casacore::FITSMultiTable::timeFromFile
static Time timeFromFile(const String &fileName)
return the time as found in the given string using the form given above There are no sanity checks in...
casacore::FITSMultiTable::FITSMultiTable
FITSMultiTable(const Vector< String > &fileNames, FITSTabular *(*tabMaker)(const String &)=0)
The FITS files associated with the fileNames must all have the same description, the second argument ...
casacore::FITSMultiTable::row_p
Record row_p
Definition FITSMultiTable.h:127
casacore::FITSMultiTable::file_names_p
Vector< String > file_names_p
Definition FITSMultiTable.h:122
casacore::FITSMultiTable::nfiles_p
uInt nfiles_p
Definition FITSMultiTable.h:123
casacore::FITSMultiTable::displayFormats
virtual const Record & displayFormats() const
Returns any TDISPnnn associated with a column (the field names are the column names,...
casacore::FITSMultiTable::pastEnd
virtual Bool pastEnd() const
Only returns True when all files are exhausted.
casacore::FITSMultiTable::hasChanged_p
Bool hasChanged_p
Definition FITSMultiTable.h:125
casacore::FITSMultiTable::fileNames
const Vector< String > & fileNames() const
get the list of file names
Definition FITSMultiTable.h:90
casacore::FITSMultiTable::keywords
virtual const TableRecord & keywords() const
Returns keywords which are associated with the underlying FITS files.
casacore::FITSMultiTable::FITSMultiTable
FITSMultiTable(const FITSMultiTable &other)
casacore::FITSMultiTable::nulls
virtual const Record & nulls() const
Returns any TNULLnnn associated with a column (the field names are the column names,...
casacore::FITSMultiTable::table_p
FITSTabular * table_p
Definition FITSMultiTable.h:120
casacore::FITSMultiTable::defaultMaker
FITSTabular * defaultMaker(const String &fileName)
casacore::FITSMultiTable::name
virtual const String & name() const
return the name
Definition FITSMultiTable.h:80
casacore::FITSMultiTable::hasChanged
virtual Bool hasChanged() const
Has the descriptor changed from when the file was opened.
Definition FITSMultiTable.h:93
casacore::FITSMultiTable::units
virtual const Record & units() const
Returns any TUNITnnn associated with a column (the field names are the column names,...
casacore::FITSMultiTable::next
virtual void next()
When end of data is hit on the current file, the next file is opened automatically.
casacore::FITSMultiTable::resetChangedFlag
void resetChangedFlag()
set hasChanged to False - used after hasChanged has been checked
Definition FITSMultiTable.h:96
casacore::FITSMultiTable::which_file_p
uInt which_file_p
Definition FITSMultiTable.h:124
casacore::FITSMultiTable::description
virtual const RecordDesc & description() const
Returns the description of the underlying FITS table.
casacore::FITSMultiTable::~FITSMultiTable
~FITSMultiTable()
casacore::FITSMultiTable::currentRow
virtual const Record & currentRow() const
Return the currentRow.
casacore::FITSMultiTable::filesInTimeRange
static Vector< String > filesInTimeRange(const String &directoryName, const Time &startTime, const Time &endTime, Bool verboseErrors=False, Bool verboseStatus=False)
A helper function to generate a list of fileNames.
casacore::FITSTabular
Definition FITSTable.h:78
casacore::RecordDesc
Definition RecordDesc.h:103
casacore::String
String: the storage and methods of handling collections of characters.
Definition String.h:223
casacore::TableRecord
Definition TableRecord.h:183
casacore::Time
Definition Time.h:85
casacore::Vector
Definition Vector.h:82
casacore::Record
Record()
casacore
this file contains all the compiler specific defines
Definition mainpage.dox:28
casacore::False
const Bool False
Definition aipstype.h:42
casacore::uInt
unsigned int uInt
Definition aipstype.h:49
casacore::Bool
bool Bool
Define the standard types used by Casacore.
Definition aipstype.h:40