Ellipse2D¶
-
class
astropy.modeling.functional_models.
Ellipse2D
[source] [edit on github]¶ 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 thefixed
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 thetied
property of a parameter may be used.bounds : dict
eqcons : list
A list of functions of length
n
such thateqcons[j](x0,*args) == 0.0
in a successfully optimized problem.ineqcons : list
A list of functions of length
n
such thatieqcons[j](x0,*args) >= 0.0
is a successfully optimized problem.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, 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)[source] [edit on github]¶ Two dimensional Ellipse model function.
-