Exemple #1
0
def run(p1_name, heuristic1, p2_name, heuristic2, times):
    rounds = times
    #black
    p1_color = "B"
    p1_win = 0

    #white
    p2_color = "W"
    p2_win = 0

    ties = 0

    for i in range(rounds):
        print 'Started game %s' % i
        game = Game(p1_color="B", p1_mode="C", p2_mode="C")
        game.start()
        winner = play_game(game, heuristic1, heuristic2)
        if winner == p1_color:
            p1_win += 1
            print '>>>>>>>>>>>>>>>>>>> %s win!' % (p1_name)
        elif winner == p2_color:
            p2_win += 1
            print '>>>>>>>>>>>>>>>>>>> %s win!'% (p2_name)
        else:
            print 'Tie.'
            ties += 1
        print 'finished game %s' % i


    print 'After %s rounds:\n' % rounds
    print '%s: %s ' % (p1_name, p1_win)
    print '%s: %s' % (p2_name, p2_win)
    print 'ties: %s' % ties
    print 'Probabilities:'
    print '%s: %s' % (p1_name, str(p1_win/float(rounds)))
    print '%s: %s' % (p2_name, str(p2_win/float(rounds)))
    print 'ties: %s' % str(ties/float(rounds))

    graphics.plot(p1_name, p1_win, p2_name, p2_win, ties)    
Exemple #2
0
from erode import *
from config import *
from time import time
import matplotlib.pyplot as plt
from map import Map, set_up_landscape
from graphics import plot, plot_gradient, plot3d

scatter = False
size = 128
runs = 1000
debug = Map.of(size)
set_up_landscape(debug, 1, skip_levels)

debug.blur(2)
plot(debug.E, file="debug-before.png")
trs = []

start = time()

for count in range(runs):
    if count % 4 == 0:
        print("%5.2f%%" % (count / runs * 100))
    trs += erode(debug, 100, 100)

end = time()

print("Took %6.2fs" % (end - start))

plot3d(debug.E, file="debug-carved.png")
Exemple #3
0
                                                 dpi=300,
                                                 bbox_inches='tight')

   # If desired, display the plot to the screen
   if display:
      matplotlib.pyplot.show()

   if closeFigure:
      matplotlib.pyplot.close('all')


if __name__ == '__main__':
   import graphics
   import numpy
   import os

   x = []
   y = []
   label = []
   for i in range(6):
      x += [numpy.arange(11)]
      y += [(i + 1) * x[i]]
      label += ['$y = %ix$' % i]

   saveFilename = 'plot.pdf'

   graphics.plot(x[0], y[0])
   graphics.plot(x, y)
   graphics.plot(x, y, label=label, saveFilename=saveFilename)

Exemple #4
0
    def go(self):
        var = self.metadata['ceof']['var']

        if ('Lat' not in self.keys()) or ('Lon' not in self.keys()):
            self.data['Lon'], self.data['Lat'] = numpy.meshgrid(
                self.data['lon'], self.data['lat'])
        if 'prefilter' in self.metadata:
            print "Filtering in time"
            if self.metadata['prefilter']['type'] == 'bandpass':
                self.filter(
                    var,
                    l=self.metadata['prefilter']['l'],
                    type=self.metadata['prefilter']['type'],
                    l2=self.metadata['prefilter']['l2'],
                )
            else:
                self.filter(var,
                            l=self.metadata['prefilter']['l'],
                            type=self.metadata['prefilter']['type'])
        # ---- Normalize -----------------------------------------------------
        #self.data['ssh']=self.data['ssh']-self.data['ssh'].mean()
        # --------------------------------------------------------------------
        ind = ma.getmaskarray(self.data[var]).any(axis=0) == False

        I, J, K = self.data[var].shape

        if 'ceof_coord' in self.metadata:
            coord = self.metadata['ceof_coord']
            assert type(coord) == list
            from shapely.geometry import Point, Polygon
            polygon = Polygon(coord)
            for j in range(J):
                for k in range(K):
                    ind[j, k] = ind[j, k] & polygon.intersects(
                        Point(self.data['Lon'][j, k], self.data['Lat'][j, k]))

        #ind = ind&tmp

        N = int((numpy.ones(ind.shape)[ind]).sum())
        grid_index = ma.masked_all((N, 2), dtype='i')
        n = -1
        for j in range(J):
            for k in range(K):
                if ind[j, k]:
                    n += 1
                    grid_index[n, :] = [j, k]

        self.grid_index = grid_index
        data2D = numpy.zeros((I, N), dtype=self.data[var].dtype)
        for n, ind in enumerate(self.grid_index):
            data2D[:, n] = self.data[var][:, ind[0], ind[1]]

        print "Running CEOF_2D()"
        output = CEOF_2D(data2D, cfg=self.metadata['ceof'])

        nmodes = len(output['lambdas'])

        for k in [k for k in output.keys() if k is not 'ceof']:
            self.data[k] = output[k]

        self.data['eofs'] = ma.masked_all((J, K, nmodes), dtype='complex128')
        for n, ind in enumerate(self.grid_index):
            self.data['eofs'][ind[0], ind[1], :] = output['eofs'][n, :]

