3.6 Kalman Filter: EK-TOA
Kalman filters can also be applied directly to the TOAMatrix
object.
Here, we have to use an extended Kalman filter as described in Campbell et al. (in review).
Kalman filters are only applicable to linear (or linear approximations to) models with multivariate Gaussian error structures.
Hence we have to use a Gaussian KaltoaObservationModel
here.
# Initalize observation model
obsv_model_gaus <- KaltoaObservation(type = "gaus", sigma = 0.002)
# Fit extended Kalman filter
track_toa <- KaltoaTrackPositioning(
x = subset(toa_ppm, detections >= 3), process_model = proc_ctcrw,
observation_model = obsv_model_gaus) |> smooth()
plot(track_toa)
points(positions(toa_ppm), pch = 17, col = 'red')
In this particular study area, there is a high prevalence of reflected transmissions.
These reflections may result in poor tracks when a Gaussian KaltoaProcessModel
is used.
To deal with the likely presence of reflections, we’ve specified a less precise KaltoaObservationModel
(sigma = 0.002
) and we’ve only used PPM detections.
The PPM tag protocol, in our experience at this study site, tended to have less reflections than HR protocol tags.
For reflective environments, we suggest using KaltoaPointPositions
specified with a "mixed"
KaltoaObservationModel
, then post processing those tracks with KaltoaTrackPositioning
.
- Campbell, J. A., Ellings, J., Lundberg, P., Mawer, R., Pauwels, I., Hoelker, F. 2025. An extended Kalman filter for large-volume path positioning of aquatic animals within acoustic telemetry arrays. In review.