【发布时间】:2017-06-27 11:22:06
【问题描述】:
我正在尝试使用Ellipse2D 模型在astropy 库中拟合椭圆。合身不起作用。建模参数与初始参数相同(可能除了幅度参数)。请看下面的代码:
import numpy as np
from astropy.modeling import models, fitting
import matplotlib.pyplot as pl
# fake data
num = 100
x, y = np.meshgrid(np.linspace(-5., 5., num), np.linspace(-5, 5, num))
e0 = models.Ellipse2D(amplitude=1., x_0=0., y_0=0., a=2, b=1, theta=0.)
z0 = e0(x, y)
print 'DATA:\n', e0, '\n\n'
# initial model
ei = models.Ellipse2D(amplitude=1., x_0=0.0, y_0=0.0, a=2, b=2, theta=0.2)
fi = fitting.LevMarLSQFitter()
#fitted model?
e1 = fi(ei, x, y, z0)
z1 = e1(x, y)
print 'MODEL:\n', e1, '\n\n'
pl.imshow(z0, extent=[-5, 5, -5, 5], alpha=0.5)
pl.imshow(z1, extent=[-5, 5, -5, 5], alpha=0.2)
pl.show()
【问题讨论】:
-
你试过不同的钳工吗?我想知道这是否真的有效,因为 Ellipse2D 模型似乎是一个实心椭圆。
-
是的,我都试过了。 SimplexLSQFitter(见下文)在某种程度上给出了更好的结果,但仍远不能令人满意。