10#if !defined(GEOGRAPHICLIB_GRAVITYMODEL_HPP)
11#define GEOGRAPHICLIB_GRAVITYMODEL_HPP 1
20# pragma warning (push)
21# pragma warning (disable: 4251)
87 static const int idlength_ = 8;
88 std::string _name, _dir, _description, _date, _filename, _id;
89 real _amodel, _gGMmodel, _zeta0, _corrmult;
93 std::vector<real> _cCx, _sSx, _cCC, _cCS, _zonal;
98 void ReadMetadata(
const std::string& name);
100 real& deltaX, real& deltaY, real& deltaZ,
101 bool gradp,
bool correct)
const;
102 GravityModel(
const GravityModel&) =
delete;
104 GravityModel& operator=(
const GravityModel&) =
delete;
110 CAP_DELTA = 1U<<2 | CAP_T,
204 explicit GravityModel(
const std::string& name,
205 const std::string& path =
"",
206 int Nmax = -1,
int Mmax = -1);
231 real& gx, real& gy, real& gz)
const;
250 real& deltax, real& deltay, real& deltaz)
286 real& Dg01, real& xi, real& eta)
const;
311 real& gX, real& gY, real& gZ)
const;
330 real& GX, real& GY, real& GZ)
const;
349 real& deltaX, real& deltaY, real& deltaZ)
const
350 {
return InternalT(X, Y, Z, deltaX, deltaY, deltaZ,
true,
true); }
363 return InternalT(X, Y, Z, dummy, dummy, dummy,
false,
true);
386 real& gammaX, real& gammaY, real& gammaZ)
const
387 {
return _earth.U(X, Y, Z, gammaX, gammaY, gammaZ); }
404 {
return _earth.Phi(X, Y, fX, fY); }
463 const std::string&
DateTime()
const {
return _date; }
499 {
return _earth.MassConstant(); }
506 {
return _earth.AngularVelocity(); }
534 static std::string DefaultGravityPath();
545 static std::string DefaultGravityName();
551# pragma warning (pop)
Header for GeographicLib::Constants class.
#define GEOGRAPHICLIB_EXPORT
GeographicLib::Math::real real
Header for GeographicLib::NormalGravity class.
Header for GeographicLib::SphericalHarmonic1 class.
Header for GeographicLib::SphericalHarmonic class.
Gravity on a circle of latitude.
Math::real ReferenceMassConstant() const
friend class GravityCircle
Math::real Disturbance(real lat, real lon, real h, real &deltax, real &deltay, real &deltaz) const
void SphericalAnomaly(real lat, real lon, real h, real &Dg01, real &xi, real &eta) const
Math::real Flattening() const
Math::real GeoidHeight(real lat, real lon) const
Math::real T(real X, real Y, real Z, real &deltaX, real &deltaY, real &deltaZ) const
Math::real MassConstant() const
const std::string & GravityModelName() const
const std::string & GravityModelDirectory() const
Math::real Gravity(real lat, real lon, real h, real &gx, real &gy, real &gz) const
const std::string & GravityFile() const
GravityModel & operator=(GravityModel &&)=default
Math::real EquatorialRadius() const
Math::real Phi(real X, real Y, real &fX, real &fY) const
Math::real V(real X, real Y, real Z, real &GX, real &GY, real &GZ) const
const std::string & Description() const
Math::real W(real X, real Y, real Z, real &gX, real &gY, real &gZ) const
GravityModel(GravityModel &&)=default
const std::string & DateTime() const
Math::real U(real X, real Y, real Z, real &gammaX, real &gammaY, real &gammaZ) const
Math::real T(real X, real Y, real Z) const
Math::real AngularVelocity() const
const NormalGravity & ReferenceEllipsoid() const
The normal gravity of the earth.
Spherical harmonic series with a correction to the coefficients.
Spherical harmonic series.
Namespace for GeographicLib.