![]() |
Isis 3 Programmer Reference
|
Class for storing Table blobs information. More...
#include <Table.h>
Public Types | |
enum | Association { None, Samples, Lines, Bands } |
Public Member Functions | |
Table (Blob &blob) | |
Table (const QString &tableName, TableRecord &rec) | |
This constructor creates a new table using the given name and record. More... | |
Table (const QString &tableName) | |
This constructor creates an empty table from an existing table name to be read in when the Read() method is called. More... | |
Table (const QString &tableName, const QString &file) | |
This constructor reads an existing table using the given table name and file containing the table. More... | |
Table (const QString &tableName, const QString &file, const Pvl &fileHeader) | |
This constructor reads an existing table using the given table name and file containing the table and pvl labels. More... | |
Table (const Table &other) | |
Copy constructor for an Table object. More... | |
Table & | operator= (const Isis::Table &other) |
Sets the Table equal to the input Table object. More... | |
~Table () | |
Destroys the Table object. More... | |
void | Write (const QString &file) |
Write the Table to a file. More... | |
QString | Name () const |
The Table's name. More... | |
PvlObject & | Label () |
The Table's label. More... | |
void | SetAssociation (const Table::Association assoc) |
Sets the association to the input parameter. More... | |
bool | IsSampleAssociated () |
Checks to see if association is Samples. More... | |
bool | IsLineAssociated () |
Checks to see if association is Lines. More... | |
bool | IsBandAssociated () |
Checks to see if association is Bands. More... | |
int | Records () const |
Returns the number of records. More... | |
int | RecordFields () const |
Returns the number of fields per record. More... | |
int | RecordSize () const |
Returns the number of bytes per record. More... | |
TableRecord & | operator[] (const int index) |
Reads a TableRecord from the Table. More... | |
void | operator+= (TableRecord &rec) |
Adds a TableRecord to the Table. More... | |
void | Update (const TableRecord &rec, const int index) |
Updates a TableRecord. More... | |
void | Delete (const int index) |
Deletes a TableRecord from the Table. More... | |
void | Clear () |
Clear the table of all records. More... | |
Blob | toBlob () const |
Serialze the Table to a Blob that can be written to a file. More... | |
Static Public Member Functions | |
static QString | toString (Table table, QString fieldDelimiter=",") |
Convert the data from a Table into a string. More... | |
Protected Member Functions | |
void | initFromBlob (Blob &blob) |
Initialize a Table from a Blob that has been read from a file. More... | |
Protected Attributes | |
TableRecord | p_record |
The current table record. More... | |
std::vector< char * > | p_recbufs |
Buffers containing record values. More... | |
int | p_records |
Holds record count read from labels, may differ from the size of p_recbufs. More... | |
Association | p_assoc |
Association Type of the table. More... | |
bool | p_swap |
Only used for reading. More... | |
QString | p_name |
The name of the Table. More... | |
PvlObject | p_label |
The label for storing additional information. More... | |
Class for storing Table blobs information.
This class can create new Tables or read table blobs from files. In general, records correspond to rows and fields correspond to columns. Thus the TableRecord class corresponds to a vector of row entries and TableField class corresponds to a specific entry of the table for a given record. Isis Table objects are record based, N records in a table. Each record will have the same number of fields, F. The fields can be of different types including Integer, Double, Text, and Real. The class uses PVL to store the structure of the table N, F, and Field types and binary to store the table data.
See the classes TableRecord and TableField for more information.
If you would like to see Table being used in implementation, see histats.cpp
Isis::Table::Table | ( | const QString & | tableName, |
Isis::TableRecord & | rec | ||
) |
This constructor creates a new table using the given name and record.
Note that the record is not added to this table. It is used to read the TableField names and set the record size (i.e. the number of bytes per record). Thus any records added to this table will be required to match this size.
In this constructor, the Table::Association is set to None, the ByteOrder keyword in the labels is set to NULL, and the record information is added to the table.
This constructor also calls the parent constructor Blob(tableName, "Table").
tableName | Name of the Table to be read |
rec | Name of the TableRecord to be read into the Table |
Definition at line 43 of file Table.cpp.
References Isis::TableRecord::Fields().
Isis::Table::Table | ( | const QString & | tableName | ) |
This constructor creates an empty table from an existing table name to be read in when the Read() method is called.
It should not be used to construct a new table object whose data will be filled in later since the record size will be set to 0. This constructor sets the Table::Association to None.
This constructor also calls the parent constructor Blob(tableName, "Table").
tableName | Name of the Table to be read |
Isis::Table::Table | ( | const QString & | tableName, |
const QString & | file | ||
) |
This constructor reads an existing table using the given table name and file containing the table.
This constructor sets the Table::Association to the Association keyword value in the Blob Pvl read from the file, if the keyword exists.
This constructor also calls the parent constructor Blob(tableName, "Table").
Isis::Table::Table | ( | const QString & | tableName, |
const QString & | file, | ||
const Pvl & | fileHeader | ||
) |
This constructor reads an existing table using the given table name and file containing the table and pvl labels.
This constructor sets the Table::Association to the Association keyword value in the Blob Pvl read from the file, if the keyword exists.
This constructor also calls the parent constructor Blob(tableName, "Table").
tableName | The name of the Table to be read |
file | The name of the file to be read into the Table |
fileHeader | Pvl labels. |
Definition at line 108 of file Table.cpp.
References Isis::Blob::Read().
Isis::Table::Table | ( | const Table & | other | ) |
Copy constructor for an Table object.
This constructor copies TableRecords and the member variable values for record, records, assoc, and swap.
other | The table to copy from |
Definition at line 121 of file Table.cpp.
References p_assoc, p_label, p_name, p_recbufs, p_record, p_records, and p_swap.
void Isis::Table::Clear | ( | ) |
void Isis::Table::Delete | ( | const int | index | ) |
Deletes a TableRecord from the Table.
index | Index of TableRecord to be deleted |
|
protected |
Initialize a Table from a Blob that has been read from a file.
blob | The blob to extract the data for the Table from. |
Definition at line 146 of file Table.cpp.
References Isis::Blob::getBuffer(), Isis::IsLsb(), Isis::IsMsb(), and Isis::Blob::Label().
bool Isis::Table::IsBandAssociated | ( | ) |
bool Isis::Table::IsLineAssociated | ( | ) |
bool Isis::Table::IsSampleAssociated | ( | ) |
PvlObject & Isis::Table::Label | ( | ) |
The Table's label.
Additional information can be stored on the Table's label and will be serialized in the Blob's label when written out to a file.
Definition at line 260 of file Table.cpp.
Referenced by Isis::SpicePosition::CacheLabel(), Isis::SpiceRotation::CacheLabel(), Isis::DawnVirCamera::getPointingTable(), Isis::RosettaVirtisCamera::getPointingTable(), Isis::Spice::init(), Isis::SpicePosition::LoadCache(), Isis::SpiceRotation::LoadCache(), and Isis::JigsawRunWidget::on_JigsawAcceptButton_clicked().
QString Isis::Table::Name | ( | ) | const |
The Table's name.
Definition at line 247 of file Table.cpp.
Referenced by Isis::SpicePosition::LoadCache().
void Isis::Table::operator+= | ( | Isis::TableRecord & | rec | ) |
Adds a TableRecord to the Table.
rec | The record to be added to the table |
Definition at line 356 of file Table.cpp.
References Isis::TableRecord::Pack(), Isis::TableRecord::RecordSize(), and Isis::toString().
Table & Isis::Table::operator= | ( | const Isis::Table & | other | ) |
Sets the Table equal to the input Table object.
This method copies TableRecords and the member variable values for record, records, assoc, and swap.
other | The table to copy from |
Definition at line 200 of file Table.cpp.
References p_assoc, p_label, p_name, p_recbufs, p_record, p_records, and p_swap.
Isis::TableRecord & Isis::Table::operator[] | ( | const int | index | ) |
Reads a TableRecord from the Table.
index | Index where desired TableRecord is located |
Definition at line 345 of file Table.cpp.
References Isis::TableRecord::Unpack().
int Isis::Table::RecordFields | ( | ) | const |
int Isis::Table::Records | ( | ) | const |
Returns the number of records.
Definition at line 313 of file Table.cpp.
Referenced by Isis::ClipperNacRollingShutterCamera::ClipperNacRollingShutterCamera(), Isis::DawnVirCamera::DawnVirCamera(), Isis::ExportPdsTable::ExportPdsTable(), Isis::ProcessExportPds::ExportTable(), Isis::DawnVirCamera::getPointingTable(), Isis::RosettaVirtisCamera::getPointingTable(), Isis::Image::initCamStats(), Isis::Shape::initCamStats(), Isis::ApolloPanoramicDetectorMap::initializeInteriorOrientation(), Isis::SpicePosition::LoadCache(), Isis::SpiceRotation::LoadCache(), Isis::Blobber::loadDouble(), Isis::Blobber::loadInteger(), Isis::DawnVirCamera::readHouseKeeping(), Isis::RosettaVirtisCamera::readHouseKeeping(), Isis::ClipperPushBroomCamera::ReadLineRates(), Isis::HrscCamera::ReadLineRates(), Isis::RosettaVirtisCamera::readSCET(), Isis::RosettaVirtisCamera::RosettaVirtisCamera(), toString(), Isis::TrackingTable::TrackingTable(), and Isis::AdvancedTrackTool::TrackMosaicOrigin().
int Isis::Table::RecordSize | ( | ) | const |
void Isis::Table::SetAssociation | ( | const Table::Association | assoc | ) |
Blob Isis::Table::toBlob | ( | ) | const |
Serialze the Table to a Blob that can be written to a file.
Definition at line 414 of file Table.cpp.
References Isis::PvlObject::group(), Isis::PvlObject::hasKeyword(), Isis::IsLsb(), Isis::Blob::Label(), Isis::Blob::takeData(), and Isis::toString().
Referenced by Isis::Cube::write().
|
static |
Convert the data from a Table into a string.
This method will convert all of the Table's records and fields into a string but will not serialze any label information. See TableRecord::toString for how the records are converted into a string.
table | The Table to serialize |
fieldDelimiter | The delimiter to use between fields |
Definition at line 480 of file Table.cpp.
References Records().
void Isis::Table::Update | ( | const TableRecord & | rec, |
const int | index | ||
) |
Updates a TableRecord.
rec | TableRecord to update old TableRecord with |
index | Index of TableRecord to be updated |
Definition at line 382 of file Table.cpp.
References Isis::TableRecord::Pack().
void Isis::Table::Write | ( | const QString & | file | ) |
Write the Table to a file.
This uses a Blob to serialize the Table data, see Blob::Write.
file | The file to write the Table to. |
Definition at line 236 of file Table.cpp.
References Isis::Blob::Write().
|
protected |
Association Type of the table.
Definition at line 131 of file Table.h.
Referenced by operator=(), and Table().
|
protected |
The label for storing additional information.
Definition at line 135 of file Table.h.
Referenced by operator=(), and Table().
|
protected |
The name of the Table.
Definition at line 134 of file Table.h.
Referenced by operator=(), and Table().
|
protected |
Buffers containing record values.
Definition at line 126 of file Table.h.
Referenced by operator=(), and Table().
|
protected |
The current table record.
Definition at line 125 of file Table.h.
Referenced by operator=(), and Table().
|
protected |
Holds record count read from labels, may differ from the size of p_recbufs.
Definition at line 128 of file Table.h.
Referenced by operator=(), and Table().
|
protected |
Only used for reading.
Definition at line 132 of file Table.h.
Referenced by operator=(), and Table().
U.S. Department of the Interior | U.S. Geological Survey ISIS | Privacy & Disclaimers | Astrogeology Research Program To contact us, please post comments and questions on the USGS Astrogeology Discussion Board To report a bug, or suggest a feature go to: ISIS Github File Modified: 07/13/2023 15:23:29 |