Skip to main content
`Ctrl`+`K`

# AiryDisk2D

class astropy.modeling.functional_models.AiryDisk2D(amplitude=1, x_0=0, y_0=0, radius=1, **kwargs)

  Bases: `Fittable2DModel`

  Two dimensional Airy disk model.

  Parameters:
    amplitude `python:float`

      Amplitude of the Airy function.

    x_0 `python:float`

      x position of the maximum of the Airy function.

    y_0 `python:float`

      y position of the maximum of the Airy function.

    radius `python:float`

      The radius of the Airy disk (radius of the first zero).

  Other Parameters:
    fixed `python:dict`, optional

      A dictionary `{parameter_name: boolean}` of parameters to not be varied during fitting. True means the parameter is held fixed. Alternatively the `fixed` property of a parameter may be used.

    tied `python:dict`, optional

      A dictionary `{parameter_name: callable}` of parameters which are linked to some other parameter. The dictionary values are callables providing the linking relationship. Alternatively the `tied` property of a parameter may be used.

    bounds `python:dict`, optional

      A dictionary `{parameter_name: value}` of lower and upper bounds of parameters. Keys are parameter names. Values are a list or a tuple of length 2 giving the desired range for the parameter. Alternatively, the `min` and `max` properties of a parameter may be used.

    eqcons `python:list`, optional

      A list of functions of length `n` such that `eqcons[j](x0,*args) == 0.0` in a successfully optimized problem.

    ineqcons `python:list`, optional

      A list of functions of length `n` such that `ieqcons[j](x0,*args) >= 0.0` is a successfully optimized problem.

  See also

  `Box2D`, `TrapezoidDisk2D`, `Gaussian2D`

  Notes

  Model formula:

  > \[f(r) = A \left[ \frac{2 J_1(\frac{\pi r}{R/R_z})}{\frac{\pi r}{R/R_z}} \right]^2\]

  Where \(J_1\) is the first order Bessel function of the first kind, \(r\) is radial distance from the maximum of the Airy function (\(r = \sqrt{(x - x_0)^2 + (y - y_0)^2}\)), \(R\) is the input `radius` parameter, and \(R_z = 1.2196698912665045\)).

  For an optical system, the radius of the first zero represents the limiting angular resolution and is approximately 1.22 * lambda / D, where lambda is the wavelength of the light and D is the diameter of the aperture.

  See [1] for more details about the Airy disk.

  References

  [1]

  https://en.wikipedia.org/wiki/Airy_disk

  Attributes Summary

  `amplitude` |
  `input_units` | This property is used to indicate what units or sets of units the evaluate method expects, and returns a dictionary mapping inputs to units (or `None` if any units are accepted).
  `param_names` | Names of the parameters that describe models of this type.
  `radius` |
  `x_0` |
  `y_0` |

  Methods Summary

  `evaluate`(x, y, amplitude, x_0, y_0, radius) | Two dimensional Airy model function.

  Attributes Documentation

  amplitude = Parameter('amplitude', value=1.0)
  input_units
  param_names = ('amplitude', 'x_0', 'y_0', 'radius')

    Names of the parameters that describe models of this type.

    The parameters in this tuple are in the same order they should be passed in when initializing a model of a specific type. Some types of models, such as polynomial models, have a different number of parameters depending on some other property of the model, such as the degree.

    When defining a custom model class the value of this attribute is automatically set by the `Parameter` attributes defined in the class body.

  radius = Parameter('radius', value=1.0)
  x_0 = Parameter('x_0', value=0.0)
  y_0 = Parameter('y_0', value=0.0)

  Methods Documentation

  classmethod evaluate(x, y, amplitude, x_0, y_0, radius)

    Two dimensional Airy model function.