Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • sudarshan-ghonge/bayeswave
  • april.partington/bayeswave
  • lscsoft/bayeswave
  • tyson-littenberg/bayeswave
  • james-clark/bayeswave
  • meg.millhouse/bayeswave
  • katerina.chatziioannou/bayeswave
  • deborah.ferguson/bayeswave
  • thomas-callister/bayeswave
  • andoni.torres/bayeswave
  • erika.cowan/bayeswave
  • bcheeseboro/bayeswave
  • salvatore-vitale/bayeswave
  • bence.becsy/bayeswave
  • duncanmmacleod/bayeswave
  • paul.baker/bayeswave
  • leo-singer/bayeswave
  • hannah.griggs/bayeswave
  • bhooshan.gadre/bayeswave
  • ka-wa.tsang/bayeswave
  • marcella.wijngaarden/bayeswave
  • bruce.edelman/bayeswave
  • sangeet.paul/bayeswave
  • colm.talbot/bayeswave
  • sophie.hourihane/bayeswave
  • arianna.renzini/bayeswave
  • nayyer.raza/bayeswave
  • cailin.plunkett/bayeswave
  • johnmichael.sullivan/bayeswave
  • seth.moriarty/bayeswave
  • howard.deshong/bayeswave
  • argyro.sasli/bayeswave
  • megan.arogeti/bayeswave
  • johnmichael.sullivan/bayeswave-master-dev
  • tomasz.baka/bayeswave
  • cjhaster/bayeswave
  • meg.millhouse/bayeswave-cicd-testing
  • neil.cornish/bayeswave
