• Main Page
  • Namespaces
  • Classes
  • Files
  • File List
  • File Members

/home/pascal/depot/filedata/src/geometry/earth_geometry.h

00001 //
00002 // C++ Interface: earth_geometry
00003 //
00004 // Description: set of constants that defines the geometry of the earth
00005 //
00006 //
00007 // Author: Nicolas PASCAL <nicolas.pascal@icare.univ-lille1.fr>, (C) 2012
00008 //
00009 // Copyright: See COPYING file that comes with this distribution
00010 //
00011 //
00012 
00013 #ifndef EARTH_GEOMETRY_H
00014 #define EARTH_GEOMETRY_H
00015 
00016 #include "geometry_common.h"
00017 
00022 namespace Earth {
00024     static const double g0 = 9.80665;
00026     static const double authalic_radius = 6371007.2;
00027 
00031     typedef enum Model {
00032         SPHERICAL_MODEL = 0, // sphere
00033         WGS84_MODEL, // ellipsoid ; World Geodetic System 1984
00034     } Model;
00035 
00039     namespace WGS84 {
00041         const double a = 6378137.0;
00043         const double b = 6356752.314245;
00045         const double a2 = a * a;
00047         const double a4 = a2 * a2;
00049         const double b2 = b * b;
00051         const double b4 = b2 * b2;
00053         const double e2 = 1. - (b2 / a2);
00055         const double e = sqrt (e2); // eccentricity
00056         const double ab =  a / b;
00057         const double e22 = (a2 - b2) / b2;
00058         const double Ime2 = 1. - e2;
00064         double get_N(double theta);
00065     }
00073     double get_radius ();
00074 }
00075 
00094 // inline const double IDW_interp ( double lat,  double lon,
00095 //                                  double lat1, double lon1, double v1,
00096 //                                  double lat2, double lon2, double v2,
00097 //                                  double lat3, double lon3, double v3,
00098 //                                  double lat4, double lon4, double v4
00099 //                                ) {
00100 //
00101 //     // compute the haversine distance from P to P1, P2, P3 and P4
00102 //     double d1 = Geocentric::get_haversine_dist ( lat, lon, lat1, lon1 );
00103 //     double d2 = Geocentric::get_haversine_dist ( lat, lon, lat2, lon2 );
00104 //     double d3 = Geocentric::get_haversine_dist ( lat, lon, lat3, lon3 );
00105 //     double d4 = Geocentric::get_haversine_dist ( lat, lon, lat4, lon4 );
00106 //
00107 //     // compute the corresponding weights
00108 //     double w1 = 1. / pow ( d1, 2. );
00109 //     double w2 = 1. / pow ( d2, 2. );
00110 //     double w3 = 1. / pow ( d3, 2. );
00111 //     double w4 = 1. / pow ( d4, 2. );
00112 //
00113 //     // compute interpolation
00114 //     return ( w1 * v1 + w2 * v2 + w3 * v3 + w4 * v4 ) / ( w1 + w2 + w3 + w4 );
00115 // };
00116 //
00117 // inline const double DW_interp (  double lat,  double lon,
00118 //                                  double lat1, double lon1, double v1,
00119 //                                  double lat2, double lon2, double v2,
00120 //                                  double lat3, double lon3, double v3,
00121 //                                  double lat4, double lon4, double v4
00122 //                                ) {
00123 //     // compute the haversine distance from P to P1, P2, P3 and P4
00124 //     double d1 = Geocentric::get_haversine_dist ( lat, lon, lat1, lon1 );
00125 //     double d2 = Geocentric::get_haversine_dist ( lat, lon, lat2, lon2 );
00126 //     double d3 = Geocentric::get_haversine_dist ( lat, lon, lat3, lon3 );
00127 //     double d4 = Geocentric::get_haversine_dist ( lat, lon, lat4, lon4 );
00128 //
00129 //     // compute the corresponding weights
00130 //     double w1 = d1;
00131 //     double w2 = d2;
00132 //     double w3 = d3;
00133 //     double w4 = d4;
00134 //
00135 //     // compute interpolation
00136 //     return ( w1 * v1 + w2 * v2 + w3 * v3 + w4 * v4 ) / ( w1 + w2 + w3 + w4 );
00137 // };
00138 #endif

Generated on Thu Feb 14 2013 17:59:03 for filedata.kdevelop by  doxygen 1.7.1