# 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()
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])
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 ##########