template<class DATUM>
eckit::geo::geometry::SphereT struct

Sphere parametrised with a geodetic datum.

Public static functions

static auto radius() -> double
Sphere radius in metres.
static auto centralAngle(const PointLonLat& A, const PointLonLat& B) -> double
Great-circle central angle between two points [radian].
static auto centralAngle(const Point3& A, const Point3& B) -> double
Great-circle central angle between two points (Cartesian coordinates) in radians.
static auto distance(const PointLonLat& A, const PointLonLat& B) -> double
Great-circle distance between two points [m].
static auto distance(const Point3& A, const Point3& B) -> double
Great-circle distance between two points (Cartesian coordinates) [m].
static auto area() -> double
Surface area [m ** 2].
static auto area(const area::BoundingBox& bbox) -> double
Surface area between parallels and meridians [m ** 2].
static auto greatCircleLatitudeGivenLongitude(const PointLonLat& A, const PointLonLat& B, double lon) -> double
Great-circle intermediate latitude provided two circle points and intermediate longitude [degree].
static void greatCircleLongitudeGivenLatitude(const PointLonLat& A, const PointLonLat& B, double lat, double& lon1, double& lon2)
Great-circle intermediate longitude(s) provided two circle points and intermediate latitude [degree].
static auto convertSphericalToCartesian(const PointLonLat& P, double height = 0.) -> Point3
Convert spherical to Cartesian coordinates.
static auto convertCartesianToSpherical(const Point3& P) -> PointLonLat
Convert Cartesian to spherical coordinates.