Files

38 lines
1.4 KiB
Python

import re, statistics
path = r'logs_nuevos/log_2026-10-14.txt'
lines = open(path, encoding='utf-8', errors='ignore').read().splitlines()
pat = re.compile(r'\[(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2})\] X:(-?\d+),Y:(-?\d+),C:(\d+),V:(\d+)')
rows = [] # (time, x, y, c, v)
for l in lines:
m = pat.search(l)
if m:
rows.append((m.group(1), int(m.group(2)), int(m.group(3)), int(m.group(4)), int(m.group(5))))
# Ventana donde X casi no se mueve pero C cae lentamente -> evidencia deriva termica
# buscar tramo donde X dentro de +/-500 pasos durante muchos samples
print('--- ventana con poca variacion en X pero caida de C ---')
best_start = None; best_len = 0
i = 0
n = len(rows)
while i < n - 60:
window = rows[i:i+60]
xs = [r[1] for r in window]; cs = [r[3] for r in window]
x_spread = max(xs)-min(xs)
c_drop = statistics.mean(cs[:15]) - statistics.mean(cs[-15:])
if x_spread < 1500 and c_drop > 3000:
if best_len < 60:
best_len = 60; best_start = i
i += 1
else:
i += 60
if best_start is not None:
w = rows[best_start:best_start+60]
print('inicio:', w[0][0], 'X rango:', min(r[1] for r in w), max(r[1] for r in w))
print('C primero/ultimo:', w[0][3], w[-1][3])
for j, r in enumerate(w):
if j % 6 == 0:
print('%s X:%7d Y:%7d C:%8d V:%8d' % (r[0][11:], r[1], r[2], r[3], r[4]))