2016-07-28 132 views
1

我已经设法使用astropy.modeling来模拟我的图像上的二维高斯,并且它为生成图像而生成的参数似乎是合理的。但是,我需要在数千张图像上运行二维高斯图像,因为我们有兴趣检查模型的平均x和y以及图像上的x和y标准偏差。该模型输出结果如下:从astropy.modeling中提取参数Gaussian2D

m2 
<Gaussian2D(amplitude=0.0009846091239480168, x_mean=30.826676737477573, y_mean=31.004045976953222, x_stddev=2.5046722491074536, y_stddev=3.163048479350727, theta=-0.0070295894129793896)> 

我还可以告诉你:

type(m2) 
<class 'astropy.modeling.functional_models.Gaussian2D'> 
Name: Gaussian2D 
Inputs: (u'x', u'y') 
Outputs: (u'z',) 
Fittable parameters: ('amplitude', 'x_mean', 'y_mean', 'x_stddev', 'y_stddev', 'theta') 

我需要的是提取模型,即参数的方法:

x_mean 
y_mean 
x_stddev 
y_stddev 

我不熟悉这个表单输出,所以我真的被困在如何提取参数。

+0

对于成千上万的图像确保您使用的模型集:HTTP://文档.astropy.org/EN /稳定/模型/ index.html的#模型集 – Iguananaut

回答

1

该机型具有的属性,您可以访问:

from astropy.modeling import models 
g2d = models.Gaussian2D(1,2,3,4,5) 
g2d.amplitude.value # 1.0 
g2d.x_mean.value  # 2.0 
g2d.y_mean.value  # 3.0 
g2d.x_stddev.value # 4.0 
g2d.y_stddev.value # 5.0 

您需要在安装模式后提取这些值,但你可以以同样的方式访问它们:.<name>.value

您也可以提取他们一气呵成但你需要跟踪它的参数是在哪个位置:

g2d.parameters # array([ 1., 2., 3., 4., 5., 0.]) 
# Amplitude 
g2d.parameters[0] # 1.0 
# x-mean 
g2d.parameters[1] # 2.0 
# ...