Go to the documentation of this file.
8 #ifndef UFO_UTILS_GEODESICDISTANCECALCULATOR_H_
9 #define UFO_UTILS_GEODESICDISTANCECALCULATOR_H_
25 float latitudeBinCenter,
float longitudeBinCenter,
27 float )
const override {
31 float q1 = std::cos((obsLongitude - longitudeBinCenter) *
deg2rad);
32 float q2 = std::cos((obsLatitude - latitudeBinCenter) *
deg2rad);
33 float q3 = std::cos((obsLatitude + latitudeBinCenter) *
deg2rad);
35 float geodesicDistance = (re * std::acos(0.5f*((1.0f+q1)*q2 - (1.0f-q1)*q3)) + 1.0f);
36 return geodesicDistance;
40 float )
const override {
45 return componentA + componentB;
48 float finalise(
float combinedComponents)
const override {
49 return combinedComponents;
55 #endif // UFO_UTILS_GEODESICDISTANCECALCULATOR_H_
float nonspatialDistanceComponent(float, float, float) const override
static constexpr double mean_earth_rad
static constexpr double deg2rad
float spatialDistanceComponent(float obsLatitude, float obsLongitude, float latitudeBinCenter, float longitudeBinCenter, float, float) const override
real(kind_real), parameter, public deg2rad
float combineDistanceComponents(float componentA, float componentB) const override
float finalise(float combinedComponents) const override
Calculates distances between observations and centres of bins used during thinning.