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
Synthetic Data Generation for tabular, relational and time series data.

An Open Source Project from the Data to AI Lab, at MIT Website: https://sdv.dev Documentation: https://sdv.dev/SDV User Guides Developer Guides Github

The Synthetic Data Vault Project 1.2k Jan 07, 2023
MeSH2Matrix - A set of Python codes for the generation of biomedical ontologies from the MeSH keywords of the PubMed scholarly publications

A set of Python codes for the generation of biomedical ontologies from the MeSH keywords of the PubMed scholarly publications

SisonkeBiotik 6 Nov 30, 2022
A forecasting system dedicated to smart city data

smart-city-predictions System prognostyczny dedykowany dla danych inteligentnych miast Praca inżynierska realizowana przez Michała Stawikowskiego and

Kevin Lai 1 Nov 08, 2021
Data-sets from the survey and analysis

bachelor-thesis "Umfragewerte.xlsx" contains the orginal survey results. "umfrage_alle.csv" contains the survey results but one participant is cancele

1 Jan 26, 2022
CaterApp is a cross platform, remotely data sharing tool created for sharing files in a quick and secured manner.

CaterApp is a cross platform, remotely data sharing tool created for sharing files in a quick and secured manner. It is aimed to integrate this tool with several more features including providing a U

Ravi Prakash 3 Jun 27, 2021
PipeChain is a utility library for creating functional pipelines.

PipeChain Motivation PipeChain is a utility library for creating functional pipelines. Let's start with a motivating example. We have a list of Austra

Michael Milton 2 Aug 07, 2022
An Aspiring Drop-In Replacement for NumPy at Scale

Legate NumPy is a Legate library that aims to provide a distributed and accelerated drop-in replacement for the NumPy API on top of the Legion runtime. Using Legate NumPy you do things like run the f

Legate 502 Jan 03, 2023
Top 50 best selling books on amazon

It's a dashboard that shows the detailed information about each book in the top 50 best selling books on amazon over the last ten years

Nahla Tarek 1 Nov 18, 2021
Py-price-monitoring - A Python price monitor

A Python price monitor This project was focused on Brazil, so the monitoring is

Samuel 1 Jan 04, 2022
An easy-to-use feature store

A feature store is a data storage system for data science and machine-learning. It can store raw data and also transformed features, which can be fed straight into an ML model or training script.

ByteHub AI 48 Dec 09, 2022
Flood modeling by 2D shallow water equation

hydraulicmodel Flood modeling by 2D shallow water equation. Refer to Hunter et al (2005), Bates et al. (2010). Diffusive wave approximation Local iner

6 Nov 30, 2022
BIGDATA SIMULATION ONE PIECE WORLD CENSUS

ONE PIECE is a Japanese manga of great international success. The story turns inhabited in a fictional world, tells the adventures of a young man whose body gained rubber properties after accidentall

Maycon Cypriano 3 Jun 30, 2022
AWS Glue ETL Code Samples

AWS Glue ETL Code Samples This repository has samples that demonstrate various aspects of the new AWS Glue service, as well as various AWS Glue utilit

AWS Samples 1.2k Jan 03, 2023
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 03, 2023
Sensitivity Analysis Library in Python (Numpy). Contains Sobol, Morris, Fractional Factorial and FAST methods.

Sensitivity Analysis Library (SALib) Python implementations of commonly used sensitivity analysis methods. Useful in systems modeling to calculate the

SALib 663 Jan 05, 2023
In this project, ETL pipeline is build on data warehouse hosted on AWS Redshift.

ETL Pipeline for AWS Project Description In this project, ETL pipeline is build on data warehouse hosted on AWS Redshift. The data is loaded from S3 t

Mobeen Ahmed 1 Nov 01, 2021
A project consists in a set of assignements corresponding to a BI process: data integration, construction of an OLAP cube, qurying of a OPLAP cube and reporting.

TennisBusinessIntelligenceProject - A project consists in a set of assignements corresponding to a BI process: data integration, construction of an OLAP cube, qurying of a OPLAP cube and reporting.

carlo paladino 1 Jan 02, 2022
Python scripts aim to use a Random Forest machine learning algorithm to predict the water affinity of Metal-Organic Frameworks

The following Python scripts aim to use a Random Forest machine learning algorithm to predict the water affinity of Metal-Organic Frameworks (MOFs). The training set is extracted from the Cambridge S

1 Jan 09, 2022
PySpark bindings for H3, a hierarchical hexagonal geospatial indexing system

h3-pyspark: Uber's H3 Hexagonal Hierarchical Geospatial Indexing System in PySpark PySpark bindings for the H3 core library. For available functions,

Kevin Schaich 12 Dec 24, 2022
talkbox is a scikit for signal/speech processing, to extend scipy capabilities in that domain.

talkbox is a scikit for signal/speech processing, to extend scipy capabilities in that domain.

David Cournapeau 76 Nov 30, 2022