template<class DATUM>
eckit::geo::figure::SphereT class

Sphere parametrised with a geodetic datum.

Base classes

class eckit::geo::Figure
Figure: describe a combination of "shape" (sphere, ellipsoid, geoid) and "size" (radius, a, b, elevation)

Public types

using builder_t = BuilderT0<Figure>

Public static functions

static auto _radius() -> double
Sphere radius.
static auto _centralAngle(const PointLonLat& A, const PointLonLat& B) -> double
Great-circle central angle between two points [radian].
static auto _centralAngle(const PointXYZ& A, const PointXYZ& 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.
static auto _distance(const PointXYZ& A, const PointXYZ& B) -> double
Great-circle distance between two points (Cartesian coordinates)
static auto _area() -> double
Surface area [L^2].
static auto _area(const area::BoundingBox& bbox) -> double
Surface area between parallels and meridians [L^2].
static auto _convertSphericalToCartesian(const PointLonLat& P, double height = 0.) -> PointXYZ
Convert spherical to Cartesian coordinates.
static auto _convertCartesianToSpherical(const PointXYZ& P) -> PointLonLat
Convert Cartesian to spherical coordinates.
static auto className() -> std::string

Constructors, destructors, conversion operators

SphereT() defaulted

Public functions

auto R() const -> double override
auto a() const -> double override
auto b() const -> double override
auto area() const -> double override
Surface area [L^2].
auto area(const area::BoundingBox& bbox) -> double override
Surface area between parallels and meridians [L^2].
auto spec() const -> spec::Custom*
auto spec_str() const -> std::string
auto proj_str() const -> std::string
auto eccentricity() const -> double
auto flattening() const -> double

Typedef documentation

template<class DATUM>
using eckit::geo::figure::SphereT<DATUM>::builder_t = BuilderT0<Figure>

Function documentation

template<class DATUM>
static std::string eckit::geo::figure::SphereT<DATUM>::className()

template<class DATUM>
spec::Custom* eckit::geo::figure::SphereT<DATUM>::spec() const

template<class DATUM>
std::string eckit::geo::figure::SphereT<DATUM>::spec_str() const

template<class DATUM>
std::string eckit::geo::figure::SphereT<DATUM>::proj_str() const

template<class DATUM>
double eckit::geo::figure::SphereT<DATUM>::eccentricity() const

template<class DATUM>
double eckit::geo::figure::SphereT<DATUM>::flattening() const