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
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, )
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)
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 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
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): 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)