|
WSF
|
#include <WsfClusterCorrelation.hpp>


Public Member Functions | |
| WsfClusterCorrelation (WsfScenario &aScenario) | |
| ~WsfClusterCorrelation () override | |
| bool | ProcessInput (UtInput &aInput) override |
| bool | Initialize (WsfTrackManager *aTrackManagerPtr) override |
| Perform any necessary initialization. | |
| WsfCorrelationStrategy * | Clone () const override |
| Create a clone of "this" object. | |
| WsfLocalTrack * | CorrelateImpl (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) |
| WsfLocalTrack * | Correlate (double aSimTime, const WsfTrack &aNonLocalTrack, WsfLocalTrackList &aTrackList) |
| const WsfTrackId & | GetCorrelatedTrackId (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) |
| WsfTrackManager & | GetTrackManager () |
| Return a reference to the track manager being accessed internally by this object. | |
| void | SetTrackManager (WsfTrackManager *aTrackManagerPtr) |
| WsfSimulation * | GetSimulation () 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 TypeList & | GetTypeList () const |
| bool | IsA_TypeOf (WsfStringId aType) const |
| WsfObject & | operator= (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. | |
| WsfLocalTrack * | GetCorrelatedTrack (std::vector< WsfTrack * > &aCluster) |
| WsfLocalTrack * | GetCorrelatedTrack (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< WsfCorrelationStrategy > | CorrelationStrategyTypes |
| Public Types inherited from WsfObject | |
| typedef std::vector< WsfStringId > | TypeList |
| The list of types returned by GetTypeList. | |
| Protected Member Functions inherited from WsfCorrelationStrategy | |
| WsfCorrelationStrategy () | |
| WsfCorrelationStrategy (const WsfCorrelationStrategy &aSrc) | |
| WsfCorrelationStrategy & | operator= (const WsfCorrelationStrategy &aRhs) |
| WsfObject (const WsfObject &aSrc) | |
| Copy constructor (for Clone()). | |
| Protected Attributes inherited from WsfCorrelationStrategy | |
| std::map< WsfTrackId, WsfTrackId > | mCorrelationMap |
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].
| 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().
|
override |
|
inlineoverridevirtual |
Create a clone of "this" object.
Implements WsfCorrelationStrategy.
References WsfClusterCorrelation(), and WsfCorrelationStrategy::WsfCorrelationStrategy().
| void WsfClusterCorrelation::ClusterRawTracksIntoLocalTracks | ( | double | aSimTime | ) |
References WsfTrackListT< T >::Clone(), WsfTrackManager::FindRawTrack(), WsfTrackManager::GetFilteredRawTrackList(), WsfGeoPoint::GetLocationWCS(), WsfTrackListT< T >::GetTrackCount(), WsfTrackManager::GetTrackCount(), WsfTrackListT< T >::GetTrackEntry(), WsfTrackManager::GetTrackEntry(), WsfCorrelationStrategy::GetTrackManager(), WsfTrack::GetUpdateTime(), WsfTrackManager::InitiateAndCorrelateTrack(), WsfTrack::KinematicUpdate(), MakeCorrelated(), MakeDecorrelated(), WsfTrackManager::NotifyOfLocalTrackInitiated(), and trackPtr.
Referenced by CorrelateImpl().
|
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().
| 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.
| 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().
|
inline |
| double WsfClusterCorrelation::GetMaxMeasurementError | ( | double | aSimTime, |
| const WsfTrack & | aTrack ) |
References WsfTrack::GetSensorNameId(), and ok.
Referenced by CorrelateImpl().
|
inline |
Referenced by CorrelateImpl(), and Initialize().
|
overridevirtual |
Perform any necessary initialization.
Reimplemented from WsfCorrelationStrategy.
References WsfSimulation::AddEvent(), WsfTrackManager::GetPlatform(), WsfSimulation::GetRandom(), WsfSimulation::GetSimTime(), WsfPlatform::GetSimulation(), WsfTrackManager::GetSimulation(), GetUpdateInterval(), and WsfCorrelationStrategy::Initialize().
| 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().
| void WsfClusterCorrelation::MakeCorrelated | ( | std::vector< WsfTrack * > & | aCluster, |
| WsfLocalTrack & | aLocalTrack ) |
Correlates all raw tracks in 'aClusterPtr' with 'aLocalTrack'.
References MakeCorrelated(), and trackPtr.
| 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().
| 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.
| void WsfClusterCorrelation::MakeDecorrelated | ( | WsfLocalTrack & | aLocalTrack | ) |
Decorrelates all raw tracks fused with 'aLocalTrack' from it.
References WsfLocalTrack::GetRawTrackIds(), and MakeDecorrelated().
|
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'.
| aInput | a reference to a UtInput object. |
| UtInput::ExceptionBase | (or an object derived from it) if the command was recognized but contains some sort of error. |
Reimplemented from WsfObject.