TECA
The Toolkit for Extreme Climate Analysis
teca_cartesian_mesh Class Reference

An object representing data on a stretched Cartesian mesh. More...

#include <teca_cartesian_mesh.h>

Inheritance diagram for teca_cartesian_mesh:
[legend]
Collaboration diagram for teca_cartesian_mesh:
[legend]

Public Member Functions

std::shared_ptr< teca_cartesian_meshshared_from_this ()
 
std::shared_ptr< teca_cartesian_mesh const > shared_from_this () const
 
virtual p_teca_dataset new_instance () const override
 virtual constructor. return a new dataset of the same type. More...
 
virtual p_teca_dataset new_copy (allocator alloc=allocator::malloc) const override
 
virtual p_teca_dataset new_shallow_copy () override
 
void set_whole_extent (const std::vector< unsigned long > &vals)
 
int get_whole_extent (std::vector< unsigned long > &vals) const
 
void set_whole_extent (const p_teca_variant_array &vals)
 
int get_whole_extent (p_teca_variant_array vals) const
 
void set_whole_extent (const std::initializer_list< unsigned long > &l)
 
void set_whole_extent (const unsigned long *vals)
 
int get_whole_extent (unsigned long *vals) const
 
void set_whole_extent (const unsigned long &val_1, const unsigned long &val_2, const unsigned long &val_3, const unsigned long &val_4, const unsigned long &val_5, const unsigned long &val_6)
 
void set_extent (const std::vector< unsigned long > &vals)
 
int get_extent (std::vector< unsigned long > &vals) const
 
void set_extent (const p_teca_variant_array &vals)
 
int get_extent (p_teca_variant_array vals) const
 
void set_extent (const std::initializer_list< unsigned long > &l)
 
void set_extent (const unsigned long *vals)
 
int get_extent (unsigned long *vals) const
 
void set_extent (const unsigned long &val_1, const unsigned long &val_2, const unsigned long &val_3, const unsigned long &val_4, const unsigned long &val_5, const unsigned long &val_6)
 
void set_bounds (const std::vector< double > &vals)
 
int get_bounds (std::vector< double > &vals) const
 
void set_bounds (const p_teca_variant_array &vals)
 
int get_bounds (p_teca_variant_array vals) const
 
void set_bounds (const std::initializer_list< double > &l)
 
void set_bounds (const double *vals)
 
int get_bounds (double *vals) const
 
void set_bounds (const double &val_1, const double &val_2, const double &val_3, const double &val_4, const double &val_5, const double &val_6)
 
void set_periodic_in_x (const std::vector< int > &vals)
 
int get_periodic_in_x (std::vector< int > &vals) const
 
void set_periodic_in_x (const p_teca_variant_array &vals)
 
int get_periodic_in_x (p_teca_variant_array vals) const
 
void set_periodic_in_x (const std::initializer_list< int > &l)
 
void set_periodic_in_x (const int *vals)
 
int get_periodic_in_x (int *vals) const
 
void set_periodic_in_x (const int &val_1)
 
int get_periodic_in_x (int &val_1) const
 
void set_periodic_in_y (const std::vector< int > &vals)
 
int get_periodic_in_y (std::vector< int > &vals) const
 
void set_periodic_in_y (const p_teca_variant_array &vals)
 
int get_periodic_in_y (p_teca_variant_array vals) const
 
void set_periodic_in_y (const std::initializer_list< int > &l)
 
void set_periodic_in_y (const int *vals)
 
int get_periodic_in_y (int *vals) const
 
void set_periodic_in_y (const int &val_1)
 
int get_periodic_in_y (int &val_1) const
 
void set_periodic_in_z (const std::vector< int > &vals)
 
int get_periodic_in_z (std::vector< int > &vals) const
 
void set_periodic_in_z (const p_teca_variant_array &vals)
 
int get_periodic_in_z (p_teca_variant_array vals) const
 
void set_periodic_in_z (const std::initializer_list< int > &l)
 
void set_periodic_in_z (const int *vals)
 
int get_periodic_in_z (int *vals) const
 
void set_periodic_in_z (const int &val_1)
 
int get_periodic_in_z (int &val_1) const
 
void set_x_coordinate_variable (const std::vector< std::string > &vals)
 
int get_x_coordinate_variable (std::vector< std::string > &vals) const
 
void set_x_coordinate_variable (const p_teca_variant_array &vals)
 
int get_x_coordinate_variable (p_teca_variant_array vals) const
 
