TECA
The Toolkit for Extreme Climate Analysis
teca_table_reader Class Reference

a reader for data stored in binary table format More...

#include <teca_table_reader.h>

Inheritance diagram for teca_table_reader:
Collaboration diagram for teca_table_reader:

Public Types

enum  { format_csv, format_bin, format_xlsx, format_auto }
 

Public Member Functions

std::shared_ptr< teca_table_readershared_from_this ()
 
std::shared_ptr< teca_table_reader const > shared_from_this () const
 
 teca_table_reader (const teca_table_reader &src)=delete
 
 teca_table_reader (teca_table_reader &&src)=delete
 
teca_table_readeroperator= (const teca_table_reader &src)=delete
 
teca_table_readeroperator= (teca_table_reader &&src)=delete
 
const char * get_class_name () const override
 
void set_file_name (const std::string &v)
 
const std::string & get_file_name () const
 
void set_index_column (const std::string &v)
 
const std::string & get_index_column () const
 
void set_generate_original_ids (const int &v)
 
const int & get_generate_original_ids () const
 
size_t get_number_of_metadata_column_names ()
 
void append_metadata_column_name (const std::string &v)
 
void set_metadata_column_name (size_t i, const std::string &v)
 
void set_metadata_column_names (const std::vector< std::string > &v)
 
void set_metadata_column_names (const std::initializer_list< std::string > &&l)
 
const std::string & get_metadata_column_name (size_t i) const
 
const std::vector< std::string > & get_metadata_column_names () const
 
void clear_metadata_column_names ()
 
size_t get_number_of_metadata_column_keys ()
 
void append_metadata_column_key (const std::string &v)
 
void set_metadata_column_key (size_t i, const std::string &v)
 
void set_metadata_column_keys (const std::vector< std::string > &v)
 
void set_metadata_column_keys (const std::initializer_list< std::string > &&l)
 
const std::string & get_metadata_column_key (size_t i) const
 
const std::vector< std::string > & get_metadata_column_keys () const
 
void clear_metadata_column_keys ()
 
void add_metadata_column (const std::string &column, const std::string &key)
 
void clear_metadata_columns ()
 
void set_file_format (const int &v)
 
const int & get_file_format () const
 
void set_file_format_csv ()
 
void set_file_format_bin ()
 
void set_file_format_xlsx ()
 
void set_file_format_auto ()
 
- Public Member Functions inherited from teca_algorithm
 teca_algorithm (const teca_algorithm &src)=delete
 
 teca_algorithm (teca_algorithm &&src)=delete
 
teca_algorithmoperator= (const teca_algorithm &src)=delete
 
teca_algorithmoperator= (teca_algorithm &&src)=delete
 
void set_communicator (MPI_Comm comm)
 
MPI_Comm get_communicator ()
 get the active communicator More...
 
virtual teca_algorithm_output_port get_output_port (unsigned int port=0)
 
void set_input_connection (const teca_algorithm_output_port &port)
 set an input to this algorithm More...
 
virtual void set_input_connection (unsigned int id, const teca_algorithm_output_port &port)
 set an input to this algorithm More...
 
virtual void remove_input_connection (unsigned int id)
 remove input connections More...
 
void clear_input_connections ()
 remove all input connections More...
 
const_p_teca_dataset get_output_data (unsigned int port=0)
 
void pop_cache (unsigned int port=0, int top=0)
 
void set_cache_size (unsigned int n)
 set the cache size. the default is 1. (threadsafe) More...
 
virtual int update ()
 execute the pipeline from this instance up. More...
 
virtual int update (unsigned int port)
 execute the pipeline from this instance up. More...
 
virtual teca_metadata update_metadata (unsigned int port=0)
 get meta data considering this instance up. More...
 
void set_executive (p_teca_algorithm_executive exe)
 set the executive More...
 
p_teca_algorithm_executive get_executive ()
 get the executive More...
 
virtual void to_stream (std::ostream &s) const
 
