pyPDAF.UserFunc

pyPDAF.UserFunc.py__add_obs_err_pdaf(step, dim_obs_p, c_p)

See detailed explanation of the routine in https://pdaf.awi.de/trac/wiki/

Parameters:
  • step (int) – current time step

  • dim_obs_p (int) – dimension of observation vector

  • c_p (ndarray[float]) – matrix to that observation covariance r is added; Dimension: dim_obs_p,dim_obs_p

Returns:

c_p – matrix to that observation covariance r is added; Dimension: dim_obs_p,dim_obs_p

Return type:

ndarray[float]

Raises:

RuntimeError – No user-supplied function

pyPDAF.UserFunc.py__collect_state_pdaf(dim_p, state_p)

See detailed explanation of the routine in https://pdaf.awi.de/trac/wiki/

Parameters:
  • dim_p (int) – pe-local state dimension

  • state_p (ndarray[float]) – local state vector; Dimension: dim_p

Returns:

state_p – local state vector; Dimension: dim_p

Return type:

ndarray[float]

Raises:

RuntimeError – No user-supplied function

pyPDAF.UserFunc.py__cvt_adj_ens_pdaf(iter, dim_p, dim_ens, dim_cv_ens_p, ens_p, vcv_p, cv_p)

See detailed explanation of the routine in https://pdaf.awi.de/trac/wiki/

Parameters:
  • iter (int) – iteration of optimization

  • dim_p (int) – pe-local observation dimension

  • dim_ens (int) – ensemble size

  • dim_cv_ens_p (int) – pe-local dimension of control vector

  • ens_p (ndarray[float]) – pe-local ensemble; Dimension: dim_p,dim_ens

  • vcv_p (ndarray[float]) – pe-local input vector; Dimension: dim_p

  • cv_p (ndarray[float]) – pe-local result vector; Dimension: dim_cv_ens_p

Returns:

cv_p – pe-local result vector; Dimension: dim_cv_ens_p

Return type:

ndarray[float]

Raises:

RuntimeError – No user-supplied function

pyPDAF.UserFunc.py__cvt_adj_pdaf(iter, dim_p, dim_cvec, vcv_p, cv_p)

See detailed explanation of the routine in https://pdaf.awi.de/trac/wiki/

Parameters:
  • iter (int) – iteration of optimization

  • dim_p (int) – pe-local observation dimension

  • dim_cvec (int) – dimension of control vector

  • vcv_p (ndarray[float]) – pe-local result vector (state vector increment); Dimension: dim_p

  • cv_p (ndarray[float]) – pe-local control vector; Dimension: dim_cvec

Returns:

cv_p – pe-local control vector; Dimension: dim_cvec

Return type:

ndarray[float]

Raises:

RuntimeError – No user-supplied function

pyPDAF.UserFunc.py__cvt_ens_pdaf(iter, dim_p, dim_ens, dim_cvec_ens, ens_p, v_p, vv_p)

See detailed explanation of the routine in https://pdaf.awi.de/trac/wiki/

Parameters:
  • iter (int) – iteration of optimization

  • dim_p (int) – pe-local dimension of state

  • dim_ens (int) – ensemble size

  • dim_cvec_ens (int) – dimension of control vector

  • ens_p (ndarray[float]) – pe-local ensemble; Dimension: dim_p,dim_ens

  • v_p (ndarray[float]) – pe-local control vector; Dimension: dim_cvec_ens

  • vv_p (ndarray[float]) – pe-local state increment; Dimension: dim_p

Returns:

vv_p – pe-local state increment; Dimension: dim_p

Return type:

ndarray[float]

Raises:

RuntimeError – No user-supplied function

pyPDAF.UserFunc.py__cvt_pdaf(iter, dim_p, dim_cvec, cv_p, vv_p)

See detailed explanation of the routine in https://pdaf.awi.de/trac/wiki/

Parameters:
  • iter (int) – iteration of optimization

  • dim_p (int) – pe-local observation dimension

  • dim_cvec (int) – dimension of control vector

  • cv_p (ndarray[float]) – pe-local control vector; Dimension: dim_cvec

  • vv_p (ndarray[float]) – pe-local result vector (state vector increment); Dimension: dim_p

Returns:

vv_p – pe-local result vector (state vector increment); Dimension: dim_p

Return type:

ndarray[float]

Raises:

RuntimeError – No user-supplied function

pyPDAF.UserFunc.py__dist_stateinc_pdaf(dim_p, state_inc_p, first, steps)

