TrackGauss

class ssapy.correlate_tracks.TrackGauss(satIDs, data, param, covar, chi2, mode='rv', propagator=None, sigma_points=None, priors=None, orbitattr=None)[source][source]

Bases: TrackBase

Set of observations to be fit as an object moving through space.

Subclasses TrackBase. This implementation does not fit the entire track simultaneously, but instead approximates past tracklets with a single Gaussian prior on the parameters. This information is then updated with each new observation in a Kalman-filter approach.

Parameters:
  • satIDs (see TrackBase) –

  • data (see TrackBase) –

  • param (array_like, float) – mean of Gaussian

  • covar (array_like, float) – covariance of Gaussian

  • chi2 (float) – chi2 of fit at center of Gaussian

  • mode (str) – fitting mode to use. One of ‘rv’, ‘angle’, or ‘equinoctial’ parameters have different meanings in these modes

  • propagator (Propagator instance) – ssa Propagator instance to use for propagation. Default None (Keplerian)

  • priors (list of Priors instances) – priors used in initially fitting this orbit. Their influence should now be completely recorded in param + covar, but they are recorded here for reference.

Methods Summary

addto(satid)

Add a detection to this track.

at(t[, rStation, vStation])

Get Gaussian approximation of this track at different epoch.

gaussian_approximation(propagator)

Get Gaussian approximation of this track.

update(t[, rStation, vStation])

Move this track to a different epoch.

Methods Documentation

addto(satid)[source][source]

Add a detection to this track.

This also shifts the track’s epoch to the epoch of the added observation.

Parameters:

satID (int) – the detection ID of the observation to add to this track

Return type:

A new TrackGauss, including the additional observation.

at(t, rStation=None, vStation=None)[source][source]

Get Gaussian approximation of this track at different epoch.

This just copies the track and then updates it to be at the new time.

Parameters:
  • t (astropy.time.Time) – epoch for new TrackGauss

  • rStation (array_like (3)) – position of station at new time (m, GCRF); required if mode == ‘angle’

  • vStation (array_like (3)) – velocity of station at new time (m, GCRF); required if mode == ‘angle’

Return type:

Gaussian-approximated track (TrackGauss) at new time.

gaussian_approximation(propagator)[source][source]

Get Gaussian approximation of this track.

Return type:

self. No op; this track already is a Gaussian approximation.

update(t, rStation=None, vStation=None)[source][source]

Move this track to a different epoch.

Does not bother updating if t is different from the current track time by less than one microsecond.

Parameters:
  • t (astropy.time.Time) – epoch for new TrackGauss

  • rStation (array_like (3)) – position of station at new time (m, GCRF); required if mode == ‘angle’

  • vStation (array_like (3)) – velocity of station at new time (m, GCRF); required if mode == ‘angle’