def test_z_n_search_expocorr_fails(self): """Test pulse phase calculation, frequency only.""" frequencies = np.arange(9.8, 9.99, 0.1/self.tseg) with pytest.raises(ValueError) as excinfo: freq, stat = z_n_search(self.event_times, frequencies, nharm=1, nbin=35, expocorr=True) assert 'To calculate exposure correction' in str(excinfo)
def test_z_n_search_weights(self): """Test pulse phase calculation, frequency only.""" frequencies = np.arange(9.8, 9.99, 0.1/self.tseg) freq, stat = z_n_search(self.times, frequencies, nbin=44, nharm=1, weights=self.counts) minbin = np.argmin(np.abs(frequencies - self.pulse_frequency)) maxstatbin = freq[np.argmax(stat)] assert np.allclose(maxstatbin, frequencies[minbin], atol=0.1/self.tseg)
def test_z_n_search_expocorr(self): """Test pulse phase calculation, frequency only.""" frequencies = np.arange(9.8, 9.99, 0.1/self.tseg) freq, stat = z_n_search(self.event_times, frequencies, nbin=64, nharm=2, expocorr=True, gti=self.gti) minbin = np.argmin(np.abs(frequencies - self.pulse_frequency)) maxstatbin = freq[np.argmax(stat)] assert np.allclose(maxstatbin, frequencies[minbin], atol=0.1/self.tseg)
def test_z_n_search_expocorr(self): """Test pulse phase calculation, frequency only.""" frequencies = np.arange(9.89, 9.91, 0.1/self.tseg) freq, stat = z_n_search(self.event_times, frequencies, nbin=16, nharm=1, expocorr=True) minbin = np.argmin(np.abs(frequencies - self.pulse_frequency)) maxstatbin = freq[np.argmax(stat)] assert maxstatbin == frequencies[minbin]
def test_z_n_search_expocorr_fails(self): """Test pulse phase calculation, frequency only.""" frequencies = np.arange(9.8, 9.99, 0.1 / self.tseg) with pytest.raises(ValueError) as excinfo: freq, stat = z_n_search(self.event_times, frequencies, nharm=1, nbin=35, expocorr=True) assert 'To calculate exposure correction' in str(excinfo)
def test_z_n_search(self): """Test pulse phase calculation, frequency only.""" frequencies = np.arange(9.85, 9.95, 0.3 / self.tseg) freq, stat = z_n_search(self.event_times, frequencies, nbin=16, nharm=1) minbin = np.argmin(np.abs(frequencies - self.pulse_frequency)) maxstatbin = freq[np.argmax(stat)] assert maxstatbin == frequencies[minbin]
def test_z_n_search_fdot(self): """Test pulse phase calculation, frequency only.""" frequencies = np.arange(9.8, 9.99, 0.1/self.tseg) fdots = [-0.1, 0, 0.1] freq, fdot, stat = z_n_search(self.event_times, frequencies, nbin=25, nharm=2, fdots=fdots) minbin = np.argmin(np.abs(frequencies - self.pulse_frequency)) maxstatbin = freq.flatten()[np.argmax(stat)] assert np.allclose(maxstatbin, frequencies[minbin], atol=0.1/self.tseg) maxfdot = fdot.flatten()[np.argmax(stat)] assert np.allclose(maxfdot, 0.0, atol=0.1/self.tseg)
def test_z_n_search(self): """Test pulse phase calculation, frequency only.""" frequencies = np.arange(9.8, 9.99, 0.1 / self.tseg) freq, stat = z_n_search(self.event_times, frequencies, nbin=25, nharm=2) minbin = np.argmin(np.abs(frequencies - self.pulse_frequency)) maxstatbin = freq[np.argmax(stat)] assert np.allclose(maxstatbin, frequencies[minbin], atol=0.1 / self.tseg)
def test_z_n_search_fdot(self): """Test pulse phase calculation, frequency only.""" frequencies = np.arange(9.8, 9.99, 0.1 / self.tseg) fdots = [-0.1, 0, 0.1] freq, fdot, stat = z_n_search(self.event_times, frequencies, nbin=25, nharm=2, fdots=fdots) minbin = np.argmin(np.abs(frequencies - self.pulse_frequency)) maxstatbin = freq.flatten()[np.argmax(stat)] assert np.allclose(maxstatbin, frequencies[minbin], atol=0.1 / self.tseg) maxfdot = fdot.flatten()[np.argmax(stat)] assert np.allclose(maxfdot, 0.0, atol=0.1 / self.tseg)
' $\pm$ ' + str(round(fwhm / 2, 2 + int(-np.log10(fwhm / 2))))) except: pass plt.axhline(nbin - 1, ls='--', lw=3, color='k', label='n - 1') plt.xlabel('Frequency (Hz)') plt.ylabel('EF Statistics') _ = plt.legend() plt.savefig('figures_folder/' + add_space(source) + '_NuSTAR_pulse_frequency_search.pdf') if Z_2_check == 'N': exit() # We will search for pulsations over a range of frequencies around the known pulsation period. nharm = 1 freq, zstat = z_n_search(times, frequencies, nbin=nbin, nharm=nharm) # ---- PLOTTING -------- plt.figure() plt.suptitle('Source:' + source + ' \n NuSTAR observations', fontsize=12) plt.plot(freq, (zstat - nharm), label='$Z_2$ statistics') plt.plot(freq, efstat - nbin + 1, color='gray', label='EF statistics', alpha=0.5) plt.xlim([frequencies[0], frequencies[-1]]) plt.xlabel('Frequency (Hz)') plt.ylabel('Statistics - d.o.f.') plt.legend()