TECA
The Toolkit for Extreme Climate Analysis
teca_array_collection_reader Class Reference

A reader for collections of arrays stored in NetCDF format. More...

#include <teca_array_collection_reader.h>

Inheritance diagram for teca_array_collection_reader:
Collaboration diagram for teca_array_collection_reader:

Public Member Functions

std::shared_ptr< teca_array_collection_readershared_from_this ()
 
std::shared_ptr< teca_array_collection_reader const > shared_from_this () const
 
 teca_array_collection_reader (const teca_array_collection_reader &src)=delete
 
 teca_array_collection_reader (teca_array_collection_reader &&src)=delete
 
teca_array_collection_readeroperator= (const teca_array_collection_reader &src)=delete
 
teca_array_collection_readeroperator= (teca_array_collection_reader &&src)=delete
 
const char * get_class_name () const override
 
file_name

Set a list of files to open. If this is used then the files_regex is ignored.

size_t get_number_of_file_names ()
 
void append_file_name (const std::string &v)
 
void set_file_name (size_t i, const std::string &v)
 
void set_file_names (const std::vector< std::string > &v)
 
void set_file_names (const std::initializer_list< std::string > &&l)
 
const std::string & get_file_name (size_t i) const
 
const std::vector< std::string > & get_file_names () const
 
void clear_file_names ()
 
files_regex

Set a regular expression identifying the set of files comprising the dataset. This should contain the full path to the files and the regular expression. Only the final component of a path may contain a regex. Be aware that regular expression control characters do not have the same meaning as shell glob control characters. When used in a shell regular expression control characters need to be quoted or escaped to prevent the shell from interpreting them.

void set_files_regex (const std::string &v)
 
const std::string & get_files_regex () const
 
t_axis_variable

Set the name of the variable to use for the t coordinate axis. An empty string disables this dimension.

void set_t_axis_variable (const std::string &v)
 
const std::string & get_t_axis_variable () const
 
calendar

Override the calendar. When specified the values takes precedence over the values found in the file.

void set_calendar (const std::string &v)
 
const std::string & get_calendar () const
 
t_units

Override the time units. When specified the value takes precedence over the values found in the file.

void set_t_units (const std::string &v)
 
const std::string & get_t_units () const
 
filename_time_template

a way to infer time from the filename if the time axis is not stored in the file itself. std::get_time format codes are used. If a calendar is not specified then the standard calendar is used. If time units are not specified then the time units will be "days since %Y-%m-%d 00:00:00" where Y,m, and d are computed from the filename of the first file. set t_axis_variable to an empty string to use.

For example, for the list of files:

my_file_20170516_00.nc my_file_20170516_03.nc ...

the template would be

my_file_Ymd_H.nc

void set_filename_time_template (const std::string &v)
 
const std::string & get_filename_time_template () const
 
t_value

an explicit list of double precision time values to use. set t_axis_variable to an empty string to use.

size_t get_number_of_t_values ()
 
void append_t_value (const double &v)
 
void set_t_value (size_t i, const double &v)
 
void set_t_values (const std::vector< double > &v)
 
void set_t_values (const std::initializer_list< double > &&l)
 
const double & get_t_value (size_t i) const
 
const std::vector< double > & get_t_values () const
 
void clear_t_values ()
 
- 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_array_collection_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 collections of arrays stored in NetCDF format.

The reader reads requested arrays into a teca_array_collection.

The time varying dataset to read is identified by a regular expression identifying a set of files. Note, regular expressions are similar and more powerful than the more familiar shell glob but the control characters have different meanings.

metadata keys:

key description
variables a list of all available variables.
attributes a metadata object holding all NetCDF attributes for the variables
coordinates a metadata object holding names and arrays of the coordinate axes
files list of files in this dataset
step_count list of the number of steps in each file
index_initializer_key number_of_time_steps
number_of_time_steps total number of time steps in all files
index_request_key time_step

attribute metadata:

key description
[variable name] a metadata object holding all NetCDF attributes, and
TECA specific per-array metadata

cooridnate metadata:

key description
t_axis_variable name of t axis variable
t array of t coordinates

request keys:

key description
time_step the time step to read
arrays list of arrays to read

output:

The reader generates a 1,2 or 3D cartesian mesh for the requested timestep on the requested extent with the requested point based arrays and value at this timestep for all time variables.

