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_