WSF
WsfClusterCorrelation Class Reference

#include <WsfClusterCorrelation.hpp>

Inheritance diagram for WsfClusterCorrelation:
Collaboration diagram for WsfClusterCorrelation:

Public Member Functions

 WsfClusterCorrelation (WsfScenario &aScenario)
 ~WsfClusterCorrelation () override
bool ProcessInput (UtInput &aInput) override
bool Initialize (WsfTrackManager *aTrackManagerPtr) override
 Perform any necessary initialization.
WsfCorrelationStrategyClone () const override
 Create a clone of "this" object.
WsfLocalTrackCorrelateImpl (double aSimTime, const WsfTrack &aNonLocalTrack, WsfLocalTrackList &aTrackList) override
void ClusterRawTracksIntoLocalTracks (double aSimTime)
Public Member Functions inherited from WsfCorrelationStrategy
 ~WsfCorrelationStrategy () override=default
bool ProcessInput (UtInput &aInput) override
 Process input from a common source.
void NewTrackCorrelation (const WsfTrack &aRawTrack, const WsfLocalTrack &aLocalTrack)
WsfLocalTrackCorrelate (double aSimTime, const WsfTrack &aNonLocalTrack, WsfLocalTrackList &aTrackList)
const WsfTrackIdGetCorrelatedTrackId (const WsfTrackId &aRawTrackId) const
virtual void Decorrelate (const WsfTrackId &aRawTrackId)
 Allow the user to break an existing correlation.
void NotifyOfLocalTrackCorrelation (double aSimTime, const WsfLocalTrack &aLocalTrack, const WsfTrackId &aRawTrackId)
WsfTrackManagerGetTrackManager ()
 Return a reference to the track manager being accessed internally by this object.
void SetTrackManager (WsfTrackManager *aTrackManagerPtr)
WsfSimulationGetSimulation () const
bool TestCorrelation (const WsfTrack &aTrack1, const WsfTrack &aTrack2)
 Method to facilitate unit testing.
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)

'correlation / decorrelation' methods.

WsfLocalTrackGetCorrelatedTrack (std::vector< WsfTrack * > &aCluster)
WsfLocalTrackGetCorrelatedTrack (const WsfTrackId &aNonLocalTrackId)
 Gets the local track correlated with the raw track having id 'aNonLocalTrackId'.
void MakeCorrelated (const WsfTrackId &aNonLocalTrackId, WsfLocalTrack &aLocalTrack)
 Correlates the raw track having id 'aNonLocalTrackId' with 'aLocalTrack'.
void MakeCorrelated (std::vector< WsfTrack * > &aCluster, WsfLocalTrack &aLocalTrack)
 Correlates all raw tracks in 'aClusterPtr' with 'aLocalTrack'.
void MakeDecorrelated (const WsfTrackId &aNonLocalTrackId, WsfLocalTrack &aLocalTrack)
 Decorrelates the raw track having id 'aNonLocalTrackId' from 'aLocalTrack'.
void MakeDecorrelated (WsfLocalTrack &aLocalTrack)
 Decorrelates all raw tracks fused with 'aLocalTrack' from it.
void MakeDecorrelated (std::vector< WsfTrack * > &aCluster)
 Decorrelates all raw tracks in 'aClusterPtr' from the local tracks they are fused to.
double GetMaxMeasurementError (double aSimTime, const WsfTrack &aTrack)
double GetUpdateInterval () const
double GetLastClusterUpdateTime () const

Additional Inherited Members

Public Types inherited from WsfCorrelationStrategy
typedef WsfObjectTypeList< WsfCorrelationStrategyCorrelationStrategyTypes
Public Types inherited from WsfObject
typedef std::vector< WsfStringIdTypeList
 The list of types returned by GetTypeList.
Protected Member Functions inherited from WsfCorrelationStrategy
 WsfCorrelationStrategy ()
 WsfCorrelationStrategy (const WsfCorrelationStrategy &aSrc)
WsfCorrelationStrategyoperator= (const WsfCorrelationStrategy &aRhs)
 WsfObject (const WsfObject &aSrc)
 Copy constructor (for Clone()).
Protected Attributes inherited from WsfCorrelationStrategy
std::map< WsfTrackId, WsfTrackIdmCorrelationMap

Detailed Description

An implementation of WsfCorrelationStrategy for cluster correlation. The WsfClusterCorrelation class uses clustering to determine how - raw tracks should be correlated into local tracks [system tracks].

See also
WsfCluster
WsfClusterManager

Constructor & Destructor Documentation

◆ WsfClusterCorrelation()

WsfClusterCorrelation::WsfClusterCorrelation ( WsfScenario & aScenario)

WsfClusterCorrelation uses WsfClusterManager to perform dynamic clustering on raw tracks. Clusters of raw tracks are then treated as local tracks [system tracks]. Newly computed clusters are best matched to previous local tracks, or create new local tracks. The H-Tree Complete-Linkage clustering algorithm is used. WsfClusterCorrelation uses sensor error limits to control the WsfClusterManager's clustering

