Example #1
0
 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])
Example #2
0
    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])
Example #3
0
    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])
Example #4
0
 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
Example #5
0
 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
Example #6
0
    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), [])
Example #7
0
    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), [])