No project description provided
Project description
ringdb
A gravitational event database that queries and locally saves event strain samples, detector PSDs and posterior samples.
Quick Start
from ringdb import Database
# Initialise the database in an empty folder you want your data stored
db = Database("./Data")
db.initialize()
# Pick an event of your choosing
event = db.event("GW190521")
# Query it for psds, posteriors and strain data for each detector
psd = event.psd()
posteriors = event.posteriors()
strains = event.strain()
Installation
From pip
This package can be downloaded directly from pip.
pip install ringdb
(Will error out for most non x86-64
setups, use Rosetta if on M1)
Virtual Environments
For the latest version, you can use make
to run and install the required things in a virtual environment. Replace VENV_PATH
with any path you're comfortable with making a folder in. First import once the venv is setup may be slow, but it will be fine after that.
git clone https://github.com/Potatoasad/ringdb
cd ringdb
make install VENV_PATH=/path/to/venv
. /path/to/venv/bin/activate
Usage:
Initialize
Set a folder in your computer somewhere where data will be saved (if the folder isn't there it will be created). Initialize a Database
object.
from ringdb import Database
# Sets up the database inside a folder called Data
db = Database("./Data")
db.initialize()
Get an object corresponding to a particular event, and query it for psds, posteriors or strain
first_event = db.event("GW150914")
Query
Now you can query a bunch of things from the Event
object. The most important are:
event.posteriors()
-> pandas Dataframe with all the posterior samplesevent.psd()
-> dictionary ofringdown.PowerSpectrum
objects (from the ringdown package) for each detectorevent.strain()
-> dictionary ofringdown.Data
objects (from the ringdown package) for each detector
Get a PSD
first_psd = first_event.psd() # Returns a dictionary labelled by detectors
type(first_psd['H1']) # Ringdown.PowerSpectrum object
Get posteriors
first_posteriors = first_event.posteriors() # Returns a pandas dataframe
type(first_posteriors) # pandas DataFrame with all the posteriors
Get the strain files
first_strain = first_event.strain() # Returns a dictionary labelled by detectors
type(first_strain['L1']) # Ringdown.Data object
Custom Queries
This doesn't work for GWTC-1 events, but will work for the rest
If you have a particular object you would like to pull from an hdf5 file that is not covered by the above, you can query it directly.
As an example, if I wanted to pull prior samples for the total mass. I know for example in GW200316_215756 they will be found in the directory:
/C01:IMRPhenomXPHM/priors/samples/total_mass
and it needs to read as an array
.
In general the path seems to follow /{approximant}/priors/samples/total_mass
. I can then call that for this event:
event = db.event("GW200316_215756")
total_mass_priors = event.read_posterior_file("/{approximant}/priors/samples/total_mass", datatype='array')
The database knows how to interpolate things like {approximant}
, {detector}
and{event}
, which correspond to the waveform name, the detectors and the event name.
If you happen to use a particular query a lot you can save it in the database schema, making subsequent accesses easier:
db.update_posterior_schema({'prior_total_mass': {'path': "/{approximant}/priors/samples/total_mass", 'type':'array'}})
total_mass_priors = event.read_posterior_file_from_schema('prior_total_mass')
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file ringdb-0.1.3.5.tar.gz
.
File metadata
- Download URL: ringdb-0.1.3.5.tar.gz
- Upload date:
- Size: 33.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.18
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | fbb8ff8d3c3bf617b0701c0ae17ffa9b80c47c202c3ad55d3806fe89916fbfe5 |
|
MD5 | 3a77b510ce252275c83dd5ddc61f5d15 |
|
BLAKE2b-256 | 333dba50f9d6d9f5703c4c0f83f1d87269a079445c39f867f0179cf78a343d0e |
File details
Details for the file ringdb-0.1.3.5-py3-none-any.whl
.
File metadata
- Download URL: ringdb-0.1.3.5-py3-none-any.whl
- Upload date:
- Size: 34.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.18
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 279ce2c5c1f36061e8cba5271b88545ff5458035b111509278240c37d6d83876 |
|
MD5 | 125dfb193f4526280783e10371b5ebf2 |
|
BLAKE2b-256 | 76e528252eb9d8c8a2933e30bc191048eb9decdcd3bfbb3bef992c45d755ab82 |