MultiHexagonAperture

class poppy.MultiHexagonAperture(name='MultiHex', flattoflat=1.0, side=None, gap=0.01, rings=1, segmentlist=None, center=False, **kwargs)[source]

Bases: MultiSegmentAperture

Defines a hexagonally segmented aperture

Parameters:
namestring

Descriptive name

ringsinteger

The number of rings of hexagons to include, not counting the central segment (i.e. 2 for a JWST-like aperture, 3 for a Keck-like aperture, and so on)

sidefloat, optional

side length (and/or radius) of hexagon, in meters. Overrides flattoflat if both are present.

flattoflatfloat, optional

Distance between sides (flat-to-flat) of the hexagon, in meters. Default is 1.0

gap: float, optional

Gap between adjacent segments, in meters. Default is 0.01 m = 1 cm

centerbool, optional

should the central segment be included? Default is False.

segmentlistlist of ints, optional

This allows one to specify that only a subset of segments are present, for a partially populated segmented telescope, non-redundant segment set, etc. Segments are numbered from 0 for the center segment, 1 for the segment immediately above it, and then clockwise around each ring. For example, segmentlist=[1,3,5] would make an aperture of 3 segments.

Note that this routine becomes a bit slow for nrings >4. For repeated computations on
the same aperture, avoid repeated evaluations of this function. It will be faster to create
this aperture, evaluate it once, and save the result onto a discrete array, via either

(1) saving it to a FITS file using the to_fits() method, and then use that in a FITSOpticalElement, or (2) Use the fixed_sampling_optic function to create an ArrayOpticalElement with a sampled version of this.