Skip to main content
`Ctrl`+`K`

# Ellipse2D

class astropy.modeling.functional_models.Ellipse2D(amplitude=1, x_0=0, y_0=0, a=1, b=1, theta=0.0, **kwargs)

  Bases: `Fittable2DModel`

  A 2D Ellipse model.

  Parameters:
    amplitude `python:float`

      Value of the ellipse.

    x_0 `python:float`

      x position of the center of the disk.

    y_0 `python:float`

      y position of the center of the disk.

    a `python:float`

      The length of the semimajor axis.

    b `python:float`

      The length of the semiminor axis.

    theta `python:float` or `Quantity`, optional

      The rotation angle as an angular quantity (`Quantity` or `Angle`) or a value in radians (as a float). The rotation angle increases counterclockwise from the positive x axis.

  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

  `Disk2D`, `Box2D`

  Notes

  Model formula:

  \[\begin{split}f(x, y) = \left \{ \begin{array}{ll} \mathrm{amplitude} & : \left[\frac{(x - x_0) \cos \theta + (y - y_0) \sin \theta}{a}\right]^2 + \left[\frac{-(x - x_0) \sin \theta + (y - y_0) \cos \theta}{b}\right]^2 \leq 1 \\ 0 & : \mathrm{otherwise} \end{array} \right.\end{split}\]

  Examples

      import numpy as np
      from astropy.modeling.models import Ellipse2D
      from astropy.coordinates import Angle
      import matplotlib.pyplot as plt
      import matplotlib.patches as mpatches
      x0, y0 = 25, 25
      a, b = 20, 10
      theta = Angle(30, 'deg')
      e = Ellipse2D(amplitude=100., x_0=x0, y_0=y0, a=a, b=b,
                    theta=theta.radian)
      y, x = np.mgrid[0:50, 0:50]
      fig, ax = plt.subplots(1, 1)
      ax.imshow(e(x, y), origin='lower', interpolation='none', cmap='Greys_r')
      e2 = mpatches.Ellipse((x0, y0), 2*a, 2*b, angle=theta.degree, edgecolor='red',
                            facecolor='none')
      ax.add_patch(e2)
      plt.show()

  (`png`, `svg`, `pdf`)

  Attributes Summary

  `a` |
  `amplitude` |
  `b` |
  `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.
  `theta` |
  `x_0` |
  `y_0` |

  Methods Summary

  `evaluate`(x, y, amplitude, x_0, y_0, a, b, theta) | Two dimensional Ellipse model function.

  Attributes Documentation

  a = Parameter('a', value=1.0)
  amplitude = Parameter('amplitude', value=1.0)
  b = Parameter('b', value=1.0)
  input_units
  param_names = ('amplitude', 'x_0', 'y_0', 'a', 'b', 'theta')

    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.

  theta = Parameter('theta', value=0.0)
  x_0 = Parameter('x_0', value=0.0)
  y_0 = Parameter('y_0', value=0.0)

  Methods Documentation

  static evaluate(x, y, amplitude, x_0, y_0, a, b, theta)

    Two dimensional Ellipse model function.