|
TECA
The Toolkit for Extreme Climate Analysis
|
A reader for Cartesian mesh based data stored in NetCDF CF format. More...
#include <teca_cf_reader.h>
Public Member Functions | |
| std::shared_ptr< teca_cf_reader > | shared_from_this () |
| std::shared_ptr< teca_cf_reader const > | shared_from_this () const |
| teca_cf_reader (const teca_cf_reader &src)=delete | |
| teca_cf_reader (teca_cf_reader &&src)=delete | |
| teca_cf_reader & | operator= (const teca_cf_reader &src)=delete |
| teca_cf_reader & | operator= (teca_cf_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 (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 |
periodic_in_x | |
A flag that indicates a periodic bondary in the x direction | |
| void | set_periodic_in_x (const int &v) |
| const int & | get_periodic_in_x () const |
periodic_in_y | |
A flag that indicates a periodic bondary in the y direction | |
| void | set_periodic_in_y (const int &v) |
| const int & | get_periodic_in_y () const |
periodic_in_z | |
A flag that indicates a periodic bondary in the z direction | |
| void | set_periodic_in_z (const int &v) |
| const int & | get_periodic_in_z () const |
select_ensemble_member_index | |
Index of the ensemble member to use (if an ensemble dimension is given) | |
| void | set_select_ensemble_member_index (const int &v) |
| const int & | get_select_ensemble_member_index () const |
x_axis_variable | |
Set the name of the variable to use for the x coordinate axis. An empty string disables this dimension. | |
| void | set_x_axis_variable (const std::string &v) |
| const std::string & | get_x_axis_variable () const |
y_axis_variable | |
Set the name of the variable to use for the y coordinate axis. An empty string disables this dimension. | |
| void | set_y_axis_variable (const std::string &v) |
| const std::string & | get_y_axis_variable () const |
z_axis_variable | |
Set the name of the variable to use for the z coordinate axis. An empty string disables this dimension. | |
| void | set_z_axis_variable (const std::string &v) |
| const std::string & | get_z_axis_variable () 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 |
ensemble_dimension_name | |
Set the name of the dimension that corresponds to ensemble members. An empty string disables this dimension. | |
| void | set_ensemble_dimension_name (const std::string &v) |
| const std::string & | get_ensemble_dimension_name () 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:
the template would be
| |
| 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 (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 () |
max_metadata_ranks | |
set/get the number of ranks used to read the time axis. the default value of 1024 ranks works well on NERSC Cori scratch file system and may not be optimal on other systems. | |
| void | set_max_metadata_ranks (const int &v) |
| const int & | get_max_metadata_ranks () const |
clamp_dimensions_of_one | |
If set the requested extent will be clamped in a given direction if the coorinate axis in that dircetion has a length of 1 and the requested extent would be out of bounds. This exists to deal with non-conformant data and should be used with caution. | |
| void | set_clamp_dimensions_of_one (const int &v) |
| const int & | get_clamp_dimensions_of_one () const |
collective_buffer | |
Enables MPI I/O colective buffering. Collective buffering is only valid when the spatial partitioner is enabled and the number of spatial partitions is equal to the number of MPI ranks, and the code is single threaded. This is an experimental feature. | |
| void | set_collective_buffer (const int &v) |
| const int & | get_collective_buffer () const |
Public Member Functions inherited from teca_algorithm | |
| teca_algorithm (const teca_algorithm &src)=delete | |
| teca_algorithm (teca_algorithm &&src)=delete | |
| teca_algorithm & | operator= (const teca_algorithm &src)=delete |
| teca_algorithm & | operator= (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_cf_reader | New () |
Protected Member Functions | |
| void | clear_cached_metadata () |
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_metadata > | get_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 ¤t) |
| virtual const_p_teca_dataset | request_data (teca_algorithm_output_port &port, const teca_metadata &request) |
| virtual int | validate_cache (teca_algorithm_output_port ¤t) |
| 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_port & | get_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... | |
Additional Inherited Members | |
Protected Attributes inherited from teca_algorithm | |
| int | verbose |
A reader for Cartesian mesh based data stored in NetCDF CF format.
Reads a set of arrays from single time step into a teca_cartesian_mesh dataset. The reader responds to requests for specific arrays and the data may be optionally subset via extent and bounds request keys.
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.
| 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 |
| whole_extent | index space extent describing (nodal) dimensions of the mesh |
| bounds | world coordinate space bounding box covered by the mesh |
| key | description |
|---|---|
| [variable name] | a metadata object holding all NetCDF attributes, and |
| TECA specific per-array metadata |
| key | description |
|---|---|
| x_axis_variable | name of x axis variable |
| y_axis_variable | name of y axis variable |
| z_axis_variable | name of z axis variable |
| t_axis_variable | name of t axis variable |
| x | array of x coordinates |
| y | array of y coordinates |
| z | array of z coordinates |
| t | array of t coordinates |
| key | description |
|---|---|
| time_step | the time step to read |
| arrays | list of arrays to read |
| extent | index space extents describing the subset of data to read |
| bounds | world space bounds describing the subset of data to read |
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.
|
inline |
append to the file_name algorithm vector property
|
inline |
append to the t_value algorithm vector property
|
inline |
clear the file_name algorithm vector property
|
inline |
clear the t_value algorithm vector property
|
inline |
Get the value of the calendar algorithm property
|
inline |
Get the value of the clamp_dimensions_of_one algorithm property
|
inlineoverridevirtual |
returns the name of the class
Implements teca_algorithm.
|
inline |
Get the value of the collective_buffer algorithm property
|
inline |
Get the value of the ensemble_dimension_name algorithm property
|
inline |
get the i-th element of the file_name algorithm vector property
|
inline |
get the file_name algorithm vector property
|
inline |
Get the value of the filename_time_template algorithm property
|
inline |
Get the value of the files_regex algorithm property
|
inline |
Get the value of the max_metadata_ranks algorithm property
|
inline |
get the size of the file_name algorithm vector property
|
inline |
get the size of the t_value algorithm vector property
|
inline |
Get the value of the periodic_in_x algorithm property
|
inline |
Get the value of the periodic_in_y algorithm property
|
inline |
Get the value of the periodic_in_z algorithm property
|
inline |
Get the value of the select_ensemble_member_index algorithm property
|
inline |
Get the value of the t_axis_variable algorithm property
|
inline |
Get the value of the t_units algorithm property
|
inline |
get the i-th element of the t_value algorithm vector property
|
inline |
get the t_value algorithm vector property
|
inline |
Get the value of the x_axis_variable algorithm property
|
inline |
Get the value of the y_axis_variable algorithm property
|
inline |
Get the value of the z_axis_variable algorithm property
|
inlinestatic |
Returns an instance of teca_cf_reader
|
inline |
Set the value of the calendar algorithm property
|
inline |
Set the value of the clamp_dimensions_of_one algorithm property
|
inline |
Set the value of the collective_buffer algorithm property
|
inline |
Set the value of the ensemble_dimension_name algorithm property
|
inline |
set the file_name algorithm vector property to a single value
|
inline |
set the i-th element of the file_name algorithm vector property
|
inline |
set the file_name algorithm vector property
|
inline |
set the file_name algorithm vector property
|
inline |
Set the value of the filename_time_template algorithm property
|
inline |
Set the value of the files_regex algorithm property
|
inline |
Set the value of the max_metadata_ranks algorithm property
|
inline |
Set the value of the periodic_in_x algorithm property
|
inline |
Set the value of the periodic_in_y algorithm property
|
inline |
Set the value of the periodic_in_z algorithm property
|
inline |
Set the value of the select_ensemble_member_index algorithm property
|
inline |
Set the value of the t_axis_variable algorithm property
|
inline |
Set the value of the t_units algorithm property
|
inline |
set the t_value algorithm vector property to a single value
|
inline |
set the i-th element of the t_value algorithm vector property
|
inline |
set the t_value algorithm vector property
|
inline |
set the t_value algorithm vector property
|
inline |
Set the value of the x_axis_variable algorithm property
|
inline |
Set the value of the y_axis_variable algorithm property
|
inline |
Set the value of the z_axis_variable algorithm property
|
inline |
Enables the static constructor
|
inline |
Enables the static constructor