docs(run-log): fix speed-from-fixed-framerate assumption, switch fram…#143
Conversation
…e rows to NDJSON arrays - Require FicTrac's own per-frame timestamp (col 22, `ts`) instead of assuming a constant camera framerate for speed/turning-rate calculations - Replace raw delta-rotation fields (cols 6-8) with integrated position (cols 15-16 `x`/`y`); keep heading (17) paired with movement direction (18) since they diverge during sideways slip - Define two logging levels: minimal (`ms, fc, index`) for correlating with FicTrac's own recording via frame counter, verbose (+ `ts, x, y, hd, dir`) for turning + forward locomotion inline - Drop FicTrac's separate sequence counter (col 23) — frame counter alone is sufficient for drop detection - Update camera rate assumption to ~100 Hz nominal and recompute all size estimates; drop the gzip option - Encode frame rows as positional JSON arrays instead of bare CSV so the whole log is valid NDJSON, dispatched by parsed type instead of a custom line-sniffing parser
|
This is my response to #141. I didn't want to overwrite your files, so feel free to modify what you want based on this. |
Two-level NDJSON FicTrac run-log encoding for the course pipeline (minimal/verbose), a measured per-field byte audit, col-24 timing, fixed-decimal rounding, and resolved review questions. Incorporates Frank's revision (#143). Co-authored-by: Frank Loesche <loeschef@janelia.hhmi.org> Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
Merged this — thanks, @floesche. The reframing is spot on and I kept all of it: bridge-not-replacement, the minimal level with Two things I layered on in a follow-up (60acb6c), flagging since one revises your timing choice:
Still genuinely open (your Q1, now the only blocker for verbose): does our FicTrac build populate cols 24 & 25? Some configs leave them 0, and the sim can't tell us (it fakes a regular col 24). If they're empty on the real rig we fall back to your col-22-stored-as-is + differencing. Could you check a raw FicTrac line when you're next at a bench? Full write-up now on |
|
Just quickly (and I can do the change later), but keeping This still also solve the follow up. |
ms, fc, index, rejoinable with FicTrac's own recording via the frame counter) and verbose (addsts, x, y, hd, dir) — dropping FicTrac's separate sequence counter as redundant for drop detection.JSON.parse()+ type dispatch, no custom line-format sniffing) for a ~2 bytes/frame cost.