void set_x_coordinate_variable (const std::initializer_list< std::string > &l)
 
void set_x_coordinate_variable (const std::string *vals)
 
int get_x_coordinate_variable (std::string *vals) const
 
void set_x_coordinate_variable (const std::string &val_1)
 
int get_x_coordinate_variable (std::string &val_1) const
 
void set_y_coordinate_variable (const std::vector< std::string > &vals)
 
int get_y_coordinate_variable (std::vector< std::string > &vals) const
 
void set_y_coordinate_variable (const p_teca_variant_array &vals)
 
int get_y_coordinate_variable (p_teca_variant_array vals) const
 
void set_y_coordinate_variable (const std::initializer_list< std::string > &l)
 
void set_y_coordinate_variable (const std::string *vals)
 
int get_y_coordinate_variable (std::string *vals) const
 
void set_y_coordinate_variable (const std::string &val_1)
 
int get_y_coordinate_variable (std::string &val_1) const
 
void set_z_coordinate_variable (const std::vector< std::string > &vals)
 
int get_z_coordinate_variable (std::vector< std::string > &vals) const
 
void set_z_coordinate_variable (const p_teca_variant_array &vals)
 
int get_z_coordinate_variable (p_teca_variant_array vals) const
 
void set_z_coordinate_variable (const std::initializer_list< std::string > &l)
 
void set_z_coordinate_variable (const std::string *vals)
 
int get_z_coordinate_variable (std::string *vals) const
 
void set_z_coordinate_variable (const std::string &val_1)
 
int get_z_coordinate_variable (std::string &val_1) const
 
void set_t_coordinate_variable (const std::vector< std::string > &vals)
 
int get_t_coordinate_variable (std::vector< std::string > &vals) const
 
void set_t_coordinate_variable (const p_teca_variant_array &vals)
 
int get_t_coordinate_variable (p_teca_variant_array vals) const
 
void set_t_coordinate_variable (const std::initializer_list< std::string > &l)
 
void set_t_coordinate_variable (const std::string *vals)
 
int get_t_coordinate_variable (std::string *vals) const
 
void set_t_coordinate_variable (const std::string &val_1)
 
int get_t_coordinate_variable (std::string &val_1) const
 
int get_array_extent (const std::string &array_name, unsigned long array_extent[8]) const
 
int get_array_shape (const std::string &array_name, unsigned long array_shape[4]) const
 
std::tuple< unsigned long, unsigned long, unsigned long, unsigned long > get_array_shape (const std::string &array_name) const
 
unsigned long get_number_of_points () const override
 get the number of points in the mesh More...
 
unsigned long get_number_of_cells () const override
 get the number of cells in the mesh More...
 
p_teca_variant_array get_x_coordinates ()
 Get the x coordinate array. More...
 
const_p_teca_variant_array get_x_coordinates () const
 
p_teca_variant_array get_y_coordinates ()
 Get the y coordinate array. More...
 
const_p_teca_variant_array get_y_coordinates () const
 
p_teca_variant_array get_z_coordinates ()
 Get the z coordinate array. More...
 
const_p_teca_variant_array get_z_coordinates () const
 
void set_x_coordinates (const std::string &name, const p_teca_variant_array &array)
 Set the x coordinate array and x_coordinate_variable name. More...
 
void set_y_coordinates (const std::string &name, const p_teca_variant_array &array)
 Set the y coordinate array and y_coordinate_variable name. More...
 
void set_z_coordinates (const std::string &name, const p_teca_variant_array &array)
 set the z coordinate array and z_coordinate_variable name More...
 
void update_x_coordinates (const p_teca_variant_array &array)
 Update the x coordinate array. More...
 
void update_y_coordinates (const p_teca_variant_array &array)
 Update the y coordinate array. More...
 
void update_z_coordinates (const p_teca_variant_array &array)
 Update the z coordinate array. More...
 
std::string get_class_name () const override
 Return the name of the class. More...
 
int get_type_code () const override
 return an integer identifier uniquely naming the dataset type More...
 
void copy (const const_p_teca_dataset &other, allocator alloc=allocator::malloc) override
 
void shallow_copy (const p_teca_dataset &other) override
 
void copy_metadata (const const_p_teca_dataset &other) override
 Copy metadata. This is always a deep copy. More...
 
void swap (const p_teca_dataset &) override
 Swap the internals of the two objects. More...
 
int to_stream (teca_binary_stream &) const override
 
int from_stream (teca_binary_stream &) override
 deserialize the dataset from the given stream for I/O or communication More...
 
