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