UFO
SlantPathLocations.h
Go to the documentation of this file.
1 /*
2  * (C) Copyright 2021 Met Office UK
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_SLANTPATHLOCATIONS_H_
9 #define UFO_PROFILE_SLANTPATHLOCATIONS_H_
10 
11 #include <string>
12 #include <vector>
13 
14 namespace ioda {
15  class ObsSpace;
16 }
17 
18 namespace ufo {
19  class GeoVaLs;
20 }
21 
22 namespace ufo {
23  /// Get slant path locations. This determines, for each model level, the location that
24  /// corresponds to the intersection of the observed profile with that level.
25  ///
26  /// \param odb
27  /// ObsSpace.
28  /// \param gv
29  /// GeoVaLs.
30  /// \param locs
31  /// All locations in the profile.
32  /// \param modelVerticalCoord
33  /// Name of the vertical coordinate used in the model.
34  /// \param itermax
35  /// Maximum number of interations that will be used to find the intersections
36  /// between observed pressures and model levels.
37  ///
38  /// \returns A vector of the slant path locations.
39  std::vector<std::size_t> getSlantPathLocations(const ioda::ObsSpace & odb,
40  const GeoVaLs & gv,
41  const std::vector<std::size_t> & locs,
42  const std::string & modelVerticalCoord,
43  const int itermax = 3);
44 } // namespace ufo
45 
46 #endif // UFO_PROFILE_SLANTPATHLOCATIONS_H_
Forward declarations.
Definition: ObsAodExt.h:25
Definition: RunCRTM.h:27
std::vector< std::size_t > getSlantPathLocations(const ioda::ObsSpace &odb, const GeoVaLs &gv, const std::vector< std::size_t > &locs, const std::string &modelVerticalCoord, const int itermax)