int to_stream (std::ostream &) const override
 send to stream in a human readable representation More...
 
virtual int from_stream (teca_binary_stream &)
 deserialize the dataset from the given stream for I/O or communication More...
 
virtual int from_stream (std::istream &)
 read from stream in a human readable representation More...
 
- Public Member Functions inherited from teca_mesh
bool empty () const noexcept override
 return true if the dataset is empty. More...
 
void copy (const const_p_teca_dataset &other, allocator alloc=allocator::malloc) override
 
void shallow_copy (const p_teca_dataset &other) override
 
void append_arrays (const const_p_teca_mesh &)
 
void shallow_append_arrays (const p_teca_mesh &)
 
void swap (const p_teca_dataset &) override
 swap internals of the two objects More...
 
int to_stream (teca_binary_stream &) const override
 
int from_stream (teca_binary_stream &) override
 deserialize the dataset from the given stream for I/O or communication More...
 
int to_stream (std::ostream &) const override
 stream to/from human readable representation More...
 
int from_stream (std::istream &) override
 read from stream in a human readable representation More...
 
 teca_mesh ()
 
void set_temporal_bounds (const std::vector< double > &vals)
 
int get_temporal_bounds (std::vector< double > &vals) const
 
void set_temporal_bounds (const p_teca_variant_array &vals)
 
int get_temporal_bounds (p_teca_variant_array vals) const
 
void set_temporal_bounds (const std::initializer_list< double > &l)
 
void set_temporal_bounds (const double *vals)
 
int get_temporal_bounds (double *vals) const
 
void set_temporal_bounds (const double &val_1, const double &val_2)
 
int get_temporal_bounds (double &val_1, double &val_2) const
 
void set_temporal_extent (const std::vector< unsigned long > &vals)
 
int get_temporal_extent (std::vector< unsigned long > &vals) const
 
void set_temporal_extent (const p_teca_variant_array &vals)
 
int get_temporal_extent (p_teca_variant_array vals) const
 
void set_temporal_extent (const std::initializer_list< unsigned long > &l)
 
void set_temporal_extent (const unsigned long *vals)
 
int get_temporal_extent (unsigned long *vals) const
 
void set_temporal_extent (const unsigned long &val_1, const unsigned long &val_2)
 
int get_temporal_extent (unsigned long &val_1, unsigned long &val_2) const
 
void set_calendar (const std::vector< std::string > &vals)
 
int get_calendar (std::vector< std::string > &vals) const
 
void set_calendar (const p_teca_variant_array &vals)
 
int get_calendar (p_teca_variant_array vals) const
 
void set_calendar (const std::initializer_list< std::string > &l)
 
void set_calendar (const std::string *vals)
 
int get_calendar (std::string *vals) const
 
void set_calendar (const std::string &val_1)
 
int get_calendar (std::string &val_1) const
 
void set_time_units (const std::vector< std::string > &vals)
 
int get_time_units (std::vector< std::string > &vals) const
 
void set_time_units (const p_teca_variant_array &vals)
 
int get_time_units (p_teca_variant_array vals) const
 
void set_time_units (const std::initializer_list< std::string > &l)
 
void set_time_units (const std::string *vals)
 
int get_time_units (std::string *vals) const
 
void set_time_units (const std::string &val_1)
 
int get_time_units (std::string &val_1) const
 
void set_time_step (const unsigned long &val)
 Set the temporal_extent to a single time step. More...
 
int get_time_step (unsigned long &val) const
 
void set_time (const double &val)
 Set the temporal bounds to a single time value. More...
 
int get_time (double &val) const
 
void set_attributes (const std::vector< teca_metadata > &vals)
 
int get_attributes (std::vector< teca_metadata > &vals) const
 
void set_attributes (const p_teca_variant_array &vals)
 
int get_attributes (p_teca_variant_array vals) const
 
void set_attributes (const std::initializer_list< teca_metadata > &l)
 
void set_attributes (const teca_metadata *vals)
 
int get_attributes (teca_metadata *vals) const
 
void set_attributes (const teca_metadata &val_1)
 
int get_attributes (teca_metadata &val_1) const
 
p_teca_array_collection & get_arrays (int centering)
 
const_p_teca_array_collection get_arrays (int centering) const
 
p_teca_array_collection & get_point_arrays ()
 
const_p_teca_array_collection get_point_arrays () const
 
p_teca_array_collection & get_cell_arrays ()
 
const_p_teca_array_collection get_cell_arrays () const
 
