DATRW++ library: seismic data I/O with multiple formats
Concepts for handling MiniSEED data.

Library structure.

File structure.

Process of reading files.

See also
datrw::mseed, Concept of reading MiniSEED files, datrw::imseedstream::read

imseedread

datrw::imseedstream holds member data datrw::imseedstream::Mrecord (which is of type datrw::mseed::Record). This is once filled upon instantiation in the constructor datrw::imseedstream::imseedstream (read ahead) and is used in datrw::imseedstream::read to extract data from the file. In datrw::imseedstream::read datrw::mseed::Record::read is called repeatedly in order to fill datrw::imseedstream::Mrecord with the next record. datrw::imseedstream::read checks for contiguous chunks of data and passes them as one trace each to the reception member functions of base class datrw::idatstream.

To skip data just means that datrw::imseedstream::read does not extract the sample values. In any case samples are read and collected in an STL vector in datrw::imseedstream::read.

mseed::Record

datrw::mseed::Record is just used to encapsulate data read from one MiniSEED-record such that MiniSEED internals need not be exposed to all library users through mseed.h The reading function datrw::mseed::Record::read instatiates data of type datrw::mseed::MiniSEEDRecord. It then reads the next MiniSEED-record to this data field through datrw::mseed::operator>>(std::istream &is, MiniSEEDRecord &mr) (which just delegates to datrw::mseed::MiniSEEDRecord::read. The such read data record then is passed to member data of the instance of type datrw::mseed::Record and such be made available to the instance of datrw::imseedstream to which it belongs.

mseed::MiniSEEDRecord

mseed::MiniSEEDblock

mseed::MiniSEEDblock is used to read exactly one block of binary data into mseed::MiniSEEDblock::Mblock through datrw::mseed::operator>> (std::istream &is, MiniSEEDblock &mb). The only purpose of this class is, to hold a binary data of previously defined block size and to provide byte-by-byte access.

Currently at no place a block size different to the standard block size is used.