class_docstr: Class for the Correlation Tensor Model
      
class_docstr_tok: ["Class","for","the","Correlation","Tensor","Model"]
docstr: Correlation Tensor Imaging Model [1]
  
  Parameters
  ----------
  gtab1: dipy.core.gradients.GradientTable
      A GradientTable class instance for first DDE diffusion epoch
  gtab2: dipy.core.gradients.GradientTable
      A GradientTable class instance for second DDE diffusion epoch
  fit_method : str or callable, optional
  args, kwargs :
      arguments and key-word arguments passed to the fit_method.
docstr_tok: ["Correlation","Tensor","Imaging","Model","[","1","]","Parameters","--","--","--","--","--","gtab1",":","dipy.core.gradients.GradientTable","A","GradientTable","class","instance","for","first","DDE","diffusion","epoch","gtab2",":","dipy.core.gradients.GradientTable","A","GradientTable","class","instance","for","second","DDE","diffusion","epoch","fit_method",":","str","or","callable",",","optional","args",",","kwargs",":","arguments","and","key-word","arguments","passed","to","the","fit_method","."]
code: def __init__(self, gtab1, gtab2, fit_method="WLS", *args, **kwargs):
      """Correlation Tensor Imaging Model [1]
  
      Parameters
      ----------
      gtab1: dipy.core.gradients.GradientTable
          A GradientTable class instance for first DDE diffusion epoch
      gtab2: dipy.core.gradients.GradientTable
          A GradientTable class instance for second DDE diffusion epoch
      fit_method : str or callable, optional
      args, kwargs :
          arguments and key-word arguments passed to the fit_method.
  
      """
      self.gtab1 = gtab1
      self.gtab2 = gtab2
      self.args = args
      self.kwargs = kwargs
      self.common_fit_method = not callable(fit_method)
  
      if self.common_fit_method:
          try:
              self.fit_method = common_fit_methods[fit_method]
          except KeyError:
              msg = (
                  '"'
                  + str(fit_method)
                  + '" is not a known fit method. The'
              )
              msg += " fit method should either be a function or one of the"
              msg += " common fit methods."
              raise ValueError(msg)
  
      self.args = args
      self.kwargs = kwargs
  
      self.min_signal = self.kwargs.pop("min_signal", None)
      if self.min_signal is None:
          self.min_signal = MIN_POSITIVE_SIGNAL
      elif self.min_signal <= 0:
          msg = (
              "The `min_signal` key-word argument needs to be strictly"
          )
          msg += " positive."
          raise ValueError(msg)
  
      self.design_matrix = design_matrix(self.gtab1, self.gtab2)
      self.inverse_design_matrix = np.linalg.pinv(self.design_matrix)
  
      tol = 1e-6
      self.min_diffusivity = tol / -self.design_matrix.min()
      self.weights = fit_method in {"WLS", "WLLS", "UWLLS"}
  
imports: import numpy
  from dipy.reconst.multi_voxel import multi_voxel_fit
  from dipy.reconst.base import ReconstModel
  from dipy.reconst.utils import cti_design_matrix
  from dipy.reconst.dki import DiffusionKurtosisFit
  from dipy.reconst.dti import decompose_tensor, from_lower_triangular, lower_triangular, MIN_POSITIVE_SIGNAL
  from dipy.core.onetime import auto_attr
label_desc: Use image node_id 1 to create a new CorrelationTensorModel object from inherited base classes: ReconstModel with example: obj = CorrelationTensorModel(gtab1, gtab2, fit_method)