椭圆2 D#

class astropy.modeling.functional_models.Ellipse2D(amplitude=1, x_0=0, y_0=0, a=1, b=1, theta=0.0, **kwargs)[源代码]#

基类:Fittable2DModel

二维椭圆模型。

参数:
amplitude : floatPython :浮点

椭圆的值。

x_0 : floatPython :浮点

圆盘中心的x位置。

y_0 : floatPython :浮点

圆盘中心的y位置。

a : floatPython :浮点

半长轴的长度。

b : floatPython :浮点

半短轴的长度。

theta : floatQuantity ,可选Python:浮点型或数量型,可选

以角度量表示的旋转角度 (QuantityAngle )或以弧度为单位的值(浮点数)。旋转角度从正x轴逆时针增加。

其他参数:
fixed : dict ,可选Python:Dict,可选

字典 {{parameter_name: boolean}} 在拟合过程中不能改变的参数。True表示参数保持不变。或者 fixed 可以使用参数的属性。

tied : dict ,可选Python:Dict,可选

字典 {{parameter_name: callable}} 链接到其他参数的参数。字典值是提供链接关系的可调用项。或者 tied 可以使用参数的属性。

bounds : dict ,可选Python:Dict,可选

字典 {{parameter_name: value}} 参数的上下界。键是参数名。值是一个长度为2的列表或元组,为参数提供所需的范围。或者 minmax 可以使用参数的属性。

eqcons : list ,可选Python:列表,可选

长度函数列表 n 这样的话 eqcons[j](x0,*args) == 0.0 在一个成功优化的问题中。

ineqcons : list ,可选Python:列表,可选

长度函数列表 n 这样的话 ieqcons[j](x0,*args) >= 0.0 是一个成功优化的问题。

参见

Disk2D, Box2D

笔记

模型公式:

\[f(x,y)=\左\{\]

实例

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)

../_images/astropy-modeling-functional_models-Ellipse2D-1.png

属性摘要

a 

amplitude 

b 

input_units 

此属性用于指示evaluate方法所需的单元或单元集,并返回将输入映射到单元(或 None 如果接受任何单位)。

param_names 

描述此类型模型的参数的名称。

theta 

x_0 

y_0 

方法总结

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

二维椭圆模型函数。

属性文档

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')#

描述此类型模型的参数的名称。

此元组中的参数与初始化特定类型的模型时应传入的顺序相同。某些类型的模型,如多项式模型,根据模型的某些其他属性(如阶数)有不同数量的参数。

定义自定义模型类时,此属性的值由 Parameter 在类中定义的body属性。

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

方法文件

static evaluate(x, y, amplitude, x_0, y_0, a, b, theta)[源代码]#

二维椭圆模型函数。