Isis 3 Programmer Reference
|
Export a PDS table from an ISIS Table. More...
#include <ExportPdsTable.h>
Public Member Functions | |
ExportPdsTable (Table isisTable) | |
Construct an ExportPdsTable object and set default member variable values. More... | |
~ExportPdsTable () | |
Destructs for ExportPdsTable objects. More... | |
PvlObject | exportTable (char *pdsTableBuffer, int pdsFileRecordBytes, QString pdsByteOrder) |
This methods fills the given buffer with the binary PDS table data and returns label information. More... | |
QString | formatPdsTableName () |
Format the PDS table object name using the ISIS table name. More... | |
Static Public Member Functions | |
static QString | formatPdsTableName (QString isisTableName) |
Static method that formats the given ISIS table name in PDS format. More... | |
Private Member Functions | |
void | Pack (TableRecord record, char *buffer, EndianSwapper *endianSwap) |
Pack the buffer with data from the table record, swapping bytes if needed. More... | |
PvlObject | fillMetaData () |
Creates a PvlObject to be added to the PDS label with needed TABLE information. More... | |
Private Attributes | |
Table * | m_isisTable |
Input ISIS Table object to be exported. More... | |
int | m_numRows |
The number of rows in the exported PDS table. More... | |
int | m_outputRecordBytes |
The number of bytes per record in the exported PDS file. More... | |
int | m_rowBytes |
The number of bytes per row in the exported PDS table. More... | |
QString | m_pdsByteOrder |
A string indicating the byte order of the exported PDS file. More... | |
Export a PDS table from an ISIS Table.
This class ingests an ISIS Table and converts it to a PDS Table.
NOTE: This class exports BINARY format PDS tables. The PDS Standards Reference document indicates that for files containing multiple tables with binary data, the records should be FIXED_LENGTH (not STREAM) and that this value should be the length of the longest record in the file (Appendix A, PDS Standards, last updated February 27, 2009). This document also indicates that all table rows that are less than the fixed record length value should be padded (ususally with nulls).
Definition at line 52 of file ExportPdsTable.h.
Isis::ExportPdsTable::ExportPdsTable | ( | Table | isisTable | ) |
Construct an ExportPdsTable object and set default member variable values.
This constructor sets the following defaults:
isisTable | The ISIS Table object to be exported. |
Definition at line 38 of file ExportPdsTable.cpp.
References Isis::Table::Records().
Isis::ExportPdsTable::~ExportPdsTable | ( | ) |
Destructs for ExportPdsTable objects.
Definition at line 51 of file ExportPdsTable.cpp.
PvlObject Isis::ExportPdsTable::exportTable | ( | char * | pdsTableBuffer, |
int | outputFileRecordBytes, | ||
QString | pdsTableByteOrder | ||
) |
This methods fills the given buffer with the binary PDS table data and returns label information.
pdsTableBuffer | This buffer will be filled with binary PDS table data. |
pdsFileRecordBytes | The number or RECORD_BYTES in the PDS file. |
pdsByteOrder | A string containing the byte order of the PDS file. Valid values are "LSB" or "MSB". |
Definition at line 67 of file ExportPdsTable.cpp.
References Isis::TableRecord::RecordSize(), and Isis::toString().
Referenced by Isis::ProcessExportPds::ExportTable().
|
private |
Creates a PvlObject to be added to the PDS label with needed TABLE information.
Definition at line 125 of file ExportPdsTable.cpp.
References Isis::PvlContainer::addKeyword(), Isis::PvlObject::addObject(), Isis::TableField::name(), Isis::TableField::size(), Isis::toString(), and Isis::TableField::type().
QString Isis::ExportPdsTable::formatPdsTableName | ( | ) |
Format the PDS table object name using the ISIS table name.
Definition at line 205 of file ExportPdsTable.cpp.
Referenced by Isis::ProcessExportPds::ExportTable().
|
static |
Static method that formats the given ISIS table name in PDS format.
This method takes the upper camel case Isis table name and returns a PDS table name that is underscore separated, all upper case and with "_TABLE" appended to the end of the name, if not already present.
isisTableName | An QString containing the ISIS upper camel case table name. |
Definition at line 219 of file ExportPdsTable.cpp.
|
private |
Pack the buffer with data from the table record, swapping bytes if needed.
record | ISIS TableRecord to be exported |
buffer | Output buffer to be filled with PDS table row data in the appropriate byte order. |
endianSwap | Pointer to EndianSwapper object to swap bytes if the input Isis Table byte order is not the same as the output PDS byte order. |
Definition at line 249 of file ExportPdsTable.cpp.
References Isis::EndianSwapper::Double(), Isis::TableRecord::Fields(), Isis::EndianSwapper::Float(), Isis::EndianSwapper::Int(), Isis::TableField::isDouble(), Isis::TableField::isInteger(), Isis::TableField::isReal(), Isis::TableField::isText(), Isis::TableField::name(), and Isis::TableField::size().
|
private |
Input ISIS Table object to be exported.
Definition at line 63 of file ExportPdsTable.h.
|
private |
The number of rows in the exported PDS table.
This value is the same as the number of records the ISIS Table.
Definition at line 64 of file ExportPdsTable.h.
|
private |
The number of bytes per record in the exported PDS file.
Definition at line 67 of file ExportPdsTable.h.
|
private |
A string indicating the byte order of the exported PDS file.
Definition at line 73 of file ExportPdsTable.h.
|
private |
The number of bytes per row in the exported PDS table.
This value is the same as the RecordSize (number of bytes per record) of the ISIS Table.
Definition at line 69 of file ExportPdsTable.h.