UFO
DataExtractorBackend.h
Go to the documentation of this file.
1 /*
2  * (C) Crown copyright 2021, Met Office
3  *
4  * This software is licensed under the terms of the Apache Licence Version 2.0
5  * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
6  */
7 
8 #ifndef UFO_UTILS_DATAEXTRACTOR_DATAEXTRACTORBACKEND_H_
9 #define UFO_UTILS_DATAEXTRACTOR_DATAEXTRACTORBACKEND_H_
10 
11 #include <string>
12 
13 namespace ufo
14 {
15 
16 template <typename ExtractedValue>
17 struct DataExtractorInput;
18 
19 /// \brief Provides data to the DataExtractor.
20 ///
21 /// \tparam ExtractedValue
22 /// Type of values extracted by the DataExtractor. Must be `float`, `int` or `std::string`.
23 ///
24 template <typename ExtractedValue>
26  public:
27  virtual ~DataExtractorBackend() = default;
28 
29  /// \brief Load data for subsequent extraction.
30  ///
31  /// \param payloadGroup
32  /// Group (e.g. ObsBias or ErrorVariance) containing the payload variable,
33  /// i.e. the variable that will be interpolated. The data source
34  /// must contain exactly one variable from this group.
35  ///
36  /// \returns An object encapsulating the payload variable, all coordinates indexing it
37  /// and the mapping between dimensions of the payload array and coordinates.
38  virtual DataExtractorInput<ExtractedValue> loadData(const std::string &payloadGroup) const = 0;
39 };
40 
41 } // namespace ufo
42 
43 #endif // UFO_UTILS_DATAEXTRACTOR_DATAEXTRACTORBACKEND_H_
Provides data to the DataExtractor.
virtual DataExtractorInput< ExtractedValue > loadData(const std::string &payloadGroup) const =0
Load data for subsequent extraction.
virtual ~DataExtractorBackend()=default
Definition: RunCRTM.h:27
Input data for the DataExtractor.