Release v0.31.0 — report parity + the inverted rescue (0.29.0 → 0.31.0) #40
@@ -4,6 +4,66 @@ All notable changes to seismo-relay are documented here.
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
## Unreleased
|
||||||
|
|
||||||
|
**Blastware Event/FFT-Report parity — the FFT, the USBM compliance chart, and
|
||||||
|
the sensor self-check.** Three analyses Blastware derives from event data,
|
||||||
|
reverse-engineered against BE12844 (MiniMate Plus) reports and reproduced in
|
||||||
|
seismo-relay: the compliance chart and the sensor-check strip now render on
|
||||||
|
the event-report PDF, and the FFT reproduces Blastware's FFT Report. All three
|
||||||
|
are additive and read from data already on disk — the `.h5` samples and the
|
||||||
|
retained raw BW binary — so there is **no `.h5`/DB change, no migration, and no
|
||||||
|
backfill**: a report regenerated for an existing event simply gains the new
|
||||||
|
panels.
|
||||||
|
|
||||||
|
### Added
|
||||||
|
- **Blastware-compatible channel FFT (`waveform_fft`).** Reproduces Blastware's
|
||||||
|
FFT Report: DC-removed, no window, zero-padded to 4096 (0.25 Hz bins at
|
||||||
|
1024 sps), single-sided `2/N` amplitude. Matches Blastware's dominant
|
||||||
|
frequency to the exact bin and the amplitude to report precision across all
|
||||||
|
28 channels of the 7-event BE12844 oracle set. `channel_spectrum()` /
|
||||||
|
`dominant_frequency()`; tests in `tests/test_waveform_fft.py`.
|
||||||
|
|
||||||
|
- **USBM RI8507 / OSMRE compliance chart on the event-report PDF
|
||||||
|
(`sfm/compliance.py`).** The velocity-vs-frequency blasting-compliance
|
||||||
|
scatter Blastware draws in the upper-right of its Event Report: each channel's
|
||||||
|
significant cycles as `(frequency, peak velocity)` points (zero-crossing
|
||||||
|
method, so each channel's cloud tops out at its PPV) plotted against the
|
||||||
|
RI8507 Drywall (0.75 in/s) and plaster (0.50 in/s) limit curves, drawn
|
||||||
|
continuous (constant-displacement bounds meeting the plateaus — no vertical
|
||||||
|
steps). Sized and positioned to match a Blastware report, measured off the
|
||||||
|
reference PDF. A technical breakdown of the curve is in
|
||||||
|
`docs/ri8507_compliance_curve.md`.
|
||||||
|
|
||||||
|
- **Sensor self-check waveforms decoded and drawn (`minimateplus.sensor_check`).**
|
||||||
|
The "Sensor Check" traces Blastware shows to the right of the waveform panel
|
||||||
|
live in the series-3 binary's trailing block as four length-prefixed records
|
||||||
|
(`0x3c`–`0x3f`) using the same delta-block codec as the main waveform:
|
||||||
|
Tran/Vert/Long geophone ring-downs (the transducer's damped impulse response —
|
||||||
|
resonant frequency + overswing/damping) and a MicL pulse train (the mic's
|
||||||
|
known-signal gain check). `gather_report_data` decodes them from the retained
|
||||||
|
BW binary at report time; the report renders them as a strip flush against the
|
||||||
|
waveform panel plus the **Sensor Check → Frequency / Overswing Ratio** sub-rows
|
||||||
|
in the stats table. Verified against the reports on all 7 oracle events (mic
|
||||||
|
zero-crossing frequency = 20.1 Hz exact; geophone ring-downs consistent
|
||||||
|
~7.5 Hz with overswing ~3.5). Tests in `tests/test_sensor_check.py`.
|
||||||
|
|
||||||
|
- **Inspector tab in `seismo_lab.py` — annotated hex reader for series-3
|
||||||
|
binaries (`minimateplus/binary_annotate.py`).** Tiles a raw Blastware file
|
||||||
|
into labeled spans (header / STRT / body record-chain / trailing metadata +
|
||||||
|
calibration + sensor-check records / footer) so a binary can be combed by eye.
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
- **Event-report waveform panel — stacked-lane y-tick collision.** The lanes
|
||||||
|
touch, so each lane's bottom `-1.0` overprinted the next lane's top `1.0` at
|
||||||
|
the shared boundary. Prune the extreme ticks so each lane shows clean interior
|
||||||
|
ticks only.
|
||||||
|
- **Event-report header — serial+firmware line ran off the page.** The long
|
||||||
|
`BE##### V ##.##-#.## MiniMate Plus` string overflowed the right margin;
|
||||||
|
tighter right-column indent + BW's slightly smaller header size so it fits.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## v0.30.0 — 2026-09-12
|
## v0.30.0 — 2026-09-12
|
||||||
|
|
||||||
**The series-4 correctness release** — the Thor / Micromate counterpart to
|
**The series-4 correctness release** — the Thor / Micromate counterpart to
|
||||||
|
|||||||
Reference in New Issue
Block a user