1 #ifndef teca_ar_detect_h
2 #define teca_ar_detect_h
4 #include "teca_shared_object.h"
5 #include "teca_algorithm.h"
6 #include "teca_metadata.h"
34 TECA_GET_ALGORITHM_PROPERTIES_DESCRIPTION()
35 TECA_SET_ALGORITHM_PROPERTIES()
38 TECA_ALGORITHM_PROPERTY(std::string, water_vapor_variable)
42 TECA_ALGORITHM_PROPERTY(
double, low_water_vapor_threshold)
43 TECA_ALGORITHM_PROPERTY(
double, high_water_vapor_threshold)
47 TECA_ALGORITHM_PROPERTY(
double, search_lat_low)
48 TECA_ALGORITHM_PROPERTY(
double, search_lon_low)
49 TECA_ALGORITHM_PROPERTY(
double, search_lat_high)
50 TECA_ALGORITHM_PROPERTY(
double, search_lon_high)
54 TECA_ALGORITHM_PROPERTY(
double, river_start_lat_low)
55 TECA_ALGORITHM_PROPERTY(
double, river_start_lon_low)
59 TECA_ALGORITHM_PROPERTY(
double, river_end_lat_low)
60 TECA_ALGORITHM_PROPERTY(
double, river_end_lon_low)
61 TECA_ALGORITHM_PROPERTY(
double, river_end_lat_high)
62 TECA_ALGORITHM_PROPERTY(
double, river_end_lon_high)
66 TECA_ALGORITHM_PROPERTY(
double, percent_in_mesh)
70 TECA_ALGORITHM_PROPERTY(
double, river_width)
71 TECA_ALGORITHM_PROPERTY(
double, river_length)
76 TECA_ALGORITHM_PROPERTY(std::string, land_sea_mask_variable)
80 TECA_ALGORITHM_PROPERTY(
double, land_threshold_low)
81 TECA_ALGORITHM_PROPERTY(
double, land_threshold_high)
85 virtual void to_stream(std::ostream &os)
const override;
91 int get_active_extent(
92 p_teca_variant_array lat,
93 p_teca_variant_array lon,
94 std::vector<unsigned long> &extent)
const;
100 const std::vector<teca_metadata> &input_md)
override;
103 std::vector<teca_metadata> get_upstream_request(
105 const std::vector<teca_metadata> &input_md,
109 const_p_teca_dataset execute(
111 const std::vector<const_p_teca_dataset> &input_data,
115 std::string water_vapor_variable;
116 std::string land_sea_mask_variable;
117 double low_water_vapor_threshold;
118 double high_water_vapor_threshold;
119 double search_lat_low;
120 double search_lon_low;
121 double search_lat_high;
122 double search_lon_high;
123 double river_start_lat_low;
124 double river_start_lon_low;
125 double river_end_lat_low;
126 double river_end_lon_low;
127 double river_end_lat_high;
128 double river_end_lon_high;
129 double percent_in_mesh;
132 double land_threshold_low;
133 double land_threshold_high;