Step 3: Extract channels and make a new frame file
For the initialization and running the pipeline, please refer step1
Access frame cache file by specifying frame_cache and instrument as in step2
- Define a frame multiplexer(mux) to write channels into a frame file by specifying frame-type, frame_duration, frames_per_file, compression_scheme and compression_level
1 out_path = '.'
2 frame-type = 'TEST'
3 frame_duration = 4 # in seconds
4 frames_per_file = 1
5 compression_scheme = 257 #256: Raw 257: gzip
6 compression_level = 9
7
8 mux = pp.mkframecppchannelmux(pipeline, None)
9
10 mux.set_property("frame-duration", frame_duration)
11 mux.set_property("frames-per-file", frames_per_file)
12 mux.set_property("compression-scheme", compression_scheme)
13 mux.set_property("compression-level", compression_level)
14
15 # Link the strain branch to the muxer
16 strain_queue_length = 0 #short_queue
17 for pipe, chan in zip(pipe_list, channel_list):
18 cp.mkqueue(pipeline, pipe, strain_queue_length).get_static_pad("src").link(mux.get_request_pad(chan[1]))
19
20 mux = pp.mkprogressreport(pipeline, mux, "progress_sink_%s" % instrument)
21
22 pp.mkframecppfilesink(pipeline, mux, frame_type = frame_type, path = output_path, instrument = instrument)
- The python script is available at git repository
> kagra-cal/Observation/Phase1/tutorials/extr --help Usage: extr [options] Options: -h, --help show this help message and exit --cache=cache Set the name of the LAL cache listing the frame files --gps-start-time=seconds Set the start time of the segment to analyze in GPS seconds. --gps-end-time=seconds Set the end time of the segment to analyze in GPS seconds. --ifo=name Name of the IFO (default= K1) --channel=name Set channel name(s) to extract (default= CAL- CS_PROC_C00_STRAIN_DQ,CAL-CS_PROC_MICH_DELTA_TM_DQ ,CAL-CS_PROC_MICH_RESIDUAL_DQ,CAL- CS_PROC_ERR_STRAIN_DQ,CAL-CS_PROC_CTRL_STRAIN_DQ,LSC- MICH1_IN1_DQ,LSC-MICH1_OUT_DQ) --frame-type=name Set the frame type as input to the frame writing element. (Default=TEST) --output-path=name Set the output path for writing frame files. (Default=.) --format=format Set input channel(s) format (default= F64LE) --ch-rate=rate Set input channel data rate (default= 16384) --frame-duration=seconds Set the number of seconds for each frame. (Default = 32)
- This is an example to extract 7 channels from the full frame file. You can also specify the list of channel names with --channel option.
> kagra-cal/Observation/Phase1/tutorials/extr --cache=k1.cache GPS: 1209288320 1209288352 [('K1', 'CAL-CS_PROC_C00_STRAIN_DQ'), ('K1', 'CAL-CS_PROC_MICH_DELTA_TM_DQ'), ('K1', 'CAL-CS_PROC_MICH_RESIDUAL_DQ'), ('K1', 'CAL-CS_PROC_ERR_STRAIN_DQ'), ('K1', 'CAL-CS_PROC_CTRL_STRAIN_DQ'), ('K1', 'LSC-MICH1_IN1_DQ'), ('K1', 'LSC-MICH1_OUT_DQ')] seeking GPS start and stop times ... setting pipeline state to playing ... set to playing successfully running pipeline ... progress_src_CH6 (00:00:01): 1209288352 / 32 seconds (3779026100.0 %) progress_src_CH7 (00:00:01): 1209288352 / 32 seconds (3779026100.0 %) progress_src_CH1 (00:00:01): 1209288352 / 32 seconds (3779026100.0 %) progress_src_CH5 (00:00:01): 1209288352 / 32 seconds (3779026100.0 %) progress_src_CH4 (00:00:01): 1209288352 / 32 seconds (3779026100.0 %) progress_src_CH2 (00:00:01): 1209288352 / 32 seconds (3779026100.0 %) progress_src_CH3 (00:00:01): 1209288352 / 32 seconds (3779026100.0 %) progress_sink_K1 (00:00:21): 1209288320 seconds progress_sink_K1 (00:00:21): 1209288352 / 32 seconds (3779026100.0 %)
- Check the channel names of the output frame file
> $LAL_PREFIX/bin/framecpp_query --list proc K-TEST-1209288320-32.gwf Frame Version: 8 Frame Library: frameCPP Library Revision: 1 Originator: IGWD Frame Offset: 0 K1:CAL-CS_PROC_C00_STRAIN_DQ K1:CAL-CS_PROC_CTRL_STRAIN_DQ K1:CAL-CS_PROC_ERR_STRAIN_DQ K1:CAL-CS_PROC_MICH_DELTA_TM_DQ K1:CAL-CS_PROC_MICH_RESIDUAL_DQ K1:LSC-MICH1_IN1_DQ K1:LSC-MICH1_OUT_DQ