casacore
|
EarthField class model calculations. More...
#include <EarthField.h>
Public Types | |
enum | EarthFieldTypes { IGRF, NONE, STANDARD } |
Known EarthField calculation models. More... | |
Public Member Functions | |
EarthField () | |
Default constructor, generates default J2000 EarthField identification. More... | |
EarthField (const EarthField &other) | |
Copy constructor. More... | |
EarthField (EarthFieldTypes model, Double catepoch=51544.5) | |
Constructor with epoch in MJulian days (default is J2000) More... | |
EarthField & | operator= (const EarthField &other) |
Copy assignment. More... | |
~EarthField () | |
const Vector< Double > & | operator() (const MVPosition &pos) |
Return the EarthField components. More... | |
const Vector< Double > * | derivative (const MVPosition &pos) |
Return derivatives of field (to X, Y, Z). More... | |
void | init () |
Re-initialise EarthField object with specified model and epoch, or defaults STANDARD and J2000. More... | |
void | init (EarthFieldTypes model, Double catepoch=51544.5) |
void | refresh () |
Refresh calculations. More... | |
Static Public Attributes | |
static const Double | INTV |
Default interval to be used for linear approximation (in m) More... | |
Private Member Functions | |
void | copy (const EarthField &other) |
Make a copy. More... | |
void | fillField () |
Create correct default fixedEpoch and catalogue field data. More... | |
void | calcField (const MVPosition &pos) |
Calculate EarthField for longitude and latitude and altitude (m) More... | |
Private Attributes | |
EarthFieldTypes | method_p |
Method to be used. More... | |
Double | fixedEpoch_p |
Fixed epoch to be used (MJD) More... | |
Vector< Double > | agh_p |
List of spherical components. More... | |
Vector< Double > | p_p |
Work arrays for calculations. More... | |
Vector< Double > | q_p |
Vector< Double > | cl_p |
Vector< Double > | sl_p |
MVPosition | checkPos_p |
Check position. More... | |
Double | pval_p [3] |
Cached calculated field components. More... | |
Double | dval_p [3][3] |
Cached derivatives. More... | |
Int | lres_p |
To reference results, and use a few in interim calculations, results are calculated in a circular buffer. More... | |
Vector< Double > | result_p [4] |
Last calculation. More... | |
Static Private Attributes | |
static uInt | interval_reg_p |
Interpolation interval. More... | |
EarthField class model calculations.
Internal
Earth magnetic Field model
EarthField forms the class for Earth magnetic field calculations. It is a simple container with the selected model, and the mean epoch.
The method is selected from one of the following:
Epochs can be specified as the MJD (with defined constants MeasData::MJD2000 and MeasData::MJD1950 or the actual MJD), leading to the following constructors:
Actual EarthField for a certain position on Earth is calculated by the () operator. Arguments can be:
The returned value is a 3D vector of the field (in nT) in ITRF coordinates. The derivative (d-1) can be obtained as well by derivative(MVPosition).
An EarthField can be re-initialised with a different method and/or other epoch with the init()
functions (same format as constructors).
To bypass the full, lengthy calculation actual returned values are calculated using the derivative if within about 50 km (error less than about 10-2 G). A call to refresh() will re-initiate calculations from scratch.
The following details can be set with the Aipsrc mechanism:
The field model is assumed to be constant over the time-span the class is used.
The calculations are based on a routine provided by the IGRF community. See ftp.ngdc.noaa.gov/Solid_Earth/Mainfld_Mag/Models/IAGA, routine IGRFLIB.FOR. The values are in nT (10uG).
To have a container (with history) for field calculations
Definition at line 130 of file EarthField.h.
Known EarthField calculation models.
Enumerator | |
---|---|
IGRF |
Standard IGRF model. |
NONE |
Make the field equal to zero. |
STANDARD |
Standard default model if none specified. |
Definition at line 140 of file EarthField.h.
casacore::EarthField::EarthField | ( | ) |
Default constructor, generates default J2000 EarthField identification.
casacore::EarthField::EarthField | ( | const EarthField & | other | ) |
Copy constructor.
|
explicit |
Constructor with epoch in MJulian days (default is J2000)
casacore::EarthField::~EarthField | ( | ) |
|
private |
Calculate EarthField for longitude and latitude and altitude (m)
|
private |
Make a copy.
const Vector<Double>* casacore::EarthField::derivative | ( | const MVPosition & | pos | ) |
Return derivatives of field (to X, Y, Z).
Note that the value returned has only a lifetime as long as the EarthField container exists, and no new components or derivative is calculated. The returned value should not be deleted.
|
private |
Create correct default fixedEpoch and catalogue field data.
void casacore::EarthField::init | ( | ) |
Re-initialise EarthField object with specified model and epoch, or defaults STANDARD and J2000.
void casacore::EarthField::init | ( | EarthFieldTypes | model, |
Double | catepoch = 51544.5 |
||
) |
const Vector<Double>& casacore::EarthField::operator() | ( | const MVPosition & | pos | ) |
Return the EarthField components.
Note that the value returned has only a lifetime as long as the EarthField container exists, and no new derivative is asked for.
EarthField& casacore::EarthField::operator= | ( | const EarthField & | other | ) |
Copy assignment.
void casacore::EarthField::refresh | ( | ) |
Refresh calculations.
List of spherical components.
Definition at line 190 of file EarthField.h.
|
private |
Check position.
Definition at line 199 of file EarthField.h.
Definition at line 195 of file EarthField.h.
|
private |
Cached derivatives.
Definition at line 203 of file EarthField.h.
|
private |
Fixed epoch to be used (MJD)
Definition at line 188 of file EarthField.h.
|
staticprivate |
Interpolation interval.
Definition at line 211 of file EarthField.h.
|
static |
Default interval to be used for linear approximation (in m)
Definition at line 136 of file EarthField.h.
|
private |
To reference results, and use a few in interim calculations, results are calculated in a circular buffer.
Current result pointer
Definition at line 207 of file EarthField.h.
|
private |
Method to be used.
Definition at line 186 of file EarthField.h.
Work arrays for calculations.
Definition at line 193 of file EarthField.h.
|
private |
Cached calculated field components.
Definition at line 201 of file EarthField.h.
Definition at line 194 of file EarthField.h.
Last calculation.
Definition at line 209 of file EarthField.h.
Definition at line 196 of file EarthField.h.