A Controller class for FITS files. More...
#include <FitsController.h>
Public Member Functions | |
void | checkForImage (PlotterBase *plotter, const DataSource &source) |
Check and fix plotter for FITS image data source. | |
DataSource * | createNTuple (const std::string &filename, const std::string &name) |
Creates a FitsNTuple from a ASCII or binary table in a FITS file. | |
DataSource * | createNTuple (const std::string &filename, const std::string &name, int index) |
Creates a FitsNTuple from a ASCII or binary table in a FITS file. | |
const std::vector< std::string > & | getNTupleNames (const std::string &file_name) |
Returns a temporarily list of the names of the DataSource objects in the FITS file. | |
FitsFile * | openFile (const std::string &file) |
Opens the named file, if not already opened. | |
const std::string & | version () const |
Returns the version of cfitsio being used. | |
void | writeImageToFile (unsigned int x, unsigned int y, const std::vector< double > &data, const std::string &filename) |
Write a image to a FITS image. | |
void | writeNTupleToFile (const DataSource *ntuple, const std::string &filename) |
Write a DataSource to a FITS file as binary table. | |
void | writeNTupleToFile (const std::string &name, const std::string &filename) |
Write a DataSource to a FITS file as binary table. | |
int | writeNTupleToFile (const DataSource *source, const std::string &filename, const std::string &name, const std::vector< std::string > &column_list, const std::vector< const TupleCut * > &cut_list) |
Writes the DataSource to a FITS file as binary table. | |
virtual | ~FitsController () |
The destructor. |
Static Public Member Functions | |
static FitsController * | instance () |
Returns the singleton instance of the FitsController. |
Private Member Functions | |
std::size_t | calcColumnWidth (const DataSource *source, unsigned int column) const |
Returns the number of elements in a column. | |
void | closeFile (const std::string &name) |
Closed the named file, if found in list of opened files. |
Private Attributes | |
std::map< std::string, FitsFile * > | m_file_map |
A map of open FITS files. | |
std::vector< std::string > | m_ntuple_names |
A list of possible DataSource names in the FITS file. | |
std::string | m_version |
The version of cfitsio being used. |
Static Private Attributes | |
static FitsController * | s_instance = 0 |
The singleton instance of the FitsController. |
A Controller class for FITS files.
Definition at line 39 of file FitsController.h.
|
virtual |
The destructor.
Definition at line 53 of file FitsController.cxx.
|
private |
Returns the number of elements in a column.
If a column contains an array, returns the size of the array for a single row, otherwise returns 1
.
Definition at line 353 of file FitsController.cxx.
References num_util::rank(), and num_util::shape().
Referenced by FitsController::writeNTupleToFile().
void checkForImage | ( | PlotterBase * | plotter, |
const DataSource & | source | ||
) |
Check and fix plotter for FITS image data source.
If the data source for the Plotter is a FITS image file, then sets the parameters of the image. Otherwise does nothing.
Definition at line 199 of file FitsController.cxx.
References FitsNTuple::getFile(), FitsFileBase::Image, PlotterBase::setAspectRatio(), PlotterBase::setFitsTransform(), Range::setLength(), Range::setLow(), PlotterBase::setOffset(), Range::setRange(), num_util::type(), hippodraw::Axes::X, and hippodraw::Axes::Y.
|
private |
Closed the named file, if found in list of opened files.
Definition at line 108 of file FitsController.cxx.
DataSource * createNTuple | ( | const std::string & | filename, |
const std::string & | name | ||
) |
Creates a FitsNTuple from a ASCII or binary table in a FITS file.
Looks from an HDU with extension name name. If none exists, throws a DataSourceException. If it does exist, then returns the created FitsNTuple.
Definition at line 134 of file FitsController.cxx.
References FitsController::getNTupleNames(), and num_util::size().
DataSource * createNTuple | ( | const std::string & | filename, |
const std::string & | name, | ||
int | index | ||
) |
Creates a FitsNTuple from a ASCII or binary table in a FITS file.
Returns a FitsNTuple object from the file filename, with HDU number index. Use name as the HDU name. name name. If the object already exists, return it, otherwise creates and returns a new one. If error occurs in the creation, throws a DataSourceException. Since HDU may not have a name, one uses the index to find it.
Definition at line 165 of file FitsController.cxx.
References FitsController::instance(), and FitsController::openFile().
const vector< string > & getNTupleNames | ( | const std::string & | file_name | ) |
Returns a temporarily list of the names of the DataSource objects in the FITS file.
Definition at line 120 of file FitsController.cxx.
References FitsController::m_ntuple_names, and FitsController::openFile().
Referenced by FitsController::createNTuple().
|
static |
Returns the singleton instance of the FitsController.
Definition at line 44 of file FitsController.cxx.
References FitsController::s_instance.
Referenced by CreateNTuple::createFileButtonClicked(), QtCut::createFits(), FitsController::createNTuple(), HiNTupleXML::getObject(), CanvasView::helpAbout(), QtFileDialog::isFitsFile(), QtFileDialog::openFitsTuple(), QtFileDialog::saveFitsTuple(), CanvasView::savePlotAsFits(), and FitsController::writeNTupleToFile().
FitsFile * openFile | ( | const std::string & | file | ) |
Opens the named file, if not already opened.
Opens and returns pointer to a FITS file. If file is not found, or file is not a FITS file, then throws DataSourceException.
Definition at line 71 of file FitsController.cxx.
References FitsController::m_file_map.
Referenced by FitsController::createNTuple(), FitsController::getNTupleNames(), and QtFileDialog::isFitsFile().
const std::string & version | ( | ) | const |
Returns the version of cfitsio being used.
Definition at line 59 of file FitsController.cxx.
References hippodraw::Axes::convert(), and FitsController::m_version.
void writeImageToFile | ( | unsigned int | x, |
unsigned int | y, | ||
const std::vector< double > & | data, | ||
const std::string & | filename | ||
) |
Write a image to a FITS image.
Definition at line 328 of file FitsController.cxx.
Referenced by CanvasView::savePlotAsFits().
void writeNTupleToFile | ( | const DataSource * | ntuple, |
const std::string & | filename | ||
) |
Write a DataSource to a FITS file as binary table.
Definition at line 272 of file FitsController.cxx.
References num_util::shape().
Referenced by QtFileDialog::saveFitsTuple(), and FitsController::writeNTupleToFile().
void writeNTupleToFile | ( | const std::string & | name, |
const std::string & | filename | ||
) |
Write a DataSource to a FITS file as binary table.
Definition at line 316 of file FitsController.cxx.
References FitsController::instance(), and FitsController::writeNTupleToFile().
int writeNTupleToFile | ( | const DataSource * | source, |
const std::string & | filename, | ||
const std::string & | name, | ||
const std::vector< std::string > & | column_list, | ||
const std::vector< const TupleCut * > & | cut_list | ||
) |
Writes the DataSource to a FITS file as binary table.
source | The DataSource of any type |
filename | The file name. |
name | The HDU extension name. |
column_list | The list of columns to be written to file |
cut_list | The list of cuts on the rows of the table. |
Definition at line 368 of file FitsController.cxx.
References FitsController::calcColumnWidth(), CutController::fillAcceptedRows(), DataSource::rows(), num_util::shape(), and num_util::size().
|
private |
A map of open FITS files.
Definition at line 46 of file FitsController.h.
Referenced by FitsController::openFile().
|
private |
A list of possible DataSource names in the FITS file.
Definition at line 58 of file FitsController.h.
Referenced by FitsController::getNTupleNames().
|
mutableprivate |
The version of cfitsio being used.
Definition at line 50 of file FitsController.h.
Referenced by FitsController::version().
|
staticprivate |
The singleton instance of the FitsController.
Definition at line 54 of file FitsController.h.
Referenced by FitsController::instance().