Python 将缩略图保存为文件

Python 将缩略图保存为文件,python,astronomy,fits,Python,Astronomy,Fits,我的大部分代码都采用.fits文件并创建基于某些参数的小缩略图(它们是星系图像,所有这些都是无关信息…) 无论如何,我设法找到了一种将图像保存为.pdf的方法,但我不知道如何将它们保存为.fits文件。解决方案需要是“for”循环中的某个内容,这样它就可以整体保存文件,因为有太多的缩略图,无法逐个迭代 最后两行是最相关的 for i in range(0,len(ra_new)): ra_new2=cat['ra'][z&lmass&ra&dec][i] dec_new2

我的大部分代码都采用.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')

有什么想法吗

要将FITS图像转换为缩略图,我建议使用“蒙太奇”软件包中的mJPEG工具,可在以下位置获得:

例如,要将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脚本调用这些命令。

如注释中所述,astropy软件包(如果尚未安装)将非常有用: . 您可以在开始时导入所需的模块

from astropy.io import 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)

有人知道这件事吗这是不幸的。你可以用pyfits()来。。。不管怎样,你为什么需要试穿呢?对于缩略图,png文件不是更好吗?