# define fit function
def func(x, t0, period, RpRs, a, inc, ecc, w, u1, u2):
# set up a transit object
params = batman.TransitParams()
params.t0 = t0 # time of inferior conjunction
params.per = period # orbital period [days]
params.rp = RpRs # planet radius (in units of stellar radii) [Rp/R*]
params.a = a # semi-major axis (in units of stellar radii)
params.inc = inc # orbital inclination (in degrees)
params.ecc = ecc # eccentricity
params.w = w # longitude of periastron (in degrees)
params.u = [u1, u2] # limb darkening coefficients [u1, u2]
params.limb_dark = "quadratic" # limb darkening model
# initialze model + calculate lightcurve
t = time # times to calculate at
m = batman.TransitModel(params, t) # initializes model
model_flux = m.light_curve(params) # calculates light curve
return model_flux
# create model
fmodel = Model(func)
# fit the model
result = fmodel.fit(data=flux, x=time,
period = Parameter('period', value = period_guess, vary = False),
a = Parameter('a', value = semi_maj_ax_guess, vary = False),
inc = Parameter('inc', value = inc_guess, vary = False),
ecc = Parameter('ecc', value = ecc_guess, vary = False),
w = Parameter('w', value = arg_of_periastron_guess, vary = False),
u1 = Parameter('u1', value = u1_guess, vary = False),
u2 = Parameter('u2', value = u2_guess, vary = False),
RpRs = Parameter('RpRs', value = RpRs_guess , vary = True, min=0.01, max = 0.1),
t0 = Parameter('t0', value = t0_guess, vary = True))
# print results
result.params.pretty_print()