WSF
wsf::BistaticErrorModel Class Reference

#include <WsfBistaticErrorModel.hpp>

Inheritance diagram for wsf::BistaticErrorModel:
Collaboration diagram for wsf::BistaticErrorModel:

Classes

struct  TransmitterKey
struct  BistaticMeasurement

Public Member Functions

 BistaticErrorModel ()
 ~BistaticErrorModel () override=default
BistaticErrorModelClone () const override
 Create a clone of "this" object.
bool ProcessInput (UtInput &aInput) override
bool Initialize (WsfSensorMode *aSensorModePtr) override
void LoadPositionSigmaTable (UtInput &aInput)
Public Member Functions inherited from wsf::StandardSensorErrorModel
StandardSensorErrorModelClone () const override
 Create a clone of "this" object.
bool ProcessInput (UtInput &aInput) override
bool IsStandardModel () const final
void SetSigmas (const Sigmas &aSigmas)
const SigmasGetSigmas () const
void SetAzErrorStdDev (double aAzErrorStdDev)
void SetElErrorStdDev (double aElErrorStdDev)
void SetRangeErrorStdDev (double aRangeErrorStdDev)
void SetRangeRateErrorStdDev (double aRangeRateErrorStdDev)
std::unique_ptr< SphericalMeasurementErrorsComputeMeasurementErrors (WsfSensorResult &aResult) const override
void ApplyMeasurementErrors (const SphericalMeasurementErrors &aErrors, WsfSensorResult &aResult) override
Public Member Functions inherited from wsf::SensorErrorModelBase
virtual void ApplyMeasurementErrors (WsfSensorResult &aResult)=0
virtual bool IsNullModel () const
 Is this a null model (i.e., ApplyMeasurementErrors has no effect).
bool DebugEnabled () const
WsfSensorModeGetSensorMode () const
void SetSensorMode (WsfSensorMode *aSensorModePtr)
Public Member Functions inherited from WsfObject
 WsfObject ()
 This is the constructor for the WsfObject class.
 ~WsfObject () override
 This is the destructor for the WsfObject class.
const char * GetScriptClassName () const override
const std::string & GetType () const
WsfStringId GetTypeId () const
 Get the string ID of the 'type' of the object.
void SetType (WsfStringId aType)
const std::string & GetBaseType () const
WsfStringId GetBaseTypeId () const
const TypeListGetTypeList () const
bool IsA_TypeOf (WsfStringId aType) const
WsfObjectoperator= (const WsfObject &aRhs)
 Assignment operator.
template<typename T>
void Serialize (T &aBuff)
 For XIO (de)serialization.
const std::string & GetName () const
WsfStringId GetNameId () const
void SetName (WsfStringId aName)

Static Public Member Functions

static std::unique_ptr< SensorErrorModelBaseObjectFactory (const std::string &aTypeName)
Static Public Member Functions inherited from wsf::StandardSensorErrorModel
static std::unique_ptr< SensorErrorModelBaseObjectFactory (const std::string &aTypeName)

Protected Member Functions

 BistaticErrorModel (const BistaticErrorModel &aSrc)=default
SphericalMeasurementErrors GetSphericalErrorStdDev (ut::Random &aRandom, WsfSensorResult &aResult, const Sigmas &aSigmas) const override
Sigmas GetBistaticSphericalErrorStdDev (BistaticMeasurement &mMeasurement) const
 WsfObject (const WsfObject &aSrc)
 Copy constructor (for Clone()).

Protected Attributes

double mTsErrorStdDev
double mTxErrorStdDev
bool mRealBlurring
Sigmas mInitialSigmas
 The initial spherical standard deviations provided by the sensor mode.
std::map< TransmitterKey, UtVec3d > mPositionDeltaMap

Additional Inherited Members

Public Types inherited from wsf::SensorErrorModelBase
using SensorModelTypes = WsfObjectTypeList<SensorErrorModelBase>
Public Types inherited from WsfObject
typedef std::vector< WsfStringIdTypeList
 The list of types returned by GetTypeList.

Constructor & Destructor Documentation

◆ BistaticErrorModel() [1/2]

wsf::BistaticErrorModel::BistaticErrorModel ( )

◆ ~BistaticErrorModel()

wsf::BistaticErrorModel::~BistaticErrorModel ( )
overridedefault

◆ BistaticErrorModel() [2/2]

wsf::BistaticErrorModel::BistaticErrorModel ( const BistaticErrorModel & aSrc)
protecteddefault

Member Function Documentation

◆ Clone()

BistaticErrorModel * wsf::BistaticErrorModel::Clone ( ) const
overridevirtual

Create a clone of "this" object.

Implements wsf::SensorErrorModelBase.

References BistaticErrorModel().

Referenced by ~BistaticErrorModel().

◆ GetBistaticSphericalErrorStdDev()

◆ GetSphericalErrorStdDev()

SphericalMeasurementErrors wsf::BistaticErrorModel::GetSphericalErrorStdDev ( ut::Random & aRandom,
WsfSensorResult & aResult,
const Sigmas & aSigmas ) const
overrideprotectedvirtual

Specifically compute normally distributed polar measurement errors based on the given sensor result and set of standard deviations.

Parameters
aRandomThe random number generator used to generate the errors.
aResultThe sensing chance result that may be used to help compute the sensor errors.
aSigmasThe set of standard deviations used to compute the sensor errors.
Note
The sensor result may be modified by this method.
Once the deprecated WsfSensorMode::ComputeMeasurementErrors is removed, this method can be made protected.

Reimplemented from wsf::StandardSensorErrorModel.

References WsfEM_Antenna::ConvertNED_VectorToWCS(), WsfTypes::EnumToString(), WsfEM_XmtrRcvr::GetAntenna(), WsfEM_Antenna::GetArticulatedPart(), GetBistaticSphericalErrorStdDev(), WsfEM_Antenna::GetLocationWCS(), WsfEM_XmtrRcvr::GetPlatform(), WsfEM_Interaction::GetReceiver(), WsfEM_Antenna::GetRelativeLocationWCS(), WsfPlatform::GetSide(), WsfPlatform::GetSpatialDomain(), WsfEM_Interaction::GetTarget(), WsfEM_Interaction::GetTransmitter(), wsf::BistaticErrorModel::BistaticMeasurement::mAz, WsfEM_Interaction::RelativeData::mAz, wsf::SphericalMeasurementErrors::mAzError, wsf::StandardSensorErrorModel::Sigmas::mAzErrorStdDev, wsf::BistaticErrorModel::TransmitterKey::mDomain, wsf::BistaticErrorModel::BistaticMeasurement::mEl, WsfEM_Interaction::RelativeData::mEl, wsf::SphericalMeasurementErrors::mElError, wsf::StandardSensorErrorModel::Sigmas::mElErrorStdDev, WsfSensorResult::mMeasurement, mPositionDeltaMap, WsfEM_Interaction::RelativeData::mRange, wsf::SphericalMeasurementErrors::mRangeError, wsf::StandardSensorErrorModel::Sigmas::mRangeErrorStdDev, wsf::SphericalMeasurementErrors::mRangeRateError, wsf::StandardSensorErrorModel::Sigmas::mRangeRateErrorStdDev, WsfEM_Interaction::mRcvrToTgt, WsfEM_Interaction::mRcvrToXmtr, mRealBlurring, wsf::BistaticErrorModel::BistaticMeasurement::mRng, wsf::BistaticErrorModel::TransmitterKey::mSide, wsf::BistaticErrorModel::BistaticMeasurement::mTransmitterPositionPCS, wsf::BistaticErrorModel::BistaticMeasurement::mTransmitterPositionSigma, wsf::BistaticErrorModel::BistaticMeasurement::mTs, mTsErrorStdDev, wsf::BistaticErrorModel::BistaticMeasurement::mTx, mTxErrorStdDev, and WsfEM_Interaction::mXmtrToTgt.

