correlator¶
Correlate measurement time series with a population of objects to find the best match.
Currently only works for Mono-static measurements.
# TODO: Assume a uniform prior distribution over population index, posterior distribution is the probability of what object generated the data. Probability comes from measurement covariance.
Module summary¶
Functions
|
Given a mono-static measurement of ranges and rage-rates, a radar model and a population: correlate measurements with population. |
|
|
|
Using the simulated and the measured ranges and rage-rates calculate a de-correlation metric. |
Contents¶
Functions
-
sorts.correlator.
correlate
(measurements, population, metric=<function residual_distribution_metric>, metric_reduce=<function <lambda>>, forward_model=<function generate_measurements>, variables=['r', 'v'], n_closest=1, profiler=None, logger=None, MPI=False)[source] Given a mono-static measurement of ranges and rage-rates, a radar model and a population: correlate measurements with population.
- Parameters
measurements (list) – List of dictionaries that contains measurement data. Contents are described below.
population (Population) – Population to correlate against.
metric (function) – Metric used to correlate measurement and simulated object measurement.
metric_reduce (function) – Metric used to correlate measurement and simulated object measurement.
forward_model (function) – A pointer to a function that takes in the ecef-state, the rx and tx station ecefs and calculates the observed variables return as a tuple.
variables (list) – The data variables recorded by the system.
n_closest (int) – Number of closest matches to save.
profiler (Profiler) – Profiler instance for checking function performance.
logger (logging.Logger) – Logger instance for logging the execution of the function.
MPI (bool) – If True use internal parallelization with MPI to calculate correlation. Turn to False to externally parallelize with MPI.
Measurement data:
- Each entry in the input
measurements
list must be a dictionary that contains the following fields: ‘t’: [numpy.ndarray] Times relative epoch in seconds
‘epoch’: [astropy.Time] epoch for measurements
‘tx’: [sorts.TX] Pointer to the TX station
‘rx’: [sorts.RX] Pointer to the RX station
- Then it will contain a entry for each name in the variables list. By default this is
‘r’: [numpy.ndarray] Two-way ranges in meters
‘v’: [numpy.ndarray] Two-way range-rates in meters per second
-
sorts.correlator.
generate_measurements
(state_ecef, rx_ecef, tx_ecef)[source]
-
sorts.correlator.
residual_distribution_metric
(t, r, v, r_ref, v_ref)[source] Using the simulated and the measured ranges and rage-rates calculate a de-correlation metric.
- Parameters
t (numpy.ndarray) – Times in seconds corresponding to measurement and object simulated data.
r (numpy.ndarray) – Measured ranges in meters
v (numpy.ndarray) – Measured rage-rates in meters per second
r_ref (numpy.ndarray) – Object simulated ranges in meters
v_ref (numpy.ndarray) – Object simulated rage-rates in meters per second
- Returns
Metric value, smaller values indicate better match.
- Return type
float