update to v0.21.1, thor data import successful #29
+11
-2
@@ -326,7 +326,11 @@ class IdfReadResult:
|
|||||||
intervals: Optional[list] = None # list[IdfhInterval] for IDFH; None for IDFW
|
intervals: Optional[list] = None # list[IdfhInterval] for IDFH; None for IDFW
|
||||||
|
|
||||||
|
|
||||||
def read_idf_file(path: Union[str, Path]) -> IdfReadResult:
|
def read_idf_file(
|
||||||
|
path: Union[str, Path],
|
||||||
|
*,
|
||||||
|
data: Optional[bytes] = None,
|
||||||
|
) -> IdfReadResult:
|
||||||
"""Parse a Thor ``.IDFW`` binary into an ``IdfEvent`` + decoded samples.
|
"""Parse a Thor ``.IDFW`` binary into an ``IdfEvent`` + decoded samples.
|
||||||
|
|
||||||
Currently implements signature-A waveforms only. Signature-B
|
Currently implements signature-A waveforms only. Signature-B
|
||||||
@@ -337,9 +341,14 @@ def read_idf_file(path: Union[str, Path]) -> IdfReadResult:
|
|||||||
Returns an :class:`IdfReadResult`. The caller converts int sample
|
Returns an :class:`IdfReadResult`. The caller converts int sample
|
||||||
counts to physical units via :func:`geo_count_to_ips` /
|
counts to physical units via :func:`geo_count_to_ips` /
|
||||||
:func:`mic_count_to_psi`.
|
:func:`mic_count_to_psi`.
|
||||||
|
|
||||||
|
``path`` is used for filename in error messages and ``.IDFH`` vs
|
||||||
|
``.IDFW`` suffix detection. When ``data`` is supplied the disk
|
||||||
|
read is skipped — useful for ingest paths that already have the
|
||||||
|
bytes in memory and where the file may not exist on disk yet.
|
||||||
"""
|
"""
|
||||||
p = Path(path)
|
p = Path(path)
|
||||||
buf = p.read_bytes()
|
buf = data if data is not None else p.read_bytes()
|
||||||
|
|
||||||
if len(buf) < 16 or buf[6:16] != _INSTANTEL_TAG + b"\x00":
|
if len(buf) < 16 or buf[6:16] != _INSTANTEL_TAG + b"\x00":
|
||||||
raise ValueError(f"{p.name}: not an IDF file (missing Instantel magic)")
|
raise ValueError(f"{p.name}: not an IDF file (missing Instantel magic)")
|
||||||
|
|||||||
@@ -500,7 +500,12 @@ class WaveformStore:
|
|||||||
is_histogram = False
|
is_histogram = False
|
||||||
try:
|
try:
|
||||||
from micromate.idf_file import read_idf_file
|
from micromate.idf_file import read_idf_file
|
||||||
res = read_idf_file(source_path)
|
# Pass idf_bytes through `data=` — at this point in the flow
|
||||||
|
# the binary hasn't been written to disk yet, so the codec
|
||||||
|
# can't read from source_path. We still pass source_path so
|
||||||
|
# the codec has the filename for error messages + .IDFH
|
||||||
|
# suffix detection.
|
||||||
|
res = read_idf_file(source_path, data=idf_bytes)
|
||||||
idf_samples = res.samples or None
|
idf_samples = res.samples or None
|
||||||
idf_intervals = res.intervals
|
idf_intervals = res.intervals
|
||||||
is_histogram = res.intervals is not None
|
is_histogram = res.intervals is not None
|
||||||
|
|||||||
Reference in New Issue
Block a user