class_docstr: Fisher Geodesic Discriminant analysis.
  
  Project data in Tangent space, apply a FLDA to reduce dimention, and
  project filtered data back in the manifold.
  For a complete description of the algorithm, see [1]_.
  
  Parameters
  ----------
  metric : string | dict, default='riemann'
      The type of metric used for reference matrix estimation (see
      `mean_covariance` for the list of supported metric) and for tangent
      space map (see `tangent_space` for the list of supported metric).
      The metric could be a dict with two keys, `mean` and `map` in
      order to pass different metrics for the reference matrix estimation
      and the tangent space mapping.
  tsupdate : bool, default=False
      Activate tangent space update for covariante shift correction between
      training and test, as described in [2]_. This is not compatible with
      online implementation. Performance are better when the number of
      matrices for prediction is higher.
  
  See Also
  --------
  FgMDM
  TangentSpace
  
  References
  ----------
  .. [1] `Riemannian geometry applied to BCI classification
      <https://hal.archives-ouvertes.fr/hal-00602700/>`_
      A. Barachant, S. Bonnet, M. Congedo and C. Jutten. 9th International
      Conference Latent Variable Analysis and Signal Separation
      (LVA/ICA 2010), LNCS vol. 6365, 2010, p. 629-636.
  .. [2] `Classification of covariance matrices using a Riemannian-based
      kernel for BCI applications
      <https://hal.archives-ouvertes.fr/hal-00820475/>`_
      A. Barachant, S. Bonnet, M. Congedo and C. Jutten. Neurocomputing,
      Elsevier, 2013, 112, pp.172-178.
docstr: Filtering operation.
  
  Parameters
  ----------
  X : ndarray, shape (n_matrices, n_channels, n_channels)
      Set of SPD matrices.
  
  Returns
  -------
  covs : ndarray, shape (n_matrices, n_channels, n_channels)
      Set of SPD matrices after filtering.
docstr_tok: ["Filtering","operation",".","Parameters","--","--","--","--","--","X",":","ndarray",",","shape","(","n_matrices",",","n_channels",",","n_channels",")","Set","of","SPD","matrices",".","Returns","--","--","--","-","covs",":","ndarray",",","shape","(","n_matrices",",","n_channels",",","n_channels",")","Set","of","SPD","matrices","after","filtering","."]
code: def transform(self, X):
      """Filtering operation.
  
      Parameters
      ----------
      X : ndarray, shape (n_matrices, n_channels, n_channels)
          Set of SPD matrices.
  
      Returns
      -------
      covs : ndarray, shape (n_matrices, n_channels, n_channels)
          Set of SPD matrices after filtering.
      """
      ts = self._ts.transform(X)
      return self._retro_project(ts)
  
imports: import numpy
  from sklearn.base import BaseEstimator, TransformerMixin
  from .utils.utils import check_version
  from .utils.mean import mean_covariance
  from .utils.tangentspace import tangent_space, untangent_space
label_desc: Use image node_id 5 for calling the FGDA obj's underlying member method code with example usage: obj.transform(X) and returns: self