TECA
Public Member Functions | Static Public Member Functions | List of all members
teca_multi_cf_reader Class Reference

a reader for data stored in NetCDF CF format in multiple files More...

#include <teca_multi_cf_reader.h>

Inheritance diagram for teca_multi_cf_reader:
teca_algorithm

Public Member Functions

std::shared_ptr< teca_multi_cf_readershared_from_this ()
 
std::shared_ptr< teca_multi_cf_reader const > shared_from_this () const
 
 teca_multi_cf_reader (const teca_multi_cf_reader &src)=delete
 
 teca_multi_cf_reader (teca_multi_cf_reader &&src)=delete
 
teca_multi_cf_readeroperator= (const teca_multi_cf_reader &src)=delete
 
teca_multi_cf_readeroperator= (teca_multi_cf_reader &&src)=delete
 
const char * get_class_name () const override
 
int set_input_file (const std::string &input_file)
 
int add_reader (const std::string &key, const std::string &files_regex, int provides_time, int provides_geometry, const std::vector< std::string > &variables)
 
int set_time_reader (const std::string &key)
 
int set_geometry_reader (const std::string &key)
 
int add_variable_reader (const std::string &key, const std::string &variable)
 
int set_variable_reader (const std::string &key, const std::vector< std::string > &variable)
 
void get_variables (std::vector< std::string > &vars)
 
void set_periodic_in_x (const int &v)
 
const int & get_periodic_in_x () const
 
void set_periodic_in_y (const int &v)
 
const int & get_periodic_in_y () const
 
void set_periodic_in_z (const int &v)
 
const int & get_periodic_in_z () const
 
void set_x_axis_variable (const std::string &v)
 
const std::string & get_x_axis_variable () const
 
void set_y_axis_variable (const std::string &v)
 
const std::string & get_y_axis_variable () const
 
void set_z_axis_variable (const std::string &v)
 
const std::string & get_z_axis_variable () const
 
void set_t_axis_variable (const std::string &v)
 
const std::string & get_t_axis_variable () const
 
void set_t_calendar (const std::string &v)
 
const std::string & get_t_calendar () const
 
void set_t_units (const std::string &v)
 
const std::string & get_t_units () const
 
void set_filename_time_template (const std::string &v)
 
const std::string & get_filename_time_template () const
 
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)
 
void set_t_values (const const_p_teca_variant_array &v)
 
const double & get_t_value (size_t i) const
 
void get_t_values (std::vector< double > &v) const
 
void get_t_values (const p_teca_variant_array &v) const
 
void clear_t_values ()
 
void set_max_metadata_ranks (const int &v)
 
const int & get_max_metadata_ranks () const
 
- 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 ()
 
virtual teca_algorithm_output_port get_output_port (unsigned int port=0)
 
void set_input_connection (const teca_algorithm_output_port &port)
 
virtual void set_input_connection (unsigned int id, const teca_algorithm_output_port &port)
 
virtual void remove_input_connection (unsigned int id)
 
void clear_input_connections ()
 
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)
 
virtual int update ()
 
virtual int update (unsigned int port)
 
virtual teca_metadata update_metadata (unsigned int port=0)
 
void set_executive (p_teca_algorithm_executive exe)
 
p_teca_algorithm_executive get_executive ()
 
virtual void to_stream (std::ostream &s) const
 
virtual void from_stream (std::istream &s)
 

Static Public Member Functions

static p_teca_multi_cf_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)
 
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)
 
unsigned int get_number_of_input_connections ()
 
teca_algorithm_output_port & get_input_connection (unsigned int i)
 
void clear_modified (unsigned int port)
 
int get_modified (unsigned int port) const
 

Detailed Description

a reader for data stored in NetCDF CF format in multiple files

a reader for data stored in NetCDF CF format in multiple files. the data read is presented to the down stream as a single dataset

use the add_reader method to specify regular experiession and corresponding list of variables to read. a reader, not necessarily the same one, must be selected to provide the time and spatial axes.

this reader could handle spatio-temporal interpolations as well, however that is currently not implemented. as a result all data is expected to be on the same coordinate system.

A number of algorithm properties modify run time behavior, most of these are exposed from teca_cf_reader. see the teca_cf_reader for details.

The reader may be initialized via a configuration file. The configuration file consists of name = value pairs and flags organized in sections. Sections are declared using []. There is an optional global section followed by a number of [cf_reader] sections. Each [cf_reader] section consists of a name(optional), a regex, a list of variables, a provides_time flag(optional) and a provides geometry flag(optional). At least one section must contain a provides_time and provides geometry flag. The global section may contain a data_root. Occurances of the string data_root% in the regex are replaced with the value of data_root.

The following example configures the reader to read hus,ua and va.

# TECA multi_cf_reader config
data_root = /opt/TECA_data/HighResMIP/ECMWF-IFS-HR-SST-present
[cf_reader]
regex = %data_root%/hus/hus.*\.nc$
variables = hus
provides_time
provides_geometry
[cf_reader]
regex = %data_root%/va/va.*\.nc$
variables = va
[cf_reader]
regex = %data_root%/ua/ua.*\.nc$
variables = ua

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