26 #ifndef _geo_constraint_h 27 #define _geo_constraint_h 1 126 int d_array_data_size;
134 int d_latitude_index_top;
135 int d_latitude_index_bottom;
136 int d_longitude_index_left;
137 int d_longitude_index_right;
139 bool d_bounding_box_set;
140 bool d_longitude_rightmost;
149 set<string> d_coards_lat_units;
150 set<string> d_coards_lon_units;
152 set<string> d_lat_names;
153 set<string> d_lon_names;
187 const double right,
const double bottom)
const;
189 int &longitude_index_left,
190 int &longitude_index_right)
const;
197 int &latitude_index_top,
198 int &latitude_index_bottom)
const;
214 delete [] d_lat; d_lat = 0;
215 delete [] d_lon; d_lon = 0;
216 delete [] d_array_data; d_array_data = 0;
228 return d_array_data_size;
285 return d_latitude_index_top;
289 return d_latitude_index_bottom;
293 d_latitude_index_top = top;
297 d_latitude_index_bottom = bottom;
302 return d_longitude_index_left;
306 return d_longitude_index_right;
310 d_longitude_index_left = left;
314 d_longitude_index_right = right;
319 return d_bounding_box_set;
323 return d_longitude_rightmost;
327 d_longitude_rightmost = state;
332 return d_longitude_notation;
336 return d_latitude_sense;
340 d_longitude_notation = n;
344 d_latitude_sense = l;
349 return d_coards_lat_units;
353 return d_coards_lon_units;
366 void set_bounding_box(
double top,
double left,
double bottom,
double right);
375 #endif // _geo_constraint_h void set_lat_dim(Array::Dim_iter lat)
bool is_longitude_rightmost() const
set< string > get_coards_lon_units() const
void set_latitude_index_bottom(int bottom)
void find_longitude_indeces(double left, double right, int &longitude_index_left, int &longitude_index_right) const
void set_lon(double *lon)
int get_lat_length() const
Array::Dim_iter get_lat_dim() const
set< string > get_lon_names() const
bool is_bounding_box_set() const
virtual void reorder_data_longitude_axis(Array &a, Array::Dim_iter lon_dim)
int get_lon_length() const
void set_latitude_index_top(int top)
set< string > get_lat_names() const
void set_longitude_rightmost(bool state)
void set_latitude_sense(LatitudeSense l)
virtual void apply_constraint_to_data()=0
Once the bounding box is set use this method to apply the constraint.
void set_bounding_box(double top, double left, double bottom, double right)
int get_array_data_size() const
void set_lat(double *lat)
void set_lat_length(int len)
int get_latitude_index_bottom() const
Notation categorize_notation(const double left, const double right) const
int get_longitude_index_left() const
virtual bool is_bounding_box_valid(const double left, const double top, const double right, const double bottom) const
virtual void transpose_vector(double *src, const int length)
Notation get_longitude_notation() const
virtual void transform_longitude_to_pos_notation()
virtual void flip_latitude_within_array(Array &a, int lat_length, int lon_length)
std::vector< dimension >::iterator Dim_iter
void find_latitude_indeces(double top, double bottom, LatitudeSense sense, int &latitude_index_top, int &latitude_index_bottom) const
GeoConstraint()
Initialize GeoConstraint.
virtual void transform_longitude_to_neg_pos_notation()
LatitudeSense get_latitude_sense() const
void set_longitude_index_right(int right)
void set_longitude_notation(Notation n)
virtual bool lat_lon_dimensions_ok()=0
void transform_constraint_to_pos_notation(double &left, double &right) const
virtual bool build_lat_lon_maps()=0
virtual void reorder_longitude_map(int longitude_index_left)
void set_longitude_index_left(int left)
int get_longitude_index_right() const
int get_latitude_index_top() const
virtual LatitudeSense categorize_latitude() const
friend class GridGeoConstraintTest
char * get_array_data() const
A multidimensional array of identical data types.
set< string > get_coards_lat_units() const
void set_lon_dim(Array::Dim_iter lon)
Array::Dim_iter get_lon_dim() const
void set_lon_length(int len)