diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index d1572e049c48385afb8d9a75148da796cffb07a8..9b39700a97b97cf990846094ad00b33d9c483e05 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -10,11 +10,12 @@ # before the next stage begins stages: + - initial - test - deploy .test-python: &test-python - stage: test + stage: initial image: python before_script: # this is required because pytables doesn't use a wheel on py37 @@ -55,15 +56,30 @@ python-3.7: - coverage html - coverage-badge -o coverage_badge.svg -f + artifacts: + paths: + - coverage_badge.svg + - htmlcov/ + +docs: + stage: initial + image: quay.io/bilbydev/v2-dockerfile-test-suite-python37 + script: # Make the documentation + - apt-get -yqq install pandoc + - python -m pip install . - cd docs + - pip install ipykernel ipython jupyter + - cp ../examples/tutorials/*.ipynb ./ + - rm basic_ptmcmc_tutorial.ipynb + - rm compare_samplers.ipynb + - rm visualising_the_results.ipynb + - jupyter nbconvert --to notebook --execute *.ipynb --inplace - make clean - make html artifacts: paths: - - htmlcov/ - - coverage_badge.svg - docs/_build/html/ # test example on python 3.8 @@ -105,7 +121,7 @@ python-3.6-samplers: # Test containers are up to date containers: - stage: test + stage: initial image: quay.io/bilbydev/v2-dockerfile-test-suite-python37 script: - cd containers @@ -139,7 +155,7 @@ plotting: - pytest test/gw/plot_test.py authors: - stage: test + stage: initial image: quay.io/bilbydev/v2-dockerfile-test-suite-python37 script: - python test/check_author_list.py @@ -147,6 +163,7 @@ authors: pages: stage: deploy dependencies: + - docs - python-3.7 script: - mkdir public/ @@ -176,7 +193,7 @@ deploy_release: precommits-py3.7: - stage: test + stage: initial image: quay.io/bilbydev/v2-dockerfile-test-suite-python37 script: - source activate python37 diff --git a/bilby/core/grid.py b/bilby/core/grid.py index c469464bd7df9084ebf53cc3eca7b19fda86a789..ccc1e9d7dc24acace50f8b994973f760857a173e 100644 --- a/bilby/core/grid.py +++ b/bilby/core/grid.py @@ -14,7 +14,7 @@ def grid_file_name(outdir, label, gzip=False): """ Returns the standard filename used for a grid file Parameters - ---------- + ========== outdir: str Name of the output directory label: str @@ -23,7 +23,7 @@ def grid_file_name(outdir, label, gzip=False): Set to True to append `.gz` to the extension for saving in gzipped format Returns - ------- + ======= str: File name of the output file """ if gzip: @@ -39,7 +39,7 @@ class Grid(object): """ Parameters - ---------- + ========== likelihood: bilby.likelihood.Likelihood priors: bilby.prior.PriorDict grid_size: int, list, dict @@ -112,7 +112,7 @@ class Grid(object): Marginalize over a list of parameters. Parameters - ---------- + ========== log_array: array_like A :class:`numpy.ndarray` of log likelihood/posterior values. parameters: list, str @@ -123,7 +123,7 @@ class Grid(object): the set of parameter to *not* marginalize over. Returns - ------- + ======= out_array: array_like An array containing the marginalized log likelihood/posterior. """ @@ -162,7 +162,7 @@ class Grid(object): Marginalize the log likelihood/posterior over a single given parameter. Parameters - ---------- + ========== log_array: array_like A :class:`numpy.ndarray` of log likelihood/posterior values. name: str @@ -171,7 +171,7 @@ class Grid(object): A list of parameter names that have not been marginalized over. Returns - ------- + ======= out: array_like An array containing the marginalized log likelihood/posterior. """ @@ -218,14 +218,14 @@ class Grid(object): ln likelihood will be fully marginalized over. Parameters - ---------- + ========== parameters: str, list, optional Name of, or list of names of, the parameter(s) to marginalize over. not_parameters: str, optional Name of, or list of names of, the parameter(s) to not marginalize over. Returns - ------- + ======= array-like: The marginalized ln likelihood. """ @@ -239,14 +239,14 @@ class Grid(object): ln posterior will be fully marginalized over. Parameters - ---------- + ========== parameters: str, list, optional Name of, or list of names of, the parameter(s) to marginalize over. not_parameters: str, optional Name of, or list of names of, the parameter(s) to not marginalize over. Returns - ------- + ======= array-like: The marginalized ln posterior. """ @@ -260,14 +260,14 @@ class Grid(object): likelihood will be fully marginalized over. Parameters - ---------- + ========== parameters: str, list, optional Name of, or list of names of, the parameter(s) to marginalize over. not_parameters: str, optional Name of, or list of names of, the parameter(s) to not marginalize over. Returns - ------- + ======= array-like: The marginalized likelihood. """ @@ -283,14 +283,14 @@ class Grid(object): posterior will be fully marginalized over. Parameters - ---------- + ========== parameters: str, list, optional Name of, or list of names of, the parameter(s) to marginalize over. not_parameters: str, optional Name of, or list of names of, the parameter(s) to not marginalize over. Returns - ------- + ======= array-like: The marginalized posterior. """ @@ -375,7 +375,7 @@ class Grid(object): Writes the Grid to a file. Parameters - ---------- + ========== filename: str, optional Filename to write to (overwrites the default) overwrite: bool, optional @@ -418,7 +418,7 @@ class Grid(object): """ Read in a saved .json grid file Parameters - ---------- + ========== filename: str If given, try to load from this filename outdir, label: str @@ -429,11 +429,11 @@ class Grid(object): extension) Returns - ------- + ======= grid: bilby.core.grid.Grid Raises - ------- + ======= ValueError: If no filename is given and either outdir or label is None If no bilby.core.grid.Grid is found in the path diff --git a/bilby/core/likelihood.py b/bilby/core/likelihood.py index 06438a21e364b9d07ef6952434e21a3678fff4e0..8e8d0ebc5df732bcb40d6688702dba523b1c3937 100644 --- a/bilby/core/likelihood.py +++ b/bilby/core/likelihood.py @@ -13,7 +13,7 @@ class Likelihood(object): """Empty likelihood class to be subclassed by other likelihoods Parameters - ---------- + ========== parameters: dict A dictionary of the parameter names and associated values """ @@ -28,7 +28,7 @@ class Likelihood(object): """ Returns - ------- + ======= float """ return np.nan @@ -37,7 +37,7 @@ class Likelihood(object): """ Returns - ------- + ======= float """ return np.nan @@ -46,7 +46,7 @@ class Likelihood(object): """Difference between log likelihood and noise log likelihood Returns - ------- + ======= float """ return self.log_likelihood() - self.noise_log_likelihood() @@ -71,7 +71,7 @@ class ZeroLikelihood(Likelihood): """ A special test-only class which already returns zero likelihood Parameters - ---------- + ========== likelihood: bilby.core.likelihood.Likelihood A likelihood object to mimic @@ -98,7 +98,7 @@ class Analytical1DLikelihood(Likelihood): parameters are inferred from the arguments of function Parameters - ---------- + ========== x, y: array_like The data to analyse func: @@ -174,7 +174,7 @@ class GaussianLikelihood(Analytical1DLikelihood): parameters are inferred from the arguments of function Parameters - ---------- + ========== x, y: array_like The data to analyse func: @@ -235,7 +235,7 @@ class PoissonLikelihood(Analytical1DLikelihood): inferred from the arguments of function, which provides a rate. Parameters - ---------- + ========== x: array_like A dependent variable at which the Poisson rates will be calculated @@ -291,7 +291,7 @@ class ExponentialLikelihood(Analytical1DLikelihood): An exponential likelihood function. Parameters - ---------- + ========== x, y: array_like The data to analyse @@ -338,7 +338,7 @@ class StudentTLikelihood(Analytical1DLikelihood): https://en.wikipedia.org/wiki/Student%27s_t-distribution#Generalized_Student's_t-distribution Parameters - ---------- + ========== x, y: array_like The data to analyse func: @@ -410,7 +410,7 @@ class Multinomial(Likelihood): """ Parameters - ---------- + ========== data: array-like The number of objects in each class n_dimensions: int @@ -454,7 +454,7 @@ class AnalyticalMultidimensionalCovariantGaussian(Likelihood): with known analytic solution. Parameters - ---------- + ========== mean: array_like Array with the mean values of distribution cov: array_like @@ -484,7 +484,7 @@ class AnalyticalMultidimensionalBimodalCovariantGaussian(Likelihood): with known analytic solution. Parameters - ---------- + ========== mean_1: array_like Array with the mean value of the first mode mean_2: array_like @@ -523,7 +523,7 @@ class JointLikelihood(Likelihood): set consistently Parameters - ---------- + ========== *likelihoods: bilby.core.likelihood.Likelihood likelihoods to be combined parsed as arguments """ diff --git a/bilby/core/prior/analytical.py b/bilby/core/prior/analytical.py index a2aa4cac57a9ea2c44f0768fc697bdbca5ef520a..08e56a98d35d7a465e7f7c676c615904bffff19a 100644 --- a/bilby/core/prior/analytical.py +++ b/bilby/core/prior/analytical.py @@ -13,7 +13,7 @@ class DeltaFunction(Prior): """Dirac delta function prior, this always returns peak. Parameters - ---------- + ========== peak: float Peak value of the delta function name: str @@ -33,11 +33,11 @@ class DeltaFunction(Prior): """Rescale everything to the peak with the correct shape. Parameters - ---------- + ========== val: Union[float, int, array_like] Returns - ------- + ======= float: Rescaled probability, equivalent to peak """ self.test_valid_for_rescaling(val) @@ -47,11 +47,11 @@ class DeltaFunction(Prior): """Return the prior probability of val Parameters - ---------- + ========== val: Union[float, int, array_like] Returns - ------- + ======= Union[float, array_like]: np.inf if val = peak, 0 otherwise """ @@ -69,7 +69,7 @@ class PowerLaw(Prior): """Power law with bounds and alpha, spectral index Parameters - ---------- + ========== alpha: float Power law exponent parameter minimum: float @@ -97,12 +97,12 @@ class PowerLaw(Prior): This maps to the inverse CDF. This has been analytically solved for this case. Parameters - ---------- + ========== val: Union[float, int, array_like] Uniform probability Returns - ------- + ======= Union[float, array_like]: Rescaled probability """ self.test_valid_for_rescaling(val) @@ -116,11 +116,11 @@ class PowerLaw(Prior): """Return the prior probability of val Parameters - ---------- + ========== val: Union[float, int, array_like] Returns - ------- + ======= float: Prior probability of val """ if self.alpha == -1: @@ -134,11 +134,11 @@ class PowerLaw(Prior): """Return the logarithmic prior probability of val Parameters - ---------- + ========== val: Union[float, int, array_like] Returns - ------- + ======= float: """ @@ -170,7 +170,7 @@ class Uniform(Prior): """Uniform prior with bounds Parameters - ---------- + ========== minimum: float See superclass maximum: float @@ -195,12 +195,12 @@ class Uniform(Prior): This maps to the inverse CDF. This has been analytically solved for this case. Parameters - ---------- + ========== val: Union[float, int, array_like] Uniform probability Returns - ------- + ======= Union[float, array_like]: Rescaled probability """ self.test_valid_for_rescaling(val) @@ -210,11 +210,11 @@ class Uniform(Prior): """Return the prior probability of val Parameters - ---------- + ========== val: Union[float, int, array_like] Returns - ------- + ======= float: Prior probability of val """ return ((val >= self.minimum) & (val <= self.maximum)) / (self.maximum - self.minimum) @@ -223,11 +223,11 @@ class Uniform(Prior): """Return the log prior probability of val Parameters - ---------- + ========== val: Union[float, int, array_like] Returns - ------- + ======= float: log probability of val """ return xlogy(1, (val >= self.minimum) & (val <= self.maximum)) - xlogy(1, self.maximum - self.minimum) @@ -246,7 +246,7 @@ class LogUniform(PowerLaw): """Log-Uniform prior with bounds Parameters - ---------- + ========== minimum: float See superclass maximum: float @@ -278,7 +278,7 @@ class SymmetricLogUniform(Prior): maximum]. Parameters - ---------- + ========== minimum: float See superclass maximum: float @@ -303,12 +303,12 @@ class SymmetricLogUniform(Prior): This maps to the inverse CDF. This has been analytically solved for this case. Parameters - ---------- + ========== val: Union[float, int, array_like] Uniform probability Returns - ------- + ======= Union[float, array_like]: Rescaled probability """ self.test_valid_for_rescaling(val) @@ -330,11 +330,11 @@ class SymmetricLogUniform(Prior): """Return the prior probability of val Parameters - ---------- + ========== val: Union[float, int, array_like] Returns - ------- + ======= float: Prior probability of val """ val = np.abs(val) @@ -345,11 +345,11 @@ class SymmetricLogUniform(Prior): """Return the logarithmic prior probability of val Parameters - ---------- + ========== val: Union[float, int, array_like] Returns - ------- + ======= float: """ @@ -375,7 +375,7 @@ class Cosine(Prior): """Cosine prior with bounds Parameters - ---------- + ========== minimum: float See superclass maximum: float @@ -406,11 +406,11 @@ class Cosine(Prior): """Return the prior probability of val. Defined over [-pi/2, pi/2]. Parameters - ---------- + ========== val: Union[float, int, array_like] Returns - ------- + ======= float: Prior probability of val """ return np.cos(val) / 2 * self.is_in_prior_range(val) @@ -430,7 +430,7 @@ class Sine(Prior): """Sine prior with bounds Parameters - ---------- + ========== minimum: float See superclass maximum: float @@ -461,11 +461,11 @@ class Sine(Prior): """Return the prior probability of val. Defined over [0, pi]. Parameters - ---------- + ========== val: Union[float, int, array_like] Returns - ------- + ======= Union[float, array_like]: Prior probability of val """ return np.sin(val) / 2 * self.is_in_prior_range(val) @@ -484,7 +484,7 @@ class Gaussian(Prior): """Gaussian prior with mean mu and width sigma Parameters - ---------- + ========== mu: float Mean of the Gaussian prior sigma: @@ -507,7 +507,7 @@ class Gaussian(Prior): 'Rescale' a sample from the unit line element to the appropriate Gaussian prior. Parameters - ---------- + ========== val: Union[float, int, array_like] This maps to the inverse CDF. This has been analytically solved for this case. @@ -519,11 +519,11 @@ class Gaussian(Prior): """Return the prior probability of val. Parameters - ---------- + ========== val: Union[float, int, array_like] Returns - ------- + ======= Union[float, array_like]: Prior probability of val """ return np.exp(-(self.mu - val) ** 2 / (2 * self.sigma ** 2)) / (2 * np.pi) ** 0.5 / self.sigma @@ -532,11 +532,11 @@ class Gaussian(Prior): """Return the Log prior probability of val. Parameters - ---------- + ========== val: Union[float, int, array_like] Returns - ------- + ======= Union[float, array_like]: Prior probability of val """ @@ -559,7 +559,7 @@ class TruncatedGaussian(Prior): https://en.wikipedia.org/wiki/Truncated_normal_distribution Parameters - ---------- + ========== mu: float Mean of the Gaussian prior sigma: @@ -587,7 +587,7 @@ class TruncatedGaussian(Prior): """ Calculates the proper normalisation of the truncated Gaussian Returns - ------- + ======= float: Proper normalisation of the truncated Gaussian """ return (erf((self.maximum - self.mu) / 2 ** 0.5 / self.sigma) - erf( @@ -607,11 +607,11 @@ class TruncatedGaussian(Prior): """Return the prior probability of val. Parameters - ---------- + ========== val: Union[float, int, array_like] Returns - ------- + ======= float: Prior probability of val """ return np.exp(-(self.mu - val) ** 2 / (2 * self.sigma ** 2)) / (2 * np.pi) ** 0.5 \ @@ -635,7 +635,7 @@ class HalfGaussian(TruncatedGaussian): """A Gaussian with its mode at zero, and truncated to only be positive. Parameters - ---------- + ========== sigma: float See superclass name: str @@ -663,7 +663,7 @@ class LogNormal(Prior): https://en.wikipedia.org/wiki/Log-normal_distribution Parameters - ---------- + ========== mu: float Mean of the Gaussian prior sigma: @@ -699,11 +699,11 @@ class LogNormal(Prior): """Returns the prior probability of val. Parameters - ---------- + ========== val: Union[float, int, array_like] Returns - ------- + ======= Union[float, array_like]: Prior probability of val """ if isinstance(val, (float, int)): @@ -723,11 +723,11 @@ class LogNormal(Prior): """Returns the log prior probability of val. Parameters - ---------- + ========== val: Union[float, int, array_like] Returns - ------- + ======= Union[float, array_like]: Prior probability of val """ if isinstance(val, (float, int)): @@ -765,7 +765,7 @@ class Exponential(Prior): """Exponential prior with mean mu Parameters - ---------- + ========== mu: float Mean of the Exponential prior name: str @@ -794,11 +794,11 @@ class Exponential(Prior): """Return the prior probability of val. Parameters - ---------- + ========== val: Union[float, int, array_like] Returns - ------- + ======= Union[float, array_like]: Prior probability of val """ if isinstance(val, (float, int)): @@ -815,11 +815,11 @@ class Exponential(Prior): """Returns the log prior probability of val. Parameters - ---------- + ========== val: Union[float, int, array_like] Returns - ------- + ======= Union[float, array_like]: Prior probability of val """ if isinstance(val, (float, int)): @@ -853,7 +853,7 @@ class StudentT(Prior): https://en.wikipedia.org/wiki/Student%27s_t-distribution#Generalized_Student's_t-distribution Parameters - ---------- + ========== df: float Number of degrees of freedom for distribution mu: float @@ -902,11 +902,11 @@ class StudentT(Prior): """Return the prior probability of val. Parameters - ---------- + ========== val: Union[float, int, array_like] Returns - ------- + ======= Union[float, array_like]: Prior probability of val """ return np.exp(self.ln_prob(val)) @@ -915,11 +915,11 @@ class StudentT(Prior): """Returns the log prior probability of val. Parameters - ---------- + ========== val: Union[float, int, array_like] Returns - ------- + ======= Union[float, array_like]: Prior probability of val """ return gammaln(0.5 * (self.df + 1)) - gammaln(0.5 * self.df)\ @@ -941,7 +941,7 @@ class Beta(Prior): https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.beta.html Parameters - ---------- + ========== alpha: float first shape parameter beta: float @@ -981,11 +981,11 @@ class Beta(Prior): """Return the prior probability of val. Parameters - ---------- + ========== val: Union[float, int, array_like] Returns - ------- + ======= Union[float, array_like]: Prior probability of val """ return np.exp(self.ln_prob(val)) @@ -994,11 +994,11 @@ class Beta(Prior): """Returns the log prior probability of val. Parameters - ---------- + ========== val: Union[float, int, array_like] Returns - ------- + ======= Union[float, array_like]: Prior probability of val """ _ln_prob = xlogy(self.alpha - 1, val - self.minimum) + xlogy(self.beta - 1, self.maximum - val)\ @@ -1039,7 +1039,7 @@ class Logistic(Prior): https://en.wikipedia.org/wiki/Logistic_distribution Parameters - ---------- + ========== mu: float Mean of the distribution scale: float @@ -1086,11 +1086,11 @@ class Logistic(Prior): """Return the prior probability of val. Parameters - ---------- + ========== val: Union[float, int, array_like] Returns - ------- + ======= Union[float, array_like]: Prior probability of val """ return np.exp(self.ln_prob(val)) @@ -1099,11 +1099,11 @@ class Logistic(Prior): """Returns the log prior probability of val. Parameters - ---------- + ========== val: Union[float, int, array_like] Returns - ------- + ======= Union[float, array_like]: Prior probability of val """ return -(val - self.mu) / self.scale -\ @@ -1120,7 +1120,7 @@ class Cauchy(Prior): https://en.wikipedia.org/wiki/Cauchy_distribution Parameters - ---------- + ========== alpha: float Location parameter beta: float @@ -1164,11 +1164,11 @@ class Cauchy(Prior): """Return the prior probability of val. Parameters - ---------- + ========== val: Union[float, int, array_like] Returns - ------- + ======= Union[float, array_like]: Prior probability of val """ return 1. / self.beta / np.pi / (1. + ((val - self.alpha) / self.beta) ** 2) @@ -1177,11 +1177,11 @@ class Cauchy(Prior): """Return the log prior probability of val. Parameters - ---------- + ========== val: Union[float, int, array_like] Returns - ------- + ======= Union[float, array_like]: Log prior probability of val """ return - np.log(self.beta * np.pi) - np.log(1. + ((val - self.alpha) / self.beta) ** 2) @@ -1201,7 +1201,7 @@ class Gamma(Prior): https://en.wikipedia.org/wiki/Gamma_distribution Parameters - ---------- + ========== k: float The shape parameter theta: float @@ -1237,11 +1237,11 @@ class Gamma(Prior): """Return the prior probability of val. Parameters - ---------- + ========== val: Union[float, int, array_like] Returns - ------- + ======= Union[float, array_like]: Prior probability of val """ return np.exp(self.ln_prob(val)) @@ -1250,11 +1250,11 @@ class Gamma(Prior): """Returns the log prior probability of val. Parameters - ---------- + ========== val: Union[float, int, array_like] Returns - ------- + ======= Union[float, array_like]: Prior probability of val """ if isinstance(val, (float, int)): @@ -1288,7 +1288,7 @@ class ChiSquared(Gamma): https://en.wikipedia.org/wiki/Chi-squared_distribution Parameters - ---------- + ========== nu: int Number of degrees of freedom name: str @@ -1324,7 +1324,7 @@ class FermiDirac(Prior): is defined by Equation 22 of [1]_. Parameters - ---------- + ========== sigma: float (required) The range over which the attenuation of the distribution happens mu: float @@ -1341,7 +1341,7 @@ class FermiDirac(Prior): See superclass References - ---------- + ========== .. [1] M. Pitkin, M. Isi, J. Veitch & G. Woan, `arXiv:1705.08978v1 <https:arxiv.org/abs/1705.08978v1>`_, 2017. @@ -1370,14 +1370,14 @@ class FermiDirac(Prior): 'Rescale' a sample from the unit line element to the appropriate Fermi-Dirac prior. Parameters - ---------- + ========== val: Union[float, int, array_like] This maps to the inverse CDF. This has been analytically solved for this case, see Equation 24 of [1]_. References - ---------- + ========== .. [1] M. Pitkin, M. Isi, J. Veitch & G. Woan, `arXiv:1705.08978v1 <https:arxiv.org/abs/1705.08978v1>`_, 2017. @@ -1404,11 +1404,11 @@ class FermiDirac(Prior): """Return the prior probability of val. Parameters - ---------- + ========== val: Union[float, int, array_like] Returns - ------- + ======= float: Prior probability of val """ return np.exp(self.ln_prob(val)) @@ -1417,11 +1417,11 @@ class FermiDirac(Prior): """Return the log prior probability of val. Parameters - ---------- + ========== val: Union[float, int, array_like] Returns - ------- + ======= Union[float, array_like]: Log prior probability of val """ diff --git a/bilby/core/prior/base.py b/bilby/core/prior/base.py index 180693adb423046a5b8fd1f879128abb1f68ca9c..dc717ba36128bec960698ee1dedb27a4c21d8f4b 100644 --- a/bilby/core/prior/base.py +++ b/bilby/core/prior/base.py @@ -20,7 +20,7 @@ class Prior(object): """ Implements a Prior object Parameters - ---------- + ========== name: str, optional Name associated with prior. latex_label: str, optional @@ -57,7 +57,7 @@ class Prior(object): """Overrides the __call__ special method. Calls the sample method. Returns - ------- + ======= float: The return value of the sample method. """ return self.sample() @@ -85,12 +85,12 @@ class Prior(object): """Draw a sample from the prior Parameters - ---------- + ========== size: int or tuple of ints, optional See numpy.random.uniform docs Returns - ------- + ======= float: A random number between 0 and 1, rescaled to match the distribution of this Prior """ @@ -104,12 +104,12 @@ class Prior(object): This should be overwritten by each subclass. Parameters - ---------- + ========== val: Union[float, int, array_like] A random number between 0 and 1 Returns - ------- + ======= None """ @@ -119,11 +119,11 @@ class Prior(object): """Return the prior probability of val, this should be overwritten Parameters - ---------- + ========== val: Union[float, int, array_like] Returns - ------- + ======= np.nan """ @@ -146,11 +146,11 @@ class Prior(object): """Return the prior ln probability of val, this should be overwritten Parameters - ---------- + ========== val: Union[float, int, array_like] Returns - ------- + ======= np.nan """ @@ -160,11 +160,11 @@ class Prior(object): """Returns True if val is in the prior boundaries, zero otherwise Parameters - ---------- + ========== val: Union[float, int, array_like] Returns - ------- + ======= np.nan """ @@ -175,11 +175,11 @@ class Prior(object): """Test if 0 < val < 1 Parameters - ---------- + ========== val: Union[float, int, array_like] Raises - ------- + ======= ValueError: If val is not between 0 and 1 """ valarray = np.atleast_1d(val) @@ -194,7 +194,7 @@ class Prior(object): Works correctly for all child classes Returns - ------- + ======= str: A string representation of this instance """ @@ -224,7 +224,7 @@ class Prior(object): Returns - ------- + ======= bool: Whether it's fixed or not! """ @@ -237,7 +237,7 @@ class Prior(object): Draws from a set of default labels if no label is given Returns - ------- + ======= str: A latex representation for this prior """ @@ -392,17 +392,17 @@ class Prior(object): Parameters - ---------- + ========== val: str The string version of the agument Returns - ------- + ======= val: object The parsed version of the argument. Raises - ------ + ====== TypeError: If val cannot be parsed as described above. """ diff --git a/bilby/core/prior/conditional.py b/bilby/core/prior/conditional.py index 80cdbb91acfb3a49342aad479ef8881c27cca71d..fbe48469dfdc71b5a38bfa5d50fa242f3478867e 100644 --- a/bilby/core/prior/conditional.py +++ b/bilby/core/prior/conditional.py @@ -15,7 +15,7 @@ def conditional_prior_factory(prior_class): """ Parameters - ---------- + ========== condition_func: func Functional form of the condition for this prior. The first function argument has to be a dictionary for the `reference_params` (see below). The following @@ -27,10 +27,14 @@ def conditional_prior_factory(prior_class): `p(x|y)` with the boundaries linearly depending on y, then this could have the following form: - ``` - def condition_func(reference_params, y): - return dict(minimum=reference_params['minimum'] + y, maximum=reference_params['maximum'] + y) - ``` + .. code-block:: python + + def condition_func(reference_params, y): + return dict( + minimum=reference_params['minimum'] + y, + maximum=reference_params['maximum'] + y + ) + name: str, optional See superclass latex_label: str, optional @@ -61,14 +65,14 @@ def conditional_prior_factory(prior_class): """Draw a sample from the prior Parameters - ---------- + ========== size: int or tuple of ints, optional See superclass required_variables: Any required variables that this prior depends on Returns - ------- + ======= float: See superclass """ @@ -80,7 +84,7 @@ def conditional_prior_factory(prior_class): 'Rescale' a sample from the unit line element to the prior. Parameters - ---------- + ========== val: Union[float, int, array_like] See superclass required_variables: @@ -95,7 +99,7 @@ def conditional_prior_factory(prior_class): """Return the prior probability of val. Parameters - ---------- + ========== val: Union[float, int, array_like] See superclass required_variables: @@ -103,7 +107,7 @@ def conditional_prior_factory(prior_class): Returns - ------- + ======= float: Prior probability of val """ self.update_conditions(**required_variables) @@ -113,7 +117,7 @@ def conditional_prior_factory(prior_class): """Return the natural log prior probability of val. Parameters - ---------- + ========== val: Union[float, int, array_like] See superclass required_variables: @@ -121,7 +125,7 @@ def conditional_prior_factory(prior_class): Returns - ------- + ======= float: Natural log prior probability of val """ self.update_conditions(**required_variables) @@ -131,7 +135,7 @@ def conditional_prior_factory(prior_class): """Return the cdf of val. Parameters - ---------- + ========== val: Union[float, int, array_like] See superclass required_variables: @@ -139,7 +143,7 @@ def conditional_prior_factory(prior_class): Returns - ------- + ======= float: CDF of val """ self.update_conditions(**required_variables) @@ -154,7 +158,7 @@ def conditional_prior_factory(prior_class): If no variables are given, the most recently used conditional parameters are kept Parameters - ---------- + ========== required_variables: Any required variables that this prior depends on. If none are given, self.reference_params will be used. @@ -217,7 +221,7 @@ def conditional_prior_factory(prior_class): Works correctly for all child classes Returns - ------- + ======= str: A string representation of this instance """ @@ -234,49 +238,116 @@ def conditional_prior_factory(prior_class): return ConditionalPrior -ConditionalBasePrior = conditional_prior_factory(Prior) # Only for testing purposes -ConditionalUniform = conditional_prior_factory(Uniform) -ConditionalDeltaFunction = conditional_prior_factory(DeltaFunction) -ConditionalPowerLaw = conditional_prior_factory(PowerLaw) -ConditionalGaussian = conditional_prior_factory(Gaussian) -ConditionalLogUniform = conditional_prior_factory(LogUniform) -ConditionalSymmetricLogUniform = conditional_prior_factory(SymmetricLogUniform) -ConditionalCosine = conditional_prior_factory(Cosine) -ConditionalSine = conditional_prior_factory(Sine) -ConditionalTruncatedGaussian = conditional_prior_factory(TruncatedGaussian) -ConditionalHalfGaussian = conditional_prior_factory(HalfGaussian) -ConditionalLogNormal = conditional_prior_factory(LogNormal) -ConditionalExponential = conditional_prior_factory(Exponential) -ConditionalStudentT = conditional_prior_factory(StudentT) -ConditionalBeta = conditional_prior_factory(Beta) -ConditionalLogistic = conditional_prior_factory(Logistic) -ConditionalCauchy = conditional_prior_factory(Cauchy) -ConditionalGamma = conditional_prior_factory(Gamma) -ConditionalChiSquared = conditional_prior_factory(ChiSquared) -ConditionalFermiDirac = conditional_prior_factory(FermiDirac) -ConditionalInterped = conditional_prior_factory(Interped) +class ConditionalBasePrior(conditional_prior_factory(Prior)): + pass + + +class ConditionalUniform(conditional_prior_factory(Uniform)): + pass + + +class ConditionalDeltaFunction(conditional_prior_factory(DeltaFunction)): + pass + + +class ConditionalPowerLaw(conditional_prior_factory(PowerLaw)): + pass + + +class ConditionalGaussian(conditional_prior_factory(Gaussian)): + pass + + +class ConditionalLogUniform(conditional_prior_factory(LogUniform)): + pass + + +class ConditionalSymmetricLogUniform(conditional_prior_factory(SymmetricLogUniform)): + pass + + +class ConditionalCosine(conditional_prior_factory(Cosine)): + pass + + +class ConditionalSine(conditional_prior_factory(Sine)): + pass + + +class ConditionalTruncatedGaussian(conditional_prior_factory(TruncatedGaussian)): + pass + + +class ConditionalHalfGaussian(conditional_prior_factory(HalfGaussian)): + pass + + +class ConditionalLogNormal(conditional_prior_factory(LogNormal)): + pass + + +class ConditionalExponential(conditional_prior_factory(Exponential)): + pass + + +class ConditionalStudentT(conditional_prior_factory(StudentT)): + pass + + +class ConditionalBeta(conditional_prior_factory(Beta)): + pass + + +class ConditionalLogistic(conditional_prior_factory(Logistic)): + pass + + +class ConditionalCauchy(conditional_prior_factory(Cauchy)): + pass + + +class ConditionalGamma(conditional_prior_factory(Gamma)): + pass + + +class ConditionalChiSquared(conditional_prior_factory(ChiSquared)): + pass + + +class ConditionalFermiDirac(conditional_prior_factory(FermiDirac)): + pass + + +class ConditionalInterped(conditional_prior_factory(Interped)): + pass class DirichletElement(ConditionalBeta): - """ + r""" Single element in a dirichlet distribution The probability scales as - $p(x_order) \propto (x_max - x_order)^(n_dimensions - order - 2)$ + .. math:: + p(x_n) \propto (x_\max - x_n)^{(N - n - 2)} - for x_order < x_max, where x_max is the sum of x_i for i < order + for :math:`x_n < x_\max`, where :math:`x_\max` is the sum of :math:`x_i` + for :math:`i < n` Examples - -------- + ======== n_dimensions = 1: - p(x_0) \propto 1 ; 0 < x_0 < 1 + + .. math:: + p(x_0) \propto 1 ; 0 < x_0 < 1 + n_dimensions = 2: - p(x_0) \propto (1 - x_0) ; 0 < x_0 < 1 - p(x_1) \propto 1 ; 0 < x_1 < 1 + .. math:: + p(x_0) &\propto (1 - x_0) ; 0 < x_0 < 1 + p(x_1) &\propto 1 ; 0 < x_1 < 1 Parameters - ---------- + ========== order: int Order of this element of the dirichlet distribution. n_dimensions: int @@ -284,9 +355,11 @@ class DirichletElement(ConditionalBeta): label: str Label for the dirichlet distribution. This should be the same for all elements. + """ def __init__(self, order, n_dimensions, label): + """ """ super(DirichletElement, self).__init__( minimum=0, maximum=1, alpha=1, beta=n_dimensions - order - 1, name=label + str(order), diff --git a/bilby/core/prior/dict.py b/bilby/core/prior/dict.py index 2aac6dfa97cd2fa1e4f7e9b9cfbf3d47e36cfc74..f05f7d3d398328b90d97d5c7c87e4be53cafbca6 100644 --- a/bilby/core/prior/dict.py +++ b/bilby/core/prior/dict.py @@ -18,7 +18,7 @@ class PriorDict(dict): """ A dictionary of priors Parameters - ---------- + ========== dictionary: Union[dict, str, None] If given, a dictionary to generate the prior set. filename: Union[str, None] @@ -60,12 +60,12 @@ class PriorDict(dict): Placeholder parameter conversion function. Parameters - ---------- + ========== sample: dict Dictionary to convert Returns - ------- + ======= sample: dict Same as input """ @@ -75,7 +75,7 @@ class PriorDict(dict): """ Write the prior distribution to file. Parameters - ---------- + ========== outdir: str output directory name label: str @@ -123,18 +123,20 @@ class PriorDict(dict): """ Reads in a prior from a file specification Parameters - ---------- + ========== filename: str Name of the file to be read in Notes - ----- + ===== Lines beginning with '#' or empty lines will be ignored. Priors can be loaded from: - bilby.core.prior as, e.g., foo = Uniform(minimum=0, maximum=1) - floats, e.g., foo = 1 - bilby.gw.prior as, e.g., foo = bilby.gw.prior.AlignedSpin() - other external modules, e.g., foo = my.module.CustomPrior(...) + + - bilby.core.prior as, e.g., :code:`foo = Uniform(minimum=0, maximum=1)` + - floats, e.g., :code:`foo = 1` + - bilby.gw.prior as, e.g., :code:`foo = bilby.gw.prior.AlignedSpin()` + - other external modules, e.g., :code:`foo = my.module.CustomPrior(...)` + """ comments = ['#', '\n'] @@ -174,7 +176,7 @@ class PriorDict(dict): """ Reads in a prior from a json file Parameters - ---------- + ========== filename: str Name of the file to be read in """ @@ -264,7 +266,7 @@ class PriorDict(dict): this will set-up default priors for those as well. Parameters - ---------- + ========== likelihood: bilby.likelihood.GravitationalWaveTransient instance Used to infer the set of parameters to fill the prior with default_priors_file: str, optional @@ -272,7 +274,7 @@ class PriorDict(dict): Returns - ------- + ======= prior: dict The filled prior dictionary @@ -301,12 +303,12 @@ class PriorDict(dict): """Draw samples from the prior set Parameters - ---------- + ========== size: int or tuple of ints, optional See numpy.random.uniform docs Returns - ------- + ======= dict: Dictionary of the samples """ return self.sample_subset_constrained(keys=list(self.keys()), size=size) @@ -315,14 +317,14 @@ class PriorDict(dict): """ Return an array of samples Parameters - ---------- + ========== keys: list A list of keys to sample in size: int The number of samples to draw Returns - ------- + ======= array: array_like An array of shape (len(key), size) of the samples (ordered by keys) """ @@ -335,14 +337,14 @@ class PriorDict(dict): """Draw samples from the prior set for parameters which are not a DeltaFunction Parameters - ---------- + ========== keys: list List of prior keys to draw samples from size: int or tuple of ints, optional See numpy.random.uniform docs Returns - ------- + ======= dict: Dictionary of the drawn samples """ self.convert_floats_to_delta_functions() @@ -407,14 +409,14 @@ class PriorDict(dict): """ Parameters - ---------- + ========== sample: dict Dictionary of the samples of which we want to have the probability of kwargs: The keyword arguments are passed directly to `np.product` Returns - ------- + ======= float: Joint probability of all individual sample probabilities """ @@ -440,14 +442,14 @@ class PriorDict(dict): """ Parameters - ---------- + ========== sample: dict Dictionary of the samples of which to calculate the log probability axis: None or int Axis along which the summation is performed Returns - ------- + ======= float or ndarray: Joint log probability of all the individual sample probabilities @@ -474,14 +476,14 @@ class PriorDict(dict): """Rescale samples from unit cube to prior Parameters - ---------- + ========== keys: list List of prior keys to be rescaled theta: list List of randomly drawn values on a unit cube associated with the prior keys Returns - ------- + ======= list: List of floats containing the rescaled sample """ return list(flatten([self[key].rescale(sample) for key, sample in zip(keys, theta)])) @@ -494,8 +496,8 @@ class PriorDict(dict): """ Test whether there are redundant keys in self. - Return - ------ + Returns + ======= bool: Whether there are redundancies or not """ redundant = False @@ -536,7 +538,7 @@ class ConditionalPriorDict(PriorDict): """ Parameters - ---------- + ========== dictionary: dict See parent class filename: str @@ -615,12 +617,12 @@ class ConditionalPriorDict(PriorDict): """ Returns the required variables to sample a given conditional key. Parameters - ---------- + ========== key : str Name of the key that we want to know the required variables for Returns - ---------- + ========== dict: key/value pairs of the required variables """ return {k: self[k].least_recently_sampled for k in getattr(self[key], 'required_variables', [])} @@ -629,14 +631,14 @@ class ConditionalPriorDict(PriorDict): """ Parameters - ---------- + ========== sample: dict Dictionary of the samples of which we want to have the probability of kwargs: The keyword arguments are passed directly to `np.product` Returns - ------- + ======= float: Joint probability of all individual sample probabilities """ @@ -650,14 +652,14 @@ class ConditionalPriorDict(PriorDict): """ Parameters - ---------- + ========== sample: dict Dictionary of the samples of which we want to have the log probability of axis: Union[None, int] Axis along which the summation is performed Returns - ------- + ======= float: Joint log probability of all the individual sample probabilities """ @@ -671,14 +673,14 @@ class ConditionalPriorDict(PriorDict): """Rescale samples from unit cube to prior Parameters - ---------- + ========== keys: list List of prior keys to be rescaled theta: list List of randomly drawn values on a unit cube associated with the prior keys Returns - ------- + ======= list: List of floats containing the rescaled sample """ self._check_resolved() @@ -774,14 +776,14 @@ def create_default_prior(name, default_priors_file=None): """Make a default prior for a parameter with a known name. Parameters - ---------- + ========== name: str Parameter name default_priors_file: str, optional If given, a file containing the default priors. - Return - ------ + Returns + ====== prior: Prior Default prior distribution for that parameter, if unknown None is returned. diff --git a/bilby/core/prior/interpolated.py b/bilby/core/prior/interpolated.py index 7e5eb8f3e7b51097b0ab3d78229806daa44d6b17..992a75b50ab8c2a0647f9b42c896786ed4aec08c 100644 --- a/bilby/core/prior/interpolated.py +++ b/bilby/core/prior/interpolated.py @@ -13,7 +13,7 @@ class Interped(Prior): """Creates an interpolated prior function from arrays of xx and yy=p(xx) Parameters - ---------- + ========== xx: array_like x values for the to be interpolated prior function yy: array_like @@ -32,7 +32,7 @@ class Interped(Prior): See superclass Attributes - ---------- + ========== probability_density: scipy.interpolate.interp1d Interpolated prior probability distribution cumulative_distribution: scipy.interpolate.interp1d @@ -69,11 +69,11 @@ class Interped(Prior): """Return the prior probability of val. Parameters - ---------- + ========== val: Union[float, int, array_like] Returns - ------- + ======= Union[float, array_like]: Prior probability of val """ return self.probability_density(val) @@ -102,7 +102,7 @@ class Interped(Prior): Yields an error if value is set below instantiated x-array minimum. Returns - ------- + ======= float: Minimum of the prior distribution """ @@ -125,7 +125,7 @@ class Interped(Prior): Yields an error if value is set above instantiated x-array maximum. Returns - ------- + ======= float: Maximum of the prior distribution """ @@ -146,7 +146,7 @@ class Interped(Prior): Updates the prior distribution if it is changed Returns - ------- + ======= array_like: p(xx) values """ @@ -182,7 +182,7 @@ class FromFile(Interped): """Creates an interpolated prior function from arrays of xx and yy=p(xx) extracted from a file Parameters - ---------- + ========== file_name: str Name of the file containing the xx and yy arrays minimum: float diff --git a/bilby/core/prior/joint.py b/bilby/core/prior/joint.py index d2058d074414b14a90ebd2837c80e4287aa3cf35..b3ee2f0b88a38d1da374f87173a68ad402ce9c82 100644 --- a/bilby/core/prior/joint.py +++ b/bilby/core/prior/joint.py @@ -15,7 +15,7 @@ class BaseJointPriorDist(object): Parameters - ---------- + ========== names: list (required) A list of the parameter names in the JointPriorDist. The listed parameters must have the same order that they appear in @@ -125,7 +125,7 @@ class BaseJointPriorDist(object): Works correctly for all child classes Returns - ------- + ======= str: A string representation of this instance """ @@ -149,14 +149,14 @@ class BaseJointPriorDist(object): probability will not be properly normalised. Parameters - ---------- + ========== value: array_like A 1d vector of the sample, or 2d array of sample values with shape NxM, where N is the number of samples and M is the number of parameters. Returns - ------- + ======= samp: array_like returns the input value as a sample array outbounds: array_like @@ -185,7 +185,7 @@ class BaseJointPriorDist(object): probability will not be properly normalised. Parameters - ---------- + ========== value: array_like A 1d vector of the sample, or 2d array of sample values with shape NxM, where N is the number of samples and M is the number of @@ -206,7 +206,7 @@ class BaseJointPriorDist(object): probability will not be properly normalised. **this method needs overwritten by child class** Parameters - ---------- + ========== samp: vector sample to evaluate the ln_prob at lnprob: vector @@ -215,7 +215,7 @@ class BaseJointPriorDist(object): boolean array showing which samples in lnprob vector are out of the given bounds Returns - ------- + ======= lnprob: vector array of lnprob values for each sample given """ @@ -229,7 +229,7 @@ class BaseJointPriorDist(object): Draw, and set, a sample from the Dist, accompanying method _sample needs to overwritten Parameters - ---------- + ========== size: int number of samples to generate, defualts to 1 """ @@ -248,7 +248,7 @@ class BaseJointPriorDist(object): Draw, and set, a sample from the joint dist (**needs to be ovewritten by child class**) Parameters - ---------- + ========== size: int number of samples to generate, defualts to 1 """ @@ -265,7 +265,7 @@ class BaseJointPriorDist(object): overwrite accompanying method _rescale(). Parameters - ---------- + ========== value: array A 1d vector sample (one for each parameter) drawn from a uniform distribution between 0 and 1, or a 2d NxM array of samples where @@ -275,7 +275,7 @@ class BaseJointPriorDist(object): args are called in the JointPrior rescale methods for each parameter Returns - ------- + ======= array: An vector sample drawn from the multivariate Gaussian distribution. @@ -297,7 +297,7 @@ class BaseJointPriorDist(object): rescale a sample from a unit hypercybe to the joint dist (**needs to be ovewritten by child class**) Parameters - ---------- + ========== samp: numpy array this is a vector sample drawn from a uniform distribtuion to be rescaled to the distribution """ @@ -322,7 +322,7 @@ class MultivariateGaussianDist(BaseJointPriorDist): MultiNest. Parameters - ---------- + ========== names: list A list of the parameter names in the multivariate Gaussian. The listed parameters must have the same order that they appear in @@ -656,7 +656,7 @@ class JointPrior(Prior): """This defines the single parameter Prior object for parameters that belong to a JointPriorDist Parameters - ---------- + ========== dist: ChildClass of BaseJointPriorDist The shared JointPriorDistribution that this parameter belongs to name: str @@ -699,13 +699,13 @@ class JointPrior(Prior): Scale a unit hypercube sample to the prior. Parameters - ---------- + ========== val: array_like value drawn from unit hypercube to be rescaled onto the prior kwargs: dict all kwargs passed to the dist.rescale method Returns - ------- + ======= float: A sample from the prior paramter. """ @@ -726,13 +726,13 @@ class JointPrior(Prior): Draw a sample from the prior. Parameters - ---------- + ========== size: int, float (defaults to 1) number of samples to draw kwargs: dict kwargs passed to the dist.sample method Returns - ------- + ======= float: A sample from the prior paramter. """ @@ -764,11 +764,11 @@ class JointPrior(Prior): distribution. Parameters - ---------- + ========== val: array_like value to evaluate the prior log-prob at Returns - ------- + ======= float: the logp value for the prior at given sample """ @@ -816,12 +816,12 @@ class JointPrior(Prior): """Return the prior probability of val Parameters - ---------- + ========== val: array_like value to evaluate the prior prob at Returns - ------- + ======= float: the p value for the prior at given sample """ diff --git a/bilby/core/prior/slabspike.py b/bilby/core/prior/slabspike.py index de7dc48ad5ae0004a38ec538a4acb82673b57753..54872b8b1c1bcdea91ad567bb85a707207c36b52 100644 --- a/bilby/core/prior/slabspike.py +++ b/bilby/core/prior/slabspike.py @@ -16,7 +16,7 @@ class SlabSpikePrior(Prior): `SymmetricLogUniform` and `FermiDirac` are currently not supported. Parameters - ---------- + ========== slab: Prior Any instance of a bilby prior class. All general prior attributes from the slab are copied into the SlabSpikePrior. @@ -76,12 +76,12 @@ class SlabSpikePrior(Prior): 'Rescale' a sample from the unit line element to the prior. Parameters - ---------- + ========== val: Union[float, int, array_like] A random number between 0 and 1 Returns - ------- + ======= array_like: Associated prior value with input value. """ val = np.atleast_1d(val) @@ -104,12 +104,12 @@ class SlabSpikePrior(Prior): on the pure slab part of the prior. Parameters - ---------- + ========== val: Union[float, int, array_like] A random number between 0 and self.slab_fraction Returns - ------- + ======= array_like: Associated prior value with input value. """ return self.slab.rescale(val / self.slab_fraction) @@ -119,11 +119,11 @@ class SlabSpikePrior(Prior): Returns np.inf for the spike location Parameters - ---------- + ========== val: Union[float, int, array_like] Returns - ------- + ======= array_like: Prior probability of val """ res = self.slab.prob(val) * self.slab_fraction @@ -136,11 +136,11 @@ class SlabSpikePrior(Prior): Returns np.inf for the spike location Parameters - ---------- + ========== val: Union[float, int, array_like] Returns - ------- + ======= array_like: Prior probability of val """ res = self.slab.ln_prob(val) + np.log(self.slab_fraction) @@ -154,11 +154,11 @@ class SlabSpikePrior(Prior): at the spike location. Parameters - ---------- + ========== val: Union[float, int, array_like] Returns - ------- + ======= array_like: CDF value of val """ diff --git a/bilby/core/result.py b/bilby/core/result.py index e2855797a79e81be860a06376367dad7765d8766..d4f544d5ed892a5a47ba233b5b668769dac4211c 100644 --- a/bilby/core/result.py +++ b/bilby/core/result.py @@ -31,7 +31,7 @@ def result_file_name(outdir, label, extension='json', gzip=False): """ Returns the standard filename used for a result file Parameters - ---------- + ========== outdir: str Name of the output directory label: str @@ -42,7 +42,7 @@ def result_file_name(outdir, label, extension='json', gzip=False): Set to True to append `.gz` to the extension for saving in gzipped format Returns - ------- + ======= str: File name of the output file """ if extension in ['json', 'hdf5']: @@ -69,7 +69,7 @@ def read_in_result(filename=None, outdir=None, label=None, extension='json', gzi """ Reads in a stored bilby result object Parameters - ---------- + ========== filename: str Path to the file to be read (alternative to giving the outdir and label) outdir, label, extension: str @@ -103,7 +103,7 @@ def get_weights_for_reweighting( See bilby.core.result.reweight() for help with the inputs Returns - ------- + ======= ln_weights: array An array of the natural-log weights new_log_likelihood_array: array @@ -156,14 +156,14 @@ def rejection_sample(posterior, weights): """ Perform rejection sampling on a posterior using weights Parameters - ---------- + ========== posterior: pd.DataFrame or np.ndarray of shape (nsamples, nparameters) The dataframe or array containing posterior samples weights: np.ndarray An array of weights Returns - ------- + ======= reweighted_posterior: pd.DataFrame The posterior resampled using rejection sampling @@ -177,7 +177,7 @@ def reweight(result, label=None, new_likelihood=None, new_prior=None, """ Reweight a result to a new likelihood/prior using rejection sampling Parameters - ---------- + ========== label: str, optional An updated label to apply to the result object new_likelihood: bilby.core.likelood.Likelihood, (optional) @@ -194,7 +194,7 @@ def reweight(result, label=None, new_likelihood=None, new_prior=None, the values stored in the posterior are used. Returns - ------- + ======= result: bilby.core.result.Result A copy of the result object with a reweighted posterior @@ -247,7 +247,7 @@ class Result(object): """ A class to store the results of the sampling run Parameters - ---------- + ========== label, outdir, sampler: str The label, output directory, and sampler used search_parameter_keys, fixed_parameter_keys, constraint_parameter_keys: list @@ -295,8 +295,8 @@ class Result(object): Version information for software used to generate the result. Note, this information is generated when the result object is initialized - Note - --------- + Notes + ========= All sampling output parameters, e.g. the samples themselves are typically not given at initialisation, but set at a later stage. @@ -340,18 +340,18 @@ class Result(object): """ Read in a saved .h5 data file Parameters - ---------- + ========== filename: str If given, try to load from this filename outdir, label: str If given, use the default naming convention for saved results file Returns - ------- + ======= result: bilby.core.result.Result Raises - ------- + ======= ValueError: If no filename is given and either outdir or label is None If no bilby.core.result.Result is found in the path @@ -396,18 +396,18 @@ class Result(object): """ Read in a saved .json data file Parameters - ---------- + ========== filename: str If given, try to load from this filename outdir, label: str If given, use the default naming convention for saved results file Returns - ------- + ======= result: bilby.core.result.Result Raises - ------- + ======= ValueError: If no filename is given and either outdir or label is None If no bilby.core.result.Result is found in the path @@ -595,7 +595,7 @@ class Result(object): Writes the Result to a json or deepdish h5 file Parameters - ---------- + ========== filename: optional, Filename to write to (overwrites the default) overwrite: bool, optional @@ -663,7 +663,7 @@ class Result(object): abs appended to the column name Parameters - ---------- + ========== filename: str Alternative filename to use. Defaults to outdir/label_posterior_samples.dat @@ -697,12 +697,12 @@ class Result(object): """ Returns a list of latex_labels corresponding to the given keys Parameters - ---------- + ========== keys: list List of strings corresponding to the desired latex_labels Returns - ------- + ======= list: The desired latex_labels """ @@ -760,7 +760,7 @@ class Result(object): See <https://arxiv.org/abs/1903.06682> Returns - ------- + ======= float: The model dimensionality """ return 2 * (np.mean(self.posterior['log_likelihood']**2) - @@ -771,7 +771,7 @@ class Result(object): """ Calculate the median and error bar for a given key Parameters - ---------- + ========== key: str The parameter key for which to calculate the median and error bar fmt: str, ('.2f') @@ -781,7 +781,7 @@ class Result(object): the errors bars for. Returns - ------- + ======= summary: namedtuple An object with attributes, median, lower, upper and string @@ -811,7 +811,7 @@ class Result(object): """ Plot a 1D marginal density, either probability or cumulative. Parameters - ---------- + ========== key: str Name of the parameter to plot prior: {bool (True), bilby.core.prior.Prior} @@ -844,7 +844,7 @@ class Result(object): Dots per inch resolution of the plot Returns - ------- + ======= figure: matplotlib.pyplot.figure A matplotlib figure object """ @@ -895,7 +895,7 @@ class Result(object): """ Plot 1D marginal distributions Parameters - ---------- + ========== parameters: (list, dict), optional If given, either a list of the parameter names to include, or a dictionary of parameter names and their "true" values to plot. @@ -924,7 +924,7 @@ class Result(object): Path to the outdir. Default is the one store in the result object. Returns - ------- + ======= """ if isinstance(parameters, dict): plot_parameter_keys = list(parameters.keys()) @@ -974,7 +974,7 @@ class Result(object): """ Plot a corner-plot Parameters - ---------- + ========== parameters: (list, dict), optional If given, either a list of the parameter names to include, or a dictionary of parameter names and their "true" values to plot. @@ -1012,7 +1012,7 @@ class Result(object): adding truths=False. Returns - ------- + ======= fig: A matplotlib figure instance @@ -1183,7 +1183,7 @@ class Result(object): """ Generate a figure showing the data and fits to the data Parameters - ---------- + ========== model: function A python function which when called as `model(x, **kwargs)` returns the model prediction (here `kwargs` is a dictionary of key-value @@ -1269,7 +1269,7 @@ class Result(object): Also applies the conversion function to any stored posterior Parameters - ---------- + ========== likelihood: bilby.likelihood.GravitationalWaveTransient, optional GravitationalWaveTransient likelihood used for sampling. priors: bilby.prior.PriorDict, optional @@ -1304,7 +1304,7 @@ class Result(object): Evaluate prior probability for each parameter for each sample. Parameters - ---------- + ========== priors: dict, PriorDict Prior distributions """ @@ -1322,13 +1322,13 @@ class Result(object): Get credible levels for all parameters Parameters - ---------- + ========== keys: list, optional A list of keys for which return the credible levels, if None, defaults to search_parameter_keys Returns - ------- + ======= credible_levels: dict The credible levels at which the injected parameters are found. """ @@ -1349,11 +1349,11 @@ class Result(object): Calculated as CDF(injection value) Parameters - ---------- + ========== parameter: str Parameter to get credible level for Returns - ------- + ======= float: credible level """ if self.injection_parameters is None: @@ -1372,14 +1372,14 @@ class Result(object): """ Check attribute name exists in other_object and is the same Parameters - ---------- + ========== name: str Name of the attribute in this instance other_object: object Other object with attributes to compare with Returns - ------- + ======= bool: True if attribute name matches with an attribute of other_object, False otherwise """ @@ -1419,14 +1419,14 @@ class Result(object): the posterior probability density for the new sample. Parameters - ---------- + ========== sample: dict, or list of dictionaries A dictionary containing all the keys from self.search_parameter_keys and corresponding values at which to calculate the posterior probability Returns - ------- + ======= p: array-like, The posterior probability of the sample @@ -1453,7 +1453,7 @@ class Result(object): """ Calculate a list of sample weights based on the ratio of new to old priors Parameters - ---------- + ========== old_prior: PriorDict, The prior used in the generation of the original samples. @@ -1464,7 +1464,7 @@ class Result(object): A list of the priors to include in the ratio during reweighting. Returns - ------- + ======= weights: array-like, A list of sample weights. @@ -1495,14 +1495,14 @@ class Result(object): """ Convert the Result object to an ArviZ InferenceData object. Parameters - ---------- + ========== prior: int If a positive integer is given then that number of prior samples will be drawn and stored in the ArviZ InferenceData object. Returns - ------- + ======= azdata: InferenceData The ArviZ InferenceData object. """ @@ -1569,7 +1569,7 @@ class ResultList(list): outputing combined results. Parameters - ---------- + ========== results: list A list of `:class:`bilby.core.result.Result`. """ @@ -1583,7 +1583,7 @@ class ResultList(list): list. Parameters - ---------- + ========== result: :class:`bilby.core.result.Result` or filename pointing to a result object, to append to the list. """ @@ -1633,12 +1633,12 @@ class ResultList(list): the evidence for each individual run Parameters - ---------- + ========== result: bilby.core.result.Result The result object to put the new samples in. Returns - ------- + ======= posteriors: list A list of pandas DataFrames containing the reduced sample set from each run. @@ -1704,7 +1704,7 @@ def plot_multiple(results, filename=None, labels=None, colours=None, """ Generate a corner plot overlaying two sets of results Parameters - ---------- + ========== results: list A list of `bilby.core.result.Result` objects containing the samples to plot. @@ -1732,7 +1732,7 @@ def plot_multiple(results, filename=None, labels=None, colours=None, List of strings to be passed to the input `labels` to `result.plot_corner`. Returns - ------- + ======= fig: A matplotlib figure instance @@ -1799,7 +1799,7 @@ def make_pp_plot(results, filename=None, save=True, confidence_interval=[0.68, 0 Make a P-P plot for a set of runs with injected signals. Parameters - ---------- + ========== results: list A list of Result objects, each of these should have injected_parameters filename: str, optional @@ -1821,7 +1821,7 @@ def make_pp_plot(results, filename=None, save=True, confidence_interval=[0.68, 0 Additional kwargs to pass to matplotlib.pyplot.plot Returns - ------- + ======= fig, pvals: matplotlib figure and a NamedTuple with attributes `combined_pvalue`, `pvalues`, and `names`. diff --git a/bilby/core/sampler/__init__.py b/bilby/core/sampler/__init__.py index 27da24334e8839da74ac1ae0fcb2d577ff99bc08..4972555cd3a36e381431e16ee766a1594da9063a 100644 --- a/bilby/core/sampler/__init__.py +++ b/bilby/core/sampler/__init__.py @@ -57,7 +57,7 @@ def run_sampler(likelihood, priors=None, label='label', outdir='outdir', The primary interface to easy parameter estimation Parameters - ---------- + ========== likelihood: `bilby.Likelihood` A `Likelihood` instance priors: `bilby.PriorDict` @@ -108,7 +108,7 @@ def run_sampler(likelihood, priors=None, label='label', outdir='outdir', All kwargs are passed directly to the samplers `run` function Returns - ------- + ======= result: bilby.core.result.Result An object containing the results """ diff --git a/bilby/core/sampler/base_sampler.py b/bilby/core/sampler/base_sampler.py index 7d8d4b4dbc038df18b1393af01ae58e1b9db9041..af29c5997d89947d2c9394c17cedb44ea4e0aa47 100644 --- a/bilby/core/sampler/base_sampler.py +++ b/bilby/core/sampler/base_sampler.py @@ -15,7 +15,7 @@ class Sampler(object): """ A sampler object to aid in setting up an inference run Parameters - ---------- + ========== likelihood: likelihood.Likelihood A object with a log_l method priors: bilby.core.prior.PriorDict, dict @@ -50,7 +50,7 @@ class Sampler(object): Additional keyword arguments Attributes - ---------- + ========== likelihood: likelihood.Likelihood A object with a log_l method priors: bilby.core.prior.PriorDict @@ -78,7 +78,7 @@ class Sampler(object): Dictionary of keyword arguments that can be used in the external sampler Raises - ------ + ====== TypeError: If external_sampler is neither a string nor an instance of this class If not all likelihood.parameters have been defined @@ -226,7 +226,7 @@ class Sampler(object): def _initialise_result(self, result_class): """ Returns - ------- + ======= bilby.core.result.Result: An initial template for the result """ @@ -254,7 +254,7 @@ class Sampler(object): """Check if all priors can be sampled properly. Raises - ------ + ====== AttributeError prior can't be sampled. """ @@ -272,7 +272,7 @@ class Sampler(object): Tests if the likelihood evaluation passes Raises - ------ + ====== TypeError Likelihood can't be evaluated. @@ -296,7 +296,7 @@ class Sampler(object): """ Times the likelihood evaluation and print an info message Parameters - ---------- + ========== n_evaluations: int The number of evaluations to estimate the evaluation time from @@ -342,12 +342,12 @@ class Sampler(object): """ Prior transform method that is passed into the external sampler. Parameters - ---------- + ========== theta: list List of sampled values on a unit interval Returns - ------- + ======= list: Properly rescaled sampled values """ return self.priors.rescale(self._search_parameter_keys, theta) @@ -356,12 +356,12 @@ class Sampler(object): """ Parameters - ---------- + ========== theta: list List of sampled values on a unit interval Returns - ------- + ======= float: Joint ln prior probability of theta """ @@ -373,12 +373,12 @@ class Sampler(object): """ Parameters - ---------- + ========== theta: list List of values for the likelihood parameters Returns - ------- + ======= float: Log-likelihood or log-likelihood-ratio given the current likelihood.parameter values @@ -400,7 +400,7 @@ class Sampler(object): """ Get a random draw from the prior distribution Returns - ------- + ======= draw: array_like An ndim-length array of values drawn from the prior. Parameters with delta-function (or fixed) priors are not returned @@ -419,12 +419,12 @@ class Sampler(object): finite prior and likelihood (relevant for constrained priors). Parameters - ---------- + ========== npoints: int The number of values to return Returns - ------- + ======= unit_cube, parameters, likelihood: tuple of array_like unit_cube (nlive, ndim) is an array of the prior samples from the unit cube, parameters (nlive, ndim) is the unit_cube array @@ -453,12 +453,12 @@ class Sampler(object): Also catches the output of `numpy.nan_to_num`. Parameters - ---------- + ========== theta: array_like Parameter values at which to evaluate likelihood Returns - ------- + ======= bool, cube (nlive, True if the likelihood and prior are finite, false otherwise @@ -482,7 +482,7 @@ class Sampler(object): """ TODO: Implement this method Raises - ------- + ======= ValueError: in any case """ raise ValueError("Method not yet implemented") @@ -556,7 +556,7 @@ class NestedSampler(Sampler): loglikelihoods Parameters - ---------- + ========== sorted_samples, unsorted_samples: array-like Sorted and unsorted values of the samples. These should be of the same shape and contain the same sample values, but in different @@ -565,7 +565,7 @@ class NestedSampler(Sampler): The loglikelihoods corresponding to the unsorted_samples Returns - ------- + ======= sorted_loglikelihoods: array-like The loglikelihoods reordered to match that of the sorted_samples @@ -589,12 +589,12 @@ class NestedSampler(Sampler): the prior constraint here. Parameters - ---------- + ========== theta: array_like Parameter values at which to evaluate likelihood Returns - ------- + ======= float: log_likelihood """ if self.priors.evaluate_constraints({ @@ -645,7 +645,7 @@ class MCMCSampler(Sampler): """ Uses the `emcee.autocorr` module to estimate the autocorrelation Parameters - ---------- + ========== samples: array_like A chain of samples. c: float diff --git a/bilby/core/sampler/cpnest.py b/bilby/core/sampler/cpnest.py index a1c1ab08768a326d741551e5d4896130a53fc63c..7a089a4ca559bf9a52b890c873e6a052e5fc72b7 100644 --- a/bilby/core/sampler/cpnest.py +++ b/bilby/core/sampler/cpnest.py @@ -18,8 +18,8 @@ class Cpnest(NestedSampler): for that class for further help. Under Other Parameters, we list commonly used kwargs and the bilby defaults. - Other Parameters - ---------------- + Parameters + ========== nlive: int The number of live points, note this can also equivalently be given as one of [npoints, nlives, n_live_points] diff --git a/bilby/core/sampler/dnest4.py b/bilby/core/sampler/dnest4.py index a35f54f6704c2101cd13d964ea9b6b689519e271..ef80c13e933e4dfd6fcaa5e4c3ea8f113b15928e 100644 --- a/bilby/core/sampler/dnest4.py +++ b/bilby/core/sampler/dnest4.py @@ -69,11 +69,11 @@ class DNest4(NestedSampler): Bilby wrapper of DNest4 Parameters - ---------- + ========== TBD Other Parameters - ---------------- + ------========== num_particles: int The number of points to use in the Nested Sampling active population. max_num_levels: int diff --git a/bilby/core/sampler/dynamic_dynesty.py b/bilby/core/sampler/dynamic_dynesty.py index c2b143e106de2b4ec3db38abbcae23e480e70b6a..88b16763b77cc3d5a6c81494980f2d059bda3554 100644 --- a/bilby/core/sampler/dynamic_dynesty.py +++ b/bilby/core/sampler/dynamic_dynesty.py @@ -21,7 +21,7 @@ class DynamicDynesty(Dynesty): we list commonly all kwargs and the bilby defaults. Parameters - ---------- + ========== likelihood: likelihood.Likelihood A object with a log_l method priors: bilby.core.prior.PriorDict, dict @@ -41,7 +41,7 @@ class DynamicDynesty(Dynesty): only advisable for testing environments Other Parameters - ---------------- + ------========== bound: {'none', 'single', 'multi', 'balls', 'cubes'}, ('multi') Method used to select new points sample: {'unif', 'rwalk', 'slice', 'rslice', 'hslice'}, ('rwalk') diff --git a/bilby/core/sampler/dynesty.py b/bilby/core/sampler/dynesty.py index 5dc4cca32fcdc72b797160b5a6c91a52283d75a4..d453ffd7d9e1c233cc7625dbe75026552c45f1a8 100644 --- a/bilby/core/sampler/dynesty.py +++ b/bilby/core/sampler/dynesty.py @@ -79,7 +79,7 @@ class Dynesty(NestedSampler): we list commonly all kwargs and the bilby defaults. Parameters - ---------- + ========== likelihood: likelihood.Likelihood A object with a log_l method priors: bilby.core.prior.PriorDict, dict @@ -99,7 +99,7 @@ class Dynesty(NestedSampler): only advisable for testing environments Other Parameters - ---------------- + ------========== npoints: int, (1000) The number of live points, note this can also equivalently be given as one of [nlive, nlives, n_live_points] @@ -410,7 +410,7 @@ class Dynesty(NestedSampler): dynesty accepting different arguments. Parameters - ---------- + ========== kwargs: dict The dictionary of kwargs to pass to run_nested @@ -475,7 +475,7 @@ class Dynesty(NestedSampler): The previous run time is set to self. Parameters - ---------- + ========== continuing: bool Whether the run is continuing or terminating, if True, the loaded state is mostly written back to disk. @@ -680,12 +680,12 @@ class Dynesty(NestedSampler): cube we map this back to [0, 1]. Parameters - ---------- + ========== theta: list List of sampled values on a unit interval Returns - ------- + ======= list: Properly rescaled sampled values """ @@ -820,13 +820,13 @@ def sample_rwalk_bilby(args): def estimate_nmcmc(accept_ratio, old_act, maxmcmc, safety=5, tau=None): """ Estimate autocorrelation length of chain using acceptance fraction - Using ACL = (2/acc) - 1 multiplied by a safety margin. Code adapated from - CPNest: - - https://github.com/johnveitch/cpnest/blob/master/cpnest/sampler.py - - http://github.com/farr/Ensemble.jl + Using ACL = (2/acc) - 1 multiplied by a safety margin. Code adapated from CPNest: + + - https://github.com/johnveitch/cpnest/blob/master/cpnest/sampler.py + - http://github.com/farr/Ensemble.jl Parameters - ---------- + ========== accept_ratio: float [0, 1] Ratio of the number of accepted points to the total number of points old_act: int diff --git a/bilby/core/sampler/emcee.py b/bilby/core/sampler/emcee.py index 5e83178bd98a8c9586f2eaebd8a3582753c404fe..81e4eedd0ac072bdc2fccb4e7ad5359727ebd9f2 100644 --- a/bilby/core/sampler/emcee.py +++ b/bilby/core/sampler/emcee.py @@ -22,8 +22,8 @@ class Emcee(MCMCSampler): documentation for that class for further help. Under Other Parameters, we list commonly used kwargs and the bilby defaults. - Other Parameters - ---------------- + Parameters + ========== nwalkers: int, (100) The number of walkers nsteps: int, (100) @@ -41,7 +41,6 @@ class Emcee(MCMCSampler): a: float (2) The proposal scale factor - """ default_kwargs = dict( @@ -221,7 +220,7 @@ class Emcee(MCMCSampler): """ Defines various things related to checkpointing and storing data Returns - ------- + ======= checkpoint_info: named_tuple An object with attributes `sampler_file`, `chain_file`, and `chain_template`. The first two give paths to where the sampler and diff --git a/bilby/core/sampler/fake_sampler.py b/bilby/core/sampler/fake_sampler.py index 55015eef625e2189b70df3b48e8768c486799344..1992d74b1628f1d937100bd1645d1d0105fb128e 100644 --- a/bilby/core/sampler/fake_sampler.py +++ b/bilby/core/sampler/fake_sampler.py @@ -12,7 +12,7 @@ class FakeSampler(Sampler): See base class for parameters. Added parameters are described below. Parameters - ---------- + ========== sample_file: str A string pointing to the posterior data file to be loaded. """ diff --git a/bilby/core/sampler/kombine.py b/bilby/core/sampler/kombine.py index e82129d9f58c81a39fbefc9b6716473d450809ad..d077499cdb27a75b8dbbd1545ef5b54327be2b6d 100644 --- a/bilby/core/sampler/kombine.py +++ b/bilby/core/sampler/kombine.py @@ -12,8 +12,8 @@ class Kombine(Emcee): documentation for that class for further help. Under Other Parameters, we list commonly used kwargs and the bilby defaults. - Other Parameters - ---------------- + Parameters + ========== nwalkers: int, (500) The number of walkers iterations: int, (100) @@ -31,7 +31,6 @@ class Kombine(Emcee): burn_in_act: float (3.) The number of autocorrelation times to discard as burn-in - """ default_kwargs = dict(nwalkers=500, args=[], pool=None, transd=False, diff --git a/bilby/core/sampler/nestle.py b/bilby/core/sampler/nestle.py index b366805598eccc212892acc9d946f4fd69bec0c3..f598d8b1751b217ae9515019c5963001eb0da840 100644 --- a/bilby/core/sampler/nestle.py +++ b/bilby/core/sampler/nestle.py @@ -13,8 +13,8 @@ class Nestle(NestedSampler): that function for further help. Under Other Parameters, we list commonly used kwargs and the bilby defaults - Other Parameters - ---------------- + Parameters + ========== npoints: int The number of live points, note this can also equivalently be given as one of [nlive, nlives, n_live_points] @@ -51,7 +51,7 @@ class Nestle(NestedSampler): """ Runs Nestle sampler with given kwargs and returns the result Returns - ------- + ======= bilby.core.result.Result: Packaged information about the result """ @@ -83,7 +83,7 @@ class Nestle(NestedSampler): kwargs without actually running to the end Returns - ------- + ======= bilby.core.result.Result: Dummy container for sampling results. """ diff --git a/bilby/core/sampler/polychord.py b/bilby/core/sampler/polychord.py index 22bcc7e3a92830ee90184ac0c9b19c310dbb3b4b..943a5c413abe7e45ff54eb4dde2c9aa8d35b7d91 100644 --- a/bilby/core/sampler/polychord.py +++ b/bilby/core/sampler/polychord.py @@ -83,7 +83,7 @@ class PyPolyChord(NestedSampler): The second column are the log likelihoods, the remaining columns are the physical parameters Returns - ------- + ======= array_like, array_like: The log_likelihoods and the associated parameters """ diff --git a/bilby/core/sampler/proposal.py b/bilby/core/sampler/proposal.py index f889f94530881b13bafe0d311ccefa21797bc9f7..df2c021ca5f4521307ceef8144cbd90b438c7530 100644 --- a/bilby/core/sampler/proposal.py +++ b/bilby/core/sampler/proposal.py @@ -43,12 +43,12 @@ class JumpProposal(object): """ A generic class for jump proposals Parameters - ---------- + ========== priors: bilby.core.prior.PriorDict Dictionary of priors used in this sampling run Attributes - ---------- + ========== log_j: float Log Jacobian of the proposal. Characterises whether or not detailed balance is preserved. If not, log_j needs to be adjusted accordingly. @@ -60,12 +60,12 @@ class JumpProposal(object): """ A generic wrapper for the jump proposal function Parameters - ---------- + ========== args: Arguments that are going to be passed into the proposal function kwargs: Keyword arguments that are going to be passed into the proposal function Returns - ------- + ======= dict: A dictionary with the new samples. Boundary conditions are applied. """ @@ -106,7 +106,7 @@ class JumpProposalCycle(object): """ A generic wrapper class for proposal cycles Parameters - ---------- + ========== proposal_functions: list A list of callable proposal functions/objects weights: list @@ -153,7 +153,7 @@ class JumpProposalCycle(object): """ Returns - ------- + ======= Normalised proposal weights """ @@ -175,7 +175,7 @@ class NormJump(JumpProposal): A normal distributed step centered around the old sample Parameters - ---------- + ========== step_size: float The scalable step size priors: @@ -196,8 +196,9 @@ class EnsembleWalk(JumpProposal): **random_number_generator_args): """ An ensemble walk + Parameters - ---------- + ========== random_number_generator: func, optional A random number generator. Default is random.random n_points: int, optional @@ -233,7 +234,7 @@ class EnsembleStretch(JumpProposal): Stretch move. Calculates the log Jacobian which can be used in cpnest to bias future moves. Parameters - ---------- + ========== scale: float, optional Stretching scale. Default is 2.0. """ @@ -257,7 +258,7 @@ class DifferentialEvolution(JumpProposal): old sample based on them using some Gaussian randomisation in the step. Parameters - ---------- + ========== sigma: float, optional Random spread in the evolution step. Default is 1e-4 mu: float, optional @@ -280,7 +281,7 @@ class EnsembleEigenVector(JumpProposal): Ensemble step based on the ensemble eigenvectors. Parameters - ---------- + ========== priors: See superclass """ diff --git a/bilby/core/sampler/ptemcee.py b/bilby/core/sampler/ptemcee.py index 84c95f2502dbb2efcd0790361bf56c352143cc30..2be681f37664ba0e52d4b60a5182658cc9b3ca2e 100644 --- a/bilby/core/sampler/ptemcee.py +++ b/bilby/core/sampler/ptemcee.py @@ -49,7 +49,7 @@ class Ptemcee(MCMCSampler): list commonly used kwargs and the bilby defaults. Parameters - ---------- + ========== nsamples: int, (5000) The requested number of samples. Note, in cases where the autocorrelation parameter is difficult to measure, it is possible to @@ -112,7 +112,7 @@ class Ptemcee(MCMCSampler): Other Parameters - ---------------- + ------========== nwalkers: int, (200) The number of walkers nsteps: int, (100) @@ -278,7 +278,7 @@ class Ptemcee(MCMCSampler): """ Draw the initial positions from the prior Returns - ------- + ======= pos0: list The initial postitions of the walkers, with shape (ntemps, nwalkers, ndim) @@ -298,7 +298,7 @@ class Ptemcee(MCMCSampler): See pos0 in the class initialization for details. Returns - ------- + ======= pos0: list The initial postitions of the walkers, with shape (ntemps, nwalkers, ndim) @@ -697,7 +697,7 @@ def check_iteration( """ Per-iteration logic to calculate the convergence check Parameters - ---------- + ========== convergence_inputs: bilby.core.sampler.ptemcee.ConvergenceInputs A named tuple of the convergence checking inputs search_parameter_keys: list @@ -706,7 +706,7 @@ def check_iteration( Lists used for tracking the run Returns - ------- + ======= stop: bool A boolean flag, True if the stoping criteria has been met burn: int diff --git a/bilby/core/sampler/ptmcmc.py b/bilby/core/sampler/ptmcmc.py index d27698aa7278a947bf5fd46639d93527339ff271..49b86d7392ff4d21af698fe7b7034b25eaa7ac22 100644 --- a/bilby/core/sampler/ptmcmc.py +++ b/bilby/core/sampler/ptmcmc.py @@ -16,8 +16,8 @@ class PTMCMCSampler(MCMCSampler): documentation for that class for further help. Under Other Parameters, we list commonly used kwargs and the bilby defaults. - Other Parameters - ---------------- + Parameters + ========== Niter: int (2*10**4 + 1) The number of mcmc steps burn: int (5 * 10**3) @@ -32,10 +32,13 @@ class PTMCMCSampler(MCMCSampler): (https://github.com/rgreen1995/PTMCMCSampler/blob/master/examples/simple.ipynb) and (http://jellis18.github.io/PTMCMCSampler/PTMCMCSampler.html#ptmcmcsampler-ptmcmcsampler-module) - for examples and more info. logl_grad: func (None) Gradient of - likelihood if known (default = None) logp_grad: func (None) Gradient - of prior if known (default = None) verbose: bool (True) Update current - run-status to the screen + for examples and more info. + logl_grad: func (None) + Gradient of likelihood if known (default = None) + logp_grad: func (None) + Gradient of prior if known (default = None) + verbose: bool (True) + Update current run-status to the screen """ diff --git a/bilby/core/sampler/pymc3.py b/bilby/core/sampler/pymc3.py index 9c44b3a621a7e88baf1266dcf7898bc9b21037ed..c5c0a0d18fdd9fc8acc914034af2ee01d3f31ecf 100644 --- a/bilby/core/sampler/pymc3.py +++ b/bilby/core/sampler/pymc3.py @@ -20,8 +20,8 @@ class Pymc3(MCMCSampler): class for further help. Under Other Parameters, we list commonly used kwargs and the bilby, or where appropriate, PyMC3 defaults. - Other Parameters - ---------------- + Parameters + ========== draws: int, (1000) The number of sample draws from the posterior per chain. chains: int, (2) diff --git a/bilby/core/sampler/pymultinest.py b/bilby/core/sampler/pymultinest.py index e977dc153f0a2572297b5a8bb382b462372b1243..960f2f4a3a231fc43f6f51538c9381d133341f5b 100644 --- a/bilby/core/sampler/pymultinest.py +++ b/bilby/core/sampler/pymultinest.py @@ -24,8 +24,8 @@ class Pymultinest(NestedSampler): for that class for further help. Under Other Parameters, we list commonly used kwargs and the bilby defaults. - Other Parameters - ---------------- + Parameters + ========== npoints: int The number of live points, note this can also equivalently be given as one of [nlive, nlives, n_live_points] diff --git a/bilby/core/sampler/ultranest.py b/bilby/core/sampler/ultranest.py index ffeb2e267d92a9ce069a29d080359840be6d91f0..2348319e4b6048eb2669e798e94c6a06af9b6e0e 100644 --- a/bilby/core/sampler/ultranest.py +++ b/bilby/core/sampler/ultranest.py @@ -27,8 +27,8 @@ class Ultranest(NestedSampler): `ultranest.NestedSampler` will be used, otherwise the `ultranest.ReactiveNestedSampler` will be used. - Other Parameters - ---------------- + Parameters + ========== num_live_points: int The number of live points, note this can also equivalently be given as one of [nlive, nlives, n_live_points, num_live_points]. If not given diff --git a/bilby/core/series.py b/bilby/core/series.py index 0c9b2efaa2e830c8096315aae89a0bc42229c1f0..ba1d0ffcb840ac6b31af682b4ee713b97add5775 100644 --- a/bilby/core/series.py +++ b/bilby/core/series.py @@ -7,7 +7,7 @@ class CoupledTimeAndFrequencySeries(object): """ A waveform generator Parameters - ---------- + ========== sampling_frequency: float, optional The sampling frequency duration: float, optional @@ -32,7 +32,7 @@ class CoupledTimeAndFrequencySeries(object): """ Frequency array for the waveforms. Automatically updates if sampling_frequency or duration are updated. Returns - ------- + ======= array_like: The frequency array """ if not self._frequency_array_updated: @@ -60,7 +60,7 @@ class CoupledTimeAndFrequencySeries(object): """ Time array for the waveforms. Automatically updates if sampling_frequency or duration are updated. Returns - ------- + ======= array_like: The time array """ @@ -91,7 +91,7 @@ class CoupledTimeAndFrequencySeries(object): """ Allows one to set the time duration and automatically updates the frequency and time array. Returns - ------- + ======= float: The time duration. """ @@ -108,7 +108,7 @@ class CoupledTimeAndFrequencySeries(object): """ Allows one to set the sampling frequency and automatically updates the frequency and time array. Returns - ------- + ======= float: The sampling frequency. """ diff --git a/bilby/core/utils.py b/bilby/core/utils.py index 3b590215545dbcbe1adade632a05712b8d1f6091..4b922547074d8e4d16bfb92350748ada7f9d5b53 100644 --- a/bilby/core/utils.py +++ b/bilby/core/utils.py @@ -37,29 +37,29 @@ def infer_parameters_from_function(func): """ Infers the arguments of a function (except the first arg which is assumed to be the dep. variable). - Throws out *args and **kwargs type arguments + Throws out `*args` and `**kwargs` type arguments Can deal with type hinting! Parameters - ---------- + ========== func: function or method The function or method for which the parameters should be inferred. Returns - ------- + ======= list: A list of strings with the parameters Raises - ------ + ====== ValueError If the object passed to the function is neither a function nor a method. Notes - ----- - In order to handle methods the ``type`` of the function is checked, and + ===== + In order to handle methods the `type` of the function is checked, and if a method has been passed the first *two* arguments are removed rather than just the first one. - This allows the reference to the instance (conventionally named ``self``) + This allows the reference to the instance (conventionally named `self`) to be removed. """ if isinstance(func, types.MethodType): @@ -71,14 +71,14 @@ def infer_parameters_from_function(func): def infer_args_from_method(method): - """ Infers all arguments of a method except for 'self' + """ Infers all arguments of a method except for `self` - Throws out *args and **kwargs type arguments. + Throws out `*args` and `**kwargs` type arguments. Can deal with type hinting! Returns - --------- + ======= list: A list of strings with the parameters """ return infer_args_from_function_except_n_args(func=method, n=1) @@ -90,36 +90,40 @@ def infer_args_from_function_except_n_args(func, n=1): signature. Parameters - ---------- + ========== func : function or method The function from which the arguments should be inferred. n : int The number of arguments which should be ignored, staring at the beginning. Returns - ------- + ======= parameters: list - A list of parameters of the function, omitting the first ``n``. + A list of parameters of the function, omitting the first `n`. Extended Summary - ---------------- + ================ This function is intended to allow the handling of named arguments in both functions and methods; this is important, since the first argument of an instance method will be the instance. See Also - -------- + ======== infer_args_from_method: Provides the arguments for a method infer_args_from_function: Provides the arguments for a function infer_args_from_function_except_first_arg: Provides all but first argument of a function or method. Examples - -------- - >>> def hello(a, b, c, d): - >>> pass - >>> - >>> infer_args_from_function_except_n_args(hello, 2) - ['c', 'd'] + ======== + + .. code-block:: python + + >>> def hello(a, b, c, d): + >>> pass + >>> + >>> infer_args_from_function_except_n_args(hello, 2) + ['c', 'd'] + """ try: parameters = inspect.getfullargspec(func).args @@ -146,17 +150,17 @@ def get_sampling_frequency(time_array): """ Calculate sampling frequency from a time series - Attributes: - ------- + Attributes + ========== time_array: array_like Time array to get sampling_frequency from Returns - ------- + ======= Sampling frequency of the time series: float Raises - ------- + ====== ValueError: If the time series is not evenly sampled. """ @@ -171,17 +175,17 @@ def get_sampling_frequency_and_duration_from_time_array(time_array): """ Calculate sampling frequency and duration from a time array - Attributes: - ------- + Attributes + ========== time_array: array_like Time array to get sampling_frequency/duration from: array_like Returns - ------- + ======= sampling_frequency, duration: float, float Raises - ------- + ====== ValueError: If the time_array is not evenly sampled. """ @@ -195,17 +199,17 @@ def get_sampling_frequency_and_duration_from_frequency_array(frequency_array): """ Calculate sampling frequency and duration from a frequency array - Attributes: - ------- + Attributes + ========== frequency_array: array_like Frequency array to get sampling_frequency/duration from: array_like Returns - ------- + ======= sampling_frequency, duration: float, float Raises - ------- + ====== ValueError: If the frequency_array is not evenly sampled. """ @@ -226,13 +230,13 @@ def create_time_series(sampling_frequency, duration, starting_time=0.): """ Parameters - ---------- + ========== sampling_frequency: float duration: float starting_time: float, optional Returns - ------- + ======= float: An equidistant time series given the parameters """ @@ -247,12 +251,12 @@ def create_frequency_series(sampling_frequency, duration): """ Create a frequency series with the correct length and spacing. Parameters - ------- + ========== sampling_frequency: float duration: float Returns - ------- + ======= array_like: frequency series """ @@ -272,7 +276,7 @@ def _check_legal_sampling_frequency_and_duration(sampling_frequency, duration): to an integer. Parameters - ------- + ========== sampling_frequency: float duration: float @@ -293,7 +297,7 @@ def ra_dec_to_theta_phi(ra, dec, gmst): """ Convert from RA and DEC to polar coordinates on celestial sphere Parameters - ------- + ========== ra: float right ascension in radians dec: float @@ -302,7 +306,7 @@ def ra_dec_to_theta_phi(ra, dec, gmst): Greenwich mean sidereal time of arrival of the signal in radians Returns - ------- + ======= float: zenith angle in radians float: azimuthal angle in radians @@ -327,12 +331,12 @@ def gps_time_to_gmst(gps_time): Error accumulates at a rate of ~0.0001 radians/decade. Parameters - ------- + ========== gps_time: float gps time Returns - ------- + ======= float: Greenwich mean sidereal time in radians """ @@ -353,13 +357,13 @@ def create_white_noise(sampling_frequency, duration): """ Create white_noise which is then coloured by a given PSD Parameters - ------- + ========== sampling_frequency: float duration: float duration of the data Returns - ------- + ======= array_like: white noise array_like: frequency array """ @@ -398,14 +402,14 @@ def nfft(time_domain_strain, sampling_frequency): time series is real (positive frequencies only). Parameters - ---------- + ========== time_domain_strain: array_like Time series of strain data. sampling_frequency: float Sampling frequency of the data. Returns - ------- + ======= frequency_domain_strain, frequency_array: (array_like, array_like) Single-sided FFT of time domain strain normalised to units of strain / Hz, and the associated frequency_array. @@ -424,7 +428,7 @@ def infft(frequency_domain_strain, sampling_frequency): """ Inverse FFT for use in conjunction with nfft. Parameters - ---------- + ========== frequency_domain_strain: array_like Single-sided, normalised FFT of the time-domain strain data (in units of strain / Hz). @@ -432,7 +436,7 @@ def infft(frequency_domain_strain, sampling_frequency): Sampling frequency of the data. Returns - ------- + ======= time_domain_strain: array_like An array of the time domain strain """ @@ -445,7 +449,7 @@ def setup_logger(outdir=None, label=None, log_level='INFO', print_version=False) """ Setup logging output: call at the start of the script to use Parameters - ---------- + ========== outdir, label: str If supplied, write the logging output to outdir/label.log log_level: str, optional @@ -511,7 +515,7 @@ def spherical_to_cartesian(radius, theta, phi): """ Convert from spherical coordinates to cartesian. Parameters - ------- + ========== radius: float radial coordinate theta: float @@ -520,7 +524,7 @@ def spherical_to_cartesian(radius, theta, phi): azimuthal coordinate Returns - ------- + ======= list: cartesian vector """ cartesian = [radius * np.sin(theta) * np.cos(phi), radius * np.sin(theta) * np.sin(phi), radius * np.cos(theta)] @@ -531,7 +535,7 @@ def check_directory_exists_and_if_not_mkdir(directory): """ Checks if the given directory exists and creates it if it does not exist Parameters - ---------- + ========== directory: str Name of the directory @@ -549,25 +553,27 @@ def set_up_command_line_arguments(): """ Sets up command line arguments that can be used to modify how scripts are run. Returns - ------- + ======= command_line_args, command_line_parser: tuple The command_line_args is a Namespace of the command line arguments while the command_line_parser can be given to a new `argparse.ArgumentParser` as a parent object from which to inherit. Notes - ----- + ===== The command line arguments are passed initially at runtime, but this parser does not have a `--help` option (i.e., the command line options are available for any script which includes `import bilby`, but no help command is available. This is done to avoid conflicts with child argparse routines (see the example below). - Example - ------- + Examples + ======== In the following example we demonstrate how to setup a custom command line for a project which uses bilby. + .. code-block:: python + # Here we import bilby, which initialses and parses the default command-line args >>> import bilby # The command line arguments can then be accessed via @@ -630,7 +636,7 @@ def derivatives(vals, func, releps=1e-3, abseps=None, mineps=1e-9, reltol=1e-3, method to check that the values converge as step size decreases. Parameters - ---------- + ========== vals: array_like A set of values, that are passed to a function, at which to calculate the gradient of that function @@ -653,7 +659,7 @@ def derivatives(vals, func, releps=1e-3, abseps=None, mineps=1e-9, reltol=1e-3, are calculated. Returns - ------- + ======= grads: array_like An array of gradients for each non-fixed value. """ @@ -762,7 +768,7 @@ def logtrapzexp(lnf, dx): Perform trapezium rule integration for the logarithm of a function on a regular grid. Parameters - ---------- + ========== lnf: array_like A :class:`numpy.ndarray` of values that are the natural logarithm of a function dx: Union[array_like, float] @@ -770,7 +776,7 @@ def logtrapzexp(lnf, dx): single step size value. Returns - ------- + ======= The natural logarithm of the area under the function. """ return np.log(dx / 2.) + logsumexp([logsumexp(lnf[:-1]), logsumexp(lnf[1:])]) @@ -780,7 +786,7 @@ class SamplesSummary(object): """ Object to store a set of samples and calculate summary statistics Parameters - ---------- + ========== samples: array_like Array of samples average: str {'median', 'mean'} @@ -872,7 +878,7 @@ def run_commandline(cl, log_level=20, raise_error=True, return_output=True): """Run a string cmd as a subprocess, check for errors and return output. Parameters - ---------- + ========== cl: str Command to run log_level: int @@ -904,8 +910,9 @@ class Counter(object): """ General class to count number of times a function is Called, returns total number of function calls + Parameters - ---------- + ========== initalval : int, 0 number to start counting from """ @@ -928,7 +935,7 @@ class UnsortedInterp2d(interp2d): """ Wrapper to scipy.interpolate.interp2d which preserves the input ordering. Parameters - ---------- + ========== x: See superclass y: See superclass dx: See superclass @@ -938,7 +945,7 @@ class UnsortedInterp2d(interp2d): Overwriting this will not do anything Returns - ---------- + ======= array_like: See superclass """ @@ -1012,7 +1019,7 @@ def move_old_file(filename, overwrite=False): """ Moves or removes an old file. Parameters - ---------- + ========== filename: str Name of the file to be move overwrite: bool, optional @@ -1109,12 +1116,12 @@ def reflect(u): E.g., -0.9, 1.1, and 2.9 should all map to 0.9. Parameters - ---------- + ========== u: array-like The array of points to map to the unit cube Returns - ------- + ======= u: array-like The input array, modified in place. """ @@ -1128,7 +1135,7 @@ def safe_file_dump(data, filename, module): """ Safely dump data to a .pickle file Parameters - ---------- + ========== data: data to dump filename: str @@ -1228,12 +1235,12 @@ def kish_log_effective_sample_size(ln_weights): See https://en.wikipedia.org/wiki/Effective_sample_size for details Parameters - ---------- + ========== ln_weights: array An array of the ln-weights Returns - ------- + ======= ln_n_eff: The natural-log of the effective sample size diff --git a/bilby/gw/conversion.py b/bilby/gw/conversion.py index 00a6c9a4e24b669e330b60566ddea934ee49a0a8..093e2eda8db4324985b10aed7d62460ec2ee85a5 100644 --- a/bilby/gw/conversion.py +++ b/bilby/gw/conversion.py @@ -83,7 +83,7 @@ def transform_precessing_spins(theta_jn, phi_jl, tilt_1, tilt_2, phi_12, a_1, All parameters are defined at the reference frequency Parameters - ---------- + ========== theta_jn: float Inclination angle phi_jl: float @@ -107,7 +107,7 @@ def transform_precessing_spins(theta_jn, phi_jl, tilt_1, tilt_2, phi_12, a_1, Orbital phase Returns - ------- + ======= iota: float Transformed inclination spin_1x, spin_1y, spin_1z, spin_2x, spin_2y, spin_2z: float @@ -137,12 +137,12 @@ def convert_to_lal_binary_black_hole_parameters(parameters): The keys in added_keys should be popped after evaluating the waveform. Parameters - ---------- + ========== parameters: dict dictionary of parameter values to convert into the required parameters - Return - ------ + Returns + ======= converted_parameters: dict dict of the required parameters added_keys: list @@ -276,12 +276,12 @@ def convert_to_lal_binary_neutron_star_parameters(parameters): The keys in added_keys should be popped after evaluating the waveform. Parameters - ---------- + ========== parameters: dict dictionary of parameter values to convert into the required parameters - Return - ------ + Returns + ======= converted_parameters: dict dict of the required parameters added_keys: list @@ -395,14 +395,14 @@ def total_mass_and_mass_ratio_to_component_masses(mass_ratio, total_mass): Convert total mass and mass ratio of a binary to its component masses. Parameters - ---------- + ========== mass_ratio: float Mass ratio (mass_2/mass_1) of the binary total_mass: float Total mass of the binary - Return - ------ + Returns + ======= mass_1: float Mass of the heavier object mass_2: float @@ -419,12 +419,12 @@ def symmetric_mass_ratio_to_mass_ratio(symmetric_mass_ratio): Convert the symmetric mass ratio to the normal mass ratio. Parameters - ---------- + ========== symmetric_mass_ratio: float Symmetric mass ratio of the binary - Return - ------ + Returns + ======= mass_ratio: float Mass ratio of the binary """ @@ -438,14 +438,14 @@ def chirp_mass_and_total_mass_to_symmetric_mass_ratio(chirp_mass, total_mass): Convert chirp mass and total mass of a binary to its symmetric mass ratio. Parameters - ---------- + ========== chirp_mass: float Chirp mass of the binary total_mass: float Total mass of the binary - Return - ------ + Returns + ======= symmetric_mass_ratio: float Symmetric mass ratio of the binary """ @@ -465,14 +465,14 @@ def chirp_mass_and_primary_mass_to_mass_ratio(chirp_mass, mass_1): Solving for q, we find the releation expressed in python below for q. Parameters - ---------- + ========== chirp_mass: float Chirp mass of the binary mass_1: float The primary mass - Return - ------ + Returns + ======= mass_ratio: float Mass ratio (mass_2/mass_1) of the binary """ @@ -488,14 +488,14 @@ def chirp_mass_and_mass_ratio_to_total_mass(chirp_mass, mass_ratio): Convert chirp mass and mass ratio of a binary to its total mass. Parameters - ---------- + ========== chirp_mass: float Chirp mass of the binary mass_ratio: float Mass ratio (mass_2/mass_1) of the binary - Return - ------ + Returns + ======= mass_1: float Mass of the heavier object mass_2: float @@ -510,14 +510,14 @@ def component_masses_to_chirp_mass(mass_1, mass_2): Convert the component masses of a binary to its chirp mass. Parameters - ---------- + ========== mass_1: float Mass of the heavier object mass_2: float Mass of the lighter object - Return - ------ + Returns + ======= chirp_mass: float Chirp mass of the binary """ @@ -530,14 +530,14 @@ def component_masses_to_total_mass(mass_1, mass_2): Convert the component masses of a binary to its total mass. Parameters - ---------- + ========== mass_1: float Mass of the heavier object mass_2: float Mass of the lighter object - Return - ------ + Returns + ======= total_mass: float Total mass of the binary """ @@ -550,14 +550,14 @@ def component_masses_to_symmetric_mass_ratio(mass_1, mass_2): Convert the component masses of a binary to its symmetric mass ratio. Parameters - ---------- + ========== mass_1: float Mass of the heavier object mass_2: float Mass of the lighter object - Return - ------ + Returns + ======= symmetric_mass_ratio: float Symmetric mass ratio of the binary """ @@ -570,14 +570,14 @@ def component_masses_to_mass_ratio(mass_1, mass_2): Convert the component masses of a binary to its chirp mass. Parameters - ---------- + ========== mass_1: float Mass of the heavier object mass_2: float Mass of the lighter object - Return - ------ + Returns + ======= mass_ratio: float Mass ratio of the binary """ @@ -592,14 +592,14 @@ def mass_1_and_chirp_mass_to_mass_ratio(mass_1, chirp_mass): This involves solving mc = m1 * q**(3/5) / (1 + q)**(1/5). Parameters - ---------- + ========== mass_1: float Mass of the heavier object chirp_mass: float Mass of the lighter object - Return - ------ + Returns + ======= mass_ratio: float Mass ratio of the binary """ @@ -618,7 +618,7 @@ def lambda_1_lambda_2_to_lambda_tilde(lambda_1, lambda_2, mass_1, mass_2): See, e.g., Wade et al., https://arxiv.org/pdf/1402.5156.pdf. Parameters - ---------- + ========== lambda_1: float Tidal parameter of more massive neutron star. lambda_2: float @@ -628,8 +628,8 @@ def lambda_1_lambda_2_to_lambda_tilde(lambda_1, lambda_2, mass_1, mass_2): mass_2: float Mass of less massive neutron star. - Return - ------ + Returns + ====== lambda_tilde: float Dominant tidal term. """ @@ -650,7 +650,7 @@ def lambda_1_lambda_2_to_delta_lambda_tilde(lambda_1, lambda_2, mass_1, mass_2): See, e.g., Wade et al., https://arxiv.org/pdf/1402.5156.pdf. Parameters - ---------- + ========== lambda_1: float Tidal parameter of more massive neutron star. lambda_2: float @@ -660,8 +660,8 @@ def lambda_1_lambda_2_to_delta_lambda_tilde(lambda_1, lambda_2, mass_1, mass_2): mass_2: float Mass of less massive neutron star. - Return - ------ + Returns + ======= delta_lambda_tilde: float Second dominant tidal term. """ @@ -684,7 +684,7 @@ def lambda_tilde_delta_lambda_tilde_to_lambda_1_lambda_2( See, e.g., Wade et al., https://arxiv.org/pdf/1402.5156.pdf. Parameters - ---------- + ========== lambda_tilde: float Dominant tidal term. delta_lambda_tilde: float @@ -694,8 +694,8 @@ def lambda_tilde_delta_lambda_tilde_to_lambda_1_lambda_2( mass_2: float Mass of less massive neutron star. - Return - ------ + Returns + ======= lambda_1: float Tidal parameter of more massive neutron star. lambda_2: float @@ -730,7 +730,7 @@ def lambda_tilde_to_lambda_1_lambda_2( See, e.g., Wade et al., https://arxiv.org/pdf/1402.5156.pdf. Parameters - ---------- + ========== lambda_tilde: float Dominant tidal term. mass_1: float @@ -738,8 +738,8 @@ def lambda_tilde_to_lambda_1_lambda_2( mass_2: float Mass of less massive neutron star. - Return - ------ + Returns + ======= lambda_1: float Tidal parameter of more massive neutron star. lambda_2: float @@ -825,7 +825,7 @@ def generate_all_bbh_parameters(sample, likelihood=None, priors=None, npool=1): BBH parameters, in place. Parameters - ---------- + ========== sample: dict or pandas.DataFrame Samples to fill in with extra parameters, this may be either an injection or posterior samples. @@ -854,7 +854,7 @@ def generate_all_bns_parameters(sample, likelihood=None, priors=None, npool=1): calculated. Parameters - ---------- + ========== sample: dict or pandas.DataFrame Samples to fill in with extra parameters, this may be either an injection or posterior samples. @@ -897,14 +897,14 @@ def fill_from_fixed_priors(sample, priors): """Add parameters with delta function prior to the data frame/dictionary. Parameters - ---------- + ========== sample: dict A dictionary or data frame priors: dict A dictionary of priors Returns - ------- + ======= dict: """ output_sample = sample.copy() @@ -923,12 +923,12 @@ def generate_mass_parameters(sample): chirp mass, total mass, symmetric mass ratio, mass ratio Parameters - ---------- + ========== sample : dict The input dictionary with component masses 'mass_1' and 'mass_2' Returns - ------- + ======= dict: The updated dictionary """ @@ -954,12 +954,12 @@ def generate_spin_parameters(sample): cartesian spin components, chi_eff, chi_p cos tilt 1, cos tilt 2 Parameters - ---------- + ========== sample : dict, pandas.DataFrame The input dictionary with some spin parameters Returns - ------- + ======= dict: The updated dictionary """ @@ -1001,13 +1001,13 @@ def generate_component_spins(sample): This function uses a lalsimulation function to transform the spins. Parameters - ---------- + ========== sample: A dictionary with the necessary spin conversion parameters: 'theta_jn', 'phi_jl', 'tilt_1', 'tilt_2', 'phi_12', 'a_1', 'a_2', 'mass_1', 'mass_2', 'reference_frequency', 'phase' Returns - ------- + ======= dict: The updated dictionary """ @@ -1057,12 +1057,12 @@ def generate_tidal_parameters(sample): lambda_tilde, delta_lambda_tilde Parameters - ---------- + ========== sample: dict, pandas.DataFrame Should contain lambda_1, lambda_2 Returns - ------- + ======= output_sample: dict, pandas.DataFrame Updated sample """ @@ -1085,11 +1085,11 @@ def generate_source_frame_parameters(sample): Generate source frame masses along with redshifts and comoving distance. Parameters - ---------- + ========== sample: dict, pandas.DataFrame Returns - ------- + ======= output_sample: dict, pandas.DataFrame """ output_sample = sample.copy() @@ -1113,7 +1113,7 @@ def compute_snrs(sample, likelihood): and print it out. Parameters - ---------- + ========== sample: dict or array_like likelihood: bilby.gw.likelihood.GravitationalWaveTransient @@ -1172,7 +1172,7 @@ def generate_posterior_samples_from_marginalized_likelihood( See Eq. (C29-C32) of https://arxiv.org/abs/1809.02293 Parameters - ---------- + ========== samples: DataFrame Posterior from run with a marginalised likelihood. likelihood: bilby.gw.likelihood.GravitationalWaveTransient @@ -1180,8 +1180,8 @@ def generate_posterior_samples_from_marginalized_likelihood( npool: int, (default=1) If given, perform generation (where possible) using a multiprocessing pool - Return - ------ + Returns + ======= sample: DataFrame Returns the posterior with new samples. """ diff --git a/bilby/gw/cosmology.py b/bilby/gw/cosmology.py index df82acf7177fbfca7b5137c633997a078435339d..861fdf23f99ef2e8a3190ad47ec0eeaddb44f7d4 100644 --- a/bilby/gw/cosmology.py +++ b/bilby/gw/cosmology.py @@ -27,7 +27,7 @@ def set_cosmology(cosmology=None): as the last used cosmology. Parameters - ---------- + ========== cosmology: astropy.cosmology.FLRW, str, dict Description of cosmology, one of: None - Use DEFAULT_COSMOLOGY @@ -37,7 +37,7 @@ def set_cosmology(cosmology=None): class. Returns - ------- + ======= cosmo: astropy.cosmology.FLRW Cosmology instance """ diff --git a/bilby/gw/detector/__init__.py b/bilby/gw/detector/__init__.py index 7d5dec8f1e33bbb67d2558c56e7a9ce332db7272..37d6027634365d2fd7f349a694d0836e19434278 100644 --- a/bilby/gw/detector/__init__.py +++ b/bilby/gw/detector/__init__.py @@ -17,14 +17,14 @@ def get_safe_signal_duration(mass_1, mass_2, a_1, a_2, tilt_1, tilt_2, flow=10): """ Calculate the safe signal duration, given the parameters Parameters - ---------- + ========== mass_1, mass_2, a_1, a_2, tilt_1, tilt_2: float The signal parameters flow: float The lower frequency cutoff from which to calculate the signal duration Returns - ------- + ======= safe_signal_duration: float The shortest safe signal duration (i.e., the signal duration rounded up to the nearest power of 2) @@ -41,7 +41,7 @@ def inject_signal_into_gwpy_timeseries( """ Inject a signal into a gwpy timeseries Parameters - ---------- + ========== data: gwpy.timeseries.TimeSeries The time-series data into which we want to inject the signal waveform_generator: bilby.gw.waveform_generator.WaveformGenerator @@ -54,7 +54,7 @@ def inject_signal_into_gwpy_timeseries( If given, the outdir and label used to generate a plot Returns - ------- + ======= data_and_signal: gwpy.timeseries.TimeSeries The data with the time-domain signal added meta_data: dict @@ -128,7 +128,7 @@ def get_interferometer_with_fake_noise_and_injection( density based on advanced LIGO. Parameters - ---------- + ========== name: str Detector name, e.g., 'H1'. injection_parameters: dict @@ -160,7 +160,7 @@ def get_interferometer_with_fake_noise_and_injection( If true, set noise to zero. Returns - ------- + ======= bilby.gw.detector.Interferometer: An Interferometer instance with a PSD and frequency-domain strain data. """ @@ -205,7 +205,7 @@ def load_data_from_cache_file( """ Helper routine to generate an interferometer from a cache file Parameters - ---------- + ========== cache_file: str Path to the location of the cache file start_time, psd_start_time: float @@ -225,7 +225,7 @@ def load_data_from_cache_file( The output directory in which the data is saved Returns - ------- + ======= ifo: bilby.gw.detector.Interferometer An initialised interferometer object with strain data set to the appropriate data in the cache file and a PSD. @@ -299,7 +299,7 @@ def load_data_by_channel_name( the specified channel using gwpy.TimeSeries.get() Parameters - ---------- + ========== channel_name: str Channel name with the format `IFO:Channel` start_time, psd_start_time: float @@ -317,7 +317,7 @@ def load_data_by_channel_name( The output directory in which the data is saved Returns - ------- + ======= ifo: bilby.gw.detector.Interferometer An initialised interferometer object with strain data set to the appropriate data fetched from the specified channel and a PSD. diff --git a/bilby/gw/detector/calibration.py b/bilby/gw/detector/calibration.py index 74b25127f0bad233301df272537e0da1f4dd85f3..efb6336e46c2198415ca646d100b6d2092581d29 100644 --- a/bilby/gw/detector/calibration.py +++ b/bilby/gw/detector/calibration.py @@ -14,7 +14,7 @@ class Recalibrate(object): Base calibration object. This applies no transformation Parameters - ---------- + ========== prefix: str Prefix on parameters relating to the calibration. """ @@ -30,7 +30,7 @@ class Recalibrate(object): This method should be overwritten by subclasses Parameters - ---------- + ========== frequency_array: array-like The frequency values to calculate the calibration factor for. params : dict @@ -38,7 +38,7 @@ class Recalibrate(object): calibration parameters. Returns - ------- + ======= calibration_factor : array-like The factor to multiply the strain by. """ @@ -67,7 +67,7 @@ class CubicSpline(Recalibrate): np.logspace(np.log(minimum_frequency), np.log(maximum_frequency), n_points) Parameters - ---------- + ========== prefix: str Prefix on parameters relating to the calibration. minimum_frequency: float @@ -98,7 +98,7 @@ class CubicSpline(Recalibrate): """Apply calibration model Parameters - ---------- + ========== frequency_array: array-like The frequency values to calculate the calibration factor for. prefix: str @@ -108,7 +108,7 @@ class CubicSpline(Recalibrate): calibration parameters. Returns - ------- + ======= calibration_factor : array-like The factor to multiply the strain by. """ diff --git a/bilby/gw/detector/geometry.py b/bilby/gw/detector/geometry.py index 0725e4f3176b6b1ae12c2b95a9a5a21183a0aa51..5ed8ec2e789c86396e32f4a12ae1f1f19412e41c 100644 --- a/bilby/gw/detector/geometry.py +++ b/bilby/gw/detector/geometry.py @@ -10,7 +10,7 @@ class InterferometerGeometry(object): Instantiate an Interferometer object. Parameters - ---------- + ========== length: float Length of the interferometer in km. @@ -68,7 +68,7 @@ class InterferometerGeometry(object): """ Saves latitude in rad internally. Updates related quantities if set to a different value. Returns - ------- + ======= float: The latitude position of the detector in degree """ return self._latitude * 180 / np.pi @@ -84,7 +84,7 @@ class InterferometerGeometry(object): def latitude_radians(self): """ Returns - ------- + ======= float: The latitude position of the detector in radians """ @@ -95,7 +95,7 @@ class InterferometerGeometry(object): """ Saves longitude in rad internally. Updates related quantities if set to a different value. Returns - ------- + ======= float: The longitude position of the detector in degree """ return self._longitude * 180 / np.pi @@ -111,7 +111,7 @@ class InterferometerGeometry(object): def longitude_radians(self): """ Returns - ------- + ======= float: The latitude position of the detector in radians """ @@ -122,7 +122,7 @@ class InterferometerGeometry(object): """ Updates related quantities if set to a different values. Returns - ------- + ======= float: The height about the surface in meters """ return self._elevation @@ -137,7 +137,7 @@ class InterferometerGeometry(object): """ Saves the x-arm azimuth in rad internally. Updates related quantities if set to a different values. Returns - ------- + ======= float: The x-arm azimuth in degrees. """ @@ -153,7 +153,7 @@ class InterferometerGeometry(object): """ Saves the y-arm azimuth in rad internally. Updates related quantities if set to a different values. Returns - ------- + ======= float: The y-arm azimuth in degrees. """ @@ -169,7 +169,7 @@ class InterferometerGeometry(object): """ Updates related quantities if set to a different values. Returns - ------- + ======= float: The x-arm tilt in radians. """ @@ -185,7 +185,7 @@ class InterferometerGeometry(object): """ Updates related quantities if set to a different values. Returns - ------- + ======= float: The y-arm tilt in radians. """ @@ -203,7 +203,7 @@ class InterferometerGeometry(object): Is automatically updated if related quantities are modified. Returns - ------- + ======= array_like: A 3D array representation of the vertex """ if not self._vertex_updated: @@ -219,7 +219,7 @@ class InterferometerGeometry(object): Is automatically updated if related quantities are modified. Returns - ------- + ======= array_like: A 3D array representation of a unit vector along the x-arm """ @@ -236,7 +236,7 @@ class InterferometerGeometry(object): Is automatically updated if related quantities are modified. Returns - ------- + ======= array_like: A 3D array representation of a unit vector along the y-arm """ @@ -256,7 +256,7 @@ class InterferometerGeometry(object): Is automatically updated if related quantities are modified. Returns - ------- + ======= array_like: A 3x3 array representation of the detector tensor """ @@ -274,16 +274,16 @@ class InterferometerGeometry(object): See Eqs. B14-B17 in arXiv:gr-qc/0008066 Parameters - ------- + ========== arm: str 'x' or 'y' (arm of the detector) Returns - ------- + ======= array_like: 3D unit vector along arm in cartesian Earth-based coordinates Raises - ------- + ====== ValueError: If arm is neither 'x' nor 'y' """ diff --git a/bilby/gw/detector/interferometer.py b/bilby/gw/detector/interferometer.py index d6e7288987bf97db65d557d3cc8dbf97af2f9e0c..9a0c5b9a80fd1f4c54d64ae7f34467434268e625 100644 --- a/bilby/gw/detector/interferometer.py +++ b/bilby/gw/detector/interferometer.py @@ -55,7 +55,7 @@ class Interferometer(object): Instantiate an Interferometer object. Parameters - ---------- + ========== name: str Interferometer name, e.g., H1. power_spectral_density: bilby.gw.detector.PowerSpectralDensity @@ -120,7 +120,7 @@ class Interferometer(object): """ Set the `Interferometer.strain_data` from a gwpy TimeSeries Parameters - ---------- + ========== time_series: gwpy.timeseries.timeseries.TimeSeries The data to set. @@ -133,7 +133,7 @@ class Interferometer(object): """ Set the `Interferometer.strain_data` from a numpy array Parameters - ---------- + ========== frequency_domain_strain: array_like The data to set. sampling_frequency: float @@ -161,7 +161,7 @@ class Interferometer(object): `bilby.gw.detector.InterferometerStrainData` for further information. Parameters - ---------- + ========== sampling_frequency: float The sampling frequency (in Hz) duration: float @@ -180,7 +180,7 @@ class Interferometer(object): """ Set the `Interferometer.strain_data` from a frame file Parameters - ---------- + ========== frame_file: str File from which to load data. channel: str @@ -208,7 +208,7 @@ class Interferometer(object): using strain_data.set_from_channel_name() Parameters - ---------- + ========== channel: str Channel to look for using gwpy in the format `IFO:Channel` sampling_frequency: float @@ -227,7 +227,7 @@ class Interferometer(object): """ Set the `Interferometer.strain_data` from a csv file Parameters - ---------- + ========== filename: str The path to the file to read in @@ -239,7 +239,7 @@ class Interferometer(object): """ Set the `Interferometer.strain_data` to zero noise Parameters - ---------- + ========== sampling_frequency: float The sampling frequency (in Hz) duration: float @@ -263,7 +263,7 @@ class Interferometer(object): Note: there is a typo in the definition of the wave-frame in Nishizawa et al. Parameters - ------- + ========== ra: float right ascension in radians dec: float @@ -276,7 +276,7 @@ class Interferometer(object): polarisation mode (e.g. 'plus', 'cross') Returns - ------- + ======= array_like: A 3x3 array representation of the antenna response for the specified mode """ @@ -287,14 +287,14 @@ class Interferometer(object): """ Get the detector response for a particular waveform Parameters - ------- + ========== waveform_polarizations: dict polarizations of the waveform parameters: dict parameters describing position and time of arrival of the signal Returns - ------- + ======= array_like: A 3x3 array representation of the detector response (signal observed in the interferometer) """ signal = {} @@ -335,7 +335,7 @@ class Interferometer(object): Defaults to the injection polarizations is both are given. Parameters - ---------- + ========== parameters: dict Parameters of the injection. injection_polarizations: dict, optional @@ -347,14 +347,14 @@ class Interferometer(object): A WaveformGenerator instance using the source model to inject. If `injection_polarizations` is given, this will be ignored. - Note - ------- + Notes + ===== if your signal takes a substantial amount of time to generate, or you experience buggy behaviour. It is preferable to provide the injection_polarizations directly. Returns - ------- + ======= injection_polarizations: dict The injected polarizations. This is the same as the injection_polarizations parameters if it was passed in. Otherwise it is the return value of waveform_generator.frequency_domain_strain(). @@ -377,20 +377,20 @@ class Interferometer(object): Alternative to `inject_signal` and `inject_signal_from_waveform_polarizations` Parameters - ---------- + ========== parameters: dict Parameters of the injection. waveform_generator: bilby.gw.waveform_generator.WaveformGenerator A WaveformGenerator instance using the source model to inject. - Note - ------- + Notes + ===== if your signal takes a substantial amount of time to generate, or you experience buggy behaviour. It is preferable to use the inject_signal_from_waveform_polarizations() method. Returns - ------- + ======= injection_polarizations: dict The internally generated injection parameters @@ -406,7 +406,7 @@ class Interferometer(object): Alternative to `inject_signal` and `inject_signal_from_waveform_generator`. Parameters - ---------- + ========== parameters: dict Parameters of the injection. injection_polarizations: dict @@ -439,7 +439,7 @@ class Interferometer(object): """ Returns the amplitude spectral density (ASD) given we know a power spectral denstiy (PSD) Returns - ------- + ======= array_like: An array representation of the ASD """ @@ -455,7 +455,7 @@ class Interferometer(object): This accounts for whether the data in the interferometer has been windowed. Returns - ------- + ======= array_like: An array representation of the PSD """ @@ -476,7 +476,7 @@ class Interferometer(object): Use the time delay function from utils. Parameters - ------- + ========== ra: float right ascension of source in radians dec: float @@ -485,7 +485,7 @@ class Interferometer(object): GPS time Returns - ------- + ======= float: The time delay from geocenter in seconds """ return gwutils.time_delay_geocentric(self.geometry.vertex, np.array([0, 0, 0]), ra, dec, time) @@ -498,7 +498,7 @@ class Interferometer(object): See Section 2.1 of LIGO-T980044-10 for the correct expression Returns - ------- + ======= array_like: A 3D array representation of the vertex """ return gwutils.get_vertex_position_geocentric(self.geometry.latitude_radians, @@ -509,12 +509,12 @@ class Interferometer(object): """ Parameters - ---------- + ========== signal: array_like Array containing the signal Returns - ------- + ======= float: The optimal signal to noise ratio possible squared """ return gwutils.optimal_snr_squared( @@ -526,12 +526,12 @@ class Interferometer(object): """ Parameters - ---------- + ========== signal: array_like Array containing the signal Returns - ------- + ======= float: The optimal signal to noise ratio possible squared """ return gwutils.noise_weighted_inner_product( @@ -544,12 +544,12 @@ class Interferometer(object): """ Parameters - ---------- + ========== signal: array_like Array containing the signal Returns - ------- + ======= float: The matched filter signal to noise ratio squared """ @@ -564,7 +564,7 @@ class Interferometer(object): """ Calculates the whitened data by dividing data by the amplitude spectral density Returns - ------- + ======= array_like: The whitened data """ return self.strain_data.frequency_domain_strain / self.amplitude_spectral_density_array @@ -573,7 +573,7 @@ class Interferometer(object): """ Creates a save file for the data in plain text format Parameters - ---------- + ========== outdir: str The output directory in which the data is supposed to be saved label: str @@ -641,7 +641,7 @@ class Interferometer(object): """ Plots the strain data in the time domain Parameters - ---------- + ========== outdir, label: str Used in setting the saved filename. bandpass: tuple, optional @@ -711,7 +711,7 @@ class Interferometer(object): """ Save the object to a hdf5 file Attributes - ---------- + ========== outdir: str, optional Output directory name of the file, defaults to 'outdir'. label: str, optional @@ -732,7 +732,7 @@ class Interferometer(object): """ Loads in an Interferometer object from an hdf5 file Parameters - ---------- + ========== filename: str If given, try to load from this filename diff --git a/bilby/gw/detector/networks.py b/bilby/gw/detector/networks.py index caef21368a8012dc9ea140e9a0c21a6b8a579329..93dd11b350552b6e2b3e2fc7f830556528248201 100644 --- a/bilby/gw/detector/networks.py +++ b/bilby/gw/detector/networks.py @@ -23,7 +23,7 @@ class InterferometerList(list): object has the data used in evaluating the likelihood Parameters - ---------- + ========== interferometers: iterable The list of interferometers """ @@ -76,7 +76,7 @@ class InterferometerList(list): `bilby.gw.detector.InterferometerStrainData` for further information. Parameters - ---------- + ========== sampling_frequency: float The sampling frequency (in Hz) duration: float @@ -98,7 +98,7 @@ class InterferometerList(list): `bilby.gw.detector.InterferometerStrainData` for further information. Parameters - ---------- + ========== sampling_frequency: float The sampling frequency (in Hz) duration: float @@ -116,7 +116,7 @@ class InterferometerList(list): """ Inject a signal into noise in each of the three detectors. Parameters - ---------- + ========== parameters: dict Parameters of the injection. injection_polarizations: dict @@ -128,14 +128,14 @@ class InterferometerList(list): A WaveformGenerator instance using the source model to inject. If `injection_polarizations` is given, this will be ignored. - Note - ---------- + Notes + ========== if your signal takes a substantial amount of time to generate, or you experience buggy behaviour. It is preferable to provide the injection_polarizations directly. Returns - ------- + ======= injection_polarizations: dict """ @@ -159,7 +159,7 @@ class InterferometerList(list): """ Creates a save file for the data in plain text format Parameters - ---------- + ========== outdir: str The output directory in which the data is supposed to be saved label: str @@ -224,7 +224,7 @@ class InterferometerList(list): """ Saves the object to a hdf5 file Parameters - ---------- + ========== outdir: str, optional Output directory name of the file label: str, optional @@ -244,7 +244,7 @@ class InterferometerList(list): """ Loads in an InterferometerList object from an hdf5 file Parameters - ---------- + ========== filename: str If given, try to load from this filename @@ -296,7 +296,7 @@ def get_event_data( Get open data for a specified event. Parameters - ---------- + ========== event: str Event descriptor, this can deal with some prefixes, e.g., '150914', 'GW150914', 'LVT151012' @@ -324,8 +324,8 @@ def get_event_data( All keyword arguments are passed to `gwpy.timeseries.TimeSeries.fetch_open_data()`. - Return - ------ + Returns + ====== list: A list of bilby.gw.detector.Interferometer objects """ @@ -376,12 +376,12 @@ def get_empty_interferometer(name): Parameters - ---------- + ========== name: str Interferometer identifier. Returns - ------- + ======= interferometer: Interferometer Interferometer instance """ @@ -427,7 +427,7 @@ def get_interferometer_with_open_data( PSD and data, given an center_time. Parameters - ---------- + ========== name: str Detector name, e.g., 'H1'. @@ -458,7 +458,7 @@ def get_interferometer_with_open_data( `gwpy.timeseries.TimeSeries.fetch_open_data()`. Returns - ------- + ======= bilby.gw.detector.Interferometer: An Interferometer instance with a PSD and frequency-domain strain data. """ diff --git a/bilby/gw/detector/psd.py b/bilby/gw/detector/psd.py index 7ed681477d2c1b4d177f3f3b27766906198a1724..e0ddd12d58a394c382aa644503ef45ee37abf084 100644 --- a/bilby/gw/detector/psd.py +++ b/bilby/gw/detector/psd.py @@ -15,17 +15,23 @@ class PowerSpectralDensity(object): """ Instantiate a new PowerSpectralDensity object. - Example - ------- + Examples + ======== Using the `from` method directly (here `psd_file` is a string containing the path to the file to load): - >>> power_spectral_density = PowerSpectralDensity.from_power_spectral_density_file(psd_file) + + .. code-block:: python + + >>> power_spectral_density = PowerSpectralDensity.from_power_spectral_density_file(psd_file) Alternatively (and equivalently) setting the psd_file directly: - >>> power_spectral_density = PowerSpectralDensity(psd_file=psd_file) + + .. code-block:: python + + >>> power_spectral_density = PowerSpectralDensity(psd_file=psd_file) Attributes - ---------- + ========== asd_array: array_like Array representation of the ASD asd_file: str @@ -78,7 +84,7 @@ class PowerSpectralDensity(object): """ Set the amplitude spectral density from a given file Parameters - ---------- + ========== asd_file: str File containing amplitude spectral density, format 'f h_f' @@ -90,7 +96,7 @@ class PowerSpectralDensity(object): """ Set the power spectral density from a given file Parameters - ---------- + ========== psd_file: str, optional File containing power spectral density, format 'f h_f' @@ -105,7 +111,7 @@ class PowerSpectralDensity(object): """ Generate power spectral density from a frame file Parameters - ---------- + ========== frame_file: str, optional Frame file to read data from. psd_start_time: float @@ -149,7 +155,7 @@ class PowerSpectralDensity(object): by loading data using `strain_data.set_from_channel_name` Parameters - ---------- + ========== psd_start_time: float Beginning of segment to analyse. psd_duration: float, optional @@ -293,18 +299,18 @@ class PowerSpectralDensity(object): Test if the file exists or is available in the default directory. Parameters - ---------- + ========== file: str, None A string pointing either to a PSD file, or the name of a psd file in the default directory. If none, no check is performed. Returns - ------- + ======= file: str The path to the PSD file to use Raises - ------ + ====== ValueError: If the PSD file cannot be located @@ -340,14 +346,14 @@ class PowerSpectralDensity(object): Generate frequency Gaussian noise scaled to the power spectral density. Parameters - ------- + ========== sampling_frequency: float sampling frequency of noise duration: float duration of noise Returns - ------- + ======= array_like: frequency domain strain of this noise realisation array_like: frequencies related to the frequency domain strain diff --git a/bilby/gw/detector/strain_data.py b/bilby/gw/detector/strain_data.py index da0a397827c3892316962513cc1a1da3e9ef2d6d..71d8acf6d52ee7f1eae4b6e176607ebd44523e17 100644 --- a/bilby/gw/detector/strain_data.py +++ b/bilby/gw/detector/strain_data.py @@ -38,7 +38,7 @@ class InterferometerStrainData(object): of the `set_from..` methods. Parameters - ---------- + ========== minimum_frequency: float Minimum frequency to analyse for detector. Default is 0. maximum_frequency: float @@ -84,12 +84,12 @@ class InterferometerStrainData(object): """ Check if time is within the data span Parameters - ---------- + ========== time: float The time to check Returns - ------- + ======= bool: A boolean stating whether the time is inside or outside the span @@ -134,7 +134,7 @@ class InterferometerStrainData(object): """ Set the notch_list Parameters - ---------- + ========== notch_list: list, bilby.gw.detector.strain_data.NotchList A list of length-2 tuples of the (max, min) frequency for the notches or a pre-made bilby NotchList. @@ -155,7 +155,7 @@ class InterferometerStrainData(object): """ Masking array for limiting the frequency band. Returns - ------- + ======= mask: np.ndarray An array of boolean values """ @@ -186,15 +186,15 @@ class InterferometerStrainData(object): See https://dcc.ligo.org/DocDB/0027/T040089/000/T040089-00.pdf Parameters - ---------- + ========== roll_off: float Rise time of window in seconds alpha: float Parameter to pass to tukey window, how much of segment falls into windowed part - Return - ------ + Returns + ====== window: array Window function over time array """ @@ -358,7 +358,7 @@ class InterferometerStrainData(object): PSD file. Parameters - ---------- + ========== fft_length: float Duration of the analysis segment. overlap: float @@ -374,7 +374,7 @@ class InterferometerStrainData(object): be removed before creating the PSD. Returns - ------- + ======= frequency_array, psd : array_like The frequencies and power spectral density array @@ -461,7 +461,7 @@ class InterferometerStrainData(object): is applied. Parameters - ---------- + ========== time_domain_strain: array_like An array of the time domain strain. sampling_frequency: float @@ -495,7 +495,7 @@ class InterferometerStrainData(object): is applied. Parameters - ---------- + ========== time_series: gwpy.timeseries.timeseries.TimeSeries The data to use @@ -525,7 +525,7 @@ class InterferometerStrainData(object): is applied. Parameters - ---------- + ========== name: str Detector name, e.g., 'H1'. start_time: float @@ -552,7 +552,7 @@ class InterferometerStrainData(object): """ Set the strain data from a csv file Parameters - ---------- + ========== filename: str The path to the file to read in @@ -566,7 +566,7 @@ class InterferometerStrainData(object): """ Set the `frequency_domain_strain` from a numpy array Parameters - ---------- + ========== frequency_domain_strain: array_like The data to set. sampling_frequency: float @@ -599,7 +599,7 @@ class InterferometerStrainData(object): """ Set the `frequency_domain_strain` by generating a noise realisation Parameters - ---------- + ========== power_spectral_density: bilby.gw.detector.PowerSpectralDensity A PowerSpectralDensity object used to generate the data sampling_frequency: float @@ -630,7 +630,7 @@ class InterferometerStrainData(object): """ Set the `frequency_domain_strain` to zero noise Parameters - ---------- + ========== sampling_frequency: float The sampling frequency (in Hz) duration: float @@ -653,7 +653,7 @@ class InterferometerStrainData(object): """ Set the `frequency_domain_strain` from a frame fiile Parameters - ---------- + ========== frame_file: str File from which to load data. channel: str @@ -689,7 +689,7 @@ class InterferometerStrainData(object): also verifies that the specified channel is given in the correct format. Parameters - ---------- + ========== channel: str Channel to look for using gwpy in the format `IFO:Channel` duration: float @@ -721,7 +721,7 @@ class Notch(object): """ A notch object storing the maximum and minimum frequency of the notch Parameters - ---------- + ========== minimum_frequency, maximum_frequency: float The minimum and maximum frequency of the notch @@ -739,12 +739,12 @@ class Notch(object): """ Get a boolean mask for the frequencies in frequency_array in the notch Parameters - ---------- + ========== frequency_array: np.ndarray An array of frequencies Returns - ------- + ======= idxs: np.ndarray An array of booleans which are True for frequencies in the notch @@ -757,12 +757,12 @@ class Notch(object): """ Check if freq is inside the notch Parameters - ---------- + ========== freq: float The frequency to check Returns - ------- + ======= True/False: If freq inside the notch, return True, else False """ @@ -778,13 +778,13 @@ class NotchList(list): """ A list of notches Parameters - ---------- + ========== notch_list: list A list of length-2 tuples of the (max, min) frequency for the notches. Raises - ------ + ====== ValueError If the list is malformed. """ @@ -801,12 +801,12 @@ class NotchList(list): """ Check if freq is inside the notch list Parameters - ---------- + ========== freq: float The frequency to check Returns - ------- + ======= True/False: If freq inside any of the notches, return True, else False """ diff --git a/bilby/gw/eos/eos.py b/bilby/gw/eos/eos.py index 8abb04c1f88189aa55de3b212d31e248d1648b6c..b2a45dc222c08756ec033b96b864f49813e8842e 100644 --- a/bilby/gw/eos/eos.py +++ b/bilby/gw/eos/eos.py @@ -38,20 +38,23 @@ class TabularEOS(object): Given a valid eos input format, such as 2-D array, an ascii file, or a string, parse, and interpolate Parameters - ---------- - eos (`numpy.ndarray`, `str`, ASCII TABLE): + ========== + eos: (numpy.ndarray, str, ASCII TABLE) if `numpy.ndarray` then user supplied pressure-density 2D numpy array. if `str` then given a valid eos name, relevant preshipped ASCII table will be loaded - if ASCII TABLE then given viable file extensions, which include .txt,.dat, etc (np.loadtxt used), - read in pressure density from file. - - sampling_flag (`bool`): Do you plan on sampling the parameterized EOS? Highly recommended. Defaults to False. - - warning_flag (`bool`): Keeps track of status of various physical checks on EoS. - - Attributes: - msg (str): Human readable string describing the exception. - code (int): Exception error code. + if ASCII TABLE then given viable file extensions, which include .txt,.dat, etc (np.loadtxt used), + read in pressure density from file. + sampling_flag: bool + Do you plan on sampling the parameterized EOS? Highly recommended. Defaults to False. + warning_flag: bool + Keeps track of status of various physical checks on EoS. + + Attributes + ========== + msg: str + Human readable string describing the exception. + code: int + Exception error code. """ def __init__(self, eos, sampling_flag=False, warning_flag=False): @@ -120,11 +123,15 @@ class TabularEOS(object): Find value of energy_from_pressure as in lalsimulation, return e = K * p**(3./5.) below min pressure - :param pressure (`float`): pressure in geometerized units. - :param interp_type (`str`): String specifying which interpolation type to use. - Currently implemented: 'CubicSpline', 'linear'. - - :param energy_density (`float`): energy-density in geometerized units. + Parameters + ========== + pressure: float + pressure in geometerized units. + interp_type: str + String specifying which interpolation type to use. + Currently implemented: 'CubicSpline', 'linear'. + energy_density: float + energy-density in geometerized units. """ pressure = np.atleast_1d(pressure) energy_returned = np.zeros(pressure.size) @@ -373,7 +380,7 @@ class TabularEOS(object): Given a representation in the form 'energy_density-pressure', plot the EoS in that space. Parameters - ---------- + ========== rep: str Representation to plot. For example, plotting in energy_density-pressure space, specify 'energy_density-pressure' @@ -387,7 +394,7 @@ class TabularEOS(object): Specifies unit system to plot. Currently can plot in CGS:'cgs', SI:'si', or geometerized:'geom' Returns - ------- + ======= fig: matplotlib.figure.Figure EOS plot. """ @@ -474,7 +481,7 @@ class SpectralDecompositionEOS(TabularEOS): arXiv: 1009.0738v2. Inherits from TabularEOS. Parameters - ---------- + ========== gammas: list List of adiabatic expansion parameters used to construct the equation of state in various @@ -615,18 +622,21 @@ class SpectralDecompositionEOS(TabularEOS): class EOSFamily(object): + """ + Create a EOS family and get mass-radius information - """Create a EOS family and get mass-radius information - - Parameters: - eos (`object`): Supply a `TabularEOS` class (or subclass) - npts (`float`): Number of points to calculate for mass-radius relation. - Default is 500. - - Note: - The mass-radius and mass-k2 data should be - populated here via the TOV solver upon object construction. - """ + Parameters + ========== + eos: object + Supply a `TabularEOS` class (or subclass) + npts: float + Number of points to calculate for mass-radius relation. Default is 500. + + Notes + ===== + The mass-radius and mass-k2 data should be + populated here via the TOV solver upon object construction. + """ def __init__(self, eos, npts=500): self.eos = eos @@ -754,7 +764,7 @@ class EOSFamily(object): Given a representation in the form 'm-r', plot the family in that space. Parameters - ---------- + ========== rep: str Representation to plot. For example, plotting in mass-radius space, specify 'm-r' xlim: list @@ -767,7 +777,7 @@ class EOSFamily(object): Specifies unit system to plot. Currently can plot in CGS:'cgs', SI:'si', or geometerized:'geom' Returns - ------- + ======= fig: matplotlib.figure.Figure EOS Family plot. """ diff --git a/bilby/gw/eos/tov_solver.py b/bilby/gw/eos/tov_solver.py index 2d0cba62f6f0b17d21730e3cb5be124b258c2279..5b5d7e13260ebff83318ab1478299db1a43f3602 100644 --- a/bilby/gw/eos/tov_solver.py +++ b/bilby/gw/eos/tov_solver.py @@ -6,32 +6,9 @@ from scipy.integrate import solve_ivp class IntegrateTOV: """Class that given an initial pressure a mass radius value and a k2-love number - - Attributes: - eos (:obj:): . - attr2 (:obj:`int`, optional): Description of `attr2`. - """ def __init__(self, eos, eps_0): - """Example of docstring on the __init__ method. - - The __init__ method may be documented in either the class level - docstring, or as a docstring on the __init__ method itself. - - Either form is acceptable, but the two should not be mixed. Choose one - convention to document the __init__ method and be consistent with it. - - Note: - Do not include the `self` parameter in the ``Args`` section. - - Args: - param1 (str): Description of `param1`. - param2 (:obj:`int`, optional): Description of `param2`. Multiple - lines are supported. - param3 (:obj:`list` of :obj:`str`): Description of `param3`. - - """ self.eos = eos # determine central values pseudo_enthalpy0 = self.eos.pseudo_enthalpy_from_energy_density(eps_0) diff --git a/bilby/gw/likelihood.py b/bilby/gw/likelihood.py index 519e4d59cec65861232fdce0c4a13f140179db22..c33a67d23ea5a9b642b8b34c77c8797d9e8a08f4 100644 --- a/bilby/gw/likelihood.py +++ b/bilby/gw/likelihood.py @@ -38,9 +38,8 @@ class GravitationalWaveTransient(Likelihood): domain assuming a colored Gaussian noise model described by a power spectral density. See Thrane & Talbot (2019), arxiv.org/abs/1809.02293. - Parameters - ---------- + ========== interferometers: list, bilby.gw.detector.InterferometerList A list of `bilby.detector.Interferometer` instances - contains the detector data and power spectral densities @@ -82,19 +81,22 @@ class GravitationalWaveTransient(Likelihood): Default is False, however using this parameter is strongly encouraged. reference_frame: (str, bilby.gw.detector.InterferometerList, list), optional Definition of the reference frame for the sky location. - - "sky": sample in RA/dec, this is the default - - e.g., "H1L1", ["H1", "L1"], InterferometerList(["H1", "L1"]): + + - :code:`sky`: sample in RA/dec, this is the default + - e.g., :code:`"H1L1", ["H1", "L1"], InterferometerList(["H1", "L1"])`: sample in azimuth and zenith, `azimuth` and `zenith` defined in the frame where the z-axis is aligned the the vector connecting H1 and L1. + time_reference: str, optional Name of the reference for the sampled time parameter. - - "geocent"/"geocenter": sample in the time at the Earth's center, - this is the default - - e.g., "H1": sample in the time of arrival at H1 + + - :code:`geocent`/:code:`geocenter`: sample in the time at the + Earth's center, this is the default + - e.g., :code:`H1`: sample in the time of arrival at H1 Returns - ------- + ======= Likelihood: `bilby.core.likelihood.Likelihood` A likelihood object, able to compute the likelihood of the data given some model parameters @@ -210,7 +212,7 @@ class GravitationalWaveTransient(Likelihood): Compute the snrs Parameters - ---------- + ========== waveform_polarizations: dict A dictionary of waveform polarizations and the corresponding array interferometer: bilby.gw.detector.Interferometer @@ -348,13 +350,13 @@ class GravitationalWaveTransient(Likelihood): See Eq. (C29-C32) of https://arxiv.org/abs/1809.02293 - Return - ------ + Returns + ======= sample: dict Returns the parameters with new samples. Notes - ----- + ===== This involves a deepcopy of the signal to avoid issues with waveform caching, as the signal is overwritten in place. """ @@ -390,12 +392,12 @@ class GravitationalWaveTransient(Likelihood): See Eq. (C29-C32) of https://arxiv.org/abs/1809.02293 Parameters - ---------- + ========== signal_polarizations: dict, optional Polarizations modes of the template. Returns - ------- + ======= new_time: float Sample from the time posterior. """ @@ -466,14 +468,14 @@ class GravitationalWaveTransient(Likelihood): See Eq. (C29-C32) of https://arxiv.org/abs/1809.02293 Parameters - ---------- + ========== signal_polarizations: dict, optional Polarizations modes of the template. Note: These are rescaled in place after the distance sample is - generated to allow further parameter reconstruction to occur. + generated to allow further parameter reconstruction to occur. Returns - ------- + ======= new_distance: float Sample from the distance posterior. """ @@ -527,17 +529,17 @@ class GravitationalWaveTransient(Likelihood): See Eq. (C29-C32) of https://arxiv.org/abs/1809.02293 Parameters - ---------- + ========== signal_polarizations: dict, optional Polarizations modes of the template. Returns - ------- + ======= new_phase: float Sample from the phase posterior. Notes - ----- + ===== This is only valid when assumes that mu(phi) \propto exp(-2i phi). """ self.parameters.update(self.get_sky_frame_parameters()) @@ -845,7 +847,7 @@ class BasicGravitationalWaveTransient(Likelihood): Parameters - ---------- + ========== interferometers: list A list of `bilby.gw.detector.Interferometer` instances - contains the detector data and power spectral densities @@ -866,7 +868,7 @@ class BasicGravitationalWaveTransient(Likelihood): """ Calculates the real part of noise log-likelihood Returns - ------- + ======= float: The real part of the noise log likelihood """ @@ -881,7 +883,7 @@ class BasicGravitationalWaveTransient(Likelihood): """ Calculates the real part of log-likelihood value Returns - ------- + ======= float: The real part of the log likelihood """ @@ -901,14 +903,14 @@ class BasicGravitationalWaveTransient(Likelihood): """ Parameters - ---------- + ========== waveform_polarizations: dict Dictionary containing the desired waveform polarization modes and the related strain interferometer: bilby.gw.detector.Interferometer The Interferometer object we want to have the log-likelihood for Returns - ------- + ======= float: The real part of the log-likelihood for this interferometer """ @@ -930,7 +932,7 @@ class ROQGravitationalWaveTransient(GravitationalWaveTransient): https://git.ligo.org/lscsoft/ROQ_data. Parameters - ---------- + ========== interferometers: list, bilby.gw.detector.InterferometerList A list of `bilby.detector.Interferometer` instances - contains the detector data and power spectral densities @@ -1030,7 +1032,7 @@ class ROQGravitationalWaveTransient(GravitationalWaveTransient): Compute the snrs for ROQ Parameters - ---------- + ========== waveform_polarizations: waveform interferometer: bilby.gw.detector.Interferometer @@ -1098,14 +1100,14 @@ class ROQGravitationalWaveTransient(GravitationalWaveTransient): Get the closest five times Parameters - ---------- + ========== time: float Time to check samples: array-like Available times Returns - ------- + ======= indices: list Indices nearest to time in_bounds: bool @@ -1120,7 +1122,7 @@ class ROQGravitationalWaveTransient(GravitationalWaveTransient): """ Perform checking that the prior and data are valid for the ROQ Parameters - ---------- + ========== ifo: bilby.gw.detector.Interferometer The interferometer """ @@ -1189,7 +1191,7 @@ class ROQGravitationalWaveTransient(GravitationalWaveTransient): """ Setup the time-dependent ROQ weights. Parameters - ---------- + ========== linear_matrix, quadratic_matrix: array_like Arrays of the linear and quadratic basis @@ -1309,7 +1311,7 @@ class ROQGravitationalWaveTransient(GravitationalWaveTransient): each detector. Returns - ------- + ======= delta_t: float Time resolution """ @@ -1318,7 +1320,7 @@ class ROQGravitationalWaveTransient(GravitationalWaveTransient): """ Parameters - ---------- + ========== freq: array-like Frequency array psd: array-like @@ -1327,7 +1329,7 @@ class ROQGravitationalWaveTransient(GravitationalWaveTransient): SNR dependent scaling factor Returns - ------- + ======= f_high: float The maximum frequency which must be considered """ @@ -1369,14 +1371,14 @@ def get_binary_black_hole_likelihood(interferometers): """ A wrapper to quickly set up a likelihood for BBH parameter estimation Parameters - ---------- + ========== interferometers: {bilby.gw.detector.InterferometerList, list} A list of `bilby.detector.Interferometer` instances, typically the output of either `bilby.detector.get_interferometer_with_open_data` or `bilby.detector.get_interferometer_with_fake_noise_and_injection` Returns - ------- + ======= bilby.GravitationalWaveTransient: The likelihood to pass to `run_sampler` """ diff --git a/bilby/gw/prior.py b/bilby/gw/prior.py index 3ffcfb193df6f34ed07deb9689def2adf444bb60..594f6f71126692539a6a66b6e863e3a7886d230a 100644 --- a/bilby/gw/prior.py +++ b/bilby/gw/prior.py @@ -40,7 +40,7 @@ def convert_to_flat_in_component_mass_prior(result, fraction=0.25): F(mc, q) -> G(m1, m2) is defined as J := m1^2 / mc Parameters - ---------- + ========== result: bilby.core.result.Result The output result complete with priors and posteriors fraction: float [0, 1] @@ -162,7 +162,7 @@ class Cosmological(Interped): Set either of the limits for redshift, luminosity, and comoving distances Parameters - ---------- + ========== value: float Limit value in current class' parameter limit_dict: dict @@ -298,7 +298,7 @@ class UniformInComponentsChirpMass(PowerLaw): prior is uniform in component masses. Parameters - ---------- + ========== minimum : float The minimum of chirp mass maximum : float @@ -339,7 +339,7 @@ class UniformInComponentsMassRatio(Prior): prior is uniform in component masses. Parameters - ---------- + ========== minimum : float The minimum of mass ratio maximum : float @@ -390,7 +390,7 @@ class AlignedSpin(Interped): This is an extension of e.g., (A7) of https://arxiv.org/abs/1805.10457. Parameters - ---------- + ========== a_prior: Prior Prior distribution for spin magnitude z_prior: Prior @@ -503,7 +503,7 @@ class BBHPriorDict(CBCPriorDict): """ Initialises a Prior set for Binary Black holes Parameters - ---------- + ========== dictionary: dict, optional See superclass filename: str, optional @@ -540,12 +540,12 @@ class BBHPriorDict(CBCPriorDict): - source-frame parameters Parameters - ---------- + ========== sample: dict Dictionary to convert Returns - ------- + ======= sample: dict Same as input """ @@ -561,14 +561,14 @@ class BBHPriorDict(CBCPriorDict): Already existing keys return True. Parameters - ---------- + ========== key: str The key to test. disable_logging: bool, optional Disable logging in this function call. Default is False. - Return - ------ + Returns + ====== redundant: bool Whether the key is redundant or not """ @@ -610,7 +610,7 @@ class BNSPriorDict(CBCPriorDict): """ Initialises a Prior set for Binary Neutron Stars Parameters - ---------- + ========== dictionary: dict, optional See superclass filename: str, optional @@ -647,12 +647,12 @@ class BNSPriorDict(CBCPriorDict): - source-frame parameters Parameters - ---------- + ========== sample: dict Dictionary to convert Returns - ------- + ======= sample: dict Same as input """ @@ -730,7 +730,7 @@ class CalibrationPriorDict(PriorDict): """ Initialises a Prior set for Binary Black holes Parameters - ---------- + ========== dictionary: dict, optional See superclass filename: str, optional @@ -747,7 +747,7 @@ class CalibrationPriorDict(PriorDict): possible. Parameters - ---------- + ========== outdir: str Output directory. label: str @@ -765,12 +765,15 @@ class CalibrationPriorDict(PriorDict): """ Load in the calibration envelope. - This is a text file with columns: + This is a text file with columns + + :: + frequency median-amplitude median-phase -1-sigma-amplitude -1-sigma-phase +1-sigma-amplitude +1-sigma-phase Parameters - ---------- + ========== envelope_file: str Name of file to read in. minimum_frequency: float @@ -780,10 +783,10 @@ class CalibrationPriorDict(PriorDict): n_nodes: int Number of nodes for the spline. label: str - Label for the names of the parameters, e.g., recalib_H1_ + Label for the names of the parameters, e.g., `recalib_H1_` Returns - ------- + ======= prior: PriorDict Priors for the relevant parameters. This includes the frequencies of the nodes which are _not_ sampled. @@ -840,7 +843,7 @@ class CalibrationPriorDict(PriorDict): This assumes Gaussian fluctuations about 0. Parameters - ---------- + ========== amplitude_sigma: float Uncertainty in the amplitude. phase_sigma: float @@ -852,10 +855,10 @@ class CalibrationPriorDict(PriorDict): n_nodes: int Number of nodes for the spline. label: str - Label for the names of the parameters, e.g., recalib_H1_ + Label for the names of the parameters, e.g., `recalib_H1_` Returns - ------- + ======= prior: PriorDict Priors for the relevant parameters. This includes the frequencies of the nodes which are _not_ sampled. @@ -909,7 +912,7 @@ class HealPixMapPriorDist(BaseJointPriorDist): distance distribution along a given line of sight. Parameters - ---------- + ========== hp_file : file path to .fits file .fits file that containes the 2D or 3D Healpix Map @@ -920,7 +923,7 @@ class HealPixMapPriorDist(BaseJointPriorDist): if this is for a 3D map Returns - ------- + ======= PriorDist : `bilby.gw.prior.HealPixMapPriorDist` A JointPriorDist object to store the joint prior distribution according to passed healpix map @@ -996,14 +999,14 @@ class HealPixMapPriorDist(BaseJointPriorDist): two values (ra, dec) or 3 (ra, dec, dist) if distance is included Parameters - ---------- + ========== samp : float, int must take in single value for pixel on unitcube to recale onto ra, dec (distance), for the map Prior kwargs : dict kwargs are all passed to _rescale() method Returns - ------- + ======= rescaled_sample : array_like sample to rescale onto the prior """ @@ -1033,12 +1036,12 @@ class HealPixMapPriorDist(BaseJointPriorDist): given pixel or line of sight. Parameters - ---------- + ========== pix_idx : int pixel index value to create the distribtuion for Returns - ------- + ======= None : None just updates these functions at new pixel values """ @@ -1063,12 +1066,12 @@ class HealPixMapPriorDist(BaseJointPriorDist): static method to check if array is properlly normalized and if not to normalize it. Parameters - ---------- + ========== array : array_like input array we want to renormalize if not already normalized Returns - ------- + ======= normed_array : array_like returns input array normalized """ @@ -1085,14 +1088,14 @@ class HealPixMapPriorDist(BaseJointPriorDist): given line of sight Parameters - ---------- + ========== size : int number of samples we want to draw kwargs : dict kwargs are all passed to be used Returns - ------- + ======= sample : array_like sample of ra, and dec (and distance if 3D=True) """ @@ -1118,13 +1121,13 @@ class HealPixMapPriorDist(BaseJointPriorDist): the bounds Parameters - ---------- + ========== pix : int integer for pixel to draw a distance from Returns - ------- + ======= dist : float sample drawn from the distance distribution at set pixel index """ @@ -1142,7 +1145,7 @@ class HealPixMapPriorDist(BaseJointPriorDist): Recursive function to uniformly draw ra, and dec values that are located in the given pixel Parameters - ---------- + ========== ra : float, int value drawn for rightascension dec : float, int @@ -1151,7 +1154,7 @@ class HealPixMapPriorDist(BaseJointPriorDist): pixel index for given pixel we want to get ra, and dec from Returns - ------- + ======= ra_dec : tuple this returns a tuple of ra, and dec sampled uniformly that are in the pixel given """ @@ -1169,7 +1172,7 @@ class HealPixMapPriorDist(BaseJointPriorDist): Method that checks if given rightacension and declination values are within the given pixel index and the bounds Parameters - ---------- + ========== ra : float, int rightascension value to check dec : float, int @@ -1178,7 +1181,7 @@ class HealPixMapPriorDist(BaseJointPriorDist): index for pixel we want to check in Returns - ------- + ======= bool : returns True if values inside pixel, False if not """ @@ -1194,7 +1197,7 @@ class HealPixMapPriorDist(BaseJointPriorDist): Overwrites the _lnprob method of BaseJoint Prior Parameters - ---------- + ========== samp : array_like samples of ra, dec to evaluate the lnprob at lnprob : array_like @@ -1203,7 +1206,7 @@ class HealPixMapPriorDist(BaseJointPriorDist): boolean array that flags samples that are out of the given bounds Returns - ------- + ======= lnprob : array_like lnprob values at each sample """ diff --git a/bilby/gw/result.py b/bilby/gw/result.py index 80d69f654c364dca37211ac1d16530054f9676e7..7116a5bf82bdb5723f9eba80fcdbf0186d34a599 100644 --- a/bilby/gw/result.py +++ b/bilby/gw/result.py @@ -118,12 +118,12 @@ class CompactBinaryCoalescenceResult(CoreResult): properties. Parameters - ---------- + ========== detector: str [H1, L1, V1] Detector name Returns - ------- + ======= injection_properties: dict A dictionary of the injection properties @@ -143,7 +143,7 @@ class CompactBinaryCoalescenceResult(CoreResult): Plot is saved to {self.outdir}/{self.label}_calibration.{format} Parameters - ---------- + ========== level: float Quantile for confidence levels, default=0.9, i.e., 90% interval format: str @@ -230,7 +230,7 @@ class CompactBinaryCoalescenceResult(CoreResult): If injection parameters can be found, the injection will be plotted. Parameters - ---------- + ========== interferometers: (list, bilby.gw.detector.InterferometerList, optional) level: float, optional symmetric confidence interval to show, default is 90% @@ -272,7 +272,7 @@ class CompactBinaryCoalescenceResult(CoreResult): If injection parameters can be found, the injection will be plotted. Parameters - ---------- + ========== interferometer: (str, bilby.gw.detector.interferometer.Interferometer) detector to use, if an Interferometer object is passed the data will be overlaid on the posterior @@ -296,7 +296,7 @@ class CompactBinaryCoalescenceResult(CoreResult): posterior. Default is 0.2 Returns - ------- + ======= fig: figure-handle, only is save=False Notes @@ -703,7 +703,7 @@ class CompactBinaryCoalescenceResult(CoreResult): required the installation of ligo.skymap. Parameters - ---------- + ========== maxpts: int Maximum number of samples to use, if None all samples are used trials: int diff --git a/bilby/gw/source.py b/bilby/gw/source.py index 83a819a77846d58e7366a4cffa3d8ef3e81f41de..96e61afc7c06cab2c57d925d9cda0e2ca20ab08f 100644 --- a/bilby/gw/source.py +++ b/bilby/gw/source.py @@ -24,7 +24,7 @@ def lal_binary_black_hole( """ A Binary Black Hole waveform model using lalsimulation Parameters - ---------- + ========== frequency_array: array_like The frequencies at which we want to calculate the strain mass_1: float @@ -53,34 +53,35 @@ def lal_binary_black_hole( kwargs: dict Optional keyword arguments Supported arguments: - waveform_approximant - reference_frequency - minimum_frequency - maximum_frequency - catch_waveform_errors - pn_spin_order - pn_tidal_order - pn_phase_order - pn_amplitude_order - mode_array: - Activate a specific mode array and evaluate the model using those - modes only. e.g. waveform_arguments = - dict(waveform_approximant='IMRPhenomHM', mode_array=[[2,2],[2,-2]) - returns the 22 and 2-2 modes only of IMRPhenomHM. You can only - specify modes that are included in that particular model. e.g. - waveform_arguments = dict(waveform_approximant='IMRPhenomHM', - mode_array=[[2,2],[2,-2],[5,5],[5,-5]]) is not allowed because the - 55 modes are not included in this model. Be aware that some models - only take positive modes and return the positive and the negative - mode together, while others need to call both. e.g. - waveform_arguments = dict(waveform_approximant='IMRPhenomHM', - mode_array=[[2,2],[4,-4]]) returns the 22 and 2-2 of IMRPhenomHM. - However, waveform_arguments = - dict(waveform_approximant='IMRPhenomXHM', mode_array=[[2,2],[4,-4]]) - returns the 22 and 4-4 of IMRPhenomXHM. + + - waveform_approximant + - reference_frequency + - minimum_frequency + - maximum_frequency + - catch_waveform_errors + - pn_spin_order + - pn_tidal_order + - pn_phase_order + - pn_amplitude_order + - mode_array: + Activate a specific mode array and evaluate the model using those + modes only. e.g. waveform_arguments = + dict(waveform_approximant='IMRPhenomHM', mode_array=[[2,2],[2,-2]) + returns the 22 and 2-2 modes only of IMRPhenomHM. You can only + specify modes that are included in that particular model. e.g. + waveform_arguments = dict(waveform_approximant='IMRPhenomHM', + mode_array=[[2,2],[2,-2],[5,5],[5,-5]]) is not allowed because the + 55 modes are not included in this model. Be aware that some models + only take positive modes and return the positive and the negative + mode together, while others need to call both. e.g. + waveform_arguments = dict(waveform_approximant='IMRPhenomHM', + mode_array=[[2,2],[4,-4]]) returns the 22 and 2-2 of IMRPhenomHM. + However, waveform_arguments = + dict(waveform_approximant='IMRPhenomXHM', mode_array=[[2,2],[4,-4]]) + returns the 22 and 4-4 of IMRPhenomXHM. Returns - ------- + ======= dict: A dictionary with the plus and cross polarisation strain modes """ waveform_kwargs = dict( @@ -103,7 +104,7 @@ def lal_binary_neutron_star( """ A Binary Neutron Star waveform model using lalsimulation Parameters - ---------- + ========== frequency_array: array_like The frequencies at which we want to calculate the strain mass_1: float @@ -136,34 +137,35 @@ def lal_binary_neutron_star( kwargs: dict Optional keyword arguments Supported arguments: - waveform_approximant - reference_frequency - minimum_frequency - maximum_frequency - catch_waveform_errors - pn_spin_order - pn_tidal_order - pn_phase_order - pn_amplitude_order - mode_array: - Activate a specific mode array and evaluate the model using those - modes only. e.g. waveform_arguments = - dict(waveform_approximant='IMRPhenomHM', mode_array=[[2,2],[2,-2]) - returns the 22 and 2-2 modes only of IMRPhenomHM. You can only - specify modes that are included in that particular model. e.g. - waveform_arguments = dict(waveform_approximant='IMRPhenomHM', - mode_array=[[2,2],[2,-2],[5,5],[5,-5]]) is not allowed because the - 55 modes are not included in this model. Be aware that some models - only take positive modes and return the positive and the negative - mode together, while others need to call both. e.g. - waveform_arguments = dict(waveform_approximant='IMRPhenomHM', - mode_array=[[2,2],[4,-4]]) returns the 22 a\nd 2-2 of IMRPhenomHM. - However, waveform_arguments = - dict(waveform_approximant='IMRPhenomXHM', mode_array=[[2,2],[4,-4]]) - returns the 22 and 4-4 of IMRPhenomXHM. + + - waveform_approximant + - reference_frequency + - minimum_frequency + - maximum_frequency + - catch_waveform_errors + - pn_spin_order + - pn_tidal_order + - pn_phase_order + - pn_amplitude_order + - mode_array: + Activate a specific mode array and evaluate the model using those + modes only. e.g. waveform_arguments = + dict(waveform_approximant='IMRPhenomHM', mode_array=[[2,2],[2,-2]) + returns the 22 and 2-2 modes only of IMRPhenomHM. You can only + specify modes that are included in that particular model. e.g. + waveform_arguments = dict(waveform_approximant='IMRPhenomHM', + mode_array=[[2,2],[2,-2],[5,5],[5,-5]]) is not allowed because the + 55 modes are not included in this model. Be aware that some models + only take positive modes and return the positive and the negative + mode together, while others need to call both. e.g. + waveform_arguments = dict(waveform_approximant='IMRPhenomHM', + mode_array=[[2,2],[4,-4]]) returns the 22 a\nd 2-2 of IMRPhenomHM. + However, waveform_arguments = + dict(waveform_approximant='IMRPhenomXHM', mode_array=[[2,2],[4,-4]]) + returns the 22 and 4-4 of IMRPhenomXHM. Returns - ------- + ======= dict: A dictionary with the plus and cross polarisation strain modes """ waveform_kwargs = dict( @@ -185,7 +187,7 @@ def lal_eccentric_binary_black_hole_no_spins( """ Eccentric binary black hole waveform model using lalsimulation (EccentricFD) Parameters - ---------- + ========== frequency_array: array_like The frequencies at which we want to calculate the strain mass_1: float @@ -203,34 +205,35 @@ def lal_eccentric_binary_black_hole_no_spins( kwargs: dict Optional keyword arguments Supported arguments: - waveform_approximant - reference_frequency - minimum_frequency - maximum_frequency - catch_waveform_errors - pn_spin_order - pn_tidal_order - pn_phase_order - pn_amplitude_order - mode_array: - Activate a specific mode array and evaluate the model using those - modes only. e.g. waveform_arguments = - dict(waveform_approximant='IMRPhenomHM', mode_array=[[2,2],[2,-2]) - returns the 22 and 2-2 modes only of IMRPhenomHM. You can only - specify modes that are included in that particular model. e.g. - waveform_arguments = dict(waveform_approximant='IMRPhenomHM', - mode_array=[[2,2],[2,-2],[5,5],[5,-5]]) is not allowed because the - 55 modes are not included in this model. Be aware that some models - only take positive modes and return the positive and the negative - mode together, while others need to call both. e.g. - waveform_arguments = dict(waveform_approximant='IMRPhenomHM', - mode_array=[[2,2],[4,-4]]) returns the 22 and 2-2 of IMRPhenomHM. - However, waveform_arguments = - dict(waveform_approximant='IMRPhenomXHM', mode_array=[[2,2],[4,-4]]) - returns the 22 and 4-4 of IMRPhenomXHM. + + - waveform_approximant + - reference_frequency + - minimum_frequency + - maximum_frequency + - catch_waveform_errors + - pn_spin_order + - pn_tidal_order + - pn_phase_order + - pn_amplitude_order + - mode_array: + Activate a specific mode array and evaluate the model using those + modes only. e.g. waveform_arguments = + dict(waveform_approximant='IMRPhenomHM', mode_array=[[2,2],[2,-2]) + returns the 22 and 2-2 modes only of IMRPhenomHM. You can only + specify modes that are included in that particular model. e.g. + waveform_arguments = dict(waveform_approximant='IMRPhenomHM', + mode_array=[[2,2],[2,-2],[5,5],[5,-5]]) is not allowed because the + 55 modes are not included in this model. Be aware that some models + only take positive modes and return the positive and the negative + mode together, while others need to call both. e.g. + waveform_arguments = dict(waveform_approximant='IMRPhenomHM', + mode_array=[[2,2],[4,-4]]) returns the 22 and 2-2 of IMRPhenomHM. + However, waveform_arguments = + dict(waveform_approximant='IMRPhenomXHM', mode_array=[[2,2],[4,-4]]) + returns the 22 and 4-4 of IMRPhenomXHM. Returns - ------- + ======= dict: A dictionary with the plus and cross polarisation strain modes """ waveform_kwargs = dict( @@ -252,7 +255,7 @@ def _base_lal_cbc_fd_waveform( """ Generate a cbc waveform model using lalsimulation Parameters - ---------- + ========== frequency_array: array_like The frequencies at which we want to calculate the strain mass_1: float @@ -287,7 +290,7 @@ def _base_lal_cbc_fd_waveform( Optional keyword arguments Returns - ------- + ======= dict: A dictionary with the plus and cross polarisation strain modes """ waveform_approximant = waveform_kwargs['waveform_approximant'] @@ -462,7 +465,7 @@ def _base_roq_waveform( See https://git.ligo.org/lscsoft/lalsuite/blob/master/lalsimulation/src/LALSimInspiral.c#L1460 Parameters - ---------- + ========== frequency_array: np.array This input is ignored for the roq source model mass_1: float @@ -489,7 +492,7 @@ def _base_roq_waveform( The phase at coalescence Waveform arguments - ------------------ + =================== Non-sampled extra data used in the source model calculation frequency_nodes_linear: np.array frequency_nodes_quadratic: np.array @@ -501,7 +504,7 @@ def _base_roq_waveform( loaded as `np.load(filename).T`. Returns - ------- + ======= waveform_polarizations: dict Dict containing plus and cross modes evaluated at the linear and quadratic frequency nodes. diff --git a/bilby/gw/utils.py b/bilby/gw/utils.py index abdcfae40adac05190494934833285d4cbfc8f4f..cf7c0f3e65d8cc0edcc584d6caa7830b96dff45a 100644 --- a/bilby/gw/utils.py +++ b/bilby/gw/utils.py @@ -30,14 +30,14 @@ def asd_from_freq_series(freq_data, df): Calculate the ASD from the frequency domain output of gaussian_noise() Parameters - ------- + ========== freq_data: array_like Array of complex frequency domain data df: float Spacing of freq_data, 1/(segment length) used to generate the gaussian noise Returns - ------- + ======= array_like: array of real-valued normalized frequency domain ASD data """ @@ -50,14 +50,14 @@ def psd_from_freq_series(freq_data, df): Calls asd_from_freq_series() and squares the output Parameters - ------- + ========== freq_data: array_like Array of complex frequency domain data df: float Spacing of freq_data, 1/(segment length) used to generate the gaussian noise Returns - ------- + ======= array_like: Real-valued normalized frequency domain PSD data """ @@ -67,8 +67,9 @@ def psd_from_freq_series(freq_data, df): def time_delay_geocentric(detector1, detector2, ra, dec, time): """ Calculate time delay between two detectors in geocentric coordinates based on XLALArrivaTimeDiff in TimeDelay.c + Parameters - ------- + ========== detector1: array_like Cartesian coordinate vector for the first detector in the geocentric frame generated by the Interferometer class as self.vertex. @@ -83,7 +84,7 @@ def time_delay_geocentric(detector1, detector2, ra, dec, time): GPS time in the geocentric frame Returns - ------- + ======= float: Time delay between the two detectors in the geocentric frame """ @@ -102,8 +103,9 @@ def get_polarization_tensor(ra, dec, time, psi, mode): [u, v, w] represent the Earth-frame [m, n, omega] represent the wave-frame Note: there is a typo in the definition of the wave-frame in Nishizawa et al. + Parameters - ------- + ========== ra: float right ascension in radians dec: float @@ -116,7 +118,7 @@ def get_polarization_tensor(ra, dec, time, psi, mode): polarisation mode Returns - ------- + ======= array_like: A 3x3 representation of the polarization_tensor for the specified mode. """ @@ -154,7 +156,7 @@ def get_vertex_position_geocentric(latitude, longitude, elevation): See Section 2.1 of LIGO-T980044-10 for the correct expression Parameters - ------- + ========== latitude: float Latitude in radians longitude: @@ -163,7 +165,7 @@ def get_vertex_position_geocentric(latitude, longitude, elevation): Elevation in meters Returns - ------- + ======= array_like: A 3D representation of the geocentric vertex position """ @@ -182,7 +184,7 @@ def inner_product(aa, bb, frequency, PSD): Calculate the inner product defined in the matched filter statistic Parameters - ------- + ========== aa, bb: array_like Single-sided Fourier transform, created, e.g., by the nfft function above frequency: array_like @@ -190,7 +192,7 @@ def inner_product(aa, bb, frequency, PSD): PSD: bilby.gw.detector.PowerSpectralDensity Returns - ------- + ======= The matched filter inner product for aa and bb """ @@ -209,7 +211,7 @@ def noise_weighted_inner_product(aa, bb, power_spectral_density, duration): Calculate the noise weighted inner product between two arrays. Parameters - ---------- + ========== aa: array_like Array to be complex conjugated bb: array_like @@ -220,7 +222,7 @@ def noise_weighted_inner_product(aa, bb, power_spectral_density, duration): duration of the data Returns - ------ + ====== Noise-weighted inner product. """ @@ -234,7 +236,7 @@ def matched_filter_snr(signal, frequency_domain_strain, power_spectral_density, This is <signal|frequency_domain_strain> / optimal_snr Parameters - ---------- + ========== signal: array_like Array containing the signal frequency_domain_strain: array_like @@ -245,7 +247,7 @@ def matched_filter_snr(signal, frequency_domain_strain, power_spectral_density, Time duration of the signal Returns - ------- + ======= float: The matched filter signal to noise ratio squared """ @@ -262,7 +264,7 @@ def optimal_snr_squared(signal, power_spectral_density, duration): """ Parameters - ---------- + ========== signal: array_like Array containing the signal power_spectral_density: array_like @@ -271,7 +273,7 @@ def optimal_snr_squared(signal, power_spectral_density, duration): Time duration of the signal Returns - ------- + ======= float: The matched filter signal to noise ratio squared """ @@ -301,12 +303,12 @@ def euler_rotation(delta_x): about the z-, y-, and z- axes respectively. Parameters - ---------- + ========== delta_x: array-like (3,) Vector onto which (0, 0, 1) should be mapped. Returns - ------- + ======= total_rotation: array-like (3,3) Rotation matrix which maps vectors from the frame in which delta_x is aligned with the z-axis to the target frame. @@ -343,6 +345,7 @@ def zenith_azimuth_to_theta_phi(zenith, azimuth, ifos): Convert from the 'detector frame' to the Earth frame. Parameters + ========== kappa: float The zenith angle in the detector frame eta: float @@ -351,7 +354,7 @@ def zenith_azimuth_to_theta_phi(zenith, azimuth, ifos): List of Interferometer objects defining the detector frame Returns - ------- + ======= theta, phi: float The zenith and azimuthal angles in the earth frame. """ @@ -372,6 +375,7 @@ def zenith_azimuth_to_ra_dec(zenith, azimuth, geocent_time, ifos): Convert from the 'detector frame' to the Earth frame. Parameters + ========== kappa: float The zenith angle in the detector frame eta: float @@ -382,7 +386,7 @@ def zenith_azimuth_to_ra_dec(zenith, azimuth, geocent_time, ifos): List of Interferometer objects defining the detector frame Returns - ------- + ======= ra, dec: float The zenith and azimuthal angles in the sky frame. """ @@ -399,26 +403,27 @@ def get_event_time(event): See https://www.gw-openscience.org/catalog/GWTC-1-confident/html/ Last update https://arxiv.org/abs/1811.12907: - GW150914 - GW151012 - GW151226 - GW170104 - GW170608 - GW170729 - GW170809 - GW170814 - GW170817 - GW170818 - GW170823 + + - GW150914 + - GW151012 + - GW151226 + - GW170104 + - GW170608 + - GW170729 + - GW170809 + - GW170814 + - GW170817 + - GW170818 + - GW170823 Parameters - ---------- + ========== event: str Event descriptor, this can deal with some prefixes, e.g., '151012', 'GW151012', 'LVT151012' Returns - ------ + ======= event_time: float Merger time """ @@ -452,7 +457,7 @@ def get_open_strain_data( later use Parameters - ---------- + ========== name: str The name of the detector to get data for start_time, end_time: float @@ -467,7 +472,7 @@ def get_open_strain_data( Passed to `gwpy.timeseries.TimeSeries.fetch_open_data` Returns - ------- + ======= strain: gwpy.timeseries.TimeSeries The object containing the strain data. If the connection to the open-data server fails, this function retruns `None`. @@ -506,7 +511,7 @@ def read_frame_file(file_name, start_time, end_time, channel=None, buffer_time=0 later use Parameters - ---------- + ========== file_name: str The name of the frame to read start_time, end_time: float @@ -520,7 +525,7 @@ def read_frame_file(file_name, start_time, end_time, channel=None, buffer_time=0 Passed to `gwpy.timeseries.TimeSeries.fetch_open_data` Returns - ----------- + ======= strain: gwpy.timeseries.TimeSeries """ @@ -581,7 +586,7 @@ def gracedb_to_json(gracedb, cred=None, service_url='https://gracedb.ligo.org/ap """ Script to download a GraceDB candidate Parameters - ---------- + ========== gracedb: str The UID of the GraceDB candidate cred: @@ -628,7 +633,7 @@ def gw_data_find(observatory, gps_start_time, duration, calibration, """ Builds a gw_data_find call and process output Parameters - ---------- + ========== observatory: str, {H1, L1, V1} Observatory description gps_start_time: float @@ -643,7 +648,7 @@ def gw_data_find(observatory, gps_start_time, duration, calibration, The LDRDataFind query type Returns - ------- + ======= output_cache_file: str Path to the output cache file @@ -692,11 +697,16 @@ def gw_data_find(observatory, gps_start_time, duration, calibration, def build_roq_weights(data, basis, deltaF): """ - for a data array and reduced basis compute roq weights - basis: (reduced basis element)*invV (the inverse Vandermonde matrix) - data: data set - PSD: detector noise power spectral density (must be same shape as data) - deltaF: integration element df + For a data array and reduced basis compute roq weights + + Parameters + ========== + data: array-like + data set + basis: array-like + (reduced basis element)*invV (the inverse Vandermonde matrix) + deltaF: float + integration element df """ weights = np.dot(data, np.conjugate(basis)) * deltaF * 4. @@ -712,7 +722,7 @@ def blockwise_dot_product(matrix_a, matrix_b, max_elements=int(2 ** 27), processed simultaneously. Parameters - ---------- + ========== matrix_a, matrix_b: array-like Matrices to be dot producted, matrix_b is complex conjugated. max_elements: int @@ -721,8 +731,8 @@ def blockwise_dot_product(matrix_a, matrix_b, max_elements=int(2 ** 27), out: array-like Output array - Return - ------ + Returns + ======= out: array-like Dot producted array """ @@ -808,7 +818,7 @@ def lalsim_SimInspiralFD( Safely call lalsimulation.SimInspiralFD Parameters - ---------- + ========== phase: float, int mass_1: float, int mass_2: float, int @@ -852,7 +862,7 @@ def lalsim_SimInspiralChooseFDWaveform( Safely call lalsimulation.SimInspiralChooseFDWaveform Parameters - ---------- + ========== phase: float, int mass_1: float, int mass_2: float, int @@ -904,7 +914,7 @@ def lalsim_SimInspiralChooseFDWaveformSequence( Safely call lalsimulation.SimInspiralChooseFDWaveformSequence Parameters - ---------- + ========== phase: float, int mass_1: float, int mass_2: float, int @@ -974,11 +984,11 @@ def spline_angle_xform(delta_psi): Based on the same function in lalinference.bayespputils Parameters - ---------- + ========== delta_psi: calibration phase uncertainity Returns - ------- + ======= float: delta_psi in degrees """ @@ -993,14 +1003,21 @@ def plot_spline_pos(log_freqs, samples, nfreqs=100, level=0.9, color='k', label= Adapted from the same function in lalinference.bayespputils Parameters - ---------- - log_freqs: The (log) location of spline control points. - samples: List of posterior draws of function at control points ``log_freqs`` - nfreqs: Number of points to evaluate spline at for plotting. - level: Credible level to fill in. - color: Color to plot with. - label: Label for plot. - xform: Function to transform the spline into plotted values. + ========== + log_freqs: array-like + The (log) location of spline control points. + samples: array-like + List of posterior draws of function at control points ``log_freqs`` + nfreqs: int + Number of points to evaluate spline at for plotting. + level: float + Credible level to fill in. + color: str + Color to plot with. + label: str + Label for plot. + xform: callable + Function to transform the spline into plotted values. """ freq_points = np.exp(log_freqs) @@ -1044,17 +1061,18 @@ class PropertyAccessor(object): of this class. This avoids lengthy code like - ``` - @property - def length(self): - return self.geometry.length - @length_setter - def length(self, length) - self.geometry.length = length + .. code-block:: python + + @property + def length(self): + return self.geometry.length + + @length_setter + def length(self, length) + self.geometry.length = length in the Interferometer class - ``` """ def __init__(self, container_instance_name, property_name): diff --git a/bilby/gw/waveform_generator.py b/bilby/gw/waveform_generator.py index ae4f0fd4b59bc2bf32511da034f20cda463eadc5..41eabe57f82499da432553de3b6d752532150066 100644 --- a/bilby/gw/waveform_generator.py +++ b/bilby/gw/waveform_generator.py @@ -21,7 +21,7 @@ class WaveformGenerator(object): """ A waveform generator Parameters - ---------- + ========== sampling_frequency: float, optional The sampling frequency duration: float, optional @@ -106,18 +106,18 @@ class WaveformGenerator(object): Automatically refers to the time_domain_source model via NFFT if no frequency_domain_source_model is given. Parameters - ---------- + ========== parameters: dict, optional Parameters to evaluate the waveform for, this overwrites `self.parameters`. If not provided will fall back to `self.parameters`. Returns - ------- + ======= array_like: The frequency domain strain for the given set of parameters Raises - ------- + ======= RuntimeError: If no source model is given """ @@ -136,18 +136,18 @@ class WaveformGenerator(object): given. Parameters - ---------- + ========== parameters: dict, optional Parameters to evaluate the waveform for, this overwrites `self.parameters`. If not provided will fall back to `self.parameters`. Returns - ------- + ======= array_like: The time domain strain for the given set of parameters Raises - ------- + ======= RuntimeError: If no source model is given """ @@ -201,7 +201,7 @@ class WaveformGenerator(object): """ The dictionary of parameters for source model. Returns - ------- + ======= dict: The dictionary of parameter key-value pairs """ @@ -216,7 +216,7 @@ class WaveformGenerator(object): (set.symmetric_difference is the opposite of set.intersection) Parameters - ---------- + ========== parameters: dict Input parameter dictionary, this is copied, passed to the conversion function and has self.waveform_arguments added to it. @@ -236,7 +236,7 @@ class WaveformGenerator(object): Infer the named arguments of the source model. Returns - ------- + ======= set: The names of the arguments of the source model. """ if self.frequency_domain_source_model is not None: diff --git a/bilby/hyper/likelihood.py b/bilby/hyper/likelihood.py index 25a1ad9abd5a442714c84fb51ef95771f6280918..c5ea8b0f20993f99be8fca07a43da1a74ba980e7 100644 --- a/bilby/hyper/likelihood.py +++ b/bilby/hyper/likelihood.py @@ -14,7 +14,7 @@ class HyperparameterLikelihood(Likelihood): See Eq. (34) of https://arxiv.org/abs/1809.02293 for a definition. Parameters - ---------- + ========== posteriors: list An list of pandas data frames of samples sets of samples. Each set may have a different size. @@ -77,12 +77,12 @@ class HyperparameterLikelihood(Likelihood): Convert list of pandas DataFrame object to dict of arrays. Parameters - ---------- + ========== max_samples: int, opt Maximum number of samples to take from each posterior, default is length of shortest posterior chain. Returns - ------- + ======= data: dict Dictionary containing arrays of size (n_posteriors, max_samples) There is a key for each shared key in self.posteriors. diff --git a/bilby/hyper/model.py b/bilby/hyper/model.py index 925525e68607fd2aaeb65377ae5d84464879e4d3..e5f4cb7bf4b1da6a807be9e02a173af94f73c171 100644 --- a/bilby/hyper/model.py +++ b/bilby/hyper/model.py @@ -11,7 +11,7 @@ class Model(object): def __init__(self, model_functions=None): """ Parameters - ---------- + ========== model_functions: list List of functions to compute. """ diff --git a/docs/conf.py b/docs/conf.py index 3f7baa1e30c05be5d907b00a6c97abcb248f3597..66d39d24b462dffcf497fed7fa9df145060ebd42 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -19,7 +19,7 @@ import os import sys import bilby -sys.path.insert(0, os.path.abspath('../bilby/')) +sys.path.insert(0, os.path.abspath('../')) # -- General configuration ------------------------------------------------ @@ -30,18 +30,26 @@ sys.path.insert(0, os.path.abspath('../bilby/')) # Add any Sphinx extension module names here, as strings. They can be # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # ones. -extensions = ['sphinx.ext.autodoc', 'sphinx.ext.mathjax', 'numpydoc', - 'nbsphinx', 'sphinx.ext.autosummary', - 'sphinx.ext.autosectionlabel', 'sphinx_tabs.tabs'] +extensions = [ + 'sphinx.ext.autodoc', + 'sphinx.ext.mathjax', + 'numpydoc', + 'nbsphinx', + 'sphinx.ext.autosummary', + 'sphinx.ext.autosectionlabel', + 'sphinx_tabs.tabs', + "sphinx.ext.viewcode", +] +autosummary_generate = True # Add any paths that contain templates here, relative to this directory. -templates_path = ['_templates'] +templates_path = ['templates'] # The suffix(es) of source filenames. # You can specify multiple suffix as a list of string: # source_suffix = ['.rst', '.md'] -source_suffix = '.txt' +source_suffix = ['.txt', ".rst", ".ipynb"] # The master toctree document. master_doc = 'index' @@ -173,3 +181,6 @@ texinfo_documents = [ ] numpydoc_show_class_members = False + +# nbsphinx options +nbsphinx_execute = "never" diff --git a/docs/conversion.txt b/docs/conversion.txt deleted file mode 100644 index d773537228bf3bd882ab3ad1131016f42070009a..0000000000000000000000000000000000000000 --- a/docs/conversion.txt +++ /dev/null @@ -1,17 +0,0 @@ -================================================== -Transient gravitational wave parameter conversions -================================================== - -Sometimes it is useful to sample in some parameters and return others in the output. -E.g., sampling in chirp mass and mass ratio can be much more efficient than sampling in component masses. - -We have many functions to do this. - -These are used in multiple places: -- `PriorDict`s have a `conversion_function`, for the GW PriorDicts, these are from this module. -- `WaveformGenerator`s can use a `parameter_conversion`, again these are from this module. -- A `conversion_function` can be passed to `run_sampler`, this is done as a post-processing step. -For CBCs either `generate_all_bbh_parameters` or `generate_all_bns_parameters` can be used. - -.. automodule:: bilby.gw.conversion - :members: diff --git a/docs/faq.txt b/docs/faq.txt index 55063c8f1411d343565fadb33cb1bdc022093c1d..0818b3e4a0ba402316d2a6dcf67dbfd9eaf4f045 100644 --- a/docs/faq.txt +++ b/docs/faq.txt @@ -9,11 +9,6 @@ I'm running into latex errors when :code:`bilby` tries to create plots, what sho Matplotlib can be a little finicky. We wrap plotting commands in a function which can set up the rcParams and we use environment variables to allow -configuration of this. See the docstring of this function for the allowed -configuration options - - -.. autofunction:: bilby.core.utils.latex_plot_format - - +configuration of this. See the docstring of this :code:`bilby.core.utils.latex_plot_format` +for the allowed configuration options. diff --git a/docs/gw_eos.txt b/docs/gw_eos.txt deleted file mode 100644 index 905c43669af6104bbf89d5fc357b92fe2926dd6f..0000000000000000000000000000000000000000 --- a/docs/gw_eos.txt +++ /dev/null @@ -1,20 +0,0 @@ -.. gw_eos: - -==================================================== -Neutron Star Equation of State Modeling and Sampling -==================================================== - -Base class for EOS objects. Initialized with energy-density pressure data from either an 2D array or file. Includes plotting routines for common representations of EOS: - -.. autoclass:: bilby.gw.eos.TabularEOS - :members: - -Spectral decomposition parameterized EOS from Lindblom, 2010 (ArXiv: 1009.0738): - -.. autoclass:: bilby.gw.eos.SpectralDecompositionEOS - :members: - -A Neutron star EOS 'Family'. Constructing this object maps the passed EOS object to its corresponding mass-radius relationship by solving the TOV equations. Also includes plotting routines for mass-radius and several equivalent representations of NS Family: - -.. autoclass:: bilby.gw.eos.EOSFamily - :members: diff --git a/docs/gw_likelihood.txt b/docs/gw_likelihood.txt deleted file mode 100644 index b1a90ea1b8f53497f6f534a62193ac09c2666f31..0000000000000000000000000000000000000000 --- a/docs/gw_likelihood.txt +++ /dev/null @@ -1,21 +0,0 @@ -.. gw_likelihood: - -======================================= -Transient gravitational wave likelihood -======================================= - -The likelihood for gravitational waves transient analysis is -:code:`GravitationalWaveTransient`: - -.. autoclass:: bilby.gw.likelihood.GravitationalWaveTransient - -The likelihood for gravitational waves transient analysis with an ROQ is -:code:`ROQGravitationalWaveTransient`: - -.. autoclass:: bilby.gw.likelihood.ROQGravitationalWaveTransient - -We also provide a simpler likelihood, :code:`BasicGravitationalWaveTransient`: - -.. autoclass:: bilby.gw.likelihood.BasicGravitationalWaveTransient - - diff --git a/docs/gw_prior.txt b/docs/gw_prior.txt index 03c360a52f3beb913feddbad3a6fd323a5e07b9d..1e14afc1b9b44c130ead9fbbee9e47e21f997cb1 100644 --- a/docs/gw_prior.txt +++ b/docs/gw_prior.txt @@ -98,35 +98,3 @@ produce priors directly from a Jupyter notebook. You can have a look at one of the Bilby tutorials to check how you define and plot priors in a Jupyter notebook: `making_priors.ipynb <https://git.ligo.org/lscsoft/bilby/-/blob/master/examples/tutorials/making_priors.ipynb>`_. -Notes on GW-specific priors -=========================== - -A Cosmological GW prior, :code:`Cosmological`: ----------------------------------------------- - -.. autoclass:: bilby.gw.prior.Cosmological - :members: - -Uniform in Comoving Volume GW Prior (inherited from Cosmological) :code:`UniformComovingVolume`: ------------------------------------------------------------------------------------------------- - -.. autoclass:: bilby.gw.prior.UniformComovingVolume - :members: - -Uniform in Source Frame GW Prior :code:`UniformSourceFrame`: ------------------------------------------------------------- - -.. autoclass:: bilby.gw.prior.UniformSourceFrame - :members: - -Aligned Spine GW Prior :code:`AlignedSpin`: -------------------------------------------- - -.. autoclass:: bilby.gw.prior.AlignedSpin - :members: - -HealPixMap JointPriorDist (See JointPriors in bilby.core.prior.joint) :code:`HealPixMapPriorDist`: --------------------------------------------------------------------------------------------------- - -.. autoclass:: bilby.gw.prior.HealPixMapPriorDist - :members: diff --git a/docs/index.txt b/docs/index.txt index 4f4074a62eb4a9f34e41e44923a182cc56c285f4..efdbda91f0adf10e31725228d88118eff7535723 100644 --- a/docs/index.txt +++ b/docs/index.txt @@ -5,7 +5,7 @@ Welcome to bilby's documentation! :members: .. toctree:: - :maxdepth: 3 + :maxdepth: 1 :caption: Contents: installation @@ -23,10 +23,32 @@ Welcome to bilby's documentation! gw_prior conversion gw_references - gw_eos writing-documentation hyperparameters containers faq +.. toctree:: + :maxdepth: 1 + :caption: Examples: + + making_priors + compare_samplers + fitting_with_x_and_y_errors + visualising_the_results + +.. currentmodule:: bilby + +API: +---- + +.. autosummary:: + :toctree: api + :template: custom-module-template.rst + :caption: API: + :recursive: + + core + gw + hyper diff --git a/docs/likelihood.txt b/docs/likelihood.txt index 0896768829da6758e0a7dbe33b072704d9161ead..46c38102bc83d2e06d8476eb4b5a5502fa181898 100644 --- a/docs/likelihood.txt +++ b/docs/likelihood.txt @@ -213,10 +213,7 @@ instantiating the likelihood:: return -0.5 * (np.sum((res / sigma)**2) + self.N*np.log(2*np.pi*sigma**2)) -We provide this general-purpose class as part of bilby: - -.. autoclass:: bilby.core.likelihood.GaussianLikelihood - :members: +We provide this general-purpose class as part of bilby :code:`bilby.core.likelihood.GaussianLikleihood` An example using this likelihood can be found `on this page <https://git.ligo.org/lscsoft/bilby/blob/master/examples/other_examples/linear_regression_unknown_noise.py>`_. @@ -226,19 +223,12 @@ Common likelihood functions As well as the Gaussian likelihood defined above, bilby provides the following common likelihood functions: -.. autoclass:: bilby.core.likelihood.PoissonLikelihood - :members: - -.. autoclass:: bilby.core.likelihood.StudentTLikelihood - :members: - -.. autoclass:: bilby.core.likelihood.ExponentialLikelihood - :members: +- :code:`bilby.core.likelihood.PoissonLikelihood` +- :code:`bilby.core.likelihood.StudentTLikelihood` +- :code:`bilby.core.likelihood.ExponentialLikelihood` Empty likelihood for subclassing -------------------------------- We provide an empty parent class which can be subclassed for alternative use -cases - -.. autoclass:: bilby.Likelihood +cases :code:`bilby.Likelihood` diff --git a/docs/prior.txt b/docs/prior.txt index cea75744c1ce37145b97422aaad4dc1f9e5c984f..2789e4726b69e1956928b253a8f89595f8975605 100644 --- a/docs/prior.txt +++ b/docs/prior.txt @@ -51,27 +51,12 @@ which provides extra functionality. For example, to sample from the prior: >>> priors.sample() {'a': 0.1234, 'b': 4.5232} -Here is the detailed API information: - -.. autoclass:: bilby.core.prior.PriorDict - :members: - - .. automethod:: __init__ - ----------------------- Available prior classes ----------------------- -We have provided a number of standard priors. Here we document a few of them, -note that this list is incomplete. - -.. autoclass:: bilby.core.prior.Uniform - :members: - :special-members: - -.. autoclass:: bilby.core.prior.Gaussian - :members: - :special-members: +We have provided a number of standard priors. +An exhaustive list can be found in the API section. --------------------------- Multivariate Gaussian prior @@ -113,13 +98,7 @@ a :class:`bilby.core.prior.MultivariateGaussian` prior for each parameter, e.g.: >>> priors['a'] = bilby.core.prior.MultivariateGaussian(mvg, 'a') >>> priors['b'] = bilby.core.prior.MultivariateGaussian(mvg, 'b') -The detailed API information for the distribution and prior classes are below: - -.. autoclass:: bilby.core.prior.MultivariateGaussianDist - :members: - -.. autoclass:: bilby.core.prior.MultivariateGaussian - :members: +The detailed API information for the distribution and prior classes can be found in the API section. ----------------------- Defining your own prior @@ -127,10 +106,6 @@ Defining your own prior You can define your own by subclassing the :code:`bilby.prior.Prior` class. -.. autoclass:: bilby.core.prior.Prior - :members: - :special-members: - ----------------- Prior Constraints ----------------- @@ -194,6 +169,3 @@ Sample from this distribution and plot the samples. plt.show() plt.close() ------- - - diff --git a/docs/samplers.txt b/docs/samplers.txt index 9ec78dd04c7140d51c5d3bda87b40130e1a3d5f0..a36471a5a1d1e9b39ab4e57e11454b3ba7057e9b 100644 --- a/docs/samplers.txt +++ b/docs/samplers.txt @@ -9,9 +9,7 @@ using the :code:`run_sampler` function. This is the core interface which you sho use to setup a sampler and switch between different samplers easily. This can be accessed via :code:`bilby.run_sampler` or -:code:`bilby.sampler.run_sampler`. Here is the detailed API information: - -.. autofunction:: bilby.run_sampler +:code:`bilby.core.sampler.run_sampler`. -------------------------- Switching between samplers @@ -34,7 +32,7 @@ handle this, we allow the user to pass arbitrary `keyword arguments :code:`run_sampler`. To document what keyword arguments are available, below we give the API for each sampler. In each of these, there is an "Other Parameters" section which contains information on all the available keyword arguments that -sampler takes. For example, to use the dynesty_ sampler with 250 live points, +sampler takes. For example, to use the :code:`dynesty` sampler with 250 live points, you would use .. code-block:: python @@ -55,63 +53,21 @@ recommended for direct use by the user, rather it should be accessed via the Nested Samplers --------------- -Dynesty -======= - -.. autoclass:: bilby.core.sampler.dynesty.Dynesty - - -Nestle -====== - -.. autoclass:: bilby.core.sampler.nestle.Nestle - - -CPNest -====== - -.. autoclass:: bilby.core.sampler.cpnest.Cpnest - - -PyMultinest -=========== - -.. autoclass:: bilby.core.sampler.pymultinest.Pymultinest - - -PyPolyChord -=========== - -.. autoclass:: bilby.core.sampler.polychord.PyPolyChord - -UltraNest -========= - -.. autoclass:: bilby.core.sampler.ultranest.Ultranest - -Dnest4 -========= - -.. autoclass:: bilby.core.sampler.dnest4.Dnest4 +- Dynesty: :code:`bilby.core.sampler.dynesty.Dynesty` +- Nestle :code:`bilby.core.sampler.nestle.Nestle` +- CPNest :code:`bilby.core.sampler.cpnest.Cpnest` +- PyMultiNest :code:`bilby.core.sampler.pymultinest.Pymultinest` +- PyPolyChord :code:`bilby.core.sampler.polychord.PyPolyChord` +- UltraNest :code:`bilby.core.sampler.ultranest.Ultranest` +- DNest4 :code:`bilby.core.sampler.dnest4.DNest4` ------------- MCMC samplers ------------- -Emcee -===== - -.. autoclass:: bilby.core.sampler.emcee.Emcee - -PTEmcee -======= - -.. autoclass:: bilby.core.sampler.ptemcee.Ptemcee - -pymc3 -===== - -.. autoclass:: bilby.core.sampler.pymc3.Pymc3 +- emcee :code:`bilby.core.sampler.emcee.Emcee` +- ptemcee :code:`bilby.core.sampler.ptemcee.Ptemcee` +- pymc3 :code:`bilby.core.sampler.pymc3.Pymc3` ------------------- @@ -207,21 +163,3 @@ enable this, we have base classes which can be subclassed. Below we provide the API for reference, note that the :code:`NestedSampler` and :code:`MCMCSampler` inherit from the :code:`Sampler` class. -A base Sampler class -==================== - -.. autoclass:: bilby.core.sampler.base_sampler.Sampler - :members: - -A Nested Sampler class -=========================== - -.. autoclass:: bilby.core.sampler.base_sampler.NestedSampler - :members: - -A MCMC Sampler class -=========================== - - -.. autoclass:: bilby.core.sampler.base_sampler.MCMCSampler - :members: diff --git a/docs/templates/custom-class-template.rst b/docs/templates/custom-class-template.rst new file mode 100644 index 0000000000000000000000000000000000000000..efab7a95410fbe876b4bdeb51f45101e08230499 --- /dev/null +++ b/docs/templates/custom-class-template.rst @@ -0,0 +1,33 @@ +{{ fullname | escape | underline}} + +.. currentmodule:: {{ module }} + +.. autoclass:: {{ objname }} + :members: + :show-inheritance: + :inherited-members: + + {% block methods %} + .. automethod:: __init__ + .. automethod:: __call__ + + {% if methods %} + .. rubric:: {{ _('Methods') }} + + .. autosummary:: + {% for item in methods %} + ~{{ name }}.{{ item }} + {%- endfor %} + {% endif %} + {% endblock %} + + {% block attributes %} + {% if attributes %} + .. rubric:: {{ _('Attributes') }} + + .. autosummary:: + {% for item in attributes %} + ~{{ name }}.{{ item }} + {%- endfor %} + {% endif %} + {% endblock %} diff --git a/docs/templates/custom-module-template.rst b/docs/templates/custom-module-template.rst new file mode 100644 index 0000000000000000000000000000000000000000..aeda5b733df1cc0755582b350c6e9d8de9f9585e --- /dev/null +++ b/docs/templates/custom-module-template.rst @@ -0,0 +1,73 @@ +{{ fullname | escape | underline}} + +.. currentmodule:: {{ fullname }} + +.. automodule:: {{ fullname }} + + {% block attributes %} + {% if attributes %} + .. rubric:: Module Attributes + + .. autosummary:: + :toctree: + {% for item in attributes %} + {% set _path = item.split('.') %} + {{ _path[-1] }} + {%- endfor %} + {% endif %} + {% endblock %} + + {% block functions %} + {% if functions %} + .. rubric:: {{ _('Functions') }} + + .. autosummary:: + :toctree: + {% for item in functions %} + {% set _path = item.split('.') %} + {{ _path[-1] }} + {%- endfor %} + {% endif %} + {% endblock %} + + {% block classes %} + {% if classes %} + .. rubric:: {{ _('Classes') }} + + .. autosummary:: + :toctree: + :template: custom-class-template.rst + {% for item in classes %} + {% set _path = item.split('.') %} + {{ _path[-1] }} + {%- endfor %} + {% endif %} + {% endblock %} + + {% block exceptions %} + {% if exceptions %} + .. rubric:: {{ _('Exceptions') }} + + .. autosummary:: + :toctree: + {% for item in exceptions %} + {% set _path = item.split('.') %} + {{ _path[-1] }} + {%- endfor %} + {% endif %} + {% endblock %} + +{% block modules %} +{% if modules %} +.. rubric:: Modules + +.. autosummary:: + :toctree: + :template: custom-module-template.rst + :recursive: +{% for item in modules %} + {% set _path = item.split('.') %} + {{ _path[-1] }} +{%- endfor %} +{% endif %} +{% endblock %} diff --git a/docs/transient-gw-data.txt b/docs/transient-gw-data.txt index 9f076a5eb4165b1a24bd09836196830b0704e1b3..78501e6d56b10110b46e3be839adf9b1a1d1ec49 100644 --- a/docs/transient-gw-data.txt +++ b/docs/transient-gw-data.txt @@ -72,11 +72,6 @@ this can also be done:: duration=duration, start_time=start_time) -Here is the full API: - -.. automethod:: bilby.gw.detector.Interferometer.set_strain_data_from_frequency_domain_strain - - Setting the strain data to be Gaussian noise ============================================ @@ -84,18 +79,18 @@ Often, for testing, you may want to just generate a realization of coloured Gaussian noise from the power spectral density. This can be done using this method: -.. automethod:: bilby.gw.detector.Interferometer.set_strain_data_from_power_spectral_density + >>> H1.set_strain_data_from_power_spectral_density Setting the strain data to be zero noise ======================================== You can also set the strain data without any noise at all -.. automethod:: bilby.gw.detector.Interferometer.set_strain_data_from_zero_noise + >>> H1.set_strain_data_from_zero_noise Injecting a signal ------------------ If you wish to inject a signal into the data, you can use this function -.. automethod:: bilby.gw.detector.Interferometer.inject_signal + >>> bilby.gw.detector.Interferometer.inject_signal diff --git a/docs/writing-documentation.txt b/docs/writing-documentation.txt index 45bd1494023940272417b955918551e460152fff..34c1402f2442ac9aa26779fbd92e74367b01f377 100644 --- a/docs/writing-documentation.txt +++ b/docs/writing-documentation.txt @@ -81,20 +81,12 @@ You would write:: reStructured text is very powerful, but can be quite particular. For example, **all code blocks must be indented by 3 spaces**. -Sphinx autodoc --------------- +Sphinx autosummary +------------------ Most of the documentation for ``bilby`` should be written in the `docstrings -<https://www.python.org/dev/peps/pep-0257/>`_ of the functions themselves. We -can add these into the online documentation using `autodoc -<http://www.sphinx-doc.org/en/master/ext/autodoc.html>`_. To add the documentation -for a class, add a line such as:: - - .. autoclass:: bilby.likelihood.GravitationalWaveTransient - :members: - -into your documentation file. Similarly, to document a function:: - - .. autofunction:: bilby.sampler.run_sampler - +<https://www.python.org/dev/peps/pep-0257/>`_ of the functions/classes themselves. We +can add these into the online documentation using `autosummary +<https://www.sphinx-doc.org/en/master/usage/extensions/autosummary.html>`_. +New code should automatically be added to the API tree. diff --git a/examples/tutorials/basic_ptmcmc_tutorial.ipynb b/examples/tutorials/basic_ptmcmc_tutorial.ipynb index 1c1874afcc904e28c02aaecbacf32e1d5966a221..d465dcfc1e18870a1ff7de16460c841bdc5fd2e5 100644 --- a/examples/tutorials/basic_ptmcmc_tutorial.ipynb +++ b/examples/tutorials/basic_ptmcmc_tutorial.ipynb @@ -2,17 +2,9 @@ "cells": [ { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "14:35 bilby INFO : Running bilby version: 0.3.1: (CLEAN) 06cce8b 2018-10-18 05:02:54 -0500\n" - ] - } - ], + "outputs": [], "source": [ "from __future__ import division, print_function\n", "import matplotlib.pyplot as plt\n", @@ -38,7 +30,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -78,69 +70,9 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/home/c1572221/src/bilby/bilby/gw/detector.py:1986: RuntimeWarning: invalid value encountered in multiply\n", - " frequency_domain_strain = self.__power_spectral_density_interpolated(frequencies) ** 0.5 * white_noise\n", - "14:36 bilby INFO : Injected signal in H1:\n", - "14:36 bilby INFO : optimal SNR = 12.09\n", - "14:36 bilby INFO : matched filter SNR = 10.88-0.37j\n", - "14:36 bilby INFO : luminosity_distance = 2000.0\n", - "14:36 bilby INFO : psi = 2.659\n", - "14:36 bilby INFO : a_2 = 0.3\n", - "14:36 bilby INFO : a_1 = 0.4\n", - "14:36 bilby INFO : geocent_time = 1126259642.41\n", - "14:36 bilby INFO : tilt_2 = 1.0\n", - "14:36 bilby INFO : phi_jl = 0.3\n", - "14:36 bilby INFO : ra = 1.375\n", - "14:36 bilby INFO : phase = 1.3\n", - "14:36 bilby INFO : mass_2 = 29.0\n", - "14:36 bilby INFO : mass_1 = 36.0\n", - "14:36 bilby INFO : phi_12 = 1.7\n", - "14:36 bilby INFO : dec = -1.2108\n", - "14:36 bilby INFO : iota = 0.4\n", - "14:36 bilby INFO : tilt_1 = 0.5\n", - "14:36 bilby INFO : Injected signal in L1:\n", - "14:36 bilby INFO : optimal SNR = 9.79\n", - "14:36 bilby INFO : matched filter SNR = 10.00+0.07j\n", - "14:36 bilby INFO : luminosity_distance = 2000.0\n", - "14:36 bilby INFO : psi = 2.659\n", - "14:36 bilby INFO : a_2 = 0.3\n", - "14:36 bilby INFO : a_1 = 0.4\n", - "14:36 bilby INFO : geocent_time = 1126259642.41\n", - "14:36 bilby INFO : tilt_2 = 1.0\n", - "14:36 bilby INFO : phi_jl = 0.3\n", - "14:36 bilby INFO : ra = 1.375\n", - "14:36 bilby INFO : phase = 1.3\n", - "14:36 bilby INFO : mass_2 = 29.0\n", - "14:36 bilby INFO : mass_1 = 36.0\n", - "14:36 bilby INFO : phi_12 = 1.7\n", - "14:36 bilby INFO : dec = -1.2108\n", - "14:36 bilby INFO : iota = 0.4\n", - "14:36 bilby INFO : tilt_1 = 0.5\n" - ] - }, - { - "data": { - "text/plain": [ - "[{'cross': array([0.+0.j, 0.+0.j, 0.+0.j, ..., 0.+0.j, 0.+0.j, 0.+0.j]),\n", - " 'plus': array([-0.-0.j, -0.-0.j, -0.-0.j, ..., -0.-0.j, -0.-0.j,\n", - " -0.-0.j])},\n", - " {'cross': array([0.+0.j, 0.+0.j, 0.+0.j, ..., 0.+0.j, 0.+0.j, 0.+0.j]),\n", - " 'plus': array([-0.-0.j, -0.-0.j, -0.-0.j, ..., -0.-0.j, -0.-0.j,\n", - " -0.-0.j])}]" - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "# Create the waveform_generator using a LAL BinaryBlackHole source function\n", "waveform_generator = bilby.gw.WaveformGenerator(\n", @@ -169,7 +101,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -188,7 +120,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -213,7 +145,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -244,7 +176,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -258,75 +190,9 @@ }, { "cell_type": "code", - "execution_count": 9, - "metadata": { - "scrolled": false - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "14:36 bilby INFO : Running for label 'label', output will be saved to 'outdir'\n", - "14:36 bilby INFO : Search parameters:\n", - "14:36 bilby INFO : mass_2 = Uniform(minimum=10, maximum=80, name='mass_1', latex_label='$m_1$', unit='$M_{\\\\\\\\odot}$')\n", - "14:36 bilby INFO : mass_1 = Uniform(minimum=10, maximum=80, name='mass_1', latex_label='$m_1$', unit='$M_{\\\\\\\\odot}$')\n", - "14:36 bilby INFO : phi_jl = 0.3\n", - "14:36 bilby INFO : dec = -1.2108\n", - "14:36 bilby INFO : psi = 2.659\n", - "14:36 bilby INFO : a_2 = 0.3\n", - "14:36 bilby INFO : a_1 = 0.4\n", - "14:36 bilby INFO : geocent_time = 1126259642.41\n", - "14:36 bilby INFO : luminosity_distance = 2000.0\n", - "14:36 bilby INFO : ra = 1.375\n", - "14:36 bilby INFO : phase = 1.3\n", - "14:36 bilby INFO : phi_12 = 1.7\n", - "14:36 bilby INFO : tilt_2 = 1.0\n", - "14:36 bilby INFO : iota = 0.4\n", - "14:36 bilby INFO : tilt_1 = 0.5\n", - "14:36 bilby INFO : Single likelihood evaluation took 1.670e-03 s\n", - "14:36 bilby INFO : Using sampler PTMCMCSampler with kwargs {'Niter': 10000, 'Tskip': 100, 'verbose': True, 'covUpdate': 1000, 'ladder': None, 'burn': 5000, 'NUTSweight': 0, 'AMweight': 1, 'logl_grad': None, 'HMCstepsize': 0.1, 'groups': None, 'Tmax': None, 'Tmin': 1, 'HMCsteps': 300, 'p0': None, 'neff': 10000, 'logp_grad': None, 'HMCweight': 0, 'loglkwargs': {}, 'custom_proposals': {'normal': [<bound method NormJump.normjump of <__main__.NormJump object at 0x7f2ee3cf7e10>>, 5], 'uniform': [<bound method UniformJump.unjump of <__main__.UniformJump object at 0x7f2ee3cf7d50>>, 1]}, 'logpargs': {}, 'MALAweight': 0, 'loglargs': {}, 'DEweight': 1, 'thin': 1, 'isave': 1000, 'outDir': None, 'SCAMweight': 1, 'logpkwargs': {}}\n", - "14:36 bilby INFO : Adding normal to proposals with weight 5\n", - "14:36 bilby INFO : Adding uniform to proposals with weight 1\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Finished 50.00 percent in 26.952440 s Acceptance rate = 0.1046667Adding DE jump with weight 1\n", - "Finished 90.00 percent in 47.835580 s Acceptance rate = 0.140667" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "14:37 bilby INFO : Sampling time: 0:00:53.551375\n", - "14:37 bilby ERROR : \n", - "\n", - " Saving the data has failed with the following message:\n", - " Can't pickle <type 'instancemethod'>: attribute lookup __builtin__.instancemethod failed \n", - "\n", - "\n", - "14:37 bilby INFO : Results saved to outdir/\n", - "14:37 bilby INFO : Summary of results:\n", - "nsamples: 4000\n", - "log_noise_evidence: -8086.279\n", - "log_evidence: nan +/- nan\n", - "log_bayes_factor: nan +/- nan\n", - "\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "Run Complete\n" - ] - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "# Initialise the likelihood by passing in the interferometer data (ifos) and\n", "# the waveoform generator\n", @@ -338,21 +204,9 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXUAAAGGCAYAAACE+xF/AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAIABJREFUeJzsvXl8VNX5+P8+s08m+wJhDQQQQZRdUdwFbV1b19paPrZVsNrFVj9aW621X1oVq7U/W1vQtvrpYlW0LrXWiqK4goioiIKQAGEnkH2SWTLn98csTCYzycxk5t47k/N+vXiRu57nybl57rnPec7zCCklCoVCocgPTHoLoFAoFIrMoYy6QqFQ5BHKqCuyihBioRBiXuj/2gTnXBw6Z6kQYkac4zcJIUqzL61Ckfsoo67ICPEMdshAj5NSrpBSLgPuTnDOLVLKFcCTseeEjPmi7EitUOQfyqgrMsXFcfbNA96L2u41CpdSrgPOiDr+cswps4C6TAioUAwGlFFXZJOK2B3x3ChSymYhxMXAbCnlkqhza1EGXaFICYveAihSI2QUF4Y2ZwN1UsqbY85ZGLVZGm0oE9wz4flCiLuBO6WUzQOTvG+klMuFEM1CiCellJeEdtdKKVcIIbLZtEKRVyijnnvcEm3EhRDvCyHuDu+L/jm0PUMIcVMiw57E+RcDN8UxrLcB3qjt+VHnNId86AeB8uiLYl8OIZ96rZRyObCWkPsltH9tX78IhULRG2XUc4jQKP1gzO6lBCcXw4a5h99aSrlOCHFLH7ft7/zloTaiWSSlXBwjG3FeHCuAy6K266LOLw0Z+HlRx6PdLbVAbehFUQtcKoR4IttfDApFrqN86rlFLXB3TNjfIaCHn1oI8WTYdy2EmAc83tdNE50f2rdUSlkX/kfQCN+ZjLChSdCtoXDFm+gZxVIfMuxLgLBPfRFwSeja5aHRe3PU/ZRBVyj6Qag0AbmFEGJeKPwvvL2UoPtifmi7Fng/dPhOgj735X3cL+nzQy+T8uj2o44tDLlcFAqFjiijnsOERtL1wBmhUXF4/0JgPkF/+PKoicdE90nqfCHEUimlihlXKAyMcr/kNg8Bl8QY9KXAipBhng/ME0I8megGyZ4fco+8H7tfoVAYC2XUc5RQqOHSGFfMDIKRJ3UAoWNjCRrqXvHhKZ6/iDRixlWaAIVCW5RRz0FCo+aXwwY9yhCWA1ujzw1NLj6R4FapnD+PFI26ShOgUGiPMuo5Rig6pRxYK4QoDRm9cFjgWkLRI1HnlxIcjTeHtmdELTbq9/zQvrgj7CRQaQIUCo1Rceo5RMjgho1edOz4cogst18Ucs0cJBgOWBqz4nQewdjxZUmeH82hFEWuIMYgR8WnR4hJE3BJ1LkqTYBCkSIq+kWRNUIvi/fCIZJCiK3AzETx5qGvkEVhwx4O3xRCvExwQljFqSsU/aBG6oq0Cblx4k1grgv5yFWaAIVCY5RRV6RNEouNVJoAhUJjlFFXZI1QHplZIbfKDHqnCRgrpVwSCne8mGCcfCRNAERcMuH7KYOuUPSD8qkrFApFHqFCGhUKhSKPUEZdoVAo8ghl1BUKhSKPUEZdoVAo8ggV/RLFkiVLZGmpfnmjQtWDNG1z68EuAMZVOLLeVrL6aSlTJtmzZ0/j7bffXqW3HIrBjTLqUZSWlrJw4cL+T8wSzc3N6PlSyTb5rt8dd9yxXW8ZFArlfjEQfr9fbxGySr7rp1AYAWXUDYTJpH133PJCPbe8UK9JW8nqp6VMCkW+odwvBqKgoEDzNt/Z3qpZW8nqp6VMCkW+oUbqBsLj8egtQlbJd/0UCiOgjLqB8Pl8eouQVfJdP4XCCCijbiBCGQnzlnzXT6EwAsqnbiAKCws1b3NkiV2ztpLVT0uZFIp8Qxl1A+HxeLDbtTVof/3akZq1lax+WsqkUOQbyv1iILxer94iZJV810+hMALKqA9yrn9mK9c/s1VvMXpgRJkUilxBuV8MhB4+9fW72zVrK1n9tJRJocg3lFE3EF6vF4fDuEmsxixezfamYKx5TZmdbbcel9L1RtdPocgHlFE3EEb3OW9v8iDvPRkAccOqlK83un4KRT6gfOoKhUKRR6iRuoFwuVyat3lElVOztpLVT0uZFIp8Qxl1A6FHatpllxyhWVvJ6qelTApFvqHcLwYi3xNe5bt+CoURUEZ9kLPwyc0sfHKz3mL0wIgyKRS5gnK/GAg9fOqbD3Rq1lay+mkpk0KRb6iRuoEIBAJ6i5BV8l0/hcIIKKNuIDo783uEmu/6KRRGQBl1hUKhyCOUT91A6FGjdNpw7fLNJKufljIpFPmGMuqDnPu/NE5vEXphRJkUilxBuV8MhNvt1luErJLv+ikURkAZ9UHOFX/7jCv+9pneYvTAiDIpFLmCcr8YCKdT+5wnO1u0W+WZrH5ayqRQ5BtqpG4gTKb87o5810+hMAJqpG4gOjo6dBmta0Vf+kUX4LBbBHNqirUUTaHIG5RRVxiCgRbgUCgUQZRRNxB2u13zNo/XcEScin5ayqVQ5BPKqBsIi0X77rjznLGatZWKflrKpVDkE2rmykB0dHToLUJWyXf9FAojoIz6IOeiRzZy0SMb9RajF0aUSaHIBZT7xUDYbDbN2zzo9mnWVir6aSmXQpFPqJG6gdDDqGtJvuunUBgBZdQNRHt7u94iZJV810+hMALK/aKIS/RioJoyO9tuPU5niRQKRTIoo24g9HBPnDGhNO7+bCwGSkW/RHIpFIq+UUbdQOix+Oi2+TWatZWKflrKpVDkE8qnbiDy3eec7/opFEZAGXUDIaXUvM0vPvQxX3zoY03aSkU/rWRSKPIN5X4xEFarVfM2O32BjN4v0QTrmMWrMXk7qO+wJDXxmmm5FIrBwqA36kKIhcBCgAULFrBgwQK8Xi9erxcAl8uF3+/H4/FEtgOBAJ2dncDhYsrhUm1OpxOTyRRZEm+327FYLJFtm82GzWaLuCJsNht2u5329vZIG3a7HbfbTSAQwGKx4HA4Itsmk4mCggK6urrw+/2RbY/Hg8/nQwhBYWEhHo8nokNhYWFCnUbaOmnuttLR0dFDpyH2bhobGwGodnTT2dnJlBIfjY2N2O12ymyByPFonYoC7bTcPhu73c6Mu96ksbERq9VKc3snn35/ElarlTkPfERXV1cPnUqsAZqbm/H7/Uws9lNg6qalpSUtnbLdT1JKrFZrr35SKIzAoH8SpZTLgGUAy5Ytkw6HA4fD0eu8oqKiHtsul6vHdthohInNGx67HduG3W7n0KFDlJSUxD2e6nbspGQinXZ6dwFBfaJ12u8xU1lZCcDeLjNOp5MNLdbIvmKXk6o7g0v5wyNvh8PBhhYrxcXBDIsbWw+f3+IzYbfbKS8vZ2t78EUVLVOLz0RpaTDiZVOrheoqc+R3kapO0WSjn/qTQaHQk0Fv1I1EIJA7Lodo90myIY9h/WrK7JFrVAy8QpFZlFE3EHp8wp87qVyztsL6JfNC0FIuhSKfUEbdQOjxKX/jaaM0aysV/bSUS6HIJ1RIo4EIT+LlK/mun0JhBJRRNxB6+NRPffBDTn3ww6zcO+w7FzesoqbMnpJ+2ZJJoch3lPvFQJhMxnzHho1zTVlqaQxiJ0APHTqUsXsrFIr4KKNuIGLD7YxCpqJT4umnIl8UisyijLqB6Orq0jXuOXY1aKbRWz+FYjCgjLqB8Pv9urYfnW43G+itn0IxGFBG3UDo4VP/eHcHhzr9A/Jrxy4mSkQq+l06tSotWRSKwY4y6gZCD5/6oU7/gEfnyfrFU9Hv2rnD0xVHoRjUGDPcYpASTkalNW5vtybtpKKfVjIpFPmGMuoGwufz6dLu2Q9v0KSdVPTTSiaFIt9QRt1ACCH0FiGr5Lt+CoURUEbdQBQWFuotQlbJd/0UCiOgjLqB0MunrhX5rp9CYQSUUTcQ4So++Uq+66dQGAFl1BVcOWuo3iL0wogyKRS5gDLqBkIvn/OVx1Zr0k4q+mklk0KRbyijbiD0ck80tmsTSpmKflrJpFDkG8qoGwi9jPrF/7dRk3ZS0U8rmRSKfEMZdYVCocgjlFE3EC6XS28Rskq+66dQGAGV0MtA5Htq2oHqF5vvXRXYUCh6o0bqBiLfF+cMVL9wvnd578kR465QKHqijLqCbx8/TG8RemFEmRSKXEAZdQOhl8/5sulDNGknFf20kkmhyDeUUTcQgUBAl3Ybmro0aScV/bSSSaHIN5RRNxCdnZ26tPv1xzZp0k6y+tktgtGL1yBuWMWYxauzLJVCkV8oo64wHHNqijllXImaEFUo0kAZdQOhR41SLcl3/RQKI6CMukKhUOQRyqgbCLfbrbcIWSXf9VMojIBaUarghlNG6i1CD4wmj0KRSyijbiCcTqcu7Z53VIUm7SSrn1byKBT5iHK/GAiTSZ/u2LRfG7dIsvpt2u/WTCaFIt9QRt1AdHR06NLuouWfa9JOsvotWv65ZjIpFPmGMuoKhUKRRyijbiDsdrveImSVfNdPoTACyqgbCIslv+et810/hcIIqL8yA9HR0aFJBEx0sQm7RWS9vTBa6adQDGaUUR+EhItNAKzY3KSzNL25dd5ovUVQKHIWZdQNhM1m07zNeUeUadZWsvpFy1RTZkfcsCrys0Kh6Btl1A2EHkZ9/a52AKaNKMx6W8nqFy2TqkOqUKSGmig1EO3t7Zq3ef2zW7n+2a2atJWsflrKpFDkG8qoKxQKRR6hjLqB0MP9oiX5rp9CYQSUUTcQ+b44J9/1UyiMwKCfKBVCLAQWAixYsIAFCxbg9Xrxer0AuFwu/H4/Ho8nsh0IBCL1NsPVfMK5wp1OJyaTKZLnxG63Y7FYIts2mw2bzRbxL9tsNux2O+3t7TQ3N1NZWYndbsftdhMIBLBYLDgcjsi2yWSioKCArq4u/H5/ZNvj8eDz+RBCUFhYiMfjiehQWFjYQ6cyW4C2tjY8Hg8jbZ00d1vp6OjIik5SSqxWK3a7nT179lBUVNSvTsNsXbT4rbS0tCTUqcQaoLW1VZd+itYpup8UCiMw6J9EKeUyYBnAsmXLpMPhwOFw9DqvqKiox7bL5eqxHVuqLXaRTex2bBt2ux0pJSUlJXGPp7odOyqOPt7kNVFUVERRURHXnmGN6JMNnaIpKiqisrKyXx2+G5Ip/LuId78Wn4ni4mJi0aKf+jquUOjNoDfqRsJqtWre5gljS/o/KUMkq5+WMikU+YbyqRsIPXzOb9e38HZ9iyZtJaufljIpFPmGMuoGQo8anj9+cRs/fnGbJm0lq5+WMikU+YYy6gYiEAjoLUJWyXf9FAojoHzqBiKbERTRmRn1yqGiIkQUiuyj/soMRDYjKaIzM+qFihRRKLKPMuoGwu12D9jwxY7IjZQQKxP6KRSKvlFG3UBkwuccPSIPp6zti/svGDfgNpMlWf20lEmhyDeUUTcQJpP289ZapNwNk6x+WsqkUOQbKvrFQMSudtSCFZubNKt+lKx+WsqkUOQbaqRuILq6ujT3OS9esQPQpgJSsvppKZNCkW+okbqB8Pv9eouQVfJdP4XCCCijbiD08KlrSb7rp1AYAeV+MRB6+NS1RAv9jBzSqVBogTLqBsLj8aTlUzfCatFkSFe/VEg1pFOhyDeUUTcQPp8vresGslp06cUT0rouHZLVT0uZFIp8Qxl1AyGE0LzNiUO0c/kkq5+WMikU+YYy6gaisFD7RTfPf3IQgPOOqsh6W8nql6pMueJ+Uii0QBl1A+HxeDQvlHHv6zsBbYx6svqlKpMRkpUpFEZBGXUDES6inClqyuyRyUIjjGAzqZ/RdFMojIIy6nlMPofz5bNuCsVAUKtBDIQePnUtyXf9FAojoIy6gci0+8Vo5Lt+CoURUO4XA5Gq0QtHfQzEp/yXyyemfW2qJKufljIpFPmGMuo5TCaiPkaVGa8SkRFlUihyBeV+MRAul0vzNh//YD+Pf7Bfk7aS1U9LmRSKfEON1A2EHqlpf//OHgAumz4k620lq5+WMikU+YYaqRsIj8ejtwhZJd/1UyiMgDLqCoVCkUcoo24g9PCpa0m+66dQGAFl1A1EIBDQW4Ssku/6KRRGQE2UGojOzk7NR7PLF0zWrK1k9dNSJkVuI4RYCNQBtcAKKWVdzPFSoB44FNpVDpwhpVwnhFgqpVwkhKgFaqWUK7SUPVsoo55jZDrNbGWhdcD3yDSZkimc9EuVtct9hBC1cQz2DGCclHJZaPtJ4JKYS2dJKcuirlkopVwXPiaEaAKWSSlvzqL4mqKMuoFIpoZnptPMPrJmLwBXHludsXsmItkapZmSKWzIVVm7vOBiYEnMvnnAe1HbM2Ivih59CyEuDr8AQtwppVyeUSkNgPKpD3IeWbuPR9bu01uMHhhRJoUh6ZVwP+Ru6UWC/eVCiHlCiJtCo/68QI3UDYTb7U56NJuL5Lt++UDI+C0EmoFxALGuiZAPehGwNbSrLpE/Oup+ALND594cdfxugiPm5kzqEYdbgKXRO6LcNmuBV4CZWZZBE5RRNxBf+ctGXgkW/VF+YIVe3BJjdN8XQtwkpVwS2q4Flkop54e2bwJuBhJNMsa7391R+y4GbopTv/Y2IDoD3Pyoc5pDBvkgwYnPCH28HObFyHExMFtKebOUslmN1BVZ4ZPGbuS9pwH56Qd2Op16i5AUsZPRg+zlulAIcTBsxAlGlsyOOn43PUe8y0L/ehEapR+M2b00dI+wgV0ecz+ARVLKxTH3IkqmMCuAy6K266LOL40x8LFGuzncbuhFlReRL6CMelZI1yj4Za/RStz75SomU25M4URPRufjy7UfZnI4/A+CoYKPQ8RIXwxcHT7Yj9ukFrhbCLEiKuLkEFAadb+l0VEtoRDFO5MRNBSWOEsIMY+g0V4UdbheCDE2Sr66mGtXCCEWCiEOEXxpRV+b0yijngXSNQrVju5+75dp/n3VlKzcNx4dHR1JjdYzLVNsPdNBNvJOiRgDOwMojRohzwr9Xxsa3ULIhZHgXuuEEPOjDDrAfEKj4pDBjbwUQu3VJXhRxH15REWzrIjZXxazPa6Pa/MqAkYZ9UFOgc2stwi9yLRM0UY8+iU7yN0sCQmNoC8lGPMdHfcdjiApD4cCCiHKw4t44t0rJqQwfN8zEjS9qI/7xHXxKHqTG9/Dg4RDXu2748G3dvPgW7s1actuT851pJVM4S8gee/JEeOuCI6gpZTLQpOhD4VcIhAaLcdEuqzlcHRLfzwEXBIzcgciE5fvD0BsRQg1UteBRCPEzu74PvVs8sSHBwC4du7wrLdlsST3uGkpk6IncVZuLg39W0ZPX3uY5tB1sROTsfe9m6D/PNGE5CKCE6ipyttnmoDQObUE5wLWEXQnLY+69lDo2mUahFVqghqp60CiEeII52GfetgPHF7mng90dHToLYKiD0ITjluj/OXRx0pDI+zmmIU8pdD3hGloFP5y2KAnCB+cR8xkZhLyhtMErAi5ZxK9FJaG5gXqCE2IhnSdGTLwywh+ReQFaqRuUJR/NzvETpoqerCW4Ig12rjOJzgCDhvtZQT94mEf9zyilu+HDO2sqIU98wjGkq+IehnMIzhqDl/T6yWSJP2mCQi9UOogMgk8P0qvraH9zSE58wJl1KP4eE+HrlESzb78/nCy2Wx6i5CwTxMZ+2QiZ8LutJ8VZ0FgDQkZt6WhBUXhFaWHpJSXRJ1zsxDi7tA5ABUx0S/zCMaOLwsZ8ZdD+6Nj0RNFm8Rz7/RFBTGj+zhuoNmh/fMIulnWhr44YuPn46YXyEWUUY/C2y1TCkXMdPREm097n7qWGMGoJyJR3yWKnIkm7E67446VWZFNS0IGr9dEZsw5CTMahtwcS0I/NwP9PtShEXRWH/4o189Wgi+riLsmn1aTAggppd4y6EposmQhwNlnnz3x2GOP3aSXLG+99Vbl3LlzG/VqP9vku35r1qyZ+MILLxTpLUe+EPrbjDeCXhdaPHQTh1MGIITYGhuPHr5HVJoDKWVwlV/ImJcT/EJ4Ml4sey4y6I26kRBCrJVSzur/zNxE6afIJCGjfFn4y0EI8XJUTprSkDupFrg5HP8eNvyhaxeFimTMA2bESUOQkyj3i0KhyEmSTBNQF0oidjFBn3p4fqCOYKTPxQSrHuWFQQc1UjcU+T7SU/opFNknv8Mtco98Xwqt9FMosowaqSsUCkUeoUbqCoVCkUcoo65QKBR5hIp+ieIXd90tHa6eywIPtPto7vQzY2Rh1tsPVXfJejt6ke/67dmzp/H222+vSnR8yZIlsrTUeAsXtx7sAmBchSOl6/Tuz3TlzhRa69/f8xVGGfUoHK5iZn7x8sj2wQ4fP398M6PK7PxhYfaDGpqbmzHiH32myHf97rjjju19HS8tLWXhwmSz1BqffO/P/tBa//6erzDK/ZKA7oDkntd20uUPsHzBZE3a9Pv9mrSjF/mu32BjsPenUfVXI/U4tHn83LNyJ6t3tPHgReM5cmiBJu3mSg3PdMl3/XKVW16oB+DOc8amdJ3e/Zmu3JlCb/0ToYx6FG2ebl7YeJBH1u6nqdPHvefX8u0TtCvUUFCgzctDL/Jdv1zlne2taV2nd3+mK3em0Fv/RBjzVaMTe1q9/Or1XbhsJlZ/bzo/PGWkpu17PPldUi3f9RtsDPb+NKr+aqQexVFDC/jkopmMr3Ris2j/vvP5fJq3qSX5rt9gY7D3p1H1V0Y9CofVxORql27tC5Hf+dTzXb/BxmDvT6Pqr4y6gSgszH4svJ7ku365ysiS9Mr66d2f6cqdKfTWPxHKqGeBJrcPb7dkaFFqlX48Hg92e/7Wzcx3/XKVv37tyLSu07s/05U7U+itfyKUUc8QbV1+/rZuP39cvZcPdrcjJcwdU8wvzh7LiWOLk/pU83q9GkiqH/mu32BjsPenUfVXRj0D7GvzMveB9Ww92MXIEhuXTa1CAv/aeIiTf/chx40uYuW1x+C0mvUWVaHoxfXPbAXg/i/lVjW3XJU72yijngHOfXgDu1o8/PLsMcwZXRQZlS+YOZRnPznI0nf2cMsL2/p9+Izqo8sU+a5frrJ+d3ta1+ndn+nKnSn01j8RyqgPkPcb2li7s51Fc6o5vqZnMjCH1cRl06rY1tTFH97ZzY/PGMWQPvzsXq8Xh0Of5ERakO/6DSbGLF5Nt8fNTreZmjI72249Tm+RNMeoz7NafDRA/vdfdbhsJs6dXJHwnMunVeH1S369alef9zKqjy5T5Lt+g4ntTR4++P7RyHtPZnuTMRfhZBujPs/KqA+A7oDk9a0tnDmxjEJ7Yn/56DIHs0YV8tf392konUKhGIwo98sA6PIFCEiocln7PdfbLSl19v3rdrn0W/ikBfmuX65yRJUzrev07s905c4UeuufCGXUB4CnOwCA1dz/B8/eVi/zJ5b1eY5RU3lminzXL1dZdskRaV2nd3+mK3em0Fv/RCj3ywCwm01YTYLPD3T2ed6b9S3sa/cxdVjfb3ajJgjKFPmu32BjsPenUfVXRn0AOK0mvj13GC9vbkpo2He1eLjr1QYmVjn57kkjNJZQoeifhU9uZuGTm/UWI2VyVe5so4z6AHD7Aiw8rpoih5lfr9rF+zvb6PB2A8FSeA+8uYtrlm/BJAT/WXg09n4yPxrVR5cp8l2/XGXzgU429/O1GQ+9+zNduTOF3vonQvnUB0CB1USFy8YdZ9Zww/N13Ph8sBLL8GIbh9w+/AG4dGolN50+ijHl/cezBgKBbIusK/mu32BjsPenUfVXRn0AmEyCIYVWrpozjAWzhrJ2ZxtrG9r5YFc7hXYzt84bzbjK5GfoOzs7Dfv2zwT5rt9gY7D3p1H1V0Z9gJhMIhijbjdz5sRyzpxYHve8QEDi9gUosJowmYyZh1mhUOQ+OW/UhRBmYDhQIKXcpLc8iXD7ArR2+QFLwoVKqdQ83Nvq5eHVe9h2yMPoMjs1ZXbmH1HGcJ1zTPeFUWs6DnamDU8vh4ne/Zmu3JlCb/0TkdNGPWTQvw54gHFCCLuU8jadxYpLgdUEWEL/902iUb2UktU72vjtm7t5fP0B/AFJqcNMc1dwcrbUYeY/C4/muJgcNApFX+RqlsNclTvb5KxRDxn0rwKrpZSfhvZ9RwgxREq5X0/ZpJT4umWPOqcRNw2Jjbbb7aagoAC3L0CT20ezENgtAn9A8u72Nm7+Vz2fN3ZSYDVx/lHlfGlKJaNK7Xj9AeoOdfH/Xt7BKQ9+yKrrpnLsaOMZ9rB+ivxgsPenUfXPWaNO0OXyoZTyUyGEVUrpA7YC3ancRAixEFgIsGDBAhYsWIDX640k63G5XPj9/shCA5fLRSAQoLMzGEoV7lS32x28n8XGxY9+hs/Tyf1fqmXisFIsFgsdHR0A2Gw2fFg4cKgZl81MSaETm83G2roDvLt5F09u/pQdbZISix+rkHR2Cxo9JoY4AowssnD5yWUcO7YSh/AjA5343V1YbE4mFAX47ReqWPzKDh5+q4EjS0dFdCgsLByQTk6nE5PJFNHBbrf30slms9He3h7ZttvttLe3I6XEarVit9tpbW0FwGKx4HA4cLvdBAIBTCYTBQUFdHV14ff7I9sejwefz4cQgsLCQjwej+F0CutgseTun9IVf/sM0L+SUKrkqtzZJnefRKgBjgE+AqQQYjZwHHC5EKIDaAN+EjL2CZFSLgOWASxbtkw6HI646TSLiop6bMfOehcUFODxBzj5tx/yXkMXRXYL8x7dwcpvlzF9pBOn83AUTCAgsdvtFFhNvLy5iUXLP2V7k4eRBQFGV5Uwd4idIrsZl82ExSwwCUF5gYXja4oxJ5pktdgocxZSWeHmsY+a+e0lkyguPvylkK5O0UTrEG87to3YUl9Dhw7t0Ubs+f1tx97PCDoZMfVqquxsSW9lZOzvSmvSlTtT6K1/InLWqEsp3xRCXCmEeA+oAkYDzcAnQAdgB+4TQnxfSqlJQOmPXqhnTUMb1580gpkjC/neM1s56Xfr2fnTOT2SebV7u3l49V4eWbOXj/e6GVVi48ZTRnDSaAfFhQMLkTp1XAn/3dzEyi3NnHVk/EgcvTCZBt9at0x/CWbjC6PA1E2x2U9jY2PSX001Bd00NzfT2dlJiTVAa2ur5jqNsHUhkLQDdClmAAAgAElEQVS0tPTSSYsvwa6uLkN+CeaMURdCWAj60LuAbVLKNVLKq4QQFwAlwJHA01LKtVHXXE9wIvVRLWScNTI4G//ujlZ8AUlzp5+jh7kotAV96S2dfh54cxdLVu6kzdPNhEoHC+dUc9ExldjMJvwdzQOWYebIQmxmwWMfHDCcUe/o6DDs6CZbZPJLMJpMfmG4A2bcATOVlZUJr4/d3u42Y7fbqayspLTQSckd6wF6FMzItk67vMHtkpKSpGTO9JdgR0dHj98ZGONLMCeMemhS9FpgCHA+sEcI8VMp5Wop5bOhcy4CNoR+dkgpu4C/AOO1kvNrM4fS7u3mmuVbeHd7GyfUFPHrC8ZhMQve3d7KeX/cQGOHnxNqilgwaygTh2R+ksVmMXHBlAr+b+0+vn/SCKaPNGbJLUVuMmbxarY3eagpO2x8oqseiRtW6SGWIgrDG3UhhAm4BlgppfxYCPE2cDtQC6wWQpillN3A8UAB8BcpZZcQwgV8CXhNS3kXHT+cyUNduLv8VBbZOKrKyY6mLk7+3YdUuaw8eOF4Jg2Nb8yFJXGpu1RYMHMo/93UxDkPb2DpJRM4d3J5pG6qnsSOQhTGILYMY19sb/Ig7z0ZgLa2tmyJlBSpyJ0NjPo8G96oAwJYJ6X8GEBK+W8hxDTgcuAxwEHQh/4ocKIQ4nIp5WME/ZjLpZQNWgt8Um1Jj+0VHzbi65Ys/sIYxlYk/pwSpsTVk1Kh0G7m52eN4d7Xd3L+nz7hf08dyZLzajNy74GQyxEi+cyd54xN6zq9+zNduTOF3vonIhdmrlzAz4QQrwohxoT2PQd8LoT4CfCQEOJ7IaP/DnCaEOJK4CU9DHo83trWQrHdTE1532/2gDdzGeeOGe7ij5cewfmTy7nntZ3c9/rOjN07XcKTRIr8YLD3p1H1N+arJgopZasQ4gZgspRyW8gdMwd4AwgApcD9QgghpfwNoUgDI/H2tlaGl9gwaewCsZgF3ztpBC1d3dzwXB2njy9l2gjlY1f05KJHNgLw1JWTNWkv7JeHnhOrqaK13LlCLozUkVJukFI+EbXrGSnlM1LK54C7CLpezoGID95QfGXaED7b30n9wa4+zxPm/mudporZJLjh1BFYzYKH3t2T8fungs2WmTkDRWY56PZx0N3nco64pNufYb+8vPfkiHFPh3TlzhRGfZ4NZwD7Q0oZkFI2QtCASykPAs8CO8LH9ZQvHt89aTgOi4nH1vedvUBYMm/UAYrsFk6uLeHRtfto96S04DajGPWPQJEeg70/jap/zhl1ACHECCHEIillQAhhA0YB9+stVyLKC6x858ThrNjczN/W7afLF/+9E/C4sybDuZPK6fAGmHDnGh58azedPu2Ne3ihhSI/GOz9aVT9E/rUhRAXEgwbTIc6KeXTaV6bDCcDvxZCfAZMBJ6VUu7IYnsD5udfqOHd7a08vHovT3/cyOXTqjh+TDGVLmu/Ze4ywbQRhfzyi2P467r9XPf0Fm77zzae+PokzjiiLOttKxQK7ehrovRM4O4073sTkE2j/jjwAVAOvCCl3JXFtjKC02rmje9M4426Fr7/zy387u09/O7toI+7yG7miConc4eZOWmSi0pXdtwwx48pZk5NER/u6eD+Vbs4c9nHLDm3lu+eOLxHRslsYdTP1cHOGRNK07pO7/5MV+5Mobf+iejLqL8vpaxP56ZCiHVpypMUIb/5Z9lsI1ucVFvCuhtm8t6ONjbu62BXi5ftTV38d1MTj65v5VC3nW8dV53yfZs7/azb1c4nezt4q76Vr88cwjmTK3qdJ4Rg2vBCfnfheH75SgM3Pl/HkpUNrLjmGI4elt3SXEZdrDHYuW1+TVrX6d2f6cqdKfTWPxEJjbqU8qF0bzqQawcLs0cXMXv04TwSj63bz+LnP2bmqNRDDl/9vJm7Vjbg65ZYTOCwmvjV67uwWUzMT+BecdnMLP5CDe81tHPPazuZ+8B6/rvoaOZkcZVee3u7Yf8QFKmHGmrRn5kKf8wGRn2eBxSnLoSYJqVcH/p5upTyg8yINfj47Zu7KHNaOCaF0XJLp58/vLOH/2xqospl4fyjKhhWbENK+OOavdz5agMlDgvHji5CSklzZzcmU7AKk9VsQgjBsaOLeOBL47jh+TpOe/Aj/n31FE4bn53PWillVu6rGBhffOhjoGcKgGRyuGjRn33JFJb7xauPzroc8TDq85yWURdCPEGwIMVBYD2AlPIDIcTpUspXMyjfoOCQ28eahna+ObU46QVKDc0evv3U57i9AU4aW8yp40p6VFG6cvZQlr6zl5/+ZxsnjC1m9fY23FFRNzaz4IenjOSsiWVUF9v4/0KG/dyHN/Di1VM4eVzmDbvVmp25AsXA6EwQjdUfqfRn7Ig7E6Qrd6Yw6vOcllGXUl4qhJgO3C2EmB/aHfajK6OeIk9+GKw3Ontsbx94PDYfcPP9Z7YC8K3jhjIiTrFpu8XE12ZUsfTdvazZ0UZthSO4qhWBtzvAhr1u7nq1gQ93t/O9E0dQ4bJyz7ljufH5euYv/Zinr5wc1yc/EIz4qapIn1T6M3rEnS8Y9XlO2/0SGpnfTXDE3kQw/HHgCcEHIQ++tYeaMjs1hf2PPLY0dvKdp7diswi+MXsoFX1EylS4rPzo9JFxR/9zxxTz2tYWXvysiXe3t/Hny46gqjA4Yr/phXou+PMn/OzMGr4yfQjjKzOTA93tdudFpSBFkMHen0bVf6BxbDOAJcAK4EfpRssMdlq7/FS5rCTjeHlne7AAx1XHVfdp0MMkcueYTILTJ5Ty1elVtHT5ueapz/F3S0qcFu47v5ZZI4u47T/bmXDne4xZvJqHM5BiIBAw3GJfxQAY7P1pVP0HatTXSSkvlVLOBn4khLgxE0INNi6eWsX63R10dfdv1p3WYHpeuyUzycEmVDm54KgK9rb5eODNYLi/y2bmrnPG8vevHcl35g6nwGrm6ic/59YX6wc0OWTUVKWDnXMnlXPupNSrZOndn+nKnSn01j8RAzXqkRWnoVG6in5Jg/Mml+MPSN5u6DvhF4DLFuyyLl/mZt6PGe5i7phintt4iIfe3UNrlx+AYcU2Ljqmkge+PI5zJpXzixUNXPvUlrQNuxE/VRVw42mjuPG0USlfp3d/pit3ptBb/0QM1KivEEL8VwhxoxDidGB6JoQabJwwpoQjhzj55/pdvL6172mJseXBB6nuUP8vgFQ4fUIJtRUO/v7BAS58dCNLVjZQH2rDbBLccMoIvjKtij+8s4cfPleXlmEPF+VV5AeDvT+Nqv+Avh+klPVCiEsI5jCfQajAriI1LGbBu9+bzhV/XM3PX97BsZuaOGN8KXPHFkfcLWEmVjkpcZhZvb2VmRmsP2oSgq/PHMLeNi/vNbTz8uYmXtrUxI/PGMUZE8oQQrBwTjW+bsn9q3YhgHvPr02pTJ5RfZCDnVMf/DCt6/Tuz7Dcr107VZf29dY/ESmP1IUQvxdCXBiuQiSlbJFS3gO8QjAXiyINSpwW/nDJRG46bRR1B7v4xSsNXPjIRp7Z0NjjPCEEX50+hAMdfva1eTMuR3WRjfMml3P9ySOocllZvKKBf3ywP9L2dXOHceHRFfx61a6UR+wmU04mBVUkYLD3p1H1T0eqFoJ1Q38khHhJCPG4EOIqgmGNMzIq3SCjoqSQO88Zy57b57DquqkcPczFb97Yzd/W9czDftaRZVjNgn9tPJQ1WVw2M1fPqWZMuZ2l7+6NvFyEEHxn7nAuOrqS+1ft4qZ/JR/wVFAQv+C2IjcZ7P1pVP1TNupSyh9JKZ+SUl5D0N2ykKBB/xEwv8+LFX3S1RX0YZtMgpNqS3jru9OYN6GUh1fv5Y+r90bOK3FYuHLWUHa2eNmWYd96NGaT4IoZQxhZYuM3b+zm+Y0HgcMj9i9NqeBXr+3k/lXJ1T8N66fIDwZ7fxpV/4F+P5SF3C9hI788E0INVvx+f49tq9nESwuP5qvTq/jruv3sbz/sbrnomEoKrCae/vggHVmsZmQ2Cf5n9lBGFNu47/Vd/OX9fQSkjIzYT64t4QfP1vHnNXv7vVesforcYMzi1YgbViFuWNVjif9g70+j6j9Qo/6+in7JHPF8dCaT4NZQitG3trVG9tstJu46ZyxuXzd/XLMv7TwYbm83b9a38J/Pmnj640Ze3dJMIMZPbjEJrpw9lNpyO39as48r/7GJLl8As0nwkzNGMWtUId98fDMPvNF3Wnuj+iAHO5dOreLSqVUJj0fXFI3Okqh3f/Ynd7bRW/9EDEiqUFbG/wUKCbpensqEUIOVRD66SUMLGFVq56361h77jx7m4s6zx9LS5edPa/bi8adm2KWU3PPaLl75vIXVO9r4eI+bN+paeW1LS69zLWbBFTOH8IWJZTQ0e1nw2Ge0dPqxWUz84gtjOHFsMd97Zis//nfiBUpG9UEOdq6dO5xr5w5P+Tq9+zNduTOF3vonYkBGXQjxv8BPgHOBWpUmYGB4PIkrq39txhA+2NXO+t096yLOHlXEHWfVcLDDz0ubmlJqb1dL/OiZN+pbqTvY218ohOC4miIunVrJQbefBf/YxP52LzaLiZ+dWcN5k8u585UGZty3jne2tfa6vi/9FPrh9nbj9qbuwtO7P9OVO1PorX8iMpUmYBYqTcCA8fl8CY/dcMpIRpXa+cm/t/HZ/p6LHk4cW8K8I0rZuNdNIJB8iKHLZk547C/v78ef4F6ThhawYNYQOn0BFj75Oa1dfswmwQ9OHsEPTxlB/aEuTnhgPbPv72nc+9JPoR9nP7yBsx/ekPJ1evdnunJnCr31T8RAjfrY8A8qTcDA6WshT2Whlbe+O40Sh4Ubn6/jw5gR+9wxxXi6JQ0tyY8eSp2JjTrAqq0tCV0pNWUOvjq9ijZPN1c9sZkuXwAhBOdNruCxK45k0Zxqthzo5IQH1rPsnT396qfIPQZ7fxpV/z6NuhCiv9pmr6iJ0sxRWNj3CtERJXbe+d40Kgqs3PxCPZ/s7YgcmzWqCLOAf3/ahDdJ37oQgiOqEqfVfaO+lZ+/3JBwkdOYcgcXHVPJgQ4/j394ILLfaTXzlelD+PsVk5hTU8Si5Z+zentrv/opcovB3p9G1b+/kfrCvg6GRueXEFyMNANQtUkHQDI+uppyB+9dP51Kl5Vb/r0tEqfuspn5ybzRHGj38cc1++hKMhpm84HOfs/5wzt7eW1L/Jw0k4cWUF1k5emPGnuN6p1WEz+dP5ryAgvfenyzYeN6FemRLZ9yohBKo5GrPvVrhBDfCqcEiEc4TYCU8ldSyt5hE4qk8XqTW/Y/pMjGquumYjEJfvrSdvzdQWN62vhSbpsfNOz3vLaTP67ey7qd7QlH7qlEy7xe18r7O9vjHps9qohWTzdPf3ywVzik02rmW8dW88k+Ny9t3B/3ekVukuzzmiqJQiiNRrb0Hyj9GfV64NtAnRDiYDglQKyRD7leFBpSW+HkL1+dSEOzh8Wv7Ohh2H9/0XguPLqS5k4/z288xH2rdvFGXUsvI96W4qKlRGkJjqouoKLAwm/f2s3X/76Jls6eizLOmljG2HIHj67dl1J7Cm24ctZQrpw1VG8xUiZX5c42fRp1KeV84GZgJjAPWAtcSoyRBxZlXdJBQKo+unMmV3Df+bW8vrWFn/13O97uoNGeOKSA6+YO57lvHsUDXx5HZYGVV7e08OtVuzjQfnjGvtyZepLOeBOndouJ6+YO45xJZext8/K1v3/GwY7D7ZhNghPHFvPObj9rdvQOdVToy5XHVnPlsdUpX6enT3nM4tV84/HNfOPxzYxZvFoXGXLVp46U8hWgDigDlkopz5RSmgguNgob+YuzKuUgIZ3PuR+cMpLffnk8b21rZeGTn/PiZ4cihlcIwZRqF3/92pE8eOF4/AHJuzvaIteaTKnP3icKcxRCMGtUEd88digd3gDPbDjY4/ilU6sYXWzmokc2ZjWtgSJ1Gtt9NLanHp7X3/OaTd/49iYPB+44ngN3HM/2Jn1820Z1vyQ1VAv5yl8VQkwXQpRJKV+VUq4D1gH3CCHuyqqUg4R0H5LrThzOsGIbP3qhjiUrd/LR7g5+cMoIbObD7+xJQws4ubaE1dvbOG/y4QzJZ08q49+fJr9oaUezh3EViSNmRpTYKXWY+exAz1j6QruZa2ZX8u0XD/DrVTsjqQ/yHSHEQkIBBwsWLGDBggV4vd5IX7tcLvx+f2TSzeVyEQgE6OwMTmCHVy2GCzI4nU5MJhMdHcHIJ7vdjsViiWzbbDZsNhvt7e2RbbvdTnt7O1JKrFYrdrsdt9tNIBDAYrGw4B91FJv9TCnxcejQIQoKChhX6KexsRGTyUSJNUBLSws+nw8hBIWFhXg8Hg4cOIDX66WwsDCi05QSH52dnfj9fooC7Ry4ZWpEp8bGxl46TSnx0dHR0UOn4c5uOjs7e+k0pcRHY2MjNpuNEmuA7/9jHQLJWJefrq6uHjo5HI7ItslkoqCggK6uLvx+f2Tb4/H00incL9E6JeqnlpaWyHEt+ilZUvr+DqUFQAhxEfC+lHJb6NDjqdxHkXkuPKaSL02p4Ocvb+eO/+5gZ4uHO86qobzgcHHqCZVOVm5pocsXwGENGvxZIwtp6+rmjfrk3CJ/ff8At585OuFxf0DS6ulmfBzDP77KyQk1Rdz96k6+c+IIStNw/+QaUsplhIrHLFu2TDocjrhl0IqKinpsu1yuHtuxS9KdTmef27Ft2O32hMfdATPugJkNLV2Ulwdf+H6ri6o7NwJQU+akpKSk1/28Xi+VlZU97rehxRqRZUOLNXI8kU5tpkIKf/p+qB072249jt2dZpxOZy+dou/X4jOxyxtss77DS7zfa6rbff2OwkT3k9Pp7KFfWKdoMtlPyZLW4iMp5VOACE+Qho29YmDEPvSpYjIJfnbWGP5xxZF83tjJt5/awvamw2GENWXBB2R/1Ke2EILTJ5Ry9qSypNuJjo+PZV+bl4CEESW23vLZnHzj2Gravd3cs7Ih6fYU2rPt1uP6jUAZ6PMa245ebpR0yYT+2SAtox5alFQClIUKZUzLrFiDk0yl8rxs+hDe/u40fN2S2/6zPZIf48ghTiwmwXOfHMTX3TMSZvaoIi6bVhnvdr1Y/tFB/vlxY1zfuMUkMAn4/dt72Nnc849UBroZX+nk9PGl/PKVBm55oT4StaPIPbROPVtTZjdU/HpOpt4VQpweWi36+5Dx/lwIESBYFONJglEv9QQjYxQDJJOLGWaMLOLpKyfT0Ozhn6FJy/ICKz87czQH3X4e++BAr5jyI4cU8LUZyaUy/WiPm1+9vosNMaP2oUU2/mfWULql5KonNvdIQCb9Qf/jzaeN5NzJ5dz1agOz71/H3lZjTjgp+kbrxTfJfD1oSa4uPloBzCZYwm45cA3BwhhmKeWEUCTMNVLKX2VbUEXqnDq+lCOHOHl1S3NkRDx3bAlXH1dN/SEPD761p1dM+fhKJ1+fOSTpNp766CArY1abji6zs3BONQ6riRueq+PtmIyNNouJG04ZyY9OH8Wn+90cdc9aPkiwsEmRfb59/DC+ffwwvcVImVyVO9v0Z9SXA08AW0PbB+OtGk0iR4wiCbLho7vl9NHUHezil6/uoDsUjnj59CpumzeaVk83D63eyyF3z3C22goHV8xMvvjAqrrWXiP28gIri46vptRp4ScvbuNPa/YiLT0/mc+aWMbvL5yAxSQ4c9lH7EohGZkic1w2fQiXTU/+RR4m3vOqpYskXbkzhVF96v2FHywNxakDIIQYG4p8KQckUCelfBW4JfRPMQACgfSqF/XFgtlD2d/u5X//VY/F1MDNp43CbApOjo4stfG9Z7by8Op9XHN8NcWOw49DX2GL8Xjqo4OUF1gZXnx4gtRpNXPN8dX8+9Mm/vL+fj7c3sgvzp9Eof1wdsixFQ7uPHsM3/3nVk578EPW/XBmj+OK7NPQlF5OnnjPq5ZukXTlzhTZ+HvNBP2tKH0lZrs+VI/0ISnlw0C9EOJq+kn8pUiOcGxyprnxtFEs/uIYXt7czMNRBayPqCrgdxeOx9cteWJ9Y6/rFh2f2irDh97dS0PM5KjVbOKCKRWcN7mcgN/Dgsc29UpXUFvh5KfzR7OlsYsbn69LqU3FwPn6Y5v4+mObUr4uW89rsqQrd6bQW/9EDLScXb2U8iFUdkbD85N5o5k1qpCP9/R0k4yrcFLqNEdSDERTXdQ7LLE//rRmX6/IGoAZIws5fXwpTZ1+/r6ud2Kv42qKOaLKyZZGY/6hKLJP2HVjhMiWXCZTlVPvzNB9BjXZrnlYXWTrZbwPuX00dviZMiy+f/CCo8rj7u+L17fGX8g0tLSIseV2/rpuf1z/eZc/MCgWJOULmX5ew9EtRohsSYacq1EqhEjaUMdOngohfj8QoRTZwWk14Y2JC18XijoZXxnfhz5xSOoP7lvbWtmfoLDGl6dUYBaCW1/c1utYlz9AGuloFEkQnYdFrwRY2SJ6cjbfdEuHvoZF49KsOSqAijTlGdS43e6svv39AYk5pgRXeFLSk6CohtNq4viaIt7Z3hb3eCLeqG/lomN6LmaySS9FjkLGlttpdPdeuDF9eCHPbDjIjqYuRpelvjxakZhwjnIAccOqjNwz289rskSP7DOlWzIYRf9Y+jLqNw/gvssHcK0iS7i9h3O+hJlSHXS7bG/2MLYiviGdf0RpykZ9w143p47zUeGy9jpmt5ji+vCvnD2UV7Y089P/bOeRyyem1J4ifW44ZSQAr2/NrRo3YbkVPUlo1EOl6hQaEpvsJ9PsbfP2cm8U2s2UF1h4Z1srHn+AmSMLqYwxxEIIbp03isUrUsvXsnpHG2dPOuyT94rgfYsdFjq8AZ775CDnTi7HFPp6GFpk48IpFfzf2n1UuqzcfuZoihzKx55tzjsqvQ/rbD+v/ZGu3JlCb/0TkamJUkUGMJmy2x0njS1hS2Nnr+iUJeeOpbrIxuodbTz49h5W1bUQiMmbbjYJfnxGaiOj9xp6rhKVIeM9p6aI6kIrv161i6/85bNInVWA/5ldzdmTyrnv9Z1MXqJWmmrBpv1uNu13939iDNl+XvsjXbkzhd76J8KYUg1SwrmWs8W8I0rp8ks27uv5hzCuwsmjl09k+YJJ1JTZWbmlhT+803ulqdVs4tspxq5Hx6TbA6Fc1XYzV8+p5ktTymn1+Lnqic08v/EgUkqcVhM3njqSX19QS5dfctxvPuDXr+9k494ONuzp4NN97sjKWEVmWLT8cxYt/zzl67L9vPZHunJnCr31T4T6th1EnDquFLMJVnzezNThvUtxlRdY+fNlE3nl8ybuXrmTP67ex/dPGo7NcvjdP6TIxvwjSnl5c3Ov6+Nx16s7OWZYAUMKbUwr91NQLBFCIIRg6vBCxlU4+fsH+7nv9V38fd1+7jm3lpGldqYOL+ThSyZw18oGfvhczwVJRXYzZ00s47yjKrhixpC0KjgpFPmKMuoGIjZBfqYpcVr49vHDefDt3VxwVEXCMMYzJpRR6bJy/bN1vL29jVPH9SyQMGd0UdJGHYIZHcHNRmc3uzvb+dKUCqZUF2A2ieCo/bhq1ja0s+LzZq5+cjO/vXA84yqclDgt/OKLY1jb0E6HtxuTgC6/5MPd7by+tYXlHzWyflc7955fixDKsGtNtp9Xo2NU/ZX7xUCkUrIqXX7+hRoK7WYeeHN33CLSYaYOL6SmzM5b9S20dvUMPzSZBJdOTS73ejSd3UHD+8yGgyxe0RBZgCSEYPboIhbOqcYkBNc9tYXNoXJ4JiE4dnQRp40v5ZRxpZw1sYybThvF418/kguPruDXq3bxixU7UpZlMJOpuG4tnlcjY1T9c96oCyFMQojjhBDf0FuWgaKFj66swMqvzqvloz0dkTzribjz7LFIGVz6H+tfP3JI6jP/I5w9i2o8vHpfj0nSCpeVq46rxmIWXP9sHc2diYsQCCG4bu5w5k0o5bb/bO9xH0XfZKrakFF9ylphVP0zatS1roAkhLAA84G5wJFCCGPGGBmMbx1bzfE1Rfz+7T181kf0wLBiG786v5YuX4AH397DG3Ut+EOTlEIIvnviwHNZP7p2Pzuisu2VFVi4YsYQPP4Al/3lU/60Zm9C424Sgq/NCKZefXlz8sWzFT25dd5obp2XuO6sUclVubNNykZdCDEtVBGp1z/gsizI2BcLgU+BB6SUN0spczoblM2WegKtdDCZBP+6agoVBRZ+9t/tvQplRDNteCGPXj6RkSV2Xt3SwgNv7I6UqSsvsHLR0cnHCjf74j9uf35vP3uj0gpUF9v41nHVVBfZ+Mv7+7no0Y2ctexjzvjDR8xf+jGvRhXlqCmzU+mysCIFH7+iJ/OOKGPeEcnXqA2j1fOaiHTlzhR665+IdEbq44AlwKVx/mld1u5IoFNK6QMQQswUQswSQpypsRwZQcuHpLzAyrPfPIpDbj/feHwzS1Y28PLmJho7fL3OHVpk45GvTOTuc8bSLSV/W3cgUp90yjAX00ckVyygzZd4MnPpO3t7lNcbXmzjG8cO5bq5w5hTU8S0ES7m1BRRYDNxz8qGyHyAEIIp1S7erM+t1ZBGYv2udtbvSn09gN5GLV25M4Xe+iciZU+/lPIpIUR5KOVuD4QQZ2RGrKRpBk4FnhRCzABOAFzABUKInwMnhQ1+IoQQCwnlg1+wYAELFizA6/Xi9QZHji6XC7/fH6lH6HK5CAQCkVzK4dwPbnfQjeF0OjGZTBF/m91ux2KxRLZtNhs2m4329vbItt1up729nebmZiorK7Hb7bjdbgKBABaLBYfDEdk2mUwUFBTQ1dWF3++PbHs8Hnw+H0IICgsL8Xg8ER0KCwvj6jTO5WXllTX84b0m3tnWRMOe/Ty3FgJmO+OrHEyrsjKh0smw8kKEycSMim4e/GIVP3l5Ny9u2Mv/TCtGILhwYgF1+9sYVRA09G0+E6s0vY8AACAASURBVM0+wQhnMGKlwy845DVxQqWXBreZzm5Bo8fEEEcAu0niCQj2d5nYte8Qk6rsSCHwCBtW6WeMo5ua8VY8wo5F+plS4uftba1sb2xnVJEJ2e1jQqGX7Qd8tLW1adJPUkqsVmuvfspVrn92a/8nxaG9vR2HQ78cPWG5X7t2qi7t661/ItJ6EuMZ9ND+V+LtzyLtwDVCiLeACinlAwBCiL8ALwBvE6yxmhAp5TJgGcCyZcukw+GI21FFRUU9tmNLWcUm9oldQhy7HduG3W5HSklJSUnc46lux4ZbJdKpshLmTh5NdyAYKriqroV3trXx2tZmntvkBlooL7Bw2rhSFh5fzWiXiS9NN/Pbt3azchccOzoY7/79U2v4aI+bZ6ImX1ti3C0NbjMbWqwJj//pow5+fEYZ1tBKPb/oma7AL6w4iqxsaOnkg30exlQFI3CapJu9nR6Kioo06ae+jiv0JRzZE/45V9L4ZpIBDS+EECXxapZmg9Ck6NeARmCHlPJjKeUSIcQ3geeA60LnWaWUu4QQZwHPCiFOllJql7ptAOj5OWc2CWaMLGLGyCKuDybzo/5gJ69uaealTU08+WEje9q83HFmDRceXcE/NzTy0qYmRpXaGVZsCy0mclFTZuc3b+yO20ZbAp96NJsPdHJUdWJ3TqnTjM0s2H7ocNSGzSziJggb7IxZvDoS3ZKNwhNGdD9ombHRiPpDBqJfhBAXZTvqRQhhBq4FJgK/AH4lhJgTOnwewVS/9wBIKX0hw74PWAnET+xtQIy2mGFshZNvHTeMJxZM5ncXjuftba0sfmUHAQm/+/J4HBYT//jgAN6oVAClTgv/e+qIuPdr7sOnHmb5R32HWQohMJtEJAoHglEwfYTcD1rC6XazVXjCaM9rLNnOs25U/VMy6kKIu4QQh4QQB0OFMGZKKZ8CarMjXjAOHbgGWCml/DHBAtflwJjQKfUER/BjhBDPQtCwh441ATuzJVumCftvjci1c4dz3/m1vL61hT+t2RtZ7dnq6ealTT3DCQtsZm6bN4rjRvd0hcTGqSei/mDfMecmQQ+jLgQEJAQCknZPd69kZIrE1JTZeX1rC69vbUl5NG/k5xUyF4+fCKPqn6r7ZauUslwIUUIw2mWJEGIssAJ4OuPSHeZDKeXHAFLKF4UQRwPnAv8ATFLKt4UQJwEvCCGeBv4FlAJPSSlzxqj3tcLTCPzglJG8v7Od5R8d4KJjKpk2opCvTKviH+sPcFS1i9qofOwmk+ALR5YxeWgBf35vX3Bfkiv5/+/9/Zw2voQTxxZH0vJGYzML2qJWuYZTBb+0qYmpw12AJVL8Q9E32249jrdDkUMnjC3p5+ye6P28/vKLY3RtX2/9E5Gq++UQBMvXSSkfklLOAmqllNmMTy8EbhZCPCGECAelvgjsFULcBjwihPihlHK7lHIK8DCwmaBBT29aXyes1t4FJYzGz86qwdct+VuoePSVs4dSbDfzz48be7hhwowus/PT+aO44KhyOvzJ52dZuaWF//dyQ9w/nEqXlc/2H16ScNbEYK6aHz63lSK7mQJrzi+U1pQTxpakbNBB/+c1Xbkzhd76JyLVp79ZCDEmeke2J0qllK3ATcBjUsqmkH/9OOBN4ENgF0Ef+w2h8/8tpXxTSrk9m3JlA6P66KIZX+nkG7Oref6TQ+xq8WC3mPj5F2po9wZ4cVNTXCMshGDaiELOPSa1tL0Ar8WpxlPisNDu7Y7EtdstJr4xeyif7e/k+Y2HVNbGFHm7viUyWk8FvZ/XdOXOFHrrn4h0hjQrhBC/F0JcKIQozrhEcZBSfiql/Gd4E/inlPIZKeVzwJ3Ao8AciPjgc5JwDLXRuf3M0TisJn723+14/AGmDi/kihlDWL+rgxc/i2/YAUa5JD88Jf4kaiJW1bX22je6zI63W7J6x+ESe2dNLOPIIU6ufmKzroUTcpEfv7iNH8cpBN4fej+v6cqdKfTWPxGpGsBLgEVAHcHJy21CiPfSLFCdNlLKgxCMipFSHiIY0tgQOpazsW2BQG6IPqrMwT++PoktjV38PeSG+eaxQ7l0aiXvNbTz4mdNPYpjhBFSUmQ3c8XMqpTa64opij15aAEFVhP/3xu7IvvMJsEdZ9VgNQvm/+Ej6g/mdMaInCBXntdsYVT9UzXqL0spX5FS3iOlPFNKWU5wNaZm30BSyoAQwimEuFxK2S2EcABjCS0gymVyaVXi2ZPKmVNTxHOfHORAe3Al6zXHD4sY9rtf3clD7+7tkTCsO/QRNa7CyTHDkq/Cvq+tZ1Sq2SSYO7aYvW0+1u8+HIEwpNDG4i+Oobmrm+n3reNPq/eqKklZJJee12xgVP0H7KqQUn6QaIVpFvkSwQnSU4GrgGellJ9pLEPGybXVib+/aALebskNz9dxyH3YsP/mgnF8ZXoVzZ1+Hl/fyCufNyOlxBe1QvSsicknYoothA0we1QhLpuJxS/v6JEzZkq1i99+eRwjSux864nNzPr1Oto9yYVS5jJjFq+OxGSH/2VjwVE0ufa8Zhqj6p+qUV8nhHhJCKFPsoXDPA5MJbiw6Olci3JJhFF9dImYNqKQlxYezYF2Lzc+X8+eVi9CCI4Z7mLhnGE8982jOHdyOW/Wt/KfTU1YA4dH3AU2M987cXi/bZw9qQxXnPBEq9nEvAmlHHT7e02mji5z8Nsvj+PGU0bw0Z4O5j6wPpKALF+JXmiUzQVH0eTa85ppjKp/qkb9ZuAD4I+hBUgvCSFu1DqPupQyIKX8TEr5tpQy/pr0HMSoPrq+OLG2hBeumsKeVg//89imHguRzCbBD08ewcXHVLJmRzsf7m7rcW1ZgYXvzO07J/uskb1rqYY5ZriLMqeF36za1WO0DsGIm3MmV/CTM0azYW8HX37kkzS0Gxzcf8E47r9gXMrX6f28pit3ptBb/0SkatTfB34ppZwlpawgmIK3Erg745INQkym3AzcOX1CGVt+fCxThrm469UGHl59OI2uEIJrTxjGF44s4/2dbvbH+McrXNaEETHfP2l4n7VHTUJw6vgSWj3dfLQ7fhWa0yeUctExlby6pZndLZlfVZgPTBtRyLQRiV+eidD7eU1X7kyht/6JSMnTL6V8SAhxhhBiq5RyWygro9aZGfOW2AyCucSIEjurvz+N657ewkPv7mXTfje3nDGK8gJrxNd+9WOHeO6TQ1w1p2e8epHdzA9PGcF9rwejWa6cNYSa8uT8lZOGOPmXWfDiZ00J/8AvOKqC5R828od39vDzL4wZkJ6polVq5yklPhobG9NKGfzebg8BXxczR7hSSu3c1dVFY2NjwtTO2U6D/Nqne0BK5tSW95uuusQaoLm5ecDpqqN1AmhsbMyoTplI7ZxOPnVlxLNEV1eXYSdfksFqNrH04gnMHlXEd57ewvXPbOUPF0+gwGamxGHhm9PLuPudZj4/0MmEqp4pbovsZm4/M/XSZFaziWOGuXh5cxOjSm1cNq0Kq7nnCGpEiZ25Y4u57/Wd3DpvNDaLdiMsrVI7b2ixUll5uBh4KimDf/H3DwF47dqahNfHu18gEKC0tDTucch+uuo73w7Opbw2fWy/Mrf4TBFZE90v2XTVYTweD+Xl5T2OGyG1szG/HwYpfn/isnK5ghCCq+cM47+LjmZXq5d7X98VWYx0am0hJQ4zz208iC+DqXJPH1/C6DI7f1yzj0v/71M27u3tijnziDI6vAHW7GiLcwdFOuTS85qNjI1G1V8ZdQNhVB9dOpwyrpTbz6zh1S3NfBrK02KxmPnp/BraPQHerO+9UjRdCmxmrpw9lK9Mq8QXkHz3ma094tcBpg53IYCVW1Ut00yRS89rNjI2GlV/Y0o1SMlln3o8fnDyCJxWEw++tRuPP4DJ5mTGyELOmFDKm/WtbM3wqs+JQwq49oRhFNnN3PJCPW7v4TDGYoeFI6qcLHtnT68Vqor0yLfnNVWMqr8y6gYiPAmTLxQ5LDx6+UQ+2efmzlcb6PYF9bv+pBH8/+2deXxV1bXHv+veJCSRkBBmwmDCjAqKiFoQtYKtqK2+gjjVqS04Vlun2vfU8p7VYtFqWwe0rbXaOotaZ3BARUBRijjgAGGSISAJEUiAJOv9cc7FyzUXkpuTnHNP1vfz4UPOuefcu3737L3u3muvvXd+dgYPL9zIlx5npORmRZkwtCPVNcpDCzfs9tpPDu3K6s07uPGVlZ5+ZmslbOW1sQRVvzn1ALFz5x73yE5LJgztxM0nFDN76Wae/dBZJ6Ztmyj3TuhHdobwwHtlbNzqre6i/Dbs3zWXhxaWUbblmxTKQ3rmMbZ/ATe+spLXv6igpp71aVoj08f3Y/r4fo2+z+/ymqrdXuG3/mSYUw8Qe8rJTmeuOKoH5x/ejVmfVfD4Iqf13GGfTO4e3w8B7n93/W6bXnjBMf2cTIfLn1m226qRF32nO22zolw84wvKPP4xSVcGdM5lQOfGhxL8Lq+p2u0VfutPhjn1ANG2rX8TKZoTEeFPJ/elZ+f23PH2Wl5YsglwWtS3/bAP1TXK395dT5WHse6CnAzG9C9g9eYdPPHBxl3n83MyOP/wbny0bhvPfrTn/VBbC//+6Cv+ncJ34Xd5TdVur/BbfzLMqQeIoMbovCAjKjw4sYThPdsy7fXVvLHMyTEe0DmX3x2/L5XVtdz3zvp6d09KlUN75dGzIIs7567lk/XfrNPxvQHtGdJtH658tpSNW6y1fsvs1dwyu/G7PvpdXlO12yv81p8Mc+oBIjZ7LbTU1fD6BUPp1zGH2+LWazm4Rx7Xje3Fhq07mfraau6cs4ZnP97EglVfs2bz9t02mW4MIsJpB3UmJyPC9S+t2BWGEREuG13Etp11THzgY8/ktTZCX173QlD1m1M3WpR92kT5n7G9KK+q4bMN36Q0HtmngGknFnPS/h2IiLB47Vae+6Sce+ev56ZXVvHkBxtZW9n4SpSTGeHovvls2LqT91Z/k7teXJjN2cM78+oXm7nimWWUb7MWuxEOgrnKeyslqDE6r4jp+/6AQgR4e3klA+MGug7ukcfBPfK4ZFQRqsq6r3fy2YZtLFqzlWc/3sTiddvompfJmP4FlBRmN3ig6sCitry+dDM3zFrJY2cN2rWMwGkHdebLyh3cOns10+eu5YqjenDxqO50qGf9duPbhL287o2g6reWeoAIanfOK2L6OrbN5NDeeTy6aAPLkkxAEhG6tcviyD4F/PyIIp48ZzAXfKcbldW1PPjeBu6eu46lX1Ul3Q81noyIcEy/AjZX17Kq4ps4aDQiXH10T+6Z0I8DuuXym5dX0PuG+Ux9dRVVO8O9/roXhL287o2g6jenHiCCWki8Il7fjHP2o21WlOtfWsHWHXt3oG3bRDllaCdmnDuYy44oYst2x7n/ec5aPly7lbq9xN3z3I026suw6dsxhxvHFfO3U/pzQLd9+NVzpex7wzt8VM8aMmHkgdMG8MBpAxp9n9/lNVW7vcJv/ckwp274Qtd2Wcw4dz/WVO7gyn+X8umGhu0ikxWN8MP9OzDj3MH88sgiamqVJxZ/xS2zv+SVzyvYnCTfPRao2baHtMniDtncNK6YP/yghNo65cg7FjGntMW23/WNnu2z6dk+/VYHTVe7mxuLqQeIxKVJw0aiviNK8nng9IFc+MTnnP/4F4ztX8C+7bNZUraN0k3VHD+okFMP6lzve2VFI5w4uAPHDyrk7eWV3D13LXNKK5lTWkm77Ci9CtqQmxVle00dK8qrqaiqJSsqFDdgnfYDi9ry+xNKuOaFUo748yIuHV3EtBNLiEaCOdmkqTyy0JnpOzHJd50Mv8trqnZ7hd/6k2FOPUAEdSlPr6hP3+nDOnP8oEJ+9+oqbpm9mp21FRTlZ9G9XRumz1tHRIRTDuyU9D0jIowqzmdUcT7rKnfw/JJNvPp5BaXl1VTvVDIi0CE3kxMGd2BMv4J6N7Guj+IO2dw3sT/T567jtje+ZOuOWqaP7xfYWYRN4a65a4HGO0e/y2uqdnuF3/qTYU49QGzfvv1bGwuEiWT68nMyuOn4Yq48ugcAhbmZ1NQqY6Z/wF1z19I+N4Ox/dvv9f27tsvivBFdOW9E171e2xByMqNcNrrIWatm3joGd8nlstE9PHnvMJCu5TW2tnrv9m3q3Zx73xvm71qeN9k1EFz9FlM3AkNhbiaFuU5LOiMqzJx8AEO67cPtb36ZUo66V/xkRBf265rLn98KzR7nrZrY2urJ1lVfUb7d87XXWxJz6gEiqDE6r2isvsxohCfPGQzAz59auiv9UVX5YM1W/jJ/Hfe9s45/vV/GzM/KqalNbebp3hARRu7bjqVfVbO6Iv0qeXMR9vK6N4Kq38IvAaKuLtxLwaair0/HHN6+5ECOuXsxF89YyriBhSxY/TUryrcTEYjPZHxo4QZ+c2wvejVDRsSIXnncM28dsz4r5xyPwjvpTtjL694Iqn5z6gGiqqoqsL/+XpCqviHd27Lwl8OY+MAnPLF4I/065vDXU/pz6kGdyMmMUF1Tx8xPKzjroSWc/8QXTBjibGtXvq2G/OwoR/UtYECnnCYNcm7Z7uTSd2wbvtmmj581OKX7/C6vqdrtFX7rT4Y5dSMt6FHQhjmXHEhFleOo4x10TmaUH+zfgQ+vHM5x9y7mH++VkRERCnIyqKiq4ZFFG+neLovzD+/GESX5KX3+x+4qj4f1aueJniCRrj9U6Wp3c2NOPUAEdc9Dr/BCX0FO8iLbo6ANH1xxMJXVtbRzHX9FVQ1PLd7Ir54v5bY3v+Tw3u3IiDa+xf5pWRXd22WF0pH8/Z11AI0OK/ldXlO1uz4SM14agt/6k2FO3QgVIkJ+nOMvyMngnBFdaZ+bwUn3fcz8lZWMLG58a728qoZOIXToAH9fsB7wxjm2JF7aHct4CQPm1APEtm3bAvvr7wV+6hs3qJD2ORk8v6Q8Jae+ZXstB3TzJ36aLG86ldall4S9vO6NoOo3p260CjKjESYf3o2bX1vFvBWVHNa7cbHxWlU+3bCNujol0sLLBcS3IuXyN+o9bxgxLE89QOTk5PhtQrPit75fH9OTPh1ymPLyCt5ctrlBy/bGOGVoJ5aUVXG3OzXd8P95NpXYzNLY7NLGElT91lIPEJFIuH9j/daXl53BmxcP5dDbF3LdSysoLszmzGGdObpv/l7THY8b2J7Xllbwi6eXMqhLLkf3LQBg245abp29mo/Xb8O/RWD9we/n2VSSTf9PRmK465PLhzSHWU3GnHqA2Lp1a2B//b0gCPq65GXx+TWH8PDCDVz74nL+b9ZKlm3qzE8P3fNgm4hwzXd7MvGBJUx9dRVH9y3g8w1VfP+exSzbVE23vCwGpOlaX8//dP+U7vP7eaZqd6okhsH81p8Mc+pGqyMzGuHHw7twxrDOnP/E59w7bx1F+VkcN7Bwj/e9s/JrauqUSYd15aH3y/jZY58RFWHq8cWM6JXH6w++1EIKvCU3K+q3CSmRLnY3dIEwrzCnHiDatGn5DIaWJGj6IhHhjv/qy8LVW7hl9mq65WVxYFHyfSdfX7qZzm0zmfLySj5Yu5WBnXO4/tjedM3LAqCGSJZXtrVkZsudc5yFyi4c2b1R9/n9PFO12ysaqj/ZQHdzYU49QGRkhPtxBFFfZjTCrPOHMGTae/zu1VXcd+oAcjK/HSt+9D8bmL/ya0YVt+Ot0kouHtmdk/bvsNvGGRnUNWgpyYa03JJltsQG92J/e8GjizYAjXeOfj/PVO1uDHv6vv3Wn4xgWtVKCWqMziuCqi8/J4N/njGQ0Xcs4rezVjLle713OWtV5f4F67l/QRlH9sln8mHdeKu0kqHd9/nWTkgNXVqmKS235u66N4agPk8v2dP3HVT95tQNAxhVks8fT+7DJTOW8qe31nDZ6CL+s2YL0+euZUlZFecc0oW/nNKfT8ucNWBKN1XTt2PTK3R8SzDxvJG+eBU+i3+f3zRwaoU59QCRleVZSDaQBF3fxaOKmLu8kqc+/IrLRhfx3MebWL5pO386uQ8Xfqc7kYjsWtZ349adjX7/xWu3fisnOkgt78YS9OfZnPRu34aDbl/M6m3RekNoXk0Mi3+fKVNea9A95tQDRNgrSTro69oui/gpSYW5GVw8qmjX8Z4mk+7UPQ+U7qjVUM0ATYfn2Vws/59Dqa6uJjs7m31vmP+t3pafPS1pzKy6sDNlypQNwAq/Pn/OnDkdR44cudGvz29uwqxvp0ay3nt3ft8Xnnt2t8VARGQSMAlg3LhxA0aMGPGpLwY2A2F+ng3BB/29r7/++uS7sLuYUw8QIrJAVYf7bUdzYfrCRWvTm0hQ9af3PF/DMAxjN8ypG4ZhhAhz6sHiHr8NaGZMX7hobXoTCaR+i6kbhmGECGupG4ZhhAhz6oZhGCHCnLphGEaIMKceEEQkKiI9RSSUG+i4+opEJPnatmmMiEREpIuINH5X6zTE1XuoiJzrty1+EOT6assEBAARiQJnAduBYhHJVtVrfTbLM1x9FwBDgFoRqVPVi3w2yzNcfWcA+wERV9/VPpvVbIhIBnAMjt4uIpKjqlU+m9ViuM/7xzj1tY+ItAlSfbXsF59xK8iZwFxV/dQ99yvgXlX9ylfjPCBO3yvAZuA7wK3AJuAYVd3uo3lNxq3gJwJvA9uAA4C7gK3Ad9NdX32IyIXAs8BaVW38ymZpjPu8TwcWqOon7rmLgUdVtcxX41ws/OI/+wKfqOqnIpIpIm2AMqDOX7M8ox/QSVVXqWqlqr4IHAd0AF4LQbhiX6Cnqpap6hZVnQucBGQD80WkgQumphUDgaqYQxeRg0VkuIgc67NdLUF3YJGqfiIime65pUCtjzbthjl1/8nF6cYCCDAIKAKuE5HbROT3vlnmDV2BkbEDEYmq6grg1zjhmEf9Mswj8nB0AE6sWVWXA4fhdM9f9Mmu5qQCOApARIbh9L7GAFNEZF6cswsjvYFR7t8qIocAhwJ/EJG7RORmv/Vb+CUAiMjjQF8gC6cVBPARToiiA05o5mc+mdckRCQClOJ0V38Ud74NMBE4D5ipqr/1ycQmIyLzgBWqOtE9zlLVHSJSBLwKvK2qoRlQFJGrgO/hxJX3U9WZ7vki4Dlgp6oe4qOJzYqI/AUYCnQCeuH8yH2EE3JrA3wIXKqqvvS2zam3MG6M+fs4g9TlqjrbPX8SjlM/EpgJPBMrFCJyDbBGVe/3x+qG4+qbCESBMlV90e2WPwzMVtWT3euygdE4YYrhqnqdXzY3BlffGcBGnGeyUESKgRnAnNgAsNsjqRWRA4BLgFtiYybpRILelaq62D2/BNgCXKSq80UkU1V3ikgX4GngKlVt/l2WmxlX/+lANbBcVd9xz/8QyMdphD2pqgvi7rkMp277Ul/Nqbcg7iDLNJx4+UicsMtUVb0h7pqzgTdUtdQdVd8uIoVAL1X9jy+GNxBX3804Dv1wYDAwRVWnicjhwCPAG8BsnF7IfGAn8DhONkWNX62bhuDquwgnpDQOWA/8t6ouEJFjgHuBN1X1bPf6WHbZ/wIPq+oHPpidMkn0Xq+q80SkH/AysEpVR7vXxxz7TcDTqjrPL9u9IE5/Z+AHwFrgOlWdH3fNj4DnVLXazVqrFpEOQN/461oUVbV/LfAPZ/ziUuAQ97g7cC1Oa2d03HVTgQvijnOBc3Gcuu869qLv5zit7pi+X+BkvMTrG44zZtAu7txVftvfQH0XAQe4x8cB7wKnucc57rlS4KmEe68CuvqtwSO9p7rHGTix9JU4DjxRbw+/NXisfxxOIyT2vKPu/9OAH8fdtw/wE6CPX7bbQGkLoU4LtFRV33WP1wCPAZ/gxM1j/BNoLyJnusenAS+r6sqWtDdFStXthrr6HgcWAMWxC1R1gap+CRwtIoeLyGSc9Lh0YJG64QdVfQHn+R3vvrbDPXcSMFBEHhSRk0VkPPCQqq7zx+QmUZ/eE9zXIqr6NnAETq72kyJynoj8EnhCVVf7Y7JnCPB+nP7nccJKp7mvZ7v/3w+0FZHY+Uk49XVpSxobj4VfWgAREaAAuBF4wK0MsdeuBerUHSgUkRycNLmzgCXAu6r6cYsb3UhEpD1Oy/wp4CN187NF5NdAgapelXD9a8Ac4C7XyQcaNzXxn0AVMFlVy914+dk4vZFBwDuqept7/ZnAl8AydbJ90ooG6l2gqre6148DKnHCMWmnNxFX/2NAJnCeqi4Xkf1xes2bcEKn81T1jyJyIHAhzlyFd/yurzajtAVQ55ezXETuAN4UkUtV9R/uy5/hZL4gIt2BfdSZ1HCNP9amhlvp/4UTL58C3Om+9AFuyp+I9AByVfUzVT06Nmbgj8WNQ1Ur3ayPga7WKE4q21s4YyTtgFtFJENVp6nqg37a21QaqHeaiIiq3uK2ZEODq/9yYLDr0CM4aapv4ugvAG5z9d+Ouw9tELCWegvjDhiujLVOxVk7YpSq/lVEsoDfA8+r6kt+2pkqIjIWZ6bhh+5xf+AIVf2re3wtMF9VX/bRzCbjVvL26s76dQezbwHaquoEN189sIO+jaW16U3E1V+oqhvd4w448fQiVT02SPotpt7CqOrchHBDFCeVEaAHTu5vIKYbp4Kqzow5dJcMXH1uHvMlOOlxaU+cg4uq6ibgGWCV+1ogKriXtDa98ahqXZxDj7jfxdM4A8WB0m9O3X++BkpFpDcwFzhLVRf6bJOXxOtbiBOffN9nm5qMqtaJSI6InKZOPno2zoBwILc4ayqtTW99iLPK6GT3u8gCegK3+W1XIhZT9xlVXSUiZ+BMzjlDVZ/z2yYvCbm+k4C/i8haYH+c1D7fsh5agNamN5HROMsBLAEG4OgPXFaaxdR9RkTygC9wWrBhcnhAuPW5cdb+QCHObMM1PpvUrLQ2vYkk6F8R1Kwtc+oBQETaq2q533Y0F2HXZxhBwpy6YRhGiLCBUsMwjBBhTt0wDCNEmFM3DMMIEebUarqsoQAAA5xJREFUDcMwQoQ5dcMwjBBhTt0wDCNEmFM3DMMIEebUDcMwQoQ5dcMwjBBhTt0wDCNEmFM3DMMIEebUDcMwQoQ5dcMwjBBhTt0wDCNEmFM3ABCREhF5TESm+m1LIiIySUSmi8h4v20xUsPKV8thTt2I511VvTr+hIiMcSujisiYZDeKyEwRWSoiV4lIgZdGqeo9wFSgxMv3NVocK18tgO1RauwRVZ0VV4mGAbMSr3ErYyEw1a0ghtEgrHx5j7XUjYZQCCwD+iS+4FbITSSpkIbRAKx8eYg5daOhLKX+7ulw9/8KVV3WgvYY4cLKl0dY+CUNEJFJwME4cb9h7umxwGPu3wU4rZ0+iTFLDz67BFjgvn9JwmvD3NcmYa2otMXKV7gwpx5w3Hjiozhd0+mqOtY9XwFMB8bGWjAiUg4kDkSNB5ap6vspmjBMVR93u8GJLalCVX1fROIdQEM0TQUKVHVyijYZHmHlK3xY+CX4LFPVCmAMu1eoYcCsuAr3rYwAtwV2DU4rKFUKAVwbdn2OiIxX1VjraQyNa0m9C8zc0wUi0uBKbDQJK18hw5x6wImLI5YktIbGsnvBPQWnxRV/7z043VevWAaUuF3m92FXF7mx8c6xsfvrw31Pi5+2AFa+woeFX9IAt4ucWHmGAxPijicDV8daOrGWTxM/t4TdC/8ynC5yxZ5aUe59Y9zrh6nqzW5FGo6TyVAS1wLc7Vqcyng1MFNEhjWhW280ECtf4cJa6unBbq2mWEsjocta4laEMV5UOJcxcZULnIoxOeFcom0FOLHZe9zrDhGRA/kmx3gWUJHsWvczUNWbw1jhAoqVrxBhTj09SMzRHQ48EjtwK9ms2KBVUz9MRArcwaapIjI1Lp66FDfuKiLD3GvGAGPjZgNOYvduewlwcty5MXF/13ftpqbabzQaK18hwsIvaUAsIyHu+Fuz6lR1QuK5JnxeBU7lujrh/M1xf7/PN13ZRGLx0Fj3Oht4031tLE5lHpbk2t3iqWFtTQUJK1/hwpx6iHFbN8OBChHZ1EIF+B5gkoiAE++c4Fao8e45+Ca2mexaRCSxa24EDCtfwURU1W8bjAAQqxjxraUgEXT7jD0T9OcXdPsag8XUjXgOEZHpfhuRiJsPfTUhTkNrJVj5agGspW4YhhEirKVuGIYRIsypG4ZhhAhz6oZhGCHCnLphGEaIMKduGIYRIsypG4ZhhAhz6oZhGCHCnLphGEaI+H/Gvc6tO/4x+gAAAABJRU5ErkJggg==\n", - "text/plain": [ - "<Figure size 396x396 with 4 Axes>" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "result.plot_corner()" ] @@ -366,7 +220,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -376,32 +230,9 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "<matplotlib.legend.Legend at 0x7f2ed97a0f50>" - ] - }, - "execution_count": 12, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "<Figure size 432x288 with 1 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "plt.figure()\n", "plt.xlabel('epoch')\n", @@ -420,22 +251,9 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "<Figure size 576x576 with 2 Axes>" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "m2 = result.posterior.mass_2.values\n", "m1 = result.posterior.mass_1.values\n", @@ -459,25 +277,7 @@ "source": [] } ], - "metadata": { - "kernelspec": { - "display_name": "Bilby Py2.7", - "language": "python", - "name": "bilby" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 2 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython2", - "version": "2.7.12" - } - }, + "metadata": {}, "nbformat": 4, "nbformat_minor": 2 } diff --git a/examples/tutorials/compare_samplers.ipynb b/examples/tutorials/compare_samplers.ipynb index 569e4bd9f76e0b015d002f914cbabb36e891f993..6d5c6c3a452db623b9b8f3c7981a391bff36b7a0 100644 --- a/examples/tutorials/compare_samplers.ipynb +++ b/examples/tutorials/compare_samplers.ipynb @@ -14,7 +14,14 @@ { "cell_type": "code", "execution_count": null, - "metadata": {}, + "metadata": { + "execution": { + "iopub.execute_input": "2021-02-05T22:05:40.710069Z", + "iopub.status.busy": "2021-02-05T22:05:40.709587Z", + "iopub.status.idle": "2021-02-05T22:05:43.017567Z", + "shell.execute_reply": "2021-02-05T22:05:43.018795Z" + } + }, "outputs": [], "source": [ "import numpy as np\n", @@ -31,8 +38,8 @@ "sampling_frequency = 4096. # set the data sampling frequency (Hz)\n", "\n", "injection_parameters = dict(\n", - "mass_1=36., # detector frame (redshifted) primary mass (solar masses)\n", - "mass_2=29., # detector frame (redshifted) secondary mass (solar masses)\n", + "chirp_mass=36., # detector frame (redshifted) primary mass (solar masses)\n", + "mass_ratio=0.9, # detector frame (redshifted) secondary mass (solar masses)\n", "a_1=0, # primary dimensionless spin magnitude\n", "a_2=0, # secondary dimensionless spin magnitude\n", "tilt_1=0, # polar angle between primary spin and the orbital angular momentum (radians)\n", @@ -42,8 +49,6 @@ "luminosity_distance=100., # luminosity distance to source (Mpc)\n", "theta_jn=0.4, # angle between the total angular momentum (both spin and orbital) and the line of sight\n", "phase=1.3, # phase (radians)\n", - "waveform_approximant='IMRPhenomPv2', # waveform approximant name\n", - "reference_frequency=50., # gravitational waveform reference frequency (Hz)\n", "ra=1.375, # source right ascension (radians)\n", "dec=-1.2108, # source declination (radians)\n", "geocent_time=1126259642.413, # reference time at geocentre (time of coalescence or peak amplitude) (GPS seconds)\n", @@ -86,7 +91,14 @@ { "cell_type": "code", "execution_count": null, - "metadata": {}, + "metadata": { + "execution": { + "iopub.execute_input": "2021-02-05T22:05:43.025484Z", + "iopub.status.busy": "2021-02-05T22:05:43.024858Z", + "iopub.status.idle": "2021-02-05T22:05:43.101096Z", + "shell.execute_reply": "2021-02-05T22:05:43.100588Z" + } + }, "outputs": [], "source": [ "# set the priors on each of the injection parameters to be a delta function at their given value\n", @@ -110,14 +122,19 @@ "cell_type": "code", "execution_count": null, "metadata": { - "scrolled": false + "execution": { + "iopub.execute_input": "2021-02-05T22:05:43.105117Z", + "iopub.status.busy": "2021-02-05T22:05:43.104639Z", + "iopub.status.idle": "2021-02-05T22:05:43.272793Z", + "shell.execute_reply": "2021-02-05T22:05:43.272156Z" + } }, "outputs": [], "source": [ "%%time \n", "result = bilby.core.sampler.run_sampler(\n", " likelihood, priors=priors, sampler='pymultinest', label='pymultinest',\n", - " npoints=200, verbose=False, resume=False)\n", + " npoints=2000, verbose=False, resume=False)\n", "fig = result.plot_corner(save=False)\n", "# show the corner plot\n", "plt.show()\n", @@ -128,13 +145,20 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# dynesty" + "## dynesty" ] }, { "cell_type": "code", "execution_count": null, - "metadata": {}, + "metadata": { + "execution": { + "iopub.execute_input": "2021-02-05T22:05:43.276181Z", + "iopub.status.busy": "2021-02-05T22:05:43.275690Z", + "iopub.status.idle": "2021-02-05T22:06:44.384185Z", + "shell.execute_reply": "2021-02-05T22:06:44.384572Z" + } + }, "outputs": [], "source": [ "%%time \n", @@ -152,7 +176,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Dynamic Nested Sampling (Dynesty)\n", + "## Dynamic Nested Sampling (Dynesty)\n", "\n", "See [the dynesty docs](http://dynesty.readthedocs.io/en/latest/dynamic.html#). Essentially, this methods improves the posterior estimation over that of standard nested sampling." ] @@ -160,7 +184,14 @@ { "cell_type": "code", "execution_count": null, - "metadata": {}, + "metadata": { + "execution": { + "iopub.execute_input": "2021-02-05T22:06:44.389121Z", + "iopub.status.busy": "2021-02-05T22:06:44.388707Z", + "iopub.status.idle": "2021-02-05T22:07:12.688768Z", + "shell.execute_reply": "2021-02-05T22:07:12.689099Z" + } + }, "outputs": [], "source": [ "%%time \n", @@ -178,13 +209,20 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# ptemcee" + "## ptemcee" ] }, { "cell_type": "code", "execution_count": null, - "metadata": {}, + "metadata": { + "execution": { + "iopub.execute_input": "2021-02-05T22:07:12.692452Z", + "iopub.status.busy": "2021-02-05T22:07:12.692016Z", + "iopub.status.idle": "2021-02-05T22:12:28.559510Z", + "shell.execute_reply": "2021-02-05T22:12:28.560201Z" + } + }, "outputs": [], "source": [ "%%time \n", @@ -199,25 +237,7 @@ ] } ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.7.6" - } - }, + "metadata": {}, "nbformat": 4, "nbformat_minor": 2 } diff --git a/examples/tutorials/fitting_with_x_and_y_errors.ipynb b/examples/tutorials/fitting_with_x_and_y_errors.ipynb index 17f6414da7145374b2ca7302406e7291dd8adb6b..7318e42008a8bc90c992f8c3298d1d00be9e97c1 100644 --- a/examples/tutorials/fitting_with_x_and_y_errors.ipynb +++ b/examples/tutorials/fitting_with_x_and_y_errors.ipynb @@ -181,6 +181,7 @@ " parameters = inspect.getargspec(function).args\n", " parameters.pop(0)\n", " self.parameters = dict.fromkeys(parameters)\n", + " self._marginalized_parameters = list()\n", "\n", " def log_likelihood(self):\n", " resy = self.yobs - self.function(self.xtrue, **self.parameters)\n", @@ -247,6 +248,7 @@ " parameters = inspect.getargspec(function).args\n", " parameters.pop(0)\n", " self.parameters = dict.fromkeys(parameters)\n", + " self._marginalized_parameters = list()\n", "\n", " def log_likelihood(self):\n", " m = self.parameters['m']\n", @@ -285,48 +287,9 @@ "result_2D_unknownx.plot_with_data(model = model, x = data['xobs'], y = data['yobs'], ndraws=1000, npoints=100)\n", "plt.show()" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] } ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.6.4" - } - }, + "metadata": {}, "nbformat": 4, "nbformat_minor": 2 } diff --git a/examples/tutorials/making_priors.ipynb b/examples/tutorials/making_priors.ipynb index 726cbd4cc127607d820dfdc4e875694345acf076..7f9d5719edbf85b17c49c9bb665a35dd05dd3999 100644 --- a/examples/tutorials/making_priors.ipynb +++ b/examples/tutorials/making_priors.ipynb @@ -4,18 +4,18 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Prior Distributions with `BILBY`\n", + "# Prior Distributions with `Bilby`\n", "\n", "Prior distributions are a core component of any Bayesian problem and specifying them in codes can be one of the most confusing elements of a code.\n", - "The `prior` modules in `BILBY` provide functionality for specifying prior distributions in a natural way.\n", + "The `prior` modules in `Bilby` provide functionality for specifying prior distributions in a natural way.\n", "\n", "We have a range of predefined types of prior distribution and each kind has methods to:\n", + "\n", "1. draw samples, `prior.sample`.\n", "2. calculate the prior probability, `prior.prob`.\n", "3. rescale samples from a unit cube to the prior distribution, `prior.rescale`.\n", - "\n", - " This is especially useful when using nested samplers as it avoids the need for rejection sampling.\n", - "4. _TODO_ calculate the log prior probability, `prior.log_prob`.\n", + " This is especially useful when using nested samplers as it avoids the need for rejection sampling.\n", + "4. Calculate the log prior probability, `prior.log_prob`.\n", "\n", "In addition to the predefined prior distributions there is functionality to specify your own prior, either from a pair of arrays, or from a file.\n", "\n", @@ -25,17 +25,16 @@ }, { "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Populating the interactive namespace from numpy and matplotlib\n" - ] + "execution_count": null, + "metadata": { + "execution": { + "iopub.execute_input": "2021-02-05T21:53:59.048160Z", + "iopub.status.busy": "2021-02-05T21:53:59.047541Z", + "iopub.status.idle": "2021-02-05T21:54:00.520314Z", + "shell.execute_reply": "2021-02-05T21:54:00.520637Z" } - ], + }, + "outputs": [], "source": [ "import bilby\n", "%pylab inline\n", @@ -55,34 +54,25 @@ }, { "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "<matplotlib.figure.Figure at 0x7fadcc8ec550>" - ] - }, - "metadata": { - "image/png": { - "height": 567.0, - "width": 1728.0 - } - }, - "output_type": "display_data" + "execution_count": null, + "metadata": { + "execution": { + "iopub.execute_input": "2021-02-05T21:54:00.528510Z", + "iopub.status.busy": "2021-02-05T21:54:00.528063Z", + "iopub.status.idle": "2021-02-05T21:54:02.625157Z", + "shell.execute_reply": "2021-02-05T21:54:02.624711Z" } - ], + }, + "outputs": [], "source": [ - "fig = figure(figsize=(24, 8))\n", + "fig = figure(figsize=(12, 5))\n", "\n", "priors = [\n", " bilby.core.prior.Uniform(minimum=5, maximum=50),\n", " bilby.core.prior.LogUniform(minimum=5, maximum=50),\n", " bilby.core.prior.PowerLaw(name='name', alpha=2, minimum=100, maximum=1000),\n", - " bilby.gw.prior.UniformComovingVolume(name='name', minimum=100, maximum=1000, latex_label='label'),\n", - " bilby.core.prior.FromFile(name='name', file_name='comoving.txt', minimum=100, maximum=30000, latex_label='label'),\n", + " bilby.gw.prior.UniformComovingVolume(name='luminosity_distance', minimum=100, maximum=1000, latex_label='label'),\n", + " bilby.gw.prior.AlignedSpin(),\n", " bilby.core.prior.Gaussian(name='name', mu=0, sigma=1, latex_label='label'),\n", " bilby.core.prior.TruncatedGaussian(name='name', mu=1, sigma=0.4, minimum=-1, maximum=1,\n", " latex_label='label'),\n", @@ -94,7 +84,7 @@ "\n", "for ii, prior in enumerate(priors):\n", " fig.add_subplot(2, 5, 1 + ii)\n", - " hist(prior.sample(100000), bins=100, histtype='step', normed=1)\n", + " hist(prior.sample(100000), bins=100, histtype='step', density=True)\n", " if not isinstance(prior, bilby.core.prior.Gaussian):\n", " plot(np.linspace(prior.minimum, prior.maximum, 1000),\n", " prior.prob(np.linspace(prior.minimum, prior.maximum, 1000)))\n", @@ -107,75 +97,6 @@ "close()" ] }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Default Priors\n", - "\n", - "We have a range of predefined prior distributions for common parameters, e.g., a uniform in comoving volume prior for `luminosity_distance`.\n", - "\n", - "The predefined prior distributions are:\n", - "\n", - "```python\n", - "'mass_1': Uniform(name='mass_1', minimum=5, maximum=100),\n", - "'mass_2': Uniform(name='mass_2', minimum=5, maximum=100),\n", - "'chirp_mass': Uniform(name='chirp_mass', minimum=5, maximum=100),\n", - "'total_mass': Uniform(name='total_mass', minimum=10, maximum=200),\n", - "'mass_ratio': Uniform(name='mass_ratio', minimum=0.125, maximum=1),\n", - "'symmetric_mass_ratio': Uniform(name='symmetric_mass_ratio', minimum=8 / 81, maximum=0.25),\n", - "'a_1': Uniform(name='a_1', minimum=0, maximum=0.8),\n", - "'a_2': Uniform(name='a_2', minimum=0, maximum=0.8),\n", - "'tilt_1': Sine(name='tilt_1'),\n", - "'tilt_2': Sine(name='tilt_2'),\n", - "'cos_tilt_1': Uniform(name='cos_tilt_1', minimum=-1, maximum=1),\n", - "'cos_tilt_2': Uniform(name='cos_tilt_2', minimum=-1, maximum=1),\n", - "'phi_12': Uniform(name='phi_12', minimum=0, maximum=2 * np.pi),\n", - "'phi_jl': Uniform(name='phi_jl', minimum=0, maximum=2 * np.pi),\n", - "'luminosity_distance': UniformComovingVolume(name='luminosity_distance', minimum=1e2, maximum=5e3),\n", - "'dec': Cosine(name='dec'),\n", - "'ra': Uniform(name='ra', minimum=0, maximum=2 * np.pi),\n", - "'iota': Sine(name='iota'),\n", - "'cos_iota': Uniform(name='cos_iota', minimum=-1, maximum=1),\n", - "'psi': Uniform(name='psi', minimum=0, maximum=2 * np.pi),\n", - "'phase': Uniform(name='phase', minimum=0, maximum=2 * np.pi)\n", - "```\n", - "\n", - "Each of these parameters has a default latex label." - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "<matplotlib.figure.Figure at 0x7fadc9d5e6d8>" - ] - }, - "metadata": { - "image/png": { - "height": 337.0, - "width": 743.0 - } - }, - "output_type": "display_data" - } - ], - "source": [ - "prior = bilby.prior.create_default_prior(name='luminosity_distance')\n", - "\n", - "figure(figsize=(12, 5))\n", - "hist(prior.sample(100000), bins=100, histtype='step', normed=1)\n", - "plot(np.linspace(prior.minimum, prior.maximum, 1000), prior.prob(np.linspace(prior.minimum, prior.maximum, 1000)))\n", - "xlabel('{}'.format(prior.latex_label))\n", - "show()\n", - "close()" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -187,15 +108,22 @@ }, { "cell_type": "code", - "execution_count": 4, - "metadata": {}, + "execution_count": null, + "metadata": { + "execution": { + "iopub.execute_input": "2021-02-05T21:54:02.634470Z", + "iopub.status.busy": "2021-02-05T21:54:02.634040Z", + "iopub.status.idle": "2021-02-05T21:54:02.635882Z", + "shell.execute_reply": "2021-02-05T21:54:02.635491Z" + } + }, "outputs": [], "source": [ - "class Exponential(bilby.prior.Prior):\n", + "class Exponential(bilby.core.prior.Prior):\n", " \"\"\"Define a new prior class where p(x) ~ exp(alpha * x)\"\"\"\n", " \n", " def __init__(self, alpha, minimum, maximum, name=None, latex_label=None):\n", - " bilby.prior.Prior.__init__(self, name, latex_label, minimum, maximum)\n", + " super(Exponential, self).__init__(name=name, latex_label=latex_label, minimum=minimum, maximum=maximum)\n", " self.alpha = alpha\n", " \n", " def rescale(self, val):\n", @@ -211,30 +139,21 @@ }, { "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "<matplotlib.figure.Figure at 0x7fadc9d1cbe0>" - ] - }, - "metadata": { - "image/png": { - "height": 337.0, - "width": 716.0 - } - }, - "output_type": "display_data" + "execution_count": null, + "metadata": { + "execution": { + "iopub.execute_input": "2021-02-05T21:54:02.640725Z", + "iopub.status.busy": "2021-02-05T21:54:02.640231Z", + "iopub.status.idle": "2021-02-05T21:54:03.064456Z", + "shell.execute_reply": "2021-02-05T21:54:03.063925Z" } - ], + }, + "outputs": [], "source": [ "prior = Exponential(name='name', alpha=-1, minimum=0, maximum=10)\n", "\n", "figure(figsize=(12, 5))\n", - "hist(prior.sample(100000), bins=100, histtype='step', normed=1)\n", + "hist(prior.sample(100000), bins=100, histtype='step', density=True)\n", "plot(np.linspace(prior.minimum, prior.maximum, 1000), prior.prob(np.linspace(prior.minimum, prior.maximum, 1000)))\n", "xlabel('{}'.format(prior.latex_label))\n", "show()\n", @@ -249,25 +168,7 @@ "source": [] } ], - "metadata": { - "kernelspec": { - "display_name": "py3.4", - "language": "python", - "name": "py3.4" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.4.5" - } - }, + "metadata": {}, "nbformat": 4, "nbformat_minor": 2 } diff --git a/examples/tutorials/visualising_the_results.ipynb b/examples/tutorials/visualising_the_results.ipynb index 9bf2de0aaf5f276dfbe821bacd8bf706da669a60..7313214414a750e01ede587ed79b4719121828a5 100644 --- a/examples/tutorials/visualising_the_results.ipynb +++ b/examples/tutorials/visualising_the_results.ipynb @@ -277,25 +277,7 @@ ] } ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.7.3" - } - }, + "metadata": {}, "nbformat": 4, "nbformat_minor": 2 }