Sampling – Strong Lensing Parameter Sampling Modules

paltas.Sampling.distributions module

Define a number of distributions that can be used by the sampler to draw lensing parameters.

This module contains classes that define distributions that can be effecitvely sampled from.

class paltas.Sampling.distributions.Duplicate(dist)[source]

Bases: object

Class that returns two copies of the same random draw.

Parameters:

dist (scipy.stats.rv_continuous.rvs or float) – The distribution to draw the sample from.

class paltas.Sampling.distributions.DuplicateScatter(dist, scatter)[source]

Bases: Duplicate

Class that returns two copies of the same random draw with some additional scatter on the second value.

Parameters:
  • dist (scipy.stats.rv_continuous.rvs or float) – The distribution to draw the sample from.

  • scatter (float) – The additional scatter to add to the second draw of the variable.

class paltas.Sampling.distributions.DuplicateXY(x_dist, y_dist)[source]

Bases: object

Class that returns two copies of x, y coordinates drawn from

distributions

Parameters:
  • x_dist (scipy.stats.rv_continuous.rvs or float) – distribution for x (can be callable or constant)

  • y_dist (scipy.stats.rv_continuous.rvs or float) – distribution for y (can be callable or constant)

class paltas.Sampling.distributions.EllipticitiesTranslation(q_dist, phi_dist)[source]

Bases: object

Class that takes in distributions for q_lens and phi_lens, returns samples of e1 and e2 correspondingly

Parameters:
  • q_dist (scipy.stats.rv_continuous.rvs or float) – distribution for axis ratio (can be callable or constant)

  • phi_dist (scipy.stats.rv_continuous.rvs or float) – distribution for orientation angle in radians (can be callable or constant)

Notes:

class paltas.Sampling.distributions.ExternalShearTranslation(gamma_dist, phi_dist)[source]

Bases: object

Class that maps samples of gamma_ext, phi_ext distributions to

gamma1, gamma2

Parameters:
  • gamma_dist (scipy.stats.rv_continuous.rvs or float) – distribution for external shear modulus (callable or constant)

  • phi_dist (scipy.stats.rv_continuous.rvs or float) – distribution for orientation angle in radians (callable or constant)

Notes:

class paltas.Sampling.distributions.KappaTransformDistribution(n_dist)[source]

Bases: object

Class that samples Kext given 1 / (1-Kext) ~ n. n is sampled from a distribution given by n_dist, then Kext is computed given the transformation

Parameters:

n_dist (scipy.stats.rv_continuous.rvs or float) – distribution for 1 / (1-Kext) (can be callable or constant)

class paltas.Sampling.distributions.MultipleValues(dist, num)[source]

Bases: object

Class to call dist.rvs(size=num)

Parameters:
  • dist (scipy.stats.rv_continuous.rvs) – callable distribution

  • num (int) – number of samples to return in one call

class paltas.Sampling.distributions.MultivariateLogNormal(mean, covariance)[source]

Bases: object

Class for drawing multiple parameters from a multivariate log normal distribution.

Parameters:
  • mean (np.array) – The mean value of the log normal distribution

  • covariance (np.array) – The covariance matrix of the distribution

Notes

Returned values will follow the distribution exp(normal(mu,covariance))

class paltas.Sampling.distributions.RedshiftsLensLight(z_lens_min, z_lens_mean, z_lens_std, z_source_min, z_source_mean, z_source_std)[source]

Bases: RedshiftsTruncNorm

Class that samples z_lens, z_lens_light, and z_source from truncated

normal distributions, forcing z_source > z_lens to be true and z_lens_light = z_lens.

Parameters:
  • z_lens_min (float) – minimum allowed lens redshift

  • z_lens_mean (float) – lens redshift mean

  • z_lens_std (float) – lens redshift standard deviation

  • z_source_min (float) – minimum allowed source redshift

  • z_source_mean (float) – source redshift mean

  • z_source_std (float) – source redshift standard deviation

class paltas.Sampling.distributions.RedshiftsTruncNorm(z_lens_min, z_lens_mean, z_lens_std, z_source_min, z_source_mean, z_source_std)[source]

Bases: object

Class that samples z_lens and z_source from truncated normal

distributions, forcing z_source > z_lens to be true

Parameters:
  • z_lens_min (float) – minimum allowed lens redshift

  • z_lens_mean (float) – lens redshift mean

  • z_lens_std (float) – lens redshift standard deviation

  • z_source_min (float) – minimum allowed source redshift

  • z_source_mean (float) – source redshift mean

  • z_source_std (float) – source redshift standard deviation

class paltas.Sampling.distributions.TruncatedMultivariateNormal(mean, covariance, min_values=None, max_values=None)[source]

Bases: object

Class for drawing multiple parameters from a truncated multivariate normal distribution.

Parameters:
  • mean (np.array) – The mean value of the log normal distribution

  • covariance (np.array) – The covariance matrix of the distribution

  • min_values (np.array) – The minimum value for each parameter

  • max_values (np.array) – The maximum value for each parameter

Notes

Note this code uses rejection sampling, which may be slow if most of the multivariate normal’s pdf is outside the bounds. Be careful when using this in high dimensions.

paltas.Sampling.sampler module

Define the sampler class which reads goes from the distribution dictionary to drawing samples on the lens parameters.

This module contains the class used to sample parameters for our train and test set from the input distributions.

class paltas.Sampling.sampler.Sampler(configuration_dictionary)[source]

Bases: object

Class for drawing lens parameter values from input distribution dictionaries

Parameters:

configuration_dictionary (dict) – An instance of the configuration dictionary that will be used to decide how to sample parameter values.

Notes

For examples on how to configure the dict object, see the ConfigurationDict.ipynb example notebook.

static draw_from_dict(draw_dict)[source]

Populates a dict with samples drawn from the specified distributions in the input dict.

Parameters:

draw_dict (dict) – The dictionary containing keys mapping to values or distributions for each parameter.

Returns:

A dict with a drawn value for each parameter.

Return type:

(dict)

Notes

Multivariate distribution for parameters should have a key of the form ‘param_1,param_2,param_3’.

sample()[source]

Samples from the distributions given in the configuration dictionary

Returns:

A dictionary containing the parameter values that will be sampled.

Return type:

(dict)