12#ifndef WSFENVIRONMENT_HPP
13#define WSFENVIRONMENT_HPP
15#include "wsf_export.h"
19#include "TblLookup.hpp"
22class CentralBodyEllipsoid;
24#include "UtCentralPoint.hpp"
25#include "UtCloneablePtr.hpp"
116 LandCover GetLandCover(
double aLat,
double aLon)
const;
118 LandFormation GetLandFormation(
double aLat,
double aLon)
const;
133 void GetWind(
double aLat,
double aLon,
double aAlt,
double& aWindHeading,
double& aWindSpeed);
140 aLowerAlt = mCloudLowerAlt;
141 aUpperAlt = mCloudUpperAlt;
144 bool LOS_ClearOfClouds(
const double aEmissionPointWCS[3],
const double aTargetPointWCS[3])
const;
146 bool LOS_AdjustedClearOfClouds(
const double aEmissionPointWCS[3],
double aTargetPointWCS[3])
const;
162 void CreateWindAltitudeTable();
168 bool UsingPolarOffsetAngles()
const;
172 const ut::CentralBody&
GetCentralBody()
const {
return mCentralPointPtr->GetAsCentralBody(); }
174 const ut::CentralBodyEllipsoid& GetEllipsoid()
const;
176 void GetPolarOffsetAngles(
double& aPolarOffsetAngleX,
double& aPolarOffsetAngleY)
const;
179 ut::CentralBody& GetCentralBodyP() {
return mCentralPointPtr->GetAsCentralBody(); }
181 LandCover mLandCover;
182 LandFormation mLandFormation;
185 double mWindDirection;
187 double mCloudLowerAlt;
188 double mCloudUpperAlt;
189 double mCloudWaterDensity;
191 double mRainUpperAlt;
192 double mDustStormVisibility;
193 double mPolarOffsetAngleX;
194 double mPolarOffsetAngleY;
196 WindAltitudeTable* mWindAltitudeTablePtr;
197 GetLandCoverFunction mGetLandCoverFunction;
199 WsfNoiseCloudTypes* mNoiseCloudTypes;
200 ut::CloneablePtr<ut::CentralPoint> mCentralPointPtr;
#define WSF_EXPORT
Definition WsfXIO_Export.hpp:35
A table to get wind direction and speed as a function of altitude above MSL.
Definition WsfEnvironment.hpp:93
TblLookupLU< double > mAltLookup
Definition WsfEnvironment.hpp:100
TblIndVarU< double > mAltitude
Definition WsfEnvironment.hpp:97
WindAltitudeTable()
Constructor for the WindAltitudeTable.
Definition WsfEnvironment.cpp:434
TblDepVar1< double > mWindSpeed
Definition WsfEnvironment.hpp:99
TblDepVar1< double > mWindDirection
Definition WsfEnvironment.hpp:98
void SetWindSpeed(double aSpeed)
Definition WsfEnvironment.hpp:127
double GetCloudWaterDensity() const
Definition WsfEnvironment.hpp:150
const ut::CentralBody & GetCentralBody() const
Definition WsfEnvironment.hpp:172
LandCover
Definition WsfEnvironment.hpp:42
@ cFOREST_MIXED
Definition WsfEnvironment.hpp:50
@ cFOREST_BLOCKCUT
Definition WsfEnvironment.hpp:52
@ cURBAN
Definition WsfEnvironment.hpp:44
@ cWETLAND_FORESTED
Definition WsfEnvironment.hpp:53
@ cFOREST_DECIDUOUS
Definition WsfEnvironment.hpp:48
@ cRANGELAND_SHRUB
Definition WsfEnvironment.hpp:47
@ cBARREN
Definition WsfEnvironment.hpp:55
@ cNUM_LAND_COVERS
Definition WsfEnvironment.hpp:57
@ cRANGELAND_HERBACEOUS
Definition WsfEnvironment.hpp:46
@ cGENERAL
Definition WsfEnvironment.hpp:43
@ cFOREST_CONIFEROUS
Definition WsfEnvironment.hpp:49
@ cWATER
Definition WsfEnvironment.hpp:56
@ cFOREST_CLEARCUT
Definition WsfEnvironment.hpp:51
@ cAGRICULTURAL
Definition WsfEnvironment.hpp:45
@ cWETLAND_NONFORESTED
Definition WsfEnvironment.hpp:54
WsfEnvironment(WsfScenario &aScenario)
Definition WsfEnvironment.cpp:25
SeaState
Definition WsfEnvironment.hpp:80
@ cVERY_ROUGH
Definition WsfEnvironment.hpp:87
@ cCALM_RIPPLED
Definition WsfEnvironment.hpp:82
@ cSLIGHT
Definition WsfEnvironment.hpp:84
@ cMODERATE
Definition WsfEnvironment.hpp:85
@ cNUM_SEA_STATES
Definition WsfEnvironment.hpp:88
@ cSMOOTH
Definition WsfEnvironment.hpp:83
@ cROUGH
Definition WsfEnvironment.hpp:86
@ cCALM_GLASSY
Definition WsfEnvironment.hpp:81
WsfEnvironment & operator=(const WsfEnvironment &)=delete
void GetCloudLevel(double &aLowerAlt, double &aUpperAlt) const
Definition WsfEnvironment.hpp:138
double GetWindSpeed() const
Definition WsfEnvironment.hpp:125
LandFormation GetLandFormation() const
Definition WsfEnvironment.hpp:114
void SetWindDirection(double aDirection)
Definition WsfEnvironment.hpp:131
const ut::CentralPoint & GetCentralPoint() const
Definition WsfEnvironment.hpp:170
double GetRainUpperLevel() const
Definition WsfEnvironment.hpp:154
LandFormation
Definition WsfEnvironment.hpp:63
@ cMODERATELY_STEEP
Definition WsfEnvironment.hpp:71
@ cROLLING
Definition WsfEnvironment.hpp:68
@ cLEVEL
Definition WsfEnvironment.hpp:65
@ cHUMMOCKY
Definition WsfEnvironment.hpp:69
@ cNUM_LAND_FORMS
Definition WsfEnvironment.hpp:74
@ cSTEEP
Definition WsfEnvironment.hpp:72
@ cUNDULATING
Definition WsfEnvironment.hpp:67
@ cRIDGED
Definition WsfEnvironment.hpp:70
@ cINVALID
Definition WsfEnvironment.hpp:64
@ cBROKEN
Definition WsfEnvironment.hpp:73
@ cINCLINED
Definition WsfEnvironment.hpp:66
WsfEnvironment(const WsfEnvironment &)=delete
SeaState GetSeaState() const
Definition WsfEnvironment.hpp:123
double GetWindDirection() const
Definition WsfEnvironment.hpp:129
void SetLandCoverStrategy(const GetLandCoverFunction &aFunction)
Definition WsfEnvironment.cpp:552
std::function< LandCover(double, double)> GetLandCoverFunction
Definition WsfEnvironment.hpp:120
double GetDustStormVisibility() const
Definition WsfEnvironment.hpp:160
bool ProcessInput(UtInput &aInput)
Definition WsfEnvironment.cpp:81
double GetRainRate() const
Definition WsfEnvironment.hpp:158
WindAltitudeTable * GetWindAltitudeTablePtr()
Definition WsfEnvironment.hpp:164
LandCover GetLandCover() const
Global Land Cover / Land Form methods.
Definition WsfEnvironment.hpp:112
WsfNoiseCloudTypes & GetNoiseCloudTypes() const
Definition WsfEnvironment.hpp:166
Definition WsfNoiseCloud.hpp:76
Contains the data required to create a simulation, and acts as the entry point for input file process...
Definition WsfScenario.hpp:111
Definition WsfSensorErrorModel.hpp:21