# ----
        self.set_wavelenght()

        #for k in self.data.keys():
        #    print k, self.data[k].shape, type(self.data[k])

        if 'figs' in self.metadata:
            print "Creating figures for %s modes" % nmodes
            #for nmode in range(5):
            #for n in range(10):
            for n in range(nmodes):
                #eof2D=ceof['eofs'][:,nmode]
                #pc2D=ceof['pcs'][:,nmode]
                ##
                ##eof=ma.masked_all(self.data['ssh'].shape[1:],dtype=eofs.dtype)
                #eof=ma.masked_all(self.data['ssh'].shape[1:],dtype='complex128')
                ##pc=ma.masked_all(self.data['ssh'].shape[1:],dtype=pcs.dtype)
                #pc=ma.masked_all(self.data['ssh'].shape[1:],dtype='complex128')
                ##
                ##for n,i in enumerate(ind):
                ##
                ## ---- 2D back to grid ----
                #for n,ind in enumerate(self.data2D['grid_index']):
                #    #print n,ind
                #    eof[ind[0],ind[1]] = eof2D[n]
                #    #pc[ind[0],ind[1]] = pc2D[n]
                #pc = pc2D
                #print pc2D.shape
                #varfrac = round(getvariancefraction(lambdas)[nmode]*1e2)
                #varfrac = ceof['variancefraction'][nmode]
                #fig = self.plot(eof_amp,eof_phase,pc_amp,pc_phase,nmode,varfrac)
                if 'suffix' in self.metadata['figs']:
                    filename = "../figs/CEOF_%s_mode%s.eps" % (
                        self.metadata['figs']['suffix'], (n + 1))
                else:
                    filename = "../figs/CEOF_mode%s.eps" % (n + 1)
                limits = {
                    'LatIni': -5,
                    'LatFin': 15,
                    'LonIni': -60,
                    'LonFin': -25
                }
                #self.plot(self['eofs'][:,:,n],self['pcs'][:,n],(n+1),self['variancefraction'][n],filename=filename,limits=limits,cumvarfrac=self['variancefraction'][:(n+1)].sum())
                import graphics
                graphics.plot(self['eofs'][:, :, n],
                              self['pcs'][:, n], (n + 1),
                              self['variancefraction'][n],
                              filename=filename,
                              data=self.data,
                              limits=limits,
                              cumvarfrac=self['variancefraction'][:(n +
                                                                    1)].sum())
Exemple #5
0
def plotboth(file):
    plot(demo.E, file=file)
    plot3d(demo.E, file=file[:-len(".png")] + "_3d.png")
            raise ValueError(msg)

    @property
    def wavelengths(self):
        return self._wavelengths

    @property
    def wavelength_minimum(self):
        return self._wavelengthMinimum

    @property
    def wavelength_maximum(self):
        return self._wavelengthMaximum

    @property
    def powers(self):
        return self._powers


if __name__ == '__main__':
    import graphics
    import color

    a = color.CIEReferenceIlluminant('a')
    d65 = color.CIEReferenceIlluminant()
    graphics.plot([a.wavelengths, d65.wavelengths], [a.powers, d65.powers],
                  title='CIE Reference Illuminants',
                  xlabel='Wavelength [nm]',
                  ylabel='Power',
                  label=['A', 'D65'])
Exemple #7
0
from erode import *
from config import *
from time import time
import matplotlib.pyplot as plt
from map import Map, set_up_landscape
from graphics import plot, plot_gradient, plot3d

scatter = False
size = 128
runs = 1000
debug = Map.of(size)
set_up_landscape(debug, 1, skip_levels)

debug.blur(2)
plot(debug.E, file="debug-before.png")
trs = []

start = time()

for count in range(runs):
    if count % 4 == 0:
        print("%5.2f%%" % (count / runs * 100))
    trs += erode(debug, 100, 100)

end = time()

print("Took %6.2fs" % (end - start))

plot3d(debug.E, file="debug-carved.png")
Exemple #8
0
def plotboth(file):
    plot(demo.E, file=file)
    plot3d(demo.E, file=file[:-len(".png")] + "_3d.png")
Exemple #9
0
   dt = \
      datetime.datetime.strptime(data[idx][0][0:10] + ' ' + data[idx][0][11:-1],
                                 '%Y-%m-%d %H:%M:%S.%f')
   day = \
      (dt.toordinal() - datetime.date(dt.year, 1, 1).toordinal() + 1) + \
      dt.hour/24 + \
      dt.minute/(24*60) + \
      dt.second/(24*60*60)
   days = numpy.append(days, day)

# Parse dependent data from the selected column of the logged data
dependent = numpy.empty(0, dtype=numpy.float64)
for idx in range(start_idx, end_idx):
   dependent = numpy.append(dependent, float(data[idx][column_selected]))

# Plot the specified dependent data as a function of time
if minimum_dependent is None or maximum_dependent is None:
   y_limits = None
else:
   y_limits = [minimum_dependent, maximum_dependent]

graphics.plot(days,
              dependent,
              xlabel='Day Number [UTC]',
              ylabel=headers[column_selected],
              ylim=y_limits,
              xgrid=True,
              ygrid=True,
              display=display,
              saveFilename=plot_filename)
