spops

Data release supporting:

Here provide our database and a short python code to query it.

Credit

You are more than welcome to use our database in your research; we kindly ask you to cite our papers above. For questions or bugs, just ask me. Oh, and before you ask, SPopS means “Spinning black-hole binary POPulation Synthesis”. If you want to cite the database specifically, it’s DOI

Examples

To access the effective spin distribution and the LIGO detection rates of one specific model with python:

import spops
db=spops.database()
model = {"kicks":"70", "spins":"collapse", "tides":"time", "detector":"LIGO"}
var='chieff'
print(db(model,var))  
var='detectionrate'
print(db(model,var))

For the same population synthesis simulation, this is the mass ratio of black hole binaries detectable by a multiband LISA+CosmicExplorer network

model = {"kicks":"70", "spins":"collapse", "tides":"time", "detector":"LISACosmicExplorer", "Tobs":"10", "SNRthr":"8"}
var='q'
print(db(model,var))
var='detectionrate'
print(db(model,var))

Database

We provide a database in h5 format containing all population sysnthesis distributions perfomed with StarTrack and post-processed with precession.

The database’s size is ~17GB, and needs to be downloaded in chunks from the GitHub release page. Execute the following:

for i in $(seq -f "%02g" 0 16); do
wget "https://github.com/dgerosa/spops/releases/download/v0.2/spops.h5_"$i;
done
cat spops.h5_* > spops.h5; rm spops.h5_*

(on mac: `brew install wget’).

Models are described by the following options:

Not all options are required for all the variables (for instance, LISA duration does not need to be specified to access ground-only information).

The following variables are available:

Python module

We also provide a simple python module to query the database. spops is compatible with both Python 2 and Python 3 and can be installed from the Python Package index using:

pip install spops

Remember to download and assemble the database as described above. The module contains a single class, called database. To initialize the class:

import spops
db = spops.database(h5filename='spops.h5',h5dir=None)

The input parameters are:

The population sysnthesis run of interest can be specified using a python dictionary with the keys as above, so for instance

model = {"kicks":"70", "spins":"collapse", "tides":"time", "detector":"LIGO"}

One can then access the datasets described above by just calling the database class:

var='chieff'
print(db(model,var))

To list the model options and the available variables use

print(db.options)
print(db.vars)

A few technical notes: