code: def construct_cti_params(evals, evecs, kt, fct):
      """
      Combines all components to generate Correlation Tensor Model Parameter.
  
      Parameters
      ----------
      evals : array (..., 3)
          Eigenvalues from eigen decomposition of the tensor.
      evecs : array (..., 3)
          Associated eigenvectors from eigen decomposition of the tensor.
          Eigenvectors are columnar (e.g. evecs[:,j] is associated with
          evals[j])
      kt : array (..., 15)
          Fifteen elements of the kurtosis tensor
      fct: array(..., 21)
          Twenty-one elements of the covariance tensor
  
      Returns
      -------
      cti_params :  numpy.ndarray (..., 48)
      All parameters estimated from the correlation tensor model.
      Parameters are ordered as follows:
  
          1. Three diffusion tensor's eigenvalues
          2. Three lines of the eigenvector matrix each containing the
          first, second and third coordinates of the eigenvector
          3. Fifteen elements of the kurtosis tensor
          4. Twenty-One elements of the covariance tensor
      """
      fevals = evals.reshape((-1, evals.shape[-1]))
      fevecs = evecs.reshape((-1,) + evecs.shape[-2:])
      fevecs = fevecs.reshape((1, -1))
      fkt = kt.reshape((-1, kt.shape[-1]))
      cti_params = np.concatenate(
          (fevals.T, fevecs.T, fkt, fct), axis=0
      )
      return np.squeeze(cti_params)
  
imports: import numpy
  import math
  from dipy.core.sphere import disperse_charges, HemiSphere
  from dipy.reconst.utils import cti_design_matrix
  from numpy.testing import assert_array_almost_equal, assert_raises
  from dipy.reconst.tests.test_qti import _anisotropic_DTD, _isotropic_DTD
  from dipy.core.gradients import gradient_table
  import dipy.reconst.qti
  import dipy.reconst.cti
  from dipy.reconst.dti import decompose_tensor, mean_diffusivity
  from dipy.reconst.cti import split_cti_params, ls_fit_cti, multi_gaussian_k_from_c, from_qte_to_cti
  from dipy.reconst.dki import mean_kurtosis, axial_kurtosis, radial_kurtosis, mean_kurtosis_tensor, kurtosis_fractional_anisotropy
label_desc: Use image node_id 4 for calling a global function with example usage: construct_cti_params(evals, evecs, kt, fct) and returns: np