Clean graphs a bit, add HiKe comparison graph

This commit is contained in:
David Bailey 2025-01-28 14:56:05 +01:00
parent b7504031ac
commit fc94830e5f
8 changed files with 20153 additions and 8 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 82 KiB

After

Width:  |  Height:  |  Size: 79 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 98 KiB

After

Width:  |  Height:  |  Size: 97 KiB

Before After
Before After

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 61 KiB

After

Width:  |  Height:  |  Size: 56 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 82 KiB

After

Width:  |  Height:  |  Size: 61 KiB

Before After
Before After

View file

@ -260,6 +260,25 @@ def plot_lt_sweep(fig, plot_config, plot_data):
decorate_ax(ax, plot_config); decorate_ax(ax, plot_config);
def perform_x_adjustment(plot_data, plot_config):
if(not ('x_key' in plot_config)):
return;
print("Adjusting X scaling // offset");
x_rescale = plot_config.get('xrescale', 1);
x_shift = plot_config.get('xshift', 0);
for step in plot_data['steps']:
x_data = step[plot_config['x_key']]
new_x_data = []
for datapoint in x_data:
new_x_data.append(datapoint*x_rescale + x_shift)
step[plot_config['x_key']] = new_x_data
def perform_bandwidth_normalization(plot_data, plot_config): def perform_bandwidth_normalization(plot_data, plot_config):
print("Normalizing bandwidth for all steps...") print("Normalizing bandwidth for all steps...")
@ -285,7 +304,7 @@ def perform_peak_normalization(plot_data, plot_config):
y_max = max(y_data) y_max = max(y_data)
y_min = min(y_data) y_min = min(y_data)
scaling_factor = 0.1 + 0.9*(y_max if (y_max > (-y_min)) else y_min) scaling_factor = 0.05 + 0.95*(y_max if (y_max > (-y_min)) else y_min)
for datapoint in y_data: for datapoint in y_data:
new_y_data.append(datapoint / scaling_factor) new_y_data.append(datapoint / scaling_factor)
@ -299,7 +318,7 @@ def perform_offset_removal(plot_data, plot_config):
y_data = step[plot_config['y_key']] y_data = step[plot_config['y_key']]
new_y_data = [] new_y_data = []
offset_value = np.percentile(y_data, 30) * 0.8 offset_value = np.percentile(y_data, 30) * 0.9
for datapoint in y_data: for datapoint in y_data:
new_y_data.append(datapoint - offset_value) new_y_data.append(datapoint - offset_value)
@ -308,6 +327,8 @@ def perform_offset_removal(plot_data, plot_config):
def perform_processing_step(data_process_step, plot_data, plot_config): def perform_processing_step(data_process_step, plot_data, plot_config):
perform_x_adjustment(plot_data, plot_config);
if(data_process_step == 'normalize_bandwidth'): if(data_process_step == 'normalize_bandwidth'):
perform_bandwidth_normalization(plot_data, plot_config) perform_bandwidth_normalization(plot_data, plot_config)
if(data_process_step == 'remove_offset'): if(data_process_step == 'remove_offset'):

View file

@ -99,6 +99,36 @@ plots:
linewidth: 0.8 linewidth: 0.8
ofile: IMS Measurements/raw_compare.png ofile: IMS Measurements/raw_compare.png
- loadtype: multicsv
load:
GemiTIV: V1_Measurements/V1.1-a1/2M4/HiKe_GemiTIV_DR55_RR65.csv
HighTIME: V1_Measurements/V1.1-a1/2M4/HiKe_HighTIME_DR55_RR65.csv
load_values: ["drift_time", "amplitude"]
type: lt_sweep
data_processing_steps:
- normalize_peak
- remove_offset
- normalize_peak
y_key: amplitude
x_key: drift_time
xscale: linear
#xmin: 0.0001
#xmax: 0.001
xrescale: 0.1
xlabel: Time (s)
ylabel: Normalized voltage (a.u.)
legend_title: TIV
linewidth: 0.8
ofile: IMS Measurements/hike_raw_compare.png
- load: Parasitics/SingleStage_noise_example.txt - load: Parasitics/SingleStage_noise_example.txt
loadtype: ltspice loadtype: ltspice
type: single type: single
@ -123,8 +153,8 @@ plots:
ofile: Parasitics/SingleStage_noise_example.png ofile: Parasitics/SingleStage_noise_example.png
- load: - load:
47M N.1: V1_Measurements/V1.1-a1/47M_cap/linearity_1.csv 47M: V1_Measurements/V1.1-a1/47M_cap/linearity_1.csv
47M N.2: V1_Measurements/V1.1-a1/47M_cap/linearity_2.csv # 47M N.2: V1_Measurements/V1.1-a1/47M_cap/linearity_2.csv
loadtype: multicsv loadtype: multicsv
load_values: ["Setpoint", "Measurement", "Error"] load_values: ["Setpoint", "Measurement", "Error"]
@ -136,7 +166,9 @@ plots:
xscale: linear xscale: linear
yformatter: engineering yformatter: engineering
yplaces: 1 yplaces: 0
colourmap: default
ymax: 0.0025 ymax: 0.0025
ymin: -0.0025 ymin: -0.0025
@ -147,8 +179,8 @@ plots:
ofile: V1_Measurements/V1.1-a1/47M_cap/linearity_error.png ofile: V1_Measurements/V1.1-a1/47M_cap/linearity_error.png
- load: - load:
47M N.1: V1_Measurements/V1.1-a1/47M_cap/linearity_1.csv 47M: V1_Measurements/V1.1-a1/47M_cap/linearity_1.csv
47M N.2: V1_Measurements/V1.1-a1/47M_cap/linearity_2.csv # 47M N.2: V1_Measurements/V1.1-a1/47M_cap/linearity_2.csv
loadtype: multicsv loadtype: multicsv
load_values: ["Setpoint", "Measurement"] load_values: ["Setpoint", "Measurement"]
@ -158,6 +190,8 @@ plots:
y_key: Measurement y_key: Measurement
x_key: Setpoint x_key: Setpoint
colourmap: default
xscale: linear xscale: linear
xlabel: Input current (nA) xlabel: Input current (nA)