cogwheel.gw_prior.pn.PNCoordinatesPrior¶
- class cogwheel.gw_prior.pn.PNCoordinatesPrior(eigvecs, f_ref, par_dic_0, mchirp_range, dmu=2.0, q_min=0.05, **kwargs)¶
Bases:
PriorImplement the coordinates for intrinsic parameters of [Lee, Morisaki & Tagoshi 2203.05216].
These are quite similar except we normalize the eigenvectors of the Fisher matrix by the square root of their eigenvalue, so the Fisher errorbars in (mu1, mu2) are 1/snr.
- Parameters:
- eigvecsfloat array of shape (3, 2)
Fisher matrix eigenvectors, see
.eigvecs_from_reference_waveform_finder().- f_reffloat
Reference frequency (Hz).
- q_minfloat
Minimum mass ratio
- **kwargs
Passed to super().__init__()
Methods
Return a float array of shape (3, 2) with the two main eigenvectors of the Fisher matrix in the space of the first 3 coefficients of the post-Newtonian expansion.
Sample the prior using rejection sampling.
Return a list of parameter names that map to given "fast" standard parameters.
Return keyword arguments to reproduce the class instance.
Name of the module that defines the instance's class.
Return parameters accepted by the class constructor.
Standard parameters to sampled parameters.
Add columns in-place for self.sampled_params to samples.
Natural log Jacobian determinant of the inverse transform.
Natural logarithm of the prior probability for (mu1, mu2, lnq, s2z) under a prior flat in detector-frame masses and volumetric in component spins.
Return log prior and standard parameters.
Return a new instance of the class, possibly updating init_kwargs.
Log prior density in standard coordinates.
Write class instance to json file.
Sampled parameters to standard parameters.
Add columns in-place for self.standard_params to samples.
Return a function that unfolds its parameters and applies func to each unfolding.
Attributes
conditioned_onfolded_paramsfolded_reflected_paramsfolded_shifted_paramsMaximum log prior density, useful for rejection sampling.
periodic_paramsrange_dicreflective_paramssampled_paramsstandard_paramssubclass_registry- static eigvecs_from_reference_waveform_finder(reference_waveform_finder)¶
Return a float array of shape (3, 2) with the two main eigenvectors of the Fisher matrix in the space of the first 3 coefficients of the post-Newtonian expansion.
These are the first 2 columns of
U.Tin the notation of [2203.05216], except that we normalize each eigenvector to have normsqrt(eigenvalue). This can be used as input to.__init__().
- generate_random_samples(n_samples, seed=None, return_lnz=False)¶
Sample the prior using rejection sampling.
This is more efficient for more uniform priors.
- Parameters:
- n_samplesint
How many samples to generate.
- seed
Passed to
numpy.default_rng, for reproducibility.
- Returns:
- samplespd.DataFrame
Columns are
.sampled_params + .standard_params, and rows are samples distributed according to the prior.- lnz, dlnzfloat, float
Log of the integral of the prior over the bounds, and estimate of the 1-sigma uncertainty. Only returned if return_lnz is set to
True. Useful for estimating the normalization constant of the prior. Note: This differs from the lnz that nested samplers (e.g. PyMultiNest or Nautilus) would compute, in that it has the phase-space volume differential applied. I.e. if lnprior == 0, lnz == log(prod(self.cubesize)) while nested samplers would return lnz == 0.
- classmethod get_fast_sampled_params(fast_standard_params)¶
Return a list of parameter names that map to given “fast” standard parameters.
Useful for sampling fast-slow parameters. Updating fast sampling parameters is guaranteed to only change fast standard parameters.
- get_init_dict(**kwargs)¶
Return keyword arguments to reproduce the class instance.
- get_module_name()¶
Name of the module that defines the instance’s class.
- classmethod init_parameters(include_optional=True)¶
Return parameters accepted by the class constructor.
The parameters are sorted by parameter kind (i.e. positional arguments first, keyword arguments last). The self parameter is excluded.
- Parameters:
- include_optionalbool
Whether to include parameters with defaults in the returned list.
- Returns:
- list of
inspect.Parameterobjects
- list of
- inverse_transform(m1, m2, s1z, s2z)¶
Standard parameters to sampled parameters.
- inverse_transform_samples(samples: DataFrame)¶
Add columns in-place for self.sampled_params to samples.
- Parameters:
- samplespandas.Dataframe
Must include columns for .standard_params and .conditioned_on.
- Raises:
- ValueError
If samples.index is not a simple range.
- ln_jacobian_determinant(m1, m2, s1z, s2z)¶
Natural log Jacobian determinant of the inverse transform.
- Returns:
- floatlog|∂{mu1, mu2, lnq, s2z} / ∂{m1, m2, s1z, s2z}|
- lnprior(mu1, mu2, lnq, s2z)¶
Natural logarithm of the prior probability for (mu1, mu2, lnq, s2z) under a prior flat in detector-frame masses and volumetric in component spins.
- lnprior_and_transform(*par_vals, **par_dic)¶
Return log prior and standard parameters.
The reason for this function is that for CombinedPrior it is already necessary to evaluate self.transform() in order to evaluate self.lnprior(). CombinedPrior overwrites this function so the user can get both lnprior and transform without evaluating transform twice.
- Returns:
- float
Log prior, output of .lnprior.
- dict
Standard parameters, output of .transform.
- property max_lnprior¶
Maximum log prior density, useful for rejection sampling.
- reinstantiate(**new_init_kwargs)¶
Return a new instance of the class, possibly updating init_kwargs.
Values not passed will be taken from the current instance.
- standard_lnprior(**parameters)¶
Log prior density in standard coordinates.
- Parameters:
- **parameters
Values for
.standard_paramsand.conditioned_onparameters.
- to_json(dirname, basename=None, *, dir_permissions=493, file_permissions=420, overwrite=False)¶
Write class instance to json file.
It can then be loaded with read_json.
- transform(mu1, mu2, lnq, s2z)¶
Sampled parameters to standard parameters.
- transform_samples(samples: DataFrame)¶
Add columns in-place for self.standard_params to samples.
- Parameters:
- samplespandas.Dataframe
Must include columns for .sampled_params and .conditioned_on.
- Raises:
- ValueError
If samples.index is not a simple range.
- unfold_apply(func, otypes=(<class 'float'>, ))¶
Return a function that unfolds its parameters and applies func to each unfolding.
The returned function returns a list of length 2**n_folds.
- Parameters:
- funccallable
A python function or method.
- otypesstr or list of dtypes
Output type, passed to
np.vectorize. You can passNoneto decide automatically, but then an extra function call will be made.
- Returns:
- callable
Unfolding function.