47 lines
1.6 KiB
Python
47 lines
1.6 KiB
Python
import matplotlib.pyplot as plt
|
|
import pandas as pd
|
|
import numpy as np
|
|
|
|
def plot_csv(file_path):
|
|
df = pd.read_csv(file_path, decimal=',', sep=';')
|
|
plt.plot(df.iloc[1:, 0], df.iloc[1:, 1], linewidth=0.5)
|
|
plt.title(file_path)
|
|
plt.xlabel(df.columns[0])
|
|
plt.ylabel(df.columns[1])
|
|
plt.grid(True)
|
|
plt.show()
|
|
|
|
def shift_x_to_zero(input_file, output_file):
|
|
df = pd.read_csv(input_file, decimal=',', sep=';')
|
|
df.iloc[1:, 0] = df.iloc[1:, 0] - df.iloc[1:, 0].iloc[0]
|
|
df.to_csv(output_file, index=False, decimal=',', sep=';')
|
|
|
|
def normalize_current(input_path, output_path, frac_avg=0.05):
|
|
df = pd.read_csv(input_path, sep=';', decimal=',')
|
|
t = df.iloc[:, 0].values
|
|
I = df.iloc[:, 1].values
|
|
n = len(I)
|
|
n_avg = max(1, int(n * frac_avg))
|
|
first_mean = np.mean(I[:n_avg])
|
|
last_mean = np.mean(I[-n_avg:])
|
|
if first_mean > last_mean:
|
|
I_max = first_mean
|
|
I_min = last_mean
|
|
else:
|
|
I_max = last_mean
|
|
I_min = first_mean
|
|
I_norm = 1-(I - I_min)/abs(I_max - I_min)
|
|
out = pd.DataFrame({'Time': t, 'I_norm': I_norm})
|
|
out.to_csv(output_path, sep=';', decimal=',', index=False)
|
|
|
|
|
|
files = ["MEM_16M_B.csv", "MEM_1M_B.csv", "MEM_4M_B.csv", "MRZ_2.178_16.7M_B.csv", "MRZ_2.178_5.6M_B.csv", "MRZ_2.178_50M_B.csv", "MEM_16M_R.csv", "MEM_1M_R.csv", "MEM_4M_R.csv", "MRZ_2.178_16.7M_R.csv", "MRZ_2.178_5.6M_R.csv", "MRZ_2.178_50M_R.csv"]
|
|
|
|
dir1 = "data/raw/"
|
|
dir2 = "data/processed/"
|
|
|
|
for file in files:
|
|
shift_x_to_zero(dir1 + file, dir2 + file)
|
|
normalize_current(dir2 + file, dir2 + file)
|
|
plot_csv(dir2 + file)
|
|
# plot_csv(dir1 + file) |