Main Page   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

Geomag.cxx

Go to the documentation of this file.
00001 #include "Geomag.h"
00002 
00003 #include "Geomag.inc"
00004 
00005 double Geomag::L(double lat, double lon) {
00006     return Geomag::geoInterp(lat, lon, Lvals);
00007 }
00008 
00009 double Geomag::B(double lat, double lon) {
00010     return Geomag::geoInterp(lat, lon, Bvals);
00011 }
00012 
00013 double Geomag::geolat(double lat, double lon) {
00014     return Geomag::geoInterp(lat, lon, glats);
00015 }
00016 
00017 double Geomag::geolon(double lat, double lon) {
00018     return Geomag::geoInterp(lat, lon, glons);
00019 }
00020 
00021 double Geomag::L(std::pair<double,double>coords) {
00022     return Geomag::L(coords.first, coords.second);
00023 }
00024 
00025 double Geomag::B(std::pair<double,double>coords) {
00026     return Geomag::B(coords.first, coords.second);
00027 }
00028 
00029 double Geomag::geolat(std::pair<double,double>coords) {
00030     return Geomag::geolat(coords.first, coords.second);
00031 }
00032 
00033 double Geomag::geolon(std::pair<double,double>coords) {
00034     return Geomag::geolon(coords.first, coords.second);
00035 }
00036 
00037 double Geomag::geoInterp(double lat, double lon, const double * array) {
00038     int ilat = static_cast<int>(lat/5.+6);
00039     int ilon = static_cast<int>(lon/5.);
00040     double a = fmod(lat+30., 5.)/5.;
00041     double b = fmod(lon, 5.)/5.;
00042     return array[ilat   + 13*ilon    ] * (1.-a) * (1.-b) +
00043         array[ilat   + 13*(ilon+1)] * (1.-a) * b      +
00044         array[ilat+1 + 13*ilon    ] * a      * (1.-b) +
00045         array[ilat+1 + 13*(ilon+1)] * a      * b      ;
00046 }

Generated on Wed Oct 16 14:01:30 2002 by doxygen1.2.13.1 written by Dimitri van Heesch, © 1997-2001