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)
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
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
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}")
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:
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')
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()
from gwosc.datasets import event_gps gps = event_gps("GW150914") start = int(gps) - 15 end = int(gps) + 15
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")
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)
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))