def compile(self): name = self.name() default = self.evalStr('default') mode = self['sequence'] if mode == 'off': seq = [] elif mode == 'range': start = self.evalStr('start') stop = self.evalStr('stop') nPts = self['steps'] if self['log spacing']: seq = fn.logSpace(start, stop, nPts) else: seq = np.linspace(start, stop, nPts) elif mode == 'list': seq = list(self.evalStr('list')) elif mode == 'eval': seq = self.evalStr('expression') else: raise Exception('Unknown sequence mode %s' % mode) if self['randomize']: np.random.shuffle(seq) ## sanity check try: len(seq) except: raise Exception("Parameter %s generated invalid sequence: %s" % (name, str(seq))) return default, seq
def main(): global fits, err, psp, data, xVals ## generate table of PSP shapes nReps = 20 amps = fn.logSpace(2e-12, 300e-12, 20) psp = np.empty( (len(amps), nReps, 4)) ## last axis is [amp, xoff, rise, fall] psp[:, :, 0] = amps[:, np.newaxis] psp[..., 1] = 1e-3 psp[..., 2] = 0.1e-3 psp[..., 3] = 0.6e-3 ## generate table of traces data, xVals = mkDataSet(psp, downsample=40) ## fit all traces guess = np.array([50e-10, 0.1e-3, 0.5e-3, 3e-3]) bounds = np.array([(0, 5e-9), (0, 2e-3), (50e-6, 5e-3), (200e-6, 20e-3)]) testFit("opt.leastsq", psp, data, xVals, fitPsp, guess=guess, bounds=bounds)
def main(): global fits, err, psp, data, xVals ## generate table of PSP shapes nReps = 20 amps = fn.logSpace(2e-12, 300e-12, 20) psp = np.empty((len(amps), nReps, 4)) ## last axis is [amp, xoff, rise, fall] psp[:,:,0] = amps[:,np.newaxis] psp[...,1] = 1e-3 psp[...,2] = 0.1e-3 psp[...,3] = 0.6e-3 ## generate table of traces data, xVals = mkDataSet(psp, downsample=40) ## fit all traces guess = np.array([50e-10, 0.1e-3, 0.5e-3, 3e-3]) bounds = np.array([(0, 5e-9), (0, 2e-3), (50e-6, 5e-3), (200e-6, 20e-3)]) testFit("opt.leastsq", psp, data, xVals, fitPsp, guess=guess, bounds=bounds)