38 results
Show changes
Commits on Source (16)
FROM conda/miniconda3-centos7 AS build
FROM continuumio/miniconda3 AS build
ARG BUILD_DATE
ARG CI_COMMIT_SHA
......@@ -29,7 +29,7 @@ RUN conda-pack -n bayeswave -o /tmp/env.tar && \
RUN /venv/bin/conda-unpack
## Next stage
FROM centos:7
FROM rockylinux/rockylinux:latest
## Essentials
RUN yum install -y git which && \
......
......@@ -316,7 +316,9 @@ class eventTrigger:
if 'H1' in ifo_list:
self.perIFO_trigtime['V1'] = trigger_time - hv_time_lag
elif 'L1' in ifo_list:
self.perIFO_trigtime['V1'] = trigger_time - lv_time_lag
self.perIFO_trigtime['V1'] = trigger_time - lv_time_lag
else:
self.perIFO_trigtime['V1'] = trigger_time - total_time_lag
self.trigger_frequency = trigger_frequency
......@@ -1074,7 +1076,7 @@ def condor_job_config(job_type, condor_job, config_parser):
# --- Force downstream jobs to run locally
print("jobtype=",job_type)
if job_type in ['bayeswave_post', 'bayeswave_fpeak',
'megaplot']:
'megaplot', 'bw_li_inj']:
condor_job.add_condor_cmd('+flock_local', 'True')
condor_job.add_condor_cmd('+DESIRED_Sites', '\"nogrid\"')
......@@ -1135,6 +1137,9 @@ def condor_job_config(job_type, condor_job, config_parser):
except:
condor_job.set_notification('Error')
# Add specific environment
if config_parser.has_option('condor','environment'):
condor_job.add_condor_cmd('environment',config_parser.get('condor', 'environment'))
# Finally tie requirements together into a condor-friendly string
if len(requires)>0:
......@@ -1224,6 +1229,9 @@ class bayeswaveJob(pipeline.CondorDAGJob, pipeline.AnalysisJob):
transferstring = '$(macrooutputDir)/datafind,$(macrooutputDir)'
else:
transferstring='datafind,$(macrooutputDir)'
if cp.has_option('datafind','psd-files'):
transferstring += f",PSDs"
# Generate a script for PreCmd to setup directory structure
if condor_precommand:
......@@ -1280,9 +1288,11 @@ class bayeswaveJob(pipeline.CondorDAGJob, pipeline.AnalysisJob):
# Find PSD files for pre-computed estimates
if cp.has_option('datafind','psd-files'):
psdFiles=ast.literal_eval(cp.get('datafind','psd-files'))
for ifo in ifo_list:
self.add_opt('{ifo}-psd'.format(ifo=ifo), psdFiles[ifo])
self.add_opt('{ifo}-psd'.format(ifo=ifo), 'PSDs/{ifo}_PSD.dat'.format(ifo=ifo))
# psdFiles=ast.literal_eval(cp.get('datafind','psd-files'))
# for ifo in ifo_list:
# self.add_opt('{ifo}-psd'.format(ifo=ifo), psdFiles[ifo])
#
# [bayeswave_options]: Algorithm configuration
......@@ -1362,6 +1372,11 @@ class bayeswaveNode(pipeline.CondorDAGNode, pipeline.AnalysisNode):
for i,ifo in enumerate(ifo_list):
self.add_var_opt('{ifo}-flow'.format(ifo=ifo), flow)
self.flow = flow
def set_psd_files(self, ifo_list, psd_files):
for ifo in ifo_list:
self.add_var_opt('{ifo}-psd'.format(ifo=ifo),psd_files[ifo])
self.psd_files = psd_files
def set_window(self, window):
self.add_var_opt('window', window)
......@@ -1382,6 +1397,10 @@ class bayeswaveNode(pipeline.CondorDAGNode, pipeline.AnalysisNode):
def set_injevent(self, event):
self.add_var_opt('event', event)
self.event = event
def set_inj_fref(self, inj_fref):
self.add_var_opt('inj-fref', inj_fref)
self.inj_fref = inj_fref
def set_dataseed(self, dataseed):
self.add_var_opt('dataseed', dataseed)
......@@ -1618,6 +1637,10 @@ class bayeswave_postNode(pipeline.CondorDAGNode, pipeline.AnalysisNode):
def set_injevent(self, event):
self.add_var_opt('event', event)
self.event = event
def set_inj_fref(self, inj_fref):
self.add_var_opt('inj-fref', inj_fref)
self.inj_fref = inj_fref
def set_dataseed(self, dataseed):
self.add_var_opt('dataseed', dataseed)
......@@ -2026,7 +2049,11 @@ class bw_li_injNode(pipeline.CondorDAGNode, pipeline.AnalysisNode):
# TODO: update bw_li script for different flows in different detectors
def set_flow(self, flow):
self.add_var_opt('flow', flow)
try:
self.add_var_opt('flow', ' '.join(str(x) for x in list(flow.values())))
except:
self.add_var_opt('flow',flow)
# self.add_var_opt('flow', flow)
def set_fhigh(self, fhigh):
self.add_var_opt('fhigh', fhigh)
......
......@@ -48,6 +48,7 @@ from ligo.segments import utils
import lalframe.frread as fr
import igwn_auth_utils
from gwpy.table import EventTable
# If running from iwc_pipe use those pipe utils
try:
......@@ -203,7 +204,7 @@ def parser():
parser.add_argument("--skip-post", default=False, action="store_true")
parser.add_argument("--separate-post-dag", default=False, action="store_true")
parser.add_argument("--fpeak-analysis", default=False, action="store_true")
parser.add_argument("--bw-li",default=False,action="store_true")
parser.add_argument("--bw-li",default=False,action="store_true", help="Run script to compare BW reconstructions to PE reconstructions after run.")
parser.add_argument("--trigger-time-delta", type=float, default=0.0)
parser.add_argument("--PE-style-segment", default=False, action="store_true") # if set, use seg_start=trigtime+2-seglen
parser.add_argument("--bayeswave-clean-frame", default=False, action="store_true")
......@@ -222,6 +223,7 @@ def parser():
parser.add_argument("--singularity", default=None)
parser.add_argument("--igwn-scitoken", default=False, action="store_true",help="Use the IGWN as the scitoken issuer")
opts = parser.parse_args()
if opts.workdir is None:
......@@ -267,7 +269,7 @@ if os.path.exists(workdir):
sys.exit(1)
else:
print("making work-directory: %s"%workdir, file=sys.stdout)
print("making work directory: %s"%workdir, file=sys.stdout)
os.makedirs(workdir)
os.makedirs(workdir+"/logs")
os.makedirs(workdir+"/datafind")
......@@ -294,7 +296,7 @@ if cp.has_option('bayeswave_clean_frame_options', 'ifos'):
clean_frame_ifos=ast.literal_eval(cp.get('bayeswave_clean_frame_options', 'ifos'))
channel_names = ast.literal_eval(cp.get('datafind','channel-list'))
if opts.bayeswave_clean_frame:
if cp.has_option('bayeswave_options', 'signalOnly'):
......@@ -321,7 +323,6 @@ if injfile is not None:
shutil.copy(injfile, workdir)
injfile=os.path.basename(injfile)
from gwpy.table import EventTable
# NR HDF5 data
if injfile is not None:
# read in injection file
......@@ -658,6 +659,16 @@ elif cp.has_option('datafind','sim-data') and opts.sim_data:
if cp.has_option('bayeswave_options', '0noise'):
cp.set('datafind', 'sim-data', str(True))
# Set PSD files if they exist
if cp.has_option('datafind','psd-files'):
os.makedirs(workdir+"/PSDs")
psd_files = ast.literal_eval(cp.get('datafind','psd-files'))
for ifo in ifo_list:
shutil.copy(psd_files[ifo],os.path.join(workdir,'PSDs',f'{ifo}_PSD.dat'))
# after copying over PSDs, set the new PSD path to local:
new_psd_dict = {f"{ifo}":f"PSDs/{ifo}_PSD.dat" for ifo in ifo_list}
cp['datafind']['psd-files'] = str(new_psd_dict)
cache_files = {}
segmentList = {}
......@@ -914,7 +925,7 @@ if opts.bayesline_median_psd:
extra_files = cp.get('condor', 'extra-files')
except configparser.NoOptionError as nooptex:
extra_files = ''
extra_files += ','.join(median_psds)
extra_files +=','+','.join(median_psds)
cp.set('condor', 'extra-files', extra_files)
bayeswave_job = pipe_utils.bayeswaveJob(cp, cache_files, injfile=injfile,
......@@ -1088,6 +1099,16 @@ for t,trigger in enumerate(trigger_list.triggers):
outputDir_psd = outputDir + '_PSDs'
if not os.path.exists(outputDir_psd): os.makedirs(outputDir_psd)
dump_job_info(outputDir_psd, trigger)
if opts.copy_frames: # write cache into each trigger directory (again makes file transfer manageable)
if not os.path.exists(os.path.join(outputDir_psd,'datafind')): os.makedirs(os.path.join(outputDir_psd,'datafind'))
for ifo in ifo_list:
cachefile = os.path.join(outputDir_psd,'datafind','{ifo}.cache'.format(ifo=ifo))
new_cache = open(cachefile, 'w')
for xx in custom_cache[ifo]:
new_cache.write(f"{xx}")
new_cache.close()
bayeswave_psd_node = pipe_utils.bayeswaveNode(bayesline_medianpsd_job)
bayeswave_psd_post_node = pipe_utils.bayeswave_postNode(bayesline_post_median_psd_job)
......@@ -1099,6 +1120,8 @@ for t,trigger in enumerate(trigger_list.triggers):
bayeswave_psd_node.set_trigtime(trigger.trigger_time)
if bayesline_cp.has_option('input', 'segment-start'):
segment_start = bayesline_cp.getfloat('input', 'segment-start')
if opts.PE_style_segment:
print(f"Warning!!!!!!! Segment start provided in ini file. Using this instead of the PE-style-segment definition. segment start is {segment_start}")
elif opts.PE_style_segment:
segment_start = trigger.trigger_time + 2.0 - trigger.seglen
else:
......@@ -1179,6 +1202,8 @@ for t,trigger in enumerate(trigger_list.triggers):
bayeswave_node.set_CBC_trigtime(CBC_trigger_list.triggers[t].trigger_time)
if cp.has_option('input', 'segment-start'):
segment_start = cp.getfloat('input', 'segment-start')
if opts.PE_style_segment:
print(f"Warning!!!!!!! Segment start provided in ini file. Using this instead of the PE-style-segment definition. segment start is {segment_start}")
elif opts.PE_style_segment:
segment_start = trigger.trigger_time + 2.0 - trigger.seglen
else:
......@@ -1208,6 +1233,9 @@ for t,trigger in enumerate(trigger_list.triggers):
# FIXME: Make sure glitch_median_PSD_forLI_H1.dat are in the working dir
bayeswave_node.add_var_opt('{ifo}-psd'.format(ifo=ifo),
'glitch_median_PSD_forLI_{ifo}.dat'.format(ifo=ifo))
elif cp.has_option('datafind','psd-files'):
bayeswave_node.set_psd_files(ifo_list,ast.literal_eval(cp.get('datafind','psd-files')))
#
# Add options for bayeswave_post node
......
......@@ -22,8 +22,7 @@ dependencies:
- llvm-openmp
- lscsoft-glue
- matplotlib-base
- numpy
- python
- numpy < 2.0
- python-lal
- python-ligo-lw
- scipy
......