2016-02-26 23 views
3

我使用astropy.convolution.Gaussian2DKernel創建了卷積內核。我可以繪製內核,但我無法弄清楚如何將它保存爲一個.fits圖像。 (Galfit以後需要它的工作流程。)將astropy.convolution內核保存到文件

from astropy.convolution import Gaussian2DKernel 
plt.imshow(kernel) 
kernel = Gaussian2DKernel(4) 
plt.imshow(kernel) 
fits.writeto('test.fits', kernel) 

它繪製得很好,但返回一個錯誤:

KeyError: 'Data must be a numpy array.'

我如何內核的離散化保存爲文件.fits?

+0

如果解決了問題,您可以爲自己的問題創建一個答案。 – MSeifert

回答

3

啊哈!我將最後一行更改爲: fits.writeto('test.fits',kernel.array)

+1

如果'Kernel'類具有'__array__'方法(這是一種神奇的方法,告訴Numpy代碼如果它不是一個數組的對象是數組),那麼您的初始嘗試可能也會工作。在'astropy.io.fits'端也可能需要一些修正以識別不是數組的對象,而是可以將其轉換爲一個。值得提出一個關於https://github.com/astropy/astropy/issues IMO的問題。這只是一個小的UI增強,但我認爲值得。 – Iguananaut