fix median

This commit is contained in:
awe
2026-02-04 14:56:33 +03:00
parent 5978d58dc5
commit 2f6e5d0dda
2 changed files with 21 additions and 12 deletions

View File

@ -77,18 +77,21 @@ def run_matplotlib(args):
# Автоматическая загрузка медианы при старте # Автоматическая загрузка медианы при старте
if ref_in_file: if ref_in_file:
try: try:
data = [] pairs = []
with open(ref_in_file, 'r') as f: with open(ref_in_file, 'r') as f:
reader = csv.reader(f) reader = csv.reader(f)
next(reader) # Пропускаем заголовок next(reader) # Пропускаем заголовок
for row in reader: for row in reader:
if len(row) >= 2: if len(row) >= 2:
try: try:
data.append(float(row[1])) pairs.append((int(row[0]), float(row[1])))
except ValueError: except ValueError:
continue continue
if data: if pairs:
median_data = np.array(data, dtype=np.float32) max_idx = max(idx for idx, _ in pairs)
median_data = np.full(max_idx + 1, np.nan, dtype=np.float32)
for idx, val in pairs:
median_data[idx] = val
median_subtract_enabled = True median_subtract_enabled = True
print(f"[ref-in] Загружена медиана из {ref_in_file} ({len(median_data)} точек), вычитание включено") print(f"[ref-in] Загружена медиана из {ref_in_file} ({len(median_data)} точек), вычитание включено")
else: else:

View File

@ -203,22 +203,25 @@ def run_pyqtgraph(args):
try: try:
# Загружаем CSV файл # Загружаем CSV файл
data = [] pairs = []
with open(filename, 'r') as f: with open(filename, 'r') as f:
reader = csv.reader(f) reader = csv.reader(f)
next(reader) # Пропускаем заголовок next(reader) # Пропускаем заголовок
for row in reader: for row in reader:
if len(row) >= 2: if len(row) >= 2:
try: try:
data.append(float(row[1])) pairs.append((int(row[0]), float(row[1])))
except ValueError: except ValueError:
continue continue
if not data: if not pairs:
status.setText("Ошибка: файл пустой или неверный формат") status.setText("Ошибка: файл пустой или неверный формат")
return return
median_data = np.array(data, dtype=np.float32) max_idx = max(idx for idx, _ in pairs)
median_data = np.full(max_idx + 1, np.nan, dtype=np.float32)
for idx, val in pairs:
median_data[idx] = val
status.setText(f"Загружена медиана из {filename} ({len(median_data)} точек)") status.setText(f"Загружена медиана из {filename} ({len(median_data)} точек)")
# Автоматически включаем чекбокс # Автоматически включаем чекбокс
@ -289,18 +292,21 @@ def run_pyqtgraph(args):
# Автоматическая загрузка медианы при старте # Автоматическая загрузка медианы при старте
if ref_in_file: if ref_in_file:
try: try:
data = [] pairs = []
with open(ref_in_file, 'r') as f: with open(ref_in_file, 'r') as f:
reader = csv.reader(f) reader = csv.reader(f)
next(reader) # Пропускаем заголовок next(reader) # Пропускаем заголовок
for row in reader: for row in reader:
if len(row) >= 2: if len(row) >= 2:
try: try:
data.append(float(row[1])) pairs.append((int(row[0]), float(row[1])))
except ValueError: except ValueError:
continue continue
if data: if pairs:
median_data = np.array(data, dtype=np.float32) max_idx = max(idx for idx, _ in pairs)
median_data = np.full(max_idx + 1, np.nan, dtype=np.float32)
for idx, val in pairs:
median_data[idx] = val
median_subtract_enabled = True median_subtract_enabled = True
print(f"[ref-in] Загружена медиана из {ref_in_file} ({len(median_data)} точек), вычитание включено") print(f"[ref-in] Загружена медиана из {ref_in_file} ({len(median_data)} точек), вычитание включено")
else: else: