UFO
ProfileVerticalInterpolation.h
Go to the documentation of this file.
1 /*
2  * (C) Copyright 2020, 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_PROFILE_PROFILEVERTICALINTERPOLATION_H_
9 #define UFO_PROFILE_PROFILEVERTICALINTERPOLATION_H_
10 
11 #include <algorithm>
12 #include <cmath>
13 #include <limits>
14 #include <string>
15 #include <vector>
16 
17 #include "oops/util/missingValues.h"
18 
19 #include "ufo/utils/Constants.h"
20 
21 namespace ufo {
22  namespace ProfileInterpolation {
26  }
27 
28  /// Performs vertical interpolation from model levels onto observation levels.
29  /// \param[in] coordIn: Coordinates of input values.
30  /// \param[in] valuesIn: Input values.
31  /// \param[in] coordOut: Coordinates of output values.
32  /// \param[out] valuesOut: Interpolated values.
33  /// \param[in] interpMethod: Interpolation method (linear or log-linear).
34  /// \param[in] coordOrder: Order of coordinates (ascending or desceding).
35  /// \param[in] outOfBounds: How to treat out-of-bounds data.
36  void profileVerticalInterpolation(const std::vector <float> &coordIn,
37  const std::vector <float> &valuesIn,
38  const std::vector <float> &coordOut,
39  std::vector <float> &valuesOut,
42  const ProfileInterpolation::CoordinateOrder coordOrder =
46 } // namespace ufo
47 
48 #endif // UFO_PROFILE_PROFILEVERTICALINTERPOLATION_H_
Definition: RunCRTM.h:27
void profileVerticalInterpolation(const std::vector< float > &coordIn, const std::vector< float > &valuesIn, const std::vector< float > &coordOut, std::vector< float > &valuesOut, const ProfileInterpolation::InterpolationMethod interpMethod, const ProfileInterpolation::CoordinateOrder coordOrder, const ProfileInterpolation::OutOfBoundsTreatment outOfBounds)