def fitExp(self, src, dest, b=None): tmp = [] for d in self.data: if d[src] > 0: tmp.append((d[1],math.log(d[src]))) # ts, value if b is None: ef = function_fit.function_fit(tmp, lin_function.func()) else: ef = function_fit.function_fit(tmp, parlin_function.func(_m=b)) sys.stderr.write("%s\n"%str(ef.fit())) [b, a] = ef.f.getParList() A = math.exp(a) for d in self.data: d[dest] = d[src] - A*math.exp(b * d[1])
lead_cols[tmp] = r[:icol] padding = [NA for x in lead_cols[tmp]] except ValueError, e: print "Skipping text values (%s)"%','.join(r) # fit type if options.func_name == "lognorm": func = lognormal_function.func() elif options.func_name == "gauss": func = gauss_function.func() elif options.func_name == "exp": func = exp_function.func() elif options.func_name == "gamma": func = gamma_function.func() elif options.func_name == "lin": func = lin_function.func() else: func = doubleexp_function.func() fr = function_fit(d, func, p0) # fit results print fr.fit() # blank line print wrt = csv.writer(sys.stdout) # output is outer join of function and fit d_dict = dict(d) f_dict = dict(fr.eval(start=tstart, end=tend, points=points)) for time in sorted(list(set(d_dict.keys() + f_dict.keys()))):