popsynth.auxiliary_sampler module

class popsynth.auxiliary_sampler.AuxiliaryParameter(default: Optional[float] = None, vmin: Optional[float] = None, vmax: Optional[float] = None, free: bool = True)[source]

Bases: popsynth.utils.meta.Parameter

class popsynth.auxiliary_sampler.AuxiliarySampler(name: str, observed: bool = True, uses_distance: bool = False, uses_luminosity: bool = False, uses_sky_position: bool = False)[source]

Bases: object

__init__(name: str, observed: bool = True, uses_distance: bool = False, uses_luminosity: bool = False, uses_sky_position: bool = False) → None[source]

Base class for auxiliary samplers.

Parameters:
  • name (str) – Name of the sampler
  • observed (bool) – True if the property is observed, False if it is latent. Defaults to True
  • uses_distance (bool) – True if sampler uses distance values
  • uses_luminosity (bool) – True if sampler uses luminosities
  • uses_sky_position (bool) – True if sampler uses sky positions
display()[source]
draw(size: int = 1)[source]

Draw the primary and secondary samplers. This is the main call.

Parameters:size (int) – The number of samples to draw
get_secondary_objects(recursive_secondaries: Optional[Dict[str, Any]] = None) → Dict[str, Any][source]

Get secondary objects.

Parameters:recursive_secondaries – Recursive dict of secondaries
Returns:Dict of objects
Return type:Dict[str, Any]
get_secondary_properties(graph=None, primary=None, spatial_distribution=None) → popsynth.auxiliary_sampler.SecondaryStorage[source]

Get properties of secondary samplers.

Parameters:
  • graph – Graph
  • primary – Primary sampler
  • spatial_distribution – Spatial Distribution
Returns:

Dict of samplers

Return type:

SamplerDict

has_secondary

if this sampler has a secondary :returns:

is_secondary

If another sampler depends on this

Returns:
luminosity_distance

luminosity distance if needed.

make_secondary(parent_name: str) → None[source]

sets this sampler as secondary for book keeping

Parameters:parent_name (str) –
Returns:
name

The name of the sampler

Returns:
obs_name
obs_values

The values obscured by measurement error.

Returns:
observation_sampler(size: int = 1) → numpy.ndarray[source]
observed

if this sampler is observed

Returns:
parents

The parents of this sampler

reset()[source]

Reset all the selections.

secondary_samplers

Secondary samplers. :returns: Dict of secondary samplers :rtype: SamplerDict

selection

The selection booleans on the values

Returns:
selector

The selection probability object

Returns:
set_luminosity(luminosity: Union[Sequence[Sequence[Sequence[Sequence[Sequence[Any]]]]], numpy.typing._array_like._SupportsArray[numpy.dtype][numpy.dtype], Sequence[numpy.typing._array_like._SupportsArray[numpy.dtype][numpy.dtype]], Sequence[Sequence[numpy.typing._array_like._SupportsArray[numpy.dtype][numpy.dtype]]], Sequence[Sequence[Sequence[numpy.typing._array_like._SupportsArray[numpy.dtype][numpy.dtype]]]], Sequence[Sequence[Sequence[Sequence[numpy.typing._array_like._SupportsArray[numpy.dtype][numpy.dtype]]]]], bool, int, float, complex, str, bytes, Sequence[Union[bool, int, float, complex, str, bytes]], Sequence[Sequence[Union[bool, int, float, complex, str, bytes]]], Sequence[Sequence[Sequence[Union[bool, int, float, complex, str, bytes]]]], Sequence[Sequence[Sequence[Sequence[Union[bool, int, float, complex, str, bytes]]]]]]) → None[source]

Set the luminosity values.

Parameters:luminosity (ArrayLike) – Luminosity
set_secondary_sampler(sampler: popsynth.auxiliary_sampler.AuxiliarySampler) → None[source]

Add a secondary sampler upon which this sampler will depend. The sampled values can be accessed via an internal dictionary with the samplers ‘name’

self._secondary_sampler[‘name’].true_values self._secondary_sampler[‘name’].obs_values

Parameters:sampler ("AuxiliarySampler") – An auxiliary sampler
Returns:
set_selection_probability(selector: popsynth.selection_probability.selection_probability.SelectionProbability) → None[source]

Set a selection probabilty for this sampler.

Parameters:selector (SelectionProbability) – A selection probability oobject
Returns:
set_spatial_values(value: popsynth.distribution.SpatialContainer) → None[source]

Set the spatial values.

Parameters:value (SpatialContainer) – Spatial values
true_sampler(size: int = 1)[source]
true_values

The true or latent values

Returns:
truth

A dictionary containing true paramters used to simulate the distribution

uses_distance

If this uses distance

Returns:
uses_luminosity

If this uses luminosity

Returns:
uses_sky_position

If this uses sky position

Returns:
class popsynth.auxiliary_sampler.DerivedLumAuxSampler(name: str, uses_distance: bool = False)[source]

Bases: popsynth.auxiliary_sampler.AuxiliarySampler

__init__(name: str, uses_distance: bool = False)[source]

Base class for generating luminosity from other properties.

Parameters:
  • name (str) – Name of the sampler
  • uses_distance (bool) – True if sampler uses distance values
compute_luminosity()[source]
class popsynth.auxiliary_sampler.NonObservedAuxSampler(name: str, uses_distance: bool = False, uses_luminosity: bool = False)[source]

Bases: popsynth.auxiliary_sampler.AuxiliarySampler

__init__(name: str, uses_distance: bool = False, uses_luminosity: bool = False)[source]

Base class for auxiliary samplers.

Parameters:
  • name (str) – Name of the sampler
  • observed (bool) – True if the property is observed, False if it is latent. Defaults to True
  • uses_distance (bool) – True if sampler uses distance values
  • uses_luminosity (bool) – True if sampler uses luminosities
  • uses_sky_position (bool) – True if sampler uses sky positions
class popsynth.auxiliary_sampler.SecondaryContainer(name: str, true_values: Union[Sequence[Sequence[Sequence[Sequence[Sequence[Any]]]]], numpy.typing._array_like._SupportsArray[numpy.dtype][numpy.dtype], Sequence[numpy.typing._array_like._SupportsArray[numpy.dtype][numpy.dtype]], Sequence[Sequence[numpy.typing._array_like._SupportsArray[numpy.dtype][numpy.dtype]]], Sequence[Sequence[Sequence[numpy.typing._array_like._SupportsArray[numpy.dtype][numpy.dtype]]]], Sequence[Sequence[Sequence[Sequence[numpy.typing._array_like._SupportsArray[numpy.dtype][numpy.dtype]]]]], bool, int, float, complex, str, bytes, Sequence[Union[bool, int, float, complex, str, bytes]], Sequence[Sequence[Union[bool, int, float, complex, str, bytes]]], Sequence[Sequence[Sequence[Union[bool, int, float, complex, str, bytes]]]], Sequence[Sequence[Sequence[Sequence[Union[bool, int, float, complex, str, bytes]]]]]], obs_values: Union[Sequence[Sequence[Sequence[Sequence[Sequence[Any]]]]], numpy.typing._array_like._SupportsArray[numpy.dtype][numpy.dtype], Sequence[numpy.typing._array_like._SupportsArray[numpy.dtype][numpy.dtype]], Sequence[Sequence[numpy.typing._array_like._SupportsArray[numpy.dtype][numpy.dtype]]], Sequence[Sequence[Sequence[numpy.typing._array_like._SupportsArray[numpy.dtype][numpy.dtype]]]], Sequence[Sequence[Sequence[Sequence[numpy.typing._array_like._SupportsArray[numpy.dtype][numpy.dtype]]]]], bool, int, float, complex, str, bytes, Sequence[Union[bool, int, float, complex, str, bytes]], Sequence[Sequence[Union[bool, int, float, complex, str, bytes]]], Sequence[Sequence[Sequence[Union[bool, int, float, complex, str, bytes]]]], Sequence[Sequence[Sequence[Sequence[Union[bool, int, float, complex, str, bytes]]]]]], selection: Union[Sequence[Sequence[Sequence[Sequence[Sequence[Any]]]]], numpy.typing._array_like._SupportsArray[numpy.dtype][numpy.dtype], Sequence[numpy.typing._array_like._SupportsArray[numpy.dtype][numpy.dtype]], Sequence[Sequence[numpy.typing._array_like._SupportsArray[numpy.dtype][numpy.dtype]]], Sequence[Sequence[Sequence[numpy.typing._array_like._SupportsArray[numpy.dtype][numpy.dtype]]]], Sequence[Sequence[Sequence[Sequence[numpy.typing._array_like._SupportsArray[numpy.dtype][numpy.dtype]]]]], bool, int, float, complex, str, bytes, Sequence[Union[bool, int, float, complex, str, bytes]], Sequence[Sequence[Union[bool, int, float, complex, str, bytes]]], Sequence[Sequence[Sequence[Union[bool, int, float, complex, str, bytes]]]], Sequence[Sequence[Sequence[Sequence[Union[bool, int, float, complex, str, bytes]]]]]])[source]

Bases: object

__init__(name: str, true_values: Union[Sequence[Sequence[Sequence[Sequence[Sequence[Any]]]]], numpy.typing._array_like._SupportsArray[numpy.dtype][numpy.dtype], Sequence[numpy.typing._array_like._SupportsArray[numpy.dtype][numpy.dtype]], Sequence[Sequence[numpy.typing._array_like._SupportsArray[numpy.dtype][numpy.dtype]]], Sequence[Sequence[Sequence[numpy.typing._array_like._SupportsArray[numpy.dtype][numpy.dtype]]]], Sequence[Sequence[Sequence[Sequence[numpy.typing._array_like._SupportsArray[numpy.dtype][numpy.dtype]]]]], bool, int, float, complex, str, bytes, Sequence[Union[bool, int, float, complex, str, bytes]], Sequence[Sequence[Union[bool, int, float, complex, str, bytes]]], Sequence[Sequence[Sequence[Union[bool, int, float, complex, str, bytes]]]], Sequence[Sequence[Sequence[Sequence[Union[bool, int, float, complex, str, bytes]]]]]], obs_values: Union[Sequence[Sequence[Sequence[Sequence[Sequence[Any]]]]], numpy.typing._array_like._SupportsArray[numpy.dtype][numpy.dtype], Sequence[numpy.typing._array_like._SupportsArray[numpy.dtype][numpy.dtype]], Sequence[Sequence[numpy.typing._array_like._SupportsArray[numpy.dtype][numpy.dtype]]], Sequence[Sequence[Sequence[numpy.typing._array_like._SupportsArray[numpy.dtype][numpy.dtype]]]], Sequence[Sequence[Sequence[Sequence[numpy.typing._array_like._SupportsArray[numpy.dtype][numpy.dtype]]]]], bool, int, float, complex, str, bytes, Sequence[Union[bool, int, float, complex, str, bytes]], Sequence[Sequence[Union[bool, int, float, complex, str, bytes]]], Sequence[Sequence[Sequence[Union[bool, int, float, complex, str, bytes]]]], Sequence[Sequence[Sequence[Sequence[Union[bool, int, float, complex, str, bytes]]]]]], selection: Union[Sequence[Sequence[Sequence[Sequence[Sequence[Any]]]]], numpy.typing._array_like._SupportsArray[numpy.dtype][numpy.dtype], Sequence[numpy.typing._array_like._SupportsArray[numpy.dtype][numpy.dtype]], Sequence[Sequence[numpy.typing._array_like._SupportsArray[numpy.dtype][numpy.dtype]]], Sequence[Sequence[Sequence[numpy.typing._array_like._SupportsArray[numpy.dtype][numpy.dtype]]]], Sequence[Sequence[Sequence[Sequence[numpy.typing._array_like._SupportsArray[numpy.dtype][numpy.dtype]]]]], bool, int, float, complex, str, bytes, Sequence[Union[bool, int, float, complex, str, bytes]], Sequence[Sequence[Union[bool, int, float, complex, str, bytes]]], Sequence[Sequence[Sequence[Union[bool, int, float, complex, str, bytes]]]], Sequence[Sequence[Sequence[Sequence[Union[bool, int, float, complex, str, bytes]]]]]]) → None[source]

A container for secondary properties that adds dict and dictionary access

Parameters:
  • name (str) – the name of the secondary
  • true_values (ArrayLike) –
  • obs_values (ArrayLike) –
  • selection (ArrayLike) –
Returns:

name
obs_values

The observed values of the sampler

Returns:
selection

The the slection of the values

Returns:
true_values

The true (latent) values of the sampler

Returns:
class popsynth.auxiliary_sampler.SecondaryStorage[source]

Bases: dotmap.DotMap

__init__()[source]

A container for secondary samplers

Returns:
add_secondary(secondary_values: popsynth.auxiliary_sampler.SecondaryContainer) → None[source]

Add on a new secondary

Parameters:secondary_values (SecondaryContainer) –
Returns: