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