Source code for modest.signals.oneDimensionalObject

from . signalsource import SignalSource
from .. utils import covarianceContainer
from scipy.linalg import block_diag
import numpy as np

[docs]class oneDObjectMeasurement(SignalSource): def __init__(self, objectID): self.objectID = objectID return
[docs] def computeAssociationProbability(self, measurement, stateDict, validationThreshold=0): myMeasMat = stateDict[self.objectID]['stateObject'].getMeasurementMatrices(measurement, source=self) dY = None R = None H = None for key in myMeasMat['dY']: if H is None: H = myMeasMat['H'][key] R = myMeasMat['R'][key] dY = myMeasMat['dY'][key] else: H = np.vstack([H, myMeasMat['H'][key]]) R = block_diag(R, myMeasMat['R'][key]) dY = np.append(dY, myMeasMat['dY'][key]) if dY is not None: P = stateDict[self.objectID]['stateObject'].covariance() Pval = P.convertCovariance('covariance').value # if P.form == 'cholesky': # Pval = P.value.dot(P.value.transpose()) # elif P.form == 'covariance': # Pval = P.value # else: # raise ValueError('Unrecougnized covariance specifier %s' %P.form) S = H.dot(Pval).dot(H.transpose()) + R myProbability = mvn.pdf(dY, cov=S) else: myProbability = 0 return myProbability