120 int d_array_data_size;
128 int d_latitude_index_top;
129 int d_latitude_index_bottom;
130 int d_longitude_index_left;
131 int d_longitude_index_right;
133 bool d_bounding_box_set;
134 bool d_longitude_rightmost;
136 Notation d_longitude_notation;
137 LatitudeSense d_latitude_sense;
139 libdap::Array::Dim_iter d_lon_dim;
140 libdap::Array::Dim_iter d_lat_dim;
176 Notation categorize_notation(
const double left,
const double right)
const;
177 void transform_constraint_to_pos_notation(
double &left,
double &right)
const;
178 virtual void transform_longitude_to_pos_notation();
179 virtual void transform_longitude_to_neg_pos_notation();
180 virtual bool is_bounding_box_valid(
const double left,
const double top,
181 const double right,
const double bottom)
const;
182 void find_longitude_indeces(
double left,
double right,
183 int &longitude_index_left,
184 int &longitude_index_right)
const;
186 virtual void transpose_vector(
double *src,
const int length);
187 virtual void reorder_longitude_map(
int longitude_index_left);
190 void find_latitude_indeces(
double top,
double bottom,
LatitudeSense sense,
191 int &latitude_index_top,
192 int &latitude_index_bottom)
const;
194 virtual void reorder_data_longitude_axis(libdap::Array &a,libdap:: Array::Dim_iter lon_dim);
195 virtual void flip_latitude_within_array(libdap::Array &a,
int lat_length,
int lon_length);
197 friend class GridGeoConstraintTest;
205 virtual ~GeoConstraint()
207 delete [] d_lat; d_lat = 0;
208 delete [] d_lon; d_lon = 0;
209 delete [] d_array_data; d_array_data = 0;
215 char *get_array_data()
const
219 int get_array_data_size()
const
221 return d_array_data_size;
224 double *get_lat()
const
228 double *get_lon()
const
232 void set_lat(
double *lat)
236 void set_lon(
double *lon)
241 int get_lat_size()
const
245 int get_lon_size()
const
249 void set_lat_size(
int len)
253 void set_lon_size(
int len)
258 libdap::Array::Dim_iter get_lon_dim()
const
262 libdap::Array::Dim_iter get_lat_dim()
const
266 void set_lon_dim(libdap::Array::Dim_iter lon)
270 void set_lat_dim(libdap::Array::Dim_iter lat)
276 int get_latitude_index_top()
const
278 return d_latitude_index_top;
280 int get_latitude_index_bottom()
const
282 return d_latitude_index_bottom;
284 void set_latitude_index_top(
int top)
286 d_latitude_index_top = top;
288 void set_latitude_index_bottom(
int bottom)
290 d_latitude_index_bottom = bottom;
293 int get_longitude_index_left()
const
295 return d_longitude_index_left;
297 int get_longitude_index_right()
const
299 return d_longitude_index_right;
301 void set_longitude_index_left(
int left)
303 d_longitude_index_left = left;
305 void set_longitude_index_right(
int right)
307 d_longitude_index_right = right;
310 bool is_bounding_box_set()
const
312 return d_bounding_box_set;
314 bool is_longitude_rightmost()
const
316 return d_longitude_rightmost;
318 void set_longitude_rightmost(
bool state)
320 d_longitude_rightmost = state;
323 Notation get_longitude_notation()
const
325 return d_longitude_notation;
329 return d_latitude_sense;
331 void set_longitude_notation(
Notation n)
333 d_longitude_notation = n;
337 d_latitude_sense = l;
340 set<string> get_coards_lat_units()
const
342 return d_coards_lat_units;
344 set<string> get_coards_lon_units()
const
346 return d_coards_lon_units;
349 set<string> get_lat_names()
const
353 set<string> get_lon_names()
const
359 void set_bounding_box(
double top,
double left,
double bottom,
double right);