Example #1
0
 def run_search(self):
     print "begin PES:"
     try:
         del (self.pesobj)
     except:
         pass
     self.pesobj = PES.PES(self.X,
                           self.Y,
                           self.S,
                           self.D,
                           self.lb.flatten(),
                           self.ub.flatten(),
                           self.para['kindex'],
                           self.para['mprior'],
                           self.para['sprior'],
                           DH_SAMPLES=self.para['DH_SAMPLES'],
                           DM_SAMPLES=self.para['DM_SAMPLES'],
                           DM_SUPPORT=self.para['DM_SUPPORT'],
                           DM_SLICELCBPARA=self.para['DM_SLICELCBPARA'],
                           mode=self.para['SUPPORT_MODE'])
     [Qmin, ymin,
      ierror] = self.pesobj.search_acq(self.para['cfn'],
                                       self.para['logsl'],
                                       self.para['logsu'],
                                       volper=self.para['volper'])
     return [Qmin[:-1], 10**Qmin[-1], [sp.NaN]]
Example #2
0
 def run_search(self):
     print "begin PESIS:"
     try:
         #print "aaa"
         del (self.pesobj)
         #print "bbb"
     except:
         print "ccc"
     self.pesobj = PES.PES(self.X,
                           self.Y,
                           self.S,
                           self.D,
                           self.lb.flatten(),
                           self.ub.flatten(),
                           self.para['kindex'],
                           self.para['mprior'],
                           self.para['sprior'],
                           DH_SAMPLES=self.para['DH_SAMPLES'],
                           DM_SAMPLES=self.para['DM_SAMPLES'],
                           DM_SUPPORT=self.para['DM_SUPPORT'],
                           DM_SLICELCBPARA=self.para['DM_SLICELCBPARA'],
                           mode=self.para['SUPPORT_MODE'],
                           noS=True)
     [xmin, ymin,
      ierror] = self.pesobj.search_pes(-1, volper=self.para['volper'])
     return [xmin, 0., [sp.NaN]]
Example #3
0
def PESvsaq(optstate, persist, **para):
    para = copy.deepcopy(para)
    if persist == None:
        persist = {'n': 0, 'd': len(para['ub'])}
    n = persist['n']
    d = persist['d']
    if n < para['nrandinit']:
        persist['n'] += 1

        return randomaq(optstate, persist, **para)
    logger.info('PESvsaq')
    #logger.debug(sp.vstack([e[0] for e in optstate.ev]))
    #raise
    x = sp.vstack(optstate.x)
    y = sp.vstack(optstate.y)
    s = sp.vstack([e['s'] for e in optstate.ev])
    dx = [e['d'] for e in optstate.ev]

    pesobj = PES.PES(x,
                     y,
                     s,
                     dx,
                     para['lb'],
                     para['ub'],
                     para['kindex'],
                     para['mprior'],
                     para['sprior'],
                     DH_SAMPLES=para['DH_SAMPLES'],
                     DM_SAMPLES=para['DM_SAMPLES'],
                     DM_SUPPORT=para['DM_SUPPORT'],
                     DM_SLICELCBPARA=para['DM_SLICELCBPARA'],
                     mode=para['SUPPORT_MODE'],
                     noS=para['noS'])

    [xmin, ymin, ierror] = pesobj.search_acq(para['cfn'],
                                             para['logsl'],
                                             para['logsu'],
                                             volper=para['volper'])

    logger.debug([xmin, ymin, ierror])
    para['ev']['s'] = 10**xmin[-1]
    xout = [i for i in xmin[:-1]]
    return xout, para['ev'], persist, {
        'HYPdraws': [k.hyp for k in pesobj.G.kf],
        'mindraws': pesobj.Z,
        'DIRECTmessage': ierror,
        'PESmin': ymin
    }

    return
Example #4
0
    def pcs(self):
        self.pesobj = PES.PES(self.X,
                              self.Y,
                              self.S,
                              self.D,
                              self.lb.flatten(),
                              self.ub.flatten(),
                              self.para['kindex'],
                              self.para['mprior'],
                              self.para['sprior'],
                              DH_SAMPLES=self.para['DH_SAMPLES'],
                              DM_SAMPLES=self.para['DM_SAMPLES'],
                              DM_SUPPORT=self.para['DM_SUPPORT'],
                              DM_SLICELCBPARA=self.para['DM_SLICELCBPARA'],
                              mode=self.para['SUPPORT_MODE'])
        xmin = self.reccomend()
        plt.figure(1)
        plt.plot(xmin[0], xmin[1], 'r.')
        print xmin
        plt.figure(2)
        plt.subplot(4, 1, 1)
        ns = 6000
        sup = sp.linspace(-1, 1, ns)
        for i in xrange(2):
            X = sp.vstack([xmin for k in xrange(ns)])
            print X.shape
            for j in xrange(ns):
                X[j, i] = sup[j]
            [m, v] = self.pesobj.G.infer_diag_post(X, [[sp.NaN]] * ns)
            s = sp.sqrt(v)
            plt.subplot(4, 1, 2 * i + 1)
            plt.fill_between(sup, (m - 2 * s).flatten(), (m + 2 * s).flatten(),
                             facecolor='lightblue',
                             edgecolor='lightblue')
            plt.plot(sup, m.flatten())
            [m, v] = self.pesobj.G.infer_diag_post(X, [[i]] * ns)
            s = sp.sqrt(v)
            plt.subplot(4, 1, 2 * i + 2)
            plt.fill_between(sup, (m - 2 * s).flatten(), (m + 2 * s).flatten(),
                             facecolor='lightblue',
                             edgecolor='lightblue')
            plt.plot(sup, m.flatten(), 'r')
            p = sp.exp(-0.5 * (m**2) / v)

            plt.twinx().plot(sup, p.flatten(), 'g')
        return
Example #5
0
 def run_search(self):
     print "begin PESFS:"
     try:
         del (self.pesobj)
     except:
         pass
     self.pesobj = PES.PES(self.X,
                           self.Y,
                           self.S,
                           self.D,
                           self.lb.flatten(),
                           self.ub.flatten(),
                           self.para['kindex'],
                           self.para['mprior'],
                           self.para['sprior'],
                           DH_SAMPLES=self.para['DH_SAMPLES'],
                           DM_SAMPLES=self.para['DM_SAMPLES'],
                           DM_SUPPORT=self.para['DM_SUPPORT'],
                           DM_SLICELCBPARA=self.para['DM_SLICELCBPARA'],
                           mode=self.para['SUPPORT_MODE'])
     [xmin, ymin,
      ierror] = self.pesobj.search_pes(self.sdefault,
                                       volper=self.para['volper'])
     return [xmin, self.para['s'], [sp.NaN]]
Example #6
0
lb = sp.array([-1.] * d)
ub = sp.array([1.] * d)
[X, Y, S, D] = ESutils.gen_dataset(nt, d, lb, ub, GPdc.SQUEXP,
                                   sp.array([1.5, 0.35, 0.30]))

kindex = GPdc.SQUEXP
mprior = sp.array([0.] + [-1.] * d)
sprior = sp.array([1.] * (d + 1))

pesobj = PES.PES(X,
                 Y,
                 S,
                 D,
                 lb,
                 ub,
                 kindex,
                 mprior,
                 sprior,
                 DH_SAMPLES=8,
                 DM_SAMPLES=8,
                 DM_SUPPORT=400,
                 DM_SLICELCBPARA=1.,
                 mode=ESutils.SUPPORT_SLICEEI)

np = 150
sup = sp.linspace(-1, 1, np)
Dp = [[sp.NaN]] * np
Sp = sp.array([[1e-3] * np]).T
Xp0 = sp.vstack([sp.array([i, pesobj.Z[0, 1]]) for i in sup])
Xp1 = sp.vstack([sp.array([pesobj.Z[0, 0], i]) for i in sup])

f, a = plt.subplots(d)
Example #7
0
# Creates stitch outlines for each shape
if args.noOutline is not True:
    subshapeLineGroups = prependShapeTraces(paths, subshapeLineGroups, maxStitchDistance=maxStitchDistance)

#DEBUG lines: [[[Line(0+0j, 300+0j), Line(300+0j, 300+300j), Line(300+300j, 0+300j) , Line(0+300j, 0+0j)]]]
PECCommands = createPECStitchRoutines(subshapeLineGroups, fillColors, threadWidth, maxStitchDistance=maxStitchDistance)

left, right, bottom, top = shape.bbox()

pec = PEC(label="simple", colors=PECColors, commands=PECCommands, size=complex(right - left, top - bottom))

# Render the PEC commands
renderPEC(pec)

pes = PES(PEC=pec, shape=shape)
encodedPES = pes.encode()

with open(args.outputFile, "w") as f:
    f.write(encodedPES)

print("Wrote {} to disk.".format(args.outputFile))

if args.debugRendering:
    loadedPES = pyembroidery.read(args.outputFile)
    if loadedPES is not None:
        print("Generating debug image.")
        debugImagePath = replaceFilenameAndExtensionFromPath(args.outputFile, "debugPicture" + getFilenameAndExtensionFromPath(args.outputFile)[0], "png")
        pyembroidery.write_png(loadedPES, debugImagePath)
        print("Image written to disk: {}".format(debugImagePath))
    else: