UNCLASSIFIED

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