GWpy is a collaboration-driven Python package providing tools for studying data from ground-based gravitational-wave detectors

Overview

GWpy is a collaboration-driven Python package providing tools for studying data from ground-based gravitational-wave detectors.

GWpy provides a user-friendly, intuitive interface to the common time-domain and frequency-domain data produced by the LIGO and Virgo observatories and their analyses, with easy-to-follow tutorials at each step.

https://gwpy.github.io

Release status

PyPI version Conda version

DOI License Supported Python versions

Development status

Build status Coverage status Maintainability

Installation

To install, you can do:

conda install -c conda-forge gwpy

or

python -m pip install gwpy

You can test your installation, and its version by

python -c "import gwpy; print(gwpy.__version__)"

License

GWpy is released under the GNU General Public License v3.0 or later, see here for a description of this license, or see the LICENSE file for the full text.

Comments
  • LAL incompatibility

    LAL incompatibility

    As of today, the latest version of LAL in master does not jive well with GWpy. It seems that from lal import lal doesn't work anymore (although import lal does). For instance:

    >>> from gwpy.timeseries import TimeSeries
    >>> data = TimeSeries.read("/archive/frames/trend/minute-trend/40m/C-M-11/C-M-1111554000-3600.gwf", "C1:LSC-DARM_OUT_DQ.mean")
    >>> spectrum = data.asd(method='median-mean')
      File "<stdin>", line 1, in <module>
      File "/home/max.isi/.local/lib/python2.6/site-packages/gwpy-0.1b1.dev17-py2.6.egg/gwpy/timeseries/core.py", line 492, in asd
        overlap=overlap, **kwargs) ** (1/2.)
      File "/home/max.isi/.local/lib/python2.6/site-packages/gwpy-0.1b1.dev17-py2.6.egg/gwpy/timeseries/core.py", line 459, in psd
        psd_ = method_func(self, nfft, **kwargs)
      File "/home/max.isi/.local/lib/python2.6/site-packages/gwpy-0.1b1.dev17-py2.6.egg/gwpy/spectrum/lal_.py", line 220, in _spectrum
        return lal_psd(*args, **kwargs)
      File "/home/max.isi/.local/lib/python2.6/site-packages/gwpy-0.1b1.dev17-py2.6.egg/gwpy/utils/deps.py", line 81, in wrapper
        stacklevel=2)
      File "/home/max.isi/.local/lib/python2.6/site-packages/gwpy-0.1b1.dev17-py2.6.egg/gwpy/utils/deps.py", line 50, in import_method_dependency
        return __import__(module, fromlist=[''])
    ImportError: Cannot import lal.lal required by the _spectrum() method: 'No module named lal'
    
    issue:cannot-reproduce issue:needs-clarification 
    opened by maxisi 30
  • Update travis-ci build to new containter infrastructure

    Update travis-ci build to new containter infrastructure

    This PR make a new attempt to update the travis-ci.org build configuration to use the new container infrastructure.

    Currently we have to build FFTW and LALSuite from source.

    build:general 
    opened by duncanmmacleod 24
  • Added support for discovering and reading Virgo FFL files

    Added support for discovering and reading Virgo FFL files

    This PR adds support for auto-discovery of data on the Virgo file system (Cascina) by supporting reading FFL files, and auto-discovery of those files under the /virgoData partition.

    Fixes #748.

    cc @basswinkels

    gwpy.io gwpy.timeseries api:minor 
    opened by duncanmmacleod 19
  • Deal with longer Q-transform requests, fix problem with Q-tranform vector size mismatch

    Deal with longer Q-transform requests, fix problem with Q-tranform vector size mismatch

    Addresses issue #995

    • tres (time resolution) now determined image size and search duration
    • timeseries.q_transform modifiedto correct nx mismatch with xout length which became apparent only when tres does not divide a second into integer pieces
    • Also add verbose messages (level 3) for q-transform parameters.
    gwpy.cli 
    opened by areeda 17
  • Using numpy's truth methods with timeseries

    Using numpy's truth methods with timeseries

    I'd like to get a truthiness array for my timeseries. Since numpy is used to store the underlying data, I figured I could use np.where, but it's not working. It seems like astropy is causing the trouble:

    >>> np.where(data > 20)
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "/usr/lib/python3/dist-packages/astropy/units/quantity.py", line 408, in __array_prepare__
        .format(function.__name__))
    astropy.units.core.UnitsError: Can only apply 'greater' function to dimensionless quantities when other argument is not a quantity (unless the latter is all zero/infinity/nan)
    

    (data is a TimeSeries) I can get around this by casting to an np.ndarray:

    data = np.array(data)
    

    ...but I'd rather not have to do this (to preserve units and other metadata). Is there a way to get access to the underlying data without this astropy error?

    issue:question 
    opened by SeanDS 13
  • Make interpolated Q-transform spectrograms single precision

    Make interpolated Q-transform spectrograms single precision

    This pull request ensures that interpolated Q-transform spectrograms are populated with single-precision floats, to save memory. It also slightly expands unit tests for the Q-transform, and fixes one of the documentation examples to use outseg rather than crop.

    This fixes #1050.

    cc @duncanmmacleod, @tjma12

    enhancement documentation examples gwpy.signal issue:feature-request api:minor 
    opened by alurban 13
  • Refactor TimeSeries.q_transform() to support eventgrams

    Refactor TimeSeries.q_transform() to support eventgrams

    This PR substantially refactors TimeSeries.q_transform() to support eventgrams, a feature ported over from gwdetchar-omega. To simplify review, here is a summary of changes made:

    New Features

    • Introduce a new object class, ~gwpy.signal.qtransform.QGram, to support eventgrams
    • Introduce a new function, ~gwpy.signal.qtransform.q_scan(), which identifies the time-frequency plane at fixed Q with the most significant tile within a given (optional) search window. This method returns an instance of QGram along with the estimated false alarm rate from white Gaussian noise.
    • Include a method, QGram.table(), which converts a populated QGram object to an EventTable so that it can be rendered with matplotlib. Table columns are 'time', 'duration', 'frequency', 'bandwidth', and 'energy'. The only argument is an SNR threshold, which selects for tiles with energy greater than or equal snrthresh**2/2.
    • Introduce a TimeSeries.q_gram method to wrap around QGram.table.
    • Add a mismatch argument for q_scan() and TimeSeries.q_transform().
    • Add a unit test for the QGram object under gwpy/signal/tests/test_qtransform.py.
    • Add an example for the docs under examples/signal/qscan.py.

    Refactor Existing Features

    • Refactor spectrogram interpolation into ~gwpy.signal.qtransform.QGram.interpolate(). This reduces the cyclomatic complexity of TimeSeries.q_transform() to a level acceptable to CodeClimate.

    This fixes #922 and fixes #995.

    cc @duncanmmacleod, @areeda, @scottcoughlin2014

    enhancement gwpy.signal gwpy.timeseries issue:feature-request api:minor 
    opened by alurban 13
  • ImportError:no module named nds2

    ImportError:no module named nds2

    from gwpy.timeseries import TimeSeries
    hoft = TimeSeries.get('L1:GDS-CALIB_STRAIN', 1172489751, 1172489815)
    aux = TimeSeries.get('L1:PSL-ISS_PDA_REL_OUT_DQ', 1172489751, 1172489815)
    

    When running in pycharm, no module named nds2 appears, what is the reason?What is the role of TimeSeries.get()?I am a newcomer to the gravitational wave. I hope the teacher will give you an answer. Thank you.

    opened by lhm315 12
  • Refactor gwpy.astro to depend on inspiral-range

    Refactor gwpy.astro to depend on inspiral-range

    This PR fixes #1248 by refactoring the gwpy.astro submodule so that it depends on the new inspiral-range Python package. As a result, the inspiral_range and inspiral_range_psd methods now fully account for cosmological corrections, while the SenseMon method has been refactored into corresponding functions sensemon_range and sensemon_range_psd.

    Things to note:

    • The inspiral-range package does not (appear to) support sensitivity metrics based on transient burst sources, so that functionality remains untouched
    • Where possible, I have tried to include references to the inspiral-range package as well as the paper (Belczynski et al. 2014) that lays out the cosmology-corrected range calculation
    • This PR also includes a number of smaller changes that do not affect overall functionality

    Closes #1292.

    enhancement issue:feature-request api:major gwpy.astro 
    opened by alurban 11
  • Implement --title

    Implement --title

    Fixes #975

    NB: my upstream repo

    (gwpy) [email protected]:gwpy[565]$git remote -v
    origin	https://github.com/areeda/gwpy.git (fetch)
    origin	https://github.com/areeda/gwpy.git (push)
    upstream	https://github.com/gwpy/gwpy.git (fetch)
    upstream	https://github.com/gwpy/gwpy.git (push)
    (gwpy) [email protected]:gwpy[566]$git diff --name-only upstream/develop
    gwpy/cli/cliproduct.py
    
    gwpy.cli api:patch 
    opened by areeda 11
  • New whitening scheme based on inverse spectrum truncation

    New whitening scheme based on inverse spectrum truncation

    This pull request addresses a common issue with filter transients in the current whitening method by replacing it with an alternative scheme which designs and applies an FIR (finite impulse response) filter using inverse spectrum truncation.

    Other new features added include:

    • A method FrequencySeries.interpolate() and functions timeseries._fft_length_default, signal.filter_design.truncate_transfer, and signal.filter_design.truncate_impulse, all used to design the FIR filter
    • New keyword arguments for filter duration (in the time domain) and highpass corner frequency
    • In TimeSeries.whiten(), a default value of fftlengthwhich causes it to be set to max(2, int(2048 // self.sample_rate.decompose().value))
    • Automatic cropping of the beginning and end of the whitened timeseries by a segment of length filter_duration
    • Updates to the documentation for TimeSeries.whiten() addressing these changes
    • Updates to q_transform() that address these recent changes, including a new default fftlength that mirrors the one for TimeSeries.whiten
    • Unit tests for new functionality, a unit test for signal.window.planck(), and a bug fix in the unit test for FrequencySeries.inject()

    Note, these changes make it so that a simple call to TimeSeries.whiten() with no other arguments returns something sensible in most cases. It is also backwards compatible.

    This fixes #867. It is also related to #358 and #451.

    gwpy.signal gwpy.timeseries api:minor gwpy.frequencyseries 
    opened by alurban 11
  • Inspiral range calculations without an fmax set below the Nyquist are wrong

    Inspiral range calculations without an fmax set below the Nyquist are wrong

    Inspiral range calculations give incorrect results unless fmax is set below the Nyquist frequency. Below is a simple example showing the time series calculation. The first two are incorrect, the third is set 10 Hz below the Nyquist and gives a sensible output.

    >>> from gwpy.timeseries import TimeSeries
    >>> h1 = TimeSeries.get('H1:GDS-CALIB_STRAIN', 'feb 29 2020 00:00:00', 'feb 29 2020 00:05:00')
    >>> import gwpy.astro as astro
    >>> astro.range_timeseries(h1, stride=60, fftlength=10, overlap=5, fmin=10)
    <TimeSeries([184.01153865, 168.89645704, 181.75185037,
                 179.10572224, 165.1965439 ]
                unit=Unit("Mpc"),
                t0=<Quantity 1.26696962e+09 s>,
                dt=<Quantity 60. s>,
                name='H1:GDS-CALIB_STRAIN',
                channel=<Channel("H1:GDS-CALIB_STRAIN" [reduced], 16384.0 Hz) at 0x16441bc10>)>
    >>> astro.range_timeseries(h1, stride=60, fftlength=10, overlap=5, fmin=10, fmax=16384/2)
    <TimeSeries([184.01153865, 168.89645704, 181.75185037,
                 179.10572224, 165.1965439 ]
                unit=Unit("Mpc"),
                t0=<Quantity 1.26696962e+09 s>,
                dt=<Quantity 60. s>,
                name='H1:GDS-CALIB_STRAIN',
                channel=<Channel("H1:GDS-CALIB_STRAIN" [reduced], 16384.0 Hz) at 0x16441bc10>)>
    >>> astro.range_timeseries(h1, stride=60, fftlength=10, overlap=5, fmin=10, fmax=16384/2-10)
    <TimeSeries([117.94742378, 117.82970783, 117.79845777,
                 116.12951017, 115.57842847]
                unit=Unit("Mpc"),
                t0=<Quantity 1.26696962e+09 s>,
                dt=<Quantity 60. s>,
                name='H1:GDS-CALIB_STRAIN',
                channel=<Channel("H1:GDS-CALIB_STRAIN" [reduced], 16384.0 Hz) at 0x16441bc10>)>
    
    opened by eagoetz 0
  • Make minor fixes and additions to GWpy documentation

    Make minor fixes and additions to GWpy documentation

    Make some minor fixes to documentation for tconvert, to_gps, and from_gps, plus add some implied-but-missing code, and add some text to clarify what GPS times 'today', 'yesterday', and 'tomorrow' correspond to.

    Text should all show up on https://gwpy.github.io/docs/stable/time/

    documentation examples gwpy.time 
    opened by robertbruntz 1
  • Update import of matplotlib.docstrings

    Update import of matplotlib.docstrings

    This PR closes #1564 by updating the usage of matplotlib.docstrings to account for the renamed private module, and to protect against that module disappearing entirely in the future.

    opened by duncanmmacleod 1
  • matplotlib.docstring is deprecated

    matplotlib.docstring is deprecated

    Warnings are being emitted from matplotlib that will lead to an incompatibility very soon [ref]:

    gwpy/__init__.py:34: in <module>
        from . import (
    gwpy/plot/__init__.py:29: in <module>
        from . import (
    gwpy/plot/gps.py:28: in <module>
        from matplotlib import (ticker, docstring)
    ../../../miniconda3/envs/test/lib/python3.8/site-packages/matplotlib/docstring.py:3: in <module>
        _api.warn_deprecated(
    ../../../miniconda3/envs/test/lib/python3.8/site-packages/matplotlib/_api/deprecation.py:96: in warn_deprecated
        warn_external(warning, category=MatplotlibDeprecationWarning)
    ../../../miniconda3/envs/test/lib/python3.8/site-packages/matplotlib/_api/__init__.py:363: in warn_external
        warnings.warn(message, category, stacklevel)
    E   matplotlib._api.deprecation.MatplotlibDeprecationWarning: The matplotlib.docstring module was deprecated in Matplotlib 3.6 and will be removed two minor releases later.
    
    dep:matplotlib 
    opened by duncanmmacleod 0
Releases(v3.0.2)
  • v3.0.2(Nov 24, 2022)

  • v3.0.1(Nov 8, 2022)

  • v3.0.0(Oct 4, 2022)

    Major feature release

    Backwards-incompatible changes:

    • [#1284] refactor gwpy.astro to depend on inspiral-range
    • [#1356] remove support for S6-style SegDB server
    • [#1465] remove support for hdf5.losc file format key
    • [#1466] remove gwpy.table.EventColum
    • [#1467] remove deprecated Plot methods
    • [#1468] remove deprecated colorbar behaviour
    • [#1469] remove deprecated SegmentAxes methods
    • [#1470] remove deprecated TimeSeries.read options for GWF
    • [#1472] remove deprecated Spectrogram.plot keyword
    • [#1479] update API for gwpy.utils.lal.to_lal_unit function

    Deprecations:

    • [#1531] gwpy.testing.utils.skip_missing_dependency is now deprecated and will be removed in a future release

    Backwards-compatible changes:

    • [#1265] add support for reading GstLAL trigger files
    • [#1391] add support for filter functions to use multiple columns with EventTable.filter
    • [#1406] add TimeSeries.transfer_function
    • [#1419] support writing ROOT files with uproot4
    • [#1477] remove equivalentce between strain and dimensionless_unscaled units
    • [#1483] update Axes.tile to use sortbycolor keyword
    • [#1501] improve handling of empty arrays when writing GWF with LALFrame
    • [#1531] use pytest.mark.requires in all tests
    • [#1543] improve PyCBC HDF5 table reading

    A number of bugs were fixed, and compatibility improved with advanced versions of the requirements. The full list of changes related to this milestone can be seen at

    https://github.com/gwpy/gwpy/pulls?q=is:pr+milestone:3.0.0

    Source code(tar.gz)
    Source code(zip)
  • v2.1.5(Aug 1, 2022)

  • v2.1.4(Jun 27, 2022)

    Bug fixes and other API-compatible changes:

    • [#1363] handle cases in EventTable.cluster() where table is empty or already clustered
    • [#1428] fix bug in Series index comparison
    • [#1474] fix bug reading ASCII Files
    • [#1484] resolve DeprecationWarning from SciPy 1.8.0
    • [#1487] fix reading a contiguous set of files with LALFrame
    • [#1499] migrate GWDataFind interface to new UI
    • [#1512] update name of Gravity Spy server for glitch tables
    • [#1517] work around a bug in frameCPP

    Dependency changes:

    • [#1441] Python >=3.7
    • [#1441] h5py >=2.8.0
    • [#1463] Astropy >=4.0
    • [#1463] NumPy >=1.16
    • [#1499] GWDataFind >=1.1.0

    A number of other internal changes were made, the full list of changes related to this milestone can be seen at

    https://github.com/gwpy/gwpy/pulls?q=is:pr+milestone:2.1.4

    Source code(tar.gz)
    Source code(zip)
  • v2.1.3(Dec 17, 2021)

    Patch release for GWpy 2.1.x.

    Bug fixes:

    • [gwpy/gwpy#1401] update test suite to use tmp_path fixture in pytest
    • [gwpy/gwpy#1418] add support for Python 3.10
    • [gwpy/gwpy#1439] fix DeprecationWarning emitted in Python 3.10
    • [gwpy/gwpy#1438] update timeseries/public example
    • [gwpy/gwpy#1456] decorate test to skip gracefully on network error
    • [gwpy/gwpy#1457] fix compatibility with python-ligo-lw 1.8.0
    • [gwpy/gwpy#1458] fix compatibility with scipy 1.8.0

    A few other bugs were fixed related to internal infrastructure, the full list of changes related to the milestone can be seen at

    https://github.com/gwpy/gwpy/pulls?q=is:pr+milestone:2.1.3

    Source code(tar.gz)
    Source code(zip)
  • v2.1.2(Nov 25, 2021)

  • v2.1.1(Oct 18, 2021)

    GWpy 2.1.1 - patch release

    Deprecations:

    • [gwpy/gwpy#1412] gwpy.utils.shell.call() is now deprecated

    Backwards-compatible changes:

    • [gwpy/gwpy#1417] a strict keyword was added to gwpy.io.cache.sieve()

    Bug fixes:

    • [gwpy/gwpy#1414] Series.crop() can now handle irregular indices (thanks @mattpitkin!)
    • [gwpy/gwpy#1420] TimeSeries.read no longer checks the tRange of an FrProcData when reading GWF using FrameCPP

    A few other bugs were fixed (mostly internal); the full list of changes related to this milestone can be seen at

    https://github.com/gwpy/gwpy/pulls?q=is:pr+milestone:2.1.1

    Source code(tar.gz)
    Source code(zip)
  • v2.1.0(Aug 30, 2021)

    GWpy 2.1.0 - development release

    Deprecations

    • [gwpy/gwpy#1353] the gwpy.testing.utils.TemporaryFile context manager is now deprecated

    Backwards-compatible changes

    • [gwpy/gwpy#1263, gwpy/gwpy#1309] ROOT I/O now uses uproot as the backend
    • [gwpy/gwpy#1275] passing a channel name is now optional when reading files in the hdf5.snax format
    • [gwpy/gwpy#1282] the default spectral averaging method is now 'median' (was 'mean')
    • [gwpy/gwpy#1285] TimeSeries.rayleigh_spectrum now supports a window keyword
    • [gwpy/gwpy#1293] gwpy.astro.inspiral_range function renamed to sensemon_range
    • [gwpy/gwpy#1329] new --average-method command-line option for gwpy-plot
    • [gwpy/gwpy#1347] gwpy.signal.filter_design.notch now supports an output keyword
    • [gwpy/gwpy#1330] gwpy-plot qtransform now supports FFT options on the command-line
    • [gwpy/gwpy#1362, gwpy/gwpy#1380] pathlib.Path objects are now supported everywhere file names are passed around (hopefully)

    A number of bugs were fixed, and compatibility improved with advanced versions of the requirements. The full list of changes related to this milestone can be seen at

    https://github.com/gwpy/gwpy/pulls?q=is:pr+milestone:2.1.0

    Source code(tar.gz)
    Source code(zip)
  • v2.0.4(Apr 27, 2021)

    Bug-fix release.

    Changes:

    • [#1304] added new gwpy.testing.errors module
    • [#1317, #1319] fixed warnings (or lack thereof) during testing
    • [#1318] fixed a deprecation warning from numpy
    • [#1320] migrated build and metadata to setuptools_scm

    The full list of changes associated with this change can be seen at https://github.com/gwpy/gwpy/pulls?q=is:pr+milestone:2.0.4.

    Source code(tar.gz)
    Source code(zip)
  • v2.0.3(Apr 15, 2021)

    Bug-fix release.

    Changes:

    • [#1290] fix a number of warnings
    • [#1294] fix bug in deprecated_function decorator
    • [#1296] fix compatibility with modern pandas
    • [#1303] fix compatibility with matplotlib >=3.4.0
    • [#1312] simplify Axes.scatter wrapper
    • [#1313] don't modify VetoDef in-place when converting to DataQualityFlag

    The full list of changes associated with this change can be seen at https://github.com/gwpy/gwpy/pulls?q=is:pr+milestone:2.0.3.

    Source code(tar.gz)
    Source code(zip)
  • v2.0.2(Dec 2, 2020)

    Bug-fix release

    Bugs fixed:

    • [gwpy/gwpy#1269] fix an issue with file path handling
    • [gwpy/gwpy#1270] fix issues with LIGO_LW column handling
    • [gwpy/gwpy#1278] fix compatibility with matplotlib-3.3.3
    • [gwpy/gwpy#1279] fix compatibility with h5py-3.1.0
    • [gwpy/gwpy#1281] fix issue with error reporting when reading LIGO_LW arrays

    The full list of changes associated with this change can be seen at https://github.com/gwpy/gwpy/pulls?q=is:pr+milestone:2.0.2.

    Source code(tar.gz)
    Source code(zip)
  • v2.0.1(Aug 5, 2020)

    Bug-fix release; this release presents no API changes, and only addresses compatibility with upstream packages.

    Bug-fixes:

    • [gwpy/gwpy#1259] fix compatibility with matplotlib-3.3.0

    The full list of changes associated with this change can be see at https://github.com/gwpy/gwpy/pulls?q=is:pr+milestone:2.0.1.

    Source code(tar.gz)
    Source code(zip)
  • v2.0.0(Jul 28, 2020)

    GWpy-2.0.0 is the first release to support only Python >=3.6.

    Backwards-incompatible changes:

    • python requirement increased to >=3.6
    • numpy requirement increased to >=1.12.0
    • scipy requirement increased to >=1.2.0
    • astropy requirement increased to >=3.0.0
    • matplotlib requirement increased to >=3.1.0

    Backwards-compatible changes:

    • [gwpy/gwpy#1247] new GWF I/O API using FrameL
    • [gwpy/gwpy#1238] new TimeSeries.mask method

    Other changes:

    • [gwpy/gwpy#1139] update to log formatting on plots
    • [gwpy/gwpy#1207] fix bug writing series to GWF
    • [gwpy/gwpy#1218] fix API for CIS using requests-ecp

    The full list of changes related to this milestone can be seen at

    https://github.com/gwpy/gwpy/pulls?q=is:pr+milestone:2.0.0

    Source code(tar.gz)
    Source code(zip)
  • v1.0.1(Jan 6, 2020)

    Bug-fix release of GWpy.

    Bug fixes (include packaging, testing, and documentation updates):

    • numerous bugs were squashed, see https://github.com/gwpy/gwpy/issues?q=milestone%3A1.0.1+label%3Abug-fix for a full listing

    See https://github.com/gwpy/gwpy/compare/v1.0.0..v1.0.1 for full details of what has changed since the last release.

    Source code(tar.gz)
    Source code(zip)
  • v1.0.0(Oct 29, 2019)

    This release marks the first stable version of GWpy, and also the last version that will support python2. Bug fixes impacting python2 will through 1 May 2020, but all new developments will be python3+ only.

    Backwards-incompatible changes relative to 0.15.0:

    • [#1107] gwpy.table.EventColumn was deprecated
    • [#1102] updated axes legend formatting

    Backwards-compatible changes:

    • [#1115] gwpy.segments.SegmentList.to_table was added
    • [#1124] gwpy.astro.range_{timeseries,spectrogram} functions were added
    • [#1145] new keyword arguments were added to gwpy.timeseries.TimeSeries.taper
    • [#1147] gwpy.timeseries.TimeSeries.heterodyne was added
    • [#1153] support for segment ribbon was added to gwpy-plot
    • [#1159] gap handling for TimeSeries.find and TimeSeries.read was improved
    • [#1163] support for the hdf5.snax EventTable format was added
    • [#1165] gwpy.timeseries.TimeSeries.cluster was added

    Bug fixes (include packaging, testing, and documentation updates)

    • numerous bugs were squashed, see https://github.com/gwpy/gwpy/issues?utf8=%E2%9C%93&q=label%3Abug-fix+milestone%3A1.0.0+ for a full listing

    See https://github.com/gwpy/gwpy/compare/v0.15.0..v1.0.0 for full details of what has changed since the last release.

    Source code(tar.gz)
    Source code(zip)
  • v0.15.0(Apr 24, 2019)

    Development release of GWpy

    Backwards-compatible changes:

    • [#1047] added support for reading/writing python-ligo-lw library-format LIGO_LW XML files
    • [#1079] improvements to gwpy.io.cache
    • [#1086] new EventTable.fetch_open_data method

    Bug-fixes (including package, unit test, and documentation updates):

    • numerous bugs were squashed, see https://github.com/gwpy/gwpy/pulls?utf8=%E2%9C%93&q=is%3Apr+label%3Abug-fix+milestone%3A0.15.0 for a full list

    See https://github.com/gwpy/gwpy/compare/v0.14.2..v0.15.0 for a full statement of what has changed since the last release. Many thanks to everyone who has contributed to this release.

    Source code(tar.gz)
    Source code(zip)
  • v0.14.2(Mar 22, 2019)

    GWpy-0.14.2 Bug-fix release of GWpy.

    Bug-fixes (including packaging, unit test, and documentation updates):

    • [#1080] fixed bug testing gwpy.utils.shell on some windows systems
    • [#1082] fixed bug reading hdf5.pycbc-format files with selection filters

    See https://github.com/gwpy/gwpy/issues?utf8=%E2%9C%93&q=milestone%3A0.14.2 for a full list of issues and pull requests related to this release.

    See https://github.com/gwpy/gwpy/compare/v0.14.1..v0.14.2 for a full diff compared to the previous r elease.

    Source code(tar.gz)
    Source code(zip)
  • v0.14.1(Mar 13, 2019)

    GWpy-0.14.1 Bug-fix release of GWpy.

    Bug-fixes (including packaging, unit test, and documentation updates):

    • [#1068] fixed bug in verbose message from TimeSeries.fetch_open_data
    • [#1069] updated GWOSC API
    • [#1070] new gwpy.io.gwf.data_segments function
    • [#1072] fixed crash when reading GWF data using lalframe API
    • [#1073] gracefully handle null resampling operation
    • [#1074] automatically reconnect to gwdatafind server on HTTPException (once)
    • [#1075] fixed bugs in gwpy.plot.Axes methods
    • [#1076] fixed misc bugs in I/O
    • [#1077] fixed precision error when converting GPS->GPS with gwpy.time.to_gps
    • [#1078] simplified index handling for Series and Array2D

    See https://github.com/gwpy/gwpy/issues?utf8=%E2%9C%93&q=milestone%3A0.14.1 for a full list of issues and pull requests related to this release.

    See https://github.com/gwpy/gwpy/compare/v0.14.0..v0.14.1 for a full diff compared to the previous r elease.

    Source code(tar.gz)
    Source code(zip)
  • v0.14.0(Feb 28, 2019)

    GWpy-0.14.0 Development release of GWpy.

    Backwards-incompatible changes:

    • [#1042] reading EventTables from files is now much more consistent across file types, but requires manually specifying `format="hdf5.pycbc" when reading PyCBC Live files,
    • [#1043] estimating PSDs using LAL or PyCBC methods has been deprecated, but not removed; however, this will be removed entirely in 1.0.0, with support only for scipy-based PSD estimation,
    • [#1067] ADC scaling defaults were changed to dynamically default to False when reading LIGO data, and True for all other observatories.

    Backwards-compatible changes:

    • [#1028] TimeSeries.psd(method="median") now uses scipy if using 1.2.0 or later,
    • [#1031] dqsegdb2 is now used for all DQSegDB interactions,
    • [#1036] TimeSeries.q_transform now uses much less memory, defaulting to float32 for normalised scans, and using a dynamic default time-resolution; users should use outseg more often than not to downselect the returned spectrogram time-span,
    • [#1052] the TimeSeries.gate method was added.

    Bug-fixes (including package, unit test, and documentation updates):

    • numerous bugs were squashed, see https://github.com/gwpy/gwpy/pulls?utf8=%E2%9C%93&q=is%3Apr+label%3Abug-fix+milestone%3A0.14.0 for a full list

    See v0.13.2...v0.14.0 for a full statement of what has changed since the last release. Many thanks to everyone who has contributed to this release.

    Source code(tar.gz)
    Source code(zip)
  • v0.12.2(Oct 24, 2018)

    Bug-fix release for gwpy-0.12

    • [#910] fixed compatibility with matplotlib-3.0.0

    See https://github.com/gwpy/gwpy/compare/v0.12.1..v0.12.2 for a detailed list of changes since the last release.

    Source code(tar.gz)
    Source code(zip)
  • v0.12.1(Sep 19, 2018)

    Bug-fix release for gwpy-0.12

    Bug-fixes (including package, unit test, and documentation updates):

    • [#891, #899, #903] reverted auto-cropping of output series for TimeSeries.whiten
    • [#900] moved TimeSeries.shift to Series
    • [#904] fixed bug in writing FrDetectors to GWF with lalframe backend
    • [#882, #884, #898] misc bug fixes for gwpy.cli
    • [#906] updated license to GPLv3+
    • [#898, #908] misc documentation improvements

    See https://github.com/gwpy/gwpy/compare/v0.12.0..v0.12.1 for full details of what has changed since the last release.

    Source code(tar.gz)
    Source code(zip)
  • v0.12.0(Aug 16, 2018)

    Development release of GWpy.

    Backwards-incompatible changes:

    • [#790] new gwpy.plot matplotlib interface, which replaces gwpy.plotter; the old interface is still there, but now carries a DeprecationWarning and will not be maintained
    • [#845] gwpy.signal.filter has been removed as it was never well-maintained or documented
    • [#868] new implementation of time-domain whitening with inverse-spectrum truncation

    Backwards-compatible changes:

    • support for python3.7
    • [#872] new classmethod TimeSeriesDict.from_nds2_buffer
    • [#878] new defaults for TimeSeries.spectrogram2
    • [#846] new overloaded Array.flatten and Array2D.T

    Bug-fixes (including package, unit test, and documentation updates):

    • miscellaneous bug fixes
    • miscellaneous documentation fixes
    • a few updates to the examples

    See https://github.com/gwpy/gwpy/compare/v0.11.0...v0.12.0 for a full statement of what has changed since the last release.

    Source code(tar.gz)
    Source code(zip)
  • v0.11.0(Jul 3, 2018)

    Development release of GWpy.

    Backwards-compatible changes:

    • [#735] Use tqdm for progresss bars
    • [#739] Simplified reading timeseries from lists of files
    • [#740] Added contract keyword for DataQualityFlag.round
    • [#741] Reworked gwpy.time to reduce complexity
    • [#742] Deprecated unused keywords in EventTableAxes.plot_table
    • [#747] Reworked gwpy.cli to reducce complexity
    • [#766] Upgraded h5py to a required dependency
    • [#762,#768,#774] Removed dependency on lscsoft-glue
    • [#776] Added __init__.py for `gwpy.tests sub-package
    • [#785] Added gwpy.time.gps_types tuple
    • [#787] Added _get_time_column private methods for EventTable

    Bug-fixes (including package, unit test, and documentation updates):

    • [#743] Fixed bug in parsing git --version on macOS
    • [#744] Fixed python3 syntax error
    • [#745] Fixed bugs in reading offline PyCBC files
    • [#746] Fixed bugs in TimeSeries.coherence_spectrogram
    • [#751] Fixed type casting in DataQualityFlag.padding
    • [#752] Added check for empty return from nds2 iterate
    • [#756] Miscellanous fixes
    • [#760] Fixed to_gwpy_('0')
    • [#761] Added keyword to handle missing flags in DataQualityDict.read
    • [#763] Fixed handling of IndexError when unpickling channel in HDF5
    • [#765,#777,#779] CI fixes
    • [#767,#771,#778] Packaging fixes
    • [#769,#786,#788] Documentation fixes
    • [#770] Fixed numpy dtype comparisons on python3.4
    • [#797] Unit test fixes
    • [#799] Added support for more custom LIGO units
    • [#801] Fixed bugs in keyword handling in TimeSeriesDict.get

    See v0.10.1...v0.11.0 for a full statement of what has changed since the last release.

    Source code(tar.gz)
    Source code(zip)
  • v0.10.0(Apr 19, 2018)

    Development release of GWpy

    Backwards-compatible changes:

    • [#725] minor improvement in parsing parameters in HistogramPlot calls
    • [#720,#728] new TimeSeries.inject and FrequencySeries.inject methods
    • [#732] simplification of EventTableAxes.add_loudest to not use latex

    Bug-fixes (including package, unit test, and documentation updates):

    • [#724] fixed bug in labels for plot_mmm methods
    • [#726] fixed bug in alpha for plot_mmm methods
    • [#727] fixed issue with unicode strings in gravityspy tables
    • [#731] fixed bug in multiprocessing segments in gwpy.timeseries.io.cache
    • [#730] fixed inconsistency between TimeSeries.fft and FrequencySeries.ifft

    See https://github.com/gwpy/gwpy/compare/v0.9.0...v0.10.0 for a full statement of what has changes since the last release.

    Source code(tar.gz)
    Source code(zip)
  • v0.9.0(Mar 24, 2018)

    Development release of GWpy

    Backwards-incompatible changes:

    • [#703] removed gwpy._version_helper module
    • [#708] modified behaviour of known segmentlist during DataQualityFlag logic operations

    Backwards-compatible changes:

    • [#704] added XOR logic method for DataQualityDict
    • [#705] added new TimeSeries.demodulate method
    • [#707] added support for a new GWPY_CACHE environment variable, which defaults cache=True for all open data methods
    • [#711] added support for writing extra attributes to LIGO_LW XML when writing segments

    Bug fixes (including package, unit test, and documentation updates):

    • [#680] fixed bugs in gwpy.signal.fft
    • [#682] simplified gwpy.utils.lal to support only lal>=6.18.0
    • [#684] fixed bugs in slicing Array2D
    • [#685] fixed bugs related to glue-1.58.1
    • [#688] fixed name output for TimeSeries boolean logic
    • [#690] fixed ordering of datasets when using gwpy-plot
    • [#691] fixed bug related to using Array(..., copy=True)
    • [#692] new example to demonstrate FrequencySeriesAxes.plot_mmm
    • [#698] fixed SpectralVariance.yspan
    • [#701] deprecated the @axes_method decorator (gwpy.plotter)
    • [#706] fixed bug in sorting LOSC datasets based on GPS times
    • [#709] fixed bugs in subclassing of gwpy.plotter.SeriesAxes
    • [#714] fixed bug in BodePlot frequencies keyword
    • [#715] added workaround for segmentation fault in frameCPP
    • [#717] deprecated custom properties of gwpy.plotter.Axes
    • [#719] simplified internal calls to gravityspy similarity search
    • [#681,#687,#702] numerous style and complexity improvements
    • [#689,#693,#700,#712] documentation improvements
    • [#695,] a few continuous integration and testing updates

    See https://github.com/gwpy/gwpy/compare/v0.8.1...v0.9.0 for a full statement of what has changes since the last release.

    Source code(tar.gz)
    Source code(zip)
  • v0.8.1(Feb 19, 2018)

    Bug-fix for gwpy-0.8

    Bug fixes (including packaging, unit test, and documentation updates)

    • [#677] updated Portfile template for macports distribution
    • [#678] fixed unused keyword bug in TimeSeries.spectrogram
    • [#679] added documentation page for 'Citing GWpy'
    Source code(tar.gz)
    Source code(zip)
    gwpy-0.8.1.tar.gz(1.04 MB)
  • v0.8.0(Feb 18, 2018)

    Development release of GWpy

    Backwards-compatible changes (including new features):

    • [#659, #671, #674] updated LOSC API to match upstream change
    • [#661, #676] added GravitySpyTable.search method (gwpy.table)
    • [#666] added new event_gps function to gwpy.io.losc
    • [#668] improved verbose output for TimeSeries.fetch_open_data

    Bug fixes (including packaging, and unit test updates):

    • [#657] packaging fixes
    • [#660] fixed exception handling in gwpy.io.datafind
    • [#667] removed StopIteration calls in gwpy.signal.qtransform
    • [#669, #673] fixed default server selection for segment queries in gwpy.segments
    • [#670] fixed bug in automatic tick settings for colorbar
    • [#672] patch to handle unit='*' in gwpy-plot (gwpy.cli)
    Source code(tar.gz)
    Source code(zip)
    gwpy-0.8.0.tar.gz(1.04 MB)
  • v0.7.5(Jan 25, 2018)

  • v0.7.1(Jan 22, 2018)

    Bug-fix release for the 0.7 series of GWpy:

    • [#645] fixed missing debian files in source tarball
    • [#646] only use fancy dependency specification if setuptools supports it
    • [#647] fixed macports Portfile to match requirements from maintainers
    Source code(tar.gz)
    Source code(zip)
Owner
GWpy
Python Software for Studying Data from Gravitational-Wave Detectors
GWpy
The OHSDI OMOP Common Data Model allows for the systematic analysis of healthcare observational databases.

The OHSDI OMOP Common Data Model allows for the systematic analysis of healthcare observational databases.

Bell Eapen 14 Jan 02, 2023
Functional tensors for probabilistic programming

Funsor Funsor is a tensor-like library for functions and distributions. See Functional tensors for probabilistic programming for a system description.

208 Dec 29, 2022
cLoops2: full stack analysis tool for chromatin interactions

cLoops2: full stack analysis tool for chromatin interactions Introduction cLoops2 is an extension of our previous work, cLoops. From loop-calling base

YaqiangCao 25 Dec 14, 2022
pipeline for migrating lichess data into postgresql

How Long Does It Take Ordinary People To "Get Good" At Chess? TL;DR: According to 5.5 years of data from 2.3 million players and 450 million games, mo

Joseph Wong 182 Nov 11, 2022
ELFXtract is an automated analysis tool used for enumerating ELF binaries

ELFXtract ELFXtract is an automated analysis tool used for enumerating ELF binaries Powered by Radare2 and r2ghidra This is specially developed for PW

Monish Kumar 49 Nov 28, 2022
A Python package for Bayesian forecasting with object-oriented design and probabilistic models under the hood.

Disclaimer This project is stable and being incubated for long-term support. It may contain new experimental code, for which APIs are subject to chang

Uber Open Source 1.6k Dec 29, 2022
Hidden Markov Models in Python, with scikit-learn like API

hmmlearn hmmlearn is a set of algorithms for unsupervised learning and inference of Hidden Markov Models. For supervised learning learning of HMMs and

2.7k Jan 03, 2023
Display the behaviour of a realtime program with a scope or logic analyser.

1. A monitor for realtime MicroPython code This library provides a means of examining the behaviour of a running system. It was initially designed to

Peter Hinch 17 Dec 05, 2022
Open-Domain Question-Answering for COVID-19 and Other Emergent Domains

Open-Domain Question-Answering for COVID-19 and Other Emergent Domains This repository contains the source code for an end-to-end open-domain question

7 Sep 27, 2022
Containerized Demo of Apache Spark MLlib on a Data Lakehouse (2022)

Spark-DeltaLake-Demo Reliable, Scalable Machine Learning (2022) This project was completed in an attempt to become better acquainted with the latest b

8 Mar 21, 2022
Universal data analysis tools for atmospheric sciences

U_analysis Universal data analysis tools for atmospheric sciences Script written in python 3. This file defines multiple functions that can be used fo

Luis Ackermann 1 Oct 10, 2021
Making the DAEN information accessible.

The purpose of this repository is to make the information on Australian COVID-19 adverse events accessible. The Therapeutics Goods Administration (TGA) keeps a database of adverse reactions to medica

10 May 10, 2022
pyhsmm MITpyhsmm - Bayesian inference in HSMMs and HMMs. MIT

Bayesian inference in HSMMs and HMMs This is a Python library for approximate unsupervised inference in Bayesian Hidden Markov Models (HMMs) and expli

Matthew Johnson 527 Dec 04, 2022
Average time per match by division

HW_02 Unzip matches.rar to access .json files for matches. Get an API key to access their data at: https://developer.riotgames.com/ Average time per m

11 Jan 07, 2022
Evidence enables analysts to deliver a polished business intelligence system using SQL and markdown.

Evidence enables analysts to deliver a polished business intelligence system using SQL and markdown

915 Dec 26, 2022
Data imputations library to preprocess datasets with missing data

Impyute is a library of missing data imputation algorithms. This library was designed to be super lightweight, here's a sneak peak at what impyute can do.

Elton Law 329 Dec 05, 2022
CS50 pset9: Using flask API to create a web application to exchange stocks' shares.

C$50 Finance In this guide we want to implement a website via which users can “register”, “login” “buy” and “sell” stocks, like below: Background If y

1 Jan 24, 2022
Very useful and necessary functions that simplify working with data

Additional-function-for-pandas Very useful and necessary functions that simplify working with data random_fill_nan(module_name, nan) - Replaces all sp

Alexander Goldian 2 Dec 02, 2021
EOD Historical Data Python Library (Unofficial)

EOD Historical Data Python Library (Unofficial) https://eodhistoricaldata.com Installation python3 -m pip install eodhistoricaldata Note Demo API key

Michael Whittle 20 Dec 22, 2022
Fitting thermodynamic models with pycalphad

ESPEI ESPEI, or Extensible Self-optimizing Phase Equilibria Infrastructure, is a tool for thermodynamic database development within the CALPHAD method

Phases Research Lab 42 Sep 12, 2022