Source code for typhon.retrieval.oem.common

"""Functions concerning the Optimal Estimation Method (OEM). """

from scipy.linalg import inv


__all__ = [
    'error_covariance_matrix',
    'averaging_kernel_matrix',
    'retrieval_gain_matrix',
]


[docs]def error_covariance_matrix(K, S_a, S_y): """Calculate the error covariance matrix. Parameters: K (np.array): Simulated Jacobians. S_a (np.array): A priori error covariance matrix. S_y (np.array): Measurement covariance matrix. Returns: np.array: Measurement error covariance matrix. """ return inv(K.T @ inv(S_y) @ K + inv(S_a))
[docs]def averaging_kernel_matrix(K, S_a, S_y): """Calculate the averaging kernel matrix. Parameters: K (np.array): Simulated Jacobians. S_a (np.array): A priori error covariance matrix. S_y (np.array): Measurement covariance matrix. Returns: np.array: Averaging kernel matrix. """ return retrieval_gain_matrix(K, S_a, S_y) @ K
[docs]def retrieval_gain_matrix(K, S_a, S_y): """Calculate the averaging kernel matrix. Parameters: K (np.array): Simulated Jacobians. S_a (np.array): A priori error covariance matrix. S_y (np.array): Measurement covariance matrix. Returns: np.array: Retrieval gain matrix. """ return inv(inv(S_a) + K.T @ inv(S_y) @ K) @ K.T @ inv(S_y)