2016-07-28 133 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 
# ...