UFO
src/ufo/utils/dataextractor/DataExtractor.h File Reference
#include <array>
#include <limits>
#include <memory>
#include <string>
#include <unordered_map>
#include <vector>
#include <boost/multi_array.hpp>
#include <boost/optional.hpp>
#include <boost/variant.hpp>
#include "eckit/exception/Exceptions.h"
#include "oops/util/missingValues.h"
#include "ufo/utils/dataextractor/ConstrainedRange.h"
#include "ufo/utils/RecursiveSplitter.h"
Include dependency graph for src/ufo/utils/dataextractor/DataExtractor.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  ufo::DataExtractor< ExtractedValue >
 This class makes it possible to extract and interpolate data loaded from a file. More...
 
struct  ufo::DataExtractor< ExtractedValue >::Coordinate
 Coordinate used for data extraction from the payload array. More...
 

Namespaces

 ioda
 Forward declarations.
 
 ufo
 

Typedefs

template<typename T >
using ufo::DataExtractorPayload = boost::multi_array< T, 3 >
 

Enumerations

enum class  ufo::InterpMethod {
  ufo::EXACT , ufo::NEAREST , ufo::LEAST_UPPER_BOUND , ufo::GREATEST_LOWER_BOUND ,
  ufo::LINEAR , ufo::BILINEAR
}
 Method used by the DataExtractor to map the value of an ObsSpace variable to a range of slices of the interpolated array along the dimension indexed by that variable. More...
 

Functions

template<typename T >
const DataExtractorPayload< T >::template const_array_view< 1 >::type ufo::get1DSlice (const DataExtractorPayload< T > &array, const size_t dimIndex, const std::array< ConstrainedRange, 3 > &ranges)
 Fetch a 1D sliced view of a boost multi_array object. More...
 
template<typename T >
const DataExtractorPayload< T >::template const_array_view< 2 >::type ufo::get2DSlice (const DataExtractorPayload< T > &array, const size_t dimIndex0, const size_t dimIndex1, const std::array< ConstrainedRange, 3 > &ranges)
 Fetch a 2D sliced view of a boost multi_array object. More...
 
template<typename T , typename R >
float ufo::bilinearInterpolation (const std::string &varName0, const std::vector< T > &varValues0, const T &obVal0, const ConstrainedRange &range0, const std::string &varName1, const std::vector< R > &varValues1, const R &obVal1, const ConstrainedRange &range1, const DataExtractorPayload< float >::const_array_view< 2 >::type &interpolatedArray)
 Perform bilinear interpolation at 'location' at location obVal0 and obVal1, corresponding to the first and second axes. More...
 
template<typename T >
float ufo::bilinearInterpolation (const std::string &varName0, const std::vector< T > &varValues0, const T &obVal0, const ConstrainedRange &range0, const std::string &varName1, const std::vector< std::string > &varValues1, const std::string &obVal1, const ConstrainedRange &range1, const DataExtractorPayload< float >::const_array_view< 2 >::type &interpolatedArray)
 Bilinear interpolation template, templated coord1, string coord2. More...
 
template<typename T >
float ufo::bilinearInterpolation (const std::string &varName0, const std::vector< std::string > &varValues0, const std::string &obVal0, const ConstrainedRange &range0, const std::string &varName1, const std::vector< T > &varValues1, const T &obVal1, const ConstrainedRange &range1, const DataExtractorPayload< float >::const_array_view< 2 >::type &interpolatedArray)
 Bilinear interpolation template, string coord1, templated coord2. More...
 
float ufo::bilinearInterpolation (const std::string &varName0, const std::vector< std::string > &varValues0, const std::string &obVal0, const ConstrainedRange &range0, const std::string &varName1, const std::vector< std::string > &varValues1, const std::string &obVal1, const ConstrainedRange &range1, const DataExtractorPayload< float >::const_array_view< 2 >::type &interpolatedArray)
 Bilinear interpolation template, string coord1, string coord2. More...