Exemple #1
0
    def test_remove_noncontiguous(self):
        tb1 = generate_timebase(t0=-0.5, n_samples=1.e2, sample_freq=1.e2)
        tb2 = generate_timebase(t0=-0.5, n_samples=1.e2, sample_freq=1.e2)
        tb3 = generate_timebase(t0=-0.5, n_samples=1.e2, sample_freq=1.e2)
        # nonzero signal mean
        tsd1 = TimeseriesData(timebase=tb1,
                              signal=Signal(np.arange(len(tb1))), channels=ChannelList(Channel('ch_01',Coords('dummy',(0,0,0)))))
        tsd2 = TimeseriesData(timebase=tb2,
                              signal=Signal(np.arange(len(tb2))), channels=ChannelList(Channel('ch_01',Coords('dummy',(0,0,0)))))
        tsd3 = TimeseriesData(timebase=tb3,
                              signal=Signal(np.arange(len(tb3))), channels=ChannelList(Channel('ch_01',Coords('dummy',(0,0,0)))))

        self.assertTrue(tb1.is_contiguous())
        self.assertTrue(tb2.is_contiguous())
        self.assertTrue(tb3.is_contiguous())
        tsd2.timebase[-50:] += 1.0
        self.assertFalse(tb2.is_contiguous())

        ds = DataSet('ds')
        for tsd in [tsd1, tsd2, tsd3]:
            ds.add(tsd)
        
        for tsd in [tsd1, tsd2, tsd3]:
            self.assertTrue(tsd in ds)

        filtered_ds = ds.remove_noncontiguous()
        for tsd in [tsd1, tsd3]:
            self.assertTrue(tsd in filtered_ds)
            
        self.assertFalse(tsd2 in filtered_ds)
Exemple #2
0
 def fetch(self):
     tb = generate_timebase(t0=float(self.t0), n_samples=int(self.n_samples), sample_freq=float(self.sample_freq))
     sig = Signal(float(self.shot) * sin(2 * pi * float(self.frequency) * tb))
     dummy_channel = Channel("ch_01", Coords("dummy", (0, 0, 0)))
     output_data = TimeseriesData(timebase=tb, signal=sig, channels=ChannelList(dummy_channel))
     output_data.meta.update({"shot": self.shot})
     return output_data
Exemple #3
0
 def test_multi_channel_timeseries(self):
     tb = generate_timebase(t0=-0.5, n_samples=1.e2, sample_freq=1.e2)
     tsd = TimeseriesData(timebase=tb,
                          signal=Signal(np.resize(np.arange(3*len(tb)), (3,len(tb)))),
                          channels=get_n_channels(3))
     seg_dataset = tsd.segment(n_samples=10)
     self.assertTrue(len(seg_dataset)==10)
Exemple #4
0
 def test_timebase(self):
     t0=0.3
     n_samples=500
     sample_freq=1.e6
     test_tb = generate_timebase(t0=t0,n_samples=n_samples, sample_freq=sample_freq)
     local_tb = np.arange(t0, t0+n_samples/sample_freq, 1./sample_freq)
     self.assertTrue((test_tb == local_tb).all())
     self.assertAlmostEqual(test_tb.sample_freq, sample_freq, 4)
Exemple #5
0
    def test_remove_mean_single_channel(self):
        tb = generate_timebase(t0=-0.5, n_samples=1.e2, sample_freq=1.e2)
        # nonzero signal mean
        tsd = TimeseriesData(timebase=tb,
                             signal=Signal(np.arange(len(tb))), channels=ChannelList(Channel('ch_01',Coords('dummy',(0,0,0)))))

        filtered_tsd = tsd.subtract_mean()

        assert_almost_equal(np.mean(filtered_tsd.signal), 0)
Exemple #6
0
    def test_timebase_slice(self):
        t0=0.3
        n_samples=500
        sample_freq=1.e6
        test_tb = generate_timebase(t0=t0,n_samples=n_samples, sample_freq=sample_freq)

        self.assertTrue(hasattr(test_tb, 'sample_freq'))

        sliced_tb = test_tb[:10]

        self.assertTrue(hasattr(sliced_tb, 'sample_freq'))
Exemple #7
0
 def fetch(self):
     tb = generate_timebase(t0=float(self.t0),
                            n_samples=int(self.n_samples),
                            sample_freq=float(self.sample_freq))
     sig = Signal(
         float(self.amplitude) * sin(2 * pi * float(self.frequency) * tb))
     dummy_channel = Channel('ch_01', Coords('dummy', (0, 0, 0)))
     output_data = TimeseriesData(timebase=tb,
                                  signal=sig,
                                  channels=ChannelList(dummy_channel))
     output_data.meta.update({'shot': self.shot})
     return output_data
Exemple #8
0
 def test_reduce_time_dataset(self):
     new_times = [-0.25, 0.25]
     tb = generate_timebase(t0=-0.5, n_samples=1.e2, sample_freq=1.e2)
     tsd_1 = TimeseriesData(timebase=tb,
                            signal=Signal(np.resize(np.arange(5*len(tb)),(5,len(tb)))),
                            channels=get_n_channels(5))
     tsd_2 = TimeseriesData(timebase=tb, signal=Signal(np.resize(np.arange(5*len(tb))+1,(5,len(tb)))),
                            channels=get_n_channels(5))
     test_dataset = DataSet('test_dataset')
     test_dataset.add(tsd_1)
     test_dataset.add(tsd_2)
     test_dataset.reduce_time(new_times)
Exemple #9
0
 def test_dataset(self):
     tb = generate_timebase(t0=-0.5, n_samples=1.e2, sample_freq=1.e2)
     tsd_1 = TimeseriesData(timebase=tb,
                            signal=Signal(np.resize(np.arange(3*len(tb)), (3,len(tb)))),
                            channels=get_n_channels(3))
     tsd_2 = TimeseriesData(timebase=tb,
                            signal=Signal(np.resize(np.arange(3*len(tb)+1),(3,len(tb)))),
                            channels=get_n_channels(3))
     input_dataset = DataSet('test_dataset')
     input_dataset.add(tsd_1)
     input_dataset.add(tsd_2)
     seg_dataset = input_dataset.segment(n_samples=10)
     self.assertTrue(len(seg_dataset)==20)
Exemple #10
0
 def test_reduce_time_filter_multi_channel_attached_method(self):
     new_times = [-0.25, 0.25]
     tb = generate_timebase(t0=-0.5, n_samples=1.e2, sample_freq=1.e2)
     tsd = TimeseriesData(timebase=tb,
                          signal=Signal(np.resize(np.arange(5*len(tb)),(5,len(tb)))),
                          channels=get_n_channels(5))
     new_time_args = np.searchsorted(tb, new_times)
     timebase_test = tsd.timebase[new_time_args[0]:new_time_args[1]].copy()
     signal_test = tsd.signal[:,new_time_args[0]:new_time_args[1]].copy()
     reduced_tsd = tsd.reduce_time(new_times)
     self.assertTrue(isinstance(reduced_tsd, TimeseriesData))
     assert_array_almost_equal(reduced_tsd.timebase, timebase_test)
     assert_array_almost_equal(reduced_tsd.signal, signal_test)
Exemple #11
0
 def test_dataset(self):
     ch=get_n_channels(5)
     new_times = [-0.25, 0.25]
     tb = generate_timebase(t0=-0.5, n_samples=1.e2, sample_freq=1.e2)
     tsd_1 = TimeseriesData(timebase=tb, signal=Signal(np.resize(np.arange(5*len(tb)),(5,len(tb)))),
                            channels=ch)
     tsd_2 = TimeseriesData(timebase=tb,
                            signal=Signal(np.resize(np.arange(5*len(tb))+1, (5,len(tb)))),
                            channels=ch)
     test_dataset = DataSet('test_ds_1')
     test_dataset.add(tsd_1)
     test_dataset.add(tsd_2)
     self.assertTrue(tsd_1 in test_dataset)
     """
Exemple #12
0
    def testFilteredDataHistory_nocopy(self):

        tb = generate_timebase(t0=-0.5, n_samples=1.e2, sample_freq=1.e2)
        # nonzero signal mean
        ch = get_n_channels(1)
        tsd = TimeseriesData(timebase=tb,
                             signal=Signal(np.arange(len(tb))), channels=ch)

        filtered_tsd = tsd.subtract_mean()
        #self.assertEqual(len(filtered_tsd.history.split('\n')), 3)
        self.assertEqual(len(filtered_tsd.history.split('\n')), 5)  # bdb thinks extra 2 is OK
        output_data = filtered_tsd.normalise(method='rms', copy=False)
        #self.assertEqual(filtered_tsd.history.split('> ')[-1], "normalise(method='rms')")
        self.assertEqual(filtered_tsd.history.split('> ')[-1].split('\n')[0], "normalise(method='rms')")
        #self.assertEqual(output_data.history.split('> ')[-1], "normalise(method='rms')")
        self.assertEqual(output_data.history.split('> ')[-1].split('\n')[0], "normalise(method='rms')")
Exemple #13
0
    def testFilteredDataHistory_copy(self):
        """ make sure that _copy version does NOT alter original 
        """
        tb = generate_timebase(t0=-0.5, n_samples=1.e2, sample_freq=1.e2)
        # nonzero signal mean
        ch = get_n_channels(1)
        tsd = TimeseriesData(timebase=tb,
                             signal=Signal(np.arange(len(tb))), channels=ch)

        filtered_tsd = tsd.subtract_mean()
        # bdb in 4 places, assume that the xtra info (norm_value) is supposed to be there.
        #self.assertEqual(len(filtered_tsd.history.split('\n')), 3)
        self.assertEqual(len(filtered_tsd.history.split('\n')), 5)  # bdb thinks extra 2 is OK
        output_data = filtered_tsd.normalise(method='rms', copy=True)
        #self.assertEqual(output_data.history.split('> ')[-1], "normalise(method='rms')")
        self.assertEqual(output_data.history.split('> ')[-1].split('\n')[0], "normalise(method='rms')")

        #self.assertEqual(filtered_tsd.history.split('> ')[-1], "subtract_mean()")
        self.assertEqual(filtered_tsd.history.split('> ')[-1].split('\n')[0], "subtract_mean()")