2016-03-31 3 views
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") 

iが開いて表示するには、コードのこの部分を使用してPythonで画像をフィット私の馬頭は、私は同じコードを使用しようとすると、私は(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 = 'グレー')"

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に対して同じラインは、0番目のインデックスに

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] 

を与える馬頭ためfile.andにフィットHorseHeadのリストには、NGC2392_CXOに次元がない整数次元があります。私はNGC2392_CXOを見る方法を整理することができません

+0

ImageMagickによると、NGC2392_CXOの画像サイズは64x238647ピクセルです。私はそれが問題である薄いサイズだと思う。 –

+0

簡単なコメントを残して申し訳ありませんが、もしあなたがaplpyを使用するならば、あなたはおそらく多くのトラブルを避けるでしょう。 – Iguananaut

答えて

2

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

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

関連する問題