Main Content

Partition detections based on distance

A partition of a set of detections is defined as a division of these detections
into nonempty mutually exclusive detection cells. Using multiple distance thresholds, you can
use the function to separate detections into different detection cells and get all the
possible partitions using either *distance-partitioning* or
*density-based spatial clustering of applications with noise* (DBSCAN).
Additionally, you can choose the distance metric as Mahalanobis distance or Euclidean distance
by specifying the `'Distance'`

Name-Value pair argument.

Distance partitioning is the default partitioning algorithm of
`partitionDetections`

. In distance partitioning, a detection cluster
comprises of detections whose distance to at least one other detection in the cluster is
less than the distance threshold. In other words, two detections belong to the same
detection cluster if their distance is less than the distance threshold. To use
distance-partitioning, you can specify the `'Algorithm'`

Name-Value
argument as `'Distance-Partitioning'`

or simply do not specify the
`'Algorithm'`

argument.

returns possible partitions for `partitions`

= partitionDetections(`detections`

)`detections`

using the
distance-partitioning algorithm. By default, the function uses the distance partitioning
algorithm and considers all real value Mahalanobis distance thresholds between 0.5 and
6.25 and returns a maximum of 100 partitions.

specifies the lower and upper bounds of the distance thresholds,
`partitions`

= partitionDetections(`detections`

,`tLower`

,`tUpper`

)`tLower`

and `tUpper`

.

specifies the maximum number of allowed partitions, `partitions`

= partitionDetections(`detections`

,`tLower`

,`tUpper`

,'MaxNumPartitions',`maxNumber`

)`maxNumber`

.

specifies
the exact thresholds considered for partition.`partitions`

= partitionDetections(`detections`

,`allThresholds`

)

`[`

additionally returns an index vector `partitions`

,`indexDP`

] = partitionDetections(`detections`

,`allThresholds`

)`indexDP`

representing the
correspondence between all thresholds and the resulting partitions.

To use the DBSCAN partitioning, specify the `'Algorithm'`

argument as
`'DBSCAN'`

.

returns possible partitions of the detections by using DBSCAN partitioning and ten
distance threshold (epsilon or neighbor search radius) values linearly spaced between 0.25
and 6.25. By default, each cluster must contain at least three points. `partitions`

= partitionDetections(`detections`

,'Algorithm','DBSCAN')

specifies the distance thresholds `partitions`

= partitionDetections(`detections`

,`epsilon`

,`minNumPoints`

,'Algorithm','DBSCAN')`epsilon`

and the minimum number of
points per cluster `minNumPoints`

of the DBSCAN algorithm.

`[`

additionally returns an index vector `partitions`

,`indexDB`

] = partitionDetections(`detections`

,`epsilon`

,`minNumPoints`

,'Algorithm','DBSCAN')`indexDB`

representing the
correspondence between the threshold values `epsilon`

and the resulting
partitions.

Using the `'Distance'`

Name-Value argument, you can specify the
distance metric used in the partitioning.

`___ = partitionDetections(___,'Distance',`

additionally specifies the distance metric as `distance`

)`'Mahalanobis'`

or
`'Euclidean'`

. Use this syntax with any of the input or output
arguments in previous syntaxes.

[1] Granstrom, Karl, Christian
Lundquist, and Omut Orguner. “Extended Target Tracking Using a Gaussian-Mixture PHD Filter.”
*IEEE Transactions on Aerospace and Electronic Systems* 48, no. 4
(October 2012): 3268–86. https://doi.org/10.1109/TAES.2012.6324703.

[2] Ester, Martin, Hans-Peter Kriegel,
Jörg Sander, and Xiaowei Xu. “A Density-Based Algorithm for Discovering Clusters in Large
Spatial Databases with Noise.” *In Proceedings of the Second International
Conference on Knowledge Discovery and Data Mining*, 226–31. KDD’96. Portland,
Oregon: AAAI Press, 1996.