Ejemplo n.º 1
0
    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
Ejemplo n.º 2
0
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)
Ejemplo n.º 3
0
 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
Ejemplo n.º 4
0
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)