ReadMSEEDFast

MSEED vectorised reading routine
1.4K Downloads
Updated 25 Feb 2019

View License

Script reads MSEED file and returns record structure.
Whole MSEED file is loaded to memory and
the file is processed in memory.
Loops are vectorised as much as possible. This version is optimalized for speed and supports only subset of MSEED format.
Chunks in traces are assumed to be saved chronologicaly. Interlaced traces are not supported. All traces in the file are assumed to have just one encoding type. Usage of more than one encoding format in the file is not supported yet. Only DATAONLY blockett is supported yet.
Supported data encoding formats:
big endian, little endian
INT16, INT32, FLOAT32, DOUBLE, STEIM1,
STEIM2.
Code is partially based on rdmmseed.m by
Franois Beauducel <beauducel@ipgp.fr>
Institut de Physique du Globe de Paris.

Cite As

Martin Mityska (2024). ReadMSEEDFast (https://www.mathworks.com/matlabcentral/fileexchange/46532-readmseedfast), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2014a
Compatible with any release
Platform Compatibility
Windows macOS Linux
Categories
Find more on Large Files and Big Data in Help Center and MATLAB Answers
Tags Add Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Version Published Release Notes
1.8.0.0

Bug fixed - the first blockett sequence number does not start with no 1 for some MSEED files. The first part of the record was missing in that case. Decoding is then started from the 1st blockett in the file.

1.7.0.0

Accidentally, the version for older Matlab was published. Corrected now - this is a version for Matlab R2014 and newer.
Bug fixed - time stamps routine neglected fractions of seconds from MSEED block headers. Fractions of seconds added now.
File with fixed bug loaded now.

1.6.0.0

matlabTimeVector field added.
- time stamps for each data sample generated from MSEED header blocks.
For usage in older Matlab versions if function bitcmpOld raises an error, uncomment line 204 and comment out the rest of the bitcmpOld function.

1.5.0.0

Support for multiple logical volumes in MSEED file added.
Bug fixed.
Note:
For usage in older Matlab versions if function bitcmpOld raises an error, uncomment line 197 and comment out the rest of the bitcmpOld function.

1.4.0.0

Division changed to element-wise. Change of line 479.
Old code: sampleRate = 1/(sampleRateFactor.*sampleRateMultiplier);
New Code: sampleRate = 1./(sampleRateFactor.*sampleRateMultiplier);

1.3.0.0

Added bitcmpOld(A,N) function to mimic old funcionality of bitcmp(A,N) which is deprected now.
Important for usage in new MATLABs like version R2014.

1.2.0.0

.

1.1.0.0

The former script was able to load 4096 bytes block size volumes only (recommended value according to IRIS specification). The new one fixes this issue. The block size check is peformed prior to the MSEED processing.

1.0.0.0