示例#1
0
    def __init__(self, nw, order, dim=2):
        self.nw = nw
        self.order = order
        self.dim = dim

        num_states = nw.vcount()
        self.P = {
            state: {
                action: [(action, self.reward(state, action), False)]
                for action in self.nw.neighbors(state)
            }
            for state in range(num_states)
        }
        dest_idx = self.nw.vs.find(attr='d').index

        for state in self.nw.neighbors(dest_idx):
            self.P[state][dest_idx] = [(dest_idx, self.reward(state,
                                                              dest_idx), True)]

        self.num_s = num_states

        upper = self.num_s - 1
        self.FB = Fourier.FourierBasis(self.dim, [[0, upper], [0, upper]],
                                       order=self.order)

        self.c_norm = np.linalg.norm(self.FB.multipliers, 2, 1)
        self.c_norm[0] = 1
示例#2
0
def histogramFromData():
    ''' Creates a histogram of the data stored in data.txt '''

    # store data in a list
    file = open('data.txt')
    data = []
    for line in file.readlines():
        data.append(float(line))
    file.close()

    # model data as overlapping sine waves
    import math
    time = []
    value = []
    for point in range(pointsPerPlot):
        t = point * maxTime / pointsPerPlot
        v = 0.
        for datum in data:
            v += math.sin(t * 2 * math.pi * datum)
        time.append(t)
        value.append(v)

    # adjust min and max
    global minFreq
    global maxFreq
    minFreq = min(data)
    maxFreq = max(data)

    # perform Fourier transform on wave model
    import Fourier
    frequency, intensity = Fourier.Transform(time,
                                             value,
                                             minFreq=minFreq,
                                             maxFreq=maxFreq)

    # plot the histogram
    import matplotlib.pyplot as plt
    plt.plot(frequency, intensity)
    plt.yticks([])

    def markTimes(times, color='blue'):
        for time in times:
            height = intensity[0]
            closest = math.fabs(frequency[0] - time)
            for i in range(len(frequency)):
                if math.fabs(frequency[i] - time) < closest:
                    closest = math.fabs(frequency[i] - time)
                    height = intensity[i]
            plt.plot([time, time], [0, height], color=color)

    ## mark my times
    #myTimes = [60.43,59.496,58.71,66.56,58,56.97]
    #markTimes(myTimes, 'red')
    ## mark Kim's times
    #kimsTimes = [66.831,62.72,62.47,68.69,63.94,62.65]
    #markTimes(kimsTimes, 'green')

    plt.show()
示例#3
0
    def paintGL(self):
        #print('drawing')
        GL.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT)
        now = time.time() - self.startTime
        GL.glLoadIdentity()
        GL.glTranslate(0.0, 0.0, -5.0)
        GL.glScale(2.0, 2.0, 2.0)
        GL.glRotate(1000 * math.sin(now / 10), 0, 1, 0)
        GL.glRotate(1000 * math.cos(now / 10), 1, 0, 0)
        GL.glRotate(100 * math.tan(now / 10), 0, 0, 1)
        GL.glTranslate(-0.5, -0.5, -0.5)

        GL.glEnableClientState(GL.GL_VERTEX_ARRAY)
        GL.glEnableClientState(GL.GL_COLOR_ARRAY)
        GL.glVertexPointerf(self.cubeVtxArray)
        GL.glColorPointerf(self.cubeClrArray)
        GL.glDrawElementsui(GL.GL_QUADS, self.cubeIdxArray)

        GL.glLoadIdentity()
        GL.glBegin(GL.GL_LINES)
        GL.glColor3f(0, 1, 0)

        #draw the grid
        for x in range(50):
            #print(str((x/2)-12.5))
            #horizontal
            GL.glVertex3f(25, -1, ((x / 2) - 12.5))
            GL.glVertex3f(-25, -1, ((x / 2) - 12.5))
            #forward
            GL.glVertex3f(((x / 2) - 12.5), -1, 12.5)
            GL.glVertex3f(((x / 2) - 12.5), -1, -12.5)

        GL.glEnd()
        #draw the sound data
        data = Fourier.fft_abs(self.ear.stream_read())
        GL.glBegin(GL.GL_LINES)
        GL.glColor3f(0, 0, 1)
        #width is the world space horizontal length of the drawing
        width = 2
        #delta is the space in between lines
        delta = width / self.ear.chunk
        for x in range(len(data)):
            GL.glVertex3f((delta * x - width / 2), 0.00001 * data[x] - 5, -5)
            GL.glVertex3f((delta * x - width / 2), -5, -5)
        GL.glEnd()
        #self.drawData()

        GL.glFlush()
示例#4
0
def transform():
    global filename, passes
    global ui
    Averaging.Averaging(filename, passes)
    Fourier.Fourier(filename)
    freq = []
    power = []
    with open(filename + '_fourier.csv', 'r') as data:
        _ = data.readline()
        _ = data.readline()
        for i in data.readlines():
            line = i.split(',')
            freq.append(float(line[0]))
            power.append(abs(complex(line[-1])))
    ui.fourierGraph.plot(freq, power)
    print("Transform finished")
示例#5
0
plt.hist(np.array(d16nord))
plt.figure()
plt.hist(np.array(d15nord))