See detailed explanation of the routine in https://pdaf.awi.de/trac/wiki/

Parameters:
  • dim_p (int) – dimension of pe-local state

  • state_inc_p (ndarray[float]) – pe-local state vector; Dimension: dim_p

  • first (int) – flag for first call of each forecast

  • steps (int) – number of time steps in forecast

Raises:

RuntimeError – No user-supplied function

pyPDAF.UserFunc.py__distribute_state_pdaf(dim_p, state_p)

See detailed explanation of the routine in https://pdaf.awi.de/trac/wiki/

Parameters:
  • dim_p (int)

  • state_p (ndarray[float]) – ; Dimension: dim_p

Returns:

state_p – ; Dimension: dim_p

Return type:

ndarray[float]

Raises:

RuntimeError – No user-supplied function

pyPDAF.UserFunc.py__g2l_obs_pdaf(domain_p, step, dim_obs_f, dim_obs_l, mstate_f, dim_p, mstate_l, dim_l)

See detailed explanation of the routine in https://pdaf.awi.de/trac/wiki/

Parameters:
  • domain_p (int) – index of current local analysis domain

  • step (int) – current time step

  • dim_obs_f (int) – size of full observation vector for model sub-domain

  • dim_obs_l (int) – size of observation vector for local analysis domain

  • mstate_f (ndarray[int]) – full observation vector for model sub-domain; Dimension: dim_p

  • dim_p (int) – size of full observation vector for model sub-domain

  • mstate_l (ndarray[int]) – observation vector for local analysis domain; Dimension: dim_l

  • dim_l (int) – size of observation vector for local analysis domain

Returns:

mstate_l – observation vector for local analysis domain; Dimension: dim_l

Return type:

ndarray[int]

Raises:

RuntimeError – No user-supplied function

pyPDAF.UserFunc.py__g2l_state_pdaf(step, domain_p, dim_p, state_p, dim_l, state_l)

See detailed explanation of the routine in https://pdaf.awi.de/trac/wiki/

Parameters:
  • step (int) – current time step

  • domain_p (int) – current local analysis domain

  • dim_p (int) – pe-local full state dimension

  • state_p (ndarray[float]) – pe-local full state vector; Dimension: dim_p

  • dim_l (int) – local state dimension

  • state_l (ndarray[float]) – state vector on local analysis domain; Dimension: dim_l

Returns:

state_l – state vector on local analysis domain; Dimension: dim_l

Return type:

ndarray[float]

Raises:

RuntimeError – No user-supplied function

pyPDAF.UserFunc.py__get_obs_f_pdaf(step, dim_obs_f, observation_f)

See detailed explanation of the routine in https://pdaf.awi.de/trac/wiki/

Parameters:
  • step (int) – current time step

  • dim_obs_f (int) – size of the full observation vector

  • observation_f (ndarray[float]) – full vector of synthetic observations (process-local); Dimension: dim_obs_f

Returns:

observation_f – full vector of synthetic observations (process-local); Dimension: dim_obs_f

Return type:

ndarray[float]

Raises:

RuntimeError – No user-supplied function

pyPDAF.UserFunc.py__init_dim_l_pdaf(step, domain_p, dim_l)

See detailed explanation of the routine in https://pdaf.awi.de/trac/wiki/

Parameters:
  • step (int) – current time step

  • domain_p (int) – current local analysis domain

  • dim_l (int) – local state dimension

Returns:

dim_l – local state dimension

Return type:

int

Raises:

RuntimeError – No user-supplied function

pyPDAF.UserFunc.py__init_dim_obs_f_pdaf(step, dim_obs_f)

See detailed explanation of the routine in https://pdaf.awi.de/trac/wiki/

Parameters:
  • step (int) – current time step

  • dim_obs_f (int) – size of the full observation vector

Returns:

dim_obs_f – size of the full observation vector

Return type:

int

Raises:

RuntimeError – No user-supplied function

pyPDAF.UserFunc.py__init_dim_obs_l_pdaf(domain_p, step, dim_obs_f, dim_obs_l)

See detailed explanation of the routine in https://pdaf.awi.de/trac/wiki/

Parameters:
  • domain_p (int) – index of current local analysis domain

  • step (int) – current time step

  • dim_obs_f (int) – full dimension of observation vector

  • dim_obs_l (int) – local dimension of observation vector

Returns:

dim_obs_l – local dimension of observation vector

Return type:

int

Raises:

RuntimeError – No user-supplied function

pyPDAF.UserFunc.py__init_dim_obs_pdaf(step, dim_obs_p)

