In [1]:
from stack import *

N = 100; 
L = 10.0e3; dL=0.2*L; 
L1= 1.0e3;  dL1=0.2*L1; 
n0= 1.0; n1=1.35

#concat = lambda x: 'io_files/saved_stack_100_10um_1um_20p-'+ x +'.txt'
#files = map(concat,['A','B','C','D','E'])
#files = map(concat,['A'])
#stacks = map(load,files)

#stacks = map(load,['io_files/saved_stack_special-A.txt','io_files/saved_stack_special-B.txt'])

stacks = map(lambda q:random_stack(N/q,n0,n1,dL,L,dL1=dL1,L1=L1),[1])

#pyplot.figure(figsize=(18,5))
#output = map(lambda s:s.plot(),stacks)
stacks[0].plot()



In [2]:
#wlrange = [1300.0,1900.0]
wlrange = [1500.0,1650.0]
Nmodes = 1000
dw = (wlrange[1]-wlrange[0])/float(Nmodes)
#print 1.0/dw,"data points per nm"
#print dw,"nm per data point"

In [3]:
specs = map(lambda s:s.scan('transmission',wlrange,Nmodes,style='-'),stacks)



In [4]:
for j in range(len(specs)):
    data = locate_spectral_peaks(abs(specs[j][:,1]))[:,0]
    data = map(lambda j:data[j+1]-data[j],range(len(data)-1))
    print 'average peak-to-peak distance is:',np.average(data)*dw,'nm'


average peak-to-peak distance is: 2.47118644068 nm

In [12]:
"""
save(stacks[0],'io_files/saved_stack_special-A.txt')
save(stacks[1],'io_files/saved_stack_special-B.txt')
save(stacks[2],'io_files/saved_stack_100_2um_1um_20p-C.txt')
save(stacks[3],'io_files/saved_stack_100_2um_1um_20p-D.txt')
save(stacks[4],'io_files/saved_stack_100_2um_1um_20p-E.txt')
"""
def multiplot(corrs):
    for corr in corrs:
        pyplot.figure(figsize=(18,5))
        pyplot.xscale('log')
        pyplot.xlabel('wavelength displaced (nm)',fontsize=20)
        pyplot.plot(np.arange(len(corr))*dw,abs(corr),'b-')
        pyplot.show()

corrs = map(lambda s:autocorrelate((s[:,1]),900),specs)

#multiplot([reduce(lambda x,y:x+y,corrs)])
multiplot(corrs)



In [5]:
"""
fs = map(lambda c:abs(np.fft.rfft(c)),corrs)
for f in fs:
    pyplot.figure(figsize=(18,5))
    #pyplot.axis([2,20,0,1000])
    pyplot.plot(f[1:200],'-o');pyplot.show()
"""


Out[5]:
"\nfs = map(lambda c:abs(np.fft.rfft(c)),corrs)\nfor f in fs:\n    pyplot.figure(figsize=(18,5))\n    #pyplot.axis([2,20,0,1000])\n    pyplot.plot(f[1:200],'-o');pyplot.show()\n"

In [ ]: