Skip to content
Snippets Groups Projects
Commit f77f31f9 authored by Gregory Ashton's avatar Gregory Ashton
Browse files

Several simple improvements to core functionality

1) Adds 'add_noise' option (defaults to true)
2) Better checking of Writer for if all glitch parameters have the same
length (avoid strange errors)
3) Fixes issue in which the tqdm ignore command was itself ignored
parent 51d107a0
No related branches found
No related tags found
No related merge requests found
...@@ -13,9 +13,8 @@ import lal ...@@ -13,9 +13,8 @@ import lal
import lalpulsar import lalpulsar
import helper_functions import helper_functions
tqdm = helper_functions.set_up_optional_tqdm()
helper_functions.set_up_matplotlib_defaults() helper_functions.set_up_matplotlib_defaults()
args = helper_functions.set_up_command_line_arguments() args, tqdm = helper_functions.set_up_command_line_arguments()
earth_ephem, sun_ephem = helper_functions.set_up_ephemeris_configuration() earth_ephem, sun_ephem = helper_functions.set_up_ephemeris_configuration()
...@@ -672,7 +671,7 @@ class Writer(BaseSearchClass): ...@@ -672,7 +671,7 @@ class Writer(BaseSearchClass):
delta_F2=0, tref=None, F0=30, F1=1e-10, F2=0, Alpha=5e-3, delta_F2=0, tref=None, F0=30, F1=1e-10, F2=0, Alpha=5e-3,
Delta=6e-2, h0=0.1, cosi=0.0, psi=0.0, phi=0, Tsft=1800, Delta=6e-2, h0=0.1, cosi=0.0, psi=0.0, phi=0, Tsft=1800,
outdir=".", sqrtSX=1, Band=4, detector='H1', outdir=".", sqrtSX=1, Band=4, detector='H1',
minStartTime=None, maxStartTime=None): minStartTime=None, maxStartTime=None, add_noise=False):
""" """
Parameters Parameters
---------- ----------
...@@ -701,19 +700,25 @@ class Writer(BaseSearchClass): ...@@ -701,19 +700,25 @@ class Writer(BaseSearchClass):
for d in self.delta_phi, self.delta_F0, self.delta_F1, self.delta_F2: for d in self.delta_phi, self.delta_F0, self.delta_F1, self.delta_F2:
if np.size(d) == 1: if np.size(d) == 1:
d = [d] d = np.atleast_1d(d)
self.tend = self.tstart + self.duration self.tend = self.tstart + self.duration
if self.minStartTime is None: if self.minStartTime is None:
self.minStartTime = self.tstart self.minStartTime = self.tstart
if self.maxStartTime is None: if self.maxStartTime is None:
self.maxStartTime = self.tend self.maxStartTime = self.tend
if self.dtglitch is None or self.dtglitch == self.duration: if self.dtglitch is None or all(self.dtglitch == self.duration):
self.tbounds = [self.tstart, self.tend] self.tbounds = [self.tstart, self.tend]
elif np.size(self.dtglitch) == 1: elif np.size(self.dtglitch) == 1:
self.tbounds = [self.tstart, self.tstart+self.dtglitch, self.tend] self.dtglitch = np.array(dtglitch)
self.tbounds = np.concatenate((
[self.tstart], self.tstart+self.dtglitch, [self.tend]))
else: else:
self.tglitch = self.tstart + np.array(self.dtglitch) self.dtglitch = np.array(dtglitch)
self.tbounds = [self.tstart] + list(self.tglitch) + [self.tend] self.tglitch = self.tstart + self.dtglitch
self.tbounds = np.concatenate((
[self.tstart], self.tglitch, [self.tend]))
self.check_inputs()
if os.path.isdir(self.outdir) is False: if os.path.isdir(self.outdir) is False:
os.makedirs(self.outdir) os.makedirs(self.outdir)
...@@ -736,6 +741,16 @@ class Writer(BaseSearchClass): ...@@ -736,6 +741,16 @@ class Writer(BaseSearchClass):
self.sftfilepath = '{}/{}'.format(self.outdir, self.sftfilename) self.sftfilepath = '{}/{}'.format(self.outdir, self.sftfilename)
self.calculate_fmin_Band() self.calculate_fmin_Band()
def check_inputs(self):
self.minStartTime = int(self.minStartTime)
self.maxStartTime = int(self.maxStartTime)
shapes = np.array([np.shape(x) for x in [self.delta_phi, self.delta_F0,
self.delta_F1, self.delta_F2]]
)
if not np.all(shapes == shapes[0]):
raise ValueError('all delta_* must be the same shape: {}'.format(
shapes))
def make_data(self): def make_data(self):
''' A convienience wrapper to generate a cff file then sfts ''' ''' A convienience wrapper to generate a cff file then sfts '''
self.make_cff() self.make_cff()
...@@ -865,6 +880,7 @@ transientTauDays={:1.3f}\n""") ...@@ -865,6 +880,7 @@ transientTauDays={:1.3f}\n""")
cl.append('--outSFTdir="{}"'.format(self.outdir)) cl.append('--outSFTdir="{}"'.format(self.outdir))
cl.append('--outLabel="{}"'.format(self.label)) cl.append('--outLabel="{}"'.format(self.label))
cl.append('--IFOs="{}"'.format(self.detector)) cl.append('--IFOs="{}"'.format(self.detector))
if self.add_noise:
cl.append('--sqrtSX="{}"'.format(self.sqrtSX)) cl.append('--sqrtSX="{}"'.format(self.sqrtSX))
if self.minStartTime is None: if self.minStartTime is None:
cl.append('--startTime={:10.9f}'.format(float(self.tstart))) cl.append('--startTime={:10.9f}'.format(float(self.tstart)))
......
...@@ -45,6 +45,8 @@ def set_up_command_line_arguments(): ...@@ -45,6 +45,8 @@ def set_up_command_line_arguments():
if args.quite or args.no_interactive: if args.quite or args.no_interactive:
def tqdm(x, *args, **kwargs): def tqdm(x, *args, **kwargs):
return x return x
else:
tqdm = set_up_optional_tqdm()
logger = logging.getLogger() logger = logging.getLogger()
logger.setLevel(logging.DEBUG) logger.setLevel(logging.DEBUG)
stream_handler = logging.StreamHandler() stream_handler = logging.StreamHandler()
...@@ -55,7 +57,7 @@ def set_up_command_line_arguments(): ...@@ -55,7 +57,7 @@ def set_up_command_line_arguments():
stream_handler.setFormatter(logging.Formatter( stream_handler.setFormatter(logging.Formatter(
'%(asctime)s %(levelname)-8s: %(message)s', datefmt='%H:%M')) '%(asctime)s %(levelname)-8s: %(message)s', datefmt='%H:%M'))
logger.addHandler(stream_handler) logger.addHandler(stream_handler)
return args return args, tqdm
def set_up_ephemeris_configuration(): def set_up_ephemeris_configuration():
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment