BandLimitedCoronagraph

class poppy.BandLimitedCoronagraph(name='unnamed BLC', kind='circular', sigma=1, wavelength=None, **kwargs)[source]

Bases: AnalyticImagePlaneElement

Defines an ideal band limited coronagraph occulting mask.

Parameters:
namestring

Descriptive name

kindstring

Either ‘circular’ or ‘linear’. The linear ones are custom shaped to NIRCAM’s design with flat bits on either side of the linear tapered bit. Also accepts (deprecated) ‘nircamcircular’ and ‘nircamwedge’ for JWST NIRCam occulters; these will raise a DeprecationWarning.

sigmafloat

The numerical size parameter, as specified in Krist et al. 2009 SPIE

wavelengthastropy Quantity length or float, optional

Wavelength this BLC is optimized for (only used for the ‘linear’ kind). Plain float is interpreted as meters.

Attributes Summary

allowable_kinds

Allowable types of BLC supported by this class

Methods Summary

get_transmission(wave)

Compute the amplitude transmission appropriate for a BLC for some given pixel spacing corresponding to the supplied Wavefront.

Attributes Documentation

allowable_kinds = ['circular', 'linear']

Allowable types of BLC supported by this class

Methods Documentation

get_transmission(wave)[source]

Compute the amplitude transmission appropriate for a BLC for some given pixel spacing corresponding to the supplied Wavefront.

Based on the Krist et al. SPIE paper on NIRCam coronagraph design

Note that the equations in Krist et al specify the intensity transmission of the occulter, but what we want to return here is the amplitude transmittance. That is the square root of the intensity, of course, so the equations as implemented here all differ from those written in Krist’s SPIE paper by lacking an exponential factor of 2. Thanks to John Krist for pointing this out.