def test_read_seisan(self): """ Test SEISAN file reader. """ # 1 - big endian, 32 bit file = os.path.join(self.path, '9701-30-1048-54S.MVO_21_1') st1 = _read_seisan(file) st1.verify() self.assertEqual(len(st1), 21) self.assertEqual(st1[20].stats.network, '') self.assertEqual(st1[20].stats.station, 'MBGB') self.assertEqual(st1[20].stats.location, 'J') self.assertEqual(st1[20].stats.channel, 'SBE') self.assertEqual(st1[20].stats.starttime, UTCDateTime('1997-01-30T10:48:54.040000Z')) self.assertEqual(st1[20].stats.endtime, UTCDateTime('1997-01-30T10:49:42.902881Z')) self.assertAlmostEqual(st1[20].stats.sampling_rate, 75.2, 1) self.assertEqual(st1[20].stats.npts, 3675) self.assertAlmostEqual(st1[20].stats.delta, 0.0133, 4) datafile = os.path.join(self.path, 'MBGBSBJE') # compare with ASCII values of trace # XXX: extracted ASCII file contains less values than the original # Seisan file! self.assertEqual(list(st1[20].data[1:3666]), np.loadtxt(datafile, dtype=np.int32).tolist()) # 2 - little endian, 32 bit file = os.path.join(self.path, '2001-01-13-1742-24S.KONO__004') st2 = _read_seisan(file) st2.verify() self.assertEqual(len(st2), 4) self.assertEqual(list(st2[0].data[1:4]), [492, 519, 542])
def test_read_seisan(self): """ Test SEISAN file reader. """ # 1 - big endian, 32 bit, version 7 fn = os.path.join(self.path, '9701-30-1048-54S.MVO_21_1') st = _read_seisan(fn) st.verify() self.assertEqual(len(st), 21) self.assertEqual(st[20].stats.network, '') self.assertEqual(st[20].stats.station, 'MBGB') self.assertEqual(st[20].stats.location, 'J') self.assertEqual(st[20].stats.channel, 'SBE') self.assertEqual(st[20].stats.starttime, UTCDateTime('1997-01-30T10:48:54.040000Z')) self.assertEqual(st[20].stats.endtime, UTCDateTime('1997-01-30T10:49:42.902881Z')) self.assertAlmostEqual(st[20].stats.sampling_rate, 75.2, 1) self.assertEqual(st[20].stats.npts, 3675) self.assertAlmostEqual(st[20].stats.delta, 0.0133, 4) datafile = os.path.join(self.path, '9701-30-1048-54S.MVO_21_1.ascii') # compare with ASCII values of trace (extracted ASCII file contains # less values than the original Seisan file!) self.assertEqual(st[20].stats.npts, 3675) self.assertEqual(list(st[20].data[1:3666]), np.loadtxt(datafile, dtype=np.int32).tolist()) # 2 - little endian, 32 bit, version 7 fn = os.path.join(self.path, '2001-01-13-1742-24S.KONO__004') st = _read_seisan(fn) st.verify() self.assertEqual(len(st), 4) self.assertEqual(st[0].stats.npts, 6000) self.assertEqual(list(st[0].data[0:5]), [464, 492, 519, 542, 565]) # 3 - little endian, 32 bit, version 6, 1 channel fn = os.path.join(self.path, 'D1360930.203') st = _read_seisan(fn) st.verify() self.assertEqual(len(st), 1) self.assertEqual(st[0].stats.npts, 12000) self.assertEqual(list(st[0].data[0:5]), [24, 64, 139, 123, 99]) # 4 - little endian, 32 bit, version 6, 3 channels fn = os.path.join(self.path, '2005-07-23-1452-04S.CER___030') st = _read_seisan(fn) st.verify() self.assertEqual(len(st), 3) self.assertEqual(st[0].stats.npts, 10650) self.assertEqual(list(st[0].data[0:5]), [7520, 7484, 7482, 7480, 7478])
def test_read_seisanHeadOnly(self): """ Test SEISAN file reader with headonly flag. """ # 1 - big endian, 32 bit file = os.path.join(self.path, "9701-30-1048-54S.MVO_21_1") st1 = _read_seisan(file, headonly=True) self.assertEqual(len(st1), 21) self.assertEqual(st1[0].stats.network, "") self.assertEqual(st1[0].stats.station, "MBGA") self.assertEqual(st1[0].stats.location, "J") self.assertEqual(st1[0].stats.channel, "SBZ") self.assertEqual(st1[0].stats.starttime, UTCDateTime("1997-01-30T10:48:54.040000Z")) self.assertEqual(st1[0].stats.endtime, UTCDateTime("1997-01-30T10:49:42.902881Z")) self.assertAlmostEqual(st1[0].stats.sampling_rate, 75.2, 1) self.assertEqual(st1[0].stats.npts, 3675) self.assertAlmostEqual(st1[20].stats.delta, 0.0133, 4) self.assertEqual(list(st1[0].data), []) # no data
def test_read_seisan_head_only(self): """ Test SEISAN file reader with headonly flag. """ # 1 - big endian, 32 bit file = os.path.join(self.path, '9701-30-1048-54S.MVO_21_1') st1 = _read_seisan(file, headonly=True) self.assertEqual(len(st1), 21) self.assertEqual(st1[0].stats.network, '') self.assertEqual(st1[0].stats.station, 'MBGA') self.assertEqual(st1[0].stats.location, 'J') self.assertEqual(st1[0].stats.channel, 'SBZ') self.assertEqual(st1[0].stats.starttime, UTCDateTime('1997-01-30T10:48:54.040000Z')) self.assertEqual(st1[0].stats.endtime, UTCDateTime('1997-01-30T10:49:42.902881Z')) self.assertAlmostEqual(st1[0].stats.sampling_rate, 75.2, 1) self.assertEqual(st1[0].stats.npts, 3675) self.assertAlmostEqual(st1[20].stats.delta, 0.0133, 4) self.assertEqual(list(st1[0].data), []) # no data
def test_read_seisan_head_only(self): """ Test SEISAN file reader with headonly flag. """ # 1 - big endian, 32 bit, version 7 fn = os.path.join(self.path, '9701-30-1048-54S.MVO_21_1') st = _read_seisan(fn, headonly=True) self.assertEqual(len(st), 21) self.assertEqual(st[0].stats.network, '') self.assertEqual(st[0].stats.station, 'MBGA') self.assertEqual(st[0].stats.location, 'J') self.assertEqual(st[0].stats.channel, 'SBZ') self.assertEqual(st[0].stats.starttime, UTCDateTime('1997-01-30T10:48:54.040000Z')) self.assertEqual(st[0].stats.endtime, UTCDateTime('1997-01-30T10:49:42.902881Z')) self.assertAlmostEqual(st[0].stats.sampling_rate, 75.2, 1) self.assertEqual(st[0].stats.npts, 3675) self.assertAlmostEqual(st[20].stats.delta, 0.0133, 4) self.assertEqual(list(st[0].data), []) # no data # 2 - little endian, 32 bit, version 7 fn = os.path.join(self.path, '2001-01-13-1742-24S.KONO__004') st = _read_seisan(fn, headonly=True) self.assertEqual(len(st), 4) self.assertEqual(st[0].stats.network, '') self.assertEqual(st[0].stats.station, 'KONO') self.assertEqual(st[0].stats.location, '0') self.assertEqual(st[0].stats.channel, 'B0Z') self.assertEqual(st[0].stats.starttime, UTCDateTime(2001, 1, 13, 17, 45, 1, 999000)) self.assertEqual(st[0].stats.endtime, UTCDateTime(2001, 1, 13, 17, 50, 1, 949000)) self.assertEqual(st[0].stats.sampling_rate, 20.0) self.assertEqual(st[0].stats.npts, 6000) self.assertEqual(list(st[0].data), []) # no data # 3 - little endian, 32 bit, version 6, 1 channel fn = os.path.join(self.path, 'D1360930.203') st = _read_seisan(fn, headonly=True) self.assertEqual(len(st), 1) self.assertEqual(st[0].stats.network, '') self.assertEqual(st[0].stats.station, 'mart') self.assertEqual(st[0].stats.location, '1') self.assertEqual(st[0].stats.channel, 'cp') self.assertEqual(st[0].stats.starttime, UTCDateTime(2017, 7, 22, 9, 30)) self.assertEqual(st[0].stats.endtime, UTCDateTime(2017, 7, 22, 9, 31, 59, 990000)) self.assertEqual(st[0].stats.sampling_rate, 100.0) self.assertEqual(st[0].stats.npts, 12000) self.assertEqual(list(st[0].data), []) # 4 - little endian, 32 bit, version 6, 3 channels fn = os.path.join(self.path, '2005-07-23-1452-04S.CER___030') st = _read_seisan(fn, headonly=True) self.assertEqual(len(st), 3) self.assertEqual(st[0].stats.channel, 'BHZ') self.assertEqual(st[1].stats.channel, 'BHN') self.assertEqual(st[2].stats.channel, 'BHE') for i in range(0, 3): self.assertEqual(st[i].stats.network, '') self.assertEqual(st[i].stats.station, 'CER') self.assertEqual(st[i].stats.location, '') self.assertEqual(st[i].stats.starttime, UTCDateTime('2005-07-23T14:52:04.000000Z')) self.assertEqual(st[i].stats.endtime, UTCDateTime('2005-07-23T14:53:14.993333Z')) self.assertEqual(st[i].stats.sampling_rate, 150.0) self.assertEqual(st[i].stats.npts, 10650) self.assertEqual(list(st[i].data), [])