1
import matplotlib.pyplot as plt
from astropy.io import fits
def openfit(b):
    hdu_list = fits.open(b)
    hdu_list.info()
    image_data = hdu_list[0].data
    plt.imshow(image_data, cmap='gray')
    plt.colorbar()
    plt.show()

 openfit(r"C:\Users\kapla_000\Desktop\barkin\bilgisayar\goruntu\HorseHead.fits")

このコードを使用して、私が取得した HorseHead フィット画像を開いて表示します ( http://www.astropy.org/astropy-tutorials/FITS-images.html )

openfit(r"C:\Users\kapla_000\Desktop\barkin\bilgisayar\goruntu\NGC2392_CXO.fits")

同じコードを使用して NGC2392_CXO( http://people.sabanciuniv.edu/ersing/proj102/ )を開こうとすると

行にエラーが表示されます:「plt.imshow(image_data、cmap = 'gray')」

plt.imshow(image_data, cmap='gray')
  File "C:\Users\kapla_000\Anaconda3\lib\site-packages\matplotlib\pyplot.py", line 3022, in imshow
**kwargs)
  File "C:\Users\kapla_000\Anaconda3\lib\site-packages\matplotlib\__init__.py", line 1811, in inner
return func(ax, *args, **kwargs)
  File "C:\Users\kapla_000\Anaconda3\lib\site-packages\matplotlib\axes\_axes.py", line 4947, in imshow
im.set_data(X)
  File "C:\Users\kapla_000\Anaconda3\lib\site-packages\matplotlib\image.py", line 449, in set_data
raise TypeError("Image data can not convert to float")
TypeError: Image data can not convert to float

問題は画像ファイルのサイズにあると思います。行 "hdu_list.info()" は、ファイルに適合する画像のプロパティを提供します。

Filename:                
C:\Users\kapla_000\Desktop\barkin\bilgisayar\goruntu\HorseHead.fits
No.    Name         Type      Cards   Dimensions   Format
0    PRIMARY     PrimaryHDU     161   (891, 893)   int16   
1    er.mask     TableHDU        25   1600R x 4C   [F6.2, F6.2, F6.2, F6.2] 

NGC2392_CXO の場合、同じ行で次のようになります。

Filename:   
C:\Users\kapla_000\Desktop\barkin\bilgisayar\goruntu\NGC2392_CXO.fits
No.    Name         Type      Cards   Dimensions   Format
0    PRIMARY     PrimaryHDU      32   ()              
1    EVENTS      BinTableHDU    884   238647R x 19C   [1D, 1I, 1I, 1J, 1I,     
1I, 1I, 1I, 1E, 1E, 1E, 1E, 1J, 1J, 1E, 1J, 1I, 1I, 32X]   
2    GTI         BinTableHDU     28   1R x 2C      [1D, 1D]   

HorseHead リストの 0 番目のインデックスには、NGC2392_CXO に次元がない整数次元があります。NGC2392_CXO を表示する方法を整理できないようです

4

1 に答える 1

2

FITS 形式に関する限り、技術的には、開こうとしているファイルには画像が含まれていません。プライマリ HDU にはデータがなく、他の 2 つの HDU はイメージではなくテーブルです。一部の規則ではイメージをテーブルに格納することは可能ですが、この場合、列の構造はそのようには見えませんが、列名を見るとある程度の洞察が得られます。

しかし、一般に、Python で FITS 画像を表示したい場合、少なくともaplpyから始めれば、最も迅速で楽な結果が得られることがよくあります。しかし、この特定のファイルについては、あなたが何を期待しているのかわかりません。

于 2016-04-01T17:33:36.937 に答える