p_teca_array_collection & get_x_edge_arrays ()
 
const_p_teca_array_collection get_x_edge_arrays () const
 
p_teca_array_collection & get_y_edge_arrays ()
 
const_p_teca_array_collection get_y_edge_arrays () const
 
p_teca_array_collection & get_z_edge_arrays ()
 
const_p_teca_array_collection get_z_edge_arrays () const
 
p_teca_array_collection & get_x_face_arrays ()
 
const_p_teca_array_collection get_x_face_arrays () const
 
p_teca_array_collection & get_y_face_arrays ()
 
const_p_teca_array_collection get_y_face_arrays () const
 
p_teca_array_collection & get_z_face_arrays ()
 
const_p_teca_array_collection get_z_face_arrays () const
 
p_teca_array_collection & get_information_arrays ()
 
const_p_teca_array_collection get_information_arrays () const
 
- Public Member Functions inherited from teca_dataset
virtual int set_request_indices (const std::string &request_key, const unsigned long ids[2])
 
virtual int get_request_indices (unsigned long ids[2]) const
 
virtual int get_request_index (unsigned long &index) const
 
virtual int set_request_index (const std::string &request_key, unsigned long index)
 
 operator bool () const noexcept
 
virtual teca_metadataget_metadata () noexcept
 get the dataset metadata More...
 
virtual const teca_metadataget_metadata () const noexcept
 get the dataset metadata More...
 
virtual void set_metadata (const teca_metadata &md)
 set the dataset metadata More...
 
void set_index_request_key (const std::vector< std::string > &vals)
 
int get_index_request_key (std::vector< std::string > &vals) const
 
void set_index_request_key (const p_teca_variant_array &vals)
 
int get_index_request_key (p_teca_variant_array vals) const
 
void set_index_request_key (const std::initializer_list< std::string > &l)
 
void set_index_request_key (const std::string *vals)
 
int get_index_request_key (std::string *vals) const
 
void set_index_request_key (const std::string &val_1)
 
int get_index_request_key (std::string &val_1) const
 

Static Public Member Functions

static p_teca_cartesian_mesh New ()
 

Additional Inherited Members

- Public Types inherited from teca_dataset
using allocator = teca_variant_array::allocator
 
- Public Attributes inherited from teca_mesh
std::shared_ptr< impl_tm_impl
 
- Protected Member Functions inherited from teca_dataset
 teca_dataset (const teca_dataset &)=delete
 
 teca_dataset (const teca_dataset &&)=delete
 
void operator= (const p_teca_dataset &other)=delete
 
void operator= (p_teca_dataset &&other)=delete
 
- Protected Attributes inherited from teca_dataset
teca_metadatametadata
 

Detailed Description

An object representing data on a stretched Cartesian mesh.

Member Function Documentation

◆ copy()

void teca_cartesian_mesh::copy ( const const_p_teca_dataset &  other,
allocator  alloc = allocator::malloc 
)
overridevirtual

Deep copy data and metdata.

Parameters
[in]otherThe dataset to copy.
[in]allocThe allocator to use for alloctions of data structures to hold the copy. The default is a CPU based allocator.

Reimplemented from teca_dataset.

◆ copy_metadata()

void teca_cartesian_mesh::copy_metadata ( const const_p_teca_dataset &  other)
overridevirtual

Copy metadata. This is always a deep copy.

Reimplemented from teca_dataset.

◆ from_stream() [1/3]

virtual int teca_dataset::from_stream

read from stream in a human readable representation

◆ from_stream() [2/3]

virtual int teca_dataset::from_stream

deserialize the dataset from the given stream for I/O or communication

◆ from_stream() [3/3]

int teca_cartesian_mesh::from_stream ( teca_binary_stream )
overridevirtual

deserialize the dataset from the given stream for I/O or communication

Reimplemented from teca_dataset.

◆ get_array_extent()

int teca_cartesian_mesh::get_array_extent ( const std::string &  array_name,
unsigned long  array_extent[8] 
) const

Get the extent of the named array, taking into account the variable's dimensions as opposed to the mesh's dimensions. For instance the mesh extent may represent a volume while a variables extent may represent a slice. returns 0 if successful, -1 if an error occurred, 1 if the have_mesh_dims flag is missing. The latter is not necessarily an error.

◆ get_array_shape() [1/2]

std::tuple<unsigned long, unsigned long, unsigned long, unsigned long> teca_cartesian_mesh::get_array_shape ( const std::string &  array_name) const
inline