See detailed explanation of the routine in https://pdaf.awi.de/trac/wiki/

Parameters:
  • step (int) – current time step

  • dim_obs_p (int) – dimension of observation vector

Returns:

dim_obs_p – dimension of observation vector

Return type:

int

Raises:

RuntimeError – No user-supplied function

pyPDAF.UserFunc.py__init_ens_pdaf(filtertype, dim_p, dim_ens, state_p, uinv, ens_p, flag)

See detailed explanation of the routine in https://pdaf.awi.de/trac/wiki/

Parameters:
  • filtertype (int) – type of filter to initialize

  • dim_p (int) – pe-local state dimension

  • dim_ens (int) – size of ensemble

  • state_p (ndarray[float]) – pe-local model state; Dimension: dim_p

  • uinv (ndarray[float]) – array not referenced for ensemble filters; Dimension: dim_ens-1,dim_ens-1

  • ens_p (ndarray[float]) – pe-local state ensemble; Dimension: dim_p,dim_ens

  • flag (int) – pdaf status flag

Returns:

  • state_p (ndarray[float]) – pe-local model state; Dimension: dim_p

  • uinv (ndarray[float]) – array not referenced for ensemble filters; Dimension: dim_ens-1,dim_ens-1

  • ens_p (ndarray[float]) – pe-local state ensemble; Dimension: dim_p,dim_ens

  • flag (int) – pdaf status flag

Raises:

RuntimeError – No user-supplied function

pyPDAF.UserFunc.py__init_n_domains_p_pdaf(step, n_domains_p)

See detailed explanation of the routine in https://pdaf.awi.de/trac/wiki/

Parameters:
  • step (int) – current time step

  • n_domains_p (int) – pe-local number of analysis domains

Returns:

n_domains_p – pe-local number of analysis domains

Return type:

int

Raises:

RuntimeError – No user-supplied function

pyPDAF.UserFunc.py__init_obs_covar_pdaf(step, dim_obs, dim_obs_p, covar, obs_p, isdiag)

See detailed explanation of the routine in https://pdaf.awi.de/trac/wiki/

Parameters:
  • step (int) – current time step

  • dim_obs (int) – global size of observation vector

  • dim_obs_p (int) – size of process-local observation vector

  • covar (float) – observation error covariance matrix

  • obs_p (ndarray[float]) – process-local vector of observations; Dimension: dim_obs_p

  • isdiag (bool)

Returns:

  • covar (float) – observation error covariance matrix

  • isdiag (bool)

Raises:

RuntimeError – No user-supplied function

pyPDAF.UserFunc.py__init_obs_f_pdaf(step, dim_obs_f, observation_f)

See detailed explanation of the routine in https://pdaf.awi.de/trac/wiki/

Parameters:
  • step (int) – current time step

  • dim_obs_f (int) – size of the full observation vector

  • observation_f (ndarray[float]) – full vector of observations; Dimension: dim_obs_f

Returns:

observation_f – full vector of observations; Dimension: dim_obs_f

Return type:

ndarray[float]

Raises:

RuntimeError – No user-supplied function

pyPDAF.UserFunc.py__init_obs_l_pdaf(domain_p, step, dim_obs_l, observation_l)

See detailed explanation of the routine in https://pdaf.awi.de/trac/wiki/

Parameters:
  • domain_p (int) – index of current local analysis domain

  • step (int) – current time step

  • dim_obs_l (int) – local size of the observation vector

  • observation_l (ndarray[float]) – local vector of observations; Dimension: dim_obs_l

Returns:

observation_l – local vector of observations; Dimension: dim_obs_l

Return type:

ndarray[float]

Raises:

RuntimeError – No user-supplied function

pyPDAF.UserFunc.py__init_obs_pdaf(step, dim_obs_p, observation_p)

See detailed explanation of the routine in https://pdaf.awi.de/trac/wiki/

Parameters:
  • step (int) – current time step

  • dim_obs_p (int) – size of the observation vector

  • observation_p (ndarray[float]) – vector of observations; Dimension: dim_obs_p

Returns:

observation_p – vector of observations; Dimension: dim_obs_p

Return type:

ndarray[float]

Raises:

RuntimeError – No user-supplied function

pyPDAF.UserFunc.py__init_obserr_f_pdaf(step, dim_obs_f, obs_f, obserr_f)

See detailed explanation of the routine in https://pdaf.awi.de/trac/wiki/

