GeographicLib  1.35
Public Member Functions | Friends | List of all members
GeographicLib::MagneticCircle Class Reference

Geomagnetic field on a circle of latitude. More...

#include <GeographicLib/MagneticCircle.hpp>

Public Member Functions

 MagneticCircle ()
 
Compute the magnetic field
void operator() (real lon, real &Bx, real &By, real &Bz) const throw ()
 
void operator() (real lon, real &Bx, real &By, real &Bz, real &Bxt, real &Byt, real &Bzt) const throw ()
 
Inspector functions
bool Init () const throw ()
 
Math::real MajorRadius () const throw ()
 
Math::real Flattening () const throw ()
 
Math::real Latitude () const throw ()
 
Math::real Height () const throw ()
 
Math::real Time () const throw ()
 

Friends

class MagneticModel
 

Detailed Description

Geomagnetic field on a circle of latitude.

Evaluate the earth's magnetic field on a circle of constant height and latitude. This uses a CircularEngine to pre-evaluate the inner sum of the spherical harmonic sum, allowing the values of the field at several different longitudes to be evaluated rapidly.

Use MagneticModel::Circle to create a MagneticCircle object. (The constructor for this class is private.)

Example of use:

// Example of using the GeographicLib::MagneticCircle class
#include <iostream>
#include <exception>
using namespace std;
using namespace GeographicLib;
int main() {
try {
MagneticModel mag("wmm2010");
double lat = 27.99, lon0 = 86.93, h = 8820, t = 2012; // Mt Everest
{
// Slow method of evaluating the values at several points on a circle of
// latitude.
for (int i = -5; i <= 5; ++i) {
double lon = lon0 + i * 0.2;
double Bx, By, Bz;
mag(t, lat, lon, h, Bx, By, Bz);
cout << lon << " " << Bx << " " << By << " " << Bz << "\n";
}
}
{
// Fast method of evaluating the values at several points on a circle of
// latitude using MagneticCircle.
MagneticCircle circ = mag.Circle(t, lat, h);
for (int i = -5; i <= 5; ++i) {
double lon = lon0 + i * 0.2;
double Bx, By, Bz;
circ(lon, Bx, By, Bz);
cout << lon << " " << Bx << " " << By << " " << Bz << "\n";
}
}
}
catch (const exception& e) {
cerr << "Caught exception: " << e.what() << "\n";
return 1;
}
return 0;
}

MagneticField is a command-line utility providing access to the functionality of MagneticModel and MagneticCircle.

Definition at line 37 of file MagneticCircle.hpp.

Constructor & Destructor Documentation

GeographicLib::MagneticCircle::MagneticCircle ( )
inline

A default constructor for the normal gravity. This sets up an uninitialized object which can be later replaced by the MagneticModel::Circle.

Definition at line 76 of file MagneticCircle.hpp.

Member Function Documentation

void GeographicLib::MagneticCircle::operator() ( real  lon,
real &  Bx,
real &  By,
real &  Bz 
) const
throw (
)
inline

Evaluate the components of the geomagnetic field at a particular longitude.

Parameters
[in]lonlongitude of the point (degrees).
[out]Bxthe easterly component of the magnetic field (nanotesla).
[out]Bythe northerly component of the magnetic field (nanotesla).
[out]Bzthe vertical (up) component of the magnetic field (nanotesla).

Definition at line 91 of file MagneticCircle.hpp.

void GeographicLib::MagneticCircle::operator() ( real  lon,
real &  Bx,
real &  By,
real &  Bz,
real &  Bxt,
real &  Byt,
real &  Bzt 
) const
throw (
)
inline

Evaluate the components of the geomagnetic field and their time derivatives at a particular longitude.

Parameters
[in]lonlongitude of the point (degrees).
[out]Bxthe easterly component of the magnetic field (nanotesla).
[out]Bythe northerly component of the magnetic field (nanotesla).
[out]Bzthe vertical (up) component of the magnetic field (nanotesla).
[out]Bxtthe rate of change of Bx (nT/yr).
[out]Bytthe rate of change of By (nT/yr).
[out]Bztthe rate of change of Bz (nT/yr).

Definition at line 109 of file MagneticCircle.hpp.

bool GeographicLib::MagneticCircle::Init ( ) const
throw (
)
inline
Returns
true if the object has been initialized.

Definition at line 121 of file MagneticCircle.hpp.

Math::real GeographicLib::MagneticCircle::MajorRadius ( ) const
throw (
)
inline
Returns
a the equatorial radius of the ellipsoid (meters). This is the value inherited from the MagneticModel object used in the constructor.

Definition at line 127 of file MagneticCircle.hpp.

Math::real GeographicLib::MagneticCircle::Flattening ( ) const
throw (
)
inline
Returns
f the flattening of the ellipsoid. This is the value inherited from the MagneticModel object used in the constructor.

Definition at line 133 of file MagneticCircle.hpp.

Math::real GeographicLib::MagneticCircle::Latitude ( ) const
throw (
)
inline
Returns
the latitude of the circle (degrees).

Definition at line 138 of file MagneticCircle.hpp.

Math::real GeographicLib::MagneticCircle::Height ( ) const
throw (
)
inline
Returns
the height of the circle (meters).

Definition at line 143 of file MagneticCircle.hpp.

Math::real GeographicLib::MagneticCircle::Time ( ) const
throw (
)
inline
Returns
the time (fractional years).

Definition at line 148 of file MagneticCircle.hpp.

Friends And Related Function Documentation

friend class MagneticModel
friend

Definition at line 67 of file MagneticCircle.hpp.


The documentation for this class was generated from the following files: