pyPDAF.assim_offline_en3dvar_estkf_nondiagr¶
- pyPDAF.assim_offline_en3dvar_estkf_nondiagr()¶
Offline 3DEnVar for a single DA step using non-diagnoal observation error covariance matrix.
See
pyPDAF.PDAF3.assim_offline_3dvar_all()
for diagonal observation error covariance matirx.Here, the background error covariance matrix is estimated by an ensemble. The 3DEnVar only calculates the analysis of the ensemble mean. An ESTKF is used along with 3DEnVar to generate ensemble perturbations. This function should be called at each model time step.
- User-supplied functions are executed in the following sequence:
py__prepoststep_state_pdaf
py__init_dim_obs_pdaf
py__obs_op_pdaf
- the iterative optimisation:
py__cvt_ens_pdaf
py__obs_op_lin_pdaf
py__prodRinvA_pdaf
py__obs_op_adj_pdaf
py__cvt_adj_ens_pdaf
core 3DEnVar algorithm
py__cvt_ens_pdaf
- ESTKF:
py__init_dim_obs_pdaf
py__obs_op_pdaf (for ensemble mean)
py__obs_op_pdaf (for each ensemble member)
py__prodRinvA_pdaf
core ESTKF algorithm
py__prepoststep_state_pdaf
- Parameters:
py__collect_state_pdaf (Callable) – Routine to collect a state vector
py__distribute_state_pdaf (Callable) – Routine to distribute a state vector
py__init_dim_obs_pdaf (Callable) – Initialize dimension of full observation vector
py__obs_op_pdaf (Callable) – Full observation operator
py__prodrinva_pdaf (Callable) – Provide product R^-1 A
py__cvt_ens_pdaf (Callable) – Apply control vector transform matrix to control vector
py__cvt_adj_ens_pdaf (Callable) – Apply adjoint control vector transform matrix
py__obs_op_lin_pdaf (Callable) – Linearized observation operator
py__obs_op_adj_pdaf (Callable) – Adjoint observation operator
py__prepoststep_pdaf (Callable) – User supplied pre/poststep routine
py__next_observation_pdaf (Callable) – Provide information on next forecast
- Returns:
outflag – Status flag
- Return type:
int