Parameters:
  • step (int) – current time step

  • dim_obs_f (int) – full dimension of observation vector

  • obs_f (ndarray[float]) – full observation vector; Dimension: dim_obs_f

  • obserr_f (ndarray[float]) – full observation error stddev; Dimension: dim_obs_f

Returns:

obserr_f – full observation error stddev; Dimension: dim_obs_f

Return type:

ndarray[float]

Raises:

RuntimeError – No user-supplied function

pyPDAF.UserFunc.py__init_obsvar_l_pdaf(domain_p, step, dim_obs_l, obs_l, dim_obs_p, meanvar_l)

See detailed explanation of the routine in https://pdaf.awi.de/trac/wiki/

Parameters:
  • domain_p (int) – index of current local analysis domain

  • step (int) – current time step

  • dim_obs_l (int) – local dimension of observation vector

  • obs_l (ndarray[float]) – local observation vector; Dimension: dim_obs_p

  • dim_obs_p (int) – dimension of local observation vector

  • meanvar_l (float) – mean local observation error variance

Returns:

meanvar_l – mean local observation error variance

Return type:

float

Raises:

RuntimeError – No user-supplied function

pyPDAF.UserFunc.py__init_obsvar_pdaf(step, dim_obs_p, obs_p, meanvar)

See detailed explanation of the routine in https://pdaf.awi.de/trac/wiki/

Parameters:
  • step (int) – current time step

  • dim_obs_p (int) – size of observation vector

  • obs_p (ndarray[float]) – vector of observations; Dimension: dim_obs_p

  • meanvar (float) – mean observation error variance

Returns:

meanvar – mean observation error variance

Return type:

float

Raises:

RuntimeError – No user-supplied function

pyPDAF.UserFunc.py__l2g_state_pdaf(step, domain_p, dim_l, state_l, dim_p, state_p)

See detailed explanation of the routine in https://pdaf.awi.de/trac/wiki/

Parameters:
  • step (int) – current time step

  • domain_p (int) – current local analysis domain

  • dim_l (int) – local state dimension

  • state_l (ndarray[float]) – state vector on local analysis domain; Dimension: dim_l

  • dim_p (int) – pe-local full state dimension

  • state_p (ndarray[float]) – pe-local full state vector; Dimension: dim_p

Returns:

state_p – pe-local full state vector; Dimension: dim_p

Return type:

ndarray[float]

Raises:

RuntimeError – No user-supplied function

pyPDAF.UserFunc.py__likelihood_hyb_l_pdaf(domain_p, step, dim_obs_l, rank, obs_l, gamma, a_l, c_l)

See detailed explanation of the routine in https://pdaf.awi.de/trac/wiki/

Parameters:
  • domain_p (int) – index of current local analysis domain

  • step (int) – current time step

  • dim_obs_l (int) – number of local observations at current time step (i.e. the size of the local observation vector)

  • rank (int) – number of the columns in the matrix processes here. this is usually the ensemble size minus one (or the rank of the initial covariance matrix)

  • obs_l (ndarray[float]) – local vector of observations; Dimension: dim_obs_l

  • gamma (float) – hybrid weight provided by pdaf

  • a_l (ndarray[float]) – input matrix provided by pdaf; Dimension: dim_obs_l,rank

  • c_l (ndarray[float]) – output matrix; Dimension: dim_obs_l,rank

Returns:

c_l – output matrix; Dimension: dim_obs_l,rank

Return type:

ndarray[float]

Raises:

RuntimeError – No user-supplied function

pyPDAF.UserFunc.py__likelihood_l_pdaf(domain_p, step, dim_obs_l, obs_l, resid_l, likely_l)

See detailed explanation of the routine in https://pdaf.awi.de/trac/wiki/

Parameters:
  • domain_p (int) – index of current local analysis domain

  • step (int) – current time step

  • dim_obs_l (int) – number of local observations at current time step (i.e. the size of the local observation vector)

  • obs_l (ndarray[float]) – local vector of observations; Dimension: dim_obs_l

  • resid_l (ndarray[float]) – nput vector holding the local residual; Dimension: dim_obs_l

  • likely_l (float) – output value of the local likelihood

Returns:

likely_l – output value of the local likelihood

Return type:

float

Raises:

RuntimeError – No user-supplied function

pyPDAF.UserFunc.py__likelihood_pdaf(step, dim_obs_p, obs_p, resid, likely)

See detailed explanation of the routine in https://pdaf.awi.de/trac/wiki/

