Beispiel #1
0
 def test_load_and_save_events(self):
     events = EventList([0, 2, 3.], pi=[1, 2, 3], mjdref=54385.3254923845,
                        gti = np.longdouble([[-0.5, 3.5]]))
     events.energy = np.array([3., 4., 5.])
     save_to_intermediate_file(events, self.dum)
     ds = load_dataset_from_intermediate_file(self.dum)
     assert ds
Beispiel #2
0
 def test_load_and_save_events(self):
     events = EventList([0, 2, 3.], pi=[1, 2, 3], mjdref=54385.3254923845,
                        gti = np.longdouble([[-0.5, 3.5]]))
     events.energy = np.array([3., 4., 5.])
     save_events(events, self.dum)
     events2 = load_events(self.dum)
     assert np.allclose(events.time, events2.time)
     assert np.allclose(events.pi, events2.pi)
     assert np.allclose(events.mjdref, events2.mjdref)
     assert np.allclose(events.gti, events2.gti)
     assert np.allclose(events.energy, events2.energy)
    def setup_class(cls):
        from ..simulator import Simulator

        dt = 0.01
        cls.time_lag = 5.
        data = np.load(os.path.join(datadir, "sample_variable_lc.npy"))
        flux = data
        times = np.arange(data.size) * dt
        maxfreq = 0.25 / cls.time_lag
        roll_amount = int(cls.time_lag // dt)
        good = slice(roll_amount, roll_amount + int(200 // dt))

        rolled_flux = np.array(np.roll(flux, roll_amount))
        times, flux, rolled_flux = times[good], flux[good], rolled_flux[good]

        length = times[-1] - times[0]
        test_lc1 = Lightcurve(times,
                              flux,
                              err_dist="gauss",
                              dt=dt,
                              skip_checks=True)
        test_lc2 = Lightcurve(test_lc1.time,
                              rolled_flux,
                              err_dist=test_lc1.err_dist,
                              dt=dt)
        test_ev1, test_ev2 = EventList(), EventList()
        test_ev1.simulate_times(test_lc1)
        test_ev2.simulate_times(test_lc2)

        test_ev1.energy = np.random.uniform(0.3, 9, len(test_ev1.time))
        test_ev2.energy = np.random.uniform(9, 12, len(test_ev2.time))

        cls.lag = LagEnergySpectrum(
            test_ev1,
            freq_interval=[0, maxfreq],
            energy_spec=(0.3, 9, 1, "lin"),
            ref_band=[9, 12],
            bin_time=dt / 2,
            segment_size=length,
            events2=test_ev2,
        )

        # Make single event list
        test_ev = test_ev1.join(test_ev2)

        cls.lag_same = LagEnergySpectrum(
            test_ev,
            freq_interval=[0, maxfreq],
            energy_spec=(0.3, 9, 1, "lin"),
            ref_band=[9, 12],
            bin_time=dt / 2,
            segment_size=length,
        )
Beispiel #4
0
    def setup_class(cls):
        from ..simulator.simulator import Simulator

        simulator = Simulator(0.1, 1000, rms=0.4, mean=200)
        test_lc = simulator.simulate(1)
        test_ev1, test_ev2 = EventList(), EventList()
        test_ev1.simulate_times(test_lc)
        test_ev2.simulate_times(test_lc)
        test_ev1.energy = np.random.uniform(0.3, 12, len(test_ev1.time))
        test_ev2.energy = np.random.uniform(0.3, 12, len(test_ev2.time))

        cls.rms = RmsEnergySpectrum(test_ev1, [0., 100], (0.3, 12, 5, "lin"),
                                    bin_time=0.01,
                                    segment_size=100,
                                    events2=test_ev2)
Beispiel #5
0
def test_filter_for_deadtime_evlist():
    """Test dead time filter, non-paralyzable case."""
    events = np.array([1, 1.05, 1.07, 1.08, 1.1, 2, 2.2, 3, 3.1, 3.2])
    events = EventList(events)
    events.pi=np.array([1, 2, 2, 2, 2, 1, 1, 1, 2, 1])
    events.energy=np.array([1, 2, 2, 2, 2, 1, 1, 1, 2, 1])
    events.mjdref = 10
    filt_events = filter_for_deadtime(events, 0.11)

    expected = np.array([1, 2, 2.2, 3, 3.2])
    assert np.allclose(filt_events.time, expected), \
        "Wrong: {} vs {}".format(filt_events, expected)

    assert np.allclose(filt_events.pi, 1)
    assert np.allclose(filt_events.energy, 1)
    def setup_class(cls):
        from ..simulator.simulator import Simulator

        simulator = Simulator(0.1, 1000, rms=0.4, mean=200)
        test_lc = simulator.simulate(1)
        test_ev1, test_ev2 = EventList(), EventList()
        test_ev1.simulate_times(test_lc)
        test_ev2.simulate_times(test_lc)
        test_ev1.energy = np.random.uniform(0.3, 12, len(test_ev1.time))
        test_ev2.energy = np.random.uniform(0.3, 12, len(test_ev2.time))

        cls.rms = RmsEnergySpectrum(test_ev1, [0., 100],
                                    (0.3, 12, 5, "lin"),
                                    bin_time=0.01,
                                    segment_size=100,
                                    events2=test_ev2)
Beispiel #7
0
def load_events(fname):
    """Load events from a file."""
    if get_file_format(fname) == 'pickle':
        out = _load_data_pickle(fname)
    elif get_file_format(fname) == 'nc':
        out = _load_data_nc(fname)

    eventlist = EventList()

    eventlist.time = out['time']
    eventlist.gti = out['gti']
    eventlist.pi = out['pi']
    eventlist.mjdref = out['mjdref']
    if 'instr' in list(out.keys()):
        eventlist.instr = out["instr"]
    if 'energy' in list(out.keys()):
        eventlist.energy = out["energy"]
    if 'header' in list(out.keys()):
        eventlist.header = out["header"]
    return eventlist
Beispiel #8
0
    def setup_class(cls):
        from ..simulator.simulator import Simulator
        dt = 0.1
        simulator = Simulator(dt, 1000, rms=0.4, mean=200)
        test_lc1 = simulator.simulate(2)
        test_lc2 = Lightcurve(test_lc1.time,
                              np.array(np.roll(test_lc1.counts, 2)),
                              err_dist=test_lc1.err_dist,
                              dt=dt)

        test_ev1, test_ev2 = EventList(), EventList()
        test_ev1.simulate_times(test_lc1)
        test_ev2.simulate_times(test_lc2)
        test_ev1.energy = np.random.uniform(0.3, 9, len(test_ev1.time))
        test_ev2.energy = np.random.uniform(9, 12, len(test_ev2.time))

        cls.lag = LagEnergySpectrum(test_ev1, [0., 0.5], (0.3, 9, 4, "lin"),
                                    [9, 12],
                                    bin_time=0.1,
                                    segment_size=30,
                                    events2=test_ev2)
    def setup_class(cls):
        from ..simulator.simulator import Simulator
        dt = 0.1
        simulator = Simulator(dt, 1000, rms=0.4, mean=200)
        test_lc1 = simulator.simulate(2)
        test_lc2 = Lightcurve(test_lc1.time,
                              np.array(np.roll(test_lc1.counts, 2)),
                              err_dist=test_lc1.err_dist,
                              dt=dt)

        test_ev1, test_ev2 = EventList(), EventList()
        test_ev1.simulate_times(test_lc1)
        test_ev2.simulate_times(test_lc2)
        test_ev1.energy = np.random.uniform(0.3, 9, len(test_ev1.time))
        test_ev2.energy = np.random.uniform(9, 12, len(test_ev2.time))

        cls.lag = LagEnergySpectrum(test_ev1, [0., 0.5],
                                    (0.3, 9, 4, "lin"), [9, 12],
                                    bin_time=0.1,
                                    segment_size=30,
                                    events2=test_ev2)
Beispiel #10
0
 def setup_class(cls):
     cls.pulse_frequency = 1 / 0.101
     cls.tstart = 0
     cls.tend = 25.25
     cls.tseg = cls.tend - cls.tstart
     cls.dt = 0.00606
     cls.times = np.arange(cls.tstart, cls.tend, cls.dt) + cls.dt / 2
     cls.counts = \
         100 + 20 * np.cos(2 * np.pi * cls.times * cls.pulse_frequency)
     lc = Lightcurve(cls.times, cls.counts, gti=[[cls.tstart, cls.tend]])
     events = EventList()
     events.simulate_times(lc)
     cls.event_times = events.time
     cls.dum_noe = 'events_noe' + HEN_FILE_EXTENSION
     save_events(events, cls.dum_noe)
     events.pi = np.random.uniform(0, 1000, len(events.time))
     cls.dum_pi = 'events_pi' + HEN_FILE_EXTENSION
     save_events(events, cls.dum_pi)
     events.energy = np.random.uniform(3, 79, len(events.time))
     cls.dum = 'events' + HEN_FILE_EXTENSION
     save_events(events, cls.dum)