obspy.io.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 (devs@obspy.org) & Stefan Stange |
---|---|
license: | GNU Lesser General Public License, Version 3 (https://www.gnu.org/copyleft/lesser.html) |
Reading¶
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[0].stats.pop('gse2')
>>> print(st[0].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[0].data)
[ 12 -10 16 ..., 8 0 -40]