See this line:
|
After each evaluation of the observation map and before updating the ensemble, |
which states that analyze_iteration is run before update_ensemble!. However here:
|
terminate = update_ensemble!(ekp, g_ensemble, output_dir, iteration, prior) |
|
try |
|
analyze_iteration(ekp, g_ensemble, prior, output_dir, iteration) |
|
catch ret_code |
|
@error "`analyze_iteration` crashed. See stacktrace" exception = |
|
(ret_code, catch_backtrace()) |
|
end |
However in the source code analyze_iteration is run after update_ensemble!.
So either the source code or the docstring should be changed, but I think analyze_iteration should be run before update_ensemble!? This is so that diagnostics about the calibration can be made on the forward runs and the EKP object before it is updated.
Or perhaps we need another helper that enables the user to also analyze the iteration after update_ensemble! to look at the updated EKP.
See this line:
ClimaCalibrate.jl/src/model_interface.jl
Line 31 in dc3845f
which states that
analyze_iterationis run beforeupdate_ensemble!. However here:ClimaCalibrate.jl/src/ekp_interface.jl
Lines 346 to 352 in dc3845f
However in the source code
analyze_iterationis run afterupdate_ensemble!.So either the source code or the docstring should be changed, but I think
analyze_iterationshould be run beforeupdate_ensemble!? This is so that diagnostics about the calibration can be made on the forward runs and the EKP object before it is updated.Or perhaps we need another helper that enables the user to also analyze the iteration after
update_ensemble!to look at the updated EKP.