13 #include "oops/util/sqr.h"
20 const std::vector<float> &latitudes,
21 const std::vector<float> &longitudes,
22 const std::vector<int> &stationIds)
23 : options_(options), latitudes_(latitudes), longitudes_(longitudes), stationIds_(stationIds)
31 double &deltaLatInRad,
32 double &deltaLonInRad,
33 double &distanceInKm)
const {
37 if (deltaLonInRad > M_PI)
38 deltaLonInRad -= 2 * M_PI;
39 else if (deltaLonInRad < -M_PI)
40 deltaLonInRad += 2 * M_PI;
43 std::sqrt(util::sqr(deltaLatInRad) +
44 4.0 * util::sqr(std::sin(0.5 * deltaLonInRad)) *
52 double distanceInKm)
const {
54 if (distanceInKm < 10.0) {
62 sinBeta = std::min(1.0, std::max(-1.0, sinBeta));
63 double beta = std::asin(sinBeta);