Parameters:
  • step (int) – current time step

  • dim_obs_p (int) – number of observations at current time step (i.e. the size of the observation vector)

  • obs_p (ndarray[float]) – vector of observations; Dimension: dim_obs_p

  • resid (ndarray[float]) – input vector holding the residual; Dimension: dim_obs_p

  • likely (float) – output value of the likelihood

Returns:

likely – output value of the likelihood

Return type:

float

Raises:

RuntimeError – No user-supplied function

pyPDAF.UserFunc.py__localize_covar_pdaf(dim_p, dim_obs, hp_p, hph)

See detailed explanation of the routine in https://pdaf.awi.de/trac/wiki/

Parameters:
  • dim_p (int) – pe-local state dimension

  • dim_obs (int) – number of observations

  • hp_p (ndarray[float]) – pe local part of matrix hp; Dimension: dim_obs,dim_p

  • hph (ndarray[float]) – matrix hph; Dimension: dim_obs,dim_obs

Returns:

  • hp_p (ndarray[float]) – pe local part of matrix hp; Dimension: dim_obs,dim_p

  • hph (ndarray[float]) – matrix hph; Dimension: dim_obs,dim_obs

Raises:

RuntimeError – No user-supplied function

pyPDAF.UserFunc.py__next_observation_pdaf(stepnow, nsteps, doexit, time)

See detailed explanation of the routine in https://pdaf.awi.de/trac/wiki/

Parameters:
  • stepnow (int) – number of the current time step

  • nsteps (int) – number of time steps until next obs

  • doexit (int) – whether to exit forecasting (1 for exit)

  • time (float) – current model (physical) time

Returns:

  • nsteps (int) – number of time steps until next obs

  • doexit (int) – whether to exit forecasting (1 for exit)

  • time (float) – current model (physical) time

Raises:

RuntimeError – No user-supplied function

pyPDAF.UserFunc.py__obs_op_adj_pdaf(step, dim_p, dim_obs_p, state_p, m_state_p)

See detailed explanation of the routine in https://pdaf.awi.de/trac/wiki/

Parameters:
  • step (int) – current time step

  • dim_p (int) – pe-local dimension of state

  • dim_obs_p (int) – dimension of observed state

  • state_p (ndarray[float]) – pe-local model state; Dimension: dim_p

  • m_state_p (ndarray[float]) – pe-local observed state; Dimension: dim_obs_p

Returns:

state_p – pe-local model state; Dimension: dim_p

Return type:

ndarray[float]

Raises:

RuntimeError – No user-supplied function

pyPDAF.UserFunc.py__obs_op_f_pdaf(step, dim_p, dim_obs_f, state_p, m_state_f)

See detailed explanation of the routine in https://pdaf.awi.de/trac/wiki/

Parameters:
  • step (int) – current time step

  • dim_p (int) – size of state vector (local part in case of parallel decomposed state)

  • dim_obs_f (int) – size of full observation vector

  • state_p (ndarray[float]) – model state vector; Dimension: dim_p

  • m_state_f (ndarray[float]) – full observed state (i.e. the result after applying the observation operator to state_p); Dimension: dim_obs_f

Returns:

m_state_f – full observed state (i.e. the result after applying the observation operator to state_p); Dimension: dim_obs_f

Return type:

ndarray[float]

Raises:

RuntimeError – No user-supplied function

pyPDAF.UserFunc.py__obs_op_lin_pdaf(step, dim_p, dim_obs_p, state_p, m_state_p)

See detailed explanation of the routine in https://pdaf.awi.de/trac/wiki/

Parameters:
  • step (int) – current time step

  • dim_p (int) – pe-local dimension of state

  • dim_obs_p (int) – dimension of observed state

  • state_p (ndarray[float]) – pe-local model state; Dimension: dim_p

  • m_state_p (ndarray[float]) – pe-local observed state; Dimension: dim_obs_p

Returns:

m_state_p – pe-local observed state; Dimension: dim_obs_p

Return type:

ndarray[float]

Raises:

RuntimeError – No user-supplied function

pyPDAF.UserFunc.py__obs_op_pdaf(step, dim_p, dim_obs_p, state_p, m_state_p)

See detailed explanation of the routine in https://pdaf.awi.de/trac/wiki/

Parameters:
  • step (int) – current time step

  • dim_p (int) – size of state vector (local part in case of parallel decomposed state)

  • dim_obs_p (int) – size of observation vector

  • state_p (ndarray[float]) – model state vector; Dimension: dim_p

  • m_state_p (ndarray[float]) – observed state vector (i.e. the result after applying the observation operator to state_p); Dimension: dim_obs_p

