18from gstlal
import plugins
19from gstlal.datafind
import DataType, DataCache
20from gstlal.dags
import Option
21from gstlal.dags.layers
import Layer, Node
24def create_frames_layer(config, dag, psd_cache):
29 "request_memory": 2000,
30 "request_disk":
"2GB",
31 **config.condor.submit
33 transfer_files=config.condor.transfer_files,
36 frame_cache = DataCache.generate(DataType.FRAMES, config.ifo_combos, config.time_bins, create_dirs=
False)
39 if len(psd_cache) == 1:
40 psds = {key: psd_cache
for key
in frame_cache.groupby(
"ifo",
"time").keys()}
42 psds = psd_cache.groupby(
"ifo",
"time")
46 Option(
"data-source",
"frames"),
47 Option(
"frame-segments-name", config.source.frame_segments_name),
48 Option(
"data-find-server", config.source.data_find_server),
50 if config.frames.injections:
51 common_opts.append(Option(
"injections", config.frames.injections))
52 if config.frames.recolor_psd:
53 common_opts.append(Option(
"color-psd", config.frames.recolor_psd))
54 if config.frames.track_psd:
55 common_opts.append(Option(
"whiten-track-psd"))
56 if config.frames.shift:
57 common_opts.append(Option(
"shift", config.frames.shift))
58 if config.frames.frame_duration:
59 common_opts.append(Option(
"output-frame-duration", config.frames.frame_duration))
60 if config.frames.frames_per_file:
61 common_opts.append(Option(
"output-frames-per-file", config.frames.frames_per_file))
63 for (ifo_combo, span), frames
in frame_cache.groupby(
"ifo",
"time").items():
64 ifos = config.to_ifo_list(ifo_combo)
69 Option(
"gps-start-time", int(start)),
70 Option(
"gps-end-time", int(end)),
71 Option(
"channel-name", f
"{ifo}={config.source.channel_name[ifo]}"),
72 Option(
"frame-type", f
"{ifo}={config.source.frame_type[ifo]}"),
73 Option(
"output-channel-name", f
"{ifo}={config.frames.output_channel_name[ifo]}"),
74 Option(
"output-frame-type", f
"{ifo}_{config.frames.output_frame_type[ifo]}"),
76 frame_opts.extend(common_opts)
79 arguments = frame_opts,
81 Option(
"whiten-reference-psd", psds[(ifo_combo, span)].files),
82 Option(
"frame-segments-file", config.source.frame_segments_file),
84 outputs = Option(
"output-path", config.frames.get(
"output_path",
"frames"))
94 "create_frames": create_frames_layer,