WSF
WsfDefaultFusion Class Reference

#include <WsfDefaultFusion.hpp>

Inheritance diagram for WsfDefaultFusion:
Collaboration diagram for WsfDefaultFusion:

Public Member Functions

 WsfDefaultFusion (const WsfScenario &aScenario, bool aIsWeightedAverage=false)
 ~WsfDefaultFusion () override=default
bool ProcessInput (UtInput &aInput) override
bool Initialize (WsfTrackManager *aTrackManagerPtr) override
 Perform any necessary initialization.
WsfFusionStrategyClone () const override
 Create a clone of "this" object.
bool UpdateLocalTrackFromNonLocalTrack (double aSimTime, WsfLocalTrack &aLocalTrack, const WsfTrack &aNonLocalTrack) override
bool UpdateLocalResultFromNonLocalResult (double aSimTime, WsfLocalSensorResult &aLocalResult, const WsfSensorResult &aNonLocalResult) override
void ReviewTrack (WsfLocalTrack &aLocalTrack) override
bool UpdateNonKinematicData (double aSimTime, WsfLocalTrack &aLocalTrack, const WsfTrack &aNonLocalTrack) override
Public Member Functions inherited from WsfFusionStrategy
 ~WsfFusionStrategy () override=default
bool ProcessInput (UtInput &aInput) override
 Process input from a common source.
virtual bool Initialize (WsfProcessor *aProcessorPtr)
 Perform any necessary initialization.
virtual bool DebugEnabled () const
 Return whether debug is enabled for this instance.
virtual bool InitializeLocalTrackFromNonLocalTrack (double aSimTime, WsfLocalTrack &aLocalTrack, const WsfTrack &aNonLocalTrack)
virtual bool InitializeLocalResultFromNonLocalResult (double aSimTime, WsfLocalSensorResult &aLocalResult, const WsfSensorResult &aNonLocalResult)
WsfSimulationGetSimulation () const
double GetSimTime ()
WsfPlatformGetPlatform () const
WsfTrackManagerGetTrackManager ()
 Return a reference to the track manager being accessed internally by this object.
const WsfTrackManagerGetTrackManager () const
WsfProcessorGetProcessor ()
 Return a reference to the processor being accessed internally by this object.
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 void ReviewTrack (WsfTrackManager &aTrackManager, WsfLocalTrack &aLocalTrack)
Static Public Member Functions inherited from WsfFusionStrategy
static bool UpdateNonKinematicData (double aSimTime, WsfTrackManager &aTracManager, WsfLocalTrack &aLocalTrack, const WsfTrack &aNonLocalTrack)

Protected Member Functions

 WsfDefaultFusion (const WsfDefaultFusion &aSrc)
WsfDefaultFusionoperator= (const WsfDefaultFusion &)=delete
bool UpdateIFF_Status (double aSimTime, WsfLocalTrack &aLocalTrack, const WsfTrack &aNonLocalTrack) override
bool UpdateSide (double aSimTime, WsfLocalTrack &aLocalTrack, const WsfTrack &aNonLocalTrack) override
bool UpdateType (double aSimTime, WsfLocalTrack &aLocalTrack, const WsfTrack &aNonLocalTrack) override
bool UpdateSpatialDomain (double aSimTime, WsfLocalTrack &aLocalTrack, const WsfTrack &aNonLocalTrack) override
bool UpdateTrackQuality (double aSimTime, WsfLocalTrack &aLocalTrack, const WsfTrack &aNonLocalTrack) override
bool UpdateSignalToNoise (double aSimTime, WsfLocalTrack &aLocalTrack, const WsfTrack &aNonLocalTrack) override
bool UpdateSignalList (double aSimTime, WsfLocalTrack &aLocalTrack, const WsfTrack &aNonLocalTrack) override
bool UpdateAuxData (double aSimTime, WsfLocalTrack &aLocalTrack, const WsfTrack &aNonLocalTrack) override
void SetWeightedAverage (bool aIsWeightedAverage)
void PerformMirrorTrackUpdate (double aSimTime, WsfLocalTrack &aLocalTrack, const WsfTrack &aNonLocalTrack)
bool PerformStandardTrackUpdate (double aSimTime, WsfLocalTrack &aLocalTrack, const WsfTrack &aNonLocalTrack)
Protected Member Functions inherited from WsfFusionStrategy
 WsfFusionStrategy ()
 WsfFusionStrategy (const WsfFusionStrategy &aSrc)