Returns:

m_state_p – observed state vector (i.e. the result after applying the observation operator to state_p); Dimension: dim_obs_p

Return type:

ndarray[float]

Raises:

RuntimeError – No user-supplied function

pyPDAF.UserFunc.py__prepoststep_pdaf(step, dim_p, dim_ens, dim_ens_p, dim_obs_p, state_p, uinv, ens_p, flag)

See detailed explanation of the routine in https://pdaf.awi.de/trac/wiki/

Parameters:
  • step (int) – current time step (negative for call after forecast)

  • dim_p (int) – pe-local state dimension

  • dim_ens (int) – size of state ensemble

  • dim_ens_p (int) – pe-local size of ensemble

  • dim_obs_p (int) – pe-local dimension of observation vector

  • state_p (ndarray[float]) – pe-local forecast/analysis state(the array ‘state_p’ is not generally notinitialized in the case of seik.it can be used freely here.); Dimension: dim_p

  • uinv (ndarray[float]) – inverse of matrix u; Dimension: dim_ens-1,dim_ens-1

  • ens_p (ndarray[float]) – pe-local state ensemble; Dimension: dim_p,dim_ens

  • flag (int) – pdaf status flag

Returns:

  • state_p (ndarray[float]) – pe-local forecast/analysis state(the array ‘state_p’ is not generally notinitialized in the case of seik.it can be used freely here.); Dimension: dim_p

  • uinv (ndarray[float]) – inverse of matrix u; Dimension: dim_ens-1,dim_ens-1

  • ens_p (ndarray[float]) – pe-local state ensemble; Dimension: dim_p,dim_ens

Raises:

RuntimeError – No user-supplied function

pyPDAF.UserFunc.py__prodrinva_hyb_l_pdaf(domain_p, step, dim_obs_l, obs_l, resid_l, gamma, likely_l)

See detailed explanation of the routine in https://pdaf.awi.de/trac/wiki/

Parameters:
  • domain_p (int) – index of current local analysis domain

  • step (int) – current time step

  • dim_obs_l (int) – number of local observations at current time step (i.e. the size of the local observation vector)

  • obs_l (ndarray[float]) – local vector of observations; Dimension: dim_obs_l

  • resid_l (ndarray[float]) – input vector holding the local residual; Dimension: dim_obs_l

  • gamma (float) – hybrid weight provided by pdaf

  • likely_l (float) – output value of the local likelihood

Returns:

likely_l – output value of the local likelihood

Return type:

float

Raises:

RuntimeError – No user-supplied function

pyPDAF.UserFunc.py__prodrinva_l_pdaf(domain_p, step, dim_obs_l, rank, obs_l, a_l, c_l)

See detailed explanation of the routine in https://pdaf.awi.de/trac/wiki/

Parameters:
  • domain_p (int) – index of current local analysis domain

  • step (int) – current time step

  • dim_obs_l (int) – number of local observations at current time step (i.e. the size of the local observation vector)

  • rank (int) – number of the columns in the matrix processes here.this is usually the ensemble size minus one (or the rank of the initial covariance matrix)

  • obs_l (ndarray[float]) – local vector of observations; Dimension: dim_obs_l

  • a_l (ndarray[float]) – input matrix provided by pdaf; Dimension: dim_obs_l,rank

  • c_l (ndarray[float]) – output matrix; Dimension: dim_obs_l,rank

Returns:

c_l – output matrix; Dimension: dim_obs_l,rank

Return type:

ndarray[float]

Raises:

RuntimeError – No user-supplied function

pyPDAF.UserFunc.py__prodrinva_pdaf(step, dim_obs_p, rank, obs_p, a_p, c_p)

See detailed explanation of the routine in https://pdaf.awi.de/trac/wiki/

Parameters:
  • step (int) – current time step

  • dim_obs_p (int) – number of observations at current time step (i.e. the size of the observation vector)

  • rank (int) – number of the columns in the matrix processes here.this is usually the ensemble size minus one(or the rank of the initial covariance matrix)

  • obs_p (ndarray[float]) – vector of observations; Dimension: dim_obs_p

  • a_p (ndarray[float]) – input matrix provided by pdaf; Dimension: dim_obs_p,rank

  • c_p (ndarray[float]) – output matrix; Dimension: dim_obs_p,rank

Returns:

c_p – output matrix; Dimension: dim_obs_p,rank

Return type:

ndarray[float]

Raises:

RuntimeError – No user-supplied function