pyPDAF.assimilate_3dvar_nondiagr¶
- pyPDAF.assimilate_3dvar_nondiagr()¶
3DVar DA for a single DA step using non-diagnoal observation error covariance matrix.
See
pyPDAF.PDAF3.assimilate_3dvar_all()
for diagonal observation error covariance matrix.When 3DVar is used, the background error covariance matrix has to be modelled for cotrol variable transformation. This is a deterministic filtering scheme so no ensemble and parallelisation is needed. This function should be called at each model time step.
- User-supplied functions are executed in the following sequence:
py__collect_state_pdaf
py__prepoststep_state_pdaf
py__init_dim_obs_pdaf
py__obs_op_pdaf
- Iterative optimisation:
py__cvt_pdaf
py__obs_op_lin_pdaf
py__prodRinvA_pdaf
py__obs_op_adj_pdaf
py__cvt_adj_pdaf
core DA algorithm
py__cvt_pdaf
py__prepoststep_state_pdaf
py__distribute_state_pdaf
py__next_observation_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_pdaf (Callable) – Apply control vector transform matrix to control vector
py__cvt_adj_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