|
TECA
The Toolkit for Extreme Climate Analysis
|
A representation of mesh based data on an Arkawa C Grid. More...
#include <teca_arakawa_c_grid.h>
Public Member Functions | |
| std::shared_ptr< teca_arakawa_c_grid > | shared_from_this () |
| std::shared_ptr< teca_arakawa_c_grid const > | shared_from_this () const |
| virtual p_teca_dataset | new_instance () const override |
| 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 |
| 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... | |
| void | set_m_x_coordinate_variable (const std::vector< std::string > &vals) |
| int | get_m_x_coordinate_variable (std::vector< std::string > &vals) const |
| void | set_m_x_coordinate_variable (const p_teca_variant_array &vals) |
| int | get_m_x_coordinate_variable (p_teca_variant_array vals) const |
| void | set_m_x_coordinate_variable (const std::initializer_list< std::string > &l) |
| void | set_m_x_coordinate_variable (const std::string *vals) |
| int | get_m_x_coordinate_variable (std::string *vals) const |
| void | set_m_x_coordinate_variable (const std::string &val_1) |
| int | get_m_x_coordinate_variable (std::string &val_1) const |
| void | set_m_y_coordinate_variable (const std::vector< std::string > &vals) |
| int | get_m_y_coordinate_variable (std::vector< std::string > &vals) const |
| void | set_m_y_coordinate_variable (const p_teca_variant_array &vals) |
| int | get_m_y_coordinate_variable (p_teca_variant_array vals) const |
| void | set_m_y_coordinate_variable (const std::initializer_list< std::string > &l) |
| void | set_m_y_coordinate_variable (const std::string *vals) |
| int | get_m_y_coordinate_variable (std::string *vals) const |
| void | set_m_y_coordinate_variable (const std::string &val_1) |
| int | get_m_y_coordinate_variable (std::string &val_1) const |
| void | set_u_x_coordinate_variable (const std::vector< std::string > &vals) |
| int | get_u_x_coordinate_variable (std::vector< std::string > &vals) const |
| void | set_u_x_coordinate_variable (const p_teca_variant_array &vals) |
| int | get_u_x_coordinate_variable (p_teca_variant_array vals) const |
| void | set_u_x_coordinate_variable (const std::initializer_list< std::string > &l) |
| void | set_u_x_coordinate_variable (const std::string *vals) |
| int | get_u_x_coordinate_variable (std::string *vals) const |
| void | set_u_x_coordinate_variable (const std::string &val_1) |
| int | get_u_x_coordinate_variable (std::string &val_1) const |
| void | set_u_y_coordinate_variable (const std::vector< std::string > &vals) |
| int | get_u_y_coordinate_variable (std::vector< std::string > &vals) const |
| void | set_u_y_coordinate_variable (const p_teca_variant_array &vals) |
| int | get_u_y_coordinate_variable (p_teca_variant_array vals) const |
| void | set_u_y_coordinate_variable (const std::initializer_list< std::string > &l) |
| void | set_u_y_coordinate_variable (const std::string *vals) |
| int | get_u_y_coordinate_variable (std::string *vals) const |
| void | set_u_y_coordinate_variable (const std::string &val_1) |
| int | get_u_y_coordinate_variable (std::string &val_1) const |
| void | set_v_x_coordinate_variable (const std::vector< std::string > &vals) |
| int | get_v_x_coordinate_variable (std::vector< std::string > &vals) const |
| void | set_v_x_coordinate_variable (const p_teca_variant_array &vals) |
| int | get_v_x_coordinate_variable (p_teca_variant_array vals) const |
| void | set_v_x_coordinate_variable (const std::initializer_list< std::string > &l) |
| void | set_v_x_coordinate_variable (const std::string *vals) |
| int | get_v_x_coordinate_variable (std::string *vals) const |
| void | set_v_x_coordinate_variable (const std::string &val_1) |
| int | get_v_x_coordinate_variable (std::string &val_1) const |
| void | set_v_y_coordinate_variable (const std::vector< std::string > &vals) |
| int | get_v_y_coordinate_variable (std::vector< std::string > &vals) const |
| void | set_v_y_coordinate_variable (const p_teca_variant_array &vals) |
| int | get_v_y_coordinate_variable (p_teca_variant_array vals) const |
| void | set_v_y_coordinate_variable (const std::initializer_list< std::string > &l) |
| void | set_v_y_coordinate_variable (const std::string *vals) |
| int | get_v_y_coordinate_variable (std::string *vals) const |
| void | set_v_y_coordinate_variable (const std::string &val_1) |
| int | get_v_y_coordinate_variable (std::string &val_1) const |
| void | set_m_z_coordinate_variable (const std::vector< std::string > &vals) |
| int | get_m_z_coordinate_variable (std::vector< std::string > &vals) const |
| void | set_m_z_coordinate_variable (const p_teca_variant_array &vals) |
| int | get_m_z_coordinate_variable (p_teca_variant_array vals) const |
| void | set_m_z_coordinate_variable (const std::initializer_list< std::string > &l) |
| void | set_m_z_coordinate_variable (const std::string *vals) |
| int | get_m_z_coordinate_variable (std::string *vals) const |
| void | set_m_z_coordinate_variable (const std::string &val_1) |
| int | get_m_z_coordinate_variable (std::string &val_1) const |
| void | set_w_z_coordinate_variable (const std::vector< std::string > &vals) |
| int | get_w_z_coordinate_variable (std::vector< std::string > &vals) const |
| void | set_w_z_coordinate_variable (const p_teca_variant_array &vals) |
| int | get_w_z_coordinate_variable (p_teca_variant_array vals) const |
| void | set_w_z_coordinate_variable (const std::initializer_list< std::string > &l) |
| void | set_w_z_coordinate_variable (const std::string *vals) |
| int | get_w_z_coordinate_variable (std::string *vals) const |
| void | set_w_z_coordinate_variable (const std::string &val_1) |
| int | get_w_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 |
| p_teca_variant_array | get_m_x_coordinates () |
| p_teca_variant_array | get_m_y_coordinates () |
| const_p_teca_variant_array | get_m_x_coordinates () const |
| const_p_teca_variant_array | get_m_y_coordinates () const |
| p_teca_variant_array | get_u_x_coordinates () |
| p_teca_variant_array | get_u_y_coordinates () |
| const_p_teca_variant_array | get_u_x_coordinates () const |
| const_p_teca_variant_array | get_u_y_coordinates () const |
| p_teca_variant_array | get_v_x_coordinates () |
| p_teca_variant_array | get_v_y_coordinates () |
| const_p_teca_variant_array | get_v_x_coordinates () const |
| const_p_teca_variant_array | get_v_y_coordinates () const |
| p_teca_variant_array | get_m_z_coordinates () |
| const_p_teca_variant_array | get_m_z_coordinates () const |
| p_teca_variant_array | get_w_z_coordinates () |
| const_p_teca_variant_array | get_w_z_coordinates () const |
| p_teca_variant_array | get_t_coordinates () |
| const_p_teca_variant_array | get_t_coordinates () const |
| void | set_m_x_coordinates (const std::string &name, const p_teca_variant_array &a) |
| void | set_m_y_coordinates (const std::string &name, const p_teca_variant_array &a) |
| void | set_u_x_coordinates (const std::string &name, const p_teca_variant_array &a) |
| void | set_u_y_coordinates (const std::string &name, const p_teca_variant_array &a) |
| void | set_v_x_coordinates (const std::string &name, const p_teca_variant_array &a) |
| void | set_v_y_coordinates (const std::string &name, const p_teca_variant_array &a) |
| void | set_m_z_coordinates (const std::string &name, const p_teca_variant_array &a) |
| void | set_w_z_coordinates (const std::string &name, const p_teca_variant_array &a) |
| void | set_t_coordinates (const std::string &name, const p_teca_variant_array &a) |
| std::string | get_class_name () const override |
| int | get_type_code () const override |
| 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 |
| void | swap (const p_teca_dataset &) override |
| bool | empty () const noexcept override |
| int | to_stream (teca_binary_stream &) const override |
| int | from_stream (teca_binary_stream &) override |
| int | to_stream (std::ostream &) const override |
| virtual int | from_stream (teca_binary_stream &) |
| virtual int | from_stream (std::istream &) |
Public Member Functions inherited from teca_mesh | |
| void | set_time (const std::vector< double > &vals) |
| int | get_time (std::vector< double > &vals) const |
| void | set_time (const p_teca_variant_array &vals) |
| int | get_time (p_teca_variant_array vals) const |
| void | set_time (const std::initializer_list< double > &l) |
| void | set_time (const double *vals) |
| int | get_time (double *vals) const |
| void | set_time (const double &val_1) |
| int | get_time (double &val_1) 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 std::vector< unsigned long > &vals) |
| int | get_time_step (std::vector< unsigned long > &vals) const |
| void | set_time_step (const p_teca_variant_array &vals) |
| int | get_time_step (p_teca_variant_array vals) const |
| void | set_time_step (const std::initializer_list< unsigned long > &l) |
| void | set_time_step (const unsigned long *vals) |
| int | get_time_step (unsigned long *vals) const |
| void | set_time_step (const unsigned long &val_1) |
| int | get_time_step (unsigned long &val_1) 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 |
| 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 |
| int | to_stream (std::ostream &) const override |
| stream to/from human readable representation More... | |
| int | from_stream (std::istream &) override |
| 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 | |
| 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 |
| virtual int | get_request_index (long &val) const |
| virtual int | set_request_index (const std::string &key, long val) |
| virtual int | set_request_index (long val) |
| operator bool () const noexcept | |
| virtual teca_metadata & | get_metadata () noexcept |
| virtual const teca_metadata & | get_metadata () const noexcept |
| virtual void | set_metadata (const teca_metadata &md) |
Static Public Member Functions | |
| static p_teca_arakawa_c_grid | 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_t > | m_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_metadata * | metadata |
A representation of mesh based data on an Arkawa C Grid.
The Arakawa C grid is defined by various combinations of horizontal and vertical centerings.
The horizontal centerings occur at so called mass or M points, U points, and V points. These centerings are depicted in the following diagram:
----—V----—
U M U
----—V----—
The horizontal coordinates are stored in 2d arrays. Assuming the mass coordinate arrays have dimension [nx, ny], then the U coordinate arrays have dimension [nx + 1, ny], and the V coordinate arrays have dimension [nx, ny + 1].
The vertical centerings occur at so called M points and W points. These centerings are depicted in the following diagram.
----—W----—
M ----—W----—
The vertical coordinates are stored in 1d arrays. Assuming the M vertical coordinate has the dimension [nz], then the W coordinate has dimension [nz + 1].
The 3d mesh dimensions can be obtained from mesh metadata, as well as coordinate array names, and array attributes describing the data type, units, etc.
Variables may exist on one of a number of permutations of horizontal and vertical centerings, array attributes contains the centering metadata.
See also: "A Description of the Advanced Research WRF Model Version 4", NCAR/TN-556+STR
"Grids in Numerical Weather and Climate Models" http://dx.doi.org/10.5772/55922
|
overridevirtual |
Deep copy data and metdata.
| [in] | other | The dataset to copy. |
| [in] | alloc | The allocator to use for alloctions of data structures to hold the copy. The default is a CPU based allocator. |
Reimplemented from teca_dataset.
|
overridevirtual |
get the number of cells in the mesh
Implements teca_mesh.
|
overridevirtual |
get the number of points in the mesh
Implements teca_mesh.
|
inlineoverridevirtual |
Implements teca_dataset.
|
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.
|
overridevirtual |
Shallow copy data and metadata. The shallow copy takes references to the source data structures. Metadata is always deep copied.
| [in] | other | The dataset to copy. |
Reimplemented from teca_dataset.