VDIFFileReader¶
-
class
baseband.vdif.base.
VDIFFileReader
(fh_raw)[source] [edit on github]¶ Bases:
baseband.vlbi_base.base.VLBIFileReaderBase
Simple reader for VDIF files.
Wraps a binary filehandle, providing methods to help interpret the data, such as
read_frame
,read_frameset
andget_frame_rate
.- Parameters
- fh_rawfilehandle
Filehandle of the raw binary data file.
Attributes Summary
info
()Methods Summary
close
(self)find_header
(self[, template_header, …])Find the nearest header from the current position.
get_frame_rate
(self)Determine the number of frames per second.
read_frame
(self)Read a single frame (header plus payload).
read_frameset
(self[, thread_ids, edv, verify])Read a single frame (header plus payload).
read_header
(self)Read a single header from the file.
temporary_offset
(self)Context manager for temporarily seeking to another file position.
Attributes Documentation
-
info
¶
Methods Documentation
-
close
(self) [edit on github]¶
-
find_header
(self, template_header=None, frame_nbytes=None, edv=None, maximum=None, forward=True)[source] [edit on github]¶ Find the nearest header from the current position.
Search for a valid header at a given position which is consistent with
template_header
or with a header a frame size ahead. Note that the latter turns out to be an unexpectedly weak check on real data!If successful, the file pointer is left at the start of the header.
- Parameters
- template_header
VDIFHeader
If given, used to infer the frame size and EDV.
- frame_nbytesint
Frame size in bytes, used if
template_header
is not given.- edvint
EDV of the header, used if
template_header
is not given.- maximumint, optional
Maximum number of bytes forward to search through. Default: twice the frame size.
- forwardbool, optional
- template_header
- Returns
- header
VDIFHeader
or None Retrieved VDIF header, or
None
if nothing found.
- header
-
get_frame_rate
(self)[source] [edit on github]¶ Determine the number of frames per second.
This method first tries to determine the frame rate by looking for the highest frame number in the first second of data. If that fails, it attempts to extract the sample rate from the header.
- Returns
- frame_rate
Quantity
Frames per second.
- frame_rate
-
read_frame
(self)[source] [edit on github]¶ Read a single frame (header plus payload).
- Returns
- frame
VDIFFrame
With
.header
and.data
properties that return theVDIFHeader
and data encoded in the frame, respectively.
- frame
-
read_frameset
(self, thread_ids=None, edv=None, verify=True)[source] [edit on github]¶ Read a single frame (header plus payload).
- Parameters
- thread_idslist, optional
The thread ids that should be read. If
None
(default), read all threads.- edvint, optional
The expected extended data version for the VDIF Header. If
None
, use that of the first frame. (Passing it in slightly improves file integrity checking.)- verifybool, optional
Whether to do basic checks of frame integrity. Default:
True
.
- Returns
- frameset
VDIFFrameSet
With
.headers
and.data
properties that return a list ofVDIFHeader
and the data encoded in the frame set, respectively.
- frameset
-
read_header
(self)[source] [edit on github]¶ Read a single header from the file.
- Returns
- header
VDIFHeader
- header
-
temporary_offset
(self) [edit on github]¶ Context manager for temporarily seeking to another file position.
To be used as part of a
with
statement:with fh_raw.temporary_offset() [as fh_raw]: with-block
On exiting the
with-block
, the file pointer is moved back to its original position.