Sersic2D系列#
- class astropy.modeling.functional_models.Sersic2D(amplitude=1, r_eff=1, n=4, x_0=0, y_0=0, ellip=0, theta=0.0, **kwargs)[源代码]#
-
二维Sersic表面亮度分布图。
- 参数:
- amplitude :
float
Python :浮点 表面亮度为
r_eff
。- r_eff :
float
Python :浮点 有效(半光)半径。
- n :
float
Python :浮点 控制轮廓形状的序列索引。的特定值
n
相当于以下配置文件:N=4 : de Vaucouleurs \(r^{1/4}\) 轮廓
N=1:指数分布
N=0.5:高斯分布
- x_0 :
float
,可选Python:Float,可选 中心的x位置。
- y_0 :
float
,可选Python:Float,可选 中心的y位置。
- ellip :
float
,可选Python:Float,可选 等光线的椭圆度,定义为1.0减去半长轴和半长轴的长度之比:
\[ELLIP=1-\FRAC{b}{a}\]- theta :
float
或Quantity
,可选Python:浮点型或数量型,可选 以角度量表示的旋转角度 (
Quantity
或Angle
)或以弧度为单位的值(浮点数)。旋转角度从正x轴逆时针增加。
- amplitude :
- 其他参数:
- 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的列表或元组,为参数提供所需的范围。或者min
和max
可以使用参数的属性。- eqcons :
list
,可选Python:列表,可选 长度函数列表
n
这样的话eqcons[j](x0,*args) == 0.0
在一个成功优化的问题中。- ineqcons :
list
,可选Python:列表,可选 长度函数列表
n
这样的话ieqcons[j](x0,*args) >= 0.0
是一个成功优化的问题。
- fixed :
笔记
模型公式:
\[I(x, y) = I_{e} \exp\left\{ -b_{n} \left[\left(\frac{r(x, y)}{r_{e}}\right)^{(1/n)} -1\right]\right\}\]哪里 \(I_{e}\) 是
amplitude
, \(r_{e}\) 是reff
,以及 \(r(x, y)\) 是定义为:\[R(x,y)^2=A^2+\Left(\frac{B}{1-Ellip}\Right)^2\]\[A = (x - x_0) \cos(\theta) + (y - y_0) \sin(\theta)\]\[B = -(x - x_0) \sin(\theta) + (y - y_0) \cos(\theta)\]常量 \(b_{n}\) 被定义为 \(r_{e}\) 包含总光度的一半。它可以从以下方程中进行数值求解:
\[\Gamma(2n)=2\Gamma(2n,b_{n})\]哪里 \(\Gamma(a)\) 是 gamma function 和 \(\gamma(a, x)\) 是 lower incomplete gamma function 。
工具书类
实例
import numpy as np from astropy.modeling.models import Sersic2D import matplotlib.pyplot as plt x, y = np.meshgrid(np.arange(100), np.arange(100)) mod = Sersic2D(amplitude=1, r_eff=25, n=4, x_0=50, y_0=50, ellip=0.5, theta=-1) img = mod(x, y) log_img = np.log10(img) fig, ax = plt.subplots() im = ax.imshow(log_img, origin='lower', interpolation='nearest', vmin=-1, vmax=2) cbar = fig.colorbar(im, ax=ax) cbar.set_label('Log Brightness', rotation=270, labelpad=25) cbar.set_ticks([-1, 0, 1, 2]) plt.xlabel('x') plt.ylabel('y') plt.show()
属性摘要
此属性用于指示evaluate方法所需的单元或单元集,并返回将输入映射到单元(或
None
如果接受任何单位)。描述此类型模型的参数的名称。
方法总结
evaluate
(x, y, amplitude, r_eff, n, x_0, ...)二维Sersic剖面函数。
属性文档
- amplitude = Parameter('amplitude', value=1.0)#
- ellip = Parameter('ellip', value=0.0)#
- input_units#
- n = Parameter('n', value=4.0)#
- param_names = ('amplitude', 'r_eff', 'n', 'x_0', 'y_0', 'ellip', 'theta')#
描述此类型模型的参数的名称。
此元组中的参数与初始化特定类型的模型时应传入的顺序相同。某些类型的模型,如多项式模型,根据模型的某些其他属性(如阶数)有不同数量的参数。
定义自定义模型类时,此属性的值由
Parameter
在类中定义的body属性。
- r_eff = Parameter('r_eff', value=1.0)#
- theta = Parameter('theta', value=0.0)#
- x_0 = Parameter('x_0', value=0.0)#
- y_0 = Parameter('y_0', value=0.0)#
方法文件