Merge branch 'main' of https://git.yinglet.com/zhetadelta/greenburstAux
This commit is contained in:
commit
4b9ce25b3e
35
signalgen.py
35
signalgen.py
|
@ -13,6 +13,7 @@ from scipy.stats import median_abs_deviation
|
|||
from your import Your, Writer
|
||||
from your.formats.filwriter import make_sigproc_object
|
||||
from will import create, inject
|
||||
from scipy import signal
|
||||
|
||||
|
||||
|
||||
|
@ -43,8 +44,17 @@ def show_dynamic(
|
|||
|
||||
save - Save the plot as `title` + `.png`
|
||||
"""
|
||||
spectra_mads = median_fitter(np.median(dynamic_spectra, axis=0))
|
||||
flat = dynamic_spectra - spectra_mads
|
||||
|
||||
#downsample the spectra first
|
||||
downFac = np.shape(dynamic_spectra)[0] // 8920
|
||||
if downFac > 1:
|
||||
logging.info(f"Downsampling with factor {downFac}...")
|
||||
decSpectra = signal.decimate(dynamic_spectra, downFac, axis=0)
|
||||
else:
|
||||
decSpectra = dynamic_spectra
|
||||
|
||||
spectra_mads = median_fitter(np.median(decSpectra, axis=0))
|
||||
flat = decSpectra - spectra_mads
|
||||
std = median_abs_deviation(flat, axis=None)
|
||||
med = np.median(flat)
|
||||
plt.figure(figsize=(20, 10))
|
||||
|
@ -88,7 +98,8 @@ def addBurst(values):
|
|||
spectra = filterbankObj.get_data(0, samples)
|
||||
|
||||
#save pre-injection spectra plot
|
||||
#show_dynamic(spectra, f"{basename} Pre-injection Dynamic Spectra", save=True)
|
||||
if not values.skipplot:
|
||||
show_dynamic(spectra, f"{basename} Pre-injection Dynamic Spectra", save=True)
|
||||
|
||||
#get bandpass and store in bpWeights
|
||||
bpWeights = create.filter_weights(spectra)
|
||||
|
@ -121,9 +132,10 @@ def addBurst(values):
|
|||
gulp = samples
|
||||
)
|
||||
|
||||
logger.info("Saving plot and filterbank.")
|
||||
#and save the new plot
|
||||
show_dynamic(injectedSpectra, f"{basename} Dynamic Spectra and {values.dm} DM Pulse", save=True)
|
||||
if not values.skipplot:
|
||||
logger.info("Saving plot...")
|
||||
show_dynamic(injectedSpectra, f"{basename} Dynamic Spectra and {values.dm} DM Pulse", save=True)
|
||||
#now generate new filterbank file
|
||||
newName = f"{basename}_injected.fil"
|
||||
sigprocObj = make_sigproc_object(
|
||||
|
@ -137,17 +149,18 @@ def addBurst(values):
|
|||
src_raj=filterbankObj.your_header.ra_deg,
|
||||
src_dej=filterbankObj.your_header.dec_deg,
|
||||
machine_id=0,
|
||||
nbeams=0,
|
||||
ibeam=0,
|
||||
nbeams=1,
|
||||
ibeam=1,
|
||||
nbits=filterbankObj.your_header.nbits,
|
||||
nifs=1,
|
||||
barycentric=0,
|
||||
pulsarcentric=0,
|
||||
data_type=0,
|
||||
data_type=1,
|
||||
az_start=-1,
|
||||
za_start=-1,
|
||||
)
|
||||
sigprocObj.write_header(newName)
|
||||
logger.info("Saving filterbank...")
|
||||
sigprocObj.append_spectra(injectedSpectra, newName)
|
||||
logger.info(f"{newName} successfully written.")
|
||||
|
||||
|
@ -174,11 +187,15 @@ if __name__ == "__main__":
|
|||
parser.add_argument(
|
||||
"-p", "--plot", action="store_true", help="Just plot file and quit."
|
||||
)
|
||||
parser.add_argument(
|
||||
"-s", "--skipplot", action="store_true", help="Skip plotting for large filterbanks."
|
||||
)
|
||||
parser.set_defaults(dm=250.0)
|
||||
parser.set_defaults(nsamp=int(3e5))
|
||||
parser.set_defaults(listfile=None)
|
||||
parser.set_defaults(file=None)
|
||||
parser.set_defaults(plot=False)
|
||||
parser.set_defaults(skipplot=False)
|
||||
values = parser.parse_args()
|
||||
|
||||
#set working directory to ignored directory
|
||||
|
@ -191,7 +208,7 @@ if __name__ == "__main__":
|
|||
logging.info(f"Running with file {values.file}")
|
||||
if values.plot:
|
||||
filterbankObj = Your(values.file)
|
||||
spectra = filterbankObj.get_data(0, 8096)
|
||||
spectra = filterbankObj.get_data(0, 524288)
|
||||
show_dynamic(spectra, f"{values.file} Dynamic Spectra", save=True)
|
||||
else:
|
||||
addBurst(values)
|
||||
|
|
Loading…
Reference in a new issue