Return model error coveriance matrix Sigma eta

        Methodology source: Kjelsen, Jones & Morris 2014, eqs 2 and 3

        :param donor_catchments: Catchments to use as donors
        :type donor_catchments: list of :class:`Catchment`
        :return: 2-Dimensional, symmetric covariance matrix
        :rtype: :class:`numpy.ndarray`

def _matrix_sigma_eta(self, donor_catchments):
        """
        Return model error coveriance matrix Sigma eta

        Methodology source: Kjelsen, Jones & Morris 2014, eqs 2 and 3

        :param donor_catchments: Catchments to use as donors
        :type donor_catchments: list of :class:`Catchment`
        :return: 2-Dimensional, symmetric covariance matrix
        :rtype: :class:`numpy.ndarray`
        """
        p = len(donor_catchments)
        sigma = 0.1175 * np.ones((p, p))
        for i in range(p):
            for j in range(p):
                if i != j:
                    sigma[i, j] *= self._model_error_corr(donor_catchments[i], donor_catchments[j])
        return sigma