Member Function Documentation

◆ append_file_name()

void teca_array_collection_reader::append_file_name ( const std::string &  v)
inline

append to the file_name algorithm vector property

◆ append_t_value()

void teca_array_collection_reader::append_t_value ( const double &  v)
inline

append to the t_value algorithm vector property

◆ clear_file_names()

void teca_array_collection_reader::clear_file_names ( )
inline

clear the file_name algorithm vector property

◆ clear_t_values()

void teca_array_collection_reader::clear_t_values ( )
inline

clear the t_value algorithm vector property

◆ get_calendar()

const std::string& teca_array_collection_reader::get_calendar ( ) const
inline

Get the value of the calendar algorithm property

◆ get_class_name()

const char* teca_array_collection_reader::get_class_name ( ) const
inlineoverridevirtual

returns the name of the class

Implements teca_algorithm.

◆ get_file_name()

const std::string& teca_array_collection_reader::get_file_name ( size_t  i) const
inline

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

◆ get_file_names()

const std::vector< std::string >& teca_array_collection_reader::get_file_names ( ) const
inline

get the file_name algorithm vector property

◆ get_filename_time_template()

const std::string& teca_array_collection_reader::get_filename_time_template ( ) const
inline

Get the value of the filename_time_template algorithm property

◆ get_files_regex()

const std::string& teca_array_collection_reader::get_files_regex ( ) const
inline

Get the value of the files_regex algorithm property

◆ get_number_of_file_names()

size_t teca_array_collection_reader::get_number_of_file_names ( )
inline

get the size of the file_name algorithm vector property

◆ get_number_of_t_values()

size_t teca_array_collection_reader::get_number_of_t_values ( )
inline

get the size of the t_value algorithm vector property

◆ get_t_axis_variable()

const std::string& teca_array_collection_reader::get_t_axis_variable ( ) const
inline

Get the value of the t_axis_variable algorithm property

◆ get_t_units()

const std::string& teca_array_collection_reader::get_t_units ( ) const
inline

Get the value of the t_units algorithm property

◆ get_t_value()

const double& teca_array_collection_reader::get_t_value ( size_t  i) const
inline

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

◆ get_t_values()

const std::vector< double >& teca_array_collection_reader::get_t_values ( ) const
inline

get the t_value algorithm vector property

◆ New()

static p_teca_array_collection_reader teca_array_collection_reader::New ( )
inlinestatic

Returns an instance of teca_array_collection_reader

◆ set_calendar()

void teca_array_collection_reader::set_calendar ( const std::string &  v)
inline

Set the value of the calendar algorithm property

◆ set_file_name()

void teca_array_collection_reader::set_file_name ( size_t  i,
const std::string &  v 
)
inline

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

◆ set_file_names() [1/2]

void teca_array_collection_reader::set_file_names ( const std::initializer_list< std::string > &&  l)
inline

set the file_name algorithm vector property

◆ set_file_names() [2/2]

void teca_array_collection_reader::set_file_names ( const std::vector< std::string > &  v)
inline

set the file_name algorithm vector property

◆ set_filename_time_template()

void teca_array_collection_reader::set_filename_time_template ( const std::string &  v)
inline

Set the value of the filename_time_template algorithm property

◆ set_files_regex()

void teca_array_collection_reader::set_files_regex ( const std::string &  v)
inline

Set the value of the files_regex algorithm property

◆ set_t_axis_variable()

void teca_array_collection_reader::set_t_axis_variable ( const std::string &  v)
inline

Set the value of the t_axis_variable algorithm property

◆ set_t_units()

void teca_array_collection_reader::set_t_units ( const std::string &  v)
inline

Set the value of the t_units algorithm property

◆ set_t_value()

void teca_array_collection_reader::set_t_value ( size_t  i,
const double &  v 
)
inline

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

◆ set_t_values() [1/2]

void teca_array_collection_reader::set_t_values ( const std::initializer_list< double > &&  l)
inline

set the t_value algorithm vector property

◆ set_t_values() [2/2]

void teca_array_collection_reader::set_t_values ( const std::vector< double > &  v)
inline

set the t_value algorithm vector property

◆ shared_from_this() [1/2]

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

Enables the static constructor

◆ shared_from_this() [2/2]

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

Enables the static constructor


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