open¶
- baseband.gsb.open(name, mode='rs', **kwargs) [edit on github]¶
Open GSB file(s) for reading or writing.
A GSB data set contains a text header file and one or more raw data files. When the file is opened as text, one gets a standard filehandle, but with methods to read/write timestamps. When it is opened as a binary, one similarly gets methods to read/write frames. Opened as a stream, the file is interpreted as a timestamp file, but raw files need to be given too. This allows access to the stream(s) as series of samples.
- Parameters:
- namestr
Filename of timestamp or raw data file.
- mode{‘rb’, ‘wb’, ‘rt’, ‘wt’, ‘rs’, or ‘ws’}, optional
Whether to open for reading or writing, and as a regular text or binary file (for timestamps and data, respectively) or as a stream. Default: ‘rs’, for reading a stream.
- **kwargs
Additional arguments when opening the file as a stream.
- — For both reading and writing of streams
- rawstr or (tuple of) tuple of str
Name of files holding payload data. A single file is needed for rawdump, and a tuple for phased. For a nested tuple, the outer tuple determines the number of polarizations, and the inner tuple(s) the number of streams per polarization. E.g.,
((polL1, polL2), (polR1, polR2))for two streams per polarization. A single tuple is interpreted as streams of a single polarization.- sample_rate
Quantity, optional Number of complete samples per second, i.e. the rate at which each channel of each polarization is sampled. If
None, will be inferred assuming the frame rate is exactly 251.658240 ms.- samples_per_frameint, optional
Number of complete samples per frame. Can give
payload_nbytesinstead.- payload_nbytesint, optional
Number of bytes per payload (in each raw file separately). If both
samples_per_frameandpayload_nbytesareNone,payload_nbytesis set to2**22(4 MiB).- nchanint, optional
Number of channels. Default: 1 for rawdump, 512 for phased.
- bpsint, optional
Bits per elementary sample, i.e. per real or imaginary component for complex data. Default: 4 for rawdump, 8 for phased.
- complex_databool, optional
Whether data are complex. Default:
Falsefor rawdump,Truefor phased.- squeezebool, optional
If
True(default) and reading, remove any dimensions of length unity from decoded data. IfTrueand writing, accept squeezed arrays as input, and adds any dimensions of length unity.- — For reading only(see
GSBStreamReader) - subsetindexing object or tuple of objects, optional
Specific components of the complete sample to decode (after possibly squeezing). If a single indexing object is passed, it selects (available) polarizations. If a tuple is passed, the first selects polarizations and the second selects channels. If the tuple is empty (default), all components are read.
- verifybool, optional
Whether to do basic checks of frame integrity when reading. The first frame of the stream is always checked. Default:
True.- — For writing only(see
GSBStreamWriter) - header0
GSBHeader Header for the first frame, holding time information, etc. Can instead give keyword arguments to construct a header.
- **kwargs
If no header is given, an attempt is made to construct one from these. For a standard header, this would include the following.
- — Header keywords(see
fromvalues()) - time
Time Start time of the file.
- header_mode‘rawdump’ or ‘phased’, optional
Used to explicitly set the mode of the GSB stream. Default: ‘rawdump’ if only a single raw file is present, or ‘phased’ otherwise.
- seq_nrint, optional
Frame number, only used for phased (default: 0).
- Returns:
- Filehandle
GSBTimeStampIO(timestamp), orGSBFileReaderorGSBFileWriter(binary), orGSBStreamReaderorGSBStreamWriter(stream)