Spatiotemporal Gaussian Process Kalman Filtering
Theory
STGPKF is a modelling technique to estimate the state of an environment.
In particular, the goal is to estimate a spatiotemporal field
\[f : \mathcal{R} \times \mathcal{D} \to \mathcal{R}\]
i.e., $f(t, p)$ is the value of the field at time $t$ and position $p \in \mathcal{D} \subset \mathcal{R}^d$.
The assumption is that the field is a realization of a Gaussian Process:
\[f \sim \operatorname{GP}(m, k)\]
with mean function $m(t, p) = 0$ and kernel function
\[k(t, t', p, p') = k_t(t, t') k_s(p, p')\]
Notice, we explicitly assume the kernel is separable in space and time.
SpatiotemporalGPs.STGPKF.STGPKFProblem
— MethodSTGPKFProblem(pts, ks, kt, ΔT)
Defines a spatiotemporal Gaussian Process Kalman Filter problem. Parameters are:
pts
: grid points, a vector of all points. Ideally,eltype(pts)
should beStaticVector
for efficiencyks
: spatial kernel, must be of typeAbstractKernel
kt
: temporal kernel, must be of typeAbstractKernel
(but only AbstractMaternKernel is implemented)ΔT
: sampling period
SpatiotemporalGPs.STGPKF.Matern
— MethodMatern(order, σ, l)
creates a Matern kernel with order order
, variance σ
, and lengthscale l
. Order must be (1/2, 3/2, or 5/2). Returns a Matern12
, Matern32
, or Matern52
kernel.
SpatiotemporalGPs.STGPKF.SquaredExponential
— MethodSquaredExponential(σ, l)
creates a Squared Exponential kernel with variance σ
and lengthscale l
. Returns a SqExp
kernel.
SpatiotemporalGPs.STGPKF.kernel_matrix
— Methodkernel_matrix(kernel, X, Y)
Compute the kernel matrix between two sets of points X
and Y
using the kernel function kernel
. X
must be a vector of points Y
must be a vector of points
SpatiotemporalGPs.STGPKF.stgpkf_correct
— Methodstgpkf_correct(prob, state, pt, y, σ_m)
corrects the state of the Kalman Filter given a single point measurement at $pt$ with value $y$ and measurement noise standard deviation $σ_m$.
SpatiotemporalGPs.STGPKF.stgpkf_correct
— Methodstgpkf_correct(prob, state, pts, ys, Σm)
corrects the state of the Kalman Filter given multiple point measurements at $pts$ with values $ys$ and measurement noise covariance matrix $Σm$.
SpatiotemporalGPs.STGPKF.stgpkf_initialize
— Methodstgpkf_initialize(problem)
returns a KFState
that represents the initial state of the Kalman Filter for all grid points
SpatiotemporalGPs.STGPKF.stgpkf_predict
— Methodstgpkf_predict(prob, state)
predicts the next state of the Kalman Filter for all grid points