producer.design.focalplane module

Generic methods for distributing starbug modules in a focal plane.

producer.design.focalplane.module_layout(platescale, pitch, n_hex_module, n_hex_focal, module_pitch=None, max_dist=None)[source]

Construct a hexagonal grid of Starbug modules for a focal plane.

Parameters
  • platescale (float) – Telescope plate scale in mm / arcsec.

  • pitch (float) – The incircle of each Starbug home hexagon in mm. I.e., the pitch between each Starbug home position.

  • n_hex_module (int) – The number of Starbugs along the long axis of the module. This sets the number of Starbugs per module. Must be an odd number. E.g., 3 is 7, 5 is 19, etc.

  • n_hex_focal (int) – The number of modules along the long axis of the focal-plane. This sets the number of modules in the focal-plane grid. Must be an odd number. E.g., 3 is 7, 5 is 19, etc.

  • module_pitch (float) – The pitch in mm between the centers of each module. If None, this is the minimum required to meet the needs of the number of modules and the Starbug pitch. See hexgrid_grid_convert().

  • max_dist (float) – The maximum distance in arcmin from the focal plane center to the module center allowed for including a module in the final layout. If None, no limit is imposed.

Returns

Two 2D numpy.ndarray objects with (1) the coordinates for the Starbugs in a module relative to the module center, with shape \((N_{\rm bug},2)\), and (2) the coordinates for the modules relative to the focal-plane center, with shape \((N_{\rm mod},2)\).

Return type

tuple