Rolling covariance matrix of TemporalData with 3 paths

I know how to use MovingMap with TimeSeries, but MovingMap threads over paths. What if I want to calculate a function of multiple paths?

In my case, I have 3 paths, and for each window I would like to know the corresponding $3\times3$ covariance matrix (and then do something with the eigenvalues). How do I implement this rolling covariance matrix (or any function thereof, e.g., Max[Eigenvalues[covarianceMatrix]]?

P.S. A simple test scenario can be generated using

t = Range[0., 2. Pi, 0.001];
x = Through[{Cos, Sin, Identity}[t]];
td = TemporalData[x, {t}];
covarianceMatrix = Covariance[Transpose[td["ValueList"]]]

or

maxLambda=Max[Eigenvalues[Covariance[Transpose[td["ValueList"]]]]]

Except I would like to have maxLambda to be a (single-path) TimeSeries that maps each time (and an assumed specification of a window around that time) to a maximum eigenvalue.

• Meet us halfway: what formula would you use to compute the covariance matrix for a single window? Commented Sep 9, 2017 at 22:22
• Covariance[Transpose[td["ValueList"]]], Commented Sep 10, 2017 at 22:36