Exemplo n.º 1
0
 def test_query_dqsegdb(self):
     try:
         flag = DataQualityFlag.query_dqsegdb(
             QUERY_FLAG, QUERY_START, QUERY_END, url=QUERY_URL)
     except (ImportError, URLError) as e:
         self.skipTest(str(e))
     else:
         self.assertEqual(flag.known, QUERY_KNOWN)
         self.assertEqual(flag.active, QUERY_ACTIVE)
Exemplo n.º 2
0
 def test_query_dqsegdb_multi(self):
     querymid = int(QUERY_START + (QUERY_END - QUERY_START) /2.)
     segs = SegmentList([Segment(QUERY_START, querymid),
                         Segment(querymid, QUERY_END)])
     try:
         flag = DataQualityFlag.query_dqsegdb(
             QUERY_FLAG, segs, url=QUERY_URL)
     except (ImportError, URLError) as e:
         self.skipTest(str(e))
     else:
         self.assertEqual(flag.known, QUERY_KNOWN)
         self.assertEqual(flag.active, QUERY_ACTIVE)
Exemplo n.º 3
0
def write_segs(flag, st, et, directory='./'):
    """
    Write segments to a file

    saved in:
    `directory/flag-st-duration`

    Parameters
    ----------
    flag : `str`
        DQ flag to query database for
    st : `int`
        start time
    et : `int`
        end time
    directory : `str`, optional, default='./'
        top level directory for saving segments
    """
    segments = DataQualityFlag.query_dqsegdb(flag,
                                             st,
                                             et,
                                             url='https://segments.ligo.org')
    directory = get_directory_structure('SEGMENTS', st, directory=directory)
    segments.write('%s/%s-%d-%d.xml.gz' % (directory, flag, st, (et - st)))
# set up channel name for grabbing data
channel = ['%s,m-trend' % args.channel]

# Threshold used to generate this flag
thresh = 190 #nm/s

# set up segment file name
chan = channel[0].replace(':', '_')
segment_file = 'L1_EARTHQUAKE_GT_%s_%s-%s.xml' % (thresh, args.start, abs(args.end-args.start))

# name the DQ flag
optic = channel[0].split('_')[2]
flag_name = 'L1:DCH-EQ_%s_GT_%s:1' % (optic, thresh)

# grab all observing (or whatever is defined) time
active = DataQualityFlag.query_dqsegdb(args.science, args.start, args.end).active

# grab only data for the STS channel in observing time
data = get_timeseries_dict(channel, active, frametype='L1_M')

# find times above threshold
time = [j.times[j > thresh] for j in data[channel[0]]]
times = numpy.concatenate(time)

# put all times above threshold in to segments
segs = segments.segmentlist()
segs.extend([segments.segment(int(t.value), int(t.value)+args.stride) for t in times])
segs = segs.coalesce()

# set up the xml file by making a list of the start and end times of the flag
start_time = []
Exemplo n.º 5
0
def write_segs(flag, st, et, directory='./'):
    segments = DataQualityFlag.query_dqsegdb(flag, st, et,
                                             url='https://segments.ligo.org')
    directory = get_directory_structure('SEGMENTS', st, directory=directory)
    segments.write('%s/%s-%d-%d.xml.gz' % (directory, flag, st, (et - st)))
Exemplo n.º 6
0
                         'value (optional)')
parser.add_argument('-st', '--stride', type=float, default=1, 
                    help='Stide for the flag (s) (optional)')

args = parser.parse_args()

# Define the ALS channels needed
channels = ['H1:ALS-X_TR_A_LF_OUT16','H1:ALS-Y_TR_A_LF_OUT16']

# Define the segment file name and flag name
segment_file = 'H1_ALS_UNSHUTTERED_%s-%s.xml' % (args.start, 
                                                 abs(args.end-args.start))
flag_name = 'H1:DCH-ALS_UNSHUTTERED:1'

# Find times when the low noise flag is active
active = DataQualityFlag.query_dqsegdb(args.low_noise, args.start, 
                                       args.end).active

# Grab ALS channel data only during low noise time
als = get_timeseries_dict(channels, active, frametype='H1_R')

# Define empty segment list
segs = segments.segmentlist()

# loop over channels and find times when the timseries of each channel strays
# +/- threshold
for c in channels:

    # Find times when the timeseries > threshold
    time1 = [j.times[j.value > args.threshold] for j in als[c]]
    time1 = numpy.concatenate(time1)
    # Find times when the timeseries < -threshold
Exemplo n.º 7
0
    'tstop': 1,
    'tcent': 2,
    'fcent': 3,
    'uenergy': 4,
    'nenergy': 5,
    'npix': 6,
    'signif': 7,
}
col = col_kw.copy()

### Read in channels
with open(channellist) as f:
    channels = f.read().splitlines()
print(channels)

locktimes = DataQualityFlag.query_dqsegdb(flag, gpsstart, gpsstop)
print("Locktimes")
print(locktimes.active)
for i, seg in enumerate(locktimes.active):  #Loop through lock segments
    print("Locksegment %d: %d-%d" % (i, seg[0], seg[1]))
    if (seg[1] -
            seg[0]) <= fftlength:  #Ignore lock segments that are too short
        continue
    ### Get triggers
    print("Collecting triggers for labelling")
    trig_files = idq.get_all_files_in_range(trigger_dir,
                                            seg[0],
                                            seg[1],
                                            pad=0,
                                            suffix='.trg')
    trigger_dict = event.loadkwm(trig_files)