WsfFusionStrategyoperator= (const WsfFusionStrategy &)=delete
void SetTrackManager (WsfTrackManager &aTrackManager)
 Set the track manager reference.
void SetProcessor (WsfProcessor &aProcessor)
 Set the processor reference.
 WsfObject (const WsfObject &aSrc)
 Copy constructor (for Clone()).

Static Protected Member Functions

static void ReviewIFF (WsfTrackManager &aTrackManager, WsfLocalTrack &aLocalTrack)
static void ReviewTrackQuality (WsfTrackManager &aTrackManager, WsfLocalTrack &aLocalTrack)
Static Protected Member Functions inherited from WsfFusionStrategy
static void FuseEstimates (const UtMatrixd &aEstimate1, const UtMatrixd &aEstimate2, const UtMatrixd &aCovar1, const UtMatrixd &aCovar2, UtMatrixd &aEstimateOut, UtMatrixd &aCovarOut)
static void NormalizeAzRangeEstimate (const UtMatrixd &aEstimate, const UtMatrixd &aCovar, const double &aElevation, UtMatrixd &aNormEstimate, UtMatrixd &aNormCovar)
static void NormalizeElRangeEstimate (const UtMatrixd &aEstimate, const UtMatrixd &aCovar, const double &aAzimuth, UtMatrixd &aNormEstimate, UtMatrixd &aNormCovar)

Additional Inherited Members

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

Detailed Description

The wsf standard implementation of WsfFusionStratgey for track fusion. This class implements a series of standard algorithms for fusion of similar and complementary information. The one option for use of these algorithms is whether to use "replacement" or "weighted average" fusion. These choices are relevant when fusing location-based state data. For replacement fusion, a track update replaces the location data, whereas for weighted-average fusion, the location data are computed using the "weight" of the inverse covariance matrix.

Constructor & Destructor Documentation

◆ WsfDefaultFusion() [1/2]

WsfDefaultFusion::WsfDefaultFusion ( const WsfScenario & aScenario,
bool aIsWeightedAverage = false )

◆ ~WsfDefaultFusion()

WsfDefaultFusion::~WsfDefaultFusion ( )
overridedefault

◆ WsfDefaultFusion() [2/2]

WsfDefaultFusion::WsfDefaultFusion ( const WsfDefaultFusion & aSrc)
protected

Member Function Documentation

◆ Clone()

WsfFusionStrategy * WsfDefaultFusion::Clone ( ) const
inlineoverridevirtual

Create a clone of "this" object.

Implements WsfFusionStrategy.

Reimplemented in WsfMTT_Fusion, and WsfOrbitDeterminationFusion.

References WsfDefaultFusion(), and WsfFusionStrategy::WsfFusionStrategy().

◆ Initialize()

bool WsfDefaultFusion::Initialize ( WsfTrackManager * aTrackManagerPtr)
overridevirtual

◆ operator=()

WsfDefaultFusion & WsfDefaultFusion::operator= ( const WsfDefaultFusion & )
protecteddelete

◆ PerformMirrorTrackUpdate()

◆ PerformStandardTrackUpdate()

◆ ProcessInput()

bool WsfDefaultFusion::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.

Reimplemented in WsfOrbitDeterminationFusion.

Referenced by WsfOrbitDeterminationFusion::ProcessInput().

◆ ReviewIFF()

void WsfDefaultFusion::ReviewIFF ( WsfTrackManager & aTrackManager,
WsfLocalTrack & aLocalTrack )
staticprotected

◆ ReviewTrack() [1/2]

void WsfDefaultFusion::ReviewTrack ( WsfLocalTrack & aLocalTrack)
overridevirtual

Review a track, adjusting parameters based on available information. Usually these are IFF and track quality. This review is usually performed after a track de-correlation.

Implements WsfFusionStrategy.

Reimplemented in WsfOrbitDeterminationFusion.

References WsfFusionStrategy::GetTrackManager(), ReviewIFF(), ReviewTrackQuality(), and WsfLocalTrack::UpdateSignalList().

◆ ReviewTrack() [2/2]

void WsfDefaultFusion::ReviewTrack ( WsfTrackManager & aTrackManager,
WsfLocalTrack & aLocalTrack )
static

◆ ReviewTrackQuality()

void WsfDefaultFusion::ReviewTrackQuality ( WsfTrackManager & aTrackManager,
WsfLocalTrack & aLocalTrack )
staticprotected

◆ SetWeightedAverage()

void WsfDefaultFusion::SetWeightedAverage ( bool aIsWeightedAverage)
inlineprotected

