8 #ifndef CORE_LOCALOBSSPACEPARAMETERS_H_
9 #define CORE_LOCALOBSSPACEPARAMETERS_H_
14 #include "eckit/exception/Exceptions.h"
15 #include "eckit/geometry/KPoint.h"
16 #include "eckit/geometry/Point2.h"
17 #include "eckit/geometry/UnitSphere.h"
19 #include "oops/util/parameters/OptionalParameter.h"
20 #include "oops/util/parameters/Parameter.h"
21 #include "oops/util/parameters/Parameters.h"
22 #include "oops/util/parameters/RequiredParameter.h"
41 static constexpr util::NamedEnumerator<DistanceType>
namedValues[] = {
50 static constexpr util::NamedEnumerator<SearchMethod>
namedValues[] = {
63 public EnumParameterTraits<ioda::DistanceTypeParameterTraitsHelper>
70 public EnumParameterTraits<ioda::SearchMethodParameterTraitsHelper>
83 oops::RequiredParameter<double>
lengthscale{
"lengthscale",
this};
89 oops::OptionalParameter<int>
maxnobs{
"max nobs",
this};
97 double distance(
const eckit::geometry::Point2 & p1,
const eckit::geometry::Point2 & p2) {
99 return eckit::geometry::Sphere::distance(
radius_earth, p1, p2);
102 return p1.distance(p2);
112 #endif // CORE_LOCALOBSSPACEPARAMETERS_H_