References WsfCorrelationStrategy::WsfCorrelationStrategy().

Referenced by Clone().

◆ ~WsfClusterCorrelation()

WsfClusterCorrelation::~WsfClusterCorrelation ( )
override

Member Function Documentation

◆ Clone()

WsfCorrelationStrategy * WsfClusterCorrelation::Clone ( ) const
inlineoverridevirtual

Create a clone of "this" object.

Implements WsfCorrelationStrategy.

References WsfClusterCorrelation(), and WsfCorrelationStrategy::WsfCorrelationStrategy().

◆ ClusterRawTracksIntoLocalTracks()

◆ CorrelateImpl()

WsfLocalTrack * WsfClusterCorrelation::CorrelateImpl ( double aSimTime,
const WsfTrack & aNonLocalTrack,
WsfLocalTrackList & aTrackList )
overridevirtual

Given a non-local track update (or measurement), find the track in the track list that correlates with the given track or measurement.

Implements WsfCorrelationStrategy.

References ClusterRawTracksIntoLocalTracks(), GetCorrelatedTrack(), GetMaxMeasurementError(), WsfTrack::GetTrackId(), and GetUpdateInterval().

◆ GetCorrelatedTrack() [1/2]

WsfLocalTrack * WsfClusterCorrelation::GetCorrelatedTrack ( const WsfTrackId & aNonLocalTrackId)

Gets the local track correlated with the raw track having id 'aNonLocalTrackId'.

References WsfTrackManager::FindTrack(), WsfCorrelationStrategy::GetTrackManager(), and WsfCorrelationStrategy::mCorrelationMap.

◆ GetCorrelatedTrack() [2/2]

WsfLocalTrack * WsfClusterCorrelation::GetCorrelatedTrack ( std::vector< WsfTrack * > & aCluster)

Gets a local track that is correlated with a raw track in 'aClusterPtr' Returns the first one found, usually from the first raw track in the cluster's member list

References WsfTrackManager::FindTrack(), WsfCorrelationStrategy::GetTrackManager(), and WsfCorrelationStrategy::mCorrelationMap.

Referenced by CorrelateImpl(), and MakeDecorrelated().

◆ GetLastClusterUpdateTime()

double WsfClusterCorrelation::GetLastClusterUpdateTime ( ) const
inline

◆ GetMaxMeasurementError()

double WsfClusterCorrelation::GetMaxMeasurementError ( double aSimTime,
const WsfTrack & aTrack )

References WsfTrack::GetSensorNameId(), and ok.

Referenced by CorrelateImpl().

◆ GetUpdateInterval()

double WsfClusterCorrelation::GetUpdateInterval ( ) const
inline

Referenced by CorrelateImpl(), and Initialize().

◆ Initialize()

◆ MakeCorrelated() [1/2]

void WsfClusterCorrelation::MakeCorrelated ( const WsfTrackId & aNonLocalTrackId,
WsfLocalTrack & aLocalTrack )

Correlates the raw track having id 'aNonLocalTrackId' with 'aLocalTrack'.

References WsfLocalTrack::Correlate(), WsfTrack::GetTrackId(), and WsfCorrelationStrategy::mCorrelationMap.

Referenced by ClusterRawTracksIntoLocalTracks(), and MakeCorrelated().

◆ MakeCorrelated() [2/2]

void WsfClusterCorrelation::MakeCorrelated ( std::vector< WsfTrack * > & aCluster,
WsfLocalTrack & aLocalTrack )

Correlates all raw tracks in 'aClusterPtr' with 'aLocalTrack'.

References MakeCorrelated(), and trackPtr.

◆ MakeDecorrelated() [1/3]

void WsfClusterCorrelation::MakeDecorrelated ( const WsfTrackId & aNonLocalTrackId,
WsfLocalTrack & aLocalTrack )

Decorrelates the raw track having id 'aNonLocalTrackId' from 'aLocalTrack'.

References WsfCorrelationStrategy::Decorrelate(), and WsfLocalTrack::Decorrelate().

Referenced by ClusterRawTracksIntoLocalTracks(), MakeDecorrelated(), and MakeDecorrelated().

◆ MakeDecorrelated() [2/3]

void WsfClusterCorrelation::MakeDecorrelated ( std::vector< WsfTrack * > & aCluster)

Decorrelates all raw tracks in 'aClusterPtr' from the local tracks they are fused to.

References GetCorrelatedTrack(), MakeDecorrelated(), and trackPtr.

◆ MakeDecorrelated() [3/3]

void WsfClusterCorrelation::MakeDecorrelated ( WsfLocalTrack & aLocalTrack)

Decorrelates all raw tracks fused with 'aLocalTrack' from it.

References WsfLocalTrack::GetRawTrackIds(), and MakeDecorrelated().

◆ ProcessInput()

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


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