from glob import glob
import numpy as np
histo_files = glob('histo*.dat')
stats_files = glob('stats*.dat')
complete_files=glob('*.dat')
binsize=25
binstart = 120#old value
endbin = 40
mean_bins = 80
pausestart=40
maxbins=21
END=1
offset=0
DYNAMIC=0
for files in histo_files:
if END:
num=-1
freq=1
text = files.split('_')
for things in text:
if things.startswith('freq'):
temp = things.split('freq')
if temp[1]!='':
freq = float(temp[1].rstrip('.dat'))
if things.startswith('number'):
temp = things.split('number')
if temp[1] !='':
num = int(temp[1].rstrip('.dat'))
if num < 0:
DYNAMIC=1
else:
offset = int(1000.0/freq*(num-1)/(1.0*binsize))
print( offset)
print(files)
outname = 'tpose' +files.split('histos')[1]
statsname = 'stats'+files.split('histos')[1]
steadname = 'steady'+files.split('histos')[1]
if outname in complete_files and steadname in complete_files:
continue
xval, yval = np.loadtxt(statsname,unpack=True,usecols=[0,1])
data = np.loadtxt(files)
try:
nbins = len(data[0])
except:
print( files)
continue
bins = [-1,-1]
for i in range(nbins):
bins.append(i*binsize)
steadydata = []
for i in range(len(data)):
shifted_data = np.concatenate((data[i][pausestart:],data[i][:pausestart-1])) # initial step now
mean = np.mean(shifted_data[nbins-mean_bins:]) #background mean
row = [yval[i],xval[i],mean]
if DYNAMIC:
offset = int(1000.0/freq*(yval[i]-1)/(1.0*binsize))
print( i, offset)
for j in range(maxbins-1):
items = []
for k in range(nbins): # means of equal intervals
if k<nbins-mean_bins or k>=nbins-j-1:
continue
#print data[i][k:k+j+1]
#quit()
items.append(np.mean(data[i][k:k+j+1])) # mean of background interval of length pause
#print items
#quit()
locmean = np.mean(shifted_data[offset:j+1+offset]) # mean of pause
locvar = np.std(items) # variance of background intervals
row.append(locmean/mean)
row.append(locvar/mean)
steadydata.append(row)
#print row
#steadydata = np.transpose(steadydata)
np.savetxt(steadname,steadydata)
#print len(data), len(data[0]), len(xval)
data = np.insert(data,0,yval,axis=1)
data = np.insert(data,0,xval,axis=1)
#print len(data), len(data[0]), len(xval)
data = np.insert(data,0,[bins],axis=0)
outdata = np.transpose(data)
#print outname
np.savetxt(outname,outdata)
#quit()