WSF
WsfMIT_ClutterStrength.hpp
Go to the documentation of this file.
1// ****************************************************************************
2// CUI
3//
4// The Advanced Framework for Simulation, Integration, and Modeling (AFSIM)
5//
6// Copyright 2003-2015 The Boeing Company. All rights reserved.
7//
8// The use, dissemination or disclosure of data in this file is subject to
9// limitation or restriction. See accompanying README and LICENSE for details.
10// ****************************************************************************
11
12#ifndef WSFMIT_CLUTTERSTRENGTH_HPP
13#define WSFMIT_CLUTTERSTRENGTH_HPP
14
15#include "wsf_mil_export.h"
16
17#include <string>
18#include <vector>
19
20#include "TblLookup.hpp"
21#include "WsfEM_Types.hpp"
22#include "WsfEnvironment.hpp"
23
33class WSF_MIL_EXPORT WsfMIT_ClutterStrength
34{
35public:
62
63 static TerrainType GetTerrainType(WsfEnvironment::LandFormation aLandForm, WsfEnvironment::LandCover aLandCover);
64
68 {
69 cVHF = 0,
70 cUHF = 1,
75 };
76
80 {
81 cHH = 0,
82 cVV = 1,
84 };
85
86 static FrequencyBand GetFrequencyBand(double aFrequency);
87
88 // Polarizations defined in WsfEM_Types.
89
90 static double GetLandClutterStrength(double aDepressionAngle,
91 WsfEnvironment::LandFormation aLandFormation,
93 double aFrequency,
94 WsfEM_Types::Polarization aPolarization);
95
96 static double GetLandClutterStrength(double aDepressionAngle,
97 TerrainType aTerrainType,
98 FrequencyBand aFrequencyBand,
99 Polarization aPolarization);
100
101 static double GetSeaClutterStrength(double aGrazingAngle,
102 WsfEnvironment::SeaState aSeaState,
103 double aFrequency,
104 WsfEM_Types::Polarization aPolarization);
105
106 static double GetLandClutterStrengthLegacy(double aDepressionAngle,
107 WsfEnvironment::LandFormation aLandFormation,
108 WsfEnvironment::LandCover aLandCover,
109 double aFrequency,
110 WsfEM_Types::Polarization aPolarization);
111
112protected:
113private:
114 static void NDimensionalTableLookUp(int aNumDimensions,
115 const double aNumTableValues[],
116 const double aTables[],
117 const double aFunctionValues[],
118 double aIndependantVar[],
119 double aResult[],
120 int& aErrorCode,
121 int aExtrapolated,
122 int aNumCoefficients);
123
124 static Polarization GetPolarization(WsfEM_Types::Polarization aPolarization);
125
126 class Table
127 {
128 public:
129 Table() = default;
130 ;
131 ~Table() = default;
132 ;
133
134 double GetClutterStrength(double aDepressionAngle, FrequencyBand aFrequencyBand, Polarization aPolarization);
135
136 void Load(const float* aRawTable, unsigned short aNumRows);
137
138 TblIndVarU<float> mDepressionAngleValues[cFREQUENCY_SIZE][cPOLARIZATION_SIZE]; //<! Depression Angle, independent values
139 TblDepVar1<float> mClutterStrength[cFREQUENCY_SIZE][cPOLARIZATION_SIZE]; //<! dependent values
140
141 private:
142 };
143
144 static void LoadTables();
145
146 static Table sTables[cTERRAIN_TYPE_SIZE];
147 static bool sTablesLoaded;
148};
149
150#endif
void Load(PakI &aBuff, WsfXIO_PlatformPartInfo *&aPtr)
Definition WsfXIO_ObjectInfo.cpp:345
LandCover
Definition WsfEnvironment.hpp:42
SeaState
Definition WsfEnvironment.hpp:80
LandFormation
Definition WsfEnvironment.hpp:63
Definition WsfMIT_ClutterStrength.hpp:34
FrequencyBand
Definition WsfMIT_ClutterStrength.hpp:68
@ cL_BAND
Definition WsfMIT_ClutterStrength.hpp:71
@ cFREQUENCY_SIZE
Definition WsfMIT_ClutterStrength.hpp:74
@ cX_BAND
Definition WsfMIT_ClutterStrength.hpp:73
@ cVHF
Definition WsfMIT_ClutterStrength.hpp:69
@ cUHF
Definition WsfMIT_ClutterStrength.hpp:70
@ cS_BAND
Definition WsfMIT_ClutterStrength.hpp:72
Polarization
Definition WsfMIT_ClutterStrength.hpp:80
@ cHH
Definition WsfMIT_ClutterStrength.hpp:81
@ cVV
Definition WsfMIT_ClutterStrength.hpp:82
@ cPOLARIZATION_SIZE
Definition WsfMIT_ClutterStrength.hpp:83
TerrainType
Definition WsfMIT_ClutterStrength.hpp:41
@ cHIGH_RELIEF_AGRICULTURAL
Definition WsfMIT_ClutterStrength.hpp:48
@ cHIGH_RELIEF_DESERT
Definition WsfMIT_ClutterStrength.hpp:43
@ cHIGH_RELIEF_FOREST
Definition WsfMIT_ClutterStrength.hpp:46
@ cLOW_RELIEF_AGRICULTURAL
Definition WsfMIT_ClutterStrength.hpp:47
@ cHIGH_RELIEF_GENERAL_MIXED_RURAL
Definition WsfMIT_ClutterStrength.hpp:57
@ cGENERAL_URBAN
Definition WsfMIT_ClutterStrength.hpp:59
@ cHIGH_RELIEF_GRASSLAND
Definition WsfMIT_ClutterStrength.hpp:52
@ cLOW_RELIEF_SHRUBLAND
Definition WsfMIT_ClutterStrength.hpp:51
@ cLEVEL_AGRICULTURAL
Definition WsfMIT_ClutterStrength.hpp:49
@ cLOW_RELIEF_DESERT
Definition WsfMIT_ClutterStrength.hpp:42
@ cLOW_RELIEF_GRASSLAND
Definition WsfMIT_ClutterStrength.hpp:53
@ cLEVEL_DESERT
Definition WsfMIT_ClutterStrength.hpp:44
@ cLOW_RELIEF_GENERAL_MIXED_RURAL
Definition WsfMIT_ClutterStrength.hpp:58
@ cWETLAND
Definition WsfMIT_ClutterStrength.hpp:54
@ cMOUNTAINOUS
Definition WsfMIT_ClutterStrength.hpp:55
@ cLONG_RANGE_MOUNTAINOUS
Definition WsfMIT_ClutterStrength.hpp:56
@ cTERRAIN_TYPE_SIZE
Definition WsfMIT_ClutterStrength.hpp:60
@ cHIGH_RELIEF_SHRUBLAND
Definition WsfMIT_ClutterStrength.hpp:50
@ cLOW_RELIEF_FOREST
Definition WsfMIT_ClutterStrength.hpp:45
Polarization
Polarization of the electromagnetic wave.
Definition WsfEM_Types.hpp:21
WsfOpticalAttenuation::Table Table
Definition WsfOpticalAttenuationTables.hpp:33
Copyrights Multiple, All Rights Reserved