Skip to content

v3.4.0

Choose a tag to compare

@roytsmart roytsmart released this 15 Oct 02:19
e84d238

This release computes the RMS spot radius of a sequential system. It has the same requirements as 3.3.

The RMS spot radius of a sequential system (#260)

AbstractSequentialSystem.radius_spot(wavelength=None, field=None, pupil=None, axis_pupil=None, normalized_field=True, normalized_pupil=True) returns the RMS radius of the spot each field position makes on the sensor, at each wavelength. It takes the grid to trace as rayfunction does, and it is in units of position on the sensor: divide it by sensor.width_pixel / u.pix to have it in pixels.

  • How it's computed:
    • The positions on the pupil are traced for each field position and wavelength, with the efficiency of each surface, and with the sensor left open, so that a spot which straddles the edge of the sensor is traced whole.
    • Each ray is weighted by its intensity on the sensor, the throughput of the system along its path, so that a part of the pupil which passes less light counts for less. A vignetted ray has no weight.
    • The radius is the root of the weighted mean square distance from the centroid of the spot, the weighted mean of where its rays land, so that it is the size of the spot and not where it lands.
  • The edge of the sensor: a spot is kept or not as a whole, by whether its centroid lands on the pixels, rather than measured over the part of it which happens to land on them. A spot whose centroid misses the pixels is NaN.
  • Vignetting: a spot which the rest of the system vignettes in part is measured over the rays which pass. A spot which it vignettes wholly, such as one from outside the field of view, or none of whose light reaches the sensor, is NaN, without a warning.
  • Pupil axes: each spot is measured over the system's axis_pupil when its own pupil grid is traced. When a pupil is given, it is measured over the given axis_pupil, or else over the two axes of the pupil positions which aren't those of the system, the field or the wavelengths, and it raises if there aren't exactly two. A single field position works, as in a focus curve.
  • Uncertain systems: a system with uncertain parameters gives an uncertain spot radius, one per sample.
  • No sensor: a system without a sensor raises a ValueError.

Limitations:

  • Geometric: it leaves out diffraction.
  • Sampling: every ray starts with the same intensity, so each stands for an equal share of the pupil, and the pupil positions should sample the pupil evenly, as a uniform or stratified random grid does.

Full Changelog: v3.3.0...v3.4.0