class_docstr: Estimate special form covariance matrix for ERP.
  
  Estimation of special form covariance matrix dedicated to ERP processing.
  For each class, a prototyped response is obtained by average across trials:
  
  .. math::
      \mathbf{P} = \frac{1}{m} \sum_{i=1}^{m} \mathbf{X}_i
  
  and a super trial is built using the concatenation of :math:`\mathbf{P}`
  and the trial :math:`\mathbf{X}_i`:
  
  .. math::
      \mathbf{\tilde{X}}_i = \left[ \begin{array}{c} \mathbf{P} \\
      \mathbf{X}_i \end{array} \right]
  
  This super trial :math:`\mathbf{\tilde{X}}_i` will be used for covariance
  estimation.
  This allows to take into account the spatial structure of the signal, as
  described in [1]_.
  
  Parameters
  ----------
  classes : list of int | None, default=None
      List of classes to take into account for prototype estimation.
      If None, all classes will be accounted.
  estimator : string, default='scm'
      Covariance matrix estimator, see
      :func:`pyriemann.utils.covariance.covariances`.
  svd : int | None, default=None
      If not None, number of components of SVD used to reduce prototype
      responses.
  **kwds : dict
      Any further parameters are passed directly to the covariance estimator.
  
  Attributes
  ----------
  P_ : ndarray, shape (n_components, n_times)
      If fit, prototyped responses for each class, where `n_components` is
      equal to `n_classes x n_channels` if `svd` is None,
      and to `n_classes x min(svd, n_channels)` otherwise.
  
  See Also
  --------
  Covariances
  XdawnCovariances
  CospCovariances
  HankelCovariances
  
  References
  ----------
  .. [1] `A Plug and Play P300 BCI Using Information Geometry
      <https://arxiv.org/abs/1409.0107>`_
      A. Barachant, M. Congedo. Research report, 2014.
  .. [2] `A New generation of Brain-Computer Interface Based on Riemannian
      Geometry
      <https://hal.archives-ouvertes.fr/hal-00879050>`_
      M. Congedo, A. Barachant, A. Andreev. Research report, 2013.
  .. [3] `Classification de potentiels evoques P300 par geometrie
      riemannienne pour les interfaces cerveau-machine EEG
      <https://hal.archives-ouvertes.fr/hal-00877447>`_
      A. Barachant, M. Congedo, G. van Veen, and C. Jutten, 24eme colloque
      GRETSI, 2013.
docstr: Init.
docstr_tok: ["Init","."]
code: def __init__(self, classes=None, estimator="scm", svd=None, **kwds):
      """Init."""
      self.classes = classes
      self.estimator = estimator
      self.svd = svd
      self.kwds = kwds
  
imports: import numpy
  from sklearn.base import BaseEstimator, TransformerMixin
  from sklearn.covariance import shrunk_covariance
  from sklearn.metrics.pairwise import pairwise_kernels
  from .spatialfilters import Xdawn
  from .utils.covariance import covariances, covariances_EP, cospectrum, coherence, block_covariances
label_desc: Use image node_id 1 to create a new ERPCovariances object from inherited base classes: BaseEstimator, TransformerMixin with example: obj = ERPCovariances(classes, estimator, svd)