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) areeda@george: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) areeda@george: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
Amundsen is a metadata driven application for improving the productivity of data analysts, data scientists and engineers when interacting with data.

Amundsen is a metadata driven application for improving the productivity of data analysts, data scientists and engineers when interacting with data.

Amundsen 3.7k Jan 3, 2023
DaDRA (day-druh) is a Python library for Data-Driven Reachability Analysis.

DaDRA (day-druh) is a Python library for Data-Driven Reachability Analysis. The main goal of the package is to accelerate the process of computing estimates of forward reachable sets for nonlinear dynamical systems.

null 2 Nov 8, 2021
Retentioneering 581 Jan 7, 2023
🧪 Panel-Chemistry - exploratory data analysis and build powerful data and viz tools within the domain of Chemistry using Python and HoloViz Panel.

???? ??. The purpose of the panel-chemistry project is to make it really easy for you to do DATA ANALYSIS and build powerful DATA AND VIZ APPLICATIONS within the domain of Chemistry using using Python and HoloViz Panel.

Marc Skov Madsen 97 Dec 8, 2022
Tools for analyzing data collected with a custom unity-based VR for insects.

unityvr Tools for analyzing data collected with a custom unity-based VR for insects. Organization: The unityvr package contains the following submodul

Hannah Haberkern 1 Dec 14, 2022
A powerful data analysis package based on mathematical step functions. Strongly aligned with pandas.

The leading use-case for the staircase package is for the creation and analysis of step functions. Pretty exciting huh. But don't hit the close button

null 48 Dec 21, 2022
MetPy is a collection of tools in Python for reading, visualizing and performing calculations with weather data.

MetPy MetPy is a collection of tools in Python for reading, visualizing and performing calculations with weather data. MetPy follows semantic versioni

Unidata 971 Dec 25, 2022
A Pythonic introduction to methods for scaling your data science and machine learning work to larger datasets and larger models, using the tools and APIs you know and love from the PyData stack (such as numpy, pandas, and scikit-learn).

This tutorial's purpose is to introduce Pythonistas to methods for scaling their data science and machine learning work to larger datasets and larger models, using the tools and APIs they know and love from the PyData stack (such as numpy, pandas, and scikit-learn).

Coiled 102 Nov 10, 2022
Visions provides an extensible suite of tools to support common data analysis operations

Visions And these visions of data types, they kept us up past the dawn. Visions provides an extensible suite of tools to support common data analysis

null 168 Dec 28, 2022
Helper tools to construct probability distributions built from expert elicited data for use in monte carlo simulations.

Elicited Helper tools to construct probability distributions built from expert elicited data for use in monte carlo simulations. Credit to Brett Hoove

Ryan McGeehan 3 Nov 4, 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
Additional tools for particle accelerator data analysis and machine information

PyLHC Tools This package is a collection of useful scripts and tools for the Optics Measurements and Corrections group (OMC) at CERN. Documentation Au

PyLHC 3 Apr 13, 2022
Tools for working with MARC data in Catalogue Bridge.

catbridge_tools Tools for working with MARC data in Catalogue Bridge. Borrows heavily from PyMarc

null 1 Nov 11, 2021
Data cleaning tools for Business analysis

Datacleaning datacleaning tools for Business analysis This program is made for Vicky's work. You can use it, too. 数据清洗 该数据清洗工具是为了商业分析 这个程序是为了Vicky的工作而

Lin Jian 3 Nov 16, 2021
A collection of robust and fast processing tools for parsing and analyzing web archive data.

ChatNoir Resiliparse A collection of robust and fast processing tools for parsing and analyzing web archive data. Resiliparse is part of the ChatNoir

ChatNoir 24 Nov 29, 2022
Tools for the analysis, simulation, and presentation of Lorentz TEM data.

ltempy ltempy is a set of tools for Lorentz TEM data analysis, simulation, and presentation. Features Single Image Transport of Intensity Equation (SI

McMorran Lab 1 Dec 26, 2022
Python package for processing UC module spectral data.

UC Module Python Package How To Install clone repo. cd UC-module pip install . How to Use uc.module.UC(measurment=str, dark=str, reference=str, heade

Nicolai Haaber Junge 1 Oct 20, 2021
PyEmits, a python package for easy manipulation in time-series data.

PyEmits, a python package for easy manipulation in time-series data. Time-series data is very common in real life. Engineering FSI industry (Financial

Thompson 5 Sep 23, 2022
VevestaX is an open source Python package for ML Engineers and Data Scientists.

VevestaX Track failed and successful experiments as well as features. VevestaX is an open source Python package for ML Engineers and Data Scientists.

Vevesta 24 Dec 14, 2022