Get the shape of the named array, taking into account the variable's dimensions as opposed to the mesh's dimensions. If the call fails, an error is reported to the stderr stream.

◆ get_array_shape() [2/2]

int teca_cartesian_mesh::get_array_shape ( const std::string &  array_name,
unsigned long  array_shape[4] 
) const

Get the shape of the named array, taking into account the variable's dimensions as opposed to the mesh's dimensions. For instance the mesh extent may represent a volume while a variables extent may represent a slice. returns 0 if successful, -1 if an error occurred, 1 if the have_mesh_dims flag is missing. The latter is not necessarily an error.

◆ get_class_name()

std::string teca_cartesian_mesh::get_class_name ( ) const
inlineoverridevirtual

Return the name of the class.

Implements teca_dataset.

◆ get_number_of_cells()

unsigned long teca_cartesian_mesh::get_number_of_cells ( ) const
overridevirtual

get the number of cells in the mesh

Implements teca_mesh.

◆ get_number_of_points()

unsigned long teca_cartesian_mesh::get_number_of_points ( ) const
overridevirtual

get the number of points in the mesh

Implements teca_mesh.

◆ get_type_code()

int teca_cartesian_mesh::get_type_code ( ) const
overridevirtual

return an integer identifier uniquely naming the dataset type

Implements teca_dataset.

◆ get_x_coordinates()

p_teca_variant_array teca_cartesian_mesh::get_x_coordinates ( )
inline

Get the x coordinate array.

◆ get_y_coordinates()

p_teca_variant_array teca_cartesian_mesh::get_y_coordinates ( )
inline

Get the y coordinate array.

◆ get_z_coordinates()

p_teca_variant_array teca_cartesian_mesh::get_z_coordinates ( )
inline

Get the z coordinate array.

◆ new_copy()

virtual p_teca_dataset teca_cartesian_mesh::new_copy ( allocator  alloc = allocator::malloc) const
inlineoverridevirtual

Implements teca_dataset.

◆ new_instance()

virtual p_teca_dataset teca_cartesian_mesh::new_instance ( ) const
inlineoverridevirtual

virtual constructor. return a new dataset of the same type.

Implements teca_dataset.

◆ new_shallow_copy()

virtual p_teca_dataset teca_cartesian_mesh::new_shallow_copy ( )
inlineoverridevirtual

Virtual shallow copy constructor. return a shallow copy of this dataset in a new instance. References to source data structures are taken, but metadata is always deep copied.

Implements teca_dataset.

◆ set_x_coordinates()

void teca_cartesian_mesh::set_x_coordinates ( const std::string &  name,
const p_teca_variant_array array 
)

Set the x coordinate array and x_coordinate_variable name.

◆ set_y_coordinates()

void teca_cartesian_mesh::set_y_coordinates ( const std::string &  name,
const p_teca_variant_array array 
)

Set the y coordinate array and y_coordinate_variable name.

◆ set_z_coordinates()

void teca_cartesian_mesh::set_z_coordinates ( const std::string &  name,
const p_teca_variant_array array 
)

set the z coordinate array and z_coordinate_variable name

◆ shallow_copy()

void teca_cartesian_mesh::shallow_copy ( const p_teca_dataset &  other)
overridevirtual

Shallow copy data and metadata. The shallow copy takes references to the source data structures. Metadata is always deep copied.

Parameters
[in]otherThe dataset to copy.

Reimplemented from teca_dataset.

◆ swap()

void teca_cartesian_mesh::swap ( const p_teca_dataset &  )
overridevirtual

Swap the internals of the two objects.

Reimplemented from teca_dataset.

◆ to_stream() [1/2]

int teca_cartesian_mesh::to_stream ( std::ostream &  ) const
overridevirtual

send to stream in a human readable representation

Reimplemented from teca_dataset.

◆ to_stream() [2/2]

int teca_cartesian_mesh::to_stream ( teca_binary_stream ) const
overridevirtual

Serialize the dataset to/from the given stream for I/O or communication

Reimplemented from teca_dataset.

◆ update_x_coordinates()

void teca_cartesian_mesh::update_x_coordinates ( const p_teca_variant_array array)

Update the x coordinate array.

◆ update_y_coordinates()

void teca_cartesian_mesh::update_y_coordinates ( const p_teca_variant_array array)

Update the y coordinate array.

◆ update_z_coordinates()

void teca_cartesian_mesh::update_z_coordinates ( const p_teca_variant_array array)

Update the z coordinate array.


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