Skip to content

Commit 2d14574

Browse files
jochenklarphuang26
authored andcommitted
Add v_limit1 and v_limit2 to nova reader
1 parent 8be9f29 commit 2d14574

1 file changed

Lines changed: 27 additions & 8 deletions

File tree

converter_app/readers/nova.py

Lines changed: 27 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import io
44
import logging
55
import re
6+
import sys
67

78
from .csv import CSVReader
89

@@ -67,11 +68,11 @@ def get_tables(self):
6768
if self.scan_rate_unit is None and 'column_00_unit' in table['metadata'] and 'column_01_unit' in table['metadata']:
6869
self.scan_rate_unit = '{column_00_unit}/{column_01_unit}'.format(**table['metadata'])
6970

70-
for i, column in enumerate([
71+
for column in [
7172
('Step size', self.step_size_unit),
7273
('Scan rate', self.scan_rate_unit)
73-
]):
74-
idx = len(table['columns']) + i
74+
]:
75+
idx = len(table['columns'])
7576
name, unit = column
7677
table['columns'].append({
7778
'key': str(idx),
@@ -87,9 +88,9 @@ def get_tables(self):
8788
if prev is None:
8889
table['rows'].append(row + ['nan', 'nan'])
8990
else:
90-
delta_v = float(row[0]) - float(prev[0])
91-
v_s = delta_v / (float(row[1]) - float(prev[1]))
92-
table['rows'].append(row + [str(delta_v), str(v_s)])
91+
step_size = float(row[0]) - float(prev[0])
92+
scan_rate = step_size / (float(row[1]) - float(prev[1]))
93+
table['rows'].append(row + [str(step_size), str(scan_rate)])
9394

9495
prev = row
9596

@@ -104,8 +105,24 @@ def get_metadata(self):
104105

105106
v_init = self.tables[0]['rows'][0][0]
106107
v_end = self.tables[-1]['rows'][-1][0]
107-
v_max = max([max([float(row[0]) for row in table['rows']]) for table in self.tables])
108-
v_min = min([min([float(row[0]) for row in table['rows']]) for table in self.tables])
108+
109+
idx = 0
110+
v_max, v_max_idx = sys.float_info.min, 0
111+
v_min, v_min_idx = sys.float_info.max, 0
112+
for table in self.tables:
113+
for row in table['rows']:
114+
value = float(row[0])
115+
if value > v_max:
116+
v_max, v_max_idx = value, idx
117+
if value < v_min:
118+
v_min, v_min_idx = value, idx
119+
idx += 1
120+
121+
if v_max_idx < v_min_idx:
122+
v_limit1, v_limit2 = v_max, v_min
123+
else:
124+
v_limit1, v_limit2 = v_min, v_max
125+
109126
step_size = sum([sum([abs(float(row[-2])) for row in table['rows'][1:]]) for table in self.tables]) / total_rows
110127
scan_rate = sum([sum([abs(float(row[-1])) for row in table['rows'][1:]]) for table in self.tables]) / total_rows
111128
cycles = max([table['metadata']['scan'] for table in self.tables])
@@ -116,6 +133,8 @@ def get_metadata(self):
116133
'v_end': v_end,
117134
'v_max': v_max,
118135
'v_min': v_min,
136+
'v_limit1': v_limit1,
137+
'v_limit2': v_limit2,
119138
'step_size': step_size,
120139
'step_size_unit': self.step_size_unit,
121140
'scan_rate': scan_rate,

0 commit comments

Comments
 (0)