astro py:docs

- Index
- Modules

### Navigation

- next »
- « previous |
- Astropy v1.1.1 »
- Models and Fitting (`astropy.modeling`) »
- Ellipse2D

# Ellipse2D

class `astropy.modeling.functional_models.``Ellipse2D`

  Bases: `astropy.modeling.Fittable2DModel`

  A 2D Ellipse model.

  Parameters:

  amplitude : float

  > Value of the ellipse.

  x_0 : float

  > x position of the center of the disk.

  y_0 : float

  > y position of the center of the disk.

  a : float

  > The length of the semimajor axis.

  b : float

  > The length of the semiminor axis.

  theta : float

  > The rotation angle in radians of the semimajor axis. The rotation angle increases counterclockwise from the positive x axis.

  Other Parameters:

  fixed : a dict

  > 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 : dict

  > 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 : dict

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

  eqcons : list

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

  ineqcons : list

  > 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:

  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.

  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, theta.degree, edgecolor='red',
                            facecolor='none')
      ax.add_patch(e2)
      plt.show()

  (Source code, png, hires.png, pdf)

  Attributes Summary

  `a` |
  `amplitude` |
  `b` |
  `param_names` |
  `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`
  `amplitude`
  `b`
  `param_names` = ('amplitude', 'x_0', 'y_0', 'a', 'b', 'theta')
  `theta`
  `x_0`
  `y_0`

  Methods Documentation

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

    Two dimensional Ellipse model function.