1 #ifndef teca_time_axis_convolution_h
2 #define teca_time_axis_convolution_h
4 #include "teca_config.h"
6 #include "teca_algorithm.h"
7 #include "teca_metadata.h"
40 TECA_GET_ALGORITHM_PROPERTIES_DESCRIPTION()
41 TECA_SET_ALGORITHM_PROPERTIES()
53 TECA_ALGORITHM_PROPERTY(
int, stencil_type)
56 void set_stencil_type_to_forward()
57 { this->stencil_type = forward; }
61 { this->stencil_type = backward; }
65 { this->stencil_type = centered; }
68 int set_stencil_type(
const std::string &type);
71 std::string get_stencil_type_name();
80 TECA_ALGORITHM_PROPERTY(
int, use_high_pass)
88 TECA_ALGORITHM_PROPERTY(
unsigned int, kernel_width)
96 TECA_ALGORITHM_VECTOR_PROPERTY(
double, kernel_weight)
99 int set_constant_kernel_weights(
unsigned int width);
110 int set_gaussian_kernel_weights(
unsigned int width,
int high_pass = 0,
111 double a = 1.0,
double B = 0.0,
double c = 0.55);
120 int set_kernel_weights(const std::
string &name,
121 unsigned int width,
int high_pass);
128 TECA_ALGORITHM_PROPERTY(std::
string, kernel_name)
137 TECA_ALGORITHM_PROPERTY(std::
string, variable_postfix)
150 unsigned int port, const std::vector<
teca_metadata> &input_md,
153 const_p_teca_dataset execute(
unsigned int port,
154 const std::vector<const_p_teca_dataset> &input_data,
159 std::vector<
double> kernel_weights;
160 std::
string kernel_name;
161 std::
string variable_postfix;
163 unsigned int kernel_width;