TECA
The Toolkit for Extreme Climate Analysis
teca_arakawa_c_grid Class Reference

A representation of mesh based data on an Arkawa C Grid. More...

#include <teca_arakawa_c_grid.h>

Inheritance diagram for teca_arakawa_c_grid:
Collaboration diagram for teca_arakawa_c_grid:

Public Member Functions

std::shared_ptr< teca_arakawa_c_gridshared_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 () 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 &) override
 
void shallow_copy (const p_teca_dataset &) 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
 
- 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 &) override
 
void shallow_copy (const p_teca_dataset &) 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_metadataget_metadata () noexcept
 
virtual const teca_metadataget_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 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

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

Member Function Documentation

◆ get_number_of_cells()

unsigned long teca_arakawa_c_grid::get_number_of_cells ( ) const
overridevirtual

get the number of cells in the mesh

Implements teca_mesh.

◆ get_number_of_points()

unsigned long teca_arakawa_c_grid::get_number_of_points ( ) const
overridevirtual

get the number of points in the mesh

Implements teca_mesh.


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