np.mean(d16nord)
np.mean(d15nord)
np.std(d16nord)
np.std(d15nord)
np.median(d16nord)
np.median(d15nord)

import Fourier

plt.figure()
plt.plot(np.array(var_nord16), lw = 2)
plt.plot(Fourier.fourierExtrapolation(var_nord16, 0), lw = 2, color = 'black')

data = pd.read_excel("H:/Energy Management/04. WHOLESALE/02. REPORT PORTAFOGLIO/2016/06. MI/DB_Borse_Elettriche_PER MI.xlsx", sheetname = 'DB_Dati')
data = data.set_index(data['Date'])
data = data.ix[data.index.month <= 9]
pnord = data['MGP NORD [€/MWh]']
pnord = pnord.ix[:pnord.shape[0]-1]
cnord = data['MGP CNOR [€/MWh]']
cnord = cnord.ix[:pnord.shape[0]-1]
csud = data['MGP CSUD [€/MWh]']
csud = csud.ix[:csud.shape[0]-1]
sud = data['MGP SUD [€/MWh]']
sud = sud.ix[:sud.shape[0]-1]
sici = data['MGP SICI [€/MWh]']
sici = sici.ix[:sici.shape[0]-1]
sard = data['MGP SARD [€/MWh]']
示例#6
0
TransformedDataDFT = []
TransformedDataFFT = []
Sampels = []
TimeBeforeFFT = []
TimeAfterFFT = []
TimeDifferenceFFT = []
TimeBeforeDFT = []
TimeAfterDFT = []
TimeDifferenceDFT = []
NumberOfData = []
for i in range(5):
    Sampels.append([random.randint(1, 10000) for _ in range(2**(4 + i * 3))])
    NumberOfData.append(len(Sampels[i]))
for i in range(5):
    TimeBeforeFFT.append(time.time())
    TransformedDataFFT.append(Fourier.FFT(Sampels[i]))
    TimeAfterFFT.append(time.time())
    TimeDifferenceFFT.append(TimeAfterFFT[i] - TimeBeforeFFT[i])
    TimeBeforeDFT.append(time.time())
    TransformedDataDFT.append(Fourier.DFT(Sampels[i]))
    TimeAfterDFT.append(time.time())
    TimeDifferenceDFT.append(TimeAfterDFT[i] - TimeBeforeDFT[i])
    MeanSquareError.append(
        np.square(np.subtract(TransformedDataDFT[i],
                              TransformedDataFFT[i])).mean())
print(MeanSquareError)
for i in range(len(MeanSquareError)):
    Error.append(abs(MeanSquareError[i]))

plt.plot(NumberOfData, Error)
plt.ylim(-2, 2)
示例#7
0
######################################################################
dpun = np.diff(np.array(data[data.columns[12]].dropna().resample('D').mean()))

import statsmodels.api

plt.figure()
plt.plot(statsmodels.api.tsa.periodogram(dpun))

per = statsmodels.api.tsa.periodogram(dpun)
np.where(per > 50)[0]
per[per > 50]

import Fourier

reconstructed = Fourier.fourierExtrapolation(dpun, 0, 16)

plt.figure()
plt.plot(dpun)
plt.plot(reconstructed, color = 'red')

np.mean(dpun - reconstructed)
np.std(dpun - reconstructed)

from pandas.tools import plotting

plt.figure()
plotting.lag_plot(pd.DataFrame(dpun))

plt.figure()
plt.plot(statsmodels.api.tsa.acf(dpun))
示例#8
0
scipy.stats.mstats.mquantiles(dv_p, prob=[0.025, 0.975])
scipy.stats.mstats.mquantiles(dv_f, prob=[0.025, 0.975])

###############

divp = np.diff(vol_p)
divf = np.diff(vol_f)

plt.figure()
plt.plot(divp)
plt.plot(np.array(vol_p))
plt.figure()
plt.plot(divf, color='magenta')
plt.plot(np.array(vol_f), color='black')

ddvp = np.diff(dv_p)
ddvf = np.diff(dv_f)

plt.figure()
plt.plot(ddvp)
plt.plot(np.array(dv_p))
plt.figure()
plt.plot(ddvf, color='magenta')
plt.plot(np.array(dv_f), color='black')

fdvp = Fourier.fourierExtrapolation(
    dv_p, 0, 25)  ### best one to see the 'right' process for the volatility
plt.figure()
plt.plot(np.array(dv_p))
plt.plot(fdvp, color='black', lw=2)
示例#9
0
scipy.stats.mstats.mquantiles(dv_f, prob = [0.025, 0.975])


###############

divp = np.diff(vol_p)
divf = np.diff(vol_f)

plt.figure()
plt.plot(divp)
plt.plot(np.array(vol_p))
plt.figure()
plt.plot(divf, color = 'magenta')
plt.plot(np.array(vol_f), color = 'black')


ddvp = np.diff(dv_p)
ddvf = np.diff(dv_f)

plt.figure()
plt.plot(ddvp)
plt.plot(np.array(dv_p))
plt.figure()
plt.plot(ddvf, color = 'magenta')
plt.plot(np.array(dv_f), color = 'black')

fdvp = Fourier.fourierExtrapolation(dv_p,0, 25) ### best one to see the 'right' process for the volatility
plt.figure()
plt.plot(np.array(dv_p))
plt.plot(fdvp, color = 'black', lw = 2)