open¶
-
baseband.mark5b.
open
(name, mode=u'rs', **kwargs) [edit on github]¶ Open Mark5B file(s) for reading or writing.
Opened as a binary file, one gets a wrapped filehandle that adds methods to read/write a frame. Opened as a stream, the handle is wrapped further, with methods such as reading and writing to the file as if it were a stream of samples.
Parameters: name : str or filehandle, or sequence of str
File name, filehandle, or sequence of file names (see Notes).
mode : {‘rb’, ‘wb’, ‘rs’, or ‘ws’}, optional
Whether to open for reading or writing, and as a regular binary file or as a stream. Default: ‘rs’, for reading a stream.
**kwargs
Additional arguments when opening the file as a stream.
— For reading a stream : (see
Mark5BStreamReader
)sample_rate :
Quantity
, optionalNumber of complete samples per second, i.e. the rate at which each channel is sampled. If
None
(default), will be inferred from scanning one second of the file or, failing that, using the time difference between two consecutive frames.kday : int or None
Explicit thousands of MJD of the observation start time (eg.
57000
for MJD 57999), used to infer the full MJD from the header’s time information. Can instead pass an approximateref_time
.ref_time :
Time
or NoneReference time within 500 days of the observation start time, used to infer the full MJD. Only used if
kday
is not given.nchan : int, optional
Number of channels. Default: 1.
bps : int, optional
Bits per elementary sample. Default: 2.
squeeze : bool, optional
If
True
(default), remove any dimensions of length unity from decoded data.subset : indexing object, optional
Specific channels of the complete sample to decode (after possible squeezing). If an empty tuple (default), all channels are read.
fill_value : float or complex
Value to use for invalid or missing data. Default: 0.
verify : bool, optional
Whether to do basic checks of frame integrity when reading. The first frame of the stream is always checked. Default:
True
.— For writing a stream : (see
Mark5BStreamWriter
)header0 :
Mark5BHeader
Header for the first frame, holding time information, etc. Can instead give keyword arguments to construct a header (see
**kwargs
).sample_rate :
Quantity
Number of complete samples per second, i.e. the rate at which each channel is sampled. Needed to calculate header timestamps.
nchan : int, optional
Number of channels. Default: 1.
bps : int, optional
Bits per elementary sample. Default: 2.
squeeze : bool, optional
If
True
(default), writer accepts squeezed arrays as input, and adds channel and thread dimensions if they have length unity.file_size : int or None, optional
When writing to a sequence of files, the maximum size of one file in bytes. If
None
(default), the file size is unlimited, and only the first file will be written to.**kwargs
If no header is given, an attempt is made to construct one with any further keyword arguments. See
Mark5BStreamWriter
.Returns: Filehandle
Mark5BFileReader
orMark5BFileWriter
(binary), orMark5BStreamReader
orMark5BStreamWriter
(stream).Notes
One can also pass to
name
a list, tuple, or subclass ofFileNameSequencer
. For writing to multiple files, thefile_size
keyword must be passed or only the first file will be written to. One may also pass in asequentialfile
object (opened in ‘rb’ mode for reading or ‘w+b’ for writing), though for typical use cases it is practically identical to passing in a list or template.