# Import and interpolate the resistivity data
Py = Analysis.AnalyseFile('/Volumes/data/Projects/Spincurrents/Joe Batley/Measurements/SC004/Transport/Reference Data/Py Res/RN200_1um_rhovT_.txt')
Py.sort('Temperature')
Py.mulitply(r'$\rho$ ($\mu \Omega$ cm)',1e-8,replace=True,header=r'$\rho$ ($\Omega$ m)')
print Py.column_headers
PyR = interpolate.interp1d(Py.column('Temperature'),Py.column(r'$\rho$ ($\Omega$ m)'))

Cu = Stoner.DataFile('/Volumes/data/Projects/Spincurrents/Joe Batley/Measurements/SC004/Transport/Reference Data/Cu spacer resistance/Resistivity/SC004_2_T_Cu_resistivity_vs_T.txt')
Cu.sort('T (K)')
print Cu.column_headers
CuR = interpolate.interp1d(Cu.column('T (K)'),Cu.column(r'$\rho$ ($\Omega$m)'))

# Import Delta R vs T data and group
pattern = re.compile('SC004_(?P<L>\d*)_(?P<Device>\w*)_DeltaRvsT')
folder = DataFolder('/Volumes/data/Projects/Spincurrents/Joe Batley/Measurements/SC004/Transport/DeltaR_vs_Sep/Plot',pattern = pattern)
folder.group('L')
#T = folder[0].column('Sample Temp')
# Walk groups and interpolate
Spinsig = []
Spinsigerr = []
Sep = []
folder.walk_groups(interpSig,group=True,replace_terminal=True)
print Sep



# create a set of Parameters
params = Parameters()
#params.add('Lambda_N',   value = 500e-9,min=0)
params.add('Alpha', value = 0.4,min=0,max=1)
    avg['IVtemp']=f['IVtemp']
  avg.apply(row_avg, 1, replace = False, header = 'Mean Coef')
  avg.apply(err, 1, replace = False, header = 'Err Coef')
  return avg
  
def P_AP_col(folder,keys):
  coef = Stoner.DataFile()
  for f in folder:
    coef.add_column(f.column('Mean Coef'),str(f['IVtemp']))
    coef.add_column(f.column('Err Coef'),str(f['IVtemp'])+' Err')
  print coef
  return coef

pattern = re.compile('_(?P<IVtemp>\d*)K_NLDCIV_300uA_DigFilt10rep_(?P<state>\w*)_')
folder = DataFolder('/Users/Joe/PhD/Measurements/RN0151_4T/NLIVvsT/Both/',pattern = pattern)
folder.group(['state','IVtemp'])

folder.walk_groups(IV_group_Avg,group=True,replace_terminal=True)

folder.walk_groups(P_AP_col,group=True,replace_terminal=True)

print folder['AP']
  
for f in folder:
  
  for column in f.column_headers:
    plt.title(r'NL IV offset vs Temperature for Parallel (red) and Antiparallel (blue) State')
    plt.xlabel(r'Temperature (K)')
    plt.ylabel(r'$\alpha$ ($\mu$V/A) ')
    plt.ticklabel_format(style='plain', scilimits=(3 ,3))
    plt.hold(True)
def IV_group_Avg(folder,keys):
  avg = Analysis.AnalyseFile(folder[0])
  avg.del_column('Voltage')
  avg.del_column('Current')
  avg.del_column('Column 2')
  for f in folder:
    avg.add_column(f.Voltage,str(f.metadata['iterator']))
  avg.apply(func, 1, replace = False, header = 'Mean NLVoltage')
  avg.add_column(folder[1].column('Current'),'Current')
  return avg


pattern = re.compile('_(?P<IVtemp>\d*)K_')
folder = DataFolder('/Users/Joe/PhD/Measurements/RN0151_4T/NLIVvsT/70K-PandAP/',pattern = pattern)
folder.group('IVtemp')
folder.walk_groups(IV_group_Avg,group=True,replace_terminal=True)


for f in folder:
  offset = f.column('Mean')[0]
  Voltage = f.column('Mean') - offset
  plt.title(r'')
  plt.xlabel(r'Current ($\mu$A)')
  plt.ylabel(r'Non Local Voltage ($\mu$V)')
  plt.ticklabel_format(style='plain', scilimits=(3 ,3))
  plt.hold(True)
  plt.plot(1e6*f.column('Current'),1e6*Voltage,label = str(f['IVtemp']) + 'K')
  plt.grid(False)
plt.legend()
plt.show()
Пример #4
0
folder = DataFolder('/Volumes/data/Projects/Spincurrents/Joe Batley/Measurements/SC004/Transport/SC004_8_B/NLIVvsHvsT_Py_Inj/', pattern = pattern,type=workfile) 


output = workfile()
output.metadata=folder[0].metadata
output['Sample ID'] = folder[0]['Sample ID']
output.column_headers=["T","P","P.err","AP","AP.err","DR","DR.err","beta","beta.err","quad","quad.err",'tri','tri.err']
#Use the labels attribute to store plot labels that are differnt from column names
output.labels=[r'T (K)',r'$R_s(P)$ (V/A)','Perr',r'$R_s(AP)$ (V/A)','APerr',r'$\Delta R_s$ (V/A)','DRerr ',r"\beta","beta_err",r"x^4","x^4 err",r"x^3","x^3 err"]



############ Calculate Delta R with error ############

APiterator = [5,10]
folder.group(['IVtemp'])
for i in folder.groups.keys():
    P = []
    Perr = []
    AP = []
    APerr = []
    beta = []
    Q = []
    tri = []
    for f in folder.groups[i]:
        fit = f.curve_fit(quad,'Current','Voltage',p0=[20.0,1e-7,0.0,1,1], result=True, replace=False, header="fit",asrow=True)
        if f['iterator'] in APiterator:
            AP.append(fit[2])
            APerr.append(fit[3]**2)
        else:
            P.append(fit[2])
Пример #5
0
CuRvt.sort("Sample Temp")

Res_Cu = interpolate.interp1d(CuRvt[:, 3], CuRvt[:, 2])
Res_V = interpolate.interp1d(InjV[:, 3], InjV[:, 2])
Res_Py = interpolate.interp1d(InjPy[:, 3], InjPy[:, 2])

Acu = 130e-9 * 150e-9
Asi = 150e-9 * 16e-6
dz = 1000e-9
dx = 425e-9

Seperation = {1: 325e-9, 2: 425e-9, 3: 525e-9, 4: 625e-9, 5: 725e-9, 6: 925e-9, 7: 1125e-9, 8: 1325e-9, 9: 1525e-9}


#################### IMPORTDATA AND WALK GROUPS ####################

pattern = re.compile("_(?P<state>\d*)_(?P<IVtemp>\d*)K_(?P<Inj>\w*)_NLIV_300uA_")
folder = DataFolder(
    "/Volumes/data/Projects/Spincurrents/Joe Batley/Measurements/SC004/Transport/SC004_3_T/NLIVvsHvsT_BOTH",
    pattern=pattern,
)


Output = Stoner.DataFile()
Output["Sample ID"] = folder[0]["Sample ID"]
folder.group("IVtemp")
# print folder


folder.walk_groups(Py_V, group=True, replace_terminal=True)
folder = DataFolder(filedir, pattern = filename,type=workfile) # Use type to preset the DataFile subclass




####### CREATE OUTPUT FILE ######
DeltaR = workfile() #Avoid creating temporary python lists, use the final DataFile like object to hold the data
DeltaR.metadata=folder[0].metadata
DeltaR['Sample ID'] = folder[0]['Sample ID']
DeltaR.column_headers=["T","P","Perr","AP","APerr","DR mV","DRerr","Voff","Ptest","APtest"]
#Use the labels attribute to store plot labels that are differnt from column names
DeltaR.labels=[r'T (K)',r'$R_s(P)$ (mV/A)','Perr',r'$R_s(AP)$ (mV/A)','APerr',r'$\Delta R_s$ (mV/A)','DRerr mV',r'$R_s$ offset (mV/A)',"Test Columns"]


####### Group into Temp - walk group and colapse each temp into one file ######
folder.group('IV_Temp')
folder.walk_groups(RsvsH,group=True,replace_terminal=True)


###### Combine different tempertures into one file #######
for a in folder:
    DeltaR+=a[0]
  
DeltaR.sort("T")
DeltaR.template=SPF.JTBPlotStyle
DeltaR.figure() # Creating new figures like this means we don;t reuse windows from run to run
f=plt.gcf()
f.set_size_inches((5.5,3.75),forward=True) # Set for A4 - will make wrapper for this someday


###### Plot ##########