Exemple #10
0
    def go(self):
        var = self.metadata['ceof']['var']

        if ('Lat' not in self.keys()) or ('Lon' not in self.keys()):
            self.data['Lon'], self.data['Lat'] = numpy.meshgrid(self.data['lon'],self.data['lat'])
        if 'prefilter' in self.metadata:
            print "Filtering in time"
            if self.metadata['prefilter']['type'] == 'bandpass':
                self.filter(var,l=self.metadata['prefilter']['l'],type=self.metadata['prefilter']['type'], l2=self.metadata['prefilter']['l2'],)
            else:
                self.filter(var,l=self.metadata['prefilter']['l'],type=self.metadata['prefilter']['type'])
        # ---- Normalize -----------------------------------------------------
        #self.data['ssh']=self.data['ssh']-self.data['ssh'].mean()
        # --------------------------------------------------------------------
        ind = ma.getmaskarray(self.data[var]).any(axis=0) == False

        I, J, K = self.data[var].shape
    
        if 'ceof_coord' in self.metadata:
            coord = self.metadata['ceof_coord']
            assert type(coord) == list
            from shapely.geometry import Point, Polygon
            polygon = Polygon(coord)
            for j in range(J):
                for k in range(K):
                        ind[j,k] = ind[j,k] & polygon.intersects(
                                Point(self.data['Lon'][j,k],
                                    self.data['Lat'][j,k]))
  
        #ind = ind&tmp
    
        N = int((numpy.ones(ind.shape)[ind]).sum())
        grid_index = ma.masked_all((N,2), dtype='i')
        n = -1
        for j in range(J):
            for k in range(K):
                if ind[j, k]:
                    n += 1
                    grid_index[n, :] = [j, k]
    
        self.grid_index = grid_index
        data2D = numpy.zeros((I,N), dtype=self.data[var].dtype)
        for n, ind in enumerate(self.grid_index):
            data2D[:, n] = self.data[var][:,ind[0], ind[1]]

        print "Running CEOF_2D()"
        output = CEOF_2D(data2D, cfg=self.metadata['ceof'])

        nmodes = len(output['lambdas'])

        for k in [k for k in output.keys() if k is not 'ceof']:
            self.data[k] = output[k]

        self.data['eofs'] = ma.masked_all((J, K, nmodes), dtype='complex128')
        for n,ind in enumerate(self.grid_index):
            self.data['eofs'][ind[0],ind[1],:] = output['eofs'][n,:]

	# ----
	self.set_wavelenght()

        #for k in self.data.keys():
        #    print k, self.data[k].shape, type(self.data[k])

        if 'figs' in self.metadata:
	    print "Creating figures for %s modes" % nmodes
            #for nmode in range(5):
            #for n in range(10):
            for n in range(nmodes):
                #eof2D=ceof['eofs'][:,nmode]
                #pc2D=ceof['pcs'][:,nmode]
                ##
                ##eof=ma.masked_all(self.data['ssh'].shape[1:],dtype=eofs.dtype)
                #eof=ma.masked_all(self.data['ssh'].shape[1:],dtype='complex128')
                ##pc=ma.masked_all(self.data['ssh'].shape[1:],dtype=pcs.dtype)
                #pc=ma.masked_all(self.data['ssh'].shape[1:],dtype='complex128')
                ##
                ##for n,i in enumerate(ind):
                ##
                ## ---- 2D back to grid ----
                #for n,ind in enumerate(self.data2D['grid_index']):
                #    #print n,ind
                #    eof[ind[0],ind[1]] = eof2D[n]
                #    #pc[ind[0],ind[1]] = pc2D[n]
                #pc = pc2D
                #print pc2D.shape
                #varfrac = round(getvariancefraction(lambdas)[nmode]*1e2)
                #varfrac = ceof['variancefraction'][nmode]
                #fig = self.plot(eof_amp,eof_phase,pc_amp,pc_phase,nmode,varfrac)
                if 'suffix' in self.metadata['figs']:
                    filename="../figs/CEOF_%s_mode%s.eps" % (self.metadata['figs']['suffix'],(n+1))
                else:
                    filename="../figs/CEOF_mode%s.eps" % (n+1)
                limits={'LatIni':-5, 'LatFin':15, 'LonIni':-60, 'LonFin':-25}
                #self.plot(self['eofs'][:,:,n],self['pcs'][:,n],(n+1),self['variancefraction'][n],filename=filename,limits=limits,cumvarfrac=self['variancefraction'][:(n+1)].sum())
                import graphics
                graphics.plot(self['eofs'][:,:,n], self['pcs'][:,n],
                        (n+1),self['variancefraction'][n],
                        filename=filename,
                        data = self.data,
                        limits=limits,
                        cumvarfrac=self['variancefraction'][:(n+1)].sum())
Exemple #11
0
   @property
   def zbars(self):
      return self._zbars


if __name__ == '__main__':
   import graphics
   import color

   standardObserver = color.CIEStandardObserver()
   graphics.plot([standardObserver.wavelengths,
                  standardObserver.wavelengths,
                  standardObserver.wavelengths],
                 [standardObserver.xbars,
                  standardObserver.ybars,
                  standardObserver.zbars],
                 title='1931 2-degree Standard Observer',
                 xlabel='Wavelength [nm]',
                 ylabel='Response',
                 ylim=[0, 2.5],
                 label=['x-bar', 'y-bar', 'z-bar'])

   standardObserver = color.CIEStandardObserver('10deg')
   graphics.plot([standardObserver.wavelengths,
                  standardObserver.wavelengths,
                  standardObserver.wavelengths],
                 [standardObserver.xbars,
                  standardObserver.ybars,
                  standardObserver.zbars],
                 title='1964 10-degree Standard Observer',
                 xlabel='Wavelength [nm]',