gwexpy.interop.lal_

gwexpy.interop.lal

Interoperability with LALSuite (LIGO Algorithmic Library).

Provides bidirectional conversion between LALSuite time/frequency series types and GWexpy TimeSeries / FrequencySeries.

Notes

GWpy already inherits from_lal / to_lal classmethods for TimeSeries and FrequencySeries via GWpy. This module provides an explicit interop layer that ensures GWexpy types are returned and adds to_lal for FrequencySeries.

Functions

from_lal_frequencyseries(cls, lalfs, *[, copy])

Create a GWexpy FrequencySeries from a LAL FrequencySeries struct.

from_lal_timeseries(cls, lalts, *[, copy])

Create a GWexpy TimeSeries from a LAL TimeSeries struct.

to_lal_frequencyseries(fs)

Convert a GWexpy FrequencySeries to a LAL FrequencySeries struct.

to_lal_timeseries(ts, *[, dtype])

Convert a GWexpy TimeSeries to a LAL TimeSeries struct.

gwexpy.interop.lal_.from_lal_timeseries(cls: Type[T_ts], lalts: Any, *, copy: bool = True) T_ts[source]

Create a GWexpy TimeSeries from a LAL TimeSeries struct.

Parameters:
  • cls (type) – The TimeSeries class to instantiate.

  • lalts (lal.REAL4TimeSeries or lal.REAL8TimeSeries or lal.COMPLEX8TimeSeries or lal.COMPLEX16TimeSeries) – LAL time series struct.

  • copy (bool, default True) – Whether to copy the underlying data array.

Returns:

GWexpy TimeSeries with epoch, sample rate and unit from the LAL struct.

Return type:

TimeSeries

Examples

>>> import lal
>>> from gwexpy.timeseries import TimeSeries
>>> lalts = lal.CreateREAL8TimeSeries("test", lal.LIGOTimeGPS(0), 0, 1/1024, lal.DimensionlessUnit, 1024)
>>> ts = TimeSeries.from_lal(lalts)
gwexpy.interop.lal_.to_lal_timeseries(ts: TimeSeries, *, dtype: str | None = None) Any[source]

Convert a GWexpy TimeSeries to a LAL TimeSeries struct.

Parameters:
  • ts (TimeSeries) – GWexpy TimeSeries to convert.

  • dtype (str, optional) – LAL type string (e.g., "REAL8", "COMPLEX16"). If None, inferred from the array dtype.

Returns:

LAL time series struct.

Return type:

lal.REAL8TimeSeries or similar

Examples

>>> from gwexpy.timeseries import TimeSeries
>>> import numpy as np
>>> ts = TimeSeries(np.zeros(1024), t0=0, dt=1/1024, name="test")
>>> lalts = ts.to_lal()
gwexpy.interop.lal_.from_lal_frequencyseries(cls: Type[T_fs], lalfs: Any, *, copy: bool = True) T_fs[source]

Create a GWexpy FrequencySeries from a LAL FrequencySeries struct.

Parameters:
  • cls (type) – The FrequencySeries class to instantiate.

  • lalfs (lal.REAL8FrequencySeries or lal.COMPLEX16FrequencySeries) – LAL frequency series struct.

  • copy (bool, default True) – Whether to copy the underlying data array.

Returns:

GWexpy FrequencySeries with f0, df, epoch and unit from the LAL struct.

Return type:

FrequencySeries

gwexpy.interop.lal_.to_lal_frequencyseries(fs: FrequencySeries) Any[source]

Convert a GWexpy FrequencySeries to a LAL FrequencySeries struct.

Parameters:

fs (FrequencySeries) – GWexpy FrequencySeries to convert.

Returns:

LAL frequency series struct.

Return type:

lal.REAL8FrequencySeries or similar