UFO
Cal_ProfileHorizontalDrift.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_VARIABLETRANSFORMS_CAL_PROFILEHORIZONTALDRIFT_H_
9 #define UFO_VARIABLETRANSFORMS_CAL_PROFILEHORIZONTALDRIFT_H_
10 
11 #include <memory>
12 #include <ostream>
13 #include <string>
14 #include <vector>
15 
16 #include "oops/util/ObjectCounter.h"
18 
19 namespace ufo {
20 
21 /*!
22 * \brief Profile horizontal drift calculation.
23 *
24 * This computes the horizontal drift positions (and times) given the
25 * horizontal wind speeds, heights, and an assumed rate of ascent.
26 *
27 * This function should only be applied to sondes whose horizontal position was not already
28 * measured (i.e. not to sondes reporting in BUFR format).
29 *
30 * Example:
31 *
32 * \code{.yaml}
33 * obs filters:
34 * - filter: Variables Transform
35 * Transform: ["ProfileHorizontalDrift"]
36 * \endcode
37 *
38 * See VariableTransformsParameters for filter setup.
39 */
41  public:
43  const ObsFilterData &data,
44  const std::shared_ptr<ioda::ObsDataVector<int>> &flags);
45  // Run variable conversion
46  void runTransform(const std::vector<bool> &apply) override;
47 };
48 } // namespace ufo
49 
50 #endif // UFO_VARIABLETRANSFORMS_CAL_PROFILEHORIZONTALDRIFT_H_
Profile horizontal drift calculation.
void runTransform(const std::vector< bool > &apply) override
Run variable conversion.
Cal_ProfileHorizontalDrift(const VariableTransformsParameters &options, const ObsFilterData &data, const std::shared_ptr< ioda::ObsDataVector< int >> &flags)
ObsFilterData provides access to all data related to an ObsFilter.
Base class for variable conversion.
Definition: TransformBase.h:53
Options controlling the operation of the variablestansform filter.
Definition: RunCRTM.h:27