#include <GridGeoConstraint.h>
Inheritance diagram for GridGeoConstraint:
Definition at line 45 of file GridGeoConstraint.h.
|
Most of the time, latitude starts at the top of an array with positive values and ends up at the bottom with negative ones. But sometimes... the world is upside down. Definition at line 115 of file GeoConstraint.h. Referenced by GeoConstraint::categorize_latitude(). |
|
The longitude extents of the constraint bounding box can be expressed two ways: using a 0/359 notation and using a -180/179 notation. I call the 0/359 notation 'pos' and the -180/179 notation 'neg_pos'. Definition at line 106 of file GeoConstraint.h. Referenced by GeoConstraint::set_bounding_box(). |
|
Definition at line 63 of file GridGeoConstraint.cc. References GeoConstraint::build_lat_lon_maps(), Array::dimensions(), Grid::get_array(), GeoConstraint::lat_lon_dimensions_ok(), and BaseType::name(). |
Here is the call graph for this function:
|
Definition at line 66 of file GridGeoConstraint.h. |
|
Once the bounding box is set use this method to apply the constraint. This modifies the data values in the Grid so that the software in Vector::serialize() will work correctly. Vector::serialize() assumes that the BaseType::read() method is called after the projection is applied to the data. That is, the projection is applied, then data are read. but geogrid() first reads all the data values and then computes the projection. To make Vector::serialize() work, this method uses the projection information recorded in the Grid by set_bounding_box() to arrange data so that the information to be sent is all that is held by the Grid. Call this after applying any 'Grid selection expressions' of the sort that can be passed to the grid() function.
Implements GeoConstraint. Definition at line 199 of file GridGeoConstraint.cc. References Array::add_constraint(), Array::dim_begin(), Grid::get_array(), GeoConstraint::get_array_data(), GeoConstraint::get_array_data_size(), GeoConstraint::get_bounding_box_set(), GeoConstraint::get_dataset(), GeoConstraint::get_lat(), GeoConstraint::get_lat_dim(), GeoConstraint::get_latitude_index_bottom(), GeoConstraint::get_latitude_index_top(), GeoConstraint::get_latitude_sense(), GeoConstraint::get_lon(), GeoConstraint::get_lon_dim(), GeoConstraint::get_lon_length(), GeoConstraint::get_longitude_index_left(), GeoConstraint::get_longitude_index_right(), GeoConstraint::get_longitude_notation(), BaseType::read(), GeoConstraint::reorder_data_longitude_axis(), GeoConstraint::reorder_longitude_map(), libdap::set_array_using_double(), GeoConstraint::set_latitude_index_bottom(), GeoConstraint::set_latitude_index_top(), GeoConstraint::set_longitude_index_left(), GeoConstraint::set_longitude_index_right(), Grid::set_read_p(), GeoConstraint::transform_longitude_to_neg_pos_notation(), and Vector::val2buf(). Referenced by libdap::function_geogrid(). |
Here is the call graph for this function:
|
Take a look at the latitude vector values and record whether the world is normal or upside down.
Definition at line 332 of file GeoConstraint.cc. References GeoConstraint::LatitudeSense, and GeoConstraint::normal. Referenced by GeoConstraint::set_bounding_box(). |
|
A private method that determines if the longitude part of the bounding box uses 0/359 or -180/179 notation. This class only supports latitude constriants which use 90/-90 notation, so there's no need to figure out what sort of notation they use.
Definition at line 128 of file GeoConstraint.cc. References GeoConstraint::neg_pos. Referenced by GeoConstraint::set_bounding_box(). |
|
Scan from the top to the bottom, and the bottom to the top, looking for the top and bottom bounding box edges, respectively.
Definition at line 289 of file GeoConstraint.cc. Referenced by GeoConstraint::set_bounding_box(). |
|
Scan from the left to the right, and the right to the left, looking for the left and right bounding box edges, respectively.
Definition at line 201 of file GeoConstraint.cc. References DBG2. Referenced by GeoConstraint::set_bounding_box(). |
|
Definition at line 229 of file GeoConstraint.h. Referenced by apply_constraint_to_data(), and ArrayGeoConstraint::apply_constraint_to_data(). |
|
Definition at line 233 of file GeoConstraint.h. Referenced by apply_constraint_to_data(), and ArrayGeoConstraint::apply_constraint_to_data(). |
|
Definition at line 324 of file GeoConstraint.h. Referenced by apply_constraint_to_data(), and ArrayGeoConstraint::apply_constraint_to_data(). |
|
Definition at line 354 of file GeoConstraint.h. |
|
Definition at line 358 of file GeoConstraint.h. |
|
Definition at line 71 of file GridGeoConstraint.h. Referenced by libdap::function_geogrid(). |
|
Definition at line 223 of file GeoConstraint.h. Referenced by apply_constraint_to_data(), ArrayGeoConstraint::apply_constraint_to_data(), and GeoConstraint::reorder_data_longitude_axis(). |
|
Definition at line 238 of file GeoConstraint.h. Referenced by apply_constraint_to_data(). |
|
Definition at line 276 of file GeoConstraint.h. Referenced by apply_constraint_to_data(), and ArrayGeoConstraint::apply_constraint_to_data(). |
|
Definition at line 255 of file GeoConstraint.h. |
|
Definition at line 363 of file GeoConstraint.h. |
|
Definition at line 294 of file GeoConstraint.h. Referenced by apply_constraint_to_data(), and ArrayGeoConstraint::apply_constraint_to_data(). |
|
Definition at line 290 of file GeoConstraint.h. Referenced by apply_constraint_to_data(), and ArrayGeoConstraint::apply_constraint_to_data(). |
|
Definition at line 341 of file GeoConstraint.h. Referenced by apply_constraint_to_data(), and ArrayGeoConstraint::apply_constraint_to_data(). |
|
Definition at line 242 of file GeoConstraint.h. Referenced by apply_constraint_to_data(). |
|
Definition at line 272 of file GeoConstraint.h. Referenced by apply_constraint_to_data(), and ArrayGeoConstraint::apply_constraint_to_data(). |
|
Definition at line 259 of file GeoConstraint.h. Referenced by apply_constraint_to_data(), ArrayGeoConstraint::apply_constraint_to_data(), and GeoConstraint::reorder_data_longitude_axis(). |
|
Definition at line 367 of file GeoConstraint.h. |
|
Definition at line 307 of file GeoConstraint.h. Referenced by apply_constraint_to_data(), ArrayGeoConstraint::apply_constraint_to_data(), and GeoConstraint::reorder_data_longitude_axis(). |
|
Definition at line 311 of file GeoConstraint.h. Referenced by apply_constraint_to_data(), ArrayGeoConstraint::apply_constraint_to_data(), and GeoConstraint::reorder_data_longitude_axis(). |
|
Definition at line 337 of file GeoConstraint.h. Referenced by apply_constraint_to_data(). |
|
Definition at line 328 of file GeoConstraint.h. Referenced by GeoConstraint::reorder_data_longitude_axis(). |
|
Definition at line 169 of file GeoConstraint.cc. Referenced by GeoConstraint::set_bounding_box(). |
|
Reorder the data values relative to the longitude axis so that the reordered longitude map (see GeoConstraint::reorder_longitude_map()) and the data values match.
Definition at line 417 of file GeoConstraint.cc. References Array::add_constraint(), Vector::buf2val(), DBG, DBG2, GeoConstraint::get_dataset(), GeoConstraint::get_lon_length(), GeoConstraint::get_longitude_index_left(), GeoConstraint::get_longitude_index_right(), GeoConstraint::get_longitude_rightmost(), Array::print_val(), BaseType::read(), Vector::set_read_p(), Vector::var(), and BaseType::width(). Referenced by apply_constraint_to_data(), and ArrayGeoConstraint::apply_constraint_to_data(). |
Here is the call graph for this function:
|
Reorder the elements in the longitude map so that the longitude constraint no longer crosses the edge of the map's storage. The d_lon field is modified.
Definition at line 377 of file GeoConstraint.cc. Referenced by apply_constraint_to_data(). |
|
Set the bounding box for this constraint. After calling this method the object has values for the indexes for the latitude and longitude extent as well as the sense of the latitude (south pole at the top or bottom of the Array or Grid). These are used by the apply_constraint_to_data() method to actually constrain the data.
Definition at line 560 of file GeoConstraint.cc. References GeoConstraint::categorize_latitude(), GeoConstraint::categorize_notation(), DBG, double_to_string(), GeoConstraint::find_latitude_indeces(), GeoConstraint::find_longitude_indeces(), GeoConstraint::is_bounding_box_valid(), GeoConstraint::Notation, GeoConstraint::transform_constraint_to_pos_notation(), and GeoConstraint::transform_longitude_to_pos_notation(). Referenced by libdap::function_geoarray(), and libdap::function_geogrid(). |
Here is the call graph for this function:
|
Definition at line 246 of file GeoConstraint.h. |
|
Definition at line 284 of file GeoConstraint.h. |
|
Definition at line 263 of file GeoConstraint.h. |
|
Definition at line 302 of file GeoConstraint.h. Referenced by apply_constraint_to_data(), and ArrayGeoConstraint::apply_constraint_to_data(). |
|
Definition at line 298 of file GeoConstraint.h. Referenced by apply_constraint_to_data(), and ArrayGeoConstraint::apply_constraint_to_data(). |
|
Definition at line 349 of file GeoConstraint.h. |
|
Definition at line 250 of file GeoConstraint.h. |
|
Definition at line 280 of file GeoConstraint.h. |
|
Definition at line 267 of file GeoConstraint.h. |
|
Definition at line 315 of file GeoConstraint.h. Referenced by apply_constraint_to_data(), and ArrayGeoConstraint::apply_constraint_to_data(). |
|
Definition at line 319 of file GeoConstraint.h. Referenced by apply_constraint_to_data(), and ArrayGeoConstraint::apply_constraint_to_data(). |
|
Definition at line 345 of file GeoConstraint.h. |
|
Definition at line 332 of file GeoConstraint.h. |
|
Definition at line 139 of file GeoConstraint.cc. Referenced by GeoConstraint::set_bounding_box(). |
|
Given that the Grid has a longitude map that uses the 'pos' notation, transform it to the 'neg_pos' notation. This method modifies the d_longitude Array. Definition at line 163 of file GeoConstraint.cc. Referenced by apply_constraint_to_data(). |
|
Given that the Grid has a longitude map that uses the 'neg_pos' notation, transform it to the 'pos' notation. This method modifies the d_longitude Array. Definition at line 151 of file GeoConstraint.cc. Referenced by GeoConstraint::set_bounding_box(). |
|
Reimplemented from GeoConstraint. Definition at line 58 of file GridGeoConstraint.h. |