通用服务2D#

class astropy.modeling.functional_models.GeneralSersic2D(amplitude=1, r_eff=1, n=4, x_0=0, y_0=0, ellip=0, theta=0.0, c=0, **kwargs)[源代码]#

基类:Sersic2D

通用的二维Seric表面亮度轮廓,允许使用“四方体”或“盘状”(风筝状)等光线形状。

参数:
amplitude : floatPython :浮点

表面亮度为 r_eff

r_eff : floatPython :浮点

有效(半光)半径。

n : floatPython :浮点

控制轮廓形状的序列索引。的特定值 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 : floatQuantity ,可选Python:浮点型或数量型,可选

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

c : float ,可选Python:Float,可选

控制广义椭圆形状的参数。负值对应于盘状(风筝状)等照射线,正值对应于方形等照射线。设置 c=0 提供完美的椭圆形等深线(与 Sersic2D )。

笔记

模型公式:

\[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)\) 是一个旋转的“广义”椭圆(请参见 Athanassoula et al. 1990 )定义为:

\[r(x, y)^2 = |A|^{c + 2} + \left(\frac{|B|}{1 - ellip}\right)^{c + 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 GeneralSersic2D
import matplotlib.pyplot as plt

x, y = np.meshgrid(np.arange(100), np.arange(100))

mod = GeneralSersic2D(amplitude=1, r_eff=25, n=4, x_0=50, y_0=50,
                      c=-1.0, 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.title('Disky isophote with c=-1.0')
plt.xlabel('x')
plt.ylabel('y')
plt.show()

(png, svg, pdf)

../_images/astropy-modeling-functional_models-GeneralSersic2D-1.png
import numpy as np
from astropy.modeling.models import GeneralSersic2D
import matplotlib.pyplot as plt

x, y = np.meshgrid(np.arange(100), np.arange(100))

mod = GeneralSersic2D(amplitude=1, r_eff=25, n=4, x_0=50, y_0=50,
                      c=1.0, 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.title('Boxy isophote with c=1.0')
plt.xlabel('x')
plt.ylabel('y')
plt.show()

(png, svg, pdf)

../_images/astropy-modeling-functional_models-GeneralSersic2D-2.png

属性摘要

amplitude 

c 

ellip 

n 

param_names 

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

r_eff 

theta 

x_0 

y_0 

属性文档

amplitude = Parameter('amplitude', value=1.0)#
c = Parameter('c', value=0.0)#
ellip = Parameter('ellip', value=0.0)#
n = Parameter('n', value=4.0)#
param_names = ('amplitude', 'r_eff', 'n', 'x_0', 'y_0', 'ellip', 'theta', 'c')#

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

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

定义自定义模型类时,此属性的值由 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)#