|
| AsdmStMan (const casacore::String &dataManagerName="AsdmStMan") |
| Create a Asdm storage manager with the given name. More...
|
|
| AsdmStMan (const casacore::String &dataManagerName, const casacore::Record &spec) |
| Create a Asdm storage manager with the given name. More...
|
|
| ~AsdmStMan () |
|
virtual casacore::DataManager * | clone () const |
| Clone this object. More...
|
|
virtual casacore::String | dataManagerType () const |
| Get the type name of the data manager (i.e. More...
|
|
virtual casacore::String | dataManagerName () const |
| Get the name given to the storage manager (in the constructor). More...
|
|
virtual casacore::Record | dataManagerSpec () const |
| casacore::Record a record containing data manager specifications. More...
|
|
virtual casacore::Bool | isRegular () const |
| Is this a regular storage manager? It is regular if it allows addition of rows and writing dara in them. More...
|
|
virtual casacore::Bool | canAddRow () const |
| The storage manager can add rows, but does nothing. More...
|
|
virtual casacore::Bool | canRemoveRow () const |
| The storage manager cannot delete rows. More...
|
|
virtual casacore::Bool | canAddColumn () const |
| The storage manager can add columns, which does not really do something. More...
|
|
virtual casacore::Bool | canRemoveColumn () const |
| Columns can be removed, but it does not do anything at all. More...
|
|
casacore::IPosition | getShape (casacore::uInt rownr) |
| Get the data shape. More...
|
|
void | getData (casacore::uInt rownr, casacore::Complex *buf) |
| Get data. More...
|
|
void | getData (casacore::uInt rownr, casacore::Float *buf) |
| Get float data. More...
|
|
casacore::uInt | getAsdmStManVersion () const |
|
void | getBDFNames (casacore::Block< casacore::String > &bDFNames) |
| access the references to the ASDM BDFs More...
|
|
casacore::Bool | setBDFNames (casacore::Block< casacore::String > &bDFNames) |
| overwrite the BDFNames (casacore::Block needs to have same size as original, returns false otherwise) More...
|
|
void | writeIndex () |
| overwrite the index with the information presently stored in the data manager More...
|
|
| DataManager () |
| Default constructor. More...
|
|
virtual | ~DataManager () |
|
void | dataManagerInfo (Record &info) const |
| Add SEQNR and SPEC (the DataManagerSpec subrecord) to the info. More...
|
|
virtual Record | getProperties () const |
| Get data manager properties that can be modified. More...
|
|
virtual void | setProperties (const Record &spec) |
| Modify data manager properties given in record fields. More...
|
|
virtual Bool | isStorageManager () const |
| Is the data manager a storage manager? The default is yes. More...
|
|
virtual Bool | canReallocateColumns () const |
| Tell if the data manager wants to reallocate the data manager column objects. More...
|
|
virtual DataManagerColumn * | reallocateColumn (DataManagerColumn *column) |
| Reallocate the column object if it is part of this data manager. More...
|
|
uInt | sequenceNr () const |
| Get the (unique) sequence nr of this data manager. More...
|
|
uInt | ncolumn () const |
| Get the nr of columns in this data manager (can be zero). More...
|
|
Bool | asBigEndian () const |
| Have the data to be stored in big or little endian canonical format? More...
|
|
const TSMOption & | tsmOption () const |
| Get the TSM option. More...
|
|
MultiFileBase * | multiFile () |
| Get the MultiFile pointer (can be 0). More...
|
|
String | keywordName (const String &keyword) const |
| Compose a keyword name from the given keyword appended with the sequence number (e.g. More...
|
|
String | fileName () const |
| Compose a unique filename from the table name and sequence number. More...
|
|
ByteIO::OpenOption | fileOption () const |
| Get the AipsIO option of the underlying file. More...
|
|
Table & | table () const |
| Get the table this object is associated with. More...
|
|
virtual Bool | canRenameColumn () const |
| Does the data manager allow to rename columns? (default yes) More...
|
|
virtual void | setMaximumCacheSize (uInt nbytes) |
| Set the maximum cache size (in bytes) to be used by a storage manager. More...
|
|
virtual void | showCacheStatistics (std::ostream &) const |
| Show the data manager's IO statistics. More...
|
|
DataManagerColumn * | createScalarColumn (const String &columnName, int dataType, const String &dataTypeId) |
| Create a column in the data manager on behalf of a table column. More...
|
|
DataManagerColumn * | createDirArrColumn (const String &columnName, int dataType, const String &dataTypeId) |
| Create a direct array column. More...
|
|
DataManagerColumn * | createIndArrColumn (const String &columnName, int dataType, const String &dataTypeId) |
| Create an indirect array column. More...
|
|
DataManager * | getClone () const |
| Has the object already been cloned? More...
|
|
void | setClone (DataManager *clone) const |
| Set the pointer to the clone. More...
|
|
|
| AsdmStMan (const AsdmStMan &that) |
| Copy constructor cannot be used. More...
|
|
AsdmStMan & | operator= (const AsdmStMan &that) |
| Assignment cannot be used. More...
|
|
virtual casacore::Bool | flush (casacore::AipsIO &, casacore::Bool doFsync) |
| Flush and optionally fsync the data. More...
|
|
virtual void | create (casacore::uInt nrrow) |
| Let the storage manager create files as needed for a new table. More...
|
|
virtual void | open (casacore::uInt nrrow, casacore::AipsIO &) |
| Open the storage manager file for an existing table. More...
|
|
virtual void | prepare () |
| Prepare the columns (needed for UvwColumn). More...
|
|
virtual void | resync (casacore::uInt nrrow) |
| Resync the storage manager with the new file contents. More...
|
|
virtual void | reopenRW () |
| Reopen the storage manager files for read/write. More...
|
|
virtual void | deleteManager () |
| The data manager will be deleted (because all its columns are requested to be deleted). More...
|
|
virtual void | addRow (casacore::uInt nrrow) |
| Add rows to the storage manager. More...
|
|
virtual void | removeRow (casacore::uInt rowNr) |
| Delete a row from all columns. More...
|
|
virtual void | addColumn (casacore::DataManagerColumn *) |
| Do the final addition of a column. More...
|
|
virtual void | removeColumn (casacore::DataManagerColumn *) |
| Remove a column from the data file. More...
|
|
virtual
casacore::DataManagerColumn * | makeScalarColumn (const casacore::String &aName, int aDataType, const casacore::String &aDataTypeID) |
| Create a column in the storage manager on behalf of a table column. More...
|
|
virtual
casacore::DataManagerColumn * | makeDirArrColumn (const casacore::String &aName, int aDataType, const casacore::String &aDataTypeID) |
| Create a direct array column. More...
|
|
virtual
casacore::DataManagerColumn * | makeIndArrColumn (const casacore::String &aName, int aDataType, const casacore::String &aDataTypeID) |
| Create an indirect array column. More...
|
|
void | init () |
| Initialize by reading the index file and opening the BDFs. More...
|
|
void | closeBDF () |
| Close the currently open BDF file. More...
|
|
casacore::uInt | searchIndex (casacore::Int64 rownr) |
| Return the entry number in the index containing the row. More...
|
|
const AsdmIndex & | findIndex (casacore::Int64 rownr) |
| Return the index block containing the row. More...
|
|
void | getShort (const AsdmIndex &, casacore::Complex *buf, casacore::uInt bl, casacore::uInt spw) |
| Get data from the buffer. More...
|
|
void | getInt (const AsdmIndex &, casacore::Complex *buf, casacore::uInt bl, casacore::uInt spw) |
|
void | getFloat (const AsdmIndex &, casacore::Complex *buf, casacore::uInt bl, casacore::uInt spw) |
|
void | getAuto (const AsdmIndex &, casacore::Complex *buf, casacore::uInt bl) |
|
void | getAuto (const AsdmIndex &, casacore::Float *buf, casacore::uInt bl) |
|
void | setTransposeBLNum (casacore::uInt nBl) |
| set transposeBLNum_v More...
|
|
The Storage Manager for the main table of a raw ASDM casacore::MS.
Intended use:
Public interface
Review Status
- Reviewed By:
- UNKNOWN
- Date Reviewed:
- before2004/08/25
- Test programs:
- tAsdmStMan
Prerequisite
Etymology
AsdmStMan is the data manager which stores the data for a ASDM MS.
Synopsis
AsdmStMan is a specific storage manager for the main table of a ASDM MS. For performance purposes the raw data from the correlator is directly written to a disk file. However, to be able to use the data directly as a casacore::MeasurementSet, this specific storage manager is created offering access to all mandatory columns in the main table of the MS.
Similar to other storage managers, the AsdmStMan files need to be part of the table directory. There are two files:
-
The meta file contains the meta data describing baselines, start time, integration time, etc. It needs to be written as an casacore::AipsIO file. The meta info should also tell the endianness of the data file.
-
The data file consists of NSEQ data blocks each containing:
-
4-byte sequence number defining the time stamp.
-
casacore::Complex data with shape [npol,nchan,nbasel].
-
Unsigned short nr of samples used in each data point. It has shape [nchan,nbasel]. It defines WEIGHT_SPECTRUM and FLAG.
-
Filler bytes to align the blocks as given in the meta info.
The sequence numbers are ascending, but there can be holes due to missing time stamps.
The first versions of the data file can only handle regularly shaped data with equal integration times. A future version might be able to deal with varying integration times (depending on baseline length).
Most of the casacore::MS columns (like DATA_DESC_ID) are not stored in the data file; usually they map to the value 0. This is also true for the UVW column, so the UVW coordinates need to be added to the table in a separate step because the online system does not have the resources to do it.
All columns are readonly with the exception of DATA.
Motivation
The common casacore::Table storage managers are too slow for the possibly high output rate of the ASDM correlator.
Example
The following example shows how to create a table and how to attach the storage manager to some columns.
newtab.bindColumn ("DATA", stman);
newtab.bindColumn ("FLAG", stman);
Definition at line 122 of file AsdmStMan.h.