obspy.gse2 - GSE2/GSE1 read and write support for ObsPy¶
This module provides read and write support for GSE2 CM6 compressed as well as GSE1 CM6/INT waveform data and header info. Most methods are based on the C library GSE_UTI of Stefan Stange, which is interfaced via Python ctypes.
|copyright:||The ObsPy Development Team (firstname.lastname@example.org) & Stefan Stange|
|license:||GNU Lesser General Public License, Version 3 (http://www.gnu.org/copyleft/lesser.html)|
Similar to reading any other waveform data format using obspy.core:
>>> from obspy import read >>> st = read("/path/to/loc_RJOB20050831023349.z")
You can also specify the following keyword arguments that change the behavior of reading the file:
- headonly=True: Read only the header part, not the actual data
- verify_chksum=False: Do not verify the checksum of the GSE2 file. This is very useful if the program, which wrote the checksum, calculated it in a wrong way.
>>> st <obspy.core.stream.Stream object at 0x...> >>> print(st) 1 Trace(s) in Stream: .RJOB..Z | 2005-08-31T02:33:49.850000Z - 2005-08-31T02:34:49.845000Z | 200.0 Hz, 12000 samples
The format will be determined automatically. Each trace (multiple ‘WID2’ entries are mapped to multiple traces) will have a stats attribute containing the usual information. When reading a GSE2 file it will have one additional attribute named gse2. This attribute contains all GSE2 specific attributes:
>>> gse2 = st.stats.pop('gse2') >>> print(st.stats) network: station: RJOB location: channel: Z starttime: 2005-08-31T02:33:49.850000Z endtime: 2005-08-31T02:34:49.845000Z sampling_rate: 200.0 delta: 0.005 npts: 12000 calib: 0.0949 _format: GSE2
>>> for k, v in sorted(gse2.items()): ... print(k, v) auxid RJOB calper 1.0 coordsys datatype CM6 edepth -0.999 elev -0.999 hang -1.0 instype lat -99.0 lon -999.0 vang -1.0
The actual data is stored as ndarray in the data attribute of each trace.
>>> print(st.data) [ 12 -10 16 ..., 8 0 -40]
>>> st.write('GSE2-filename.gse', format='GSE2')