2013-07-03 37 views
0

我的大部分代碼需要.fits文件,並創建是基於某些參數的小縮略圖(它們是星系的圖像,這一切都是多餘的信息。)保存縮略圖爲符合文件

無論如何,我設法找出一種方法來保存圖像作爲.pdf,但我不知道如何將它們保存爲.fits文件。該解決方案需要是「for」循環內的某些內容,以便它可以集中保存這些文件,因爲有太多的縮略圖可以逐個遍歷。

最後兩行是最相關的行。

for i in range(0,len(ra_new)): 
ra_new2=cat['ra'][z&lmass&ra&dec][i] 
dec_new2=cat['dec'][z&lmass&ra&dec][i] 
target_pixel_x = ((ra_new2-ra_ref)/(pixel_size_x))+reference_pixel_x  
target_pixel_y = ((dec_new2-dec_ref)/(pixel_size_y))+reference_pixel_y 
value=img[target_pixel_x,target_pixel_y]>0 
ra_new3=cat['ra'][z&lmass&ra&dec&value][i] 
dec_new_3=cat['dec'][z&lmass&ra&dec&value][i] 
new_target_pixel_x = ((ra_new3-ra_ref)/(pixel_size_x))+reference_pixel_x  
new_target_pixel_y = ((dec_new3-dec_ref)/(pixel_size_y))+reference_pixel_y 
fig = plt.figure(figsize=(5.,5.)) 
plt.imshow(img[new_target_pixel_x-200:new_target_pixel_x+200, new_target_pixel_y-200:new_target_pixel_y+200], vmin=-0.01, vmax=0.1, cmap='Greys') 
fig.savefig(image+"PHOTO"+str(i)+'.pdf') 

任何想法SO?

+0

有沒有人知道這件事? :C – vdogsandman

+0

啊,那很不幸。 – vdogsandman

+0

你可以使用pyfits(http://www.stsci.edu/institute/software_hardware/pyfits)... Anycase,你爲什麼需要適合?對於縮略圖,是不是更好的PNG文件? – Pablo

回答

0

對於轉換FITS圖像的縮略圖,我建議使用MJPEG工具從「蒙太奇」軟件包,可在這裏:http://montage.ipac.caltech.edu/docs/mJPEG.html

例如,轉換FITS圖像JPEG文件的目錄,然後調整他們的縮略圖,我會用一個shell腳本是這樣的:

#!/bin/bash 
for FILE in `ls /path/to/images/*.fits`; do 
    mJPEG -gray $FILE 5% 90% log -out $FILE.jpg 
    convert $FILE.jpg -resize 64x64 $FILE.thumbnail.jpg 
done 

你當然可以,請從Python的,而不是一個shell腳本這些命令。

1

正如在評論中指出的那樣,astropy軟件包(如果尚未安裝)將很有用: http://astropy.readthedocs.org。您可以在開始時導入所需的模塊。

from astropy.io import fits 

在最後一行,您可以保存縮略圖FITS文件。

thumb = img[new_target_pixel_x-200:new_target_pixel_x+200, 
      new_target_pixel_y-200:new_target_pixel_y+200] 
fits.writeto(image+str(i).zfill(3)+'.fits',thumb)