daisy_pattern_offset

sofia_redux.scan.simulation.scan_patterns.daisy.daisy_pattern_offset(radius, radial_period, t_interval, n_oscillations=22, constant_speed=False)[source]

Create a daisy scan pattern in offset coordinates.

The daisy pattern has the following form in two dimensions:

x = r.sin(a).cos(b)
y = r.sin(a).sin(b)
a = 2.pi.t/radial_period + radial_phase
b = 2.t/radial_period + rotation_phase
rotation_phase = 2.n_oscillations
radial_phase = pi.rotation_phase

The time (t) is generated in the range 0 -> n_oscillations * radial_period in increments ot t_interval. If constant_speed is False, the speed of the pattern will be minimal near the edges of the petals and maximal near the center. Due to the fact that the radial and rotational phases are auto-generated such that the pattern forms a closed shape, the samples will also occur along increasingly separated concentric rings from the origin. Therefore, for better scanning coverage, constant_speed may be set to True so that the physical distance between each sample are approximately equal.

Parameters:
radiusunits.Quantity

The angular radius of the daisy pattern.

radial_periodunits.Quantity

The time to complete a single radial oscillation.

t_intervalunits.Quantity

The time interval between sampling points.

n_oscillationsint or float, optional

The number of oscillations in the pattern. The default of 22 gives a fully populated area for observation.

constant_speedbool, optional

If True, return a pattern where the speed between each sample point is equal.

Returns:
patternCoordinate2D

The elevation/cross-elevation scan pattern sampled at t_interval in the units of radius.