LRAUV  revA
EnvSimulator.h
Go to the documentation of this file.
1 
9 #ifndef EnvSimulator_H_
10 #define EnvSimulator_H_
11 
12 #include "Simulator.h"
13 #include "utils/NetCdfReader.h"
14 
21 class EnvSimulator: public Simulator
22 {
23 public:
24 
26  EnvSimulator( bool simulateSensors, int nSteps );
27 
29  virtual ~EnvSimulator()
30  {
31  uninitialize();
32  };
33 
35  virtual void uninitialize();
36 
37 protected:
38 
39  virtual void configureSensors();
40 
41  virtual void simulateSensors( double latDeg, double lonDeg, SimResultStruct& results );
42 
43  // Gridded data file reader
45 
46  // time array
47  float* modelTime_;
48 
49  // size of time Array
50  unsigned int modelTimeSize_;
51 
52  // depth array
53  float* modelDepth_;
54 
55  // size of depth Array
56  unsigned int modelDepthSize_;
57 
58  // latitude array
60 
61  // size of latitude Array
62  unsigned int modelLatitudeSize_;
63 
64  // longitude array
66 
68  unsigned int modelLongitudeSize_;
69 
72 
74  float salinityArray_[2][2][2][2];
75 
78 
79  // NetCdf variable that contains temperature
81 
82  // temperature array data
83  float temperatureArray_[2][2][2][2];
84 
85  // preserve indices to cut down on NetCDF reads
87 
88  // NetCdf variable that contains u
90 
91  // u array data
92  float uArray_[2][2][2][2];
93 
94  // preserve indices to cut down on NetCDF reads
95  int uIndices_[4];
96 
97  // NetCdf variable that contains v
99 
100  // v array data
101  float vArray_[2][2][2][2];
102 
103  // preserve indices to cut down on NetCDF reads
104  int vIndices_[4];
105 
106  //------------------ Environmental Model interpolation ----------------
107  bool interpolate( const float& time, const float& depth, const float& lat, const float& lon,
108  int& timeIndex, int& depthIndex, int& latIndex, int& lonIndex,
109  int varIndices[4], float varArray[2][2][2][2], NetCdfReader::NetCdfVar* var, float& value );
110 
113  float twoLineEstimate( const float x, const float y0, const float y1, const float y2,
114  const float x0, const float x1, const float x2 );
115 
116 private:
117  // Note that the copy constructor below is private and not given a body.
118  // Any attempt to call it will return a compiler error.
119  EnvSimulator( const EnvSimulator& old ); // disallow copy constructor
120 
121 };
122 
123 #endif /*EnvSimulator_H_*/
float salinityArray_[2][2][2][2]
salinity array data
Definition: EnvSimulator.h:74
virtual void configureSensors()
Definition: EnvSimulator.cpp:68
int uIndices_[4]
Definition: EnvSimulator.h:95
NetCdfReader::NetCdfVar * varSalinity_
NetCdf variable that contains salinity.
Definition: EnvSimulator.h:71
int vIndices_[4]
Definition: EnvSimulator.h:104
float vArray_[2][2][2][2]
Definition: EnvSimulator.h:101
unsigned int modelLatitudeSize_
Definition: EnvSimulator.h:62
bool interpolate(const float &time, const float &depth, const float &lat, const float &lon, int &timeIndex, int &depthIndex, int &latIndex, int &lonIndex, int varIndices[4], float varArray[2][2][2][2], NetCdfReader::NetCdfVar *var, float &value)
Definition: EnvSimulator.cpp:197
float uArray_[2][2][2][2]
Definition: EnvSimulator.h:92
NetCdfReader::NetCdfVar * varTemperature_
Definition: EnvSimulator.h:80
float * modelLatitude_
Definition: EnvSimulator.h:59
A simulator "evolved" from the Altex and Odyssey sims.
Definition: Simulator.h:56
float * modelLongitude_
Definition: EnvSimulator.h:65
Contains the NetCdfReader class declaration.
unsigned int modelDepthSize_
Definition: EnvSimulator.h:56
float twoLineEstimate(const float x, const float y0, const float y1, const float y2, const float x0, const float x1, const float x2)
Interpolates a value on two lines, from (x0, y0) to (x1, y1) to (x2, y2) Does not extrapolate – rath...
Definition: EnvSimulator.cpp:269
EnvSimulator(bool simulateSensors, int nSteps)
Constructor.
Definition: EnvSimulator.cpp:11
NetCdfReader::NetCdfVar * varU_
Definition: EnvSimulator.h:89
virtual void simulateSensors(double latDeg, double lonDeg, SimResultStruct &results)
Definition: EnvSimulator.cpp:119
int temperatureIndices_[4]
Definition: EnvSimulator.h:86
NetCdfReader * netCdfReader_
Definition: EnvSimulator.h:44
virtual ~EnvSimulator()
Destructor.
Definition: EnvSimulator.h:29
float * modelDepth_
Definition: EnvSimulator.h:53
A struct of values that is passed from the Simulator to the LRAUV, with the results from one timestep...
Definition: SimResultStruct.h:18
float * modelTime_
Definition: EnvSimulator.h:47
Contains the Simulator class declaration.
NetCdfReader::NetCdfVar * varV_
Definition: EnvSimulator.h:98
The EnvSimulator adds lookup of environmental parameters to the base Simulator class.
Definition: EnvSimulator.h:21
unsigned int modelLongitudeSize_
size of longitude Array
Definition: EnvSimulator.h:68
A very compact, very simple netCDF reader with a minimal feature set.
Definition: NetCdfReader.h:21
unsigned int modelTimeSize_
Definition: EnvSimulator.h:50
virtual void uninitialize()
Uninitialize the simulation.
Definition: EnvSimulator.cpp:55
Definition: NetCdf.h:84
int salinityIndices_[4]
preserve indices to cut down on NetCDF reads
Definition: EnvSimulator.h:77
float temperatureArray_[2][2][2][2]
Definition: EnvSimulator.h:83