10#if !defined(GEOGRAPHICLIB_MAGNETICMODEL_HPP)
11#define GEOGRAPHICLIB_MAGNETICMODEL_HPP 1
19# pragma warning (push)
20# pragma warning (disable: 4251)
82 static const int idlength_ = 8;
83 std::string _name, _dir, _description, _date, _filename, _id;
84 real _t0, _dt0, _tmin, _tmax, _a, _hmin, _hmax;
85 int _nNmodels, _nNconstants, _nmx, _mmx;
88 std::vector< std::vector<real> > _gG;
89 std::vector< std::vector<real> > _hH;
90 std::vector<SphericalHarmonic> _harm;
91 void Field(real t, real lat, real lon, real h,
bool diffp,
92 real& Bx, real& By, real& Bz,
93 real& Bxt, real& Byt, real& Bzt)
const;
94 void ReadMetadata(
const std::string& name);
150 const std::string& path =
"",
151 const Geocentric& earth = Geocentric::WGS84(),
152 int Nmax = -1,
int Mmax = -1);
175 real& Bx, real& By, real& Bz)
const {
177 Field(t, lat, lon, h,
false, Bx, By, Bz, dummy, dummy, dummy);
201 real& Bx, real& By, real& Bz,
202 real& Bxt, real& Byt, real& Bzt)
const {
203 Field(t, lat, lon, h,
true, Bx, By, Bz, Bxt, Byt, Bzt);
264 real& H, real& F, real& D, real& I) {
267 H, F, D, I, Ht, Ft, Dt, It);
310 const std::string&
DateTime()
const {
return _date; }
406 static std::string DefaultMagneticPath();
417 static std::string DefaultMagneticName();
423# pragma warning (pop)
Header for GeographicLib::Constants class.
#define GEOGRAPHICLIB_EXPORT
Header for GeographicLib::Geocentric class.
GeographicLib::Math::real real
Header for GeographicLib::SphericalHarmonic class.
Math::real Flattening() const
Math::real EquatorialRadius() const
Geomagnetic field on a circle of latitude.
Model of the earth's magnetic field.
Math::real EquatorialRadius() const
void operator()(real t, real lat, real lon, real h, real &Bx, real &By, real &Bz) const
Math::real MinTime() const
const std::string & Description() const
const std::string & MagneticFile() const
Math::real MaxTime() const
Math::real MaxHeight() const
const std::string & DateTime() const
const std::string & MagneticModelName() const
Math::real Flattening() const
Math::real MinHeight() const
MagneticModel(MagneticModel &&)=default
const std::string & MagneticModelDirectory() const
MagneticModel & operator=(MagneticModel &&)=default
void operator()(real t, real lat, real lon, real h, real &Bx, real &By, real &Bz, real &Bxt, real &Byt, real &Bzt) const
static void FieldComponents(real Bx, real By, real Bz, real &H, real &F, real &D, real &I)
Namespace for GeographicLib.