Referenced by BistaticErrorModel().

◆ Initialize()

bool wsf::BistaticErrorModel::Initialize ( WsfSensorMode * aSensorModePtr)
overridevirtual

Perform any necessary initialization.

Parameters
aSensorModePtrThe sensor mode used by this error model.

Reimplemented from wsf::SensorErrorModelBase.

References wsf::StandardSensorErrorModel::GetSigmas(), wsf::SensorErrorModelBase::Initialize(), and mInitialSigmas.

Referenced by ~BistaticErrorModel().

◆ LoadPositionSigmaTable()

◆ ObjectFactory()

std::unique_ptr< SensorErrorModelBase > wsf::BistaticErrorModel::ObjectFactory ( const std::string & aTypeName)
static

Factory method for WsfSensorErrorModelTypes. This is called by WsfSensorErrorModelTypes::LoadType to determine if a pattern represented by this class is being requested.

Referenced by WsfMilExtension::AddedToScenario(), and ~BistaticErrorModel().

◆ ProcessInput()

bool wsf::BistaticErrorModel::ProcessInput ( UtInput & aInput)
overridevirtual

Process input from a generic source.

Examine the current input command. If it is NOT one of the commands recognized by this class then it simply returns 'false'. If it is one of the commands recognized by this class then it processes the command and returns 'true'.

Parameters
aInputa reference to a UtInput object.
Returns
'true' if the command was one recognized by the class or 'false' if not.
Exceptions
UtInput::ExceptionBase(or an object derived from it) if the command was recognized but contains some sort of error.
Note
If a derived class does not recognize the command (i.e.: the return value is false) then it should call the base class ProcessInput method. This chain should continue until either the command is recognized or the top-level base class is encountered.

Reimplemented from WsfObject.

References LoadPositionSigmaTable(), mRealBlurring, mTsErrorStdDev, mTxErrorStdDev, and wsf::StandardSensorErrorModel::ProcessInput().

Referenced by ~BistaticErrorModel().

Member Data Documentation

◆ mInitialSigmas

Sigmas wsf::BistaticErrorModel::mInitialSigmas
protected

The initial spherical standard deviations provided by the sensor mode.

Referenced by GetBistaticSphericalErrorStdDev(), and Initialize().

◆ mPositionDeltaMap

std::map<TransmitterKey, UtVec3d> wsf::BistaticErrorModel::mPositionDeltaMap
protected

A dual key map of transmitter platform to the sigmas associated with its location measurement sigmas. Note that the transmitter in a bistatic transaction can be on the red/opposite team. The comparable key is a paring of the side and domain.

Referenced by BistaticErrorModel(), GetSphericalErrorStdDev(), and LoadPositionSigmaTable().

◆ mRealBlurring

bool wsf::BistaticErrorModel::mRealBlurring
protected

The range can be blurred in 2 ways. Realistically based on this model, but this causes multiplicative noise vs additive, and our current filters may not track the measurement outputs. Conversely, we can blur it in an additive way so the resulting track will simulate a system that can process this type of noise.

Referenced by BistaticErrorModel(), GetSphericalErrorStdDev(), and ProcessInput().

◆ mTsErrorStdDev

double wsf::BistaticErrorModel::mTsErrorStdDev
protected

The reflected time measurement sigma. The reflected time, or scatter time (ts), is the time of reception of a signal that travels from transmitter to target and then to receiver.

Referenced by BistaticErrorModel(), GetBistaticSphericalErrorStdDev(), GetSphericalErrorStdDev(), and ProcessInput().

◆ mTxErrorStdDev

double wsf::BistaticErrorModel::mTxErrorStdDev
protected

The direct time measurement sigma. The direct time is the time of reception of a signal that travels from transmitter directly to the receiver.

Referenced by BistaticErrorModel(), GetBistaticSphericalErrorStdDev(), GetSphericalErrorStdDev(), and ProcessInput().


The documentation for this class was generated from the following files:
Copyrights Multiple, All Rights Reserved