◆ UpdateAuxData()

bool WsfDefaultFusion::UpdateAuxData ( double aSimTime,
WsfLocalTrack & aLocalTrack,
const WsfTrack & aNonLocalTrack )
overrideprotectedvirtual

◆ UpdateIFF_Status()

bool WsfDefaultFusion::UpdateIFF_Status ( double aSimTime,
WsfLocalTrack & aLocalTrack,
const WsfTrack & aNonLocalTrack )
overrideprotectedvirtual

◆ UpdateLocalResultFromNonLocalResult()

bool WsfDefaultFusion::UpdateLocalResultFromNonLocalResult ( double aSimTime,
WsfLocalSensorResult & aLocalResult,
const WsfSensorResult & aNonLocalResult )
overridevirtual

Fuse a non-local result with an existing local result.

Returns
true if the local result was updated with non-local result data or false if the non-local result data was out-of-date.

The result will be marked as non-3d to prevent weighted-average fusion (the covariance matrix cannot be computed from sensor errors).

Implements WsfFusionStrategy.

Reimplemented in WsfOrbitDeterminationFusion.

References WsfFusionStrategy::DebugEnabled(), WsfObject::GetName(), WsfObject::GetNameId(), WsfEM_XmtrRcvr::GetPlatform(), WsfFusionStrategy::GetPlatform(), WsfEM_Interaction::GetReceiver(), WsfEM_Interaction::GetTarget(), WsfMeasurement::KinematicUpdate(), WsfSensorResult::mMeasurement, WsfLocalSensorResult::mMeasurementCount, WsfMeasurement::Update(), and WsfPlatform::Update().

◆ UpdateLocalTrackFromNonLocalTrack()

bool WsfDefaultFusion::UpdateLocalTrackFromNonLocalTrack ( double aSimTime,
WsfLocalTrack & aLocalTrack,
const WsfTrack & aNonLocalTrack )
overridevirtual

Fuse a non-local track with an existing local track.

Returns
true if the local track was updated with non-local track data or false if the non-local track data was out-of-date.

Implements WsfFusionStrategy.

Reimplemented in WsfMTT_Fusion, and WsfOrbitDeterminationFusion.

References WsfLocalTrack::IsMirrorTrack(), PerformMirrorTrackUpdate(), and PerformStandardTrackUpdate().

◆ UpdateNonKinematicData()

bool WsfDefaultFusion::UpdateNonKinematicData ( double aSimTime,
WsfLocalTrack & aLocalTrack,
const WsfTrack & aNonLocalTrack )
overridevirtual

A general-purpose method for updating the "non-kinematic" fields of the track (frequency, side, type, iff, track quality). TODO At some point we may want to break these out as individual, script-able methods, but only for default fusion.

Reimplemented from WsfFusionStrategy.

References WsfFusionStrategy::UpdateNonKinematicData().

Referenced by PerformStandardTrackUpdate().

◆ UpdateSide()

bool WsfDefaultFusion::UpdateSide ( double aSimTime,
WsfLocalTrack & aLocalTrack,
const WsfTrack & aNonLocalTrack )
overrideprotectedvirtual

Reimplemented from WsfFusionStrategy.

◆ UpdateSignalList()

bool WsfDefaultFusion::UpdateSignalList ( double aSimTime,
WsfLocalTrack & aLocalTrack,
const WsfTrack & aNonLocalTrack )
overrideprotectedvirtual

◆ UpdateSignalToNoise()

bool WsfDefaultFusion::UpdateSignalToNoise ( double aSimTime,
WsfLocalTrack & aLocalTrack,
const WsfTrack & aNonLocalTrack )
overrideprotectedvirtual

◆ UpdateSpatialDomain()

bool WsfDefaultFusion::UpdateSpatialDomain ( double aSimTime,
WsfLocalTrack & aLocalTrack,
const WsfTrack & aNonLocalTrack )
overrideprotectedvirtual

◆ UpdateTrackQuality()

bool WsfDefaultFusion::UpdateTrackQuality ( double aSimTime,
WsfLocalTrack & aLocalTrack,
const WsfTrack & aNonLocalTrack )
overrideprotectedvirtual

◆ UpdateType()

bool WsfDefaultFusion::UpdateType ( double aSimTime,
WsfLocalTrack & aLocalTrack,
const WsfTrack & aNonLocalTrack )
overrideprotectedvirtual

Reimplemented from WsfFusionStrategy.


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