titleString = "2 Qubit Anticrossing"
outputFilename = "anticrossing"
dataFile = r"data/Spectroscopy Survey - qubit1-7.txt"

print "Loading data..."

datacube = Datacube()
datacube.loadtxt(dataFile)

##

from numpy import *
from numpy.linalg import *

m1 = zeros((len(datacube.children()[0]),len(datacube)))
m2 = zeros((len(datacube.children()[0]),len(datacube)))

for i,child in enumerate(datacube.children()):
	m1[:,i] = child["p1x"] 
	m2[:,i] = child["px1"] 

##Generate a model of the qubit anticrossing

def tensor(a,b):
	return kron(b,a)

idatom = matrix(eye(2))

H_1 = lambda f1:tensor(matrix([[-f1/2.,0],[0,f1/2.]]),idatom)
H_2 = lambda f2:tensor(idatom,matrix([[-f2/2.,0],[0,f2/2.]]))
		i+=2
		if i >= len(lines):	
			break
		curve = Datacube("l1 = %g nH" % lq)
		curves.addChild(curve,lq = lq)
		curve.parameters()["defaultPlot"] = [("freq","mag")]
	elif len(elements) == 2:
		(freq,mag) = map(lambda x:float(x),lines[i].split(","))
		curve.set(freq = freq,mag = mag)
		curve.commit()
	i+=1	
curves.savetxt("sonnet_model")
##
import os
from numpy import *
m = zeros((len(curves.children()[0]),len(curves.children())))
i = 0
for child in curves.children():
	print mean(child["mag"]),max(child["mag"])
	m[:,i] = child["mag"]
	i+=1
m = m [::-1]
figure(10)
clf()
hsv()
imshow(m,aspect = 'auto',interpolation = 'bilinear',extent = (curves.attributesOfChild(curves.children()[0])["lq"],curves.attributesOfChild(curves.children()[-1])["lq"],child["freq"][0],child["freq"][-1]))
ticklabel_format(style = 'plain',axis = 'y',useOffset = False)
#figtext(0.1,0.95,os.getcwd()+"/"+filename,size = 7)
#ylim(11,12)
#xlim(2,2.3)
xlabel("$L_{qb}$ [nH]")