virtual void from_stream (std::istream &s)
 deserialize from the stream. More...
 
void set_verbose (const int &v)
 
const int & get_verbose () const
 

Static Public Member Functions

static p_teca_table_reader New ()
 

Additional Inherited Members

- Protected Member Functions inherited from teca_algorithm
void set_number_of_input_connections (unsigned int n)
 
void set_number_of_output_ports (unsigned int n)
 
void set_modified (unsigned int port)
 an overload to set_modified by port More...
 
virtual std::vector< teca_metadataget_upstream_request (unsigned int port, const std::vector< teca_metadata > &input_md, const teca_metadata &request)
 
virtual teca_metadata get_cache_key (unsigned int port, const teca_metadata &request) const
 
virtual teca_metadata get_output_metadata (teca_algorithm_output_port &current)
 
virtual const_p_teca_dataset request_data (teca_algorithm_output_port &port, const teca_metadata &request)
 
virtual int validate_cache (teca_algorithm_output_port &current)
 
virtual void clear_modified (teca_algorithm_output_port current)
 
const_p_teca_dataset get_output_data (unsigned int port, const teca_metadata &request)
 
int cache_output_data (unsigned int port, const teca_metadata &request, const_p_teca_dataset &data)
 
void clear_cache (unsigned int port)
 clear the cache on the given output port More...
 
unsigned int get_number_of_input_connections ()
 get the number of input connections More...
 
teca_algorithm_output_portget_input_connection (unsigned int i)
 
void clear_modified (unsigned int port)
 clear the modified flag on the i'th output More...
 
int get_modified (unsigned int port) const
 return the output port's modified flag value More...
 
- Protected Attributes inherited from teca_algorithm
int verbose
 

Detailed Description

a reader for data stored in binary table format

A reader for data stored in CSV or binary table format. By default the reader reads and returns the entire table on rank 0. The reader can partition the data across an "index column". The index column assigns a unique id to rows that should be returned together. The reader reports the number of unique ids to the pipeline which can then be requested by the pipeline during parallel or sequential execution.

output: generates a table containing the data read from the file.

TECA CSV format specification

Comment lines

a '#' character at the start of a line marks it as a comment. The version of the CSV specification as well as the version of TECA used to write the table will be stored in comment lines. Comment lines are currently skipped when reading the table.

Column definitions

the first row stores the names and data types of the columns. Column names are strings and delimited by double quotes. A column's data type is encoded in the name using (N) where N is an integer type code defined by teca_variant_array and parentheses delimit the type code. The type code sequence is stripped from the name when the file is read.

C type code
char 1
unsigned char 2
int 3
unsigned int 4
short int 5
short unsigned int 6
long 7
unsigned long 8
long long 9
unsigned long long 10
float 11
double 12
std::string 13

The number of column definitions found determines the number of columns in the table when reading.

Column data

Data is organized row by row with an entry for each column. Entries are separated by commas ','. Error's will occur when the number of column definitions don't match the number of data entries per row.

String data

Strings are delimited by double quotations. Double quotes and commas in strings may be escaped by a backslash.

Numeric data

The type code provided in the column definition tells the type of number. These codes are defined in teca_variant_array.

floating point types are written with format and precision such that they may be read without introducing rounding error.

Member Function Documentation

◆ append_metadata_column_key()

void teca_table_reader::append_metadata_column_key ( const std::string &  v)
inline

append to the metadata_column_key algorithm vector property

◆ append_metadata_column_name()

void teca_table_reader::append_metadata_column_name ( const std::string &  v)
inline

append to the metadata_column_name algorithm vector property

◆ clear_metadata_column_keys()

void teca_table_reader::clear_metadata_column_keys ( )
inline

clear the metadata_column_key algorithm vector property

◆ clear_metadata_column_names()

void teca_table_reader::clear_metadata_column_names ( )
inline

clear the metadata_column_name algorithm vector property

◆ get_class_name()

const char* teca_table_reader::get_class_name ( ) const
inlineoverridevirtual

returns the name of the class

Implements teca_algorithm.

◆ get_file_format()

const int& teca_table_reader::get_file_format ( ) const
inline

Get the value of the file_format algorithm property

◆ get_file_name()

const std::string& teca_table_reader::get_file_name ( ) const
inline

Get the value of the file_name algorithm property

◆ get_generate_original_ids()

const int& teca_table_reader::get_generate_original_ids ( ) const
inline

Get the value of the generate_original_ids algorithm property

◆ get_index_column()

const std::string& teca_table_reader::get_index_column ( ) const
inline

Get the value of the index_column algorithm property

◆ get_metadata_column_key()

const std::string& teca_table_reader::get_metadata_column_key ( size_t  i) const
inline

get the i-th element of the metadata_column_key algorithm vector property

◆ get_metadata_column_keys()

const std::vector< std::string >& teca_table_reader::get_metadata_column_keys ( ) const
inline

get the metadata_column_key algorithm vector property

◆ get_metadata_column_name()

const std::string& teca_table_reader::get_metadata_column_name ( size_t  i) const
inline

get the i-th element of the metadata_column_name algorithm vector property

◆ get_metadata_column_names()

const std::vector< std::string >& teca_table_reader::get_metadata_column_names ( ) const
inline

get the metadata_column_name algorithm vector property

◆ get_number_of_metadata_column_keys()

size_t teca_table_reader::get_number_of_metadata_column_keys ( )
inline

get the size of the metadata_column_key algorithm vector property

◆ get_number_of_metadata_column_names()

size_t teca_table_reader::get_number_of_metadata_column_names ( )
inline

get the size of the metadata_column_name algorithm vector property

◆ New()

static p_teca_table_reader teca_table_reader::New ( )
inlinestatic

Returns an instance of teca_table_reader

◆ set_file_format()

void teca_table_reader::set_file_format ( const int &  v)
inline

Set the value of the file_format algorithm property

◆ set_file_name()

void teca_table_reader::set_file_name ( const std::string &  v)
inline

Set the value of the file_name algorithm property

◆ set_generate_original_ids()

void teca_table_reader::set_generate_original_ids ( const int &  v)
inline

Set the value of the generate_original_ids algorithm property

◆ set_index_column()

void teca_table_reader::set_index_column ( const std::string &  v)
inline

Set the value of the index_column algorithm property

◆ set_metadata_column_key()

void teca_table_reader::set_metadata_column_key ( size_t  i,
const std::string &  v 
)
inline

set the i-th element of the metadata_column_key algorithm vector property

◆ set_metadata_column_keys() [1/2]

void teca_table_reader::set_metadata_column_keys ( const std::initializer_list< std::string > &&  l)
inline

set the metadata_column_key algorithm vector property

◆ set_metadata_column_keys() [2/2]

void teca_table_reader::set_metadata_column_keys ( const std::vector< std::string > &  v)
inline

set the metadata_column_key algorithm vector property

◆ set_metadata_column_name()

void teca_table_reader::set_metadata_column_name ( size_t  i,
const std::string &  v 
)
inline

set the i-th element of the metadata_column_name algorithm vector property

◆ set_metadata_column_names() [1/2]

void teca_table_reader::set_metadata_column_names ( const std::initializer_list< std::string > &&  l)
inline

set the metadata_column_name algorithm vector property

◆ set_metadata_column_names() [2/2]

void teca_table_reader::set_metadata_column_names ( const std::vector< std::string > &  v)
inline

set the metadata_column_name algorithm vector property

◆ shared_from_this() [1/2]

std::shared_ptr< teca_table_reader > teca_table_reader::shared_from_this ( )
inline

Enables the static constructor

◆ shared_from_this() [2/2]

std::shared_ptr< teca_table_reader const> teca_table_reader::shared_from_this ( ) const
inline

Enables the static constructor


The documentation for this class was generated from the following file: