hera_sim.sigchain.ReflectionSpectrum

class hera_sim.sigchain.ReflectionSpectrum(n_copies: int = 20, amp_range: tuple[float, float] = (-3, -4), dly_range: tuple[float, float] = (200, 1000), phs_range: tuple[float, float] = (-3.141592653589793, 3.141592653589793), amp_jitter: float = 0.05, dly_jitter: float = 30, amp_logbase: float = 10, rng: Generator | None = None)[source]

Generate many reflections between a range of delays.

Amplitudes are distributed on a logarithmic grid, while delays are distributed on a linear grid. Effectively, this gives a reflection spectrum whose amplitude decreases exponentially over the range of delays specified.

Parameters:
  • n_copies – Number of peaks in the reflection spectrum.

  • amp_range – Max/min of the amplitudes of the reflections in the spectrum. The spectrum amplitudes monotonically decrease (up to jitter).

  • dly_range – Min/max of the delays at which the reflections are injected, in ns.

  • phs_range – Bounds of the uniform distribution from which to draw reflection phases.

  • amp_jitter – Fractional jitter in amplitude across antennas for each of the reflections.

  • dly_jitter – Absolute jitter in delay across antennas for each of the reflections.

  • amp_logbase – Base of the logarithm to use for generating reflection amplitudes.

  • rng – Random number generator.

Notes

The generated amplitudes will be in the range amp_logbase ** amp_range[0] to amp_logbase ** amp_range[1].

Methods

__call__(freqs, ants, **kwargs)

Generate a series of reflections.

get_aliases()

Get all the aliases by which this model can be identified.

get_model(mdl)

Get a model with a particular name (including aliases).

get_models([with_aliases])

Get a dictionary of models associated with this component.

Attributes

attrs_to_pull

Mapping between parameter names and Simulator attributes

is_multiplicative

Whether this systematic multiplies existing visibilities

is_randomized

Whether this systematic contains a randomized component

return_type

Whether the returned value is per-antenna, per-baseline, or the full array