UNCLASSIFIED

GeographicTranslator
 All Classes Namespaces Functions Enumerations
egm2008_full_grid_package.h
1 
3 // //
4 // UNCLASSIFIED UNCLASSIFIED UNCLASSIFIED UNCLASSIFIED //
5 // //
6 // Description of this module: //
7 // Utility software that interpolates EGM 2008 //
8 // geoid heights from one of NGA's geoid height grids. //
9 // //
10 // This interpolator loads the worldwide EGM 2008 grid upon //
11 // instantiation, and it interpolates from the worldwide grid. //
12 // //
13 // This interpolator gives exactly the same results as //
14 // the companion egm2008_aoi_grid_package's interpolator. //
15 // However, this interpolator is faster when //
16 // users are requesting tens of thousands of geoid //
17 // heights at widely dispersed horizontal locations. //
18 // //
19 // Revision History: //
20 // Date Name Description //
21 // ----------- ------------ ----------------------------------------------//
22 // 19 Nov 2010 RD Craig Release //
23 // 11 Feg 2011 RD Craig Upgrades following code review //
24 // //
26 
27 #ifndef EGM2008_FULL_GRID_PACKAGE_H
28 #define EGM2008_FULL_GRID_PACKAGE_H
29 
30 // This file declares a C++ class
31 // that interpolates EGM 2008 geoid heights from a
32 // reformatted version of NGA's geoid-height grid.
33 
34 // THIS DERIVED CLASS IMPLEMENTS COMPUTATIONAL
35 // DETAILS SPECIFIC TO THE EGM 2008 FULL-GRID ALGORITHM.
36 
37 #include "DtccApi.h"
38 #include "egm2008_geoid_grid.h"
39 
40 namespace MSP
41 {
42  class MSP_DTCC_API Egm2008FullGrid : public Egm2008GeoidGrid {
43 
44  protected:
45 
46  // heightGrid: A pointer to a
47  // one-dimensional array containing
48  // the reformatted geoid-height grid.
49 
50  float* _heightGrid;
51 
52  public:
53 
54  // Basic functions .....
55 
56  Egm2008FullGrid( void );
57 
58  Egm2008FullGrid( const Egm2008FullGrid& oldGrid );
59 
60  ~Egm2008FullGrid( void );
61 
63  operator = ( const Egm2008FullGrid& oldGrid );
64 
65  // User functions .....
66 
67  // geoidHeight: A function that interpolates
68  // local geoid height (meters) from
69  // a reformatted geoid height grid;
70  // it uses bi-cubic spline interpolation.
71 
72  virtual int
73  geoidHeight(
74  int wSize, // input
75  double latitude, // input
76  double longitude, // input
77  double& gHeight ); // output
78 
79  protected:
80 
81  // geoidHeight: A function that interpolates
82  // local geoid height (meters) from
83  // a reformatted geoid height grid;
84  // it uses bilinear interpolation.
85 
86  virtual int
87  geoidHeight(
88  double latitude, // input
89  double longitude, // input
90  double& gHeight ); // output
91 
92  // loadGrid: A function that
93  // retrieves a reformatted
94  // EGM 2008 worldwide geoid height grid.
95 
96  int
97  loadGrid( void );
98 
99  }; // End of Egm2008FullGrid class declaration
100 
101 } // End of namespace block
102 
103 #endif
104 
106 // UNCLASSIFIED UNCLASSIFIED UNCLASSIFIED UNCLASSIFIED //
108