WedgeSegmentedCircularAperture

class poppy.WedgeSegmentedCircularAperture(name=None, radius=<Quantity 1. m>, rings=2, nsections=4, gap_radii=None, gap=<Quantity 0.01 m>, gray_pixel=False, rotation=0, **kwargs)[source]

Bases: MultiSegmentAperture, CircularAperture

Define a circular aperture made of pie-wedge or keystone shaped segments.

Parameters:
namestring

Descriptive name

radiusfloat

Radius of the pupil, in meters.

ringsint

Number of rings of segments

nsectionsint or list of ints

Number of segments per ring. If one int, same number of segments in each ring. Or provide a list of ints to set different numbers per ring. To exclude the center for an on-axis aperture, provide a 0 as the first element of nsections to indicate 0 segments in the first ring.

gap_radiiquantity length

Radii from the center for the gaps between rings

gapquantity length

Width of gaps between segments, in both radial and azimuthal directions

gray_pixelbool, optional

Apply gray pixel approximation to return fractional transmission for edge pixels that are only partially within this aperture? (Note, currently this gives a warning; disabled by default)

kwargsother kwargs are passed to CircularAperture
Potential TODO: also have this inherit from MultiSegmentedAperture and subclass
some of those functions as appropriate. Consider refactoring from gap_radii to instead
provide the widths of each segment. Add option for including the center segment or having
a missing one in the middle for on-axis apertures. Use grayscale approximation for rasterizing
the circular gaps between the rings.

Methods Summary

get_transmission(wave)

Compute the transmission inside/outside of the aperture.

Methods Documentation

get_transmission(wave)[source]

Compute the transmission inside/outside of the aperture.

Note, this implementation draws the whole circular aperture then draws in the individual gaps, rather than drawing the aperture one segment at a time.