def get_scaling(dest_value): f = FilReader('gain.fil') bandpass = f.bandpass() / f.header.nsamples maxsample = np.amax(bandpass[np.nonzero(bandpass)]) avgsample = np.average(bandpass[np.nonzero(bandpass)]) print "Maximum sample value: {:.2f}".format(maxsample) print "Average sample value: {:.2f}".format(avgsample) scale = float(dest_value) / maxsample return scale
print "Selected spectrum exceeds available number of spectra!" if (channel >= numberChannels): channel = numberChannels-1 print "Selected channel exceeds available number of channels!" timeseriesChannel = filterbankFile.getChan(channel) timeseriesChannel.shape timeseriesSelected = timeseriesChannel[begin:end] plt.plot(timeseriesSelected) plt.xlabel("Spectrum") plt.ylabel("Intensity (a.u.)") if not opts.savePlot: plt.show() else: baseFilterbankFilename, extFilterbankFilename = os.path.splitext(filterbankFilename) plt.savefig(baseFilterbankFilename + "_timeseries_ch" + str(channel) + "_" + str(begin) + "-" + str(end) + ".png") sys.exit(0) elif opts.bandpass: totalBandpass = filterbankFile.bandpass() # calculate bandpass from entire observation plt.plot(totalBandpass) plt.xlabel("Channel") plt.ylabel("Intensity (a.u.)") if not opts.savePlot: plt.show() else: baseFilterbankFilename, extFilterbankFilename = os.path.splitext(filterbankFilename) plt.savefig(baseFilterbankFilename + "_bandpass.png") sys.exit(0) else: print "No options provided." sys.exit(0)
def test_bandpass(self, filfile): myFil = FilReader(filfile) myTim = myFil.bandpass() np.testing.assert_equal(myTim.dtype, np.float32) np.testing.assert_equal(myTim.size, myFil.header.nchans) np.testing.assert_allclose(myTim.mean(), 1.64, atol=0.1)