26#ifndef _geo_constraint_h
27#define _geo_constraint_h 1
110 int d_array_data_size;
118 int d_latitude_index_top;
119 int d_latitude_index_bottom;
120 int d_longitude_index_left;
121 int d_longitude_index_right;
123 bool d_bounding_box_set;
124 bool d_longitude_rightmost;
126 Notation d_longitude_notation;
127 LatitudeSense d_latitude_sense;
133 set<string> d_coards_lat_units;
134 set<string> d_coards_lon_units;
136 set<string> d_lat_names;
137 set<string> d_lon_names;
171 const double bottom)
const;
172 void find_longitude_indeces(
double left,
double right,
int &longitude_index_left,
int &longitude_index_right)
const;
179 int &latitude_index_bottom)
const;
197 delete[] d_array_data;
249 void set_bounding_box(
double top,
double left,
double bottom,
double right);
GeoConstraint()
Initialize GeoConstraint.
friend class GridGeoConstraintTest
set< string > get_coards_lon_units() const
int get_latitude_index_bottom() const
libdap::Array::Dim_iter get_lon_dim() const
void transform_constraint_to_pos_notation(double &left, double &right) const
virtual bool build_lat_lon_maps()=0
libdap::Array::Dim_iter get_lat_dim() const
int get_array_data_size() const
set< string > get_lat_names() const
virtual void transform_longitude_to_pos_notation()
virtual void reorder_longitude_map(int longitude_index_left)
virtual void transform_longitude_to_neg_pos_notation()
virtual void reorder_data_longitude_axis(libdap::Array &a, libdap::Array::Dim_iter lon_dim)
void set_lon(double *lon)
void set_lon_dim(libdap::Array::Dim_iter lon)
void set_longitude_rightmost(bool state)
bool is_longitude_rightmost() const
void set_lat(double *lat)
void set_longitude_index_right(int right)
int get_latitude_index_top() const
Notation get_longitude_notation() const
LatitudeSense get_latitude_sense() const
char * get_array_data() const
void find_latitude_indeces(double top, double bottom, LatitudeSense sense, int &latitude_index_top, int &latitude_index_bottom) const
void set_lat_dim(libdap::Array::Dim_iter lat)
int get_longitude_index_left() const
virtual void apply_constraint_to_data()=0
Once the bounding box is set use this method to apply the constraint.
void set_longitude_notation(Notation n)
Notation categorize_notation(const double left, const double right) const
int get_lat_length() const
void set_lat_length(int len)
bool is_bounding_box_set() const
set< string > get_coards_lat_units() const
set< string > get_lon_names() const
void set_latitude_index_top(int top)
virtual void flip_latitude_within_array(libdap::Array &a, int lat_length, int lon_length)
void find_longitude_indeces(double left, double right, int &longitude_index_left, int &longitude_index_right) const
int get_longitude_index_right() const
void set_lon_length(int len)
int get_lon_length() const
virtual bool lat_lon_dimensions_ok()=0
void set_latitude_index_bottom(int bottom)
virtual void transpose_vector(double *src, const int length)
virtual bool is_bounding_box_valid(const double left, const double top, const double right, const double bottom) const
void set_latitude_sense(LatitudeSense l)
virtual LatitudeSense categorize_latitude() const
void set_longitude_index_left(int left)
void set_bounding_box(double top, double left, double bottom, double right)
A multidimensional array of identical data types.
std::vector< dimension >::iterator Dim_iter
The basic data type for the DODS DAP types.
Holds the Grid data type.
top level DAP object to house generic methods