eckit::geo::figure::Sphere class

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 centralAngle(const PointLonLat&, const PointLonLat&) -> double
Great-circle central angle between two points [radian].
static auto centralAngle(double radius, const PointXYZ&, const PointXYZ&) -> double
Great-circle central angle between two points (Cartesian coordinates)
static auto distance(double radius, const PointLonLat&, const PointLonLat&) -> double
Great-circle distance between two points.
static auto distance(double radius, const PointXYZ&, const PointXYZ&) -> double
Great-circle distance between two points (Cartesian coordinates)
static auto area(double radius) -> double
Surface area [L^2].
static auto area(double radius, const area::BoundingBox&) -> double
Surface area between parallels and meridians [L^2].
static auto greatCircleLatitudeGivenLongitude(const PointLonLat&, const PointLonLat&, double lon) -> double
Great-circle intermediate latitude provided two circle points and intermediate longitude [degree].
static void greatCircleLongitudeGivenLatitude(const PointLonLat&, const PointLonLat&, double lat, double& lon1, double& lon2)
Great-circle intermediate longitude(s) provided two circle points and intermediate latitude [degree].
static auto convertSphericalToCartesian(double radius, const PointLonLat&, double height = 0.) -> PointXYZ
Convert spherical to Cartesian coordinates.
static auto convertCartesianToSpherical(double radius, const PointXYZ&) -> PointLonLat
Convert Cartesian to spherical coordinates.
static auto className() -> std::string

Constructors, destructors, conversion operators

Sphere(double R) explicit
Sphere(const Spec&) explicit

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

using eckit::geo::figure::Sphere::builder_t = BuilderT0<Figure>

Function documentation

static std::string eckit::geo::figure::Sphere::className()

spec::Custom* eckit::geo::figure::Sphere::spec() const

std::string eckit::geo::figure::Sphere::spec_str() const

std::string eckit::geo::figure::Sphere::proj_str() const

double eckit::geo::figure::Sphere::eccentricity() const

double eckit::geo::figure::Sphere::flattening() const