code: def fit_theta(self):
      x = range(1, self.step + 1)
      y = self.interm_res
      func_params = {}
      for func_name, func in CURVE_FIT_FUNCS.items():
          try:
              params = scipy.optimize.curve_fit(func, x, y)[0]
              func_params[func_name] = params
          except RuntimeError:
              pass
          except (
              FloatingPointError,
              OverflowError,
              ZeroDivisionError,
          ) as exception:
              logger.warning(
                  "Mathematical error encountered in fit_theta: {}".format(
                      exception
                  )
              )
          except Exception as exception:
              logger.critical(
                  "Exceptions in fit_theta: {}".format(exception)
              )
              raise exception
      return func_params
  
imports: import scipy
  import logging
  import numpy
  import time
  from scipy import optimize
label_desc: Use image node_id 2 for calling the CurveModel obj's underlying member method code with example usage: obj.fit_theta() and returns: func_params