UNCLASSIFIED
GeographicTranslator
Main Page
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Enumerations
Enumerator
Friends
Macros
master
geotrans3.7
CCS
src
dtcc
egm2008_aoi_grid_package.h
Go to the documentation of this file.
1
2
// CLASSIFICATION: UNCLASSIFIED
3
5
// //
6
// File name: egm2008_aoi_grid_package.h //
7
// //
8
// Description of this module: //
9
// Utility software that interpolates EGM 2008 geoid //
10
// heights from one of NGA's reformatted geoid height grids. //
11
// //
12
// This interpolator uses Area of Interest (AOI) //
13
// geoid height grids, not the worldwide geoid height grid. //
14
// //
15
// This interpolator does not load an Area of Interest (AOI) //
16
// geoid height grid until a user first requests a geoid height. //
17
// The interpolator then loads an AOI grid centered near the point of //
18
// interest, and it interpolates local geoid height from the AOI grid. //
19
// This interpolator re-uses the AOI grid until a subsequent point of //
20
// interest lies outside the AOI. The interpolator then loads a //
21
// new AOI grid centered at the new horizontal location of interest. //
22
// //
23
// This interpolator gives exactly the same results as //
24
// the companion egm2008_full_grid_package's interpolator. //
25
// However, the AOI interpolator requires far less computer memory. //
26
// //
27
// Revision History: //
28
// Date Name Description //
29
// ----------- ------------ ----------------------------------------------//
30
// 19 Nov 2010 RD Craig Release //
31
// 11 Feb 2011 RD Craig Updates following code review //
32
// 30 May 2013 RD Craig MSP 1.3: ER29758 //
33
// Added second constructor to //
34
// permit multiple geoid-height grids //
35
// when assessing relative interpolation errors. //
36
// //
38
39
#ifndef EGM2008_AOI_GRID_PACKAGE_H
40
#define EGM2008_AOI_GRID_PACKAGE_H
41
42
// This file declares a C++ class
43
// that interpolates EGM 2008 geoid heights from a
44
// reformatted version of NGA's worldwide geoid height grids.
45
46
#include "
DtccApi.h
"
47
#include "
egm2008_geoid_grid.h
"
48
49
namespace
MSP
50
{
51
52
class
MSP_DTCC_API
Egm2008AoiGrid
:
public
Egm2008GeoidGrid
{
53
54
protected
:
55
56
// _maxAoiColIndex: The AOI grid's maximum column index;
57
// this is referenced to the worldwide grid.
58
59
int
_maxAoiColIndex
;
60
61
// _minAoiColIndex: The AOI grid's minimum column index;
62
// this is referenced to the worldwide grid.
63
64
int
_minAoiColIndex
;
65
66
// _maxAoiRowIndex: The AOI grid's maximum row index;
67
// this is referenced to the worldwide grid.
68
69
int
_maxAoiRowIndex
;
70
71
// _minAoiRowIndex: The AOI grid's minimum row index;
72
// this is referenced to the worldwide grid.
73
74
int
_minAoiRowIndex
;
75
76
// nAoiCols: The number of columns in the AOI grid.
77
78
int
_nAoiCols
;
79
80
// nAoiRows: The number of rows in the AOI grid.
81
82
int
_nAoiRows
;
83
84
// nomAoiCols: Nominal number of columns in the AOI
85
// grid; actual number is latitude dependent.
86
87
int
_nomAoiCols
;
88
89
// nomAoiRows: Nominal number of rows in the AOI grid.
90
91
int
_nomAoiRows
;
92
93
// heightGrid: A pointer to a
94
// one-dimensional array containing a
95
// part of the reformatted geoid-height grid.
96
97
float
*
_heightGrid
;
98
99
public
:
100
101
// Basic functions .....
102
103
Egm2008AoiGrid
(
void
);
104
105
Egm2008AoiGrid
(
const
std::string &gridFname );
// new 5/30/2013
106
107
Egm2008AoiGrid
(
const
Egm2008AoiGrid
& oldGrid );
108
109
~
Egm2008AoiGrid
(
void
);
110
111
Egm2008AoiGrid
&
112
operator = (
const
Egm2008AoiGrid
& oldGrid );
113
114
// User functions .....
115
116
// geoidHeight: A function that interpolates
117
// local geoid height (meters) from
118
// a reformatted EGM 2008 geoid height grid;
119
// this function uses bi-cubic spline interpolation.
120
121
virtual
int
122
geoidHeight(
123
int
wSize,
// input
124
double
latitude,
// input
125
double
longitude,
// input
126
double
& gHeight );
// output
127
128
protected
:
129
130
// geoidHeight: A function that interpolates
131
// local geoid height (meters) from
132
// a reformatted EGM 2008 geoid height grid;
133
// this function uses bilinear interpolation.
134
135
virtual
int
136
geoidHeight(
137
double
latitude,
// input
138
double
longitude,
// input
139
double
& gHeight );
// output
140
141
// loadAoiParms: A function that loads an AOI grid's
142
// parameters relative to an input worldwide grid.
143
144
int
145
loadAoiParms(
146
int
i0,
int
j0 );
147
148
// loadGrid: A function that loads an AOI grid from
149
// a reformatted EGM 2008 worldwide geoid height grid.
150
151
int
152
loadGrid(
void
);
153
154
// loadGridMetadata: A function that loads worldwide EGM 2008
155
// grid metadata from a reformatted worldwide grid file.
156
157
int
158
loadGridMetadata(
void
);
159
160
};
// End of Egm2008AoiGrid class declaration
161
162
}
// End of namespace block
163
164
#endif
165
166
// CLASSIFICATION: UNCLASSIFIED
167
Generated on Tue Feb 16 2016 14:54:02 for GeographicTranslator by doxygen 1.8.2