Ejemplo n.º 1
0
def get_event_time(event):
    """
    Get the merger time for known GW events using the gwosc package

    Parameters
    ----------
    event: str
        Event name, e.g. GW150914

    Returns
    -------
    event_time: float
        Merger time

    Raises
    ------
    ImportError
        If the gwosc package is not installed
    ValueError
        If the event is not in the gwosc dataset
    """
    try:
        from gwosc import datasets
    except ImportError:
        raise ImportError("You do not have the gwosc package installed")

    return datasets.event_gps(event)
Ejemplo n.º 2
0
def get_detectorlist(chosen_event):
    t0 = datasets.event_gps(chosen_event)
    detectorlist = list(datasets.event_detectors(chosen_event))
    detectorlist.sort()
    jsoninfo = fetch_event_json(chosen_event)

    return t0, detectorlist, jsoninfo
Ejemplo n.º 3
0
    def __init__(self, event_id, detector_id, timeInterval):
        self.event_id = event_id
        self.detector_id = detector_id
        #gets the total time duration of the strain data
        #its needed for the mergerStrain type data
        self.eventDuration = sum([abs(c) for c in timeInterval])
        #gets the gps time stamp of the merger event
        self.gps = int(datasets.event_gps(self.event_id))
        #generating the time interval centered around the gps time
        self.timeInterval = [c + self.gps for c in timeInterval]

        self.strain = None
        #strain data handler from a different library
        self.mergerStrain = None
Ejemplo n.º 4
0
    def trigger_time(self, trigger_time):

        # Convert trigger time
        if trigger_time is None:
            logger.debug("No trigger time given")
        elif isinstance(trigger_time, str) and "GW" in trigger_time:
            logger.info(
                f"Using gwosc to find trigger time for event {trigger_time}")
            trigger_time = event_gps(trigger_time)
        else:
            trigger_time = float(trigger_time)

        self._trigger_time = trigger_time
        if trigger_time is not None:
            logger.info(f"Setting trigger time {trigger_time}")
Ejemplo n.º 5
0
if select_event == 'By GPS':
    # -- Set a GPS time:
    str_t0 = st.sidebar.text_input('GPS Time', '1126259462.4')  # -- GW150914
    t0 = float(str_t0)

    st.sidebar.markdown("""
    Example times in the H1 detector:
    * 1126259462.4    (GW150914) 
    * 1187008882.4    (GW170817) 
    * 933200215       (hardware injection)
    * 1132401286.33   (Koi Fish Glitch) 
    """)

else:
    chosen_event = st.sidebar.selectbox('Select Event', eventlist)
    t0 = datasets.event_gps(chosen_event)
    detectorlist = list(datasets.event_detectors(chosen_event))
    detectorlist.sort()

    st.write('### Event details for ', chosen_event)

    r1, r2, r3, r4 = st.beta_columns(4)
    with r1:
        st.write('GPS:', t0)

    # -- Experiment to display masses
    try:
        jsoninfo = fetch_event_json(chosen_event)
        for name, nameinfo in jsoninfo['events'].items():

            with r2:
Ejemplo n.º 6
0
from gwosc import datasets
from gwpy.timeseries import TimeSeries
gps = datasets.event_gps('GW170817')
data = TimeSeries.fetch_open_data('L1', gps-34, gps+34, tag='C00')
Ejemplo n.º 7
0
from gwosc.datasets import event_gps
from gwpy.timeseries import TimeSeries
gps = event_gps("GW170814")
start = int(gps) - 100
end = int(gps) + 100
data = TimeSeries.get("H1:IMC-PWR_IN_OUT_DQ",
                      start,
                      end,
                      host="losc-nds.ligo.org")
plot = data.plot(ylabel="Power [W]")
plot.show()
Ejemplo n.º 8
0
from gwosc.datasets import event_gps
gps = event_gps("GW150914")
start = int(gps) - 15
end = int(gps) + 15
Ejemplo n.º 9
0
plt.axis([-6, 2, 0, 500])
plt.title('aLIGO H1 strain data near ' + eventname)
plt.figure()
spec_H1, freqs, bins, im = plt.specgram(strain_L1_whiten[indxt], NFFT=NFFT,\
    Fs=fs, window=window, noverlap=NOVL, cmap=spec_cmap, xextent=[-deltat,deltat])
plt.xlabel('time (s) since ' + str(tevent))
plt.ylabel('Frequency (Hz)')
plt.colorbar(im.set_clim(-60, -20))
plt.axis([-6, 2, 0, 500])
plt.title('aLIGO L1 strain data near ' + eventname)

import gwpy
from gwpy.timeseries import TimeSeries
from gwosc.datasets import event_gps

gps = event_gps('GW170817')
segment = (int(gps) - 30, int(gps) + 2)
hdata = TimeSeries.fetch_open_data('H1', *segment, cache=True)
hq = hdata.q_transform(frange=(30, 500), qrange=(100, 110))
plot = hq.plot()
ax = plot.gca()
ax.set_epoch(gps)
ax.set_yscale('log')
ax.colorbar(clim=(0, 20), label="Normalised energy")
ldata = TimeSeries.fetch_open_data('L1', *segment, cache=True)
lq = ldata.q_transform(frange=(30, 500), qrange=(100, 110))
plot = lq.plot()
ax = plot.gca()
ax.set_epoch(gps)
ax.set_yscale('log')
ax.colorbar(clim=(0, 20), label="Normalised energy")
Ejemplo n.º 10
0
import gwpy
from gwosc.datasets import event_gps
gps = event_gps('GW150914')
print(gps)
segment = (int(gps) - 5, int(gps) + 5)
print(segment)
from gwpy.timeseries import TimeSeries
ldata = TimeSeries.fetch_open_data('L1', *segment, verbose=True)
print(ldata)
Ejemplo n.º 11
0
from gwosc.datasets import event_gps
from gwpy.timeseries import StateVector
gps = event_gps("GW200105_162426")
start = int(gps) - 1000
end = int(gps) + 1000
gw200105_state = StateVector.fetch_open_data("L1", start, end)
print(gw200105_state)
# StateVector([127, 127, 127, ..., 127, 127, 127]
# unit: dimensionless,
# t0: 1262275684.0 s,
# dt: 1.0 s,
# name: Data quality,
# channel: None,
# bits: Bits(0: Passes DATA test
# 1: Passes CBC_CAT1 test
# 2: Passes CBC_CAT2 test
# 3: Passes CBC_CAT3 test
# 4: Passes BURST_CAT1 test
# 5: Passes BURST_CAT2 test
# 6: Passes BURST_CAT3 test,
# channel=None,
# epoch=1262274636.0))