If more than one component of one station is read via read("...", "MSEED") sometimes the starttime/endtime of the traces is varying by a single sample in a seemingly erratic way. This is annoying if one wants to work on the bare data array afterwards.[[BR]]
Another issue is that this can lead to the length of the returned traces varying by a sample (see last example) which is especially bad for further work with the fetched data.[BR]
Examples following:
{{{
!python
from obspy.core import read, UTCDateTime t = UTCDateTime("2010-06-20T20:19:51.494999Z") st = read("/bay200/mseed_online/archive/2010/BW/UH3/EH?.D/BW_.171", starttime=t-3, endtime=t+7) print st 3 Trace(s) in Stream: BW.UH3..EHE | 2010-06-20T20:19:48.494999Z - 2010-06-20T20:19:58.494999Z | 200.0 Hz, 2001 samples BW.UH3..EHZ | 2010-06-20T20:19:48.490000Z - 2010-06-20T20:19:58.490000Z | 200.0 Hz, 2001 samples BW.UH3..EHN | 2010-06-20T20:19:48.494999Z - 2010-06-20T20:19:58.494999Z | 200.0 Hz, 2001 samples st = read("/bay200/mseed_online/archive/2010/BW/UH2/EH?.D/BW_.171", starttime=t-3, endtime=t+7) print st 3 Trace(s) in Stream: BW.UH2..EHZ | 2010-06-20T20:19:48.490000Z - 2010-06-20T20:19:58.490000Z | 200.0 Hz, 2001 samples BW.UH2..EHN | 2010-06-20T20:19:48.494999Z - 2010-06-20T20:19:58.494999Z | 200.0 Hz, 2001 samples BW.UH2..EHE | 2010-06-20T20:19:48.494999Z - 2010-06-20T20:19:58.494999Z | 200.0 Hz, 2001 samples st = read("/bay200/mseed_online/archive/2010/BW/FURT/EH?.D/BW_.171", starttime=t-3, endtime=t+7) print st 3 Trace(s) in Stream: BW.FURT..EHZ | 2010-06-20T20:19:48.490000Z - 2010-06-20T20:19:58.490000Z | 200.0 Hz, 2001 samples BW.FURT..EHN | 2010-06-20T20:19:48.490000Z - 2010-06-20T20:19:58.490000Z | 200.0 Hz, 2001 samples BW.FURT..EHE | 2010-06-20T20:19:48.490000Z - 2010-06-20T20:19:58.490000Z | 200.0 Hz, 2001 samples st = read("/bay200/mseed_online/archive/2010/BW/DHFO/EH?.D/BW_.171", starttime=t-3, endtime=t+7) print st 3 Trace(s) in Stream: BW.DHFO..EHZ | 2010-06-20T20:19:48.490000Z - 2010-06-20T20:19:58.490000Z | 200.0 Hz, 2001 samples BW.DHFO..EHN | 2010-06-20T20:19:48.490000Z - 2010-06-20T20:19:58.490000Z | 200.0 Hz, 2001 samples BW.DHFO..EHE | 2010-06-20T20:19:48.495000Z - 2010-06-20T20:19:58.490000Z | 200.0 Hz, 2000 samples }}}
[[BR]]
It seems the problem is closely connected to how the single data packets are stored in the MSEED. The issue seems to be resolved at least to some extent if reading/writing with obspy and then again reading the files. But still it seems not 100% perfect:[[BR]]
It also seems weird to me for a trace to start at .494900 seconds in some of the following examples. Are the samples not always placed at .490 or .495 with 200 Hz sampling rate?
{{{
!python
for sta in ["UH3", "UH2", "FURT", "DHFO"]: ... for comp in ["Z", "N", "E"]: ... st = read("/bay200/mseed_online/archive/2010/BW/%s/EH%s.D/BW*.171" % (sta, comp)) ... st.write("/tmp/%s.%s.mseed" % (sta, comp), "MSEED") ... st = read("/tmp/%s.?.mseed" % sta, starttime=t-3, endtime=t+7) ... print st 3 Trace(s) in Stream: BW.UH3..EHZ | 2010-06-20T20:19:48.494900Z - 2010-06-20T20:19:58.494900Z | 200.0 Hz, 2001 samples BW.UH3..EHN | 2010-06-20T20:19:48.494900Z - 2010-06-20T20:19:58.494900Z | 200.0 Hz, 2001 samples BW.UH3..EHE | 2010-06-20T20:19:48.494900Z - 2010-06-20T20:19:58.494900Z | 200.0 Hz, 2001 samples 3 Trace(s) in Stream: BW.UH2..EHN | 2010-06-20T20:19:48.490000Z - 2010-06-20T20:19:58.490000Z | 200.0 Hz, 2001 samples BW.UH2..EHZ | 2010-06-20T20:19:48.494900Z - 2010-06-20T20:19:58.494900Z | 200.0 Hz, 2001 samples BW.UH2..EHE | 2010-06-20T20:19:48.490000Z - 2010-06-20T20:19:58.490000Z | 200.0 Hz, 2001 samples 3 Trace(s) in Stream: BW.FURT..EHN | 2010-06-20T20:19:48.490000Z - 2010-06-20T20:19:58.490000Z | 200.0 Hz, 2001 samples BW.FURT..EHE | 2010-06-20T20:19:48.490000Z - 2010-06-20T20:19:58.490000Z | 200.0 Hz, 2001 samples BW.FURT..EHZ | 2010-06-20T20:19:48.490000Z - 2010-06-20T20:19:58.490000Z | 200.0 Hz, 2001 samples 3 Trace(s) in Stream: BW.DHFO..EHZ | 2010-06-20T20:19:48.490000Z - 2010-06-20T20:19:58.490000Z | 200.0 Hz, 2001 samples BW.DHFO..EHN | 2010-06-20T20:19:48.490000Z - 2010-06-20T20:19:58.490000Z | 200.0 Hz, 2001 samples BW.DHFO..EHE | 2010-06-20T20:19:48.490000Z - 2010-06-20T20:19:58.490000Z | 200.0 Hz, 2001 samples }}}
该提问来源于开源项目:obspy/obspy