18from gstlal
import plugins
19from gstlal.datafind
import DataType, DataCache
20from gstlal.dags
import Argument, Option
21from gstlal.dags
import util
as dagutil
22from gstlal.dags.layers
import Layer, Node
25def reference_psd_layer(config, dag):
27 "gstlal_reference_psd",
30 "request_memory": 2000,
31 "request_disk":
"2GB",
32 **config.condor.submit
34 transfer_files=config.condor.transfer_files,
37 psd_cache = DataCache.generate(DataType.REFERENCE_PSD, config.ifo_combos, config.time_bins)
40 Option(
"data-source",
"frames"),
41 Option(
"psd-fft-length", config.psd.fft_length),
42 Option(
"frame-segments-name", config.source.frame_segments_name),
45 for (ifo_combo, span), psds
in psd_cache.groupby(
"ifo",
"time").items():
46 ifos = config.to_ifo_list(ifo_combo)
50 Option(
"gps-start-time", int(start)),
51 Option(
"gps-end-time", int(end)),
52 Option(
"channel-name", dagutil.format_ifo_args(ifos, config.source.channel_name)),
55 inputs = [Option(
"frame-segments-file", config.source.frame_segments_file, track=
False)]
57 if config.source.frame_cache:
58 inputs.append(Option(
"frame-cache", config.source.frame_cache, track=
False))
61 Option(
"frame-type", dagutil.format_ifo_args(ifos, config.source.frame_type)),
62 Option(
"data-find-server", config.source.data_find_server),
66 arguments = arguments,
68 outputs = Option(
"write-psd", psds.files)
75def median_psd_layer(config, dag, psd_cache):
77 "gstlal_median_of_psds",
80 "request_memory": 2000,
81 "request_disk":
"2GB",
82 **config.condor.submit
84 transfer_files=config.condor.transfer_files,
87 median_psd_cache = DataCache.generate(DataType.MEDIAN_PSD, config.all_ifos, config.span)
90 inputs = Argument(
"psds", psd_cache.files),
91 outputs = Option(
"output-name", median_psd_cache.files)
95 return median_psd_cache
98def smoothen_psd_layer(config, dag, psd_cache):
100 "gstlal_psd_polyfit",
103 "request_memory": 2000,
104 "request_disk":
"2GB",
105 **config.condor.submit
107 transfer_files=config.condor.transfer_files,
110 smooth_psd_cache = DataCache.generate(DataType.SMOOTH_PSD, config.ifo_combos, config.time_bins)
112 smooth_psds = smooth_psd_cache.groupby(
"ifo",
"time")
113 for (ifo_combo, span), psds
in psd_cache.groupby(
"ifo",
"time").items():
115 arguments = Option(
"low-fit-freq", 10),
116 inputs = Argument(
"psds", psd_cache.files),
117 outputs = Option(
"output-name", smooth_psds[span].files)
121 return smooth_psd_cache
127 "reference_psd": reference_psd_layer,
128 "median_psd": median_psd_layer,
129 "smoothen_psd": smoothen_psd_layer,