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:
objectClass 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:
DuplicateClass 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:
objectClass 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:
objectClass 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:
objectClass 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:
objectClass 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:
objectClass 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:
objectClass 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’.