diff --git a/INL-GraphfrombaseLine.py b/INL-GraphfrombaseLine.py new file mode 100644 index 0000000..b56a4ef --- /dev/null +++ b/INL-GraphfrombaseLine.py @@ -0,0 +1,68 @@ +## Have gitpython pull in the repository +import os +import git +import shutil +import pandas as pd +from matplotlib import pyplot as plt +import numpy as np + +username = "####" +password = "####" +remote = f"https://{username}:{password}@git.0xc6.com/xans/INL-Measurements.git" +if not os.path.exists(os.getcwd()+"/INL-Measurements"): + git.Repo.clone_from(remote, os.getcwd()+"/INL-Measurements/") + print(os.getcwd()+"/INL-Measurements/") +else: + shutil.rmtree(os.getcwd()+"/INL-Measurements/", ignore_errors=True) + git.Repo.clone_from(remote, os.getcwd()+"/INL-Measurements/") + print(os.getcwd()+"/INL-Measurements/") + +# List of all meters that will average out the calibrators INL +meterList = ['solartron-7081', 'hp-3458a', 'keysight-3458a', 'agilent-3458a', + 'datron-1281', 'wavetek-1281','datron-1271', 'wavetek-1271', + 'advantest-r6581t', 'advantest-r6581','fluke-8508', 'keithley-2002', 'hp-3458A-2823A14043'] + +# If directory name contains meters go down and load in dataframe +root, dirs, files = os.walk(os.getcwd()+"/INL-Measurements/").__next__() +dirs = [i for i in os.listdir(os.getcwd()+"/INL-Measurements/") if not i.__contains__(('.'))] +for dir in dirs: + rootdevice, dirsdevice, filesdevice = os.walk(os.getcwd()+"/INL-Measurements/"+dir).__next__() + for dirb in dirsdevice: + rootdata, dirsdata, filesdata = os.walk(os.getcwd()+"/INL-Measurements/"+dir+'/'+dirb+"/data/").__next__() + filedirs = [i for i in filesdata if i.__contains__(('.csv'))] + for correctFile in filedirs: + if not os.path.exists(os.getcwd()+"/INL-Measurements/"+dir+'/'+dirb+"/data/firstOrderRemoved"): + os.makedirs(os.getcwd()+"/INL-Measurements/"+dir+'/'+dirb+"/data/firstOrderRemoved") + df = pd.read_csv(os.getcwd()+"/INL-Measurements/"+dir+'/'+dirb+"/data/"+correctFile) + df_closesta = df.iloc[(df['Measured Volts']-10).abs().argsort()[:1]].index[0] + df_closestb = df.iloc[(df['Measured Volts']+10).abs().argsort()[:1]].index[0] + df_closestc = df.iloc[(df['Set Volts']-10).abs().argsort()[:1]].index[0] + df_closestd = df.iloc[(df['Set Volts']+10).abs().argsort()[:1]].index[0] + a = df.at[df_closestc,'Measured Volts'] - df.at[df_closesta,'Set Volts'] + b = df.at[df_closestb,'Measured Volts'] - df.at[df_closestb,'Set Volts'] + firstorderslope = (a - b)/(10*2) + for index, row in df.iterrows(): + tempval = df.at[index,'Measured Volts'] + df.at[index,'Measured Volts'] = df.at[index,'Measured Volts'] - firstorderslope*tempval + df.to_csv(os.getcwd()+"/INL-Measurements/"+dir+'/'+dirb+"/data/firstOrderRemoved/"+correctFile, sep=';') + df = pd.read_csv(os.getcwd()+"/INL-Measurements/"+dir+'/'+dirb+"/data/firstOrderRemoved/"+correctFile, sep=';') + plt.plot(df["Set Volts"], (df["Set Volts"]-df["Measured Volts"])) + plt.xlabel('Source Voltage') + plt.ylabel('Delta Set/Meas') + plt.title ('INLV sweep '+ correctFile[:-4]) + plt.savefig(os.getcwd()+"/INL-Measurements/"+dir+'/'+dirb+"/data/firstOrderRemoved/"+correctFile[:-4]+".jpg", bbox_inches='tight') + plt.clf() + del df + +print("--------------------------") +# If directory name contains meters go down and load in dataframe +root, dirs, files = os.walk(os.getcwd()+"/INL-Measurements/").__next__() +dirs = [i for i in os.listdir(os.getcwd()+"/INL-Measurements/") if not i.__contains__(('.'))] +dirs[:] = [url for url in dirs if any(sub.upper() in url.upper() for sub in meterList)] +for dir in dirs: + rootdevice, dirsdevice, filesdevice = os.walk(os.getcwd()+"/INL-Measurements/"+dir).__next__() + os.makedirs(os.getcwd()+"/INL-Measurements/CalibratorINLAverages/"+dir) + print(dirsdevice) + for dirb in dirsdevice: + rootdata, dirsdata, filesdata = os.walk(os.getcwd()+"/INL-Measurements/"+dir+'/'+dirb+"/data/").__next__() + print(filesdata)