69 lines
3.9 KiB
Python
69 lines
3.9 KiB
Python
## 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)
|