From 81e0e2243dbee2b8ffce15d4dbc23dcba264587f Mon Sep 17 00:00:00 2001
From: Stefano Serafin <serafin@jet01.img.univie.ac.at>
Date: Wed, 26 Feb 2025 12:22:39 +0100
Subject: [PATCH] minor bug fixes

---
 ENDA.py | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/ENDA.py b/ENDA.py
index 6852981..1b07e81 100644
--- a/ENDA.py
+++ b/ENDA.py
@@ -136,7 +136,7 @@ def eakf(xb,o,var_o,xcoord,ocoord,dist,\
 
         # Store innovation wrt to ensemble mean
         if return_covariances_increments_and_innovations:
-            innovations_mean[i] = o[i]-yp[i].mean()
+            innovations_mean[i] = o[i]-yp[i,:].mean()
 
         # Determine analysis increments in observation space
         # weight_p is a scalar
@@ -295,12 +295,12 @@ class cycle:
         backgrounds       = np.zeros((ncycles,state_vector_length,nens)) + np.nan
         analyses          = np.zeros((ncycles,state_vector_length,nens)) + np.nan
         model_equivalents = np.zeros((ncycles,nobs,nens)) + np.nan
-        if cbl_settings['do_parameter_estimation'] and cbl_settings['return_covariances_increments_and_innovations']:
-            increments = np.zeros((ncycles,nobs,npar)) + np.nan
+        if cbl_settings['return_covariances_increments_and_innovations']:
             cov_py = np.zeros((ncycles,nobs,npar)) + np.nan
             cov_pp = np.zeros((ncycles,nobs,npar)) + np.nan
             cov_yy = np.zeros((ncycles,nobs)) + np.nan
             innov = np.zeros((ncycles,nobs)) + np.nan
+            increments = np.zeros((ncycles,nobs,npar)) + np.nan
 
         # Turn inflation coefficients into an array
         inflation_coefficients_rtps = np.ones(state_vector_length)*inflation_rtps_alpha
@@ -473,7 +473,7 @@ class cycle:
         self.zt = nr.zt
         self.nens = nens
         self.initial_perturbed_parameters = model.initial_perturbed_parameters
-        if cbl_settings['do_parameter_estimation'] and cbl_settings['return_covariances_increments_and_innovations']:
+        if cbl_settings['return_covariances_increments_and_innovations']:
             self.cov_py = cov_py
             self.cov_pp = cov_pp
             self.cov_yy = cov_yy
@@ -505,13 +505,15 @@ class experiment:
             self.truths = deepcopy(exp.truths)
             self.observations = deepcopy(exp.observations)
             self.obs_coordinates = deepcopy(exp.obs_coordinates)
+            self.obs_error_sdev_generate = np.ones(self.nobs)*self.obs_error_sdev_generate
+            self.obs_error_sdev_assimilate = np.ones(self.nobs)*self.obs_error_sdev_assimilate
             if not self.do_parameter_estimation:
                 self.nr.do_parameter_estimation = False
 
         # Get CBL settings from file
-        assert os.path.isfile(self.cbl_settings_file),\
-            f'CBL settings file {self.cbl_settings_file} does not exist'
-        with open(self.cbl_settings_file, 'r') as fp:
+        assert os.path.isfile(self.path+self.cbl_settings_file),\
+            f'CBL settings file {self.path+self.cbl_settings_file} does not exist'
+        with open(self.path+self.cbl_settings_file, 'r') as fp:
             self.cbl_settings = dict(json.load(fp))
 
         # Propagate parameter estimation settings to CBL model
-- 
GitLab