code: def est_covariance_mtx(self, corr=False):
          
  
          cov = self.particle_covariance_mtx(self.particle_weights,
                                             self.particle_locations)
  
          if corr:
              dstd = np.sqrt(np.diag(cov))
              cov /= (np.outer(dstd, dstd))
  
          return cov
docs: Returns the full-rank covariance matrix of the current particle
          distribution.
  
          :param bool corr: If `True`, the covariance matrix is normalized
              by the outer product of the square root diagonal of the covariance matrix,
              i.e. the correlation matrix is returned instead.
  
          :rtype: :class:`numpy.ndarray`, shape
              ``(n_modelparams, n_modelparams)``.
          :returns: An array containing the estimated covariance matrix.