コード例 #1
0
ファイル: test_search.py プロジェクト: abigailStev/stingray
 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)
コード例 #2
0
ファイル: test_search.py プロジェクト: abigailStev/stingray
    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)
コード例 #3
0
ファイル: test_search.py プロジェクト: abigailStev/stingray
    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)
コード例 #4
0
ファイル: test_search.py プロジェクト: pabell/stingray
    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]
コード例 #5
0
 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)
コード例 #6
0
    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]
コード例 #7
0
ファイル: test_search.py プロジェクト: abigailStev/stingray
    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)
コード例 #8
0
    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)
コード例 #9
0
    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)
